diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml
index dee7ba6985573831ffa0630871d12d1445efbc81..432836c954bef317e9620a19ea25e6c14252b97b 100644
--- a/.azure/pipelines/ci.yml
+++ b/.azure/pipelines/ci.yml
@@ -38,6 +38,19 @@ variables:
     value: ''
   - name: _SignType
     value: ''
+  - name: _InternalRuntimeDownloadArgs
+    value: ''
+  - name: _InternalRuntimeDownloadCodeSignArgs
+    value: ''
+- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+  - group: DotNet-MSRC-Storage
+  - name: _InternalRuntimeDownloadArgs
+    value: -DotNetRuntimeSourceFeed https://dotnetclimsrc.blob.core.windows.net/dotnet -DotNetRuntimeSourceFeedKey $(dotnetclimsrc-read-sas-token-base64) /p:DotNetAssetRootAccessTokenSuffix='$(dotnetclimsrc-read-sas-token-base64)'
+  # The code signing doesn't use the aspnet build scripts, so the msbuild parameers have
+  # to be passed directly. This is awkward, since we pass the same info above, but we have
+  # to have it in two different forms
+  - name: _InternalRuntimeDownloadCodeSignArgs
+    value: /p:DotNetRuntimeSourceFeed=https://dotnetclimsrc.blob.core.windows.net/dotnet /p:DotNetRuntimeSourceFeedKey=$(dotnetclimsrc-read-sas-token-base64)
 - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
   - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
     # DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
@@ -63,7 +76,7 @@ variables:
     - name: _BuildArgs
       value: ''
     - name: _SignType
-      valule: test
+      value: test
     - name: _PublishArgs
       value: ''
   # used for post-build phases, internal builds only
@@ -81,7 +94,15 @@ stages:
       jobDisplayName: Code check
       agentOs: Windows
       steps:
-      - powershell: ./eng/scripts/CodeCheck.ps1 -ci
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: PowerShell@2
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+            arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
+      - powershell: ./eng/scripts/CodeCheck.ps1 -ci $(_InternalRuntimeDownloadArgs)
         displayName: Run eng/scripts/CodeCheck.ps1
       artifacts:
       - name: Code_Check_Logs
@@ -108,6 +129,14 @@ stages:
       # This is intentional to workaround https://github.com/dotnet/arcade/issues/1957 which always re-submits for code-signing, even
       # if they have already been signed. This results in slower builds due to re-submitting the same .nupkg many times for signing.
       # The sign settings have been configured to
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: PowerShell@2
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+            arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
 
       - script: ./build.cmd
                 -ci
@@ -117,6 +146,7 @@ stages:
                 -buildNative
                 /bl:artifacts/log/build.x64.binlog
                 $(_BuildArgs)
+                $(_InternalRuntimeDownloadArgs)
         displayName: Build x64
 
       # Build the x86 shared framework
@@ -132,6 +162,7 @@ stages:
                 /p:OnlyPackPlatformSpecificPackages=true
                 /bl:artifacts/log/build.x86.binlog
                 $(_BuildArgs)
+                $(_InternalRuntimeDownloadArgs)
         displayName: Build x86
 
       # This is in a separate build step with -forceCoreMsbuild to workaround MAX_PATH limitations - https://github.com/Microsoft/msbuild/issues/53
@@ -140,6 +171,7 @@ stages:
                 -pack
                 -noBuildDeps
                 $(_BuildArgs)
+                $(_InternalRuntimeDownloadArgs)
         condition: ne(variables['Build.Reason'], 'PullRequest')
         displayName: Build SiteExtension
 
@@ -166,6 +198,7 @@ stages:
                 /p:AssetManifestFileName=aspnetcore-win-x64-x86.xml
                 $(_BuildArgs)
                 $(_PublishArgs)
+                $(_InternalRuntimeDownloadArgs)
                 /p:PublishInstallerBaseVersion=true
         displayName: Build Installers
 
@@ -206,6 +239,7 @@ stages:
         /p:AssetManifestFileName=aspnetcore-win-arm.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -232,6 +266,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-MacOS_x64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -252,6 +287,14 @@ stages:
       jobDisplayName: "Build: Linux x64"
       agentOs: Linux
       steps:
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: Bash@3
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
+            arguments: $(Build.SourcesDirectory)/NuGet.config $Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
       - script: ./build.sh
             --ci
             --arch x64
@@ -262,6 +305,7 @@ stages:
             -p:OnlyPackPlatformSpecificPackages=true
             -bl:artifacts/log/build.linux-x64.binlog
             $(_BuildArgs)
+            $(_InternalRuntimeDownloadArgs)
         displayName: Run build.sh
       - script: |
           git clean -xfd src/**/obj/
@@ -275,7 +319,8 @@ stages:
             -p:BuildRuntimeArchive=false \
             -p:LinuxInstallerType=deb \
             -bl:artifacts/log/build.deb.binlog \
-            $(_BuildArgs)
+            $(_BuildArgs) \
+            $(_InternalRuntimeDownloadArgs)
         displayName: Build Debian installers
       - script: |
           git clean -xfd src/**/obj/
@@ -291,7 +336,8 @@ stages:
             -bl:artifacts/log/build.rpm.binlog \
             -p:AssetManifestFileName=aspnetcore-Linux_x64.xml \
             $(_BuildArgs) \
-            $(_PublishArgs)
+            $(_PublishArgs) \
+            $(_InternalRuntimeDownloadArgs)
         displayName: Build RPM installers
       installNodeJs: false
       installJdk: false
@@ -323,6 +369,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_arm.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -353,6 +400,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_arm64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -386,6 +434,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_musl_x64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -419,6 +468,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_musl_arm64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -440,7 +490,7 @@ stages:
       jobDisplayName: "Test: Windows Server 2016 x64"
       agentOs: Windows
       isTestingJob: true
-      buildArgs: -all -pack -test -BuildNative "/p:SkipHelixReadyTests=true /p:SkipIISNewHandlerTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISNewShimTests=true /p:RunTemplateTests=false"
+      buildArgs: -all -pack -test -BuildNative "/p:SkipHelixReadyTests=true /p:SkipIISNewHandlerTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISNewShimTests=true /p:RunTemplateTests=false" $(_InternalRuntimeDownloadArgs)
       beforeBuild:
       - powershell: "& ./src/Servers/IIS/tools/UpdateIISExpressCertificate.ps1; & ./src/Servers/IIS/tools/update_schema.ps1"
         displayName: Setup IISExpress test certificates and schema
@@ -476,7 +526,15 @@ stages:
       agentOs: Windows
       isTestingJob: true
       steps:
-      - script: ./build.cmd -ci -all -pack
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: PowerShell@2
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+            arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
+      - script: ./build.cmd -ci -all -pack $(_InternalRuntimeDownloadArgs)
         displayName: Build Repo
       - script: ./src/ProjectTemplates/build.cmd -ci -pack -NoRestore -NoBuilddeps "/p:RunTemplateTests=true /bl:artifacts/log/template.pack.binlog"
         displayName: Pack Templates
@@ -503,7 +561,7 @@ stages:
       jobDisplayName: "Test: macOS 10.13"
       agentOs: macOS
       isTestingJob: true
-      buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true"
+      buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true" $(_InternalRuntimeDownloadArgs)
       beforeBuild:
       - bash: "./eng/scripts/install-nginx-mac.sh"
         displayName: Installing Nginx
@@ -538,7 +596,7 @@ stages:
       jobDisplayName: "Test: Ubuntu 16.04 x64"
       agentOs: Linux
       isTestingJob: true
-      buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true"
+      buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true" $(_InternalRuntimeDownloadArgs)
       beforeBuild:
       - bash: "./eng/scripts/install-nginx-linux.sh"
         displayName: Installing Nginx
@@ -647,6 +705,25 @@ stages:
         chmod +x $HOME/bin/jq
         echo "##vso[task.prependpath]$HOME/bin"
       displayName: Install jq
+    - task: UseDotNet@2
+      displayName: 'Use .NET Core sdk'
+      inputs:
+        packageType: sdk
+        # The SDK version selected here is intentionally supposed to use the latest release
+        # For the purpose of building Linux distros, we can't depend on features of the SDK
+        # which may not exist in pre-built versions of the SDK
+        # Pinning to preview 8 since preview 9 has breaking changes
+        version: 3.1.100
+        installationPath: $(DotNetCoreSdkDir)
+        includePreviewVersions: true
+    - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: Bash@3
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
+            arguments: $(Build.SourcesDirectory)/NuGet.config $Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
     - script: ./eng/scripts/ci-source-build.sh --ci --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false
       displayName: Run ci-source-build.sh
     - task: PublishBuildArtifacts@1
diff --git a/.azure/pipelines/jobs/codesign-xplat.yml b/.azure/pipelines/jobs/codesign-xplat.yml
index abf15125404aeafda39260f5c8e94d00b8a0d233..07e2e99f0e89b2b564bf77cd2ee8af1f56b6c7b0 100644
--- a/.azure/pipelines/jobs/codesign-xplat.yml
+++ b/.azure/pipelines/jobs/codesign-xplat.yml
@@ -28,6 +28,14 @@ jobs:
         contents: '**/*.nupkg'
         targetFolder: $(Build.SourcesDirectory)/artifacts/packages/$(BuildConfiguration)/shipping/
         flattenFolders: true
+    - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+      - task: PowerShell@2
+        displayName: Setup Private Feeds Credentials
+        inputs:
+          filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+          arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+        env:
+          Token: $(dn-bot-dnceng-artifact-feeds-rw)
     - powershell: .\eng\common\build.ps1
         -ci
         -restore
@@ -39,6 +47,7 @@ jobs:
         /p:DotNetSignType=$(_SignType)
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadCodeSignArgs)
       displayName: Sign and publish packages
     artifacts:
     - name: CodeSign_Xplat_${{ parameters.inputName }}_Logs
diff --git a/.azure/pipelines/jobs/default-build.yml b/.azure/pipelines/jobs/default-build.yml
index d9a4e1b58a1e9eddad78932b87ecd734af043653..d869a5dbd86c4e9b5bc68a758600cf2df4e207ef 100644
--- a/.azure/pipelines/jobs/default-build.yml
+++ b/.azure/pipelines/jobs/default-build.yml
@@ -161,6 +161,24 @@ jobs:
     - ${{ if ne(parameters.steps, '')}}:
       - ${{ parameters.steps }}
     - ${{ if eq(parameters.steps, '')}}:
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - ${{ if eq(parameters.agentOs, 'Windows') }}:
+          - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+            - task: PowerShell@2
+              displayName: Setup Private Feeds Credentials
+              inputs:
+                filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+                arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+              env:
+                Token: $(dn-bot-dnceng-artifact-feeds-rw)
+        - ${{ if ne(parameters.agentOs, 'Windows') }}:
+          - task: Bash@3
+            displayName: Setup Private Feeds Credentials
+            inputs:
+              filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
+              arguments: $(Build.SourcesDirectory)/NuGet.config $Token
+            env:
+              Token: $(dn-bot-dnceng-artifact-feeds-rw)
       - ${{ if eq(parameters.buildScript, '') }}:
         - ${{ if eq(parameters.agentOs, 'Windows') }}:
           - script: .\$(BuildDirectory)\build.cmd -ci /p:DotNetSignType=$(_SignType) -Configuration $(BuildConfiguration) $(BuildScriptArgs)
diff --git a/Directory.Build.props b/Directory.Build.props
index b68fd8cb6691875cf26e1e6d1bc245e7c13a237a..629eaa13fdde14c29c9048c363b48b670dfa4ecb 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -91,8 +91,14 @@
     <RuntimeInstallerBaseName>aspnetcore-runtime</RuntimeInstallerBaseName>
     <TargetingPackInstallerBaseName>aspnetcore-targeting-pack</TargetingPackInstallerBaseName>
 
-    <!-- Used to only produce targeting pack installers/packages once per major.minor. -->
-    <IsTargetingPackBuilding Condition="'$(AspNetCorePatchVersion)' != '0' OR '$(DotNetBuildFromSource)' == 'true'">false</IsTargetingPackBuilding>
+    <!-- Produce targeting pack installers/packages once per major.minor except in extraordinary cases i.e. 3.1.2. -->
+    <!-- We can remove the 3.1.2 line from any branch other than release/3.1 and from here after 3.1.2 is released. -->
+    <IsTargetingPackBuilding Condition=" '$(DotNetBuildFromSource)' == 'true' ">false</IsTargetingPackBuilding>
+    <IsTargetingPackBuilding
+        Condition=" '$(IsTargetingPackBuilding)' == '' AND '$(VersionPrefix)' == '3.1.2' ">true</IsTargetingPackBuilding>
+    <IsTargetingPackBuilding
+        Condition=" '$(IsTargetingPackBuilding)' == '' AND '$(AspNetCorePatchVersion)' != '0' ">false</IsTargetingPackBuilding>
+    <IsTargetingPackBuilding Condition=" '$(IsTargetingPackBuilding)' == '' ">true</IsTargetingPackBuilding>
 
     <!--
       Archives and installers using this prefix are intended for internal-use only.
@@ -179,7 +185,6 @@
 
   <Import Project="eng\Workarounds.props" />
   <Import Project="eng\Dependencies.props" />
-  <Import Project="eng\PatchConfig.props" />
   <Import Project="eng\ProjectReferences.props" />
   <Import Project="eng\SharedFramework.Local.props" />
   <Import Project="eng\SharedFramework.External.props" />
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 01c320019aab0c6c58d030eba74ce79cda7853ef..a61b5e650519fcd3ec4c974076b3ee5bf77101c2 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,17 +1,10 @@
 <Project>
 
   <PropertyGroup>
-    <!-- When OnlyPackPlatformSpecificPackages is set, only produce packages for projects which set RuntimeIdentifier. -->
-    <IsPackable Condition=" '$(OnlyPackPlatformSpecificPackages)' == 'true' AND '$(IsPackable)' != 'false' AND '$(RuntimeIdentifier)' == '' ">false</IsPackable>
-
-    <!--
-      By default, assemblies which are only in the Microsoft.AspNetCore.App shared framework are not available as NuGet packages.
-    -->
-    <IsPackable Condition="'$(IsAspNetCoreApp)' == 'true' AND '$(IsShippingPackage)' != 'true'">false</IsPackable>
-
-    <!-- Only build assemblies in Microsoft.AspNetCore.App in source build -->
+    <!-- Only build Microsoft.AspNetCore.App and ref/ assemblies in source build. -->
     <!-- Analyzer package are needed in source build for WebSDK -->
-    <ExcludeFromSourceBuild Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true' and '$(IsAnalyzersProject)' != 'true'">true</ExcludeFromSourceBuild>
+    <ExcludeFromSourceBuild
+        Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true' and '$(IsReferenceAssemblyProject)' != 'true' and '$(IsAnalyzersProject)' != 'true'">true</ExcludeFromSourceBuild>
   </PropertyGroup>
 
   <PropertyGroup Label="Resx settings">
@@ -28,7 +21,7 @@
     <PackageBrandingVersion>$(VersionPrefix)</PackageBrandingVersion>
     <PackageBrandingVersion Condition=" '$(VersionSuffix)' != '' ">$(PackageBrandingVersion) $(BrandingVersionSuffix.Trim())</PackageBrandingVersion>
 
-    <SiteExtensionSuffix>$(VersionPrefix)</SiteExtensionSuffix>
+    <SiteExtensionPackageVersion>$(VersionPrefix)</SiteExtensionPackageVersion>
     <SiteExtensionPackageVersion Condition=" '$(VersionSuffix)' != '' ">$(VersionPrefix)-$(VersionSuffix.Replace('.','-'))</SiteExtensionPackageVersion>
 
     <PackageVersion Condition=" '$(PackageVersion)' == '' ">$(Version)</PackageVersion>
@@ -58,18 +51,24 @@
 
   <Import Project="eng\Baseline.Designer.props" />
 
-  <PropertyGroup
-      Condition=" '$(IsPackable)' != 'false' AND '$(AspNetCorePatchVersion)' != '0' AND '$(DisableServicingFeatures)' != 'true' ">
-    <IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">$(PackagesInPatch.Contains(' $(PackageId);'))</IsPackageInThisPatch>
-  </PropertyGroup>
-
   <PropertyGroup Condition=" '$(IsPackable)' != 'false' AND '$(IsServicingBuild)' == 'true' ">
+    <IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">true</IsPackageInThisPatch>
     <!-- Used to distinguish between packages building -->
     <IsPackableInNonServicingBuild>true</IsPackableInNonServicingBuild>
-    <!-- Suppress creation of .nupkg for servicing builds. -->
+    <!-- Suppress creation of .nupkg for servicing builds of non-shipping projects. -->
     <IsPackable Condition=" '$(IsPackageInThisPatch)' != 'true' ">false</IsPackable>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <!-- When OnlyPackPlatformSpecificPackages is set, only produce packages for projects which set RuntimeIdentifier. -->
+    <!-- Keep this below where we set "IsPackageInThisPatch" -->
+    <IsPackable Condition=" '$(OnlyPackPlatformSpecificPackages)' == 'true' AND '$(RuntimeIdentifier)' == '' ">false</IsPackable>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <PackageVersionForPackageVersionInfo>$(PackageVersion)</PackageVersionForPackageVersionInfo>
+  </PropertyGroup>
+
   <PropertyGroup Condition=" '$(IsPackageInThisPatch)' != 'true' AND '$(BaselinePackageVersion)' != '' AND '$(IsServicingBuild)' == 'true' ">
     <!-- This keeps assembly and package versions consistent across patches. If a package is not included in a patch, its version should stay at the baseline. -->
     <AssemblyVersion Condition="$(BaselinePackageVersion.Contains('-'))">$(BaselinePackageVersion.Substring(0, $(BaselinePackageVersion.IndexOf('-')))).0</AssemblyVersion>
@@ -83,6 +82,9 @@
     -->
     <Version Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</Version>
     <PackageVersion Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</PackageVersion>
+
+    <!-- For servicing builds, we want to resolve baseline versions of project packages that aren't building, always -->
+    <PackageVersionForPackageVersionInfo>$(BaselinePackageVersion)</PackageVersionForPackageVersionInfo>
   </PropertyGroup>
 
   <PropertyGroup>
@@ -92,7 +94,8 @@
     <!-- This determines whether a project is available as a <Reference> to other projects in this repo. -->
     <IsProjectReferenceProvider Condition=" '$(IsProjectReferenceProvider)' == '' AND '$(IsImplementationProject)' == 'true' AND '$(PackAsTool)' != 'true' ">true</IsProjectReferenceProvider>
 
-    <HasReferenceAssembly Condition="'$(HasReferenceAssembly)' == '' AND '$(IsProjectReferenceProvider)' == 'true'">true</HasReferenceAssembly>
+    <HasReferenceAssembly
+        Condition=" '$(HasReferenceAssembly)' == '' AND '$(IsProjectReferenceProvider)' == 'true' AND '$(IsAspNetCoreApp)' == 'true' ">true</HasReferenceAssembly>
     <HasReferenceAssembly Condition="'$(HasReferenceAssembly)' == ''">false</HasReferenceAssembly>
 
     <IsPackable Condition="'$(IsPackable)' == '' AND ('$(IsImplementationProject)' == 'true' OR '$(IsAnalyzersProject)' == 'true') ">true</IsPackable>
@@ -106,9 +109,8 @@
     <Compile Include="$(SharedSourceRoot)ReferenceAssemblyInfo.cs" LinkBase="Properties" />
   </ItemGroup>
 
-  <PropertyGroup Condition="'$(Language)' == 'C#'">
+  <PropertyGroup Condition="'$(Language)' == 'C#' AND '$(IsReferenceAssemblyProject)' == 'true'">
     <!-- Reference assemblies should always use Major.Minor.0.0 for assembly versions even during servicing. Only the package version should be updated. -->
-    <!-- Pinning the implementation assemblies at Major.Minor.0.0 as we figure out compiling against ref assemblies. -->
     <AssemblyVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0</AssemblyVersion>
   </PropertyGroup>
 
@@ -162,6 +164,6 @@
   <Import Project="eng\targets\FSharp.Common.targets"  Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
   <Import Project="eng\targets\Wix.Common.targets"  Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
   <Import Project="eng\targets\Npm.Common.targets"  Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
-  <Import Project="eng\targets\ReferenceAssembly.targets" Condition=" '$(HasReferenceAssembly)' == 'true' " />
+  <Import Project="eng\targets\ReferenceAssembly.targets" Condition=" $(HasReferenceAssembly) " />
 
 </Project>
diff --git a/build.ps1 b/build.ps1
index 042916322b93bd4a8b2af2a0a5e4289318ac88f0..7ce1d87f58646b1f0471e2a4bd291e7e498d176a 100644
--- a/build.ps1
+++ b/build.ps1
@@ -77,6 +77,12 @@ MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
 .PARAMETER MSBuildArguments
 Additional MSBuild arguments to be passed through.
 
+.PARAMETER DotNetRuntimeSourceFeed
+Additional feed that can be used when downloading .NET runtimes
+
+.PARAMETER DotNetRuntimeSourceFeedKey
+Key for feed that can be used when downloading .NET runtimes
+
 .EXAMPLE
 Building both native and managed projects.
 
@@ -151,6 +157,11 @@ param(
 
     # Other lifecycle targets
     [switch]$Help, # Show help
+    
+    # Optional arguments that enable downloading an internal
+    # runtime or runtime from a non-default location
+    [string]$DotNetRuntimeSourceFeed,
+    [string]$DotNetRuntimeSourceFeedKey,
 
     # Capture the rest
     [Parameter(ValueFromRemainingArguments = $true)]
@@ -251,6 +262,16 @@ if (-not $Configuration) {
 }
 $MSBuildArguments += "/p:Configuration=$Configuration"
 
+[string[]]$ToolsetBuildArguments = @()
+if ($DotNetRuntimeSourceFeed -or $DotNetRuntimeSourceFeedKey) {
+    $runtimeFeedArg = "/p:DotNetRuntimeSourceFeed=$DotNetRuntimeSourceFeed"
+    $runtimeFeedKeyArg = "/p:DotNetRuntimeSourceFeedKey=$DotNetRuntimeSourceFeedKey"
+    $MSBuildArguments += $runtimeFeedArg
+    $MSBuildArguments += $runtimeFeedKeyArg
+    $ToolsetBuildArguments += $runtimeFeedArg
+    $ToolsetBuildArguments += $runtimeFeedKeyArg
+}
+
 $foundJdk = $false
 $javac = Get-Command javac -ErrorAction Ignore -CommandType Application
 $localJdkPath = "$PSScriptRoot\.tools\jdk\win-x64\"
@@ -375,7 +396,8 @@ try {
             /p:Configuration=Release `
             /p:Restore=$RunRestore `
             /p:Build=true `
-            /clp:NoSummary
+            /clp:NoSummary `
+            @ToolsetBuildArguments
     }
 
     MSBuild $toolsetBuildProj `
diff --git a/build.sh b/build.sh
index 309b97cc094493985c782188cdfded06fea07b2d..92ef856d4759295b6c393cbcf4ce2de4d6b64481 100755
--- a/build.sh
+++ b/build.sh
@@ -29,6 +29,8 @@ build_installers=''
 build_projects=''
 target_arch='x64'
 configuration=''
+dotnet_runtime_source_feed=''
+dotnet_runtime_source_feed_key=''
 
 if [ "$(uname)" = "Darwin" ]; then
     target_os_name='osx'
@@ -45,33 +47,36 @@ __usage() {
     echo "Usage: $(basename "${BASH_SOURCE[0]}") [options] [[--] <Arguments>...]
 
 Arguments:
-    <Arguments>...            Arguments passed to the command. Variable number of arguments allowed.
+    <Arguments>...                    Arguments passed to the command. Variable number of arguments allowed.
 
 Options:
-    --configuration|-c        The build configuration (Debug, Release). Default=Debug
-    --arch                    The CPU architecture to build for (x64, arm, arm64). Default=$target_arch
-    --os-name                 The base runtime identifier to build for (linux, osx, linux-musl). Default=$target_os_name
-
-    --[no-]restore            Run restore.
-    --[no-]build              Compile projects. (Implies --no-restore)
-    --[no-]pack               Produce packages.
-    --[no-]test               Run tests.
-
-    --projects                A list of projects to build. (Must be an absolute path.)
-                              Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\".
-    --no-build-deps           Do not build project-to-project references and only build the specified project.
-    --no-build-repo-tasks     Suppress building RepoTasks.
-
-    --all                     Build all project types.
-    --[no-]build-native       Build native projects (C, C++).
-    --[no-]build-managed      Build managed projects (C#, F#, VB).
-    --[no-]build-nodejs       Build NodeJS projects (TypeScript, JS).
-    --[no-]build-java         Build Java projects.
-    --[no-]build-installers   Build Java projects.
-
-    --ci                      Apply CI specific settings and environment variables.
-    --binarylog|-bl           Use a binary logger
-    --verbosity|-v            MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
+    --configuration|-c                The build configuration (Debug, Release). Default=Debug
+    --arch                            The CPU architecture to build for (x64, arm, arm64). Default=$target_arch
+    --os-name                         The base runtime identifier to build for (linux, osx, linux-musl). Default=$target_os_name
+
+    --[no-]restore                    Run restore.
+    --[no-]build                      Compile projects. (Implies --no-restore)
+    --[no-]pack                       Produce packages.
+    --[no-]test                       Run tests.
+
+    --projects                        A list of projects to build. (Must be an absolute path.)
+                                      Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\".
+    --no-build-deps                   Do not build project-to-project references and only build the specified project.
+    --no-build-repo-tasks             Suppress building RepoTasks.
+
+    --all                             Build all project types.
+    --[no-]build-native               Build native projects (C, C++).
+    --[no-]build-managed              Build managed projects (C#, F#, VB).
+    --[no-]build-nodejs               Build NodeJS projects (TypeScript, JS).
+    --[no-]build-java                 Build Java projects.
+    --[no-]build-installers           Build Java projects.
+
+    --ci                              Apply CI specific settings and environment variables.
+    --binarylog|-bl                   Use a binary logger
+    --verbosity|-v                    MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
+    
+    --dotnet-runtime-source-feed      Additional feed that can be used when downloading .NET runtimes
+    --dotnet-runtime-source-feed-key  Key for feed that can be used when downloading .NET runtimes
 
 Description:
     This build script installs required tools and runs an MSBuild command on this repository
@@ -188,16 +193,26 @@ while [[ $# -gt 0 ]]; do
         -no-build-repo-tasks|-nobuildrepotasks)
             build_repo_tasks=false
             ;;
+        -arch)
+            shift
+            target_arch="${1:-}"
+            [ -z "$target_arch" ] && __error "Missing value for parameter --arch" && __usage
+            ;;
         -ci)
             ci=true
             ;;
         -binarylog|-bl)
             use_default_binary_log=true
             ;;
-        -verbosity|-v)
+        -dotnet-runtime-source-feed|-dotnetruntimesourcefeed)
             shift
-            [ -z "${1:-}" ] && __error "Missing value for parameter --verbosity" && __usage
-            verbosity="${1:-}"
+            [ -z "${1:-}" ] && __error "Missing value for parameter --dotnet-runtime-source-feed" && __usage
+            dotnet_runtime_source_feed="${1:-}"
+            ;;
+        -dotnet-runtime-source-feed-key|-dotnetruntimesourcefeedkey)
+            shift
+            [ -z "${1:-}" ] && __error "Missing value for parameter --dotnet-runtime-source-feed-key" && __usage
+            dotnet_runtime_source_feed_key="${1:-}"
             ;;
         *)
             msbuild_args[${#msbuild_args[*]}]="$1"
@@ -270,6 +285,17 @@ msbuild_args[${#msbuild_args[*]}]="-p:Configuration=$configuration"
 echo "Setting msbuild verbosity to $verbosity"
 msbuild_args[${#msbuild_args[*]}]="-verbosity:$verbosity"
 
+# Set up additional runtime args
+toolset_build_args=()
+if [ ! -z "$dotnet_runtime_source_feed" ] || [ ! -z "$dotnet_runtime_source_feed_key" ]; then
+    runtimeFeedArg="/p:DotNetRuntimeSourceFeed=$dotnet_runtime_source_feed"
+    runtimeFeedKeyArg="/p:DotNetRuntimeSourceFeedKey=$dotnet_runtime_source_feed_key"
+    msbuild_args[${#msbuild_args[*]}]=$runtimeFeedArg
+    msbuild_args[${#msbuild_args[*]}]=$runtimeFeedKeyArg
+    toolset_build_args[${#toolset_build_args[*]}]=$runtimeFeedArg
+    toolset_build_args[${#toolset_build_args[*]}]=$runtimeFeedKeyArg
+fi
+
 # Initialize global variables need to be set before the import of Arcade is imported
 restore=$run_restore
 
@@ -325,7 +351,8 @@ if [ "$build_repo_tasks" = true ]; then
         -p:Configuration=Release \
         -p:Restore=$run_restore \
         -p:Build=true \
-        -clp:NoSummary
+        -clp:NoSummary \
+        ${toolset_build_args[@]+"${toolset_build_args[@]}"}
 fi
 
 # This incantation avoids unbound variable issues if msbuild_args is empty
diff --git a/docs/PreparingPatchUpdates.md b/docs/PreparingPatchUpdates.md
index ee153b4d031ccfe9165c155dad8c5c6f7b20f74d..5b069cb4b04d6a85ee7f019f30d13e4e1ff976bc 100644
--- a/docs/PreparingPatchUpdates.md
+++ b/docs/PreparingPatchUpdates.md
@@ -12,5 +12,3 @@ In order to prepare this repo to build a new servicing update, the following cha
 
 * Update the package baselines. This is used to ensure packages keep a consistent set of dependencies between releases.
   See [eng/tools/BaselineGenerator/](/eng/tools/BaselineGenerator/README.md) for instructions on how to run this tool.
-
-* Update the list of packages in [eng/PatchConfig.props](/eng/PatchConfig.props) to list which packages should be patching in this release.
diff --git a/docs/ProjectProperties.md b/docs/ProjectProperties.md
index 1a5a1c4eb4274f5b056dccf48f0641e43185e32f..24e186c2885490df389d8df2c268f19e3e50f65e 100644
--- a/docs/ProjectProperties.md
+++ b/docs/ProjectProperties.md
@@ -5,6 +5,8 @@ In addition to the standard set of MSBuild properties supported by Microsoft.NET
 
 Property name      | Meaning
 -------------------|--------------------------------------------------------------------------------------------
-IsShippingPackage  | When set to `true`, the package produced by from project is intended for use by customers. Defaults to  `false`, which means the package is intended for internal use only by Microsoft teams.
-IsAspNetCoreApp    | Set to `true` when the assembly is part of the [Microsoft.AspNetCore.App shared framework](./SharedFramework.md) and is not available as a NuGet package (unless IsShippingPackage is also set to `true`).
-TestDependsOnMssql | Set to `true` when your tests depends on SQL Server. This will ensure distribute tests on Helix install LocalDB ([more information on Helix](./Helix.md)).
+IsPackable         | Set to `true` when the project should produce a package. That package may or may not ship to customers (depending on `IsShippingPackage`). Defaults to `true` for analyzer and implementation projects; `false` otherwise.
+IsShipping         | Set to `true` when the project output is intended for use by customers. Defaults to `true` for analyzer, implementation and specification test projects; `false` otherwise.
+IsShippingPackage  | Set to `true` when a package produced from project is intended for use by customers. Defaults to `IsShipping`. Note this may be `true` even for projects with `IsPackable` set to `false`.
+IsAspNetCoreApp    | Set to `true` when the assembly is part of the [Microsoft.AspNetCore.App shared framework](./SharedFramework.md) and is not available as a NuGet package (unless `IsPackable` is also set to `true` -- the default). Defaults to `false`.
+TestDependsOnMssql | Set to `true` when your tests depends on SQL Server. This will ensure distribute tests on Helix install LocalDB ([more information on Helix](./Helix.md)). Defaults to `false`.
diff --git a/docs/ReferenceResolution.md b/docs/ReferenceResolution.md
index 0c5d231bef27f9b84f9f81051f67b7879f39a296..d84215a6d3653c9b613c1746373a611419ec1865 100644
--- a/docs/ReferenceResolution.md
+++ b/docs/ReferenceResolution.md
@@ -31,7 +31,6 @@ The requirements that led to this system are:
 
 * [eng/Baseline.xml](/eng/Baseline.xml) - this contains the 'baseline' of the latest servicing release for this branch. It should be modified and used to update the generated file, Baseline.Designer.props.
 * [eng/Dependencies.props](/eng/Dependencies.props) - contains a list of all package references that might be used in the repo.
-* [eng/PatchConfig.props](/eng/PatchConfig.props) - lists which assemblies or packages are patching in the current build.
 * [eng/ProjectReferences.props](/eng/ProjectReferences.props) - lists which assemblies or packages might be available to be referenced as a local project.
 * [eng/Versions.props](/eng/Versions.props) - contains a list of versions which may be updated by automation. This is used by MSBuild to restore and build.
 * [eng/Version.Details.xml](/eng/Version.Details.xml) - used by automation to update dependencies variables in other files.
diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props
index b5c81965354df5a9bb4f986cdd7300093825b65b..beae2b6a595e6da26177c95081e06b25779f1791 100644
--- a/eng/Baseline.Designer.props
+++ b/eng/Baseline.Designer.props
@@ -2,106 +2,106 @@
 <Project>
   <PropertyGroup>
     <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
-    <AspNetCoreBaselineVersion>3.1.0</AspNetCoreBaselineVersion>
+    <AspNetCoreBaselineVersion>3.1.2</AspNetCoreBaselineVersion>
   </PropertyGroup>
   <!-- Package: AspNetCoreRuntime.3.0.x64-->
   <PropertyGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x64' ">
-    <BaselinePackageVersion>3.0.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.0.2</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x64' AND '$(TargetFramework)' == 'net461' " />
   <!-- Package: AspNetCoreRuntime.3.0.x86-->
   <PropertyGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x86' ">
-    <BaselinePackageVersion>3.0.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.0.2</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x86' AND '$(TargetFramework)' == 'net461' " />
   <!-- Package: dotnet-sql-cache-->
   <PropertyGroup Condition=" '$(PackageId)' == 'dotnet-sql-cache' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.AspNetCore.ApiAuthorization.IdentityServer-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.1, )" />
     <BaselinePackageReference Include="IdentityServer4" Version="[3.0.0, )" />
     <BaselinePackageReference Include="IdentityServer4.AspNetIdentity" Version="[3.0.0, )" />
     <BaselinePackageReference Include="IdentityServer4.EntityFramework" Version="[3.0.0, )" />
     <BaselinePackageReference Include="IdentityServer4.EntityFramework.Storage" Version="[3.0.0, )" />
     <BaselinePackageReference Include="IdentityServer4.Storage" Version="[3.0.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.App.Runtime.win-x64-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.App.Runtime.win-x64' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.AspNetCore.Authentication.AzureAD.UI-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureAD.UI' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureAD.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Authentication.AzureADB2C.UI-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureADB2C.UI' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureADB2C.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Authentication.Certificate-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
   <!-- Package: Microsoft.AspNetCore.Authentication.Facebook-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
   <!-- Package: Microsoft.AspNetCore.Authentication.Google-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
   <!-- Package: Microsoft.AspNetCore.Authentication.JwtBearer-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
     <BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Authentication.MicrosoftAccount-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
   <!-- Package: Microsoft.AspNetCore.Authentication.Negotiate-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Negotiate' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Negotiate' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Authentication.OpenIdConnect-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
     <BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Authentication.Twitter-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
   <!-- Package: Microsoft.AspNetCore.Authentication.WsFederation-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
     <BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.WsFederation" Version="[5.5.0, )" />
@@ -109,39 +109,39 @@
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Authorization-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.AzureAppServices.HostingStartup-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.AzureAppServices.SiteExtension-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.SiteExtension' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.SiteExtension' AND '$(TargetFramework)' == 'net461' ">
-    <BaselinePackageReference Include="Microsoft.Web.Xdt.Extensions" Version="[3.1.0-rtm.19566.1, )" />
+    <BaselinePackageReference Include="Microsoft.Web.Xdt.Extensions" Version="[3.1.1-servicing.19615.10, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.AzureAppServicesIntegration-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServicesIntegration' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServicesIntegration' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Blazor-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Blazor' ">
@@ -186,273 +186,273 @@
   </PropertyGroup>
   <!-- Package: Microsoft.AspNetCore.Components-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.ComponentModel.Annotations" Version="[4.7.0, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Components.Analyzers-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Analyzers' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.AspNetCore.Components.Authorization-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Components.Forms-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.ComponentModel.Annotations" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Components.Web-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.ConcurrencyLimiter-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Connections.Abstractions-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.0, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.0, )" />
     <BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.0, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netstandard2.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Cryptography.Internal-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' AND '$(TargetFramework)' == 'netstandard2.0' " />
   <!-- Package: Microsoft.AspNetCore.Cryptography.KeyDerivation-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netcoreapp2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.DataProtection-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
     <BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
     <BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
     <BaselinePackageReference Include="System.Security.Principal.Windows" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.DataProtection.Abstractions-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' " />
   <!-- Package: Microsoft.AspNetCore.DataProtection.AzureKeyVault-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureKeyVault' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureKeyVault' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Microsoft.Azure.KeyVault" Version="[2.3.2, )" />
     <BaselinePackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="[3.19.8, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.DataProtection.AzureStorage-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureStorage' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureStorage' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Microsoft.Azure.Storage.Blob" Version="[10.0.1, )" />
     <BaselinePackageReference Include="Microsoft.Data.OData" Version="[5.8.4, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.DataProtection.EntityFrameworkCore-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.DataProtection.Extensions-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.DataProtection.StackExchangeRedis-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.StackExchangeRedis' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.StackExchangeRedis' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.1, )" />
     <BaselinePackageReference Include="StackExchange.Redis" Version="[2.0.593, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.HeaderPropagation-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Hosting.WindowsServices-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
     <BaselinePackageReference Include="System.ServiceProcess.ServiceController" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Http.Connections.Client-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' AND '$(TargetFramework)' == 'netstandard2.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Http.Connections.Common-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.Text.Json" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Http.Features-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.0, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Identity.EntityFrameworkCore-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Identity.Specification.Tests-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.Specification.Tests' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.Specification.Tests' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Testing" Version="[3.1.0-rtm.19565.4, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Configuration" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Testing" Version="[3.1.1-servicing.19614.4, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Configuration" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.1, )" />
     <BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
     <BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Identity.UI-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.UI' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.JsonPatch-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' AND '$(TargetFramework)' == 'netstandard2.0' ">
     <BaselinePackageReference Include="Microsoft.CSharp" Version="[4.7.0, )" />
@@ -460,236 +460,238 @@
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Metadata-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' AND '$(TargetFramework)' == 'netstandard2.0' " />
   <!-- Package: Microsoft.AspNetCore.MiddlewareAnalysis-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.MiddlewareAnalysis' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.MiddlewareAnalysis' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Mvc.NewtonsoftJson-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
     <BaselinePackageReference Include="Newtonsoft.Json.Bson" Version="[1.0.2, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.CodeAnalysis.Razor" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.CodeAnalysis.Razor" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Mvc.Testing-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.TestHost" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Hosting" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.TestHost" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Hosting" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.NodeServices-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.NodeServices' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.NodeServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Console" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Console" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Owin-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
   <!-- Package: Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Libuv" Version="[1.10.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.Client-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Client.Core" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Client" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Client.Core" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Client" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.Client.Core-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.0, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' AND '$(TargetFramework)' == 'netstandard2.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.Common-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
     <BaselinePackageReference Include="System.Text.Json" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.Protocols.Json-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.Protocols.MessagePack-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.MessagePack' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.MessagePack' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.1, )" />
     <BaselinePackageReference Include="MessagePack" Version="[1.7.3.7, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.1, )" />
     <BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.Specification.Tests-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Specification.Tests' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Specification.Tests' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.1, )" />
     <BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
     <BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SignalR.StackExchangeRedis-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
     <BaselinePackageReference Include="MessagePack" Version="[1.7.3.7, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
     <BaselinePackageReference Include="StackExchange.Redis" Version="[2.0.593, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SpaServices-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.NodeServices" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.NodeServices" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.SpaServices.Extensions-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.SpaServices" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.SpaServices" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.TestHost-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
     <BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.0, )" />
   </ItemGroup>
   <!-- Package: Microsoft.dotnet-openapi-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.dotnet-openapi' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.DotNet.Web.Client.ItemTemplates-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.Client.ItemTemplates' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.DotNet.Web.ItemTemplates-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.ItemTemplates' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.DotNet.Web.ProjectTemplates.3.1-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.ProjectTemplates.3.1' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.Extensions.ApiDescription.Client-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Client' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.Extensions.ApiDescription.Server-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Server' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <!-- Package: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
-    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.Extensions.Identity.Core-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.1, )" />
   </ItemGroup>
   <!-- Package: Microsoft.Extensions.Identity.Stores-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' ">
-    <BaselinePackageVersion>3.1.0</BaselinePackageVersion>
+    <BaselinePackageVersion>3.1.1</BaselinePackageVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.1, )" />
   </ItemGroup>
   <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' AND '$(TargetFramework)' == 'netstandard2.0' ">
-    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.0, )" />
-    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.1, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.1, )" />
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/eng/Baseline.xml b/eng/Baseline.xml
index 9a5276d72971de0d2adeda0935e20c9f79ccefdb..0954489adee2983cca9d498e1b3754efb348733e 100644
--- a/eng/Baseline.xml
+++ b/eng/Baseline.xml
@@ -4,86 +4,86 @@ This file contains a list of all the packages and their versions which were rele
 Update this list when preparing for a new patch.
 
 -->
-<Baseline Version="3.1.0">
-  <Package Id="AspNetCoreRuntime.3.0.x64" Version="3.0.0" />
-  <Package Id="AspNetCoreRuntime.3.0.x86" Version="3.0.0" />
-  <Package Id="dotnet-sql-cache" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.App.Runtime.win-x64" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.Certificate" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.Google" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.Negotiate" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.Twitter" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authentication.WsFederation" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Authorization" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="3.1.0" />
+<Baseline Version="3.1.2">
+  <Package Id="AspNetCoreRuntime.3.0.x64" Version="3.0.2" />
+  <Package Id="AspNetCoreRuntime.3.0.x86" Version="3.0.2" />
+  <Package Id="dotnet-sql-cache" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.App.Runtime.win-x64" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.Certificate" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.Google" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.Negotiate" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.Twitter" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authentication.WsFederation" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Authorization" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="3.1.1" />
   <Package Id="Microsoft.AspNetCore.Blazor" Version="3.0.0-preview9.19465.2" />
   <Package Id="Microsoft.AspNetCore.Blazor.Build" Version="3.0.0-preview9.19465.2" />
   <Package Id="Microsoft.AspNetCore.Blazor.DevServer" Version="3.0.0-preview9.19465.2" />
   <Package Id="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.0.0-preview9.19465.2" />
   <Package Id="Microsoft.AspNetCore.Blazor.Server" Version="3.0.0-preview9.19465.2" />
   <Package Id="Microsoft.AspNetCore.Blazor.Templates" Version="3.0.0-preview9.19465.2" />
-  <Package Id="Microsoft.AspNetCore.Components" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Components.Analyzers" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Components.Authorization" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Components.Forms" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Components.Web" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.ConcurrencyLimiter" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Cryptography.Internal" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.DataProtection" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.DataProtection.Extensions" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.HeaderPropagation" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Hosting.WindowsServices" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Http.Connections.Client" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Http.Connections.Common" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Http.Features" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Identity.Specification.Tests" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Identity.UI" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.JsonPatch" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Metadata" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.MiddlewareAnalysis" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.NodeServices" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Owin" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.Client" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.Client.Core" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.Common" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.Specification.Tests" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SpaServices" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.0" />
-  <Package Id="Microsoft.AspNetCore.TestHost" Version="3.1.0" />
-  <Package Id="Microsoft.dotnet-openapi" Version="3.1.0" />
-  <Package Id="Microsoft.DotNet.Web.Client.ItemTemplates" Version="3.1.0" />
-  <Package Id="Microsoft.DotNet.Web.ItemTemplates" Version="3.1.0" />
-  <Package Id="Microsoft.DotNet.Web.ProjectTemplates.3.1" Version="3.1.0" />
-  <Package Id="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" Version="3.1.0" />
-  <Package Id="Microsoft.Extensions.ApiDescription.Client" Version="3.1.0" />
-  <Package Id="Microsoft.Extensions.ApiDescription.Server" Version="3.1.0" />
-  <Package Id="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="3.1.0" />
-  <Package Id="Microsoft.Extensions.Identity.Core" Version="3.1.0" />
-  <Package Id="Microsoft.Extensions.Identity.Stores" Version="3.1.0" />
+  <Package Id="Microsoft.AspNetCore.Components" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Components.Analyzers" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Components.Authorization" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Components.Forms" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Components.Web" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.ConcurrencyLimiter" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Cryptography.Internal" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.DataProtection" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.DataProtection.Extensions" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.HeaderPropagation" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Hosting.WindowsServices" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Http.Connections.Client" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Http.Connections.Common" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Http.Features" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Identity.Specification.Tests" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Identity.UI" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.JsonPatch" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Metadata" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.MiddlewareAnalysis" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.NodeServices" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Owin" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.Client" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.Client.Core" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.Common" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.Specification.Tests" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SpaServices" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.1" />
+  <Package Id="Microsoft.AspNetCore.TestHost" Version="3.1.1" />
+  <Package Id="Microsoft.dotnet-openapi" Version="3.1.1" />
+  <Package Id="Microsoft.DotNet.Web.Client.ItemTemplates" Version="3.1.1" />
+  <Package Id="Microsoft.DotNet.Web.ItemTemplates" Version="3.1.1" />
+  <Package Id="Microsoft.DotNet.Web.ProjectTemplates.3.1" Version="3.1.1" />
+  <Package Id="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" Version="3.1.1" />
+  <Package Id="Microsoft.Extensions.ApiDescription.Client" Version="3.1.1" />
+  <Package Id="Microsoft.Extensions.ApiDescription.Server" Version="3.1.1" />
+  <Package Id="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="3.1.1" />
+  <Package Id="Microsoft.Extensions.Identity.Core" Version="3.1.1" />
+  <Package Id="Microsoft.Extensions.Identity.Stores" Version="3.1.1" />
 </Baseline>
diff --git a/eng/Build.props b/eng/Build.props
index 876c87b6f4f80ad2d94e7f78ad316a5b5f776ed2..58deebde93f95dc7dcd45db8b2223c5c5f9d427f 100644
--- a/eng/Build.props
+++ b/eng/Build.props
@@ -141,6 +141,7 @@
                           $(RepoRoot)src\Servers\**\*.csproj;
                           $(RepoRoot)src\Security\**\*.*proj;
                           $(RepoRoot)src\SiteExtensions\Microsoft.Web.Xdt.Extensions\**\*.csproj;
+                          $(RepoRoot)src\SiteExtensions\LoggingAggregate\test\**\*.csproj;
                           $(RepoRoot)src\Shared\**\*.*proj;
                           $(RepoRoot)src\Tools\**\*.*proj;
                           $(RepoRoot)src\Middleware\**\*.csproj;
@@ -159,7 +160,35 @@
                           @(ProjectToExclude);
                           $(RepoRoot)**\node_modules\**\*;
                           $(RepoRoot)**\bin\**\*;
-                          $(RepoRoot)**\obj\**\*;" />
+                          $(RepoRoot)**\obj\**\*;"
+                        Condition=" '$(BuildMainlyReferenceProviders)' != 'true' " />
+        <DotNetProjects Include="
+                          $(RepoRoot)src\DefaultBuilder\**\src\*.csproj;
+                          $(RepoRoot)src\Features\JsonPatch\**\src\*.csproj;
+                          $(RepoRoot)src\DataProtection\**\src\*.csproj;
+                          $(RepoRoot)src\Antiforgery\**\src\*.csproj;
+                          $(RepoRoot)src\Hosting\**\src\*.csproj;
+                          $(RepoRoot)src\Http\**\src\*.csproj;
+                          $(RepoRoot)src\Html\**\src\*.csproj;
+                          $(RepoRoot)src\Identity\**\src\*.csproj;
+                          $(RepoRoot)src\Servers\**\src\*.csproj;
+                          $(RepoRoot)src\Security\**\src\*.csproj;
+                          $(RepoRoot)src\SiteExtensions\**\src\*.csproj;
+                          $(RepoRoot)src\Tools\**\src\*.csproj;
+                          $(RepoRoot)src\Middleware\**\src\*.csproj;
+                          $(RepoRoot)src\Razor\**\src\*.csproj;
+                          $(RepoRoot)src\Mvc\**\src\*.csproj;
+                          $(RepoRoot)src\Azure\**\src\*.csproj;
+                          $(RepoRoot)src\SignalR\**\src\*.csproj;
+                          $(RepoRoot)src\Components\**\src\*.csproj;
+                          "
+                        Exclude="
+                          @(ProjectToBuild);
+                          @(ProjectToExclude);
+                          $(RepoRoot)**\node_modules\**\*;
+                          $(RepoRoot)**\bin\**\*;
+                          $(RepoRoot)**\obj\**\*;"
+                        Condition=" '$(BuildMainlyReferenceProviders)' == 'true' " />
 
         <ProjectToBuild Condition=" '$(BuildManaged)' == 'true'" Include="@(DotNetProjects)" Exclude="@(ProjectToExclude)" />
         <ProjectToExclude Condition=" '$(BuildManaged)' != 'true'" Include="@(DotNetProjects)" />
diff --git a/eng/CodeGen.proj b/eng/CodeGen.proj
index e2b6785f30d0b6851df37d22967ff7d9392da564..72c13a69ba5c6748869e3f2dc23472010ae6af20 100644
--- a/eng/CodeGen.proj
+++ b/eng/CodeGen.proj
@@ -3,6 +3,7 @@
   <PropertyGroup>
     <BuildManaged>true</BuildManaged>
     <RepoRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', '..'))</RepoRoot>
+    <BuildMainlyReferenceProviders>true</BuildMainlyReferenceProviders>
   </PropertyGroup>
 
   <Import Project="Build.props" />
@@ -15,13 +16,12 @@
              BuildInParallel="true"
              SkipNonexistentTargets="true"
              SkipNonexistentProjects="true" >
-
       <Output TaskParameter="TargetOutputs" ItemName="_ProjectReferenceProvider"/>
     </MSBuild>
 
     <ItemGroup>
-      <_SharedFrameworkAndPackageRef Include="@(_ProjectReferenceProvider->WithMetadataValue('IsAspNetCoreApp','true')->WithMetadataValue('IsShippingPackage', 'true')->Distinct())" />
-      <_SharedFrameworkRef Include="@(_ProjectReferenceProvider->WithMetadataValue('IsAspNetCoreApp','true')->WithMetadataValue('IsShippingPackage', 'false')->Distinct())" />
+      <_SharedFrameworkAndPackageRef Include="@(_ProjectReferenceProvider->WithMetadataValue('IsAspNetCoreApp','true')->WithMetadataValue('IsPackable', 'true')->Distinct())" />
+      <_SharedFrameworkRef Include="@(_ProjectReferenceProvider->WithMetadataValue('IsAspNetCoreApp','true')->WithMetadataValue('IsPackable', 'false')->Distinct())" />
       <_ProjectReferenceProviderWithRefAssembly Include="@(_ProjectReferenceProvider->HasMetadata('ReferenceAssemblyProjectFileRelativePath'))" />
       <_ProjectReferenceProvider Remove="@(_ProjectReferenceProviderWithRefAssembly)" />
     </ItemGroup>
@@ -58,7 +58,7 @@
 
   This file contains a complete list of the assemblies which are part of the shared framework.
 
-  This project is generated using the <IsAspNetCoreApp> and <IsShippingPackage> properties from each .csproj in this repository.
+  This project is generated using the <IsAspNetCoreApp> and <IsPackable> properties from each .csproj in this repository.
 -->
 <Project>
   <ItemGroup>
@@ -85,4 +85,4 @@
           SkipNonexistentProjects="true" />
   </Target>
 
-</Project>
\ No newline at end of file
+</Project>
diff --git a/eng/Dependencies.props b/eng/Dependencies.props
index 2bedb5af612d2bf7f4f193c194ee213c33ff903c..6a577b9fdefb4615248cd60235d0cf17a8481b00 100644
--- a/eng/Dependencies.props
+++ b/eng/Dependencies.props
@@ -82,12 +82,14 @@ and are generated based on the last package release.
     <LatestPackageReference Include="Microsoft.Extensions.WebEncoders" Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
     <LatestPackageReference Include="Microsoft.JSInterop" Version="$(MicrosoftJSInteropPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Win32.SystemEvents" Version="$(MicrosoftWin32SystemEventsPackageVersion)" />
     <LatestPackageReference Include="System.Buffers" Version="$(SystemBuffersPackageVersion)" />
     <LatestPackageReference Include="System.CodeDom" Version="$(SystemCodeDomPackageVersion)" />
     <LatestPackageReference Include="System.CommandLine.Experimental" Version="$(SystemCommandlineExperimentalPackageVersion)" />
     <LatestPackageReference Include="System.ComponentModel" Version="$(SystemComponentModelPackageVersion)" />
     <LatestPackageReference Include="System.ComponentModel.Annotations" Version="$(SystemComponentModelAnnotationsPackageVersion)" />
     <LatestPackageReference Include="System.Diagnostics.EventLog" Version="$(SystemDiagnosticsEventLogPackageVersion)" />
+    <LatestPackageReference Include="System.Drawing.Common" Version="$(SystemDrawingCommonPackageVersion)" />
     <LatestPackageReference Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" />
     <LatestPackageReference Include="System.Net.Http" Version="$(SystemNetHttpPackageVersion)" />
     <LatestPackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataPackageVersion)" />
@@ -99,6 +101,7 @@ and are generated based on the last package release.
     <LatestPackageReference Include="System.Security.Principal.Windows" Version="$(SystemSecurityPrincipalWindowsPackageVersion)" />
     <LatestPackageReference Include="System.Text.Json" Version="$(SystemTextJsonPackageVersion)" />
     <LatestPackageReference Include="System.Threading.Channels" Version="$(SystemThreadingChannelsPackageVersion)" />
+    <LatestPackageReference Include="System.Windows.Extensions" Version="$(SystemWindowsExtensionsPackageVersion)" />
 
     <!-- Runtime packages required for crossgen -->
     <LatestPackageReference Include="microsoft.netcore.app.runtime.win-x64" Version="$(MicrosoftNETCoreAppRuntimeVersion)" />
diff --git a/eng/GenAPI.exclusions.txt b/eng/GenAPI.exclusions.txt
index ebabc0ac7de5fb3aefd901854e9ecc9751c62722..810c09e52c573070a18c569ba46a776802d4c5ba 100644
--- a/eng/GenAPI.exclusions.txt
+++ b/eng/GenAPI.exclusions.txt
@@ -2,4 +2,24 @@
 T:Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame
 # Manually implemented - https://github.com/dotnet/arcade/issues/2066
 T:Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel
-T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
\ No newline at end of file
+T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
+# Manually implemented - Need to include internal setter
+P:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.Cache
+P:Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.Conventions
+P:Microsoft.AspNetCore.Routing.Matching.CandidateState.Values
+P:Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.KestrelServerOptions
+# public structs with public fields that GenAPI doesn't handle
+T:Microsoft.AspNetCore.Components.EventCallback
+T:Microsoft.AspNetCore.Components.EventCallback`1
+# Break GenAPI - https://github.com/dotnet/arcade/issues/4488
+T:Microsoft.AspNetCore.Components.Rendering.HtmlRenderer.<CreateInitialRenderAsync>d__17
+T:Microsoft.AspNetCore.Components.Rendering.HtmlRenderer.<RenderComponentAsync>d__8
+T:Microsoft.AspNetCore.Mvc.ApplicationModels.ActionAttributeRouteModel.<>c
+T:Microsoft.AspNetCore.Mvc.ApplicationModels.ActionAttributeRouteModel.<GetAttributeRoutes>d__3
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__181`1
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__183`1
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__184`1
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__187
+T:Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.<>c__DisplayClass0_0
+T:Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.<TryCreateAsync>d__4
+T:Microsoft.AspNetCore.Mvc.Routing.ConsumesMatcherPolicy.<>c
diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props
deleted file mode 100644
index 60adba37fa3f344fd1262edc0a4432577d326e0a..0000000000000000000000000000000000000000
--- a/eng/PatchConfig.props
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
-
-This file contains a list of the package IDs which are patching in a given release.
-
-CAUTION: due to limitations in MSBuild, the format of the PackagesInPatch property is picky.
-When adding a new package, make sure the new line ends with a semicolon and starts with a space.
-
-Directory.Build.props checks this property using the following condition:
-    <IsPackageInThisPatch>$(PackagesInPatch.Contains(' $(PackageId);'))</IsPackageInThisPatch>
--->
-<Project>
-  <PropertyGroup>
-    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
-  </PropertyGroup>
-
-  <PropertyGroup Condition=" '$(VersionPrefix)' == '3.0.1' ">
-    <PackagesInPatch>
-      Microsoft.Net.Http.Headers;
-      Microsoft.AspNetCore.CookiePolicy;
-      Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
-      @microsoft/signalr;
-      Microsoft.Net.Http.Headers;
-      Microsoft.AspNetCore.Http.Abstractions;
-      Microsoft.AspNetCore.Http.Features;
-      Microsoft.AspNetCore.CookiePolicy;
-    </PackagesInPatch>
-  </PropertyGroup>
-</Project>
diff --git a/eng/PlatformManifest.txt b/eng/PlatformManifest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1d5a81f5172a31425c51ad5e5aff47d777bdd6c9
--- /dev/null
+++ b/eng/PlatformManifest.txt
@@ -0,0 +1,131 @@
+aspnetcorev2_inprocess.dll|Microsoft.AspNetCore.App.Ref||13.1.19320.0
+Microsoft.AspNetCore.Antiforgery.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Authentication.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Authentication.Cookies.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Authentication.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Authentication.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Authentication.OAuth.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Authorization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Authorization.Policy.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Components.Authorization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Components.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Components.Forms.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Components.Server.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Components.Web.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Connections.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.CookiePolicy.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Cors.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Cryptography.Internal.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Cryptography.KeyDerivation.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.DataProtection.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.DataProtection.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.DataProtection.Extensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Diagnostics.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Diagnostics.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Diagnostics.HealthChecks.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.HostFiltering.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Hosting.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Hosting.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Hosting.Server.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Html.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Http.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Http.Connections.Common.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Http.Connections.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Http.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Http.Extensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Http.Features.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.HttpOverrides.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.HttpsPolicy.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Identity.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Localization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Localization.Routing.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Metadata.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.ApiExplorer.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.Cors.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.DataAnnotations.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.Formatters.Json.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.Formatters.Xml.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.Localization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.Razor.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.RazorPages.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.TagHelpers.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Mvc.ViewFeatures.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Razor.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Razor.Runtime.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.ResponseCaching.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.ResponseCaching.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.ResponseCompression.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Rewrite.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Routing.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Routing.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Server.HttpSys.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Server.IIS.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Server.IISIntegration.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Server.Kestrel.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Server.Kestrel.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.Session.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.SignalR.Common.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.SignalR.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.SignalR.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.SignalR.Protocols.Json.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.StaticFiles.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.WebSockets.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.AspNetCore.WebUtilities.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.Extensions.Caching.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Caching.Memory.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.Binder.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.CommandLine.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.EnvironmentVariables.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.FileExtensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.Ini.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.Json.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.KeyPerFile.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.UserSecrets.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Configuration.Xml.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.DependencyInjection.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.DependencyInjection.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Diagnostics.HealthChecks.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.FileProviders.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.FileProviders.Composite.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.FileProviders.Embedded.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.FileProviders.Physical.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.FileSystemGlobbing.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Hosting.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Hosting.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Http.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Identity.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.Extensions.Identity.Stores.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.Extensions.Localization.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Localization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.Configuration.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.Console.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.Debug.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.EventLog.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.EventSource.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Logging.TraceSource.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.ObjectPool.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Options.ConfigurationExtensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Options.DataAnnotations.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Options.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.Primitives.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Extensions.WebEncoders.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.JSInterop.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
+Microsoft.Net.Http.Headers.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
+Microsoft.Win32.SystemEvents.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
+System.Diagnostics.EventLog.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
+System.Drawing.Common.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
+System.IO.Pipelines.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
+System.Security.Cryptography.Pkcs.dll|Microsoft.AspNetCore.App.Ref|4.1.1.0|4.700.19.56404
+System.Security.Cryptography.Xml.dll|Microsoft.AspNetCore.App.Ref|4.0.3.0|4.700.19.56404
+System.Security.Permissions.dll|Microsoft.AspNetCore.App.Ref|4.0.3.0|4.700.19.56404
+System.Windows.Extensions.dll|Microsoft.AspNetCore.App.Ref|4.0.1.0|4.700.19.56404
\ No newline at end of file
diff --git a/eng/PoliCheckExclusions.xml b/eng/PoliCheckExclusions.xml
index 73e3072f1c6503ac56e9abcc088358ac29b5e875..49b67cd50f78d3e95e3fe2bb258bdc9ca0af79de 100644
--- a/eng/PoliCheckExclusions.xml
+++ b/eng/PoliCheckExclusions.xml
@@ -1,3 +1,3 @@
 <PoliCheckExclusions>
-	<Exclusion Type="FolderPathFull">LINUX_TEST_RESULTS|MACOS_TEST_RESULTS|WINDOWS_TEST_RESULTS</Exclusion>
-</PoliCheckExclusions>
\ No newline at end of file
+	<Exclusion Type="FolderPathFull">LINUX_TEST_RESULTS|MACOS_TEST_RESULTS|WINDOWS_TEST_RESULTS|LINUX_TEST_LOGS|MACOS_TEST_LOGS|WINDOWS_TEST_LOGS|WINDOWS_TEST_TEMPLATES_LOGS</Exclusion>
+</PoliCheckExclusions>
diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props
index 8d1040b1575c51045d3ee9bde61c8eaef644627e..1f404f69436d25997312f6dd9c60dd8af743af2f 100644
--- a/eng/ProjectReferences.props
+++ b/eng/ProjectReferences.props
@@ -5,39 +5,73 @@
 -->
 <Project>
   <ItemGroup>
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.JsonPatch" ProjectPath="$(RepoRoot)src\Features\JsonPatch\src\Microsoft.AspNetCore.JsonPatch.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" ProjectPath="$(RepoRoot)src\DataProtection\AzureKeyVault\src\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureStorage" ProjectPath="$(RepoRoot)src\DataProtection\AzureStorage\src\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\DataProtection\EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" ProjectPath="$(RepoRoot)src\DataProtection\StackExchangeRedis\src\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.TestHost" ProjectPath="$(RepoRoot)src\Hosting\TestHost\src\Microsoft.AspNetCore.TestHost.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.WindowsServices" ProjectPath="$(RepoRoot)src\Hosting\WindowsServices\src\Microsoft.AspNetCore.Hosting.WindowsServices.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Owin" ProjectPath="$(RepoRoot)src\Http\Owin\src\Microsoft.AspNetCore.Owin.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" ProjectPath="$(RepoRoot)src\Identity\ApiAuthorization.IdentityServer\src\Microsoft.AspNetCore.ApiAuthorization.IdentityServer.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Identity\EntityFrameworkCore\src\Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.Specification.Tests" ProjectPath="$(RepoRoot)src\Identity\Specification.Tests\src\Microsoft.AspNetCore.Identity.Specification.Tests.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.UI" ProjectPath="$(RepoRoot)src\Identity\UI\src\Microsoft.AspNetCore.Identity.UI.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Certificate" ProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\src\Microsoft.AspNetCore.Authentication.Certificate.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Facebook" ProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\src\Microsoft.AspNetCore.Authentication.Facebook.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Google" ProjectPath="$(RepoRoot)src\Security\Authentication\Google\src\Microsoft.AspNetCore.Authentication.Google.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.JwtBearer" ProjectPath="$(RepoRoot)src\Security\Authentication\JwtBearer\src\Microsoft.AspNetCore.Authentication.JwtBearer.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" ProjectPath="$(RepoRoot)src\Security\Authentication\MicrosoftAccount\src\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Negotiate" ProjectPath="$(RepoRoot)src\Security\Authentication\Negotiate\src\Microsoft.AspNetCore.Authentication.Negotiate.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" ProjectPath="$(RepoRoot)src\Security\Authentication\OpenIdConnect\src\Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Twitter" ProjectPath="$(RepoRoot)src\Security\Authentication\Twitter\src\Microsoft.AspNetCore.Authentication.Twitter.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.WsFederation" ProjectPath="$(RepoRoot)src\Security\Authentication\WsFederation\src\Microsoft.AspNetCore.Authentication.WsFederation.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.Web.Xdt.Extensions" ProjectPath="$(RepoRoot)src\SiteExtensions\Microsoft.Web.Xdt.Extensions\src\Microsoft.Web.Xdt.Extensions.csproj"  />
     <ProjectReferenceProvider Include="dotnet-getdocument" ProjectPath="$(RepoRoot)src\Tools\dotnet-getdocument\src\dotnet-getdocument.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.Extensions.ApiDescription.Client" ProjectPath="$(RepoRoot)src\Tools\Extensions.ApiDescription.Client\src\Microsoft.Extensions.ApiDescription.Client.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.Extensions.ApiDescription.Server" ProjectPath="$(RepoRoot)src\Tools\Extensions.ApiDescription.Server\src\Microsoft.Extensions.ApiDescription.Server.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" ProjectPath="$(RepoRoot)src\Tools\FirstRunCertGenerator\src\Microsoft.AspNetCore.DeveloperCertificates.XPlat.csproj"  />
     <ProjectReferenceProvider Include="GetDocument.Insider" ProjectPath="$(RepoRoot)src\Tools\GetDocumentInsider\src\GetDocumentInsider.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.ConcurrencyLimiter" ProjectPath="$(RepoRoot)src\Middleware\ConcurrencyLimiter\src\Microsoft.AspNetCore.ConcurrencyLimiter.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics.EntityFrameworkCore\src\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.HeaderPropagation" ProjectPath="$(RepoRoot)src\Middleware\HeaderPropagation\src\Microsoft.AspNetCore.HeaderPropagation.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\HealthChecks.EntityFrameworkCore\src\Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.MiddlewareAnalysis" ProjectPath="$(RepoRoot)src\Middleware\MiddlewareAnalysis\src\Microsoft.AspNetCore.MiddlewareAnalysis.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.NodeServices" ProjectPath="$(RepoRoot)src\Middleware\NodeServices\src\Microsoft.AspNetCore.NodeServices.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices.Extensions" ProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices" ProjectPath="$(RepoRoot)src\Middleware\SpaServices\src\Microsoft.AspNetCore.SpaServices.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" ProjectPath="$(RepoRoot)src\Mvc\Mvc.NewtonsoftJson\src\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor.RuntimeCompilation\src\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Testing" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Testing\src\Microsoft.AspNetCore.Mvc.Testing.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureAD.UI\src\Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureADB2C.UI\src\Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" ProjectPath="$(RepoRoot)src\Azure\AzureAppServices.HostingStartup\src\Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServicesIntegration" ProjectPath="$(RepoRoot)src\Azure\AzureAppServicesIntegration\src\Microsoft.AspNetCore.AzureAppServicesIntegration.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client.Core" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client.Core\src\Microsoft.AspNetCore.SignalR.Client.Core.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client\src\Microsoft.AspNetCore.SignalR.Client.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Http.Connections.Client\src\Microsoft.AspNetCore.Http.Connections.Client.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.MessagePack\src\Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.NewtonsoftJson\src\Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Specification.Tests" ProjectPath="$(RepoRoot)src\SignalR\server\Specification.Tests\src\Microsoft.AspNetCore.SignalR.Specification.Tests.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" ProjectPath="$(RepoRoot)src\SignalR\server\StackExchangeRedis\src\Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor" ProjectPath="$(RepoRoot)src\Components\Blazor\Blazor\src\Microsoft.AspNetCore.Blazor.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Build" ProjectPath="$(RepoRoot)src\Components\Blazor\Build\src\Microsoft.AspNetCore.Blazor.Build.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.HttpClient" ProjectPath="$(RepoRoot)src\Components\Blazor\Http\src\Microsoft.AspNetCore.Blazor.HttpClient.csproj"  />
     <ProjectReferenceProvider Include="Mono.WebAssembly.Interop" ProjectPath="$(RepoRoot)src\Components\Blazor\Mono.WebAssembly.Interop\src\Mono.WebAssembly.Interop.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Server" ProjectPath="$(RepoRoot)src\Components\Blazor\Server\src\Microsoft.AspNetCore.Blazor.Server.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.DataAnnotations.Validation" ProjectPath="$(RepoRoot)src\Components\Blazor\Validation\src\Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.csproj"  />
     <ProjectReferenceProvider Include="Ignitor" ProjectPath="$(RepoRoot)src\Components\Ignitor\src\Ignitor.csproj"  />
-    <ProjectReferenceProvider Include="BlazorServerApp" ProjectPath="$(RepoRoot)src\Components\Samples\BlazorServerApp\BlazorServerApp.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore" ProjectPath="$(RepoRoot)src\DefaultBuilder\src\Microsoft.AspNetCore.csproj" RefProjectPath="$(RepoRoot)src\DefaultBuilder\ref\Microsoft.AspNetCore.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.JsonPatch" ProjectPath="$(RepoRoot)src\Features\JsonPatch\src\Microsoft.AspNetCore.JsonPatch.csproj" RefProjectPath="$(RepoRoot)src\Features\JsonPatch\ref\Microsoft.AspNetCore.JsonPatch.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.Abstractions" ProjectPath="$(RepoRoot)src\DataProtection\Abstractions\src\Microsoft.AspNetCore.DataProtection.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Abstractions\ref\Microsoft.AspNetCore.DataProtection.Abstractions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" ProjectPath="$(RepoRoot)src\DataProtection\AzureKeyVault\src\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\AzureKeyVault\ref\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureStorage" ProjectPath="$(RepoRoot)src\DataProtection\AzureStorage\src\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\AzureStorage\ref\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Cryptography.Internal" ProjectPath="$(RepoRoot)src\DataProtection\Cryptography.Internal\src\Microsoft.AspNetCore.Cryptography.Internal.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Cryptography.Internal\ref\Microsoft.AspNetCore.Cryptography.Internal.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" ProjectPath="$(RepoRoot)src\DataProtection\Cryptography.KeyDerivation\src\Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Cryptography.KeyDerivation\ref\Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection" ProjectPath="$(RepoRoot)src\DataProtection\DataProtection\src\Microsoft.AspNetCore.DataProtection.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\DataProtection\ref\Microsoft.AspNetCore.DataProtection.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\DataProtection\EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\EntityFrameworkCore\ref\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.Extensions" ProjectPath="$(RepoRoot)src\DataProtection\Extensions\src\Microsoft.AspNetCore.DataProtection.Extensions.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Extensions\ref\Microsoft.AspNetCore.DataProtection.Extensions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" ProjectPath="$(RepoRoot)src\DataProtection\StackExchangeRedis\src\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\StackExchangeRedis\ref\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Antiforgery" ProjectPath="$(RepoRoot)src\Antiforgery\src\Microsoft.AspNetCore.Antiforgery.csproj" RefProjectPath="$(RepoRoot)src\Antiforgery\ref\Microsoft.AspNetCore.Antiforgery.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.Abstractions" ProjectPath="$(RepoRoot)src\Hosting\Abstractions\src\Microsoft.AspNetCore.Hosting.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Hosting\Abstractions\ref\Microsoft.AspNetCore.Hosting.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting" ProjectPath="$(RepoRoot)src\Hosting\Hosting\src\Microsoft.AspNetCore.Hosting.csproj" RefProjectPath="$(RepoRoot)src\Hosting\Hosting\ref\Microsoft.AspNetCore.Hosting.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" ProjectPath="$(RepoRoot)src\Hosting\Server.Abstractions\src\Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Hosting\Server.Abstractions\ref\Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.TestHost" ProjectPath="$(RepoRoot)src\Hosting\TestHost\src\Microsoft.AspNetCore.TestHost.csproj" RefProjectPath="$(RepoRoot)src\Hosting\TestHost\ref\Microsoft.AspNetCore.TestHost.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.WindowsServices" ProjectPath="$(RepoRoot)src\Hosting\WindowsServices\src\Microsoft.AspNetCore.Hosting.WindowsServices.csproj" RefProjectPath="$(RepoRoot)src\Hosting\WindowsServices\ref\Microsoft.AspNetCore.Hosting.WindowsServices.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Abstractions" ProjectPath="$(RepoRoot)src\Http\Authentication.Abstractions\src\Microsoft.AspNetCore.Authentication.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Http\Authentication.Abstractions\ref\Microsoft.AspNetCore.Authentication.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Core" ProjectPath="$(RepoRoot)src\Http\Authentication.Core\src\Microsoft.AspNetCore.Authentication.Core.csproj" RefProjectPath="$(RepoRoot)src\Http\Authentication.Core\ref\Microsoft.AspNetCore.Authentication.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.Net.Http.Headers" ProjectPath="$(RepoRoot)src\Http\Headers\src\Microsoft.Net.Http.Headers.csproj" RefProjectPath="$(RepoRoot)src\Http\Headers\ref\Microsoft.Net.Http.Headers.csproj" />
@@ -46,62 +80,41 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Features" ProjectPath="$(RepoRoot)src\Http\Http.Features\src\Microsoft.AspNetCore.Http.Features.csproj" RefProjectPath="$(RepoRoot)src\Http\Http.Features\ref\Microsoft.AspNetCore.Http.Features.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http" ProjectPath="$(RepoRoot)src\Http\Http\src\Microsoft.AspNetCore.Http.csproj" RefProjectPath="$(RepoRoot)src\Http\Http\ref\Microsoft.AspNetCore.Http.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Metadata" ProjectPath="$(RepoRoot)src\Http\Metadata\src\Microsoft.AspNetCore.Metadata.csproj" RefProjectPath="$(RepoRoot)src\Http\Metadata\ref\Microsoft.AspNetCore.Metadata.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Owin" ProjectPath="$(RepoRoot)src\Http\Owin\src\Microsoft.AspNetCore.Owin.csproj" RefProjectPath="$(RepoRoot)src\Http\Owin\ref\Microsoft.AspNetCore.Owin.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Routing.Abstractions" ProjectPath="$(RepoRoot)src\Http\Routing.Abstractions\src\Microsoft.AspNetCore.Routing.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Http\Routing.Abstractions\ref\Microsoft.AspNetCore.Routing.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Routing" ProjectPath="$(RepoRoot)src\Http\Routing\src\Microsoft.AspNetCore.Routing.csproj" RefProjectPath="$(RepoRoot)src\Http\Routing\ref\Microsoft.AspNetCore.Routing.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.WebUtilities" ProjectPath="$(RepoRoot)src\Http\WebUtilities\src\Microsoft.AspNetCore.WebUtilities.csproj" RefProjectPath="$(RepoRoot)src\Http\WebUtilities\ref\Microsoft.AspNetCore.WebUtilities.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Html.Abstractions" ProjectPath="$(RepoRoot)src\Html\Abstractions\src\Microsoft.AspNetCore.Html.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Html\Abstractions\ref\Microsoft.AspNetCore.Html.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity" ProjectPath="$(RepoRoot)src\Identity\Core\src\Microsoft.AspNetCore.Identity.csproj" RefProjectPath="$(RepoRoot)src\Identity\Core\ref\Microsoft.AspNetCore.Identity.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Identity\EntityFrameworkCore\src\Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\Identity\EntityFrameworkCore\ref\Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.Extensions.Identity.Core" ProjectPath="$(RepoRoot)src\Identity\Extensions.Core\src\Microsoft.Extensions.Identity.Core.csproj" RefProjectPath="$(RepoRoot)src\Identity\Extensions.Core\ref\Microsoft.Extensions.Identity.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.Extensions.Identity.Stores" ProjectPath="$(RepoRoot)src\Identity\Extensions.Stores\src\Microsoft.Extensions.Identity.Stores.csproj" RefProjectPath="$(RepoRoot)src\Identity\Extensions.Stores\ref\Microsoft.Extensions.Identity.Stores.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.UI" ProjectPath="$(RepoRoot)src\Identity\UI\src\Microsoft.AspNetCore.Identity.UI.csproj" RefProjectPath="$(RepoRoot)src\Identity\UI\ref\Microsoft.AspNetCore.Identity.UI.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Connections.Abstractions" ProjectPath="$(RepoRoot)src\Servers\Connections.Abstractions\src\Microsoft.AspNetCore.Connections.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Servers\Connections.Abstractions\ref\Microsoft.AspNetCore.Connections.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.HttpSys" ProjectPath="$(RepoRoot)src\Servers\HttpSys\src\Microsoft.AspNetCore.Server.HttpSys.csproj" RefProjectPath="$(RepoRoot)src\Servers\HttpSys\ref\Microsoft.AspNetCore.Server.HttpSys.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IISIntegration" ProjectPath="$(RepoRoot)src\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj" RefProjectPath="$(RepoRoot)src\Servers\IIS\IISIntegration\ref\Microsoft.AspNetCore.Server.IISIntegration.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IIS" ProjectPath="$(RepoRoot)src\Servers\IIS\IIS\src\Microsoft.AspNetCore.Server.IIS.csproj" RefProjectPath="$(RepoRoot)src\Servers\IIS\IIS\ref\Microsoft.AspNetCore.Server.IIS.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Core" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Core\src\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Core\ref\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Kestrel\ref\Microsoft.AspNetCore.Server.Kestrel.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Quic" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Quic\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Quic\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Sockets\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Sockets\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Certificate" ProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\src\Microsoft.AspNetCore.Authentication.Certificate.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\ref\Microsoft.AspNetCore.Authentication.Certificate.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Cookies" ProjectPath="$(RepoRoot)src\Security\Authentication\Cookies\src\Microsoft.AspNetCore.Authentication.Cookies.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Cookies\ref\Microsoft.AspNetCore.Authentication.Cookies.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication" ProjectPath="$(RepoRoot)src\Security\Authentication\Core\src\Microsoft.AspNetCore.Authentication.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Core\ref\Microsoft.AspNetCore.Authentication.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Facebook" ProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\src\Microsoft.AspNetCore.Authentication.Facebook.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\ref\Microsoft.AspNetCore.Authentication.Facebook.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Google" ProjectPath="$(RepoRoot)src\Security\Authentication\Google\src\Microsoft.AspNetCore.Authentication.Google.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Google\ref\Microsoft.AspNetCore.Authentication.Google.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.JwtBearer" ProjectPath="$(RepoRoot)src\Security\Authentication\JwtBearer\src\Microsoft.AspNetCore.Authentication.JwtBearer.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\JwtBearer\ref\Microsoft.AspNetCore.Authentication.JwtBearer.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" ProjectPath="$(RepoRoot)src\Security\Authentication\MicrosoftAccount\src\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\MicrosoftAccount\ref\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Negotiate" ProjectPath="$(RepoRoot)src\Security\Authentication\Negotiate\src\Microsoft.AspNetCore.Authentication.Negotiate.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Negotiate\ref\Microsoft.AspNetCore.Authentication.Negotiate.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.OAuth" ProjectPath="$(RepoRoot)src\Security\Authentication\OAuth\src\Microsoft.AspNetCore.Authentication.OAuth.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\OAuth\ref\Microsoft.AspNetCore.Authentication.OAuth.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" ProjectPath="$(RepoRoot)src\Security\Authentication\OpenIdConnect\src\Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\OpenIdConnect\ref\Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Twitter" ProjectPath="$(RepoRoot)src\Security\Authentication\Twitter\src\Microsoft.AspNetCore.Authentication.Twitter.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Twitter\ref\Microsoft.AspNetCore.Authentication.Twitter.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.WsFederation" ProjectPath="$(RepoRoot)src\Security\Authentication\WsFederation\src\Microsoft.AspNetCore.Authentication.WsFederation.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\WsFederation\ref\Microsoft.AspNetCore.Authentication.WsFederation.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authorization" ProjectPath="$(RepoRoot)src\Security\Authorization\Core\src\Microsoft.AspNetCore.Authorization.csproj" RefProjectPath="$(RepoRoot)src\Security\Authorization\Core\ref\Microsoft.AspNetCore.Authorization.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authorization.Policy" ProjectPath="$(RepoRoot)src\Security\Authorization\Policy\src\Microsoft.AspNetCore.Authorization.Policy.csproj" RefProjectPath="$(RepoRoot)src\Security\Authorization\Policy\ref\Microsoft.AspNetCore.Authorization.Policy.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.CookiePolicy" ProjectPath="$(RepoRoot)src\Security\CookiePolicy\src\Microsoft.AspNetCore.CookiePolicy.csproj" RefProjectPath="$(RepoRoot)src\Security\CookiePolicy\ref\Microsoft.AspNetCore.CookiePolicy.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.ConcurrencyLimiter" ProjectPath="$(RepoRoot)src\Middleware\ConcurrencyLimiter\src\Microsoft.AspNetCore.ConcurrencyLimiter.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ConcurrencyLimiter\ref\Microsoft.AspNetCore.ConcurrencyLimiter.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Cors" ProjectPath="$(RepoRoot)src\Middleware\CORS\src\Microsoft.AspNetCore.Cors.csproj" RefProjectPath="$(RepoRoot)src\Middleware\CORS\ref\Microsoft.AspNetCore.Cors.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.Abstractions" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics.Abstractions\src\Microsoft.AspNetCore.Diagnostics.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Diagnostics.Abstractions\ref\Microsoft.AspNetCore.Diagnostics.Abstractions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics.EntityFrameworkCore\src\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Diagnostics.EntityFrameworkCore\ref\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics\src\Microsoft.AspNetCore.Diagnostics.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Diagnostics\ref\Microsoft.AspNetCore.Diagnostics.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.HeaderPropagation" ProjectPath="$(RepoRoot)src\Middleware\HeaderPropagation\src\Microsoft.AspNetCore.HeaderPropagation.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HeaderPropagation\ref\Microsoft.AspNetCore.HeaderPropagation.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\HealthChecks.EntityFrameworkCore\src\Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HealthChecks.EntityFrameworkCore\ref\Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" ProjectPath="$(RepoRoot)src\Middleware\HealthChecks\src\Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HealthChecks\ref\Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.HostFiltering" ProjectPath="$(RepoRoot)src\Middleware\HostFiltering\src\Microsoft.AspNetCore.HostFiltering.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HostFiltering\ref\Microsoft.AspNetCore.HostFiltering.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.HttpOverrides" ProjectPath="$(RepoRoot)src\Middleware\HttpOverrides\src\Microsoft.AspNetCore.HttpOverrides.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HttpOverrides\ref\Microsoft.AspNetCore.HttpOverrides.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.HttpsPolicy" ProjectPath="$(RepoRoot)src\Middleware\HttpsPolicy\src\Microsoft.AspNetCore.HttpsPolicy.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HttpsPolicy\ref\Microsoft.AspNetCore.HttpsPolicy.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Localization.Routing" ProjectPath="$(RepoRoot)src\Middleware\Localization.Routing\src\Microsoft.AspNetCore.Localization.Routing.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Localization.Routing\ref\Microsoft.AspNetCore.Localization.Routing.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Localization" ProjectPath="$(RepoRoot)src\Middleware\Localization\src\Microsoft.AspNetCore.Localization.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Localization\ref\Microsoft.AspNetCore.Localization.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.MiddlewareAnalysis" ProjectPath="$(RepoRoot)src\Middleware\MiddlewareAnalysis\src\Microsoft.AspNetCore.MiddlewareAnalysis.csproj" RefProjectPath="$(RepoRoot)src\Middleware\MiddlewareAnalysis\ref\Microsoft.AspNetCore.MiddlewareAnalysis.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.NodeServices" ProjectPath="$(RepoRoot)src\Middleware\NodeServices\src\Microsoft.AspNetCore.NodeServices.csproj" RefProjectPath="$(RepoRoot)src\Middleware\NodeServices\ref\Microsoft.AspNetCore.NodeServices.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" ProjectPath="$(RepoRoot)src\Middleware\ResponseCaching.Abstractions\src\Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ResponseCaching.Abstractions\ref\Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ResponseCaching" ProjectPath="$(RepoRoot)src\Middleware\ResponseCaching\src\Microsoft.AspNetCore.ResponseCaching.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ResponseCaching\ref\Microsoft.AspNetCore.ResponseCaching.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ResponseCompression" ProjectPath="$(RepoRoot)src\Middleware\ResponseCompression\src\Microsoft.AspNetCore.ResponseCompression.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ResponseCompression\ref\Microsoft.AspNetCore.ResponseCompression.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Rewrite" ProjectPath="$(RepoRoot)src\Middleware\Rewrite\src\Microsoft.AspNetCore.Rewrite.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Rewrite\ref\Microsoft.AspNetCore.Rewrite.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Session" ProjectPath="$(RepoRoot)src\Middleware\Session\src\Microsoft.AspNetCore.Session.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Session\ref\Microsoft.AspNetCore.Session.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices.Extensions" ProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj" RefProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\ref\Microsoft.AspNetCore.SpaServices.Extensions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices" ProjectPath="$(RepoRoot)src\Middleware\SpaServices\src\Microsoft.AspNetCore.SpaServices.csproj" RefProjectPath="$(RepoRoot)src\Middleware\SpaServices\ref\Microsoft.AspNetCore.SpaServices.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.StaticFiles" ProjectPath="$(RepoRoot)src\Middleware\StaticFiles\src\Microsoft.AspNetCore.StaticFiles.csproj" RefProjectPath="$(RepoRoot)src\Middleware\StaticFiles\ref\Microsoft.AspNetCore.StaticFiles.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.WebSockets" ProjectPath="$(RepoRoot)src\Middleware\WebSockets\src\Microsoft.AspNetCore.WebSockets.csproj" RefProjectPath="$(RepoRoot)src\Middleware\WebSockets\ref\Microsoft.AspNetCore.WebSockets.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Razor.Runtime" ProjectPath="$(RepoRoot)src\Razor\Razor.Runtime\src\Microsoft.AspNetCore.Razor.Runtime.csproj" RefProjectPath="$(RepoRoot)src\Razor\Razor.Runtime\ref\Microsoft.AspNetCore.Razor.Runtime.csproj" />
@@ -114,32 +127,18 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Formatters.Json" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Json\src\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Json\ref\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Xml\src\Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Xml\ref\Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Localization" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Localization\src\Microsoft.AspNetCore.Mvc.Localization.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Localization\ref\Microsoft.AspNetCore.Mvc.Localization.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" ProjectPath="$(RepoRoot)src\Mvc\Mvc.NewtonsoftJson\src\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.NewtonsoftJson\ref\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor.RuntimeCompilation\src\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor.RuntimeCompilation\ref\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.RazorPages" ProjectPath="$(RepoRoot)src\Mvc\Mvc.RazorPages\src\Microsoft.AspNetCore.Mvc.RazorPages.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.RazorPages\ref\Microsoft.AspNetCore.Mvc.RazorPages.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor\src\Microsoft.AspNetCore.Mvc.Razor.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor\ref\Microsoft.AspNetCore.Mvc.Razor.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.TagHelpers" ProjectPath="$(RepoRoot)src\Mvc\Mvc.TagHelpers\src\Microsoft.AspNetCore.Mvc.TagHelpers.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.TagHelpers\ref\Microsoft.AspNetCore.Mvc.TagHelpers.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Testing" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Testing\src\Microsoft.AspNetCore.Mvc.Testing.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Testing\ref\Microsoft.AspNetCore.Mvc.Testing.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.ViewFeatures" ProjectPath="$(RepoRoot)src\Mvc\Mvc.ViewFeatures\src\Microsoft.AspNetCore.Mvc.ViewFeatures.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.ViewFeatures\ref\Microsoft.AspNetCore.Mvc.ViewFeatures.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc" ProjectPath="$(RepoRoot)src\Mvc\Mvc\src\Microsoft.AspNetCore.Mvc.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc\ref\Microsoft.AspNetCore.Mvc.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureAD.UI\src\Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureAD.UI\ref\Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureADB2C.UI\src\Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureADB2C.UI\ref\Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" ProjectPath="$(RepoRoot)src\Azure\AzureAppServices.HostingStartup\src\Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAppServices.HostingStartup\ref\Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServicesIntegration" ProjectPath="$(RepoRoot)src\Azure\AzureAppServicesIntegration\src\Microsoft.AspNetCore.AzureAppServicesIntegration.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAppServicesIntegration\ref\Microsoft.AspNetCore.AzureAppServicesIntegration.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client.Core" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client.Core\src\Microsoft.AspNetCore.SignalR.Client.Core.csproj" RefProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client.Core\ref\Microsoft.AspNetCore.SignalR.Client.Core.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client\src\Microsoft.AspNetCore.SignalR.Client.csproj" RefProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client\ref\Microsoft.AspNetCore.SignalR.Client.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Http.Connections.Client\src\Microsoft.AspNetCore.Http.Connections.Client.csproj" RefProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Http.Connections.Client\ref\Microsoft.AspNetCore.Http.Connections.Client.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections.Common" ProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections.Common\src\Microsoft.AspNetCore.Http.Connections.Common.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections.Common\ref\Microsoft.AspNetCore.Http.Connections.Common.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections" ProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections\src\Microsoft.AspNetCore.Http.Connections.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections\ref\Microsoft.AspNetCore.Http.Connections.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.Json" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.Json\src\Microsoft.AspNetCore.SignalR.Protocols.Json.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Protocols.Json\ref\Microsoft.AspNetCore.SignalR.Protocols.Json.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.MessagePack\src\Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Protocols.MessagePack\ref\Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.NewtonsoftJson\src\Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Protocols.NewtonsoftJson\ref\Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Common" ProjectPath="$(RepoRoot)src\SignalR\common\SignalR.Common\src\Microsoft.AspNetCore.SignalR.Common.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\SignalR.Common\ref\Microsoft.AspNetCore.SignalR.Common.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Core" ProjectPath="$(RepoRoot)src\SignalR\server\Core\src\Microsoft.AspNetCore.SignalR.Core.csproj" RefProjectPath="$(RepoRoot)src\SignalR\server\Core\ref\Microsoft.AspNetCore.SignalR.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR" ProjectPath="$(RepoRoot)src\SignalR\server\SignalR\src\Microsoft.AspNetCore.SignalR.csproj" RefProjectPath="$(RepoRoot)src\SignalR\server\SignalR\ref\Microsoft.AspNetCore.SignalR.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" ProjectPath="$(RepoRoot)src\SignalR\server\StackExchangeRedis\src\Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj" RefProjectPath="$(RepoRoot)src\SignalR\server\StackExchangeRedis\ref\Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Authorization" ProjectPath="$(RepoRoot)src\Components\Authorization\src\Microsoft.AspNetCore.Components.Authorization.csproj" RefProjectPath="$(RepoRoot)src\Components\Authorization\ref\Microsoft.AspNetCore.Components.Authorization.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor" ProjectPath="$(RepoRoot)src\Components\Blazor\Blazor\src\Microsoft.AspNetCore.Blazor.csproj" RefProjectPath="$(RepoRoot)src\Components\Blazor\Blazor\ref\Microsoft.AspNetCore.Blazor.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components" ProjectPath="$(RepoRoot)src\Components\Components\src\Microsoft.AspNetCore.Components.csproj" RefProjectPath="$(RepoRoot)src\Components\Components\ref\Microsoft.AspNetCore.Components.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Forms" ProjectPath="$(RepoRoot)src\Components\Forms\src\Microsoft.AspNetCore.Components.Forms.csproj" RefProjectPath="$(RepoRoot)src\Components\Forms\ref\Microsoft.AspNetCore.Components.Forms.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Server" ProjectPath="$(RepoRoot)src\Components\Server\src\Microsoft.AspNetCore.Components.Server.csproj" RefProjectPath="$(RepoRoot)src\Components\Server\ref\Microsoft.AspNetCore.Components.Server.csproj" />
diff --git a/eng/Publishing.props b/eng/Publishing.props
index aa5294832a3c9d4af77181f87ab045d51b65bf41..ba728e1f71e477e47759c2ff417234aa114b6755 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -30,8 +30,11 @@
   </ItemGroup>
 
   <Target Name="_PublishInstallers">
-    <!-- This target is defined in eng/targets/Packaging.targets and included in every C# and F# project. -->
-    <MSBuild Projects="$(RepoRoot)src\Mvc\Mvc\src\Microsoft.AspNetCore.Mvc.csproj"
+    <!-- 
+      This target is defined in eng/targets/Packaging.targets and included in every C# and F# project.
+      We use Microsoft.AspNetCore.DeveloperCertificates.XPlat because it is a nonshipping package, and we need a non-stable version string to use as our publish location.
+    -->
+    <MSBuild Projects="$(RepoRoot)src\Tools\FirstRunCertGenerator\src\Microsoft.AspNetCore.DeveloperCertificates.XPlat.csproj"
         Targets="_GetPackageVersionInfo"
         SkipNonexistentProjects="false">
       <Output TaskParameter="TargetOutputs" ItemName="_ResolvedPackageVersionInfo" />
diff --git a/eng/SharedFramework.Local.props b/eng/SharedFramework.Local.props
index 5f09d593dea433b3993fca89b833df92c113a973..ddfe60ecfb7308acaf59d759cd3660c6390148b6 100644
--- a/eng/SharedFramework.Local.props
+++ b/eng/SharedFramework.Local.props
@@ -3,7 +3,7 @@
 
   This file contains a complete list of the assemblies which are part of the shared framework.
 
-  This project is generated using the <IsAspNetCoreApp> and <IsShippingPackage> properties from each .csproj in this repository.
+  This project is generated using the <IsAspNetCoreApp> and <IsPackable> properties from each .csproj in this repository.
 -->
 <Project>
   <ItemGroup>
diff --git a/eng/SignCheckExclusionsFile.txt b/eng/SignCheckExclusionsFile.txt
index e047f630ec5acc6726779bdf2504a2e1887def64..a65b9f27f9b0b8bab56ea6ca59502d34774c65be 100644
--- a/eng/SignCheckExclusionsFile.txt
+++ b/eng/SignCheckExclusionsFile.txt
@@ -1,4 +1,5 @@
-apphost.exe;; Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it.
-.js;; We do not sign JavaScript files.
-.binlog;; MSBuild binary logs are not signed though they are sometimes placed where validation thinks they should be.
-WixUIWixca|WixDepCA;; We do not sign WiX content in our installers.
+*apphost.exe;; Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it.
+*.binlog;; MSBuild binary logs are not signed though they are sometimes placed where validation thinks they should be.
+*.js;; We do not sign JavaScript files.
+*netfxca|*wixca|*wixdepca|*wixuiwixca;*.msi; We do not sign WiX content in our installers.
+*wixstdba.dll;*.exe;
diff --git a/eng/Versions.props b/eng/Versions.props
index ac1911826dacef9894def35648d3e8d448eb7da1..60442119d9c72ba6ce1c31e54c7df5961fd736b5 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -17,6 +17,8 @@
     <DotNetFinalVersionKind Condition="'$(StabilizePackageVersion)' == 'true'">release</DotNetFinalVersionKind>
     <PreReleaseVersionLabel>preview</PreReleaseVersionLabel>
     <PreReleaseBrandingLabel>Preview $(PreReleaseVersionIteration)</PreReleaseBrandingLabel>
+    <IncludePreReleaseLabelInPackageVersion>true</IncludePreReleaseLabelInPackageVersion>
+    <IncludePreReleaseLabelInPackageVersion Condition=" '$(DotNetFinalVersionKind)' == 'release' ">false</IncludePreReleaseLabelInPackageVersion>
     <AspNetCoreMajorMinorVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</AspNetCoreMajorMinorVersion>
     <!-- Additional assembly attributes are already configured to include the source revision ID. -->
     <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
@@ -31,7 +33,7 @@
     <!-- TargetingPackVersionPrefix is used by projects, like .deb and .rpm, which use slightly different version formats. -->
     <TargetingPackVersionPrefix>$(VersionPrefix)</TargetingPackVersionPrefix>
     <!-- Targeting packs do not produce patch versions in servicing builds. No API changes are allowed in patches. -->
-    <TargetingPackVersionPrefix Condition="'$(IsServicingBuild)' == 'true'">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</TargetingPackVersionPrefix>
+    <TargetingPackVersionPrefix Condition="'$(IsTargetingPackBuilding)' != 'true'">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</TargetingPackVersionPrefix>
     <ExperimentalVersionPrefix>0.3.$(AspNetCorePatchVersion)</ExperimentalVersionPrefix>
     <!-- ANCM versioning is intentionally 10 + AspNetCoreMajorVersion because earlier versions of ANCM shipped as 8.x. -->
     <AspNetCoreModuleVersionMajor>$([MSBuild]::Add(10, $(AspNetCoreMajorVersion)))</AspNetCoreModuleVersionMajor>
@@ -235,7 +237,7 @@
     <CastleCorePackageVersion>4.2.1</CastleCorePackageVersion>
     <FSharpCorePackageVersion>4.2.1</FSharpCorePackageVersion>
     <GoogleProtobufPackageVersion>3.8.0</GoogleProtobufPackageVersion>
-    <GrpcAspNetCorePackageVersion>2.23.2</GrpcAspNetCorePackageVersion>
+    <GrpcAspNetCorePackageVersion>2.27.0</GrpcAspNetCorePackageVersion>
     <IdentityServer4AspNetIdentityPackageVersion>3.0.0</IdentityServer4AspNetIdentityPackageVersion>
     <IdentityServer4EntityFrameworkPackageVersion>3.0.0</IdentityServer4EntityFrameworkPackageVersion>
     <IdentityServer4PackageVersion>3.0.0</IdentityServer4PackageVersion>
@@ -267,5 +269,6 @@
   <PropertyGroup Label="Restore feeds">
     <!-- In an orchestrated build, this may be overridden to other Azure feeds. -->
     <DotNetAssetRootUrl Condition="'$(DotNetAssetRootUrl)'==''">https://dotnetcli.blob.core.windows.net/dotnet/</DotNetAssetRootUrl>
+    <DotNetPrivateAssetRootUrl Condition="'$(DotNetPrivateAssetRootUrl)'==''">https://dotnetclimsrc.blob.core.windows.net/dotnet/</DotNetPrivateAssetRootUrl>
   </PropertyGroup>
 </Project>
diff --git a/eng/Workarounds.targets b/eng/Workarounds.targets
index 1e54db80e55fd248c0bc2048a0653e7b96e0eaeb..0e2159fd3c25d134e1c5a6e5cb15366ae6a0ba7a 100644
--- a/eng/Workarounds.targets
+++ b/eng/Workarounds.targets
@@ -67,4 +67,15 @@
       <TransitiveFrameworkReference Remove="NETStandard.Library" />
     </ItemGroup>
   </Target>
+
+  <!-- Work around https://github.com/dotnet/aspnetcore/issues/18393 -->
+  <Target Name="_UpdateRazorGenerateAssemblyReferences"
+          AfterTargets="ResolveAssemblyReferenceRazorGenerateInputs"
+          DependsOnTargets="FindReferenceAssembliesForReferences"
+          Condition="'$(CompileUsingReferenceAssemblies)' != 'false'">
+    <ItemGroup>
+      <RazorReferencePath Remove="@(ReferencePath)" />
+      <RazorReferencePath Include="@(ReferencePathWithRefAssemblies)" />
+    </ItemGroup>
+  </Target>
 </Project>
diff --git a/eng/scripts/CodeCheck.ps1 b/eng/scripts/CodeCheck.ps1
index 474d8e2e81a01f8a9c97ee8cf719d3d3f73dcfc7..c48d2e796cd9678aad57556b8bdfaa38484759fc 100644
--- a/eng/scripts/CodeCheck.ps1
+++ b/eng/scripts/CodeCheck.ps1
@@ -4,7 +4,11 @@
 This script runs a quick check for common errors, such as checking that Visual Studio solutions are up to date or that generated code has been committed to source.
 #>
 param(
-    [switch]$ci
+    [switch]$ci,
+    # Optional arguments that enable downloading an internal
+    # runtime or runtime from a non-default location
+    [string]$DotNetRuntimeSourceFeed,
+    [string]$DotNetRuntimeSourceFeedKey
 )
 
 $ErrorActionPreference = 'Stop'
@@ -43,7 +47,12 @@ function LogError {
 try {
     if ($ci) {
         # Install dotnet.exe
-        & $repoRoot/restore.cmd -ci -NoBuildNodeJS
+        if ($DotNetRuntimeSourceFeed -or $DotNetRuntimeSourceFeedKey) {
+            & $repoRoot/restore.cmd -ci -NoBuildNodeJS -DotNetRuntimeSourceFeed $DotNetRuntimeSourceFeed -DotNetRuntimeSourceFeedKey $DotNetRuntimeSourceFeedKey
+        }
+        else{
+            & $repoRoot/restore.cmd -ci -NoBuildNodeJS
+        }
     }
 
     . "$repoRoot/activate.ps1"
@@ -172,12 +181,13 @@ try {
     # Redirect stderr to stdout because PowerShell does not consistently handle output to stderr
     $changedFiles = & cmd /c 'git --no-pager diff --ignore-space-change --name-only 2>nul'
 
-    # Temporary: Disable check for blazor js file
-    $changedFilesExclusion = "src/Components/Web.JS/dist/Release/blazor.server.js"
+    # Temporary: Disable check for blazor js file and nuget.config (updated automatically for
+    # internal builds)
+    $changedFilesExclusions = @("src/Components/Web.JS/dist/Release/blazor.server.js", "NuGet.config")
 
     if ($changedFiles) {
         foreach ($file in $changedFiles) {
-            if ($file -eq $changedFilesExclusion) {continue}
+            if ($changedFilesExclusions -contains $file) {continue}
             $filePath = Resolve-Path "${repoRoot}/${file}"
             LogError "Generated code is not up to date in $file. You might need to regenerate the reference assemblies or project list (see docs/ReferenceAssemblies.md and docs/ReferenceResolution.md)" -filepath $filePath
             & git --no-pager diff --ignore-space-change $filePath
diff --git a/eng/scripts/ci-source-build.sh b/eng/scripts/ci-source-build.sh
index dd737ac47317e09719a15d5a8d3e60d55b37dad4..27cbbe8ee549e6f8d58d8246c9dd09ebd159a336 100755
--- a/eng/scripts/ci-source-build.sh
+++ b/eng/scripts/ci-source-build.sh
@@ -9,10 +9,31 @@ set -euo pipefail
 scriptroot="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 reporoot="$(dirname "$(dirname "$scriptroot")")"
 
+ # For local development, make a backup copy of this file first
+if [ ! -f "$reporoot/global.bak.json" ]; then
+    mv "$reporoot/global.json" "$reporoot/global.bak.json"
+fi
+
+ # Detect the current version of .NET Core installed
+export SDK_VERSION=$(dotnet --version)
+echo "The ambient version of .NET Core SDK version = $SDK_VERSION"
+
+ # Update the global.json file to match the current .NET environment
+cat "$reporoot/global.bak.json" | \
+    jq '.sdk.version=env.SDK_VERSION' | \
+    jq '.tools.dotnet=env.SDK_VERSION' | \
+    jq 'del(.tools.runtimes)' \
+    > "$reporoot/global.json"
+
+ # Restore the original global.json file
+trap "{
+    mv "$reporoot/global.bak.json" "$reporoot/global.json"
+}" EXIT
+
 # Build repo tasks
 "$reporoot/eng/common/build.sh" --restore --build --ci --configuration Release /p:ProjectToBuild=$reporoot/eng/tools/RepoTasks/RepoTasks.csproj
 
 export DotNetBuildFromSource='true'
 
 # Build projects
-"$reporoot/eng/common/build.sh" --restore --build --pack "$@"
+"$reporoot/eng/common/build.sh" --restore --build --pack "$@"
\ No newline at end of file
diff --git a/eng/targets/Packaging.targets b/eng/targets/Packaging.targets
index fdef1de7a32427a22bf2d98edaff2d9023ec20d6..ea8dabdb46757abbd9aacca7956dcdd98f3a37de 100644
--- a/eng/targets/Packaging.targets
+++ b/eng/targets/Packaging.targets
@@ -13,7 +13,7 @@
     <ItemGroup>
       <_ProjectPathWithVersion Include="$(MSBuildProjectFullPath)">
         <PackageId>$(PackageId)</PackageId>
-        <PackageVersion>$(PackageVersion)</PackageVersion>
+        <PackageVersion>$(PackageVersionForPackageVersionInfo)</PackageVersion>
         <VersionSuffix>$(VersionSuffix)</VersionSuffix>
         <VersionVariableName>$(PackageId.Replace('.',''))PackageVersion</VersionVariableName>
       </_ProjectPathWithVersion>
diff --git a/eng/targets/ReferenceAssembly.targets b/eng/targets/ReferenceAssembly.targets
index 149d4e2443758ca764641636470d194aa0ed4fa9..59568267bec0d6ddd5e62c78046dc334f1770610 100644
--- a/eng/targets/ReferenceAssembly.targets
+++ b/eng/targets/ReferenceAssembly.targets
@@ -1,6 +1,6 @@
 <Project>
 
-  <Target Name="GenerateReferenceSource" Condition="'$(HasReferenceAssembly)' == 'true'">
+  <Target Name="GenerateReferenceSource" Condition=" $(HasReferenceAssembly) ">
     <PropertyGroup>
       <_RefSourceOutputPath>$([System.IO.Directory]::GetParent('$(MSBuildProjectDirectory)'))/ref/</_RefSourceOutputPath>
       <_RefProjectFileOutputPath>$(_RefSourceOutputPath)$(AssemblyName).csproj</_RefProjectFileOutputPath>
@@ -13,8 +13,8 @@
     </ItemGroup>
 
     <MSBuild Projects="$(MSBuildProjectFullPath)"
-             Targets="_GenerateProjectSourceInner"
-             Properties="TargetFramework=%(_DeduplicatedTargetFramework.Identity)">
+        Targets="_GenerateProjectSourceInner"
+        Properties="TargetFramework=%(_DeduplicatedTargetFramework.Identity);CompileUsingReferenceAssemblies=false">
       <Output TaskParameter="TargetOutputs" ItemName="ProjectListContentItem" />
     </MSBuild>
 
@@ -34,16 +34,17 @@
 ]]></ProjectListContentLines>
     </PropertyGroup>
 
-    <!-- Workaround https://github.com/Microsoft/msbuild/issues/1024 -->
-    <WriteLinesToFile Condition="'$(OS)' == 'Windows_NT'"
-                      File="$(_RefProjectFileOutputPath)" Lines="$([MSBuild]::Escape($(ProjectListContentLines)))" Overwrite="true" />
-    <Exec Condition="'$(OS)' != 'Windows_NT'"
-          Command="echo '$(ProjectListContentLines.Replace('\t','\\t'))' > $(_RefProjectFileOutputPath)" />
+    <WriteLinesToFile File="$(_RefProjectFileOutputPath)"
+        Lines="$([MSBuild]::Escape($(ProjectListContentLines)))"
+        Overwrite="true" />
 
     <Message Importance="High" Text="Generated $(_RefProjectFileOutputPath)" />
   </Target>
 
-  <Target Name="_GenerateProjectSourceInner" Returns="@(ProjectListContent)" DependsOnTargets="Build" Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">
+  <Target Name="_GenerateProjectSourceInner"
+      Returns="@(ProjectListContent)"
+      DependsOnTargets="Build"
+      Condition=" '$(TargetFrameworkIdentifier)' != '.NETFramework' ">
     <PropertyGroup>
       <_RefSourceFileTFM>$(TargetFramework)</_RefSourceFileTFM>
       <_RefSourceFileTFM Condition="$(TargetFramework.StartsWith('netcoreapp'))">netcoreapp</_RefSourceFileTFM>
@@ -53,6 +54,7 @@
       <_RefSourceOutputPath>$([System.IO.Directory]::GetParent('$(MSBuildProjectDirectory)'))/ref/</_RefSourceOutputPath>
       <_RefSourceFileName>$(AssemblyName).$(_RefSourceFileTFM).cs</_RefSourceFileName>
       <_ManualRefSourceFileName>$(AssemblyName).Manual.cs</_ManualRefSourceFileName>
+      <_PerTFMManualRefSourceFileName>$(AssemblyName).$(_RefSourceFileTFM).Manual.cs</_PerTFMManualRefSourceFileName>
       <_RefSourceFileOutputPath>$(_RefSourceOutputPath)$(_RefSourceFileName)</_RefSourceFileOutputPath>
     </PropertyGroup>
 
@@ -63,8 +65,12 @@
 
     <PropertyGroup>
       <_GenApiFile>$([MSBuild]::NormalizePath('$(ArtifactsDir)', 'log', 'GenAPI.rsp'))</_GenApiFile>
-      <_GenAPICommand Condition="'$(MSBuildRuntimeType)' == 'core'">"$(DotNetTool)" --roll-forward-on-no-candidate-fx 2 "$(_GenAPIPath)"</_GenAPICommand>
+      <_GenAPICommand
+          Condition="'$(MSBuildRuntimeType)' == 'core'">"$(DotNetTool)" --roll-forward-on-no-candidate-fx 2 "$(_GenAPIPath)"</_GenAPICommand>
+      <_GenAPICmd>$(_GenAPICommand)</_GenAPICmd>
       <_GenAPICmd>$(_GenAPICommand) @"$(_GenApiFile)"</_GenAPICmd>
+      <_GenAPICmd
+          Condition=" '$(AdditionalGenApiCmdOptions)' != '' ">$(_GenAPICmd) $(AdditionalGenApiCmdOptions)</_GenAPICmd>
       <_GenApiArguments><![CDATA[
 "$(TargetPath)"
 --lib-path "@(_ReferencePathDirectories, '%3B')"
@@ -82,23 +88,34 @@
     <Exec Command="$(_GenAPICmd)" />
 
     <ItemGroup>
-      <FilteredOriginalReferences
-        Include="%(_OriginalReferences.Identity)"
-        Condition="'%(_OriginalReferences.NuGetPackageId)' == '' AND '%(_OriginalReferences.PrivateAssets)' != 'All'" />
+      <_ReferenceAssemblyCompileItems Include="$(_RefSourceFileName)" />
+      <_ReferenceAssemblyCompileItems Include="$(_ManualRefSourceFileName)"
+          Condition="Exists('$(_RefSourceOutputPath)$(_ManualRefSourceFileName)')" />
+      <_ReferenceAssemblyCompileItems Include="$(_PerTFMManualRefSourceFileName)"
+          Condition="Exists('$(_RefSourceOutputPath)$(_PerTFMManualRefSourceFileName)')" />
+      <_ReferenceAssemblyCompileItems Include="../src/AssemblyInfo.cs"
+          Condition="Exists('$(MSBuildProjectDirectory)/AssemblyInfo.cs')" />
+      <_ReferenceAssemblyCompileItems Include="../src/Properties/AssemblyInfo.cs"
+          Condition="Exists('$(MSBuildProjectDirectory)/Properties/AssemblyInfo.cs')" />
+      <FilteredOriginalReferences Include="%(_OriginalReferences.Identity)"
+          Condition="'%(_OriginalReferences.NuGetPackageId)' == '' AND '%(_OriginalReferences.PrivateAssets)' != 'All'" />
+
+      <_ReferenceAssemblyItems
+          Include="@(_ReferenceAssemblyCompileItems->'&lt;Compile Include=&quot;%(Identity)&quot; /&gt;')" />
+      <_ReferenceAssemblyItems
+          Include="@(FilteredOriginalReferences->'&lt;Reference Include=&quot;%(Identity)&quot; /&gt;')"
+          Condition=" '@(FilteredOriginalReferences)' != '' " />
+      <!-- Some src/ projects use Arcade SDK feature to generate InternalsVisibleTo attributes. -->
+      <_ReferenceAssemblyItems
+          Include="@(InternalsVisibleTo->'&lt;InternalsVisibleTo Include=&quot;%(Identity)&quot; Key=&quot;%(Key)&quot; /&gt;')"
+          Condition=" '@(InternalsVisibleTo)' != '' " />
     </ItemGroup>
 
     <PropertyGroup>
-      <_ManualReferenceAssemblyContent />
-      <_ManualReferenceAssemblyContent Condition="Exists('$(_RefSourceOutputPath)$(_ManualRefSourceFileName)')">
-      <![CDATA[
-    <Compile Include="$(_ManualRefSourceFileName)" />]]>
-      </_ManualReferenceAssemblyContent>
-
       <ReferencesContent>
       <![CDATA[
   <ItemGroup Condition="'%24(TargetFramework)' == '$(_RefProjectFileTFM)'">
-    <Compile Include="$(_RefSourceFileName)" />]]>$(_ManualReferenceAssemblyContent)<![CDATA[
-    @(FilteredOriginalReferences->'<Reference Include="%(Identity)"  />', '%0A    ')
+    @(_ReferenceAssemblyItems, '%0A    ')
   </ItemGroup>
 ]]>
       </ReferencesContent>
diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets
index 4efbe58e97694a1c047a5654d70a005c60fd0a5e..e77922ebcb71e55399e2efc450f8951db20c4b79 100644
--- a/eng/targets/ResolveReferences.targets
+++ b/eng/targets/ResolveReferences.targets
@@ -11,11 +11,12 @@
 
   Items used by the resolution strategy:
 
-    * BaselinePackageReference = a list of packages that were reference in the last release of the project currently building
+    * BaselinePackageReference = a list of packages that were referenced in the last release of the project currently building
+      - mainly used to ensure references do not change in servicing builds unless $(UseLatestPackageReferences) is not true.
     * LatestPackageReference = a list of the latest versions of packages
     * Reference = a list of the references which are needed for compilation or runtime
     * ProjectReferenceProvider = a list which maps of assembly names to the project file that produces it
- -->
+-->
 <Project>
 
   <PropertyGroup>
@@ -29,43 +30,49 @@
 
   <PropertyGroup>
     <!--
-      Projects should only use the latest package references when:
-        * preparing a new major or minor release (i.e. a non-servicing builds)
+      Projects should use the latest package references when:
+        * preparing a new major or minor release i.e. a non-servicing builds
         * when a project is a test or sample project
         * when a package is releasing a new patch (we like to update external dependencies in patches when possible)
+      That is, use latest package references unless this is a servicing build, the project is normally packable, and
+      the package is not included in this release.
     -->
-    <UseLatestPackageReferences Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsServicingBuild)' != 'true'  ">true</UseLatestPackageReferences>
-    <UseLatestPackageReferences Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsImplementationProject)' != 'true' ">true</UseLatestPackageReferences>
     <UseLatestPackageReferences
-        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsImplementationProject)' == 'true' AND '$(IsPackable)' == 'true' ">true</UseLatestPackageReferences>
+        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsServicingBuild)' != 'true'  ">true</UseLatestPackageReferences>
+    <UseLatestPackageReferences
+        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsPackableInNonServicingBuild)' != 'true' ">true</UseLatestPackageReferences>
+    <UseLatestPackageReferences
+        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsPackageInThisPatch)' == 'true' ">true</UseLatestPackageReferences>
     <UseLatestPackageReferences Condition=" '$(UseLatestPackageReferences)' == '' ">false</UseLatestPackageReferences>
 
     <!--
-      Projects should only use the project references instead of baseline package references when:
-        * preparing a new major or minor release (i.e. a non-servicing builds)
-        * when a project is a test or sample project
-      We don't use project references between components in servicing builds between compontents to preserve the baseline as much as possible.
+      Projects should use project references (instead of baseline packages), compile against ref/ assemblies, and
+      execute against implementation assemblies in almost all cases. But, there's no need for implementation assemblies
+      and their $(TargetRefPath) indirection when building a ref/ project.
     -->
-    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' AND '$(IsServicingBuild)' != 'true' ">true</UseProjectReferences>
-    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' AND '$(IsImplementationProject)' != 'true' ">true</UseProjectReferences>
-    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' ">false</UseProjectReferences>
+    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' ">true</UseProjectReferences>
 
-    <ReferenceReferenceAssemblies Condition=" '$(ReferenceReferenceAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' == 'true'">true</ReferenceReferenceAssemblies>
-    <ReferenceReferenceAssemblies Condition=" '$(ReferenceReferenceAssemblies)' == '' ">false</ReferenceReferenceAssemblies>
+    <ReferenceReferenceAssemblies
+        Condition=" '$(ReferenceReferenceAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' == 'true'">true</ReferenceReferenceAssemblies>
+    <ReferenceReferenceAssemblies
+        Condition=" '$(ReferenceReferenceAssemblies)' == '' ">false</ReferenceReferenceAssemblies>
 
-    <ReferenceImplementationAssemblies Condition=" '$(ReferenceImplementationAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' != 'true'">true</ReferenceImplementationAssemblies>
-    <ReferenceImplementationAssemblies Condition=" '$(ReferenceImplementationAssemblies)' == '' ">false</ReferenceImplementationAssemblies>
+    <ReferenceImplementationAssemblies
+        Condition=" '$(ReferenceImplementationAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' != 'true'">true</ReferenceImplementationAssemblies>
+    <ReferenceImplementationAssemblies
+        Condition=" '$(ReferenceImplementationAssemblies)' == '' ">false</ReferenceImplementationAssemblies>
   </PropertyGroup>
 
   <ItemDefinitionGroup>
     <Reference>
-      <IsSharedSource></IsSharedSource>
+      <IsSharedSource />
     </Reference>
   </ItemDefinitionGroup>
 
   <ItemGroup Condition="'$(EnableCustomReferenceResolution)' == 'true'">
     <Reference Update="@(Reference)">
-      <IsSharedSource Condition="'%(IsSharedSource)' == '' AND $([System.String]::new('%(Identity)').EndsWith('.Sources'))">true</IsSharedSource>
+      <IsSharedSource
+          Condition="'%(IsSharedSource)' == '' AND $([System.String]::new('%(Identity)').EndsWith('.Sources'))">true</IsSharedSource>
     </Reference>
 
     <!-- Packages which are implicitly defined by the .NET Core SDK. -->
@@ -73,35 +80,40 @@
     <!-- Capture a list of references which were set explicitly in the project. -->
     <_AllowedExplicitPackageReference Include="@(PackageReference->WithMetadataValue('AllowExplicitReference', 'true'))" />
     <_AllowedExplicitPackageReference Include="FSharp.Core" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
-    <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" />
+    <_ExplicitPackageReference Include="@(PackageReference)"
+        Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" />
 
     <_UnusedProjectReferenceProvider Include="@(ProjectReferenceProvider)" Exclude="@(Reference)" />
 
-    <_CompilationOnlyReference Condition="'$(TargetFramework)' == 'netstandard2.0'" Include="@(Reference->WithMetadataValue('NuGetPackageId','NETStandard.Library'))" />
+    <_CompilationOnlyReference Include="@(Reference->WithMetadataValue('NuGetPackageId','NETStandard.Library'))"
+        Condition="'$(TargetFramework)' == 'netstandard2.0'" />
 
     <_InvalidReferenceToNonSharedFxAssembly Condition="'$(IsAspNetCoreApp)' == 'true'"
-      Include="@(Reference)"
-      Exclude="
-        @(AspNetCoreAppReference);
-        @(AspNetCoreAppReferenceAndPackage);
-        @(ExternalAspNetCoreAppReference);
-        @(_CompilationOnlyReference);
-        @(Reference->WithMetadataValue('IsSharedSource', 'true'))" />
+        Include="@(Reference)"
+        Exclude="
+          @(AspNetCoreAppReference);
+          @(AspNetCoreAppReferenceAndPackage);
+          @(ExternalAspNetCoreAppReference);
+          @(_CompilationOnlyReference);
+          @(Reference->WithMetadataValue('IsSharedSource', 'true'))" />
     <_OriginalReferences Include="@(Reference)" />
+
     <!--
       Turn Reference items into a ProjectReference when UseProjectReferences is true.
       Order matters. This comes before package resolution because projects should be used when possible instead of packages.
     -->
     <_ProjectReferenceByAssemblyName Condition="'$(UseProjectReferences)' == 'true'"
-      Include="@(ProjectReferenceProvider)"
-      Exclude="@(_UnusedProjectReferenceProvider)" />
+        Include="@(ProjectReferenceProvider)"
+        Exclude="@(_UnusedProjectReferenceProvider)" />
 
     <!-- Use ref assembly project paths for ref assembly projects -->
-    <ProjectReference Condition="'$(ReferenceImplementationAssemblies)' == 'true'" Include="@(_ProjectReferenceByAssemblyName->'%(ProjectPath)')" >
+    <ProjectReference Include="@(_ProjectReferenceByAssemblyName->'%(ProjectPath)')"
+        Condition="'$(ReferenceImplementationAssemblies)' == 'true'">
       <IsReferenceAssembly>false</IsReferenceAssembly>
     </ProjectReference>
 
-    <ProjectReference Condition="'$(ReferenceReferenceAssemblies)' == 'true'" Include="@(_ProjectReferenceByAssemblyName->'%(RefProjectPath)')" >
+    <ProjectReference Include="@(_ProjectReferenceByAssemblyName->'%(RefProjectPath)')"
+        Condition="'$(ReferenceReferenceAssemblies)' == 'true'">
       <IsReferenceAssembly>true</IsReferenceAssembly>
     </ProjectReference>
 
@@ -109,30 +121,31 @@
   </ItemGroup>
 
   <!--
-    This target resolves remaining Referene items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
-    This target helps ensure projects within the shared framework do no unintentionally add new references,
+    This target helps ensure projects within the shared framework do not unintentionally add new references,
     and that assemblies outside the shared framework reference the framework as a whole instead of using
     individual assemblies.
   -->
   <Target Name="_CheckForReferenceBoundaries" BeforeTargets="CollectPackageReferences;ResolveReferences">
-
     <Error Condition="@(_InvalidReferenceToSharedFxOnlyAssembly->Count()) != 0"
-           Text="Cannot reference &quot;%(_InvalidReferenceToSharedFxOnlyAssembly.Identity)&quot; directly because it is part of the shared framework and this project is not. Use &lt;FrameworkReference Include=&quot;Microsoft.AspNetCore.App&quot; /&gt; instead." />
+        Text="Cannot reference &quot;%(_InvalidReferenceToSharedFxOnlyAssembly.Identity)&quot; directly because it is part of the shared framework and this project is not. Use &lt;FrameworkReference Include=&quot;Microsoft.AspNetCore.App&quot; /&gt; instead." />
 
     <Error Condition="@(_InvalidReferenceToNonSharedFxAssembly->Count()) != 0"
-           Text="Cannot reference &quot;%(_InvalidReferenceToNonSharedFxAssembly.Identity)&quot;. This dependency is not in the shared framework. See docs/SharedFramework.md for instructions on how to modify what is in the shared framework." />
+        Text="Cannot reference &quot;%(_InvalidReferenceToNonSharedFxAssembly.Identity)&quot;. This dependency is not in the shared framework. See docs/SharedFramework.md for instructions on how to modify what is in the shared framework." />
   </Target>
 
   <Target Name="_WarnAboutRedundantRef" AfterTargets="ResolveFrameworkReferences;ProcessFrameworkReferences">
-    <Warning Condition="@(FrameworkReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore.App')->Count()) &gt; 1"
-             Text="Redundant &lt;FrameworkReference&gt;. If you have an explicit item in the project file, you might be able to remove it. Some SDKs, like Microsoft.NET.Sdk.Web, add this implicitly." />
+    <Warning
+        Condition="@(FrameworkReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore.App')->Count()) &gt; 1"
+        Text="Redundant &lt;FrameworkReference&gt;. If you have an explicit item in the project file, you might be able to remove it. Some SDKs, like Microsoft.NET.Sdk.Web, add this implicitly." />
   </Target>
 
   <!--
-    This target resolves remaining Referene items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
+    This target resolves remaining Reference items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
     This executes on NuGet restore and during DesignTimeBuild. It should not run in the outer, cross-targeting build.
    -->
-  <Target Name="ResolveCustomReferences" BeforeTargets="CollectPackageReferences;ResolveAssemblyReferencesDesignTime;ResolveAssemblyReferences" Condition=" '$(TargetFramework)' != '' AND '$(EnableCustomReferenceResolution)' == 'true' ">
+  <Target Name="ResolveCustomReferences"
+      BeforeTargets="CollectPackageReferences;ResolveAssemblyReferencesDesignTime;ResolveAssemblyReferences"
+      Condition=" '$(TargetFramework)' != '' AND '$(EnableCustomReferenceResolution)' == 'true' ">
     <ItemGroup>
       <!-- Ensure only content asset are consumed from .Sources packages -->
       <Reference>
@@ -141,9 +154,15 @@
       </Reference>
 
       <!-- Identify if any references were present in the last release of this package, but have been removed. -->
-      <UnusedBaselinePackageReference Include="@(BaselinePackageReference)" Exclude="@(Reference);@(_ProjectReferenceByAssemblyName);@(PackageReference)" />
+      <UnusedBaselinePackageReference Include="@(BaselinePackageReference)"
+          Exclude="@(Reference);@(_ProjectReferenceByAssemblyName);@(PackageReference)" />
+
       <!-- Only allow suppressing baseline changes in non-servicing builds. -->
-      <UnusedBaselinePackageReference Remove="@(SuppressBaselineReference)" Condition="'$(IsServicingBuild)' != 'true'"/>
+      <!--
+        Temporarily ignore the above. Restore Condition="'$(IsServicingBuild)' != 'true'" when
+        https://github.com/aspnet/AspNetCore/issues/14630 is resolved.
+      -->
+      <UnusedBaselinePackageReference Remove="@(SuppressBaselineReference)" />
 
       <!--
         MSBuild does not provide a way to join on matching identities in a Condition,
@@ -153,19 +172,21 @@
         <Id>%(LatestPackageReference.Identity)</Id>
         <Version>%(LatestPackageReference.Version)</Version>
       </_LatestPackageReferenceWithVersion>
-      <_LatestPackageReferenceWithVersion Remove="@(_LatestPackageReferenceWithVersion)" Condition="'%(Id)' != '%(Identity)' " />
+      <_LatestPackageReferenceWithVersion Remove="@(_LatestPackageReferenceWithVersion)"
+          Condition="'%(Id)' != '%(Identity)' " />
 
       <!-- Remove reference items that have been resolved to a LatestPackageReference item. -->
       <Reference Remove="@(_LatestPackageReferenceWithVersion)" />
       <PackageReference Include="@(_LatestPackageReferenceWithVersion)" IsImplicitlyDefined="true" />
 
-      <!-- Resolve references from BaselinePackageReference for servicing builds. -->
-      <_BaselinePackageReferenceWithVersion Include="@(Reference)" Condition=" '$(IsServicingBuild)' == 'true' OR '$(UseLatestPackageReferences)' != 'true' ">
+      <!-- Resolve references from BaselinePackageReference for servicing builds in corner cases. May be unused. -->
+      <_BaselinePackageReferenceWithVersion Include="@(Reference)"
+          Condition=" '$(IsServicingBuild)' == 'true' OR '$(UseLatestPackageReferences)' != 'true' ">
         <Id>%(BaselinePackageReference.Identity)</Id>
         <Version>%(BaselinePackageReference.Version)</Version>
       </_BaselinePackageReferenceWithVersion>
-
-      <_BaselinePackageReferenceWithVersion Remove="@(_BaselinePackageReferenceWithVersion)" Condition="'%(Id)' != '%(Identity)' " />
+      <_BaselinePackageReferenceWithVersion Remove="@(_BaselinePackageReferenceWithVersion)"
+          Condition="'%(Id)' != '%(Identity)' " />
 
       <!-- Remove reference items that have been resolved to a BaselinePackageReference item. -->
       <PackageReference Include="@(_BaselinePackageReferenceWithVersion)" IsImplicitlyDefined="true" />
@@ -176,10 +197,10 @@
         <Id>%(LatestPackageReference.Identity)</Id>
         <Version>%(LatestPackageReference.Version)</Version>
       </_PrivatePackageReferenceWithVersion>
+      <_PrivatePackageReferenceWithVersion Remove="@(_PrivatePackageReferenceWithVersion)"
+          Condition="'%(Id)' != '%(Identity)' " />
 
-      <_PrivatePackageReferenceWithVersion Remove="@(_PrivatePackageReferenceWithVersion)" Condition="'%(Id)' != '%(Identity)' " />
-
-      <!-- Remove reference items that have been resolved to a LatestPackageReference item. -->
+      <!-- Remove reference items that have been resolved to an item with PrivateAssets="All". -->
       <PackageReference Include="@(_PrivatePackageReferenceWithVersion)" IsImplicitlyDefined="true" />
       <Reference Remove="@(_PrivatePackageReferenceWithVersion)" />
 
@@ -190,24 +211,91 @@
       <_ImplicitPackageReference Remove="@(_ImplicitPackageReference)" />
     </ItemGroup>
 
-    <Error Condition="'$(DisablePackageReferenceRestrictions)' != 'true' AND @(_ExplicitPackageReference->Count()) != 0"
-           Text="PackageReference items are not allowed. Use &lt;Reference&gt; instead to replace the reference to @(_ExplicitPackageReference, ', '). See docs/ReferenceResolution.md for more details." />
+    <Error
+        Condition="'$(DisablePackageReferenceRestrictions)' != 'true' AND @(_ExplicitPackageReference->Count()) != 0"
+        Text="PackageReference items are not allowed. Use &lt;Reference&gt; instead to replace the reference to @(_ExplicitPackageReference, ', '). See docs/ReferenceResolution.md for more details." />
 
     <ItemGroup>
       <_ExplicitPackageReference Remove="@(_ExplicitPackageReference)" />
     </ItemGroup>
 
-    <Warning Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' != 'true' AND '%(UnusedBaselinePackageReference.Identity)' != ''"
-             Code="BUILD001"
-             Text="Reference to '%(UnusedBaselinePackageReference.Identity)' was removed since the last stable release of this package. This could be a breaking change. See docs/ReferenceResolution.md for instructions on how to update changes to references or suppress this warning if the error was intentional." />
+    <Warning
+        Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' != 'true' AND '%(UnusedBaselinePackageReference.Identity)' != ''"
+        Code="BUILD001"
+        Text="Reference to '%(UnusedBaselinePackageReference.Identity)' was removed since the last stable release of this package. This could be a breaking change. See docs/ReferenceResolution.md for instructions on how to update changes to references or suppress this warning if the error was intentional." />
+
+    <Error
+        Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' == 'true' AND @(UnusedBaselinePackageReference->Count()) != 0"
+        Code="BUILD002"
+        Text="Package references changed since the last release. This could be a breaking change and is not allowed in a servicing update. References removed:%0A - @(UnusedBaselinePackageReference, '%0A -')" />
+
+    <Error
+        Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework' AND '%(Reference.Identity)' != '' AND ! Exists('%(Reference.Identity)') AND '$(DisablePackageReferenceRestrictions)' != 'true'"
+        Code="MSB3245"
+        Text="Could not resolve this reference. Could not locate the package or project for &quot;%(Reference.Identity)&quot;. Did you update baselines and dependencies lists? See docs/ReferenceResolution.md for more details." />
+  </Target>
 
-    <Error Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' == 'true' AND @(UnusedBaselinePackageReference->Count()) != 0"
-           Code="BUILD002"
-           Text="Package references changed since the last release. This could be a breaking change and is not allowed in a servicing update. References removed:%0A - @(UnusedBaselinePackageReference, '%0A -')" />
+  <!--
+    Update metadata of implementation projects to include information about associated ref assembly (if any).
+  -->
+  <PropertyGroup>
+    <_CompileTfmUsingReferenceAssemblies>false</_CompileTfmUsingReferenceAssemblies>
+    <_CompileTfmUsingReferenceAssemblies
+        Condition=" '$(CompileUsingReferenceAssemblies)' != false AND '$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' ">true</_CompileTfmUsingReferenceAssemblies>
+  </PropertyGroup>
+  <PropertyGroup Condition=" $(HasReferenceAssembly) AND $(_CompileTfmUsingReferenceAssemblies) ">
+    <_ReferenceProjectFile>$(MSBuildProjectDirectory)/../ref/$(MSBuildProjectFile)</_ReferenceProjectFile>
 
-    <Error Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework' AND '%(Reference.Identity)' != '' AND ! Exists('%(Reference.Identity)') AND '$(DisablePackageReferenceRestrictions)' != 'true'"
-           Code="MSB3245"
-           Text="Could not resolve this reference. Could not locate the package or project for &quot;%(Reference.Identity)&quot;. Did you update baselines and dependencies lists? See docs/ReferenceResolution.md for more details." />
+    <!--
+      Set properties controlling the item group GetTargetPathWithTargetPlatformMoniker, GetTargetPath and Build return.
+      Ensures dependent projects know about the ref/ assembly. Done late enough that Compile does not attempt to create
+      this assembly. Reset properties to avoid error when copying non-existent @(IntermediateRefAssembly) to
+      $(TargetRefPath).
+    -->
+    <GetTargetPathWithTargetPlatformMonikerDependsOn>$(GetTargetPathWithTargetPlatformMonikerDependsOn);AddReferenceProjectMetadata</GetTargetPathWithTargetPlatformMonikerDependsOn>
+    <PrepareForRunDependsOn>RemoveReferenceProjectMetadata;$(PrepareForRunDependsOn)</PrepareForRunDependsOn>
+  </PropertyGroup>
+  <ItemGroup Condition=" $(HasReferenceAssembly) AND $(_CompileTfmUsingReferenceAssemblies) ">
+    <!-- Ensure ref/ project is built prior to the implementation project. Capture its target path. -->
+    <ProjectReference Include="$(_ReferenceProjectFile)">
+      <OutputItemType>ReferenceProjectMetadata</OutputItemType>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Target Name="AddReferenceProjectMetadata" DependsOnTargets="ResolveProjectReferences">
+    <PropertyGroup>
+      <ProduceReferenceAssembly>true</ProduceReferenceAssembly>
+      <TargetRefPath>@(ReferenceProjectMetadata)</TargetRefPath>
+    </PropertyGroup>
+  </Target>
+  <Target Name="RemoveReferenceProjectMetadata">
+    <PropertyGroup>
+      <ProduceReferenceAssembly />
+      <TargetRefPath />
+    </PropertyGroup>
+  </Target>
+
+  <!--
+    If we have a ref/ assembly from Extensions for a package, use that when compiling. The build-only reference to
+    Microsoft.Internal.Extensions.Refs ensures package is installed and $(MicrosoftInternalExtensionsRefsPath) is set.
+  -->
+  <ItemGroup
+      Condition=" $(_CompileTfmUsingReferenceAssemblies) OR ('$(IsTargetingPackBuilding)' != 'false' AND '$(MSBuildProjectName)' == 'Microsoft.AspNetCore.App.Ref') ">
+    <PackageReference Include="Microsoft.Internal.Extensions.Refs"
+        Version="$(MicrosoftInternalExtensionsRefsPackageVersion)"
+        IsImplicitlyDefined="true"
+        IncludeAssets="Build"
+        PrivateAssets="All" />
+  </ItemGroup>
+  <Target Name="AddReferencePackageMetadata"
+      BeforeTargets="FindReferenceAssembliesForReferences"
+      Condition=" $(_CompileTfmUsingReferenceAssemblies) ">
+    <ItemGroup>
+      <ReferencePath>
+        <ReferenceAssembly
+            Condition=" '%(ReferencePath.ReferenceAssembly)' == '' AND Exists('$(MicrosoftInternalExtensionsRefsPath)%(FileName).dll') AND '%(FileName)' != 'Microsoft.AspNetCore.Testing' ">$(MicrosoftInternalExtensionsRefsPath)%(FileName).dll</ReferenceAssembly>
+      </ReferencePath>
+    </ItemGroup>
   </Target>
 
   <!-- These targets are used to generate the map of assembly name to project files. See also the /t:GenerateProjectList target in build/repo.targets. -->
@@ -231,24 +319,36 @@
       <ReferenceAssemblyProjectFileRelativePath>$([MSBuild]::MakeRelative($(RepoRoot), '$(ReferenceAssemblyDirectory)$(MSBuildProjectFile)'))</ReferenceAssemblyProjectFileRelativePath>
     </PropertyGroup>
 
-    <Error Condition="'$(SkipRefDirectoryCheck)' != 'true' AND '$(IsImplementationProject)' == 'true' AND '$(HasReferenceAssembly)' != 'true' AND Exists($(ReferenceAssemblyDirectory))" Text="Project shouldn't have reference assembly but folder exists $(ReferenceAssemblyDirectory)" />
-    <Error Condition=" '$(IsAspNetCoreApp)' == 'true' AND '$(IsImplementationProject)' == 'true' AND '$(HasReferenceAssembly)' != 'true'" Text="All assemblies which have set IsAspNetCoreApp=true should produce a reference assembly." />
+    <Error
+        Condition="'$(SkipRefDirectoryCheck)' != 'true' AND '$(IsImplementationProject)' == 'true' AND !$(HasReferenceAssembly) AND Exists($(ReferenceAssemblyDirectory))"
+        Text="Project shouldn't have reference assembly but folder exists $(ReferenceAssemblyDirectory)" />
+    <Error
+        Condition=" '$(IsAspNetCoreApp)' == 'true' AND '$(IsImplementationProject)' == 'true' AND !$(HasReferenceAssembly) "
+        Text="All assemblies which have set IsAspNetCoreApp=true should produce a reference assembly." />
+    <Warning Condition=" '$(IsAspNetCoreApp)' == 'true' AND '$(IsImplementationProject)' != 'true' "
+        Text="Only implementation projects should set IsAspNetCoreApp=true." />
+    <Warning Condition=" '$(IsAspNetCoreApp)' != 'true' AND $(HasReferenceAssembly) "
+        Text="Only projects in the shared framework i.e. IsAspNetCoreApp==true should produce a reference assembly." />
 
     <ItemGroup Condition=" '$(IsProjectReferenceProvider)' == 'true' ">
       <ProvidesReference Include="$(AssemblyName)">
         <IsAspNetCoreApp>$([MSBuild]::ValueOrDefault($(IsAspNetCoreApp),'false'))</IsAspNetCoreApp>
-        <IsShippingPackage>$([MSBuild]::ValueOrDefault($(IsShippingPackage),'false'))</IsShippingPackage>
+        <IsPackable>$([MSBuild]::ValueOrDefault($(IsPackable),'false'))</IsPackable>
         <ProjectFileRelativePath>$([MSBuild]::MakeRelative($(RepoRoot), $(MSBuildProjectFullPath)))</ProjectFileRelativePath>
-        <ReferenceAssemblyProjectFileRelativePath Condition="'$(HasReferenceAssembly)' == 'true'">$(ReferenceAssemblyProjectFileRelativePath)</ReferenceAssemblyProjectFileRelativePath>
+        <ReferenceAssemblyProjectFileRelativePath
+            Condition=" $(HasReferenceAssembly) ">$(ReferenceAssemblyProjectFileRelativePath)</ReferenceAssemblyProjectFileRelativePath>
       </ProvidesReference>
     </ItemGroup>
   </Target>
 
   <!-- This is used by the eng/scripts/AddAllProjectRefsToSolution.ps1 script to traverse the ProjectRef graph -->
   <PropertyGroup>
-    <_CustomCollectProjectReferenceDependsOn Condition="'$(TargetFramework)' != ''">ResolveProjectReferences</_CustomCollectProjectReferenceDependsOn>
+    <_CustomCollectProjectReferenceDependsOn
+        Condition="'$(TargetFramework)' != ''">ResolveProjectReferences</_CustomCollectProjectReferenceDependsOn>
   </PropertyGroup>
-  <Target Name="_CustomCollectProjectReference" DependsOnTargets="$(_CustomCollectProjectReferenceDependsOn)" Returns="$(MSBuildProjectFullPath);@(_MSBuildProjectReferenceExistent)">
+  <Target Name="_CustomCollectProjectReference"
+      DependsOnTargets="$(_CustomCollectProjectReferenceDependsOn)"
+      Returns="$(MSBuildProjectFullPath);@(_MSBuildProjectReferenceExistent)">
     <ItemGroup>
       <_TargetFrameworks Include="$(TargetFrameworks)" />
     </ItemGroup>
diff --git a/eng/tools/RepoTasks/DownloadFile.cs b/eng/tools/RepoTasks/DownloadFile.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2be0954cc2585cfe5fcd1998baed8975023f988c
--- /dev/null
+++ b/eng/tools/RepoTasks/DownloadFile.cs
@@ -0,0 +1,149 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.IO;
+using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+
+namespace RepoTasks
+{
+    public class DownloadFile : Microsoft.Build.Utilities.Task
+    {
+        [Required]
+        public string Uri { get; set; }
+
+        /// <summary>
+        /// If this field is set and the task fail to download the file from `Uri`, with a NotFound
+        /// status, it will try to download the file from `PrivateUri`.
+        /// </summary>
+        public string PrivateUri { get; set; }
+        
+        /// <summary>
+        /// Suffix for the private URI in base64 form (for SAS compatibility)
+        /// </summary>
+        public string PrivateUriSuffix { get; set; }
+
+        public int MaxRetries { get; set; } = 5;
+
+        [Required]
+        public string DestinationPath { get; set; }
+
+        public bool Overwrite { get; set; }
+
+        public override bool Execute()
+        {
+            return ExecuteAsync().GetAwaiter().GetResult();
+        }
+
+        private async System.Threading.Tasks.Task<bool> ExecuteAsync()
+        {
+            string destinationDir = Path.GetDirectoryName(DestinationPath);
+            if (!Directory.Exists(destinationDir))
+            {
+                Directory.CreateDirectory(destinationDir);
+            }
+
+            if (File.Exists(DestinationPath) && !Overwrite)
+            {
+                return true;
+            }
+
+            const string FileUriProtocol = "file://";
+
+            if (Uri.StartsWith(FileUriProtocol, StringComparison.Ordinal))
+            {
+                var filePath = Uri.Substring(FileUriProtocol.Length);
+                Log.LogMessage($"Copying '{filePath}' to '{DestinationPath}'");
+                File.Copy(filePath, DestinationPath);
+                return true;
+            }
+
+            List<string> errorMessages = new List<string>();
+            bool? downloadStatus = await DownloadWithRetriesAsync(Uri, DestinationPath, errorMessages);
+
+            if (downloadStatus == false && !string.IsNullOrEmpty(PrivateUri))
+            {
+                string uriSuffix = "";
+                if (!string.IsNullOrEmpty(PrivateUriSuffix))
+                {
+                    var uriSuffixBytes = System.Convert.FromBase64String(PrivateUriSuffix);
+                    uriSuffix = System.Text.Encoding.UTF8.GetString(uriSuffixBytes);
+                }
+                downloadStatus = await DownloadWithRetriesAsync($"{PrivateUri}{uriSuffix}", DestinationPath, errorMessages);
+            }
+
+            if (downloadStatus != true)
+            {
+                foreach (var error in errorMessages)
+                {
+                    Log.LogError(error);
+                }
+            }
+
+            return downloadStatus == true;
+        }
+
+        /// <summary>
+        /// Attempt to download file from `source` with retries when response error is different of FileNotFound and Success.
+        /// </summary>
+        /// <param name="source">URL to the file to be downloaded.</param>
+        /// <param name="target">Local path where to put the downloaded file.</param>
+        /// <returns>true: Download Succeeded. false: Download failed with 404. null: Download failed but is retriable.</returns>
+        private async Task<bool?> DownloadWithRetriesAsync(string source, string target, List<string> errorMessages)
+        {
+            Random rng = new Random();
+
+            Log.LogMessage(MessageImportance.High, $"Attempting download '{source}' to '{target}'");
+
+            using (var httpClient = new HttpClient())
+            {
+                for (int retryNumber = 0; retryNumber < MaxRetries; retryNumber++)
+                {
+                    try
+                    {
+                        var httpResponse = await httpClient.GetAsync(source);
+
+                        Log.LogMessage(MessageImportance.High, $"{source} -> {httpResponse.StatusCode}");
+
+                        // The Azure Storage REST API returns '400 - Bad Request' in some cases
+                        // where the resource is not found on the storage.
+                        // https://docs.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes
+                        if (httpResponse.StatusCode == HttpStatusCode.NotFound ||
+                            httpResponse.ReasonPhrase.IndexOf("The requested URI does not represent any resource on the server.", StringComparison.OrdinalIgnoreCase) == 0)
+                        {
+                            errorMessages.Add($"Problems downloading file from '{source}'. Does the resource exist on the storage? {httpResponse.StatusCode} : {httpResponse.ReasonPhrase}");
+                            return false;
+                        }
+
+                        httpResponse.EnsureSuccessStatusCode();
+
+                        using (var outStream = File.Create(target))
+                        {
+                            await httpResponse.Content.CopyToAsync(outStream);
+                        }
+
+                        Log.LogMessage(MessageImportance.High, $"returning true {source} -> {httpResponse.StatusCode}");
+                        return true;
+                    }
+                    catch (Exception e)
+                    {
+                        Log.LogMessage(MessageImportance.High, $"returning error in {source} ");
+                        errorMessages.Add($"Problems downloading file from '{source}'. {e.Message} {e.StackTrace}");
+                        File.Delete(target);
+                    }
+
+                    await System.Threading.Tasks.Task.Delay(rng.Next(1000, 10000));
+                }
+            }
+
+            Log.LogMessage(MessageImportance.High, $"giving up {source} ");
+            errorMessages.Add($"Giving up downloading the file from '{source}' after {MaxRetries} retries.");
+            return null;
+        }
+    }
+}
diff --git a/eng/tools/RepoTasks/RepoTasks.tasks b/eng/tools/RepoTasks/RepoTasks.tasks
index 0fa015d81f0a718d5a882e18d21126a5cc4e544d..631944feea73f96e9f0bed405f29e9651c56e241 100644
--- a/eng/tools/RepoTasks/RepoTasks.tasks
+++ b/eng/tools/RepoTasks/RepoTasks.tasks
@@ -10,4 +10,5 @@
   <UsingTask TaskName="RepoTasks.GenerateSharedFrameworkDepsFile" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.CreateFrameworkListFile" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.RemoveSharedFrameworkDependencies" AssemblyFile="$(_RepoTaskAssembly)" />
+  <UsingTask TaskName="RepoTasks.DownloadFile" AssemblyFile="$(_RepoTaskAssembly)" />
 </Project>
diff --git a/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs b/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs
index 4e396cbceaa9946afda3b76963d74bbf1353cdea..eb748f2ab369197f6f5f08cc924b1e35a4a2e519 100644
--- a/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs
+++ b/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs
@@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Analyzers
             }
 
             var read = Read(source);
-            return DiagnosticProject.Create(GetType().Assembly, new[] { read.Source, });
+            return AnalyzersDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { read.Source, });
         }
 
         public Task<Compilation> CreateCompilationAsync(string source)
diff --git a/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs b/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs
index 57a8ce8a697f9f1d190a4d8913dd7a17a8a22d4c..f54a187c0e7e9153141cbeb2f5de48d4e79ee8e9 100644
--- a/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs
+++ b/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs
@@ -2,6 +2,9 @@
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
+using System.IO;
+using System.Linq;
+using System.Reflection;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Analyzer.Testing;
 using Microsoft.CodeAnalysis;
@@ -20,7 +23,28 @@ namespace Microsoft.AspNetCore.Analyzers
 
         public Task<Diagnostic[]> GetDiagnosticsAsync(string source)
         {
-            return GetDiagnosticsAsync(sources: new[] { source }, Analyzer, Array.Empty<string>());
+            var project = CreateProjectWithReferencesInBinDir(GetType().Assembly, source);
+
+            return GetDiagnosticsAsync(project);
+        }
+
+        public static Project CreateProjectWithReferencesInBinDir(Assembly testAssembly, params string[] source)
+        {
+            // The deps file in the project is incorrect and does not contain "compile" nodes for some references.
+            // However these binaries are always present in the bin output. As a "temporary" workaround, we'll add
+            // every dll file that's present in the test's build output as a metadatareference.
+
+            var project = DiagnosticProject.Create(testAssembly, source);
+
+            foreach (var assembly in Directory.EnumerateFiles(AppContext.BaseDirectory, "*.dll"))
+            {
+                if (!project.MetadataReferences.Any(c => string.Equals(Path.GetFileNameWithoutExtension(c.Display), Path.GetFileNameWithoutExtension(assembly), StringComparison.OrdinalIgnoreCase)))
+                {
+                    project = project.AddMetadataReference(MetadataReference.CreateFromFile(assembly));
+                }
+            }
+
+            return project;
         }
 
         public Task<Diagnostic[]> GetDiagnosticsAsync(Project project)
diff --git a/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.Manual.cs b/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..10c1b0e282e0ea03de1b6882db86c6cefdbdd23a
--- /dev/null
+++ b/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.Manual.cs
@@ -0,0 +1,147 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Antiforgery
+{
+    internal partial class AntiforgeryFeature : Microsoft.AspNetCore.Antiforgery.IAntiforgeryFeature
+    {
+        public AntiforgeryFeature() { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken CookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveDeserializedCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveDeserializedRequestToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveGeneratedNewCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveStoredNewCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string NewCookieTokenString { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewRequestToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string NewRequestTokenString { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken RequestToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+
+    internal partial class AntiforgerySerializationContext
+    {
+        public AntiforgerySerializationContext() { }
+        public System.IO.BinaryReader Reader { get { throw null; } }
+        public System.Security.Cryptography.SHA256 Sha256 { get { throw null; } }
+        public System.IO.MemoryStream Stream { get { throw null; } }
+        public System.IO.BinaryWriter Writer { get { throw null; } }
+        public char[] GetChars(int count) { throw null; }
+        public void Reset() { }
+    }
+
+    internal partial class AntiforgerySerializationContextPooledObjectPolicy : Microsoft.Extensions.ObjectPool.IPooledObjectPolicy<Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext>
+    {
+        public AntiforgerySerializationContextPooledObjectPolicy() { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext Create() { throw null; }
+        public bool Return(Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext obj) { throw null; }
+    }
+
+    internal sealed partial class AntiforgeryToken
+    {
+        internal const int ClaimUidBitLength = 256;
+        internal const int SecurityTokenBitLength = 128;
+        public AntiforgeryToken() { }
+        public string AdditionalData { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Antiforgery.BinaryBlob ClaimUid { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool IsCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.BinaryBlob SecurityToken { get { throw null; } set { } }
+        public string Username { get { throw null; } set { } }
+    }
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerString}")]
+    internal sealed partial class BinaryBlob : System.IEquatable<Microsoft.AspNetCore.Antiforgery.BinaryBlob>
+    {
+        public BinaryBlob(int bitLength) { }
+        public BinaryBlob(int bitLength, byte[] data) { }
+        public int BitLength { get { throw null; } }
+        public bool Equals(Microsoft.AspNetCore.Antiforgery.BinaryBlob other) { throw null; }
+        public override bool Equals(object obj) { throw null; }
+        public byte[] GetData() { throw null; }
+        public override int GetHashCode() { throw null; }
+    }
+
+    internal partial class DefaultAntiforgery : Microsoft.AspNetCore.Antiforgery.IAntiforgery
+    {
+        public DefaultAntiforgery(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions> antiforgeryOptionsAccessor, Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenGenerator tokenGenerator, Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenSerializer tokenSerializer, Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenStore tokenStore, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet GetAndStoreTokens(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet GetTokens(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<bool> IsRequestValidAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public void SetCookieTokenAndHeader(Microsoft.AspNetCore.Http.HttpContext httpContext) { }
+        protected virtual void SetDoNotCacheHeaders(Microsoft.AspNetCore.Http.HttpContext httpContext) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ValidateRequestAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+    }
+
+    internal partial class DefaultAntiforgeryTokenGenerator : Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenGenerator
+    {
+        public DefaultAntiforgeryTokenGenerator(Microsoft.AspNetCore.Antiforgery.IClaimUidExtractor claimUidExtractor, Microsoft.AspNetCore.Antiforgery.IAntiforgeryAdditionalDataProvider additionalDataProvider) { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateCookieToken() { throw null; }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateRequestToken(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken) { throw null; }
+        public bool IsCookieTokenValid(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken) { throw null; }
+        public bool TryValidateTokenSet(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken requestToken, out string message) { throw null; }
+    }
+
+    internal partial class DefaultAntiforgeryTokenSerializer : Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenSerializer
+    {
+        public DefaultAntiforgeryTokenSerializer(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider, Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext> pool) { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken Deserialize(string serializedToken) { throw null; }
+        public string Serialize(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken token) { throw null; }
+    }
+
+    internal partial class DefaultAntiforgeryTokenStore : Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenStore
+    {
+        public DefaultAntiforgeryTokenStore(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions> optionsAccessor) { }
+        public string GetCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet> GetRequestTokensAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public void SaveCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext, string token) { }
+    }
+
+    internal partial class DefaultClaimUidExtractor : Microsoft.AspNetCore.Antiforgery.IClaimUidExtractor
+    {
+        public DefaultClaimUidExtractor(Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext> pool) { }
+        public string ExtractClaimUid(System.Security.Claims.ClaimsPrincipal claimsPrincipal) { throw null; }
+        public static System.Collections.Generic.IList<string> GetUniqueIdentifierParameters(System.Collections.Generic.IEnumerable<System.Security.Claims.ClaimsIdentity> claimsIdentities) { throw null; }
+    }
+
+    internal partial interface IAntiforgeryFeature
+    {
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken CookieToken { get; set; }
+        bool HaveDeserializedCookieToken { get; set; }
+        bool HaveDeserializedRequestToken { get; set; }
+        bool HaveGeneratedNewCookieToken { get; set; }
+        bool HaveStoredNewCookieToken { get; set; }
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewCookieToken { get; set; }
+        string NewCookieTokenString { get; set; }
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewRequestToken { get; set; }
+        string NewRequestTokenString { get; set; }
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken RequestToken { get; set; }
+    }
+
+    internal partial interface IAntiforgeryTokenGenerator
+    {
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateCookieToken();
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateRequestToken(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken);
+        bool IsCookieTokenValid(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken);
+        bool TryValidateTokenSet(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken requestToken, out string message);
+    }
+
+    internal partial interface IAntiforgeryTokenSerializer
+    {
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken Deserialize(string serializedToken);
+        string Serialize(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken token);
+    }
+
+    internal partial interface IAntiforgeryTokenStore
+    {
+        string GetCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext);
+        System.Threading.Tasks.Task<Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet> GetRequestTokensAsync(Microsoft.AspNetCore.Http.HttpContext httpContext);
+        void SaveCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext, string token);
+    }
+
+    internal partial interface IClaimUidExtractor
+    {
+        string ExtractClaimUid(System.Security.Claims.ClaimsPrincipal claimsPrincipal);
+    }
+}
diff --git a/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj b/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj
index 19cd7ed436e3f157fde8a28941e8028985576e78..451b80df9531ee40979c2eeeca1ce8d14be18b6f 100644
--- a/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj
+++ b/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj
@@ -5,10 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Antiforgery.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.WebUtilities"  />
-    <Reference Include="Microsoft.Extensions.ObjectPool"  />
+    <Compile Include="Microsoft.AspNetCore.Antiforgery.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.WebUtilities" />
+    <Reference Include="Microsoft.Extensions.ObjectPool" />
   </ItemGroup>
 </Project>
diff --git a/src/Antiforgery/src/Microsoft.AspNetCore.Antiforgery.csproj b/src/Antiforgery/src/Microsoft.AspNetCore.Antiforgery.csproj
index d00d01e0662c57acf883624f983c886d2b90c262..566e221871c314e4a275478c56838850ead768d9 100644
--- a/src/Antiforgery/src/Microsoft.AspNetCore.Antiforgery.csproj
+++ b/src/Antiforgery/src/Microsoft.AspNetCore.Antiforgery.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;antiforgery</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj b/src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj
deleted file mode 100644
index 85033065e42af99d974d3566c1c2eea11e985298..0000000000000000000000000000000000000000
--- a/src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.AzureAD.UI.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.JwtBearer"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Cookies"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.netcoreapp.cs b/src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.netcoreapp.cs
deleted file mode 100644
index 37f4cd55734bd14a122c667fd87029d696da559d..0000000000000000000000000000000000000000
--- a/src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.netcoreapp.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication
-{
-    public static partial class AzureADAuthenticationBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureAD(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureAD(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string scheme, string openIdConnectScheme, string cookieScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string scheme, string jwtBearerScheme, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.AzureAD.UI
-{
-    public static partial class AzureADDefaults
-    {
-        public const string AuthenticationScheme = "AzureAD";
-        public const string BearerAuthenticationScheme = "AzureADBearer";
-        public const string CookieScheme = "AzureADCookie";
-        public static readonly string DisplayName;
-        public const string JwtBearerAuthenticationScheme = "AzureADJwtBearer";
-        public const string OpenIdScheme = "AzureADOpenID";
-    }
-    public partial class AzureADOptions
-    {
-        public AzureADOptions() { }
-        public string[] AllSchemes { get { throw null; } }
-        public string CallbackPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ClientId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ClientSecret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string CookieSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Domain { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Instance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string JwtBearerSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string OpenIdConnectSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string SignedOutCallbackPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string TenantId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.AzureAD.UI.Internal
-{
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class AccessDeniedModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public AccessDeniedModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    [Microsoft.AspNetCore.Mvc.ResponseCacheAttribute(Duration=0, Location=Microsoft.AspNetCore.Mvc.ResponseCacheLocation.None, NoStore=true)]
-    public partial class ErrorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ErrorModel() { }
-        public string RequestId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ShowRequestId { get { throw null; } }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class SignedOutModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public SignedOutModel() { }
-        public Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-    }
-}
diff --git a/src/Azure/AzureAD/Authentication.AzureADB2C.UI/ref/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj b/src/Azure/AzureAD/Authentication.AzureADB2C.UI/ref/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj
deleted file mode 100644
index 7bcd1a5e1bbf40fafade9a947e16d54216a14c61..0000000000000000000000000000000000000000
--- a/src/Azure/AzureAD/Authentication.AzureADB2C.UI/ref/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.JwtBearer"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Cookies"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj b/src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj
deleted file mode 100644
index 5026fcfe23e3a1dd008e164d90e7cd318744c0fc..0000000000000000000000000000000000000000
--- a/src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.AzureAppServicesIntegration"  />
-    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.netcoreapp.cs b/src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.netcoreapp.cs
deleted file mode 100644
index 5b449024e0f2055509797a30259f21bc14343613..0000000000000000000000000000000000000000
--- a/src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.netcoreapp.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.AzureAppServices.HostingStartup
-{
-    public partial class AzureAppServicesHostingStartup : Microsoft.AspNetCore.Hosting.IHostingStartup
-    {
-        public AzureAppServicesHostingStartup() { }
-        public void Configure(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { }
-    }
-}
diff --git a/src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.csproj b/src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.csproj
deleted file mode 100644
index ba1159838ba37624dac4afb206a6754412eab61f..0000000000000000000000000000000000000000
--- a/src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.AzureAppServicesIntegration.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.Extensions.Logging.AzureAppServices"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.netcoreapp.cs b/src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.netcoreapp.cs
deleted file mode 100644
index 55a333c151f41d1bc364954542a846c14c81625f..0000000000000000000000000000000000000000
--- a/src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.netcoreapp.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Hosting
-{
-    public static partial class AppServicesWebHostBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseAzureAppServices(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) { throw null; }
-    }
-}
diff --git a/src/Components/Analyzers/src/Microsoft.AspNetCore.Components.Analyzers.csproj b/src/Components/Analyzers/src/Microsoft.AspNetCore.Components.Analyzers.csproj
index a83904f24566ed8131c3ef4e719c3aee3a00a81d..903de47c78c54b6b44081bc67751d606e8846c42 100644
--- a/src/Components/Analyzers/src/Microsoft.AspNetCore.Components.Analyzers.csproj
+++ b/src/Components/Analyzers/src/Microsoft.AspNetCore.Components.Analyzers.csproj
@@ -18,6 +18,7 @@
   <ItemGroup>
     <None Include="$(TargetPath)" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
     <None Include="build/netstandard2.0/*" Pack="true" PackagePath="build/netstandard2.0" />
+    <None Include="buildTransitive/netstandard2.0/*" Pack="true" PackagePath="buildTransitive/netstandard2.0" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Components/Analyzers/src/build/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.props b/src/Components/Analyzers/src/build/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.props
deleted file mode 100644
index 0ba7b4da050d5f1ab0b38add8a43171c1f8db616..0000000000000000000000000000000000000000
--- a/src/Components/Analyzers/src/build/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.props
+++ /dev/null
@@ -1,5 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <DisableImplicitComponentsAnalyzers>true</DisableImplicitComponentsAnalyzers>
-  </PropertyGroup>
-</Project>
diff --git a/src/Components/Analyzers/src/build/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.targets b/src/Components/Analyzers/src/build/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d8c68fd5ee2add3335d530e7ca272395c3a36399
--- /dev/null
+++ b/src/Components/Analyzers/src/build/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.targets
@@ -0,0 +1,34 @@
+<Project>
+  <!--
+  The Web.SDK unconditionally adds the components analyzer to all qualifying Web projects. A project qualifiies if it targets netcoreapp3.0 or later and does not have a flag that
+  prevents the implicit analyzer from being added. We want to ensure that when a Web project also references this package, typically as the result of referencing a component class library,
+  the analyzer in the SDK always wins.
+
+  "ResolvedAnalyzers" contains the list of analyzers that are resolved from package references. "Analyzer" contains the list of of analyzers used by the compiler.
+  The ResolveLockFileAnalyzers target copies items from ResolvedAnalyzers to Analyzer.
+
+  The target below runs before ResolveLockFileAnalyzers executes. If it discovers that the Analyzer item group was previously populated by the WebSDK, it prevents the analyzer from the package
+  from being used by removing it from the ResolvedAnalyzers list.
+
+  Note: Prior to 3.1.3, this package prevented the analyzer from the SDK from being used by setting DisableImplicitComponentsAnalyzers=true. This would have prevented newer versions of the analyzer
+  from the SDK from ever being used. A compilation of SDK and package version combinations:
+
+  Package Version         SDK Version     Result
+  ==================================================
+  Earlier than 3.1.3      Any            Package wins
+  3.1.3 or newer          Any            SDK wins
+  -->
+  <Target Name="_RemoveComponentAnalyzer" BeforeTargets="ResolveLockFileAnalyzers" Condition="'@(Analyzer->Count())' != '0'">
+    <ItemGroup>
+      <_AspNetCoreComponentsAnalyzerName Include="$([System.IO.Path]::GetFileNameWithoutExtension('%(Analyzer.Identity)'))" />
+    </ItemGroup>
+
+    <PropertyGroup>
+      <_AspNetCoreComponentsAnalyzerPath>$([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)../../analyzers/dotnet/cs/Microsoft.AspNetCore.Components.Analyzers.dll'))</_AspNetCoreComponentsAnalyzerPath>
+    </PropertyGroup>
+
+    <ItemGroup Condition="'@(_AspNetCoreComponentsAnalyzerName->AnyHaveMetadataValue('Identity', 'Microsoft.AspNetCore.Components.Analyzers'))' == 'true'">
+      <ResolvedAnalyzers Remove="$(_AspNetCoreComponentsAnalyzerPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/src/Components/Analyzers/src/buildTransitive/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.targets b/src/Components/Analyzers/src/buildTransitive/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.targets
new file mode 100644
index 0000000000000000000000000000000000000000..fd79fdac66f4f8c88219f291d869178cf9617d09
--- /dev/null
+++ b/src/Components/Analyzers/src/buildTransitive/netstandard2.0/Microsoft.AspNetCore.Components.Analyzers.targets
@@ -0,0 +1,3 @@
+<Project>
+  <Import Project="..\..\build\netstandard2.0\Microsoft.AspNetCore.Components.Analyzers.targets" />
+</Project>
diff --git a/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj b/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj
index 513c24575daa9cf3f6a80929ca2d99cec866bd93..3a91e8a4b85b88465b91c7fe4857246b8f8332f5 100644
--- a/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj
+++ b/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj
@@ -5,12 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.Authorization.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
+    <Reference Include="Microsoft.AspNetCore.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Authorization.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
+    <Reference Include="Microsoft.AspNetCore.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 </Project>
diff --git a/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj b/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj
index 8f3142849aebcef1274407c39b03477f5c8edf79..fa9f6827720303f4b6c991b65b3c560b1c70d33c 100644
--- a/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj
+++ b/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj
@@ -6,7 +6,6 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <Description>Authentication and authorization support for Blazor applications.</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <IsShippingPackage>true</IsShippingPackage>
     <RazorLangVersion>3.0</RazorLangVersion>
   </PropertyGroup>
 
diff --git a/src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.csproj b/src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.csproj
deleted file mode 100644
index 88ca078caaeb9775a4b8a6b572ab067321a8b42f..0000000000000000000000000000000000000000
--- a/src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.1</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
-    <Compile Include="Microsoft.AspNetCore.Blazor.netstandard2.1.cs" />
-    <Reference Include="Mono.WebAssembly.Interop"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Web"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.netstandard2.1.cs b/src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.netstandard2.1.cs
deleted file mode 100644
index 583e9efc50a80c3d0e385fd0a9b5d9dfea870a70..0000000000000000000000000000000000000000
--- a/src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.netstandard2.1.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Blazor
-{
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-    public static partial class JSInteropMethods
-    {
-        [Microsoft.JSInterop.JSInvokableAttribute("NotifyLocationChanged")]
-        public static void NotifyLocationChanged(string uri, bool isInterceptedLink) { }
-    }
-}
-namespace Microsoft.AspNetCore.Blazor.Hosting
-{
-    public static partial class BlazorWebAssemblyHost
-    {
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder CreateDefaultBuilder() { throw null; }
-    }
-    public partial interface IWebAssemblyHost : System.IDisposable
-    {
-        System.IServiceProvider Services { get; }
-        System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
-        System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
-    }
-    public partial interface IWebAssemblyHostBuilder
-    {
-        System.Collections.Generic.IDictionary<object, object> Properties { get; }
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHost Build();
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder ConfigureServices(System.Action<Microsoft.AspNetCore.Blazor.Hosting.WebAssemblyHostBuilderContext, Microsoft.Extensions.DependencyInjection.IServiceCollection> configureDelegate);
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseServiceProviderFactory<TContainerBuilder>(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder> factory);
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseServiceProviderFactory<TContainerBuilder>(System.Func<Microsoft.AspNetCore.Blazor.Hosting.WebAssemblyHostBuilderContext, Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder>> factory);
-    }
-    public sealed partial class WebAssemblyHostBuilderContext
-    {
-        public WebAssemblyHostBuilderContext(System.Collections.Generic.IDictionary<object, object> properties) { }
-        public System.Collections.Generic.IDictionary<object, object> Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public static partial class WebAssemblyHostBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder ConfigureServices(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder hostBuilder, System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection> configureDelegate) { throw null; }
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseBlazorStartup(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder builder, System.Type startupType) { throw null; }
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseBlazorStartup<TStartup>(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder builder) { throw null; }
-    }
-    public static partial class WebAssemblyHostExtensions
-    {
-        public static void Run(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHost host) { }
-    }
-}
-namespace Microsoft.AspNetCore.Blazor.Http
-{
-    public enum FetchCredentialsOption
-    {
-        Omit = 0,
-        SameOrigin = 1,
-        Include = 2,
-    }
-    public static partial class WebAssemblyHttpMessageHandlerOptions
-    {
-        public static Microsoft.AspNetCore.Blazor.Http.FetchCredentialsOption DefaultCredentials { get { throw null; } set { } }
-    }
-}
-namespace Microsoft.AspNetCore.Blazor.Rendering
-{
-    public static partial class WebAssemblyEventDispatcher
-    {
-        [Microsoft.JSInterop.JSInvokableAttribute("DispatchEvent")]
-        public static System.Threading.Tasks.Task DispatchEvent(Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor eventDescriptor, string eventArgsJson) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Components.Builder
-{
-    public static partial class ComponentsApplicationBuilderExtensions
-    {
-        public static void AddComponent<TComponent>(this Microsoft.AspNetCore.Components.Builder.IComponentsApplicationBuilder app, string domElementSelector) where TComponent : Microsoft.AspNetCore.Components.IComponent { }
-    }
-    public partial interface IComponentsApplicationBuilder
-    {
-        System.IServiceProvider Services { get; }
-        void AddComponent(System.Type componentType, string domElementSelector);
-    }
-}
diff --git a/src/Components/Blazor/Blazor/src/Microsoft.AspNetCore.Blazor.csproj b/src/Components/Blazor/Blazor/src/Microsoft.AspNetCore.Blazor.csproj
index be94e420a214e38397535d4c011975ddaf436541..867dec8215137fef915b7e60d273fdaef6617e56 100644
--- a/src/Components/Blazor/Blazor/src/Microsoft.AspNetCore.Blazor.csproj
+++ b/src/Components/Blazor/Blazor/src/Microsoft.AspNetCore.Blazor.csproj
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <TargetFramework>netstandard2.1</TargetFramework>
     <Description>Build client-side single-page applications (SPAs) with Blazor running under WebAssembly.</Description>
-    <IsShippingPackage>true</IsShippingPackage>
+    <IsShippingPackage>false</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj b/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj
index be1cb3f836b751bd11e3cd4d2e27a123268b3999..b156fde4a2e0e1a8a7ffa1bbdf383f2a819b9ce0 100644
--- a/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj
+++ b/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj
@@ -2,11 +2,17 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Blazor" />
     <Reference Include="Microsoft.CodeAnalysis.CSharp" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <!-- Avoid MSB3277 warnings due to dependencies brought in through Microsoft.AspNetCore.Blazor targeting netstandard2.0. -->
+    <Reference Include="System.Text.Json" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj
index daee88af6854aabbd0f328a459ceaed7f168ba8f..57b1e5b4cd897c68effd4440ca9416ed2227fd06 100644
--- a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj
+++ b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj
@@ -5,7 +5,7 @@
     <TargetName>Microsoft.AspNetCore.Blazor.Build.Tasks</TargetName>
     <AssemblyName>Microsoft.AspNetCore.Blazor.Build</AssemblyName>
     <Description>Build mechanism for ASP.NET Core Blazor applications.</Description>
-    <IsShippingPackage>true</IsShippingPackage>
+    <IsShippingPackage>false</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
     <GenerateDependencyFile>false</GenerateDependencyFile>
   </PropertyGroup>
diff --git a/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj b/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj
index 25b791e22aa83bbdb560ad05f1f45204c61ea45c..bc90f9596ecfc08c9311d9d500b5685c0178af72 100644
--- a/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj
+++ b/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj
@@ -6,6 +6,8 @@
     <!-- Exclude the TestFiles directory from default wildcards -->
     <DefaultItemExcludes>$(DefaultItemExcludes);TestFiles\**\*</DefaultItemExcludes>
     <BuildHelixPayload>false</BuildHelixPayload>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -30,6 +32,8 @@
     <Reference Include="Microsoft.Build.Utilities.Core" />
     <Reference Include="Microsoft.CodeAnalysis.Razor" />
     <Reference Include="Microsoft.Extensions.CommandLineUtils.Sources" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj
index d18ab7c9e442c37d6fcb81b3002ebefca134fc8d..4749a781cabe8e767551beda16cb89d11889ae96 100644
--- a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj
+++ b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj
@@ -5,7 +5,7 @@
     <OutputType>Exe</OutputType>
     <AssemblyName>blazor-devserver</AssemblyName>
     <PackageId>Microsoft.AspNetCore.Blazor.DevServer</PackageId>
-    <IsShippingPackage>true</IsShippingPackage>
+    <IsShippingPackage>false</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
     <StartupObject>Microsoft.AspNetCore.Blazor.DevServer.Program</StartupObject>
     <Description>Development server for use when building Blazor applications.</Description>
diff --git a/src/Components/Blazor/Http/src/Microsoft.AspNetCore.Blazor.HttpClient.csproj b/src/Components/Blazor/Http/src/Microsoft.AspNetCore.Blazor.HttpClient.csproj
index ae4ee9a8a81b41c528d426c6f748d8248d7a3c1e..9d6deb6173bbac14197de55e5a47be527ef2fd0f 100644
--- a/src/Components/Blazor/Http/src/Microsoft.AspNetCore.Blazor.HttpClient.csproj
+++ b/src/Components/Blazor/Http/src/Microsoft.AspNetCore.Blazor.HttpClient.csproj
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <Description>Provides experimental support for using System.Text.Json with HttpClient. Intended for use with Blazor running under WebAssembly.</Description>
-    <IsShippingPackage>true</IsShippingPackage>
+    <IsShippingPackage>false</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
   </PropertyGroup>
 
diff --git a/src/Components/Blazor/Server/src/Microsoft.AspNetCore.Blazor.Server.csproj b/src/Components/Blazor/Server/src/Microsoft.AspNetCore.Blazor.Server.csproj
index ac8147d099b540f9d3c0698207d381230bfac047..4bdbc1bb1b38f13396816c0619b7031ef4e87dc9 100644
--- a/src/Components/Blazor/Server/src/Microsoft.AspNetCore.Blazor.Server.csproj
+++ b/src/Components/Blazor/Server/src/Microsoft.AspNetCore.Blazor.Server.csproj
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <Description>Runtime server features for ASP.NET Core Blazor applications.</Description>
-    <IsShippingPackage>true</IsShippingPackage>
+    <IsShippingPackage>false</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
   </PropertyGroup>
 
diff --git a/src/Components/Blazor/Validation/src/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.csproj b/src/Components/Blazor/Validation/src/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.csproj
index 725b1f9811141e6ceea2bcb1ad24ed1ceaef3241..53cc678edbb0b169038dcc48ad88fb3e42268d4c 100644
--- a/src/Components/Blazor/Validation/src/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.csproj
+++ b/src/Components/Blazor/Validation/src/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.csproj
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <TargetFramework>netstandard2.1</TargetFramework>
     <Description>Provides experimental support for validation using DataAnnotations.</Description>
-    <IsShippingPackage>true</IsShippingPackage>
+    <IsShippingPackage>false</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
   </PropertyGroup>
 
diff --git a/src/Components/Blazor/Validation/test/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.Tests.csproj b/src/Components/Blazor/Validation/test/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.Tests.csproj
index 02e85615362bb2587030af6c71d585292fac13ab..199d86622f6d7acf16dc1acc6623be3e07e345f1 100644
--- a/src/Components/Blazor/Validation/test/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.Tests.csproj
+++ b/src/Components/Blazor/Validation/test/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.Tests.csproj
@@ -2,10 +2,14 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Blazor.DataAnnotations.Validation" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Components/Blazor/testassets/HostedInAspNet.Server/HostedInAspNet.Server.csproj b/src/Components/Blazor/testassets/HostedInAspNet.Server/HostedInAspNet.Server.csproj
index c4ab49b06ce31ce9a4b4eed9c02d4b7d52241333..1350803e6b1ae040036bc25956c7ae313ae9b734 100644
--- a/src/Components/Blazor/testassets/HostedInAspNet.Server/HostedInAspNet.Server.csproj
+++ b/src/Components/Blazor/testassets/HostedInAspNet.Server/HostedInAspNet.Server.csproj
@@ -12,6 +12,8 @@
     <Reference Include="Microsoft.AspNetCore.Blazor.Server" />
     <Reference Include="Microsoft.AspNetCore" />
     <Reference Include="Microsoft.Extensions.Hosting" />
+    <!-- Avoid MSB3277 warnings due to dependencies brought in through Microsoft.AspNetCore.Blazor targeting netstandard2.0. -->
+    <Reference Include="System.Text.Json" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Components/Components/ref/Directory.Build.props b/src/Components/Components/ref/Directory.Build.props
deleted file mode 100644
index 322f33d633a5390bd86b51936f8eb7c8aa2d21ab..0000000000000000000000000000000000000000
--- a/src/Components/Components/ref/Directory.Build.props
+++ /dev/null
@@ -1,9 +0,0 @@
-<Project>
-
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
-
-  <ItemGroup>
-    <Compile Include="Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Components/Components/ref/Microsoft.AspNetCore.Components.Manual.cs b/src/Components/Components/ref/Microsoft.AspNetCore.Components.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..fe78ce3bd49fd611e387ff18292a84ab0d92e871
--- /dev/null
+++ b/src/Components/Components/ref/Microsoft.AspNetCore.Components.Manual.cs
@@ -0,0 +1,348 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Runtime.InteropServices;
+using Microsoft.AspNetCore.Components.Rendering;
+
+namespace Microsoft.AspNetCore.Components
+{
+    public readonly partial struct ElementReference
+    {
+        internal static Microsoft.AspNetCore.Components.ElementReference CreateWithUniqueId() { throw null; }
+    }
+    public abstract partial class NavigationManager
+    {
+        internal static string NormalizeBaseUri(string baseUri) { throw null; }
+    }
+    public readonly partial struct RenderHandle
+    {
+        internal RenderHandle(Microsoft.AspNetCore.Components.RenderTree.Renderer renderer, int componentId) { throw null; }
+    }
+    internal partial class ComponentFactory
+    {
+        public static readonly Microsoft.AspNetCore.Components.ComponentFactory Instance;
+        public ComponentFactory() { }
+        public Microsoft.AspNetCore.Components.IComponent InstantiateComponent(System.IServiceProvider serviceProvider, System.Type componentType) { throw null; }
+    }
+    public readonly partial struct ParameterView
+    {
+        internal ParameterView(in Microsoft.AspNetCore.Components.Rendering.ParameterViewLifetime lifetime, Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame[] frames, int ownerIndex) { throw null; }
+        internal Microsoft.AspNetCore.Components.Rendering.ParameterViewLifetime Lifetime { get { throw null; } }
+        internal void CaptureSnapshot(Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> builder) { }
+        internal bool DefinitelyEquals(Microsoft.AspNetCore.Components.ParameterView oldParameters) { throw null; }
+        internal Microsoft.AspNetCore.Components.ParameterView WithCascadingParameters(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.CascadingParameterState> cascadingParameters) { throw null; }
+    }
+    internal static partial class RouteTableFactory
+    {
+        public static readonly System.Collections.Generic.IComparer<Microsoft.AspNetCore.Components.Routing.RouteEntry> RoutePrecedence;
+        internal static Microsoft.AspNetCore.Components.Routing.RouteTable Create(System.Collections.Generic.Dictionary<System.Type, string[]> templatesByHandler) { throw null; }
+        public static Microsoft.AspNetCore.Components.Routing.RouteTable Create(System.Collections.Generic.IEnumerable<System.Reflection.Assembly> assemblies) { throw null; }
+        internal static Microsoft.AspNetCore.Components.Routing.RouteTable Create(System.Collections.Generic.IEnumerable<System.Type> componentTypes) { throw null; }
+        internal static int RouteComparison(Microsoft.AspNetCore.Components.Routing.RouteEntry x, Microsoft.AspNetCore.Components.Routing.RouteEntry y) { throw null; }
+    }
+    internal partial interface IEventCallback
+    {
+        bool HasDelegate { get; }
+        object UnpackForRenderTree();
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public readonly partial struct EventCallback : Microsoft.AspNetCore.Components.IEventCallback
+    {
+        public static readonly Microsoft.AspNetCore.Components.EventCallback Empty;
+        public static readonly Microsoft.AspNetCore.Components.EventCallbackFactory Factory;
+        internal readonly MulticastDelegate Delegate;
+        internal readonly IHandleEvent Receiver;
+        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
+        public bool HasDelegate { get { throw null; } }
+        internal bool RequiresExplicitReceiver { get { throw null; } }
+        public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
+        object Microsoft.AspNetCore.Components.IEventCallback.UnpackForRenderTree() { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public readonly partial struct EventCallback<TValue> : Microsoft.AspNetCore.Components.IEventCallback
+    {
+        public static readonly Microsoft.AspNetCore.Components.EventCallback<TValue> Empty;
+        internal readonly MulticastDelegate Delegate;
+        internal readonly IHandleEvent Receiver;
+        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
+        public bool HasDelegate { get { throw null; } }
+        internal bool RequiresExplicitReceiver { get { throw null; } }
+        internal Microsoft.AspNetCore.Components.EventCallback AsUntyped() { throw null; }
+        public System.Threading.Tasks.Task InvokeAsync(TValue arg) { throw null; }
+        object Microsoft.AspNetCore.Components.IEventCallback.UnpackForRenderTree() { throw null; }
+    }
+    internal partial interface ICascadingValueComponent
+    {
+        object CurrentValue { get; }
+        bool CurrentValueIsFixed { get; }
+        bool CanSupplyValue(System.Type valueType, string valueName);
+        void Subscribe(Microsoft.AspNetCore.Components.Rendering.ComponentState subscriber);
+        void Unsubscribe(Microsoft.AspNetCore.Components.Rendering.ComponentState subscriber);
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct CascadingParameterState
+    {
+        private readonly object _dummy;
+        public CascadingParameterState(string localValueName, Microsoft.AspNetCore.Components.ICascadingValueComponent valueSupplier) { throw null; }
+        public string LocalValueName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.ICascadingValueComponent ValueSupplier { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public static System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.CascadingParameterState> FindCascadingParameters(Microsoft.AspNetCore.Components.Rendering.ComponentState componentState) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.RenderTree
+{
+    public readonly partial struct RenderTreeEdit
+    {
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit PermutationListEnd() { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit PermutationListEntry(int fromSiblingIndex, int toSiblingIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit PrependFrame(int siblingIndex, int referenceFrameIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit RemoveAttribute(int siblingIndex, string name) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit RemoveFrame(int siblingIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit SetAttribute(int siblingIndex, int referenceFrameIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit StepIn(int siblingIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit StepOut() { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit UpdateMarkup(int siblingIndex, int referenceFrameIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit UpdateText(int siblingIndex, int referenceFrameIndex) { throw null; }
+    }
+    public readonly partial struct RenderBatch
+    {
+        internal RenderBatch(Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff> updatedComponents, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> referenceFrames, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<int> disposedComponentIDs, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<ulong> disposedEventHandlerIDs) { throw null; }
+    }
+    internal static partial class ArrayBuilderExtensions
+    {
+        public static Microsoft.AspNetCore.Components.RenderTree.ArrayRange<T> ToRange<T>(this Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<T> builder) { throw null; }
+        public static Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment<T> ToSegment<T>(this Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<T> builder, int fromIndexInclusive, int toIndexExclusive) { throw null; }
+    }
+    internal static partial class RenderTreeDiffBuilder
+    {
+        public const int SystemAddedAttributeSequenceNumber = -2147483648;
+        public static Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff ComputeDiff(Microsoft.AspNetCore.Components.RenderTree.Renderer renderer, Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, int componentId, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> oldTree, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> newTree) { throw null; }
+        public static void DisposeFrames(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> frames) { }
+    }
+    internal partial class ArrayBuilder<T> : System.IDisposable
+    {
+        public ArrayBuilder(int minCapacity = 32, System.Buffers.ArrayPool<T> arrayPool = null) { }
+        public T[] Buffer { get { throw null; } }
+        public int Count { get { throw null; } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public int Append(in T item) { throw null; }
+        internal int Append(T[] source, int startIndex, int length) { throw null; }
+        public void Clear() { }
+        public void Dispose() { }
+        public void InsertExpensive(int index, T value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Overwrite(int index, in T value) { }
+        public void RemoveLast() { }
+    }
+    internal partial class StackObjectPool<T> where T : class
+    {
+        public StackObjectPool(int maxPreservedItems, System.Func<T> instanceFactory) { }
+        public T Get() { throw null; }
+        public void Return(T instance) { }
+    }
+    public readonly partial struct RenderTreeDiff
+    {
+        internal RenderTreeDiff(int componentId, Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment<Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit> entries) { throw null; }
+    }
+
+    // https://github.com/dotnet/arcade/pull/2033
+    [StructLayout(LayoutKind.Explicit, Pack = 4)]
+    public readonly partial struct RenderTreeFrame
+    {
+        [FieldOffset(0)] public readonly int Sequence;
+
+        [FieldOffset(4)] public readonly RenderTreeFrameType FrameType;
+
+        [FieldOffset(8)] public readonly int ElementSubtreeLength;
+
+        [FieldOffset(16)] public readonly string ElementName;
+
+        [FieldOffset(24)] public readonly object ElementKey;
+
+        [FieldOffset(16)] public readonly string TextContent;
+
+        [FieldOffset(8)] public readonly ulong AttributeEventHandlerId;
+
+        [FieldOffset(16)] public readonly string AttributeName;
+
+        [FieldOffset(24)] public readonly object AttributeValue;
+
+        [FieldOffset(32)] public readonly string AttributeEventUpdatesAttributeName;
+
+        [FieldOffset(8)] public readonly int ComponentSubtreeLength;
+
+        [FieldOffset(12)] public readonly int ComponentId;
+
+        [FieldOffset(16)] public readonly Type ComponentType;
+
+        [FieldOffset(32)] public readonly object ComponentKey;
+
+        public IComponent Component => null;
+
+        [FieldOffset(8)] public readonly int RegionSubtreeLength;
+
+        [FieldOffset(16)] public readonly string ElementReferenceCaptureId;
+
+        [FieldOffset(24)] public readonly Action<ElementReference> ElementReferenceCaptureAction;
+
+        [FieldOffset(8)] public readonly int ComponentReferenceCaptureParentFrameIndex;
+
+        [FieldOffset(16)] public readonly Action<object> ComponentReferenceCaptureAction;
+
+        [FieldOffset(16)] public readonly string MarkupContent;
+
+        public override string ToString() => null;
+
+        internal static RenderTreeFrame Element(int sequence, string elementName) { throw null; }
+        internal static RenderTreeFrame Text(int sequence, string textContent) { throw null; }
+        internal static RenderTreeFrame Markup(int sequence, string markupContent) { throw null; }
+        internal static RenderTreeFrame Attribute(int sequence, string name, object value) { throw null; }
+        internal static RenderTreeFrame ChildComponent(int sequence, Type componentType) { throw null; }
+        internal static RenderTreeFrame PlaceholderChildComponentWithSubtreeLength(int subtreeLength) { throw null; }
+        internal static RenderTreeFrame Region(int sequence) { throw null; }
+        internal static RenderTreeFrame ElementReferenceCapture(int sequence, Action<ElementReference> elementReferenceCaptureAction) { throw null; }
+        internal static RenderTreeFrame ComponentReferenceCapture(int sequence, Action<object> componentReferenceCaptureAction, int parentFrameIndex) { throw null; }
+        internal RenderTreeFrame WithElementSubtreeLength(int elementSubtreeLength) { throw null; }
+        internal RenderTreeFrame WithComponentSubtreeLength(int componentSubtreeLength) { throw null; }
+        internal RenderTreeFrame WithAttributeSequence(int sequence) { throw null; }
+        internal RenderTreeFrame WithComponent(ComponentState componentState) { throw null; }
+        internal RenderTreeFrame WithAttributeEventHandlerId(ulong eventHandlerId) { throw null; }
+        internal RenderTreeFrame WithAttributeValue(object attributeValue) { throw null; }
+        internal RenderTreeFrame WithAttributeEventUpdatesAttributeName(string attributeUpdatesAttributeName) { throw null; }
+        internal RenderTreeFrame WithRegionSubtreeLength(int regionSubtreeLength) { throw null; }
+        internal RenderTreeFrame WithElementReferenceCaptureId(string elementReferenceCaptureId) { throw null; }
+        internal RenderTreeFrame WithElementKey(object elementKey) { throw null; }
+        internal RenderTreeFrame WithComponentKey(object componentKey) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Rendering
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct ParameterViewLifetime
+    {
+        public static readonly ParameterViewLifetime Unbound = default;
+        private readonly object _dummy;
+        private readonly int _dummyPrimitive;
+        public ParameterViewLifetime(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder owner) { throw null; }
+        public void AssertNotExpired() { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("{_state,nq}")]
+    internal partial class RendererSynchronizationContext : System.Threading.SynchronizationContext
+    {
+        public RendererSynchronizationContext() { }
+        public event System.UnhandledExceptionEventHandler UnhandledException { add { } remove { } }
+        public override System.Threading.SynchronizationContext CreateCopy() { throw null; }
+        public System.Threading.Tasks.Task InvokeAsync(System.Action action) { throw null; }
+        public System.Threading.Tasks.Task InvokeAsync(System.Func<System.Threading.Tasks.Task> asyncAction) { throw null; }
+        public System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(System.Func<System.Threading.Tasks.Task<TResult>> asyncFunction) { throw null; }
+        public System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(System.Func<TResult> function) { throw null; }
+        public override void Post(System.Threading.SendOrPostCallback d, object state) { }
+        public override void Send(System.Threading.SendOrPostCallback d, object state) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct RenderQueueEntry
+    {
+        public readonly ComponentState ComponentState;
+        public readonly RenderFragment RenderFragment;
+        public RenderQueueEntry(Microsoft.AspNetCore.Components.Rendering.ComponentState componentState, Microsoft.AspNetCore.Components.RenderFragment renderFragment) { throw null; }
+    }
+    internal partial class RenderBatchBuilder : System.IDisposable
+    {
+        public RenderBatchBuilder() { }
+        public System.Collections.Generic.Dictionary<string, int> AttributeDiffSet { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.Queue<int> ComponentDisposalQueue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.Queue<Microsoft.AspNetCore.Components.Rendering.RenderQueueEntry> ComponentRenderQueue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<int> DisposedComponentIds { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<ulong> DisposedEventHandlerIds { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit> EditsBuffer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.Components.RenderTree.StackObjectPool<System.Collections.Generic.Dictionary<object, Microsoft.AspNetCore.Components.Rendering.KeyedItemInfo>> KeyedItemInfoDictionaryPool { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int ParameterViewValidityStamp { get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> ReferenceFramesBuffer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff> UpdatedComponentDiffs { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void ClearStateForCurrentBatch() { }
+        public void Dispose() { }
+        public void InvalidateParameterViews() { }
+        public Microsoft.AspNetCore.Components.RenderTree.RenderBatch ToBatch() { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct KeyedItemInfo
+    {
+        public readonly int OldIndex;
+        public readonly int NewIndex;
+        public readonly int OldSiblingIndex;
+        public readonly int NewSiblingIndex;
+        public KeyedItemInfo(int oldIndex, int newIndex) { throw null; }
+        public Microsoft.AspNetCore.Components.Rendering.KeyedItemInfo WithNewSiblingIndex(int newSiblingIndex) { throw null; }
+        public Microsoft.AspNetCore.Components.Rendering.KeyedItemInfo WithOldSiblingIndex(int oldSiblingIndex) { throw null; }
+    }
+    internal partial class ComponentState : System.IDisposable
+    {
+        public ComponentState(Microsoft.AspNetCore.Components.RenderTree.Renderer renderer, int componentId, Microsoft.AspNetCore.Components.IComponent component, Microsoft.AspNetCore.Components.Rendering.ComponentState parentComponentState) { }
+        public Microsoft.AspNetCore.Components.IComponent Component { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int ComponentId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder CurrentRenderTree { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Rendering.ComponentState ParentComponentState { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Dispose() { }
+        public void NotifyCascadingValueChanged() { }
+        public System.Threading.Tasks.Task NotifyRenderCompletedAsync() { throw null; }
+        public void RenderIntoBatch(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, Microsoft.AspNetCore.Components.RenderFragment renderFragment) { }
+        public void SetDirectParameters(Microsoft.AspNetCore.Components.ParameterView parameters) { }
+        public bool TryDisposeInBatch(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, out System.Exception exception) { throw null; }
+    }
+    internal partial class RenderTreeUpdater
+    {
+        public RenderTreeUpdater() { }
+        public static void UpdateToMatchClientState(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder renderTreeBuilder, ulong eventHandlerId, object newFieldValue) { }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Routing
+{
+    internal partial class TemplateParser
+    {
+        public static readonly char[] InvalidParameterNameCharacters;
+        public TemplateParser() { }
+        internal static Microsoft.AspNetCore.Components.Routing.RouteTemplate ParseTemplate(string template) { throw null; }
+    }
+    internal partial class RouteContext
+    {
+        public RouteContext(string path) { }
+        public System.Type Handler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyDictionary<string, object> Parameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string[] Segments { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Handler = {Handler}, Template = {Template}")]
+    internal partial class RouteEntry
+    {
+        public RouteEntry(Microsoft.AspNetCore.Components.Routing.RouteTemplate template, System.Type handler, string[] unusedRouteParameterNames) { }
+        public System.Type Handler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Routing.RouteTemplate Template { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string[] UnusedRouteParameterNames { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal void Match(Microsoft.AspNetCore.Components.Routing.RouteContext context) { }
+    }
+    internal partial class RouteTable
+    {
+        public RouteTable(Microsoft.AspNetCore.Components.Routing.RouteEntry[] routes) { }
+        public Microsoft.AspNetCore.Components.Routing.RouteEntry[] Routes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal void Route(Microsoft.AspNetCore.Components.Routing.RouteContext routeContext) { }
+    }
+    internal abstract partial class RouteConstraint
+    {
+        protected RouteConstraint() { }
+        public abstract bool Match(string pathSegment, out object convertedValue);
+        public static Microsoft.AspNetCore.Components.Routing.RouteConstraint Parse(string template, string segment, string constraint) { throw null; }
+    }
+    internal partial class TemplateSegment
+    {
+        public TemplateSegment(string template, string segment, bool isParameter) { }
+        public Microsoft.AspNetCore.Components.Routing.RouteConstraint[] Constraints { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsParameter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Match(string pathSegment, out object matchedParameterValue) { throw null; }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("{TemplateText}")]
+    internal partial class RouteTemplate
+    {
+        public RouteTemplate(string templateText, Microsoft.AspNetCore.Components.Routing.TemplateSegment[] segments) { }
+        public Microsoft.AspNetCore.Components.Routing.TemplateSegment[] Segments { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string TemplateText { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+}
diff --git a/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj b/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj
index 8a32a89b9e93a29b92ed00e633be1cbd6721733b..f1aa3dab10f073a93ccb11638b6df51ca617533e 100644
--- a/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj
+++ b/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj
@@ -5,15 +5,19 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.netstandard2.0.cs" />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources"  />
-    <Reference Include="System.Buffers"  />
+    <Compile Include="Microsoft.AspNetCore.Components.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources" />
+    <Reference Include="System.Buffers" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources"  />
+    <Compile Include="Microsoft.AspNetCore.Components.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources" />
   </ItemGroup>
 </Project>
diff --git a/src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs b/src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs
deleted file mode 100644
index 0f6b699935352cff92b901512c2cef20aa182e3c..0000000000000000000000000000000000000000
--- a/src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.Runtime.InteropServices;
-using Microsoft.AspNetCore.Components.Rendering;
-
-namespace Microsoft.AspNetCore.Components.RenderTree
-{
-    // https://github.com/dotnet/arcade/pull/2033
-    [StructLayout(LayoutKind.Explicit, Pack = 4)]
-    public readonly partial struct RenderTreeFrame
-    {
-        [FieldOffset(0)] public readonly int Sequence;
-
-        [FieldOffset(4)] public readonly RenderTreeFrameType FrameType;
-
-        [FieldOffset(8)] public readonly int ElementSubtreeLength;
-
-        [FieldOffset(16)] public readonly string ElementName;
-
-        [FieldOffset(24)] public readonly object ElementKey;
-
-        [FieldOffset(16)] public readonly string TextContent;
-
-        [FieldOffset(8)] public readonly ulong AttributeEventHandlerId;
-
-        [FieldOffset(16)] public readonly string AttributeName;
-
-        [FieldOffset(24)] public readonly object AttributeValue;
-
-        [FieldOffset(32)] public readonly string AttributeEventUpdatesAttributeName;
-
-        [FieldOffset(8)] public readonly int ComponentSubtreeLength;
-
-        [FieldOffset(12)] public readonly int ComponentId;
-
-        [FieldOffset(16)] public readonly Type ComponentType;
-
-        [FieldOffset(32)] public readonly object ComponentKey;
-
-        public IComponent Component => null;
-
-        [FieldOffset(8)] public readonly int RegionSubtreeLength;
-
-        [FieldOffset(16)] public readonly string ElementReferenceCaptureId;
-
-        [FieldOffset(24)] public readonly Action<ElementReference> ElementReferenceCaptureAction;
-
-        [FieldOffset(8)] public readonly int ComponentReferenceCaptureParentFrameIndex;
-
-        [FieldOffset(16)] public readonly Action<object> ComponentReferenceCaptureAction;
-
-        [FieldOffset(16)] public readonly string MarkupContent;
-
-        public override string ToString() => null;
-    }
-}
diff --git a/src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.cs b/src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.cs
index 10a26b70af4cda893d990ea814b7a1ceffcdda20..ff3a7a10eb71c81e0b558a7c1840c0956c65d89a 100644
--- a/src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.cs
+++ b/src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.cs
@@ -123,17 +123,7 @@ namespace Microsoft.AspNetCore.Components
         public ElementReference(string id) { throw null; }
         public string Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
     }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct EventCallback
-    {
-        private readonly object _dummy;
         private readonly int _dummyPrimitive;
-        public static readonly Microsoft.AspNetCore.Components.EventCallback Empty;
-        public static readonly Microsoft.AspNetCore.Components.EventCallbackFactory Factory;
-        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
-        public bool HasDelegate { get { throw null; } }
-        public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
-    }
     public sealed partial class EventCallbackFactory
     {
         public EventCallbackFactory() { }
@@ -197,16 +187,7 @@ namespace Microsoft.AspNetCore.Components
         public EventCallbackWorkItem(System.MulticastDelegate @delegate) { throw null; }
         public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
     }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct EventCallback<TValue>
-    {
-        private readonly object _dummy;
         private readonly int _dummyPrimitive;
-        public static readonly Microsoft.AspNetCore.Components.EventCallback<TValue> Empty;
-        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
-        public bool HasDelegate { get { throw null; } }
-        public System.Threading.Tasks.Task InvokeAsync(TValue arg) { throw null; }
-    }
     [System.AttributeUsageAttribute(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
     public sealed partial class EventHandlerAttribute : System.Attribute
     {
diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj
index 4c0a31a3f6e08abe6b9a647e4130461843cc2244..6bc25e8d43aa5080db70ab827645188d9a72f883 100644
--- a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj
+++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj
@@ -5,7 +5,6 @@
     <TargetFrameworks Condition="'$(DotNetBuildFromSource)' == 'true'">$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <Description>Components feature for ASP.NET Core.</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <IsShippingPackage>true</IsShippingPackage>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
   </PropertyGroup>
 
diff --git a/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj b/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj
index cc3fcfda27605f5d0b8735ab334832bc75071f7e..2ef391ee71ab29de589a3d78e89b7d1b74d6b7d0 100644
--- a/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj
+++ b/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj
@@ -5,11 +5,11 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.Forms.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
-    <Reference Include="System.ComponentModel.Annotations"  />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="System.ComponentModel.Annotations" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Forms.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 </Project>
diff --git a/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj b/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj
index d338f21000d3491efda6d2cabbfedc531efc6efc..1c39c34f1d4491189575731fc38ef7e40dd72bd3 100644
--- a/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj
+++ b/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj
@@ -6,7 +6,6 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <Description>Forms and validation support for Blazor applications.</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Components/Ignitor/src/Ignitor.csproj b/src/Components/Ignitor/src/Ignitor.csproj
index 2b139eb30f45760efa4db4fbfd4c37bff929c58c..140496e8265c5cb494481ed93df523dde5f0ff0f 100644
--- a/src/Components/Ignitor/src/Ignitor.csproj
+++ b/src/Components/Ignitor/src/Ignitor.csproj
@@ -7,6 +7,8 @@
     <IsShippingPackage>false</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
     <DefineConstants>$(DefineConstants);IGNITOR</DefineConstants>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -26,6 +28,8 @@
     <Reference Include="Microsoft.AspNetCore.SignalR.Client" />
     <Reference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/Components/Ignitor/test/Ignitor.Test.csproj b/src/Components/Ignitor/test/Ignitor.Test.csproj
index aa2df88e243e1727c9f0bf91cb524f02903c7b94..32e40b083f9c45d797e2dd8c47191d40fd75e5e9 100644
--- a/src/Components/Ignitor/test/Ignitor.Test.csproj
+++ b/src/Components/Ignitor/test/Ignitor.Test.csproj
@@ -3,10 +3,14 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <DefineConstants>$(DefineConstants);IGNITOR</DefineConstants>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Ignitor" />
+    <!-- Avoid MSB3277 warnings due to dependencies brought in through Ignitor targeting netstandard2.0. -->
+    <Reference Include="System.Text.Json" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.Manual.cs b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..438fbb599b93a80533483dceec6cd9eb03bbfe0e
--- /dev/null
+++ b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.Manual.cs
@@ -0,0 +1,328 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Components
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ComponentParameter
+    {
+        private object _dummy;
+        public string Assembly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string TypeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public static (System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parameterDefinitions, System.Collections.Generic.IList<object> parameterValues) FromParameterView(Microsoft.AspNetCore.Components.ParameterView parameters) { throw null; }
+    }
+    internal partial class ComponentParametersTypeCache
+    {
+        public ComponentParametersTypeCache() { }
+        public System.Type GetParameterType(string assembly, string type) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ServerComponent
+    {
+        private object _dummy;
+        private int _dummyPrimitive;
+        public ServerComponent(int sequence, string assemblyName, string typeName, System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parametersDefinitions, System.Collections.Generic.IList<object> parameterValues, System.Guid invocationId) { throw null; }
+        public string AssemblyName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Guid InvocationId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> ParameterDefinitions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IList<object> ParameterValues { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string TypeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal static partial class ServerComponentSerializationSettings
+    {
+        public static readonly System.TimeSpan DataExpiration;
+        public const string DataProtectionProviderPurpose = "Microsoft.AspNetCore.Components.ComponentDescriptorSerializer,V1";
+        public static readonly System.Text.Json.JsonSerializerOptions JsonSerializationOptions;
+    }
+    internal sealed partial class ElementReferenceJsonConverter : System.Text.Json.Serialization.JsonConverter<Microsoft.AspNetCore.Components.ElementReference>
+    {
+        public ElementReferenceJsonConverter() { }
+        public override Microsoft.AspNetCore.Components.ElementReference Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
+        public override void Write(System.Text.Json.Utf8JsonWriter writer, Microsoft.AspNetCore.Components.ElementReference value, System.Text.Json.JsonSerializerOptions options) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ServerComponentMarker
+    {
+        private object _dummy;
+        private int _dummyPrimitive;
+        public string Descriptor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string PrerenderId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int? Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Components.ServerComponentMarker GetEndRecord() { throw null; }
+        public static Microsoft.AspNetCore.Components.ServerComponentMarker NonPrerendered(int sequence, string descriptor) { throw null; }
+        public static Microsoft.AspNetCore.Components.ServerComponentMarker Prerendered(int sequence, string descriptor) { throw null; }
+    }
+    internal partial class ServerComponentTypeCache
+    {
+        public ServerComponentTypeCache() { }
+        public System.Type GetRootComponent(string assembly, string type) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Server
+{
+    internal partial class CircuitDisconnectMiddleware
+    {
+        public CircuitDisconnectMiddleware(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.CircuitDisconnectMiddleware> logger, Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry registry, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory circuitIdFactory, Microsoft.AspNetCore.Http.RequestDelegate next) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory CircuitIdFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.CircuitDisconnectMiddleware> Logger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Http.RequestDelegate Next { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry Registry { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; }
+    }
+    internal partial class ServerComponentDeserializer
+    {
+        public ServerComponentDeserializer(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.ServerComponentDeserializer> logger, Microsoft.AspNetCore.Components.ServerComponentTypeCache rootComponentTypeCache, Microsoft.AspNetCore.Components.Server.ComponentParameterDeserializer parametersDeserializer) { }
+        public bool TryDeserializeComponentDescriptorCollection(string serializedComponentRecords, out System.Collections.Generic.List<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> descriptors) { throw null; }
+    }
+    internal partial class ComponentDescriptor
+    {
+        public ComponentDescriptor() { }
+        public System.Type ComponentType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Components.ParameterView Parameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void Deconstruct(out System.Type componentType, out Microsoft.AspNetCore.Components.ParameterView parameters, out int sequence) { throw null; }
+    }
+    internal sealed partial class ComponentHub : Microsoft.AspNetCore.SignalR.Hub
+    {
+        public ComponentHub(Microsoft.AspNetCore.Components.Server.ServerComponentDeserializer serializer, Microsoft.AspNetCore.Components.Server.Circuits.CircuitFactory circuitFactory, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory circuitIdFactory, Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry circuitRegistry, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.ComponentHub> logger) { }
+        public static Microsoft.AspNetCore.Http.PathString DefaultPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask BeginInvokeDotNetFromJS(string callId, string assemblyName, string methodIdentifier, long dotNetObjectId, string argsJson) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask<bool> ConnectCircuit(string circuitIdSecret) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask DispatchBrowserEvent(string eventDescriptor, string eventArgs) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask EndInvokeJSFromDotNet(long asyncHandle, bool succeeded, string arguments) { throw null; }
+        public override System.Threading.Tasks.Task OnDisconnectedAsync(System.Exception exception) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask OnLocationChanged(string uri, bool intercepted) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask OnRenderCompleted(long renderId, string errorMessageOrNull) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask<string> StartCircuit(string baseUri, string uri, string serializedComponentRecords) { throw null; }
+    }
+    internal partial class ComponentParameterDeserializer
+    {
+        public ComponentParameterDeserializer(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.ComponentParameterDeserializer> logger, Microsoft.AspNetCore.Components.ComponentParametersTypeCache parametersCache) { }
+        public bool TryDeserializeParameters(System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parametersDefinitions, System.Collections.Generic.IList<object> parameterValues, out Microsoft.AspNetCore.Components.ParameterView parameters) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Server.BlazorPack
+{
+    internal sealed partial class BlazorPackHubProtocol : Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol
+    {
+        internal const string ProtocolName = "blazorpack";
+        public BlazorPackHubProtocol() { }
+        public string Name { get { throw null; } }
+        public Microsoft.AspNetCore.Connections.TransferFormat TransferFormat { get { throw null; } }
+        public int Version { get { throw null; } }
+        public System.ReadOnlyMemory<byte> GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
+        public bool IsVersionSupported(int version) { throw null; }
+        public bool TryParseMessage(ref System.Buffers.ReadOnlySequence<byte> input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
+        public void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter<byte> output) { }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Server.Circuits
+{
+    internal partial class CircuitFactory
+    {
+        public CircuitFactory(Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory circuitIdFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Components.Server.CircuitOptions> options) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost CreateCircuitHost(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> components, Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy client, string baseUri, string uri, System.Security.Claims.ClaimsPrincipal user) { throw null; }
+    }
+    internal partial class RenderBatchWriter : System.IDisposable
+    {
+        public RenderBatchWriter(System.IO.Stream output, bool leaveOpen) { }
+        public void Dispose() { }
+        public void Write(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch renderBatch) { }
+    }
+    internal partial class CircuitRegistry
+    {
+        public CircuitRegistry(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Components.Server.CircuitOptions> options, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry> logger, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory CircuitHostFactory) { }
+        internal System.Collections.Concurrent.ConcurrentDictionary<Microsoft.AspNetCore.Components.Server.Circuits.CircuitId, Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost> ConnectedCircuits { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.Extensions.Caching.Memory.MemoryCache DisconnectedCircuits { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost> ConnectAsync(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId, Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId, System.Threading.CancellationToken cancellationToken) { throw null; }
+        protected virtual (Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost, bool previouslyConnected) ConnectCore(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId, Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId) { throw null; }
+        public virtual System.Threading.Tasks.Task DisconnectAsync(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost, string connectionId) { throw null; }
+        protected virtual bool DisconnectCore(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost, string connectionId) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        protected virtual void OnEntryEvicted(object key, object value, Microsoft.Extensions.Caching.Memory.EvictionReason reason, object state) { }
+        public void Register(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost) { }
+        public void RegisterDisconnectedCircuit(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost) { }
+        public System.Threading.Tasks.ValueTask TerminateAsync(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId) { throw null; }
+    }
+    internal partial class CircuitHandle
+    {
+        public CircuitHandle() { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost CircuitHost { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class RemoteRenderer : Microsoft.AspNetCore.Components.RenderTree.Renderer
+    {
+        internal readonly System.Collections.Concurrent.ConcurrentQueue<Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer.UnacknowledgedRenderBatch> _unacknowledgedRenderBatches;
+        public RemoteRenderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Components.Server.CircuitOptions options, Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy client, Microsoft.Extensions.Logging.ILogger logger) : base (default(System.IServiceProvider), default(Microsoft.Extensions.Logging.ILoggerFactory)) { }
+        public override Microsoft.AspNetCore.Components.Dispatcher Dispatcher { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public event System.EventHandler<System.Exception> UnhandledException { add { } remove { } }
+        public System.Threading.Tasks.Task AddComponentAsync(System.Type componentType, string domElementSelector) { throw null; }
+        protected override void Dispose(bool disposing) { }
+        protected override void HandleException(System.Exception exception) { }
+        public System.Threading.Tasks.Task OnRenderCompletedAsync(long incomingBatchId, string errorMessageOrNull) { throw null; }
+        public System.Threading.Tasks.Task ProcessBufferedRenderBatches() { throw null; }
+        protected override void ProcessPendingRender() { }
+        protected override System.Threading.Tasks.Task UpdateDisplayAsync(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch batch) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal readonly partial struct UnacknowledgedRenderBatch
+        {
+            private readonly object _dummy;
+            private readonly int _dummyPrimitive;
+            public UnacknowledgedRenderBatch(long batchId, Microsoft.AspNetCore.Components.Server.Circuits.ArrayBuilder<byte> data, System.Threading.Tasks.TaskCompletionSource<object> completionSource, Microsoft.Extensions.Internal.ValueStopwatch valueStopwatch) { throw null; }
+            public long BatchId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public System.Threading.Tasks.TaskCompletionSource<object> CompletionSource { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public Microsoft.AspNetCore.Components.Server.Circuits.ArrayBuilder<byte> Data { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public Microsoft.Extensions.Internal.ValueStopwatch ValueStopwatch { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        }
+    }
+    internal partial class ArrayBuilder<T> : System.IDisposable
+    {
+        public ArrayBuilder(int minCapacity = 32, System.Buffers.ArrayPool<T> arrayPool = null) { }
+        public T[] Buffer { get { throw null; } }
+        public int Count { get { throw null; } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public int Append(in T item) { throw null; }
+        internal int Append(T[] source, int startIndex, int length) { throw null; }
+        public void Clear() { }
+        public void Dispose() { }
+        public void InsertExpensive(int index, T value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Overwrite(int index, in T value) { }
+        public void RemoveLast() { }
+    }
+    internal partial class CircuitClientProxy : Microsoft.AspNetCore.SignalR.IClientProxy
+    {
+        public CircuitClientProxy() { }
+        public CircuitClientProxy(Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId) { }
+        public Microsoft.AspNetCore.SignalR.IClientProxy Client { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Connected { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string ConnectionId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Threading.Tasks.Task SendCoreAsync(string method, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public void SetDisconnected() { }
+        public void Transfer(Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId) { }
+    }
+    internal partial class CircuitHost : System.IAsyncDisposable
+    {
+        public CircuitHost(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId, Microsoft.Extensions.DependencyInjection.IServiceScope scope, Microsoft.AspNetCore.Components.Server.CircuitOptions options, Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy client, Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer renderer, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> descriptors, Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime jsRuntime, Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler[] circuitHandlers, Microsoft.Extensions.Logging.ILogger logger) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.Circuit Circuit { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitId CircuitId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy Client { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> Descriptors { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandle Handle { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime JSRuntime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer Renderer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.IServiceProvider Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public event System.UnhandledExceptionEventHandler UnhandledException { add { } remove { } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task BeginInvokeDotNetFromJS(string callId, string assemblyName, string methodIdentifier, long dotNetObjectId, string argsJson) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task DispatchEvent(string eventDescriptorJson, string eventArgsJson) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task EndInvokeJSFromDotNet(long asyncCall, bool succeded, string arguments) { throw null; }
+        public System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnConnectionDownAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnConnectionUpAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnLocationChangedAsync(string uri, bool intercepted) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnRenderCompletedAsync(long renderId, string errorMessageOrNull) { throw null; }
+        public void SendPendingBatches() { }
+        public void SetCircuitUser(System.Security.Claims.ClaimsPrincipal user) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct CircuitId : System.IEquatable<Microsoft.AspNetCore.Components.Server.Circuits.CircuitId>
+    {
+        private readonly object _dummy;
+        public CircuitId(string secret, string id) { throw null; }
+        public string Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Secret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Equals([System.Diagnostics.CodeAnalysis.AllowNullAttribute]Microsoft.AspNetCore.Components.Server.Circuits.CircuitId other) { throw null; }
+        public override bool Equals(object obj) { throw null; }
+        public override int GetHashCode() { throw null; }
+        public override string ToString() { throw null; }
+    }
+    internal partial class CircuitIdFactory
+    {
+        public CircuitIdFactory(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitId CreateCircuitId() { throw null; }
+        public bool TryParseCircuitId(string text, out Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId) { throw null; }
+    }
+    internal partial class RemoteJSRuntime : Microsoft.JSInterop.JSRuntime
+    {
+        public RemoteJSRuntime(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Components.Server.CircuitOptions> options, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime> logger) { }
+        protected override void BeginInvokeJS(long asyncHandle, string identifier, string argsJson) { }
+        protected override void EndInvokeDotNet(Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, in Microsoft.JSInterop.Infrastructure.DotNetInvocationResult invocationResult) { }
+        internal void Initialize(Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy clientProxy) { }
+        public static partial class Log
+        {
+            internal static void BeginInvokeJS(Microsoft.Extensions.Logging.ILogger logger, long asyncHandle, string identifier) { }
+            internal static void InvokeDotNetMethodException(Microsoft.Extensions.Logging.ILogger logger, in Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, System.Exception exception) { }
+            internal static void InvokeDotNetMethodSuccess(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime> logger, in Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo) { }
+        }
+    }
+}
+namespace Microsoft.AspNetCore.Internal
+{
+    internal static partial class BinaryMessageFormatter
+    {
+        public static int LengthPrefixLength(long length) { throw null; }
+        public static void WriteLengthPrefix(long length, System.Buffers.IBufferWriter<byte> output) { }
+        public static int WriteLengthPrefix(long length, System.Span<byte> output) { throw null; }
+    }
+    internal static partial class BinaryMessageParser
+    {
+        public static bool TryParseMessage(ref System.Buffers.ReadOnlySequence<byte> buffer, out System.Buffers.ReadOnlySequence<byte> payload) { throw null; }
+    }
+    internal sealed partial class MemoryBufferWriter : System.IO.Stream, System.Buffers.IBufferWriter<byte>
+    {
+        public MemoryBufferWriter(int minimumSegmentSize = 4096) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public void Advance(int count) { }
+        public void CopyTo(System.Buffers.IBufferWriter<byte> destination) { }
+        public void CopyTo(System.Span<byte> span) { }
+        public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { throw null; }
+        protected override void Dispose(bool disposing) { }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public static Microsoft.AspNetCore.Internal.MemoryBufferWriter Get() { throw null; }
+        public System.Memory<byte> GetMemory(int sizeHint = 0) { throw null; }
+        public System.Span<byte> GetSpan(int sizeHint = 0) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public void Reset() { }
+        public static void Return(Microsoft.AspNetCore.Internal.MemoryBufferWriter writer) { }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public byte[] ToArray() { throw null; }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override void Write(System.ReadOnlySpan<byte> span) { }
+        public override void WriteByte(byte value) { }
+    }
+}
+namespace Microsoft.Extensions.Internal
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ValueStopwatch
+    {
+        private int _dummyPrimitive;
+        public bool IsActive { get { throw null; } }
+        public System.TimeSpan GetElapsedTime() { throw null; }
+        public static Microsoft.Extensions.Internal.ValueStopwatch StartNew() { throw null; }
+    }
+}
diff --git a/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj
index 838eac284aa81011e5b0d7fa9c65bbaf6666fea0..3973a0b3c2786e43c15b89b2d732632f397915ee 100644
--- a/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj
+++ b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj
@@ -5,14 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Server.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Web"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.SignalR"  />
-    <Reference Include="Microsoft.AspNetCore.StaticFiles"  />
-    <Reference Include="Microsoft.Extensions.Caching.Memory"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Composite"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Embedded"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
+    <Compile Include="Microsoft.AspNetCore.Components.Server.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Components.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Components.Web" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.SignalR" />
+    <Reference Include="Microsoft.AspNetCore.StaticFiles" />
+    <Reference Include="Microsoft.Extensions.Caching.Memory" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Composite" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Embedded" />
+    <Reference Include="Microsoft.Extensions.Logging" />
   </ItemGroup>
 </Project>
diff --git a/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj b/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj
index 04475e354052c6d554ea47c384017cd765241983..69bf60373e415a31ff0f097bf0ab7da9128dd363 100644
--- a/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj
+++ b/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj
@@ -9,7 +9,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <NoWarn>CS0436;$(NoWarn)</NoWarn>
     <DefineConstants>$(DefineConstants);ENABLE_UNSAFE_MSGPACK;SPAN_BUILTIN;MESSAGEPACK_INTERNAL;COMPONENTS_SERVER</DefineConstants>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Components/Web.JS/Microsoft.AspNetCore.Components.Web.JS.npmproj b/src/Components/Web.JS/Microsoft.AspNetCore.Components.Web.JS.npmproj
index 071e61a13a2b27fbcd6112d8fd02dea72d1bd418..915e6f019090f36a2addf35de78c303100fda833 100644
--- a/src/Components/Web.JS/Microsoft.AspNetCore.Components.Web.JS.npmproj
+++ b/src/Components/Web.JS/Microsoft.AspNetCore.Components.Web.JS.npmproj
@@ -28,6 +28,11 @@
 
   <Target Name="GetTargetPath" />
 
+  <!-- Workaround strange issues with something calling these targets. -->
+  <Target Name="GetTargetFramework" />
+  <Target Name="GetCopyToPublishDirectoryItems" />
+  <Target Name="GetTargetPath" />
+
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
 
 </Project>
diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj
index cba25041e3034b004cb32d66a1f8d6c531d71f1d..18b1e18b023acabd25f6f21e740855fc2d655b3b 100644
--- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj
+++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj
@@ -5,16 +5,18 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.Web.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Forms"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.JSInterop"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="Microsoft.AspNetCore.Components.Forms" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.JSInterop" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Web.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Forms"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.JSInterop"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="Microsoft.AspNetCore.Components.Forms" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.JSInterop" />
   </ItemGroup>
 </Project>
diff --git a/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj b/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj
index 02ae3157d22eb8d12848d663fd639e5af475b66d..6b0c9812e7ebe254034769a6849eb4653c95feef 100644
--- a/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj
+++ b/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj
@@ -6,7 +6,6 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <Description>Support for rendering ASP.NET Core components for browsers.</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <IsShippingPackage>true</IsShippingPackage>
     <RootNamespace>Microsoft.AspNetCore.Components</RootNamespace>
   </PropertyGroup>
 
diff --git a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
index 7c7cab78071a4f4a53f928825850505db036a5f1..0e4750037588098cc81525625ef03269b11c4eae 100644
--- a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
+++ b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
@@ -21,6 +21,8 @@
 
     <GenerateLoggingTestingAssemblyAttributes>false</GenerateLoggingTestingAssemblyAttributes>
 
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Components/test/testassets/ComponentsApp.App/ComponentsApp.App.csproj b/src/Components/test/testassets/ComponentsApp.App/ComponentsApp.App.csproj
index 3b1d34bbdc6ec84fef74deecb00ba26f3a609ee1..470c119f1314e5b09af05fb40b5f7ebd35728219 100644
--- a/src/Components/test/testassets/ComponentsApp.App/ComponentsApp.App.csproj
+++ b/src/Components/test/testassets/ComponentsApp.App/ComponentsApp.App.csproj
@@ -7,8 +7,8 @@
 
   <ItemGroup>
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
-    <ProjectReference Include="..\..\..\Components\src\Microsoft.AspNetCore.Components.csproj" />
-    <ProjectReference Include="..\..\..\Web\src\Microsoft.AspNetCore.Components.Web.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="Microsoft.AspNetCore.Components.Web" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Components/test/testassets/TestServer/Components.TestServer.csproj b/src/Components/test/testassets/TestServer/Components.TestServer.csproj
index b2d0ce094d6348c19699353de8fc1e0964801878..4eebc1f24b6402d7f7564514d0f13992fd6317c3 100644
--- a/src/Components/test/testassets/TestServer/Components.TestServer.csproj
+++ b/src/Components/test/testassets/TestServer/Components.TestServer.csproj
@@ -2,6 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
    <ItemGroup>
diff --git a/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1ee28e70bf0c0bfe2a2b71418a4daa47e2c7fd41
--- /dev/null
+++ b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs
@@ -0,0 +1,24 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.DataProtection.Abstractions
+{
+    internal static partial class Resources
+    {
+        internal static string CryptCommon_GenericError { get { throw null; } }
+        internal static string CryptCommon_PayloadInvalid { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture
+        {
+            [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; }
+            [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { }
+        }
+
+        internal static string DataProtectionExtensions_NoService { get { throw null; } }
+        internal static string DataProtectionExtensions_NullPurposesCollection { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string FormatDataProtectionExtensions_NoService(object p0) { throw null; }
+
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+        internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}
diff --git a/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
index 62dd2d978a90c62f776a9f9063e1e27d8cfbadec..a42a893d8f9648768db4dde542cccda3d97b7cf4 100644
--- a/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
+++ b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
@@ -1,10 +1,16 @@
 <!-- This file is automatically generated. -->
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
+    <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.Abstractions.netstandard2.0.cs" />
-    
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+  </ItemGroup>
+<ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Abstractions.netcoreapp.cs" />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
   </ItemGroup>
 </Project>
diff --git a/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.netcoreapp.cs b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.netcoreapp.cs
new file mode 100644
index 0000000000000000000000000000000000000000..fcd0fcb0b7d0ee9bdbe6c85d89051b1141581245
--- /dev/null
+++ b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.netcoreapp.cs
@@ -0,0 +1,33 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.DataProtection
+{
+    public static partial class DataProtectionCommonExtensions
+    {
+        public static Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(this Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider, System.Collections.Generic.IEnumerable<string> purposes) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(this Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider, string purpose, params string[] subPurposes) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider GetDataProtectionProvider(this System.IServiceProvider services) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.IDataProtector GetDataProtector(this System.IServiceProvider services, System.Collections.Generic.IEnumerable<string> purposes) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.IDataProtector GetDataProtector(this System.IServiceProvider services, string purpose, params string[] subPurposes) { throw null; }
+        public static string Protect(this Microsoft.AspNetCore.DataProtection.IDataProtector protector, string plaintext) { throw null; }
+        public static string Unprotect(this Microsoft.AspNetCore.DataProtection.IDataProtector protector, string protectedData) { throw null; }
+    }
+    public partial interface IDataProtectionProvider
+    {
+        Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(string purpose);
+    }
+    public partial interface IDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider
+    {
+        byte[] Protect(byte[] plaintext);
+        byte[] Unprotect(byte[] protectedData);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Infrastructure
+{
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+    public partial interface IApplicationDiscriminator
+    {
+        string Discriminator { get; }
+    }
+}
diff --git a/src/DataProtection/Abstractions/src/Microsoft.AspNetCore.DataProtection.Abstractions.csproj b/src/DataProtection/Abstractions/src/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
index 8b7fb04cd75999c75967a070ddea036416b73b94..dcbaf568ee47de81aa864f66212517c01cea62b8 100644
--- a/src/DataProtection/Abstractions/src/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
+++ b/src/DataProtection/Abstractions/src/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
@@ -5,9 +5,8 @@
 Commonly used types:
 Microsoft.AspNetCore.DataProtection.IDataProtectionProvider
 Microsoft.AspNetCore.DataProtection.IDataProtector</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
+    <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;dataprotection</PackageTags>
   </PropertyGroup>
diff --git a/src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj b/src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj
deleted file mode 100644
index 8ed2e9d229e7e0e6d9e3ace87b8396fa05aa0b8c..0000000000000000000000000000000000000000
--- a/src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Azure.KeyVault"  />
-    <Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory"  />
-  </ItemGroup>
-</Project>
diff --git a/src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.netstandard2.0.cs b/src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.netstandard2.0.cs
deleted file mode 100644
index bdaa373e9f9282bd7aba1fbe2d6f5993ad19016a..0000000000000000000000000000000000000000
--- a/src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.netstandard2.0.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class AzureDataProtectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithAzureKeyVault(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.KeyVault.KeyVaultClient client, string keyIdentifier) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithAzureKeyVault(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string keyIdentifier, string clientId, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithAzureKeyVault(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string keyIdentifier, string clientId, string clientSecret) { throw null; }
-    }
-}
diff --git a/src/DataProtection/AzureKeyVault/test/Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj b/src/DataProtection/AzureKeyVault/test/Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj
index b5864335b7c98ecb52d4020137516483055eee37..22a1aaa64a31ac3621a1e96afa8b3e330d718b53 100644
--- a/src/DataProtection/AzureKeyVault/test/Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj
+++ b/src/DataProtection/AzureKeyVault/test/Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj
@@ -3,12 +3,16 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.DataProtection" />
     <Reference Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.csproj b/src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.csproj
deleted file mode 100644
index 5da79e220f23c9e1a00595ac669e27b67fb4c644..0000000000000000000000000000000000000000
--- a/src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.AzureStorage.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Azure.Storage.Blob"  />
-    <Reference Include="Microsoft.Data.OData"  />
-  </ItemGroup>
-</Project>
diff --git a/src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.netstandard2.0.cs b/src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.netstandard2.0.cs
deleted file mode 100644
index 9d6c003d3eff09a979f4bb56b736ac24db52617a..0000000000000000000000000000000000000000
--- a/src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.netstandard2.0.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class AzureDataProtectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.Storage.Blob.CloudBlobContainer container, string blobName) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.Storage.Blob.CloudBlockBlob blobReference) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.Storage.CloudStorageAccount storageAccount, string relativePath) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Uri blobUri) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.DataProtection.AzureStorage
-{
-    public sealed partial class AzureBlobXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository
-    {
-        public AzureBlobXmlRepository(System.Func<Microsoft.Azure.Storage.Blob.ICloudBlob> blobRefFactory) { }
-        public System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
-        public void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
-    }
-}
diff --git a/src/DataProtection/AzureStorage/test/Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj b/src/DataProtection/AzureStorage/test/Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj
index 79bd138df7a4003641a4985fdce86850b1047255..54bfce3543a66e73734d807134a1d8231a2b4bad 100644
--- a/src/DataProtection/AzureStorage/test/Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj
+++ b/src/DataProtection/AzureStorage/test/Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj
@@ -4,6 +4,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <UseLatestPackageReferences>true</UseLatestPackageReferences>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -12,6 +14,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Data.OData"/>
     <Reference Include="Microsoft.Data.Services.Client"/>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..df4d98a55ed250088efb8e755a48353f3b38b531
--- /dev/null
+++ b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs
@@ -0,0 +1,341 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Cryptography
+{
+    internal static partial class Constants
+    {
+        internal const string BCRYPT_3DES_112_ALGORITHM = "3DES_112";
+        internal const string BCRYPT_3DES_ALGORITHM = "3DES";
+        internal const string BCRYPT_AES_ALGORITHM = "AES";
+        internal const string BCRYPT_AES_CMAC_ALGORITHM = "AES-CMAC";
+        internal const string BCRYPT_AES_GMAC_ALGORITHM = "AES-GMAC";
+        internal const string BCRYPT_AES_WRAP_KEY_BLOB = "Rfc3565KeyWrapBlob";
+        internal const string BCRYPT_ALGORITHM_NAME = "AlgorithmName";
+        internal const string BCRYPT_AUTH_TAG_LENGTH = "AuthTagLength";
+        internal const string BCRYPT_BLOCK_LENGTH = "BlockLength";
+        internal const string BCRYPT_BLOCK_SIZE_LIST = "BlockSizeList";
+        internal const string BCRYPT_CAPI_KDF_ALGORITHM = "CAPI_KDF";
+        internal const string BCRYPT_CHAINING_MODE = "ChainingMode";
+        internal const string BCRYPT_CHAIN_MODE_CBC = "ChainingModeCBC";
+        internal const string BCRYPT_CHAIN_MODE_CCM = "ChainingModeCCM";
+        internal const string BCRYPT_CHAIN_MODE_CFB = "ChainingModeCFB";
+        internal const string BCRYPT_CHAIN_MODE_ECB = "ChainingModeECB";
+        internal const string BCRYPT_CHAIN_MODE_GCM = "ChainingModeGCM";
+        internal const string BCRYPT_CHAIN_MODE_NA = "ChainingModeN/A";
+        internal const string BCRYPT_DESX_ALGORITHM = "DESX";
+        internal const string BCRYPT_DES_ALGORITHM = "DES";
+        internal const string BCRYPT_DH_ALGORITHM = "DH";
+        internal const string BCRYPT_DSA_ALGORITHM = "DSA";
+        internal const string BCRYPT_ECDH_P256_ALGORITHM = "ECDH_P256";
+        internal const string BCRYPT_ECDH_P384_ALGORITHM = "ECDH_P384";
+        internal const string BCRYPT_ECDH_P521_ALGORITHM = "ECDH_P521";
+        internal const string BCRYPT_ECDSA_P256_ALGORITHM = "ECDSA_P256";
+        internal const string BCRYPT_ECDSA_P384_ALGORITHM = "ECDSA_P384";
+        internal const string BCRYPT_ECDSA_P521_ALGORITHM = "ECDSA_P521";
+        internal const string BCRYPT_EFFECTIVE_KEY_LENGTH = "EffectiveKeyLength";
+        internal const string BCRYPT_HASH_BLOCK_LENGTH = "HashBlockLength";
+        internal const string BCRYPT_HASH_LENGTH = "HashDigestLength";
+        internal const string BCRYPT_HASH_OID_LIST = "HashOIDList";
+        internal const string BCRYPT_IS_KEYED_HASH = "IsKeyedHash";
+        internal const string BCRYPT_IS_REUSABLE_HASH = "IsReusableHash";
+        internal const string BCRYPT_KEY_DATA_BLOB = "KeyDataBlob";
+        internal const string BCRYPT_KEY_LENGTH = "KeyLength";
+        internal const string BCRYPT_KEY_LENGTHS = "KeyLengths";
+        internal const string BCRYPT_KEY_OBJECT_LENGTH = "KeyObjectLength";
+        internal const string BCRYPT_KEY_STRENGTH = "KeyStrength";
+        internal const string BCRYPT_MD2_ALGORITHM = "MD2";
+        internal const string BCRYPT_MD4_ALGORITHM = "MD4";
+        internal const string BCRYPT_MD5_ALGORITHM = "MD5";
+        internal const string BCRYPT_MESSAGE_BLOCK_LENGTH = "MessageBlockLength";
+        internal const string BCRYPT_OBJECT_LENGTH = "ObjectLength";
+        internal const string BCRYPT_OPAQUE_KEY_BLOB = "OpaqueKeyBlob";
+        internal const string BCRYPT_PADDING_SCHEMES = "PaddingSchemes";
+        internal const string BCRYPT_PBKDF2_ALGORITHM = "PBKDF2";
+        internal const string BCRYPT_PRIMITIVE_TYPE = "PrimitiveType";
+        internal const string BCRYPT_PROVIDER_HANDLE = "ProviderHandle";
+        internal const string BCRYPT_RC2_ALGORITHM = "RC2";
+        internal const string BCRYPT_RC4_ALGORITHM = "RC4";
+        internal const string BCRYPT_RNG_ALGORITHM = "RNG";
+        internal const string BCRYPT_RNG_DUAL_EC_ALGORITHM = "DUALECRNG";
+        internal const string BCRYPT_RNG_FIPS186_DSA_ALGORITHM = "FIPS186DSARNG";
+        internal const string BCRYPT_RSA_ALGORITHM = "RSA";
+        internal const string BCRYPT_RSA_SIGN_ALGORITHM = "RSA_SIGN";
+        internal const string BCRYPT_SHA1_ALGORITHM = "SHA1";
+        internal const string BCRYPT_SHA256_ALGORITHM = "SHA256";
+        internal const string BCRYPT_SHA384_ALGORITHM = "SHA384";
+        internal const string BCRYPT_SHA512_ALGORITHM = "SHA512";
+        internal const string BCRYPT_SIGNATURE_LENGTH = "SignatureLength";
+        internal const string BCRYPT_SP800108_CTR_HMAC_ALGORITHM = "SP800_108_CTR_HMAC";
+        internal const string BCRYPT_SP80056A_CONCAT_ALGORITHM = "SP800_56A_CONCAT";
+        internal const int MAX_STACKALLOC_BYTES = 256;
+        internal const string MS_PLATFORM_CRYPTO_PROVIDER = "Microsoft Platform Crypto Provider";
+        internal const string MS_PRIMITIVE_PROVIDER = "Microsoft Primitive Provider";
+    }
+    internal static partial class CryptoUtil
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void Assert(bool condition, string message) { }
+        public static void AssertPlatformIsWindows() { }
+        public static void AssertPlatformIsWindows8OrLater() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void AssertSafeHandleIsValid(System.Runtime.InteropServices.SafeHandle safeHandle) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Exception Fail(string message) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static T Fail<T>(string message) where T : class { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static bool TimeConstantBuffersAreEqual(byte* bufA, byte* bufB, uint count) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static bool TimeConstantBuffersAreEqual(byte[] bufA, int offsetA, int countA, byte[] bufB, int offsetB, int countB) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal unsafe partial struct DATA_BLOB
+    {
+        public uint cbData;
+        public byte* pbData;
+    }
+    internal static partial class UnsafeBufferUtil
+    {
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+        public static void BlockCopy(Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle from, Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle to, System.IntPtr length) { }
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+        public unsafe static void BlockCopy(Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle from, void* to, uint byteCount) { }
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+        public unsafe static void BlockCopy(void* from, Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle to, uint byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void BlockCopy(void* from, void* to, int byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void BlockCopy(void* from, void* to, uint byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, int byteCount) { }
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, System.IntPtr length) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, uint byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, ulong byteCount) { }
+    }
+    [System.Security.SuppressUnmanagedCodeSecurityAttribute]
+    internal static partial class UnsafeNativeMethods
+    {
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptCloseAlgorithmProvider(System.IntPtr hAlgorithm, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptCreateHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hAlgorithm, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle phHash, System.IntPtr pbHashObject, uint cbHashObject, byte* pbSecret, uint cbSecret, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptDecrypt(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, byte* pbInput, uint cbInput, void* pPaddingInfo, byte* pbIV, uint cbIV, byte* pbOutput, uint cbOutput, out uint pcbResult, Microsoft.AspNetCore.Cryptography.Cng.BCryptEncryptFlags dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptDeriveKeyPBKDF2(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hPrf, byte* pbPassword, uint cbPassword, byte* pbSalt, uint cbSalt, ulong cIterations, byte* pbDerivedKey, uint cbDerivedKey, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        internal static extern int BCryptDestroyHash(System.IntPtr hHash);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        internal static extern int BCryptDestroyKey(System.IntPtr hKey);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptDuplicateHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle phNewHash, System.IntPtr pbHashObject, uint cbHashObject, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptEncrypt(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, byte* pbInput, uint cbInput, void* pPaddingInfo, byte* pbIV, uint cbIV, byte* pbOutput, uint cbOutput, out uint pcbResult, Microsoft.AspNetCore.Cryptography.Cng.BCryptEncryptFlags dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptFinishHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, byte* pbOutput, uint cbOutput, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGenerateSymmetricKey(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hAlgorithm, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle phKey, System.IntPtr pbKeyObject, uint cbKeyObject, byte* pbSecret, uint cbSecret, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGenRandom(System.IntPtr hAlgorithm, byte* pbBuffer, uint cbBuffer, Microsoft.AspNetCore.Cryptography.Cng.BCryptGenRandomFlags dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGetProperty(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle hObject, string pszProperty, void* pbOutput, uint cbOutput, out uint pcbResult, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptHashData(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, byte* pbInput, uint cbInput, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptKeyDerivation(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, Microsoft.AspNetCore.Cryptography.Cng.BCryptBufferDesc* pParameterList, byte* pbDerivedKey, uint cbDerivedKey, out uint pcbResult, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptOpenAlgorithmProvider(out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle phAlgorithm, string pszAlgId, string pszImplementation, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptSetProperty(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle hObject, string pszProperty, void* pbInput, uint cbInput, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern bool CryptProtectData(Microsoft.AspNetCore.Cryptography.DATA_BLOB* pDataIn, System.IntPtr szDataDescr, Microsoft.AspNetCore.Cryptography.DATA_BLOB* pOptionalEntropy, System.IntPtr pvReserved, System.IntPtr pPromptStruct, uint dwFlags, out Microsoft.AspNetCore.Cryptography.DATA_BLOB pDataOut);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public static extern bool CryptProtectMemory(System.Runtime.InteropServices.SafeHandle pData, uint cbData, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern bool CryptUnprotectData(Microsoft.AspNetCore.Cryptography.DATA_BLOB* pDataIn, System.IntPtr ppszDataDescr, Microsoft.AspNetCore.Cryptography.DATA_BLOB* pOptionalEntropy, System.IntPtr pvReserved, System.IntPtr pPromptStruct, uint dwFlags, out Microsoft.AspNetCore.Cryptography.DATA_BLOB pDataOut);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public unsafe static extern bool CryptUnprotectMemory(byte* pData, uint cbData, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public static extern bool CryptUnprotectMemory(System.Runtime.InteropServices.SafeHandle pData, uint cbData, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        internal static extern int NCryptCloseProtectionDescriptor(System.IntPtr hDescriptor);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int NCryptCreateProtectionDescriptor(string pwszDescriptorString, uint dwFlags, out Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle phDescriptor);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int NCryptGetProtectionDescriptorInfo(Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle hDescriptor, System.IntPtr pMemPara, uint dwInfoType, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppvInfo);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptProtectSecret(Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle hDescriptor, uint dwFlags, byte* pbData, uint cbData, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbProtectedBlob, out uint pcbProtectedBlob);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptUnprotectSecret(out Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle phDescriptor, uint dwFlags, byte* pbProtectedBlob, uint cbProtectedBlob, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbData, out uint pcbData);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptUnprotectSecret(System.IntPtr phDescriptor, uint dwFlags, byte* pbProtectedBlob, uint cbProtectedBlob, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbData, out uint pcbData);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static void ThrowExceptionForBCryptStatus(int ntstatus) { }
+        public static void ThrowExceptionForLastCrypt32Error() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static void ThrowExceptionForNCryptStatus(int ntstatus) { }
+    }
+    internal static partial class WeakReferenceHelpers
+    {
+        public static T GetSharedInstance<T>(ref System.WeakReference<T> weakReference, System.Func<T> factory) where T : class, System.IDisposable { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Cryptography.Cng
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct BCryptBuffer
+    {
+        public uint cbBuffer; // Length of buffer, in bytes
+        public BCryptKeyDerivationBufferType BufferType; // Buffer type
+        public System.IntPtr pvBuffer; // Pointer to buffer
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal unsafe partial struct BCryptBufferDesc
+    {
+        public uint ulVersion; // Version number
+        public uint cBuffers; // Number of buffers
+        public BCryptBuffer* pBuffers; // Pointer to array of buffers
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void Initialize(ref Microsoft.AspNetCore.Cryptography.Cng.BCryptBufferDesc bufferDesc) { }
+    }
+    [System.FlagsAttribute]
+    internal enum BCryptEncryptFlags
+    {
+        BCRYPT_BLOCK_PADDING = 1,
+    }
+    [System.FlagsAttribute]
+    internal enum BCryptGenRandomFlags
+    {
+        BCRYPT_RNG_USE_ENTROPY_IN_BUFFER = 1,
+        BCRYPT_USE_SYSTEM_PREFERRED_RNG = 2,
+    }
+    internal enum BCryptKeyDerivationBufferType
+    {
+        KDF_HASH_ALGORITHM = 0,
+        KDF_SECRET_PREPEND = 1,
+        KDF_SECRET_APPEND = 2,
+        KDF_HMAC_KEY = 3,
+        KDF_TLS_PRF_LABEL = 4,
+        KDF_TLS_PRF_SEED = 5,
+        KDF_SECRET_HANDLE = 6,
+        KDF_TLS_PRF_PROTOCOL = 7,
+        KDF_ALGORITHMID = 8,
+        KDF_PARTYUINFO = 9,
+        KDF_PARTYVINFO = 10,
+        KDF_SUPPPUBINFO = 11,
+        KDF_SUPPPRIVINFO = 12,
+        KDF_LABEL = 13,
+        KDF_CONTEXT = 14,
+        KDF_SALT = 15,
+        KDF_ITERATION_COUNT = 16,
+    }
+    internal static partial class BCryptUtil
+    {
+        public unsafe static void GenRandom(byte* pbBuffer, uint cbBuffer) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal unsafe partial struct BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO
+    {
+        public uint cbSize;
+        public uint dwInfoVersion;
+        public byte* pbNonce;
+        public uint cbNonce;
+        public byte* pbAuthData;
+        public uint cbAuthData;
+        public byte* pbTag;
+        public uint cbTag;
+        public byte* pbMacContext;
+        public uint cbMacContext;
+        public uint cbAAD;
+        public ulong cbData;
+        public uint dwFlags;
+        public static void Init(out Microsoft.AspNetCore.Cryptography.Cng.BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO info) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct BCRYPT_KEY_LENGTHS_STRUCT
+    {
+        // MSDN says these fields represent the key length in bytes.
+        // It's wrong: these key lengths are all actually in bits.
+        internal uint dwMinLength;
+        internal uint dwMaxLength;
+        internal uint dwIncrement;
+        public void EnsureValidKeyLength(uint keyLengthInBits) { }
+    }
+    internal static partial class CachedAlgorithmHandles
+    {
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle AES_CBC { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle AES_GCM { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA1 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA256 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA512 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle PBKDF2 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA1 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA256 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA512 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SP800_108_CTR_HMAC { get { throw null; } }
+    }
+    [System.FlagsAttribute]
+    internal enum NCryptEncryptFlags
+    {
+        NCRYPT_NO_PADDING_FLAG = 1,
+        NCRYPT_PAD_PKCS1_FLAG = 2,
+        NCRYPT_PAD_OAEP_FLAG = 4,
+        NCRYPT_PAD_PSS_FLAG = 8,
+        NCRYPT_SILENT_FLAG = 64,
+    }
+    internal static partial class OSVersionUtil
+    {
+        public static bool IsWindows() { throw null; }
+        public static bool IsWindows8OrLater() { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Cryptography.Internal
+{
+    internal static partial class Resources
+    {
+        internal static string BCryptAlgorithmHandle_ProviderNotFound { get { throw null; } }
+        internal static string BCRYPT_KEY_LENGTHS_STRUCT_InvalidKeyLength { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string Platform_Windows7Required { get { throw null; } }
+        internal static string Platform_Windows8Required { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string FormatBCryptAlgorithmHandle_ProviderNotFound(object p0) { throw null; }
+        internal static string FormatBCRYPT_KEY_LENGTHS_STRUCT_InvalidKeyLength(object p0, object p1, object p2, object p3) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Cryptography.SafeHandles
+{
+    internal sealed partial class BCryptAlgorithmHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+    {
+        public Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle CreateHash() { throw null; }
+        public unsafe Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle CreateHmac(byte* pbKey, uint cbKey) { throw null; }
+        public unsafe Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle GenerateSymmetricKey(byte* pbSecret, uint cbSecret) { throw null; }
+        public string GetAlgorithmName() { throw null; }
+        public uint GetCipherBlockLength() { throw null; }
+        public uint GetHashBlockLength() { throw null; }
+        public uint GetHashDigestLength() { throw null; }
+        public Microsoft.AspNetCore.Cryptography.Cng.BCRYPT_KEY_LENGTHS_STRUCT GetSupportedKeyLengths() { throw null; }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle OpenAlgorithmHandle(string algorithmId, string implementation = null, bool hmac = false) { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+        public void SetChainingMode(string chainingMode) { }
+    }
+    internal abstract partial class BCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        protected BCryptHandle() : base (default(bool)) { }
+        protected unsafe uint GetProperty(string pszProperty, void* pbOutput, uint cbOutput) { throw null; }
+        protected unsafe void SetProperty(string pszProperty, void* pbInput, uint cbInput) { }
+    }
+    internal sealed partial class BCryptHashHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+    {
+        public Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle DuplicateHash() { throw null; }
+        public unsafe void HashData(byte* pbInput, uint cbInput, byte* pbHashDigest, uint cbHashDigest) { }
+        protected override bool ReleaseHandle() { throw null; }
+        internal void SetAlgorithmProviderHandle(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle algProviderHandle) { }
+    }
+    internal sealed partial class BCryptKeyHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+    {
+        protected override bool ReleaseHandle() { throw null; }
+        internal void SetAlgorithmProviderHandle(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle algProviderHandle) { }
+    }
+    internal partial class LocalAllocHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        protected LocalAllocHandle() : base (default(bool)) { }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal sealed partial class NCryptDescriptorHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        private NCryptDescriptorHandle() : base (default(bool)) { }
+        public string GetProtectionDescriptorRuleString() { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal sealed partial class SafeLibraryHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        private SafeLibraryHandle() : base (default(bool)) { }
+        public bool DoesProcExist(string lpProcName) { throw null; }
+        public void ForbidUnload() { }
+        public string FormatMessage(int messageId) { throw null; }
+        public TDelegate GetProcAddress<TDelegate>(string lpProcName, bool throwIfNotFound = true) where TDelegate : class { throw null; }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.SafeLibraryHandle Open(string filename) { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal sealed partial class SecureLocalAllocHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle
+    {
+        public System.IntPtr Length { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.SecureLocalAllocHandle Allocate(System.IntPtr cb) { throw null; }
+        public Microsoft.AspNetCore.Cryptography.SafeHandles.SecureLocalAllocHandle Duplicate() { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+}
diff --git a/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj
index ec4ae22e0e8f048b76684d61773af98a35637173..462f2dddf5e389511326028c6cbd5cc22fe43fe6 100644
--- a/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj
+++ b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj
@@ -1,10 +1,16 @@
 <!-- This file is automatically generated. -->
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
+    <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Cryptography.Internal.netstandard2.0.cs" />
-    
+    <Compile Include="Microsoft.AspNetCore.Cryptography.Internal.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+  </ItemGroup>
+<ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
+    <Compile Include="Microsoft.AspNetCore.Cryptography.Internal.netcoreapp.cs" />
+    <Compile Include="Microsoft.AspNetCore.Cryptography.Internal.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.netcoreapp.cs
similarity index 58%
rename from src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs
rename to src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.netcoreapp.cs
index 039f419cd47acdd613a1d3708a2802bf8dc2df56..618082bc4a8a23695782ee223ef4dcf3ee1aec06 100644
--- a/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs
+++ b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.netcoreapp.cs
@@ -1,7 +1,3 @@
 // Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
-using System.Runtime.CompilerServices;
-using Microsoft.AspNetCore.Mvc;
-
-[assembly: TypeForwardedTo(typeof(JsonResult))]
diff --git a/src/DataProtection/Cryptography.Internal/src/Microsoft.AspNetCore.Cryptography.Internal.csproj b/src/DataProtection/Cryptography.Internal/src/Microsoft.AspNetCore.Cryptography.Internal.csproj
index 9fbec5f398e25e3941eb17cce0dadcbabd2f7d98..88ab0de27e94cde0abd0cbf4c00c93710c858334 100644
--- a/src/DataProtection/Cryptography.Internal/src/Microsoft.AspNetCore.Cryptography.Internal.csproj
+++ b/src/DataProtection/Cryptography.Internal/src/Microsoft.AspNetCore.Cryptography.Internal.csproj
@@ -2,9 +2,8 @@
 
   <PropertyGroup>
     <Description>Infrastructure for ASP.NET Core cryptographic packages. Applications and libraries should not reference this package directly.</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
+    <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
diff --git a/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.Manual.cs b/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b7d5d3ec200f5317bec4e5458c8a8001b0f782d8
--- /dev/null
+++ b/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.Manual.cs
@@ -0,0 +1,28 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2
+{
+    internal partial interface IPbkdf2Provider
+    {
+        byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested);
+    }
+
+    internal sealed partial class ManagedPbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public ManagedPbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+
+    internal sealed partial class Win7Pbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public Win7Pbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+
+    internal sealed partial class Win8Pbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public Win8Pbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+}
diff --git a/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.netcoreapp.Manual.cs b/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.netcoreapp.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ea38de53c7178d1d4de20645252db805fd43faf9
--- /dev/null
+++ b/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.netcoreapp.Manual.cs
@@ -0,0 +1,11 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2
+{
+    internal sealed partial class NetCorePbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public NetCorePbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+}
diff --git a/src/DataProtection/Cryptography.KeyDerivation/src/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj b/src/DataProtection/Cryptography.KeyDerivation/src/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj
index 81fff6400b3c844b86dc03ee76babb7791b307f1..4ca096eb00318196e935c633a39319698eaeda89 100644
--- a/src/DataProtection/Cryptography.KeyDerivation/src/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj
+++ b/src/DataProtection/Cryptography.KeyDerivation/src/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj
@@ -4,7 +4,6 @@
     <Description>ASP.NET Core utilities for key derivation.</Description>
     <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;dataprotection</PackageTags>
diff --git a/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.Manual.cs b/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..77b0d75fa153a7eb108d05f11e61674c96e4f0d7
--- /dev/null
+++ b/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.Manual.cs
@@ -0,0 +1,385 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+namespace Microsoft.AspNetCore.DataProtection
+{
+    internal static partial class ActivatorExtensions
+    {
+        public static T CreateInstance<T>(this Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, string implementationTypeName) where T : class { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.Internal.IActivator GetActivator(this System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal static partial class ArraySegmentExtensions
+    {
+        public static byte[] AsStandaloneArray(this System.ArraySegment<byte> arraySegment) { throw null; }
+        public static void Validate<T>(this System.ArraySegment<T> arraySegment) { }
+    }
+    internal partial interface IRegistryPolicyResolver
+    {
+        Microsoft.AspNetCore.DataProtection.RegistryPolicy ResolvePolicy();
+    }
+    internal sealed partial class RegistryPolicyResolver : Microsoft.AspNetCore.DataProtection.IRegistryPolicyResolver
+    {
+        public RegistryPolicyResolver(Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) { }
+        internal RegistryPolicyResolver(Microsoft.Win32.RegistryKey policyRegKey, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) { }
+        public Microsoft.AspNetCore.DataProtection.RegistryPolicy ResolvePolicy() { throw null; }
+    }
+    internal static partial class Error
+    {
+        public static System.InvalidOperationException CertificateXmlEncryptor_CertificateNotFound(string thumbprint) { throw null; }
+        public static System.ArgumentException Common_ArgumentCannotBeNullOrEmpty(string parameterName) { throw null; }
+        public static System.ArgumentException Common_BufferIncorrectlySized(string parameterName, int actualSize, int expectedSize) { throw null; }
+        public static System.Security.Cryptography.CryptographicException Common_EncryptionFailed(System.Exception inner = null) { throw null; }
+        public static System.Security.Cryptography.CryptographicException Common_KeyNotFound(System.Guid id) { throw null; }
+        public static System.Security.Cryptography.CryptographicException Common_KeyRevoked(System.Guid id) { throw null; }
+        public static System.InvalidOperationException Common_PropertyCannotBeNullOrEmpty(string propertyName) { throw null; }
+        public static System.InvalidOperationException Common_PropertyMustBeNonNegative(string propertyName) { throw null; }
+        public static System.ArgumentOutOfRangeException Common_ValueMustBeNonNegative(string paramName) { throw null; }
+        public static System.Security.Cryptography.CryptographicException CryptCommon_GenericError(System.Exception inner = null) { throw null; }
+        public static System.Security.Cryptography.CryptographicException CryptCommon_PayloadInvalid() { throw null; }
+        public static System.Security.Cryptography.CryptographicException DecryptionFailed(System.Exception inner) { throw null; }
+        public static System.Security.Cryptography.CryptographicException ProtectionProvider_BadMagicHeader() { throw null; }
+        public static System.Security.Cryptography.CryptographicException ProtectionProvider_BadVersion() { throw null; }
+        public static System.InvalidOperationException XmlKeyManager_DuplicateKey(System.Guid keyId) { throw null; }
+    }
+    internal static partial class Resources
+    {
+        internal static string AlgorithmAssert_BadBlockSize { get { throw null; } }
+        internal static string AlgorithmAssert_BadDigestSize { get { throw null; } }
+        internal static string AlgorithmAssert_BadKeySize { get { throw null; } }
+        internal static string CertificateXmlEncryptor_CertificateNotFound { get { throw null; } }
+        internal static string Common_ArgumentCannotBeNullOrEmpty { get { throw null; } }
+        internal static string Common_BufferIncorrectlySized { get { throw null; } }
+        internal static string Common_DecryptionFailed { get { throw null; } }
+        internal static string Common_EncryptionFailed { get { throw null; } }
+        internal static string Common_KeyNotFound { get { throw null; } }
+        internal static string Common_KeyRevoked { get { throw null; } }
+        internal static string Common_PropertyCannotBeNullOrEmpty { get { throw null; } }
+        internal static string Common_PropertyMustBeNonNegative { get { throw null; } }
+        internal static string Common_ValueMustBeNonNegative { get { throw null; } }
+        internal static string CryptCommon_GenericError { get { throw null; } }
+        internal static string CryptCommon_PayloadInvalid { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string EncryptedXmlDecryptor_DoesNotWorkOnCoreClr { get { throw null; } }
+        internal static string FileSystem_EphemeralKeysLocationInContainer { get { throw null; } }
+        internal static string KeyManagementOptions_MinNewKeyLifetimeViolated { get { throw null; } }
+        internal static string KeyRingProvider_NoDefaultKey_AutoGenerateDisabled { get { throw null; } }
+        internal static string LifetimeMustNotBeNegative { get { throw null; } }
+        internal static string Platform_WindowsRequiredForGcm { get { throw null; } }
+        internal static string ProtectionProvider_BadMagicHeader { get { throw null; } }
+        internal static string ProtectionProvider_BadVersion { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string TypeExtensions_BadCast { get { throw null; } }
+        internal static string XmlKeyManager_DuplicateKey { get { throw null; } }
+        internal static string XmlKeyManager_IXmlRepositoryNotFound { get { throw null; } }
+        internal static string FormatAlgorithmAssert_BadBlockSize(object p0) { throw null; }
+        internal static string FormatAlgorithmAssert_BadDigestSize(object p0) { throw null; }
+        internal static string FormatAlgorithmAssert_BadKeySize(object p0) { throw null; }
+        internal static string FormatCertificateXmlEncryptor_CertificateNotFound(object p0) { throw null; }
+        internal static string FormatCommon_BufferIncorrectlySized(object p0, object p1) { throw null; }
+        internal static string FormatCommon_PropertyCannotBeNullOrEmpty(object p0) { throw null; }
+        internal static string FormatCommon_PropertyMustBeNonNegative(object p0) { throw null; }
+        internal static string FormatFileSystem_EphemeralKeysLocationInContainer(object path) { throw null; }
+        internal static string FormatLifetimeMustNotBeNegative(object p0) { throw null; }
+        internal static string FormatTypeExtensions_BadCast(object p0, object p1) { throw null; }
+        internal static string FormatXmlKeyManager_IXmlRepositoryNotFound(object p0, object p1) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+    internal partial class RegistryPolicy
+    {
+        public RegistryPolicy(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration configuration, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink> keyEscrowSinks, int? defaultKeyLifetime) { }
+        public int? DefaultKeyLifetime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration EncryptorConfiguration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink> KeyEscrowSinks { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class SimpleActivator : Microsoft.AspNetCore.DataProtection.Internal.IActivator
+    {
+        internal static readonly Microsoft.AspNetCore.DataProtection.SimpleActivator DefaultWithoutServices;
+        public SimpleActivator(System.IServiceProvider services) { }
+        public virtual object CreateInstance(System.Type expectedBaseType, string implementationTypeName) { throw null; }
+    }
+    internal partial class TypeForwardingActivator : Microsoft.AspNetCore.DataProtection.SimpleActivator
+    {
+        public TypeForwardingActivator(System.IServiceProvider services) : base (default(System.IServiceProvider)) { }
+        public TypeForwardingActivator(System.IServiceProvider services, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base (default(System.IServiceProvider)) { }
+        public override object CreateInstance(System.Type expectedBaseType, string originalTypeName) { throw null; }
+        internal object CreateInstance(System.Type expectedBaseType, string originalTypeName, out bool forwarded) { throw null; }
+        protected string RemoveVersionFromAssemblyName(string forwardedTypeName) { throw null; }
+    }
+    internal static partial class XmlConstants
+    {
+        internal static readonly System.Xml.Linq.XName DecryptorTypeAttributeName;
+        internal static readonly System.Xml.Linq.XName DeserializerTypeAttributeName;
+        internal static readonly System.Xml.Linq.XName EncryptedSecretElementName;
+        internal static readonly System.Xml.Linq.XName RequiresEncryptionAttributeName;
+    }
+    internal static partial class XmlExtensions
+    {
+        public static System.Xml.Linq.XElement WithoutChildNodes(this System.Xml.Linq.XElement element) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Internal
+{
+    internal partial class KeyManagementOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions>
+    {
+        public KeyManagementOptionsSetup() { }
+        public KeyManagementOptionsSetup(Microsoft.AspNetCore.DataProtection.IRegistryPolicyResolver registryPolicyResolver) { }
+        public KeyManagementOptionsSetup(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public KeyManagementOptionsSetup(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.IRegistryPolicyResolver registryPolicyResolver) { }
+        public void Configure(Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions options) { }
+    }
+    internal static partial class ContainerUtils
+    {
+        public static bool IsContainer { get { throw null; } }
+        internal static bool IsDirectoryMounted(System.IO.DirectoryInfo directory, System.Collections.Generic.IEnumerable<string> fstab) { throw null; }
+        public static bool IsVolumeMountedFolder(System.IO.DirectoryInfo directory) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption
+{
+    internal partial interface IOptimizedAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor
+    {
+        byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData, uint preBufferSize, uint postBufferSize);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel
+{
+    public sealed partial class ManagedAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor
+    {
+        internal Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.ISecret MasterKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public sealed partial class CngCbcAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor
+    {
+        internal Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.ISecret MasterKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public sealed partial class CngGcmAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor
+    {
+        internal Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.ISecret MasterKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal static partial class SecretExtensions
+    {
+        public static System.Xml.Linq.XElement ToMasterKeyElement(this Microsoft.AspNetCore.DataProtection.ISecret secret) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.Secret ToSecret(this string base64String) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Cng
+{
+    internal sealed partial class GcmAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.Cng.Internal.CngAuthenticatedEncryptorBase
+    {
+        public GcmAuthenticatedEncryptor(Microsoft.AspNetCore.DataProtection.Secret keyDerivationKey, Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle symmetricAlgorithmHandle, uint symmetricAlgorithmKeySizeInBytes, Microsoft.AspNetCore.DataProtection.Cng.IBCryptGenRandom genRandom = null) { }
+        protected unsafe override byte[] DecryptImpl(byte* pbCiphertext, uint cbCiphertext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData) { throw null; }
+        public override void Dispose() { }
+        protected unsafe override byte[] EncryptImpl(byte* pbPlaintext, uint cbPlaintext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData, uint cbPreBuffer, uint cbPostBuffer) { throw null; }
+    }
+    internal sealed partial class CbcAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.Cng.Internal.CngAuthenticatedEncryptorBase
+    {
+        public CbcAuthenticatedEncryptor(Microsoft.AspNetCore.DataProtection.Secret keyDerivationKey, Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle symmetricAlgorithmHandle, uint symmetricAlgorithmKeySizeInBytes, Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hmacAlgorithmHandle, Microsoft.AspNetCore.DataProtection.Cng.IBCryptGenRandom genRandom = null) { }
+        protected unsafe override byte[] DecryptImpl(byte* pbCiphertext, uint cbCiphertext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData) { throw null; }
+        public override void Dispose() { }
+        protected unsafe override byte[] EncryptImpl(byte* pbPlaintext, uint cbPlaintext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData, uint cbPreBuffer, uint cbPostBuffer) { throw null; }
+    }
+    internal unsafe partial interface IBCryptGenRandom
+    {
+        void GenRandom(byte* pbBuffer, uint cbBuffer);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Cng.Internal
+{
+    internal unsafe abstract partial class CngAuthenticatedEncryptorBase : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IOptimizedAuthenticatedEncryptor, System.IDisposable
+    {
+        protected CngAuthenticatedEncryptorBase() { }
+        public byte[] Decrypt(System.ArraySegment<byte> ciphertext, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+        protected unsafe abstract byte[] DecryptImpl(byte* pbCiphertext, uint cbCiphertext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData);
+        public abstract void Dispose();
+        public byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+        public byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData, uint preBufferSize, uint postBufferSize) { throw null; }
+        protected unsafe abstract byte[] EncryptImpl(byte* pbPlaintext, uint cbPlaintext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData, uint cbPreBuffer, uint cbPostBuffer);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.KeyManagement
+{
+    internal static partial class KeyEscrowServiceProviderExtensions
+    {
+        public static Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink GetKeyEscrowSink(this System.IServiceProvider services) { throw null; }
+    }
+    internal sealed partial class DefaultKeyResolver : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver
+    {
+        public DefaultKeyResolver(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions) { }
+        public DefaultKeyResolver(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution ResolveDefaultKeyPolicy(System.DateTimeOffset now, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKey> allKeys) { throw null; }
+    }
+    internal sealed partial class DeferredKey : Microsoft.AspNetCore.DataProtection.KeyManagement.KeyBase
+    {
+        public DeferredKey(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager keyManager, System.Xml.Linq.XElement keyElement, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory> encryptorFactories) : base (default(System.Guid), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.Lazy<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>), default(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory>)) { }
+    }
+    internal sealed partial class Key : Microsoft.AspNetCore.DataProtection.KeyManagement.KeyBase
+    {
+        public Key(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor descriptor, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory> encryptorFactories) : base (default(System.Guid), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.Lazy<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>), default(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory>)) { }
+    }
+    internal abstract partial class KeyBase : Microsoft.AspNetCore.DataProtection.KeyManagement.IKey
+    {
+        public KeyBase(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate, System.Lazy<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor> lazyDescriptor, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory> encryptorFactories) { }
+        public System.DateTimeOffset ActivationDate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.DateTimeOffset CreationDate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor Descriptor { get { throw null; } }
+        public System.DateTimeOffset ExpirationDate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsRevoked { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Guid KeyId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptor() { throw null; }
+        internal void SetRevoked() { }
+    }
+    internal sealed partial class KeyRing : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing
+    {
+        public KeyRing(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey defaultKey, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKey> allKeys) { }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor DefaultAuthenticatedEncryptor { get { throw null; } }
+        public System.Guid DefaultKeyId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor GetAuthenticatedEncryptorByKeyId(System.Guid keyId, out bool isRevoked) { throw null; }
+    }
+    internal sealed partial class KeyRingProvider : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRingProvider
+    {
+        public KeyRingProvider(Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager keyManager, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver defaultKeyResolver) { }
+        public KeyRingProvider(Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager keyManager, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver defaultKeyResolver, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        internal System.DateTime AutoRefreshWindowEnd { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider CacheableKeyRingProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing GetCurrentKeyRing() { throw null; }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing GetCurrentKeyRingCore(System.DateTime utcNow, bool forceRefresh = false) { throw null; }
+        internal bool InAutoRefreshWindow() { throw null; }
+        Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider.GetCacheableKeyRing(System.DateTimeOffset now) { throw null; }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing RefreshCurrentKeyRing() { throw null; }
+    }
+    internal sealed partial class KeyRingBasedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IPersistedDataProtector
+    {
+        public KeyRingBasedDataProtector(Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRingProvider keyRingProvider, Microsoft.Extensions.Logging.ILogger logger, string[] originalPurposes, string newPurpose) { }
+        internal string[] Purposes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(string purpose) { throw null; }
+        public byte[] DangerousUnprotect(byte[] protectedData, bool ignoreRevocationErrors, out bool requiresMigration, out bool wasRevoked) { throw null; }
+        public byte[] Protect(byte[] plaintext) { throw null; }
+        public byte[] Unprotect(byte[] protectedData) { throw null; }
+    }
+    public sealed partial class XmlKeyManager : Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager
+    {
+        internal static readonly System.Xml.Linq.XName ActivationDateElementName;
+        internal static readonly System.Xml.Linq.XName CreationDateElementName;
+        internal static readonly System.Xml.Linq.XName DescriptorElementName;
+        internal static readonly System.Xml.Linq.XName DeserializerTypeAttributeName;
+        internal static readonly System.Xml.Linq.XName ExpirationDateElementName;
+        internal static readonly System.Xml.Linq.XName IdAttributeName;
+        internal static readonly System.Xml.Linq.XName KeyElementName;
+        internal static readonly System.Xml.Linq.XName ReasonElementName;
+        internal static readonly System.Xml.Linq.XName RevocationDateElementName;
+        internal static readonly System.Xml.Linq.XName RevocationElementName;
+        internal static readonly System.Xml.Linq.XName VersionAttributeName;
+        internal XmlKeyManager(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager internalXmlKeyManager) { }
+        internal XmlKeyManager(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.Repositories.IDefaultKeyStorageDirectories keyStorageDirectories) { }
+        internal Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor KeyEncryptor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository KeyRepository { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.Collections.Generic.KeyValuePair<Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository, Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor> GetFallbackKeyRepositoryEncryptorPair() { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.KeyManagement.Internal
+{
+    public sealed partial class CacheableKeyRing
+    {
+        internal CacheableKeyRing(System.Threading.CancellationToken expirationToken, System.DateTimeOffset expirationTime, Microsoft.AspNetCore.DataProtection.KeyManagement.IKey defaultKey, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKey> allKeys) { }
+        internal CacheableKeyRing(System.Threading.CancellationToken expirationToken, System.DateTimeOffset expirationTime, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing keyRing) { }
+        internal System.DateTime ExpirationTimeUtc { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing KeyRing { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal static bool IsValid(Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing keyRing, System.DateTime utcNow) { throw null; }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing WithTemporaryExtendedLifetime(System.DateTimeOffset now) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Managed
+{
+    internal sealed partial class ManagedAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor, System.IDisposable
+    {
+        public ManagedAuthenticatedEncryptor(Microsoft.AspNetCore.DataProtection.Secret keyDerivationKey, System.Func<System.Security.Cryptography.SymmetricAlgorithm> symmetricAlgorithmFactory, int symmetricAlgorithmKeySizeInBytes, System.Func<System.Security.Cryptography.KeyedHashAlgorithm> validationAlgorithmFactory, Microsoft.AspNetCore.DataProtection.Managed.IManagedGenRandom genRandom = null) { }
+        public byte[] Decrypt(System.ArraySegment<byte> protectedPayload, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+        public void Dispose() { }
+        public byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+    }
+    internal partial interface IManagedGenRandom
+    {
+        byte[] GenRandom(int numBytes);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Repositories
+{
+    internal partial class EphemeralXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository
+    {
+        public EphemeralXmlRepository(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public virtual System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
+        public virtual void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
+    }
+    internal partial interface IDefaultKeyStorageDirectories
+    {
+        System.IO.DirectoryInfo GetKeyStorageDirectory();
+        System.IO.DirectoryInfo GetKeyStorageDirectoryForAzureWebSites();
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.SP800_108
+{
+    internal unsafe partial interface ISP800_108_CTR_HMACSHA512Provider : System.IDisposable
+    {
+        void DeriveKey(byte* pbLabel, uint cbLabel, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey);
+    }
+    internal static partial class ManagedSP800_108_CTR_HMACSHA512
+    {
+        public static void DeriveKeys(byte[] kdk, System.ArraySegment<byte> label, System.ArraySegment<byte> context, System.Func<byte[], System.Security.Cryptography.HashAlgorithm> prfFactory, System.ArraySegment<byte> output) { }
+        public static void DeriveKeysWithContextHeader(byte[] kdk, System.ArraySegment<byte> label, byte[] contextHeader, System.ArraySegment<byte> context, System.Func<byte[], System.Security.Cryptography.HashAlgorithm> prfFactory, System.ArraySegment<byte> output) { }
+    }
+    internal static partial class SP800_108_CTR_HMACSHA512Extensions
+    {
+        public unsafe static void DeriveKeyWithContextHeader(this Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider provider, byte* pbLabel, uint cbLabel, byte[] contextHeader, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey) { }
+    }
+    internal static partial class SP800_108_CTR_HMACSHA512Util
+    {
+        public static Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider CreateEmptyProvider() { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider CreateProvider(Microsoft.AspNetCore.DataProtection.Secret kdk) { throw null; }
+        public unsafe static Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider CreateProvider(byte* pbKdk, uint cbKdk) { throw null; }
+    }
+    internal sealed partial class Win7SP800_108_CTR_HMACSHA512Provider : Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider, System.IDisposable
+    {
+        public unsafe Win7SP800_108_CTR_HMACSHA512Provider(byte* pbKdk, uint cbKdk) { }
+        public unsafe void DeriveKey(byte* pbLabel, uint cbLabel, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey) { }
+        public void Dispose() { }
+    }
+    internal sealed partial class Win8SP800_108_CTR_HMACSHA512Provider : Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider, System.IDisposable
+    {
+        public unsafe Win8SP800_108_CTR_HMACSHA512Provider(byte* pbKdk, uint cbKdk) { }
+        public unsafe void DeriveKey(byte* pbLabel, uint cbLabel, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey) { }
+        public void Dispose() { }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.XmlEncryption
+{
+    public sealed partial class CertificateXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor, Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor
+    {
+        System.Security.Cryptography.Xml.EncryptedData Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor.PerformEncryption(System.Security.Cryptography.Xml.EncryptedXml encryptedXml, System.Xml.XmlElement elementToEncrypt) { throw null; }
+        internal CertificateXmlEncryptor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor encryptor) { }
+    }
+    internal partial interface IInternalCertificateXmlEncryptor
+    {
+        System.Security.Cryptography.Xml.EncryptedData PerformEncryption(System.Security.Cryptography.Xml.EncryptedXml encryptedXml, System.Xml.XmlElement elementToEncrypt);
+    }
+    internal partial interface IInternalEncryptedXmlDecryptor
+    {
+        void PerformPreDecryptionSetup(System.Security.Cryptography.Xml.EncryptedXml encryptedXml);
+    }
+    internal static partial class XmlEncryptionExtensions
+    {
+        public static System.Xml.Linq.XElement DecryptElement(this System.Xml.Linq.XElement element, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) { throw null; }
+        public static System.Xml.Linq.XElement EncryptIfNecessary(this Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor encryptor, System.Xml.Linq.XElement element) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.Secret ToSecret(this System.Xml.Linq.XElement element) { throw null; }
+        public static System.Xml.Linq.XElement ToXElement(this Microsoft.AspNetCore.DataProtection.Secret secret) { throw null; }
+    }
+    internal partial class XmlKeyDecryptionOptions
+    {
+        public XmlKeyDecryptionOptions() { }
+        public int KeyDecryptionCertificateCount { get { throw null; } }
+        public void AddKeyDecryptionCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { }
+        public bool TryGetKeyDecryptionCertificates(System.Security.Cryptography.X509Certificates.X509Certificate2 certInfo, out System.Collections.Generic.IReadOnlyList<System.Security.Cryptography.X509Certificates.X509Certificate2> keyDecryptionCerts) { throw null; }
+    }
+}
\ No newline at end of file
diff --git a/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj b/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj
index 9408c35dad372955291159e1a200ac34c8ecb562..06e7d533c7d9659cc53e6efa93f70fcfa56b9904 100644
--- a/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj
+++ b/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj
@@ -5,25 +5,29 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Win32.Registry"  />
-    <Reference Include="System.Security.Cryptography.Xml"  />
-    <Reference Include="System.Security.Principal.Windows"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Win32.Registry" />
+    <Reference Include="System.Security.Cryptography.Xml" />
+    <Reference Include="System.Security.Principal.Windows" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Win32.Registry"  />
-    <Reference Include="System.Security.Cryptography.Xml"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Win32.Registry" />
+    <Reference Include="System.Security.Cryptography.Xml" />
   </ItemGroup>
 </Project>
diff --git a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj
index 4ce14755dffacabd37175ea2382c2fb32454beb6..a675b5aa74e042cc42ca0c641f1de491e18b415f 100644
--- a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj
+++ b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj
@@ -5,7 +5,6 @@
     <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <TargetFrameworks Condition="'$(DotNetBuildFromSource)' == 'true'">$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
diff --git a/src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj b/src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj
deleted file mode 100644
index dd34dcfdfd50ac3362933c62cfa0bd004e41e57f..0000000000000000000000000000000000000000
--- a/src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.1</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.netstandard2.1.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.EntityFrameworkCore"  />
-  </ItemGroup>
-</Project>
diff --git a/src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.netstandard2.1.cs b/src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.netstandard2.1.cs
deleted file mode 100644
index 67ab1ae85934311bc8409714859b46a1cf9a3e1f..0000000000000000000000000000000000000000
--- a/src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.netstandard2.1.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class EntityFrameworkCoreDataProtectionExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToDbContext<TContext>(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder) where TContext : Microsoft.EntityFrameworkCore.DbContext, Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.IDataProtectionKeyContext { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore
-{
-    public partial class DataProtectionKey
-    {
-        public DataProtectionKey() { }
-        public string FriendlyName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Xml { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class EntityFrameworkCoreXmlRepository<TContext> : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository where TContext : Microsoft.EntityFrameworkCore.DbContext, Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.IDataProtectionKeyContext
-    {
-        public EntityFrameworkCoreXmlRepository(System.IServiceProvider services, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public virtual System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
-        public void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
-    }
-    public partial interface IDataProtectionKeyContext
-    {
-        Microsoft.EntityFrameworkCore.DbSet<Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey> DataProtectionKeys { get; }
-    }
-}
diff --git a/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj b/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj
index b2dbf36a087ba975877ef2d6244db86927abf905..dab3dbb68a2ccffd40c8b39d5cb5462763bfc6c0 100644
--- a/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj
+++ b/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj
@@ -2,11 +2,15 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" />
     <Reference Include="Microsoft.EntityFrameworkCore.InMemory" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs b/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f1c965458a6ca7372dca33bba51b9c0c5ef1de4f
--- /dev/null
+++ b/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs
@@ -0,0 +1,34 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.DataProtection
+{
+    public static partial class DataProtectionProvider
+    {
+        internal static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider CreateProvider(System.IO.DirectoryInfo keyDirectory, System.Action<Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder> setupAction, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; }
+    }
+    internal sealed partial class TimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector
+    {
+        public TimeLimitedDataProtector(Microsoft.AspNetCore.DataProtection.IDataProtector innerProtector) { }
+        public Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector CreateProtector(string purpose) { throw null; }
+        Microsoft.AspNetCore.DataProtection.IDataProtector Microsoft.AspNetCore.DataProtection.IDataProtectionProvider.CreateProtector(string purpose) { throw null; }
+        byte[] Microsoft.AspNetCore.DataProtection.IDataProtector.Protect(byte[] plaintext) { throw null; }
+        byte[] Microsoft.AspNetCore.DataProtection.IDataProtector.Unprotect(byte[] protectedData) { throw null; }
+        public byte[] Protect(byte[] plaintext, System.DateTimeOffset expiration) { throw null; }
+        public byte[] Unprotect(byte[] protectedData, out System.DateTimeOffset expiration) { throw null; }
+        internal byte[] UnprotectCore(byte[] protectedData, System.DateTimeOffset now, out System.DateTimeOffset expiration) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Extensions
+{
+    internal static partial class Resources
+    {
+        internal static string CryptCommon_GenericError { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string TimeLimitedDataProtector_PayloadExpired { get { throw null; } }
+        internal static string TimeLimitedDataProtector_PayloadInvalid { get { throw null; } }
+        internal static string FormatTimeLimitedDataProtector_PayloadExpired(object p0) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}
\ No newline at end of file
diff --git a/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj b/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj
index 8edb1af38ebf0eb03afae94d5f84b2d1cf555dc9..49dd84084bc8a23ce653f0b2b43489af86829d65 100644
--- a/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj
+++ b/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj
@@ -5,12 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
   </ItemGroup>
 </Project>
diff --git a/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj b/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj
index 21c2eae6b7e1dd5f5507011430836aed962b078f..fe1e5448dac0c459820093eb30bdfe0ecca8f798 100644
--- a/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj
+++ b/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj
@@ -5,7 +5,6 @@
     <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <TargetFrameworks Condition="'$(DotNetBuildFromSource)' == 'true'">$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;dataprotection</PackageTags>
   </PropertyGroup>
diff --git a/src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj b/src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj
deleted file mode 100644
index 013fffddf8c711dbe13d576a579ce03d97730126..0000000000000000000000000000000000000000
--- a/src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="StackExchange.Redis"  />
-  </ItemGroup>
-</Project>
diff --git a/src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.netstandard2.0.cs b/src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.netstandard2.0.cs
deleted file mode 100644
index 3208711453a5449cdb51e89b68f6ce669f5fa560..0000000000000000000000000000000000000000
--- a/src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.netstandard2.0.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class StackExchangeRedisDataProtectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToStackExchangeRedis(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, StackExchange.Redis.IConnectionMultiplexer connectionMultiplexer) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToStackExchangeRedis(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, StackExchange.Redis.IConnectionMultiplexer connectionMultiplexer, StackExchange.Redis.RedisKey key) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToStackExchangeRedis(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Func<StackExchange.Redis.IDatabase> databaseFactory, StackExchange.Redis.RedisKey key) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.DataProtection.StackExchangeRedis
-{
-    public partial class RedisXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository
-    {
-        public RedisXmlRepository(System.Func<StackExchange.Redis.IDatabase> databaseFactory, StackExchange.Redis.RedisKey key) { }
-        public System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
-        public void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
-    }
-}
diff --git a/src/DataProtection/StackExchangeRedis/test/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj b/src/DataProtection/StackExchangeRedis/test/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj
index 51ab16d490da705ffb501d2f42ce4c1b08d35ecb..3bfb97422c2936eea0a587bd41f863b06105eb45 100644
--- a/src/DataProtection/StackExchangeRedis/test/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj
+++ b/src/DataProtection/StackExchangeRedis/test/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -16,6 +18,8 @@
     <Reference Include="Microsoft.Extensions.Configuration.Json" />
     <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DataProtection/samples/AzureBlob/AzureBlob.csproj b/src/DataProtection/samples/AzureBlob/AzureBlob.csproj
index da0aaac7797c3940d25b01549a4dc8b5b4ee571e..14daf0f2dbe455348e94ced966147f29ec191dd9 100644
--- a/src/DataProtection/samples/AzureBlob/AzureBlob.csproj
+++ b/src/DataProtection/samples/AzureBlob/AzureBlob.csproj
@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <OutputType>exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -11,6 +13,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DataProtection/samples/AzureKeyVault/AzureKeyVault.csproj b/src/DataProtection/samples/AzureKeyVault/AzureKeyVault.csproj
index 81e12db14e269863dc5f13f295b80d5845d473b8..a8b80ac42abedc56b7e0de0d975231dca9a6fb20 100644
--- a/src/DataProtection/samples/AzureKeyVault/AzureKeyVault.csproj
+++ b/src/DataProtection/samples/AzureKeyVault/AzureKeyVault.csproj
@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <OutputType>exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -12,6 +14,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj b/src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj
index 6c161137a507bc7317cdb4beeafd92645c3b7210..24b0634e1c48689b72e427023ec90f9d23abf8bb 100644
--- a/src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj
+++ b/src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj
@@ -3,6 +3,8 @@
   <PropertyGroup>
     <OutputType>exe</OutputType>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -11,6 +13,8 @@
     <Reference Include="Microsoft.EntityFrameworkCore.SqlServer" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DataProtection/samples/Redis/Redis.csproj b/src/DataProtection/samples/Redis/Redis.csproj
index 5a6bc7cf173a09b77a93d82c0cf7c7b8b5628e79..4ba6eaccc7f86570312142e2da814d3bfc777772 100644
--- a/src/DataProtection/samples/Redis/Redis.csproj
+++ b/src/DataProtection/samples/Redis/Redis.csproj
@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <OutputType>exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -10,6 +12,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>
diff --git a/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj b/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj
index 21597d756b36f191072399b2421cc5d2626055ce..7f8a9bee97d0db094147fb5b69518831a075d34b 100644
--- a/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj
+++ b/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj
@@ -5,23 +5,23 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Diagnostics"  />
-    <Reference Include="Microsoft.AspNetCore.HostFiltering"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.AspNetCore.Server.IIS"  />
-    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration"  />
-    <Reference Include="Microsoft.AspNetCore.Server.Kestrel"  />
-    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables"  />
-    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Json"  />
-    <Reference Include="Microsoft.Extensions.Configuration.CommandLine"  />
-    <Reference Include="Microsoft.Extensions.Configuration.UserSecrets"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Composite"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Logging.Configuration"  />
-    <Reference Include="Microsoft.Extensions.Logging.Console"  />
-    <Reference Include="Microsoft.Extensions.Logging.Debug"  />
-    <Reference Include="Microsoft.Extensions.Logging.EventSource"  />
+    <Reference Include="Microsoft.AspNetCore.Diagnostics" />
+    <Reference Include="Microsoft.AspNetCore.HostFiltering" />
+    <Reference Include="Microsoft.AspNetCore.Hosting" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.AspNetCore.Server.IIS" />
+    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
+    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions" />
+    <Reference Include="Microsoft.Extensions.Configuration.Json" />
+    <Reference Include="Microsoft.Extensions.Configuration.CommandLine" />
+    <Reference Include="Microsoft.Extensions.Configuration.UserSecrets" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Composite" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Logging.Configuration" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <Reference Include="Microsoft.Extensions.Logging.Debug" />
+    <Reference Include="Microsoft.Extensions.Logging.EventSource" />
   </ItemGroup>
 </Project>
diff --git a/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj b/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj
index 54fc28cbea3c0f94d86f459e587985fa9acd28c7..89f0b0ff8b175d437340e374b1051e86510ef002 100644
--- a/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj
+++ b/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj
@@ -6,7 +6,7 @@
     <PackageTags>aspnetcore</PackageTags>
     <Description>Microsoft.AspNetCore</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.csproj b/src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.csproj
deleted file mode 100644
index c2eba6030ae00e3228080552f70246ccc8423508..0000000000000000000000000000000000000000
--- a/src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.JsonPatch.netstandard2.0.cs" />
-    <Reference Include="Microsoft.CSharp"  />
-    <Reference Include="Newtonsoft.Json"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.netstandard2.0.cs b/src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.netstandard2.0.cs
deleted file mode 100644
index 61ba9315d98359094a7e9548ea1998690cf30b47..0000000000000000000000000000000000000000
--- a/src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.netstandard2.0.cs
+++ /dev/null
@@ -1,320 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.JsonPatch
-{
-    public partial interface IJsonPatchDocument
-    {
-        Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get; set; }
-        System.Collections.Generic.IList<Microsoft.AspNetCore.JsonPatch.Operations.Operation> GetOperations();
-    }
-    [Newtonsoft.Json.JsonConverterAttribute(typeof(Microsoft.AspNetCore.JsonPatch.Converters.JsonPatchDocumentConverter))]
-    public partial class JsonPatchDocument : Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument
-    {
-        public JsonPatchDocument() { }
-        public JsonPatchDocument(System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation> operations, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { }
-        [Newtonsoft.Json.JsonIgnoreAttribute]
-        public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation> Operations { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Add(string path, object value) { throw null; }
-        public void ApplyTo(object objectToApplyTo) { }
-        public void ApplyTo(object objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-        public void ApplyTo(object objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public void ApplyTo(object objectToApplyTo, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Copy(string from, string path) { throw null; }
-        System.Collections.Generic.IList<Microsoft.AspNetCore.JsonPatch.Operations.Operation> Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument.GetOperations() { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Move(string from, string path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Remove(string path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Replace(string path, object value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Test(string path, object value) { throw null; }
-    }
-    [Newtonsoft.Json.JsonConverterAttribute(typeof(Microsoft.AspNetCore.JsonPatch.Converters.TypedJsonPatchDocumentConverter))]
-    public partial class JsonPatchDocument<TModel> : Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument where TModel : class
-    {
-        public JsonPatchDocument() { }
-        public JsonPatchDocument(System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation<TModel>> operations, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { }
-        [Newtonsoft.Json.JsonIgnoreAttribute]
-        public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation<TModel>> Operations { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Add<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Add<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Add<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path, TProp value) { throw null; }
-        public void ApplyTo(TModel objectToApplyTo) { }
-        public void ApplyTo(TModel objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-        public void ApplyTo(TModel objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public void ApplyTo(TModel objectToApplyTo, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        System.Collections.Generic.IList<Microsoft.AspNetCore.JsonPatch.Operations.Operation> Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument.GetOperations() { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Remove<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Remove<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Remove<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Replace<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Replace<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Replace<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Test<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Test<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Test<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path, TProp value) { throw null; }
-    }
-    public partial class JsonPatchError
-    {
-        public JsonPatchError(object affectedObject, Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, string errorMessage) { }
-        public object AffectedObject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string ErrorMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.Operations.Operation Operation { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public partial class JsonPatchProperty
-    {
-        public JsonPatchProperty(Newtonsoft.Json.Serialization.JsonProperty property, object parent) { }
-        public object Parent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Newtonsoft.Json.Serialization.JsonProperty Property { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Adapters
-{
-    public partial class AdapterFactory : Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory
-    {
-        public AdapterFactory() { }
-        public virtual Microsoft.AspNetCore.JsonPatch.Internal.IAdapter Create(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { throw null; }
-    }
-    public partial interface IAdapterFactory
-    {
-        Microsoft.AspNetCore.JsonPatch.Internal.IAdapter Create(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver);
-    }
-    public partial interface IObjectAdapter
-    {
-        void Add(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Copy(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Move(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Remove(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Replace(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-    }
-    public partial interface IObjectAdapterWithTest : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter
-    {
-        void Test(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-    }
-    public partial class ObjectAdapter : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapterWithTest
-    {
-        public ObjectAdapter(Newtonsoft.Json.Serialization.IContractResolver contractResolver, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public ObjectAdapter(Newtonsoft.Json.Serialization.IContractResolver contractResolver, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction, Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory adapterFactory) { }
-        public Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory AdapterFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> LogErrorAction { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public void Add(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Copy(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Move(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Remove(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Replace(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Test(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Converters
-{
-    public partial class JsonPatchDocumentConverter : Newtonsoft.Json.JsonConverter
-    {
-        public JsonPatchDocumentConverter() { }
-        public override bool CanConvert(System.Type objectType) { throw null; }
-        public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { throw null; }
-        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { }
-    }
-    public partial class TypedJsonPatchDocumentConverter : Microsoft.AspNetCore.JsonPatch.Converters.JsonPatchDocumentConverter
-    {
-        public TypedJsonPatchDocumentConverter() { }
-        public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Exceptions
-{
-    public partial class JsonPatchException : System.Exception
-    {
-        public JsonPatchException() { }
-        public JsonPatchException(Microsoft.AspNetCore.JsonPatch.JsonPatchError jsonPatchError) { }
-        public JsonPatchException(Microsoft.AspNetCore.JsonPatch.JsonPatchError jsonPatchError, System.Exception innerException) { }
-        public JsonPatchException(string message, System.Exception innerException) { }
-        public object AffectedObject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.Operations.Operation FailedOperation { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Helpers
-{
-    public partial class GetValueResult
-    {
-        public GetValueResult(object propertyValue, bool hasError) { }
-        public bool HasError { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public object PropertyValue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Internal
-{
-    public partial class ConversionResult
-    {
-        public ConversionResult(bool canBeConverted, object convertedInstance) { }
-        public bool CanBeConverted { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public object ConvertedInstance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public static partial class ConversionResultProvider
-    {
-        public static Microsoft.AspNetCore.JsonPatch.Internal.ConversionResult ConvertTo(object value, System.Type typeToConvertTo) { throw null; }
-        public static Microsoft.AspNetCore.JsonPatch.Internal.ConversionResult CopyTo(object value, System.Type typeToConvertTo) { throw null; }
-    }
-    public partial class DictionaryAdapter<TKey, TValue> : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public DictionaryAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertKey(string key, out TKey convertedKey, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object value, out TValue convertedValue, out string errorMessage) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object nextTarget, out string errorMessage) { throw null; }
-    }
-    public partial class DynamicObjectAdapter : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public DynamicObjectAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object value, System.Type propertyType, out object convertedValue) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected virtual bool TryGetDynamicObjectProperty(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver, string segment, out object value, out string errorMessage) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TrySetDynamicObjectProperty(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver, string segment, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object nextTarget, out string errorMessage) { throw null; }
-    }
-    public partial interface IAdapter
-    {
-        bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage);
-        bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage);
-        bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage);
-        bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage);
-        bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage);
-        bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object nextTarget, out string errorMessage);
-    }
-    public partial class JObjectAdapter : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public JObjectAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object nextTarget, out string errorMessage) { throw null; }
-    }
-    public partial class ListAdapter : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public ListAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object originalValue, System.Type listTypeArgument, string segment, out object convertedValue, out string errorMessage) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected virtual bool TryGetListTypeArgument(System.Collections.IList list, out System.Type listTypeArgument, out string errorMessage) { throw null; }
-        protected virtual bool TryGetPositionInfo(System.Collections.IList list, string segment, Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.OperationType operationType, out Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.PositionInfo positionInfo, out string errorMessage) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected enum OperationType
-        {
-            Add = 0,
-            Remove = 1,
-            Get = 2,
-            Replace = 3,
-        }
-        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-        protected readonly partial struct PositionInfo
-        {
-            private readonly int _dummyPrimitive;
-            public PositionInfo(Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.PositionType type, int index) { throw null; }
-            public int Index { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-            public Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.PositionType Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        }
-        protected enum PositionType
-        {
-            Index = 0,
-            EndOfList = 1,
-            Invalid = 2,
-            OutOfBounds = 3,
-        }
-    }
-    public partial class ObjectVisitor
-    {
-        public ObjectVisitor(Microsoft.AspNetCore.JsonPatch.Internal.ParsedPath path, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { }
-        public ObjectVisitor(Microsoft.AspNetCore.JsonPatch.Internal.ParsedPath path, Newtonsoft.Json.Serialization.IContractResolver contractResolver, Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory adapterFactory) { }
-        public bool TryVisit(ref object target, out Microsoft.AspNetCore.JsonPatch.Internal.IAdapter adapter, out string errorMessage) { throw null; }
-    }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct ParsedPath
-    {
-        private readonly object _dummy;
-        private readonly int _dummyPrimitive;
-        public ParsedPath(string path) { throw null; }
-        public string LastSegment { get { throw null; } }
-        public System.Collections.Generic.IReadOnlyList<string> Segments { get { throw null; } }
-    }
-    public partial class PocoAdapter : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public PocoAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object value, System.Type propertyType, out object convertedValue) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected virtual bool TryGetJsonProperty(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver, string segment, out Newtonsoft.Json.Serialization.JsonProperty jsonProperty) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Operations
-{
-    public partial class Operation : Microsoft.AspNetCore.JsonPatch.Operations.OperationBase
-    {
-        public Operation() { }
-        public Operation(string op, string path, string from) { }
-        public Operation(string op, string path, string from, object value) { }
-        [Newtonsoft.Json.JsonPropertyAttribute("value")]
-        public object value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public void Apply(object objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-        public bool ShouldSerializevalue() { throw null; }
-    }
-    public partial class OperationBase
-    {
-        public OperationBase() { }
-        public OperationBase(string op, string path, string from) { }
-        [Newtonsoft.Json.JsonPropertyAttribute("from")]
-        public string from { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Newtonsoft.Json.JsonPropertyAttribute("op")]
-        public string op { get { throw null; } set { } }
-        [Newtonsoft.Json.JsonIgnoreAttribute]
-        public Microsoft.AspNetCore.JsonPatch.Operations.OperationType OperationType { get { throw null; } }
-        [Newtonsoft.Json.JsonPropertyAttribute("path")]
-        public string path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ShouldSerializefrom() { throw null; }
-    }
-    public enum OperationType
-    {
-        Add = 0,
-        Remove = 1,
-        Replace = 2,
-        Move = 3,
-        Copy = 4,
-        Test = 5,
-        Invalid = 6,
-    }
-    public partial class Operation<TModel> : Microsoft.AspNetCore.JsonPatch.Operations.Operation where TModel : class
-    {
-        public Operation() { }
-        public Operation(string op, string path, string from) { }
-        public Operation(string op, string path, string from, object value) { }
-        public void Apply(TModel objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-    }
-}
diff --git a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
index b96242763481c45eb9d3c95c66c055095ec952c1..6637411363bc4611a1faf336ce9d5e3cc13fc2ca 100644
--- a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
+++ b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
@@ -31,15 +31,20 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory>
     <GenerateDependencyFile>false</GenerateDependencyFile>
 
-    <!-- This project should not be referenced via the `<Reference>` impementation. -->
+    <!-- This project should not be referenced via the `<Reference>` implementation. -->
     <IsProjectReferenceProvider>false</IsProjectReferenceProvider>
 
     <PackageConflictManifestFileName>PackageOverrides.txt</PackageConflictManifestFileName>
 
     <!-- Reference implementation assemblies in addition to ref assemblies to get xml docs -->
     <ReferenceImplementationAssemblies>true</ReferenceImplementationAssemblies>
-    <!-- We are ignoring MSB3243 warnings since implemenation and reference assemblies are versioned differently. We need both to compose the targeting pack with reference assemblies and xml docs. -->
-    <MSBuildWarningsAsMessages>MSB3243</MSBuildWarningsAsMessages >
+    <!--
+      We are ignoring MSB3243 warnings since implementation and reference assemblies are versioned differently.
+      We need both to compose the targeting pack with reference assemblies and xml docs.
+    -->
+    <MSBuildWarningsAsMessages>MSB3243</MSBuildWarningsAsMessages>
+    <!-- We are ignoring NU5131 and NU5128 warnings since the dependency group should be kept empty. -->
+    <NoWarn>$(NoWarn);NU5131;NU5128</NoWarn>
 
     <!-- Platform manifest data -->
     <FrameworkListFileName>FrameworkList.xml</FrameworkListFileName>
@@ -48,13 +53,13 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <!-- Platform manifest and package override metatdata -->
     <ReferencePackSharedFxVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</ReferencePackSharedFxVersion>
     <ReferencePackSharedFxVersion Condition="'$(VersionSuffix)' != ''">$(ReferencePackSharedFxVersion)-$(VersionSuffix)</ReferencePackSharedFxVersion>
-    <ReferencePlatformManifestOutputPath>$(ArtifactsObjDir)ref\PlatformManifest.txt</ReferencePlatformManifestOutputPath>
+    <ReferencePlatformManifestPath Condition="'$(IsServicingBuild)' != 'true'">$(PlatformManifestOutputPath)</ReferencePlatformManifestPath>
+    <ReferencePlatformManifestPath Condition="'$(IsServicingBuild)' == 'true'">$(RepoRoot)eng\PlatformManifest.txt</ReferencePlatformManifestPath>
   </PropertyGroup>
 
   <ItemGroup>
     <!-- Note: do not add _TransitiveExternalAspNetCoreAppReference to this list. This is intentionally not listed as a direct package reference. -->
     <Reference Include="@(AspNetCoreAppReference);@(AspNetCoreAppReferenceAndPackage);@(ExternalAspNetCoreAppReference)" />
-    <Reference Include="Microsoft.Internal.Extensions.Refs" Version="$(MicrosoftInternalExtensionsRefsPackageVersion)" IncludeAssets="Build" />
     <!-- Enforce build order. Targeting pack needs to bundle information about the runtime. -->
     <ProjectReference Include="..\src\Microsoft.AspNetCore.App.Runtime.csproj">
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
@@ -78,8 +83,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <!-- If this project won't produce a package, don't bother building anything. -->
     <BuildDependsOn Condition="'$(IsTargetingPackBuilding)' != 'false'">
       $(BuildDependsOn);
-      GeneratePackageConflictManifest;
       _ResolveTargetingPackContent;
+      GeneratePackageConflictManifest;
       IncludeFrameworkListFile;
       _BatchCopyToLayoutTargetDir;
       _InstallTargetingPackIntoLocalDotNet;
@@ -110,16 +115,28 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     </ItemGroup>
 
     <JoinItems Left="@(ReferencePathWithRefAssemblies)" Right="@(_AvailableExtensionsRefAssemblies)" LeftKey="Filename" RightKey="Filename" ItemSpecToUse="Left">
+      <Output TaskParameter="JoinResult" ItemName="_ReferencedExtensionsRefAssemblies" />
+    </JoinItems>
+
+    <JoinItems Left="@(_ReferencedExtensionsRefAssemblies)" Right="@(ExternalAspNetCoreAppReference)" LeftKey="Filename" RightKey="Identity" ItemSpecToUse="Left">
+      <Output TaskParameter="JoinResult" ItemName="_SelectedExtensionsRefs" />
+    </JoinItems>
+
+    <JoinItems Left="@(ReferencePathWithRefAssemblies)" Right="@(_SelectedExtensionsRefs)" LeftKey="Filename" RightKey="Filename" ItemSpecToUse="Left">
       <Output TaskParameter="JoinResult" ItemName="_SelectedExtensionsRefAssemblies" />
     </JoinItems>
 
     <ItemGroup>
+      <!-- Exclude transitive external dependencies that are not directly referenced by projects in AspNetCore or Extensions -->
       <AspNetCoreReferenceAssemblyPath
           Include="@(ReferencePathWithRefAssemblies)"
+          Condition="'%(ReferencePathWithRefAssemblies.IsReferenceAssembly)' == 'true'"
           Exclude="
-            @(_SelectedExtensionsRefAssemblies);
+            @(_ReferencedExtensionsRefAssemblies);
             @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'Microsoft.NETCore.App.Ref'));
-            @(ReferencePathWithRefAssemblies->WithMetadataValue('IsReferenceAssembly', 'false'));
+            @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'System.Security.Cryptography.Pkcs'));
+            @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'System.Drawing.Common'));
+            @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'Microsoft.Win32.SystemEvents'));
             @(ReferencePathWithRefAssemblies->WithMetadataValue('ReferenceGrouping', 'Microsoft.NETCore.App'));" />
 
       <AspNetCoreReferenceAssemblyPath
@@ -127,34 +144,26 @@ This package is an internal implementation of the .NET Core SDK and is not meant
 
       <AspNetCoreReferenceDocXml Include="@(_ResolvedProjectReferencePaths->WithMetadataValue('IsReferenceAssembly', 'false')->'%(RootDir)%(Directory)%(FileName).xml')" />
       <AspNetCoreReferenceDocXml Include="@(_SelectedExtensionsRefAssemblies->'$(MicrosoftInternalExtensionsRefsPath)%(FileName).xml')" />
-    </ItemGroup>
 
-    <RepoTasks.GenerateSharedFrameworkDepsFile
-      DepsFilePath="$(ProjectDepsFilePath)"
-      TargetFramework="$(TargetFramework)"
-      FrameworkName="$(TargetingPackName)"
-      FrameworkVersion="$(ReferencePackSharedFxVersion)"
-      References="@(AspNetCoreReferenceAssemblyPath)"
-      RuntimeIdentifier="$(TargetRuntimeIdentifier)"
-      RuntimePackageName="$(PackageId)"
-      PlatformManifestOutputPath="$(ReferencePlatformManifestOutputPath)" />
-
-    <ItemGroup>
       <RefPackContent Include="@(AspNetCoreReferenceAssemblyPath)" PackagePath="$(RefAssemblyPackagePath)" />
       <RefPackContent Include="@(AspNetCoreReferenceDocXml)" PackagePath="$(RefAssemblyPackagePath)" />
       <RefPackContent Include="$(TargetDir)$(PackageConflictManifestFileName)" PackagePath="$(ManifestsPackagePath)" />
-      <RefPackContent Include="$(ReferencePlatformManifestOutputPath)" PackagePath="$(ManifestsPackagePath)" />
+      <RefPackContent Include="$(ReferencePlatformManifestPath)" PackagePath="$(ManifestsPackagePath)" />
     </ItemGroup>
   </Target>
 
   <Target Name="GeneratePackageConflictManifest"
-          DependsOnTargets="ResolveReferences"
+          DependsOnTargets="_ResolveTargetingPackContent"
           Inputs="$(MSBuildAllProjects)"
           Outputs="$(TargetDir)$(PackageConflictManifestFileName)">
-
     <ItemGroup>
-      <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition=" '%(ReferencePath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(ReferencePath.NuGetSourceType)' == 'Package' " />
-      <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(ReferencePath.ReferenceSourceTarget)' == 'ProjectReference' AND '%(ReferencePath.IsReferenceAssembly)' == 'true' " />
+      <!-- Use package version for non-Extensions references -->
+      <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition="!Exists('$(MicrosoftInternalExtensionsRefsPath)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Internal.Extensions.Refs' AND '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " />
+
+      <!-- Pin version for extensions references -->
+      <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(MicrosoftInternalExtensionsRefsPackageOverrideVersion)')" />
+
+      <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' AND '%(AspNetCoreReferenceAssemblyPath.IsReferenceAssembly)' == 'true' " />
     </ItemGroup>
 
     <WriteLinesToFile
@@ -192,7 +201,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   <Target Name="_CreateTargetingPackArchive"
           Inputs="@(RefPackContent)"
           Outputs="$(ZipArchiveOutputPath);$(TarArchiveOutputPath)"
-          Condition="'$(IsPackable)' == 'true'">
+          Condition=" '$(IsPackable)' == 'true' ">
     <PropertyGroup>
       <_TarCommand>tar</_TarCommand>
       <_TarCommand Condition="Exists('$(RepoRoot).tools\tar.exe')">"$(RepoRoot).tools\tar.exe"</_TarCommand>
diff --git a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
index f843ded124177f7d76eebbb7edcbdfb2053d6709..111c6d5da5780469cdb102ec7630d3670dec733d 100644
--- a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
+++ b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
@@ -21,6 +21,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <SkipRefDirectoryCheck>true</SkipRefDirectoryCheck>
     <PackageType>DotnetPlatform</PackageType>
 
+    <!-- We need to reference the implementation assemblies when composing the shared framework -->
+    <ReferenceReferenceAssemblies>false</ReferenceReferenceAssemblies>
+    <ReferenceImplementationAssemblies>true</ReferenceImplementationAssemblies>
+
     <!-- This file is used by the dotnet/core-sdk repo to determine if the version of AspNetCore.App is coherent with Microsoft.NETCore.App. -->
     <BaseRuntimeVersionFileName>aspnetcore_base_runtime.version</BaseRuntimeVersionFileName>
     <BaseRuntimeVersionFileOutputPath>$(InstallersOutputPath)$(BaseRuntimeVersionFileName)</BaseRuntimeVersionFileOutputPath>
@@ -33,7 +37,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <NativeAssetsPackagePath>runtimes/$(RuntimeIdentifier)/native/</NativeAssetsPackagePath>
 
     <DotNetRuntimeArchiveFileName>dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-$(TargetRuntimeIdentifier)$(ArchiveExtension)</DotNetRuntimeArchiveFileName>
-    <DotNetRuntimeDownloadUrl>$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppRuntimeVersion)/$(DotNetRuntimeArchiveFileName)</DotNetRuntimeDownloadUrl>
+    <DotNetRuntimeDownloadUrl>$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/$(DotNetRuntimeArchiveFileName)</DotNetRuntimeDownloadUrl>
+    <DotNetRuntimePrivateDownloadUrl>$(DotNetPrivateAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/$(DotNetRuntimeArchiveFileName)</DotNetRuntimePrivateDownloadUrl>
     <DotNetRuntimeArchive>$(BaseIntermediateOutputPath)$(DotNetRuntimeArchiveFileName)</DotNetRuntimeArchive>
 
     <!-- Setting this suppresses getting documentation .xml files in the shared runtime output. -->
@@ -52,6 +57,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <!-- Always generated, even though output type == Library -->
     <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
     <ProjectRuntimeConfigFileName>$(SharedFxName).runtimeconfig.json</ProjectRuntimeConfigFileName>
+    <!-- Target the latest runtime patch so the latest version is specified in runtimeconfig.json -->
+    <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
 
     <!-- Suppress .deps generation (we have to customize its layout. -->
     <GenerateDependencyFile>false</GenerateDependencyFile>
@@ -295,6 +302,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   -->
   <PropertyGroup>
     <CrossgenToolDir>$(IntermediateOutputPath)crossgen\</CrossgenToolDir>
+    <CrossgenPlatformAssembliesDir>$(IntermediateOutputPath)platformAssemblies\</CrossgenPlatformAssembliesDir>
     <!-- Pick the right coreclr jit based on whether we are cross-compiling or not -->
     <CoreCLRJitPath Condition="'$(CrossCompileDirectory)' == ''">$(RuntimePackageRoot)runtimes\$(RuntimeIdentifier)\native\$(LibPrefix)clrjit$(LibExtension)</CoreCLRJitPath>
     <CoreCLRJitPath Condition="'$(CrossCompileDirectory)' != ''">$(RuntimepackageRoot)runtimes\$(CrossCompileDirectory)\native\$(LibPrefix)clrjit$(LibExtension)</CoreCLRJitPath>
@@ -302,6 +310,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
 
   <ItemGroup>
     <CreateDirectory Include="$(CrossgenToolDir)" />
+    <CreateDirectory Include="$(CrossgenPlatformAssembliesDir)" />
     <CreateDirectory Include="$(SharedFxLayoutTargetDir)" />
     <CreateDirectory Include="$(RedistLayoutTargetDir)" />
     <CreateDirectory Include="$(LocalInstallationOutputPath)" />
@@ -310,13 +319,19 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   <Target Name="Crossgen" DependsOnTargets="$(CrossgenDependsOn)" />
 
   <Target Name="PrepareForCrossGen" Condition="'$(CrossgenOutput)' == 'true'">
+    <!-- The output directories of assemblies built in this repo contain a mix of ref and impl assemblies. Copy impl assemblies to a separate directory. -->
+    <Copy SourceFiles="@(ReferenceCopyLocalPaths)" DestinationFolder="$(CrossgenPlatformAssembliesDir)" Condition="'%(ReferenceCopyLocalPaths.ProjectPath)' != ''"/>
+
     <!-- Resolve list of assemblies to crossgen -->
     <ItemGroup>
       <IntermediateCrossgenAssembly Include="@(ReferenceCopyLocalPaths)" Condition=" '%(ReferenceCopyLocalPaths.IsNativeImage)' != 'true' AND '%(ReferenceCopyLocalPaths.Extension)' != '.pdb'" />
 
       <!-- These are the paths used by crossgen to find assemblies that are expected to exist at runtime in the shared frameworks. -->
       <_PlatformAssemblyPaths Include="$(CrossgenToolDir)" />
-      <_PlatformAssemblyPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)')" />
+      <!-- Include the directories of the assemblies not built in this repo. These contain only implementation assemblies. -->
+      <_PlatformAssemblyPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)')" Condition="'%(ReferenceCopyLocalPaths.ProjectPath)' == ''"/>
+      <!-- The output directories of assemblies built in this repo contain a mix of ref and impl assemblies. Use the directory with only impl assemblies. -->
+      <_PlatformAssemblyPaths Include="$(CrossgenPlatformAssembliesDir)"/>
 
       <ReferenceCopyLocalPaths Remove="@(IntermediateCrossgenAssembly)" />
       <ReferenceCopyLocalPaths Include="@(IntermediateCrossgenAssembly->'$(TargetDir)%(FileName)%(Extension)')" />
@@ -369,9 +384,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   -->
   <Target Name="_DownloadAndExtractDotNetRuntime" Condition="'$(DotNetBuildFromSource)' != 'true'">
     <DownloadFile Condition=" ! Exists('$(DotNetRuntimeArchive)')"
-      SourceUrl="$(DotNetRuntimeDownloadUrl)$(DotNetAssetRootAccessTokenSuffix)"
-      DestinationFolder="$(BaseIntermediateOutputPath)"
-      DestinationFileName="$(DotNetRuntimeArchiveFileName)" />
+      Uri="$(DotNetRuntimeDownloadUrl)"
+      PrivateUri="$(DotNetRuntimePrivateDownloadUrl)"
+      PrivateUriSuffix="$(DotNetAssetRootAccessTokenSuffix)"
+      DestinationPath="$(DotNetRuntimeArchive)" />
 
     <!-- Extract the dotnet-runtime archive -->
     <Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"
diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs
index 8a2625b99dfcc3cd14b504a72ee38835265506b3..2afdfc6e92f25825dd478d07cf56922fd2a90d58 100644
--- a/src/Framework/test/TargetingPackTests.cs
+++ b/src/Framework/test/TargetingPackTests.cs
@@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore
         public void PlatformManifestListsAllFiles()
         {
             var platformManifestPath = Path.Combine(_targetingPackRoot, "data", "PlatformManifest.txt");
-            var expectedAssemblies = TestData.GetTargetingPackDependencies()
+            var expectedAssemblies = TestData.GetSharedFxDependencies()
                 .Split(';', StringSplitOptions.RemoveEmptyEntries)
                 .Select(i =>
                 {
diff --git a/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj b/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj
index 61fcaa92d3168dad9d51b1cd4a6fee0512a670c0..5191bb9a5da447e541b268957754ee20935af925 100644
--- a/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj
+++ b/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Hosting.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj b/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj
index 4ab4e68f4dfa3880cae60b863717443690ec1faf..4def523880c52369ef7373d5110b5f0cafb10734 100644
--- a/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj
+++ b/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;hosting</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.Manual.cs b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..12132b383807c7605fe2d3657147bd1cdf2693c0
--- /dev/null
+++ b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.Manual.cs
@@ -0,0 +1,218 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Hosting
+{
+    internal partial class ConfigureBuilder
+    {
+        public ConfigureBuilder(System.Reflection.MethodInfo configure) { }
+        public System.Reflection.MethodInfo MethodInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> Build(object instance) { throw null; }
+    }
+    internal partial class ConfigureContainerBuilder
+    {
+        public ConfigureContainerBuilder(System.Reflection.MethodInfo configureContainerMethod) { }
+        public System.Func<System.Action<object>, System.Action<object>> ConfigureContainerFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Reflection.MethodInfo MethodInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Action<object> Build(object instance) { throw null; }
+        public System.Type GetContainerType() { throw null; }
+    }
+    internal partial class ConfigureServicesBuilder
+    {
+        public ConfigureServicesBuilder(System.Reflection.MethodInfo configureServices) { }
+        public System.Reflection.MethodInfo MethodInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider>, System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider>> StartupServiceFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider> Build(object instance) { throw null; }
+    }
+    internal partial class GenericWebHostBuilder : Microsoft.AspNetCore.Hosting.ISupportsStartup, Microsoft.AspNetCore.Hosting.ISupportsUseDefaultServiceProvider, Microsoft.AspNetCore.Hosting.IWebHostBuilder
+    {
+        public GenericWebHostBuilder(Microsoft.Extensions.Hosting.IHostBuilder builder) { }
+        public Microsoft.AspNetCore.Hosting.IWebHost Build() { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.AspNetCore.Builder.IApplicationBuilder> configure) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppConfiguration(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.Configuration.IConfigurationBuilder> configureDelegate) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.DependencyInjection.IServiceCollection> configureServices) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection> configureServices) { throw null; }
+        public string GetSetting(string key) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.DependencyInjection.ServiceProviderOptions> configure) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSetting(string key, string value) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Type startupType) { throw null; }
+    }
+    internal partial class GenericWebHostService : Microsoft.Extensions.Hosting.IHostedService
+    {
+        public GenericWebHostService(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Hosting.GenericWebHostServiceOptions> options, Microsoft.AspNetCore.Hosting.Server.IServer server, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Http.IHttpContextFactory httpContextFactory, Microsoft.AspNetCore.Hosting.Builder.IApplicationBuilderFactory applicationBuilderFactory, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Hosting.IStartupFilter> startupFilters, Microsoft.Extensions.Configuration.IConfiguration configuration, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) { }
+        public Microsoft.AspNetCore.Hosting.Builder.IApplicationBuilderFactory ApplicationBuilderFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Configuration.IConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Diagnostics.DiagnosticListener DiagnosticListener { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Http.IHttpContextFactory HttpContextFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Logging.ILogger LifetimeLogger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Logging.ILogger Logger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Hosting.GenericWebHostServiceOptions Options { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Hosting.Server.IServer Server { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Hosting.IStartupFilter> StartupFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+    internal partial class GenericWebHostServiceOptions
+    {
+        public GenericWebHostServiceOptions() { }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> ConfigureApplication { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.AggregateException HostingStartupExceptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Hosting.WebHostOptions WebHostOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class HostingApplication : Microsoft.AspNetCore.Hosting.Server.IHttpApplication<Microsoft.AspNetCore.Hosting.HostingApplication.Context>
+    {
+        public HostingApplication(Microsoft.AspNetCore.Http.RequestDelegate application, Microsoft.Extensions.Logging.ILogger logger, System.Diagnostics.DiagnosticListener diagnosticSource, Microsoft.AspNetCore.Http.IHttpContextFactory httpContextFactory) { }
+        public Microsoft.AspNetCore.Hosting.HostingApplication.Context CreateContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection contextFeatures) { throw null; }
+        public void DisposeContext(Microsoft.AspNetCore.Hosting.HostingApplication.Context context, System.Exception exception) { }
+        public System.Threading.Tasks.Task ProcessRequestAsync(Microsoft.AspNetCore.Hosting.HostingApplication.Context context) { throw null; }
+        internal partial class Context
+        {
+            public Context() { }
+            public System.Diagnostics.Activity Activity { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public bool EventLogEnabled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            internal bool HasDiagnosticListener { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public Microsoft.AspNetCore.Http.HttpContext HttpContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public System.IDisposable Scope { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public long StartTimestamp { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public void Reset() { }
+        }
+    }
+    internal partial class HostingEnvironment : Microsoft.AspNetCore.Hosting.IHostingEnvironment, Microsoft.AspNetCore.Hosting.IWebHostEnvironment, Microsoft.Extensions.Hosting.IHostEnvironment, Microsoft.Extensions.Hosting.IHostingEnvironment
+    {
+        public HostingEnvironment() { }
+        public string ApplicationName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.FileProviders.IFileProvider ContentRootFileProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ContentRootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string EnvironmentName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.FileProviders.IFileProvider WebRootFileProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string WebRootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal static partial class HostingEnvironmentExtensions
+    {
+        internal static void Initialize(this Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnvironment, string contentRootPath, Microsoft.AspNetCore.Hosting.WebHostOptions options) { }
+        internal static void Initialize(this Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, string contentRootPath, Microsoft.AspNetCore.Hosting.WebHostOptions options) { }
+    }
+    internal sealed partial class HostingEventSource : System.Diagnostics.Tracing.EventSource
+    {
+        public static readonly Microsoft.AspNetCore.Hosting.HostingEventSource Log;
+        internal HostingEventSource() { }
+        internal HostingEventSource(string eventSourceName) { }
+        [System.Diagnostics.Tracing.EventAttribute(1, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void HostStart() { }
+        [System.Diagnostics.Tracing.EventAttribute(2, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void HostStop() { }
+        protected override void OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs command) { }
+        internal void RequestFailed() { }
+        [System.Diagnostics.Tracing.EventAttribute(3, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void RequestStart(string method, string path) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Diagnostics.Tracing.EventAttribute(4, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void RequestStop() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Diagnostics.Tracing.EventAttribute(5, Level=System.Diagnostics.Tracing.EventLevel.Error)]
+        public void UnhandledException() { }
+    }
+    internal partial class HostingRequestStartingLog : System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.IEnumerable
+    {
+        internal static readonly System.Func<object, System.Exception, string> Callback;
+        public HostingRequestStartingLog(Microsoft.AspNetCore.Http.HttpContext httpContext) { }
+        public int Count { get { throw null; } }
+        public System.Collections.Generic.KeyValuePair<string, object> this[int index] { get { throw null; } }
+        public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, object>> GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        public override string ToString() { throw null; }
+    }
+    internal partial interface ISupportsStartup
+    {
+        Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.AspNetCore.Builder.IApplicationBuilder> configure);
+        Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Type startupType);
+    }
+    internal partial interface ISupportsUseDefaultServiceProvider
+    {
+        Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.DependencyInjection.ServiceProviderOptions> configure);
+    }
+    internal static partial class LoggerEventIds
+    {
+        public const int ApplicationStartupException = 6;
+        public const int ApplicationStoppedException = 8;
+        public const int ApplicationStoppingException = 7;
+        public const int HostedServiceStartException = 9;
+        public const int HostedServiceStopException = 10;
+        public const int HostingStartupAssemblyException = 11;
+        public const int RequestFinished = 2;
+        public const int RequestStarting = 1;
+        public const int ServerShutdownException = 12;
+        public const int Shutdown = 5;
+        public const int Started = 4;
+        public const int Starting = 3;
+    }
+    internal partial class StartupLoader
+    {
+        public StartupLoader() { }
+        internal static Microsoft.AspNetCore.Hosting.ConfigureContainerBuilder FindConfigureContainerDelegate(System.Type startupType, string environmentName) { throw null; }
+        internal static Microsoft.AspNetCore.Hosting.ConfigureBuilder FindConfigureDelegate(System.Type startupType, string environmentName) { throw null; }
+        internal static Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder FindConfigureServicesDelegate(System.Type startupType, string environmentName) { throw null; }
+        public static System.Type FindStartupType(string startupAssemblyName, string environmentName) { throw null; }
+        internal static bool HasConfigureServicesIServiceProviderDelegate(System.Type startupType, string environmentName) { throw null; }
+        public static Microsoft.AspNetCore.Hosting.StartupMethods LoadMethods(System.IServiceProvider hostingServiceProvider, System.Type startupType, string environmentName) { throw null; }
+    }
+    internal partial class StartupMethods
+    {
+        public StartupMethods(object instance, System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> configure, System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider> configureServices) { }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> ConfigureDelegate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider> ConfigureServicesDelegate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public object StartupInstance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class WebHostOptions
+    {
+        public WebHostOptions() { }
+        public WebHostOptions(Microsoft.Extensions.Configuration.IConfiguration configuration) { }
+        public WebHostOptions(Microsoft.Extensions.Configuration.IConfiguration configuration, string applicationNameFallback) { }
+        public string ApplicationName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool CaptureStartupErrors { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ContentRootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool DetailedErrors { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Environment { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyList<string> HostingStartupAssemblies { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyList<string> HostingStartupExcludeAssemblies { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool PreventHostingStartup { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.TimeSpan ShutdownTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string StartupAssembly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool SuppressStatusMessages { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string WebRoot { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IEnumerable<string> GetFinalHostingStartupAssemblies() { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
+{
+    internal partial class StaticWebAssetsFileProvider : Microsoft.Extensions.FileProviders.IFileProvider
+    {
+        public StaticWebAssetsFileProvider(string pathPrefix, string contentRoot) { }
+        public Microsoft.AspNetCore.Http.PathString BasePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.FileProviders.PhysicalFileProvider InnerProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) { throw null; }
+        public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) { throw null; }
+        public Microsoft.Extensions.Primitives.IChangeToken Watch(string filter) { throw null; }
+    }
+    public partial class StaticWebAssetsLoader
+    {
+        internal const string StaticWebAssetsManifestName = "Microsoft.AspNetCore.StaticWebAssets.xml";
+        internal static string GetAssemblyLocation(System.Reflection.Assembly assembly) { throw null; }
+        internal static System.IO.Stream ResolveManifest(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment, Microsoft.Extensions.Configuration.IConfiguration configuration) { throw null; }
+        internal static void UseStaticWebAssetsCore(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment, System.IO.Stream manifest) { }
+    }
+    internal static partial class StaticWebAssetsReader
+    {
+        internal static System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Hosting.StaticWebAssets.StaticWebAssetsReader.ContentRootMapping> Parse(System.IO.Stream manifest) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal readonly partial struct ContentRootMapping
+        {
+            private readonly object _dummy;
+            public ContentRootMapping(string basePath, string path) { throw null; }
+            public string BasePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public string Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        }
+    }
+}
diff --git a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj
index 4c42616118556046683119eb6920ce8aa99f4e83..9e414384e3b23426287b1f4c1c4da2c7f88bd0cf 100644
--- a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj
+++ b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj
@@ -5,18 +5,20 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Hosting.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables"  />
-    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions"  />
-    <Reference Include="Microsoft.Extensions.Configuration"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Physical"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Composite"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources"  />
+    <Compile Include="Microsoft.AspNetCore.Hosting.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
+    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions" />
+    <Reference Include="Microsoft.Extensions.Configuration" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Physical" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Composite" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources" />
   </ItemGroup>
 </Project>
diff --git a/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj b/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj
index 0e71bb69c995fdb2a1d6ef6aeea33a6736c3df49..38ec417cb468b38656c0aa35027a61c3c67bd242 100644
--- a/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj
+++ b/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;hosting</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs
index e63fa411fc4f71c7384d566d3639d9b7098367f2..5a9b578e988b64bb7f66f2ffb955ddf194574eea 100644
--- a/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs
+++ b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs
@@ -46,6 +46,11 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
         {
             var modifiedSub = NormalizePath(subpath);
 
+            if (BasePath == "/")
+            {
+                return InnerProvider.GetDirectoryContents(modifiedSub);
+            }
+
             if (StartsWithBasePath(modifiedSub, out var physicalPath))
             {
                 return InnerProvider.GetDirectoryContents(physicalPath.Value);
@@ -67,6 +72,11 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
         {
             var modifiedSub = NormalizePath(subpath);
 
+            if (BasePath == "/")
+            {
+                return InnerProvider.GetFileInfo(subpath);
+            }
+
             if (!StartsWithBasePath(modifiedSub, out var physicalPath))
             {
                 return new NotFoundFileInfo(subpath);
diff --git a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs
index 5fc2800e0f0d6c1b89587968564385e619a5ada4..a51a85fc0af7830c8404fcac2a5e34182799a158 100644
--- a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs
+++ b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs
@@ -117,6 +117,35 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
             Assert.True(provider.GetFileInfo("/_content/Static Web Assets.txt").Exists);
         }
 
+        [Fact]
+        public void GetDirectoryContents_HandlesEmptyBasePath()
+        {
+            // Arrange
+            var provider = new StaticWebAssetsFileProvider("/",
+                Path.Combine(AppContext.BaseDirectory, "testroot", "wwwroot"));
+
+            // Act
+            var directory = provider.GetDirectoryContents("/Static Web/");
+
+            // Assert
+            Assert.Collection(directory,
+                file =>
+                {
+                    Assert.Equal("Static Web.txt", file.Name);
+                });
+        }
+
+        [Fact]
+        public void StaticWebAssetsFileProviderWithEmptyBasePath_FindsFile()
+        {
+            // Arrange & Act
+            var provider = new StaticWebAssetsFileProvider("/",
+                Path.Combine(AppContext.BaseDirectory, "testroot", "wwwroot"));
+
+            // Assert
+            Assert.True(provider.GetFileInfo("/Static Web Assets.txt").Exists);
+        }
+
         [Fact]
         public void GetFileInfo_DoesNotMatch_IncompletePrefixSegments()
         {
diff --git a/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj b/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
index 35ec4bd0e754176d31259daf0e2bf7db97c1e8b5..048c495704bf25c3bb77eb5fefe54e5f46d5d08b 100644
--- a/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
+++ b/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Hosting.Server.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Features"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.Configuration.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj b/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
index 8f2f1b2bf74a3c5f24cf64929362572da7661194..4e6c350a519c83e873fc57de99f03d850938ae72 100644
--- a/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
+++ b/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;hosting</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.csproj b/src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.csproj
deleted file mode 100644
index 7dd0c1a2d2e579c04b80e9dede1d274ff05049c6..0000000000000000000000000000000000000000
--- a/src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.TestHost.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.Extensions.HostFactoryResolver.Sources"  />
-    <Reference Include="System.IO.Pipelines"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.netcoreapp.cs b/src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.netcoreapp.cs
deleted file mode 100644
index 6f94aa576c2c1e7b661ea9e12810ab29a0e4f9ad..0000000000000000000000000000000000000000
--- a/src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.netcoreapp.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.TestHost
-{
-    public partial class ClientHandler : System.Net.Http.HttpMessageHandler
-    {
-        internal ClientHandler() { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-    public static partial class HostBuilderTestServerExtensions
-    {
-        public static System.Net.Http.HttpClient GetTestClient(this Microsoft.Extensions.Hosting.IHost host) { throw null; }
-        public static Microsoft.AspNetCore.TestHost.TestServer GetTestServer(this Microsoft.Extensions.Hosting.IHost host) { throw null; }
-    }
-    public partial class HttpResetTestException : System.Exception
-    {
-        public HttpResetTestException(int errorCode) { }
-        public int ErrorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public partial class RequestBuilder
-    {
-        public RequestBuilder(Microsoft.AspNetCore.TestHost.TestServer server, string path) { }
-        public Microsoft.AspNetCore.TestHost.TestServer TestServer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.TestHost.RequestBuilder AddHeader(string name, string value) { throw null; }
-        public Microsoft.AspNetCore.TestHost.RequestBuilder And(System.Action<System.Net.Http.HttpRequestMessage> configure) { throw null; }
-        public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> GetAsync() { throw null; }
-        public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> PostAsync() { throw null; }
-        public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(string method) { throw null; }
-    }
-    public partial class TestServer : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable
-    {
-        public TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { }
-        public TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) { }
-        public TestServer(System.IServiceProvider services) { }
-        public TestServer(System.IServiceProvider services, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) { }
-        public bool AllowSynchronousIO { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Uri BaseAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.Hosting.IWebHost Host { get { throw null; } }
-        public bool PreserveExecutionContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.IServiceProvider Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public System.Net.Http.HttpClient CreateClient() { throw null; }
-        public System.Net.Http.HttpMessageHandler CreateHandler() { throw null; }
-        public Microsoft.AspNetCore.TestHost.RequestBuilder CreateRequest(string path) { throw null; }
-        public Microsoft.AspNetCore.TestHost.WebSocketClient CreateWebSocketClient() { throw null; }
-        public void Dispose() { }
-        System.Threading.Tasks.Task Microsoft.AspNetCore.Hosting.Server.IServer.StartAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application, System.Threading.CancellationToken cancellationToken) { throw null; }
-        System.Threading.Tasks.Task Microsoft.AspNetCore.Hosting.Server.IServer.StopAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.HttpContext> SendAsync(System.Action<Microsoft.AspNetCore.Http.HttpContext> configureContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public static partial class WebHostBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureTestContainer<TContainer>(this Microsoft.AspNetCore.Hosting.IWebHostBuilder webHostBuilder, System.Action<TContainer> servicesConfiguration) { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureTestServices(this Microsoft.AspNetCore.Hosting.IWebHostBuilder webHostBuilder, System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection> servicesConfiguration) { throw null; }
-        public static System.Net.Http.HttpClient GetTestClient(this Microsoft.AspNetCore.Hosting.IWebHost host) { throw null; }
-        public static Microsoft.AspNetCore.TestHost.TestServer GetTestServer(this Microsoft.AspNetCore.Hosting.IWebHost host) { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, string solutionRelativePath, string solutionName = "*.sln") { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, string solutionRelativePath, string applicationBasePath, string solutionName = "*.sln") { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseTestServer(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { throw null; }
-    }
-    public static partial class WebHostBuilderFactory
-    {
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateFromAssemblyEntryPoint(System.Reflection.Assembly assembly, string[] args) { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateFromTypesAssemblyEntryPoint<T>(string[] args) { throw null; }
-    }
-    public partial class WebSocketClient
-    {
-        internal WebSocketClient() { }
-        public System.Action<Microsoft.AspNetCore.Http.HttpRequest> ConfigureRequest { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IList<string> SubProtocols { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<System.Net.WebSockets.WebSocket> ConnectAsync(System.Uri uri, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-}
diff --git a/src/Hosting/TestHost/src/HttpContextBuilder.cs b/src/Hosting/TestHost/src/HttpContextBuilder.cs
index 2b9c72f53354c1dfa07725b07be04308c7e8ca36..a70dc7ac6aac575661720637fb80b5ad3ce79750 100644
--- a/src/Hosting/TestHost/src/HttpContextBuilder.cs
+++ b/src/Hosting/TestHost/src/HttpContextBuilder.cs
@@ -110,8 +110,10 @@ namespace Microsoft.AspNetCore.TestHost
                 try
                 {
                     await _application.ProcessRequestAsync(_testContext);
-                    await CompleteRequestAsync();
+
+                    // Matches Kestrel server: response is completed before request is drained
                     await CompleteResponseAsync();
+                    await CompleteRequestAsync();
                     _application.DisposeContext(_testContext, exception: null);
                 }
                 catch (Exception ex)
@@ -181,18 +183,9 @@ namespace Microsoft.AspNetCore.TestHost
                 await _requestPipe.Reader.CompleteAsync();
             }
 
-            if (_sendRequestStreamTask != null)
-            {
-                try
-                {
-                    // Ensure duplex request is either completely read or has been aborted.
-                    await _sendRequestStreamTask;
-                }
-                catch (OperationCanceledException)
-                {
-                    // Request was canceled, likely because it wasn't read before the request ended.
-                }
-            }
+            // Don't wait for request to drain. It could block indefinitely. In a real server
+            // we would wait for a timeout and then kill the socket.
+            // Potential future improvement: add logging that the request timed out
         }
 
         internal async Task CompleteResponseAsync()
diff --git a/src/Hosting/TestHost/test/TestClientTests.cs b/src/Hosting/TestHost/test/TestClientTests.cs
index 8c1ac8a2ceb762067e204c0b1b7278f6cb37b4b4..900b12c3bffcc72d29fe2cc906540985bfe2d892 100644
--- a/src/Hosting/TestHost/test/TestClientTests.cs
+++ b/src/Hosting/TestHost/test/TestClientTests.cs
@@ -433,6 +433,53 @@ namespace Microsoft.AspNetCore.TestHost
             requestStreamTcs.TrySetResult(null);
         }
 
+        [Fact]
+        public async Task ClientStreaming_ResponseCompletesWithoutResponseBodyWrite()
+        {
+            // Arrange
+            var requestStreamTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+
+            RequestDelegate appDelegate = ctx =>
+            {
+                ctx.Response.Headers["test-header"] = "true";
+                return Task.CompletedTask;
+            };
+
+            Stream requestStream = null;
+
+            var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
+            var server = new TestServer(builder);
+            var client = server.CreateClient();
+
+            var httpRequest = new HttpRequestMessage(HttpMethod.Post, "http://localhost:12345");
+            httpRequest.Version = new Version(2, 0);
+            httpRequest.Content = new PushContent(async stream =>
+            {
+                requestStream = stream;
+                await requestStreamTcs.Task;
+            });
+
+            // Act
+            var response = await client.SendAsync(httpRequest, HttpCompletionOption.ResponseHeadersRead).WithTimeout();
+
+            var responseContent = await response.Content.ReadAsStreamAsync().WithTimeout();
+
+            // Assert
+            response.EnsureSuccessStatusCode();
+            Assert.Equal("true", response.Headers.GetValues("test-header").Single());
+
+            // Read response
+            byte[] buffer = new byte[1024];
+            var length = await responseContent.ReadAsync(buffer).AsTask().WithTimeout();
+            Assert.Equal(0, length);
+
+            // Writing to request stream will fail because server is complete
+            await Assert.ThrowsAnyAsync<Exception>(() => requestStream.WriteAsync(buffer).AsTask());
+
+            // Unblock request
+            requestStreamTcs.TrySetResult(null);
+        }
+
         [Fact]
         public async Task ClientStreaming_ServerAbort()
         {
diff --git a/src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.csproj b/src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.csproj
deleted file mode 100644
index a74f17e0ff8b584cad8fc8b04887238609b064c2..0000000000000000000000000000000000000000
--- a/src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Hosting.WindowsServices.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="System.ServiceProcess.ServiceController"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.netcoreapp.cs b/src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.netcoreapp.cs
deleted file mode 100644
index 0bcdd5d17c1cbe1e12f633f75111bbeef526c668..0000000000000000000000000000000000000000
--- a/src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.netcoreapp.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Hosting.WindowsServices
-{
-    [System.ComponentModel.DesignerCategoryAttribute("Code")]
-    public partial class WebHostService : System.ServiceProcess.ServiceBase
-    {
-        public WebHostService(Microsoft.AspNetCore.Hosting.IWebHost host) { }
-        protected sealed override void OnStart(string[] args) { }
-        protected virtual void OnStarted() { }
-        protected virtual void OnStarting(string[] args) { }
-        protected sealed override void OnStop() { }
-        protected virtual void OnStopped() { }
-        protected virtual void OnStopping() { }
-    }
-    public static partial class WebHostWindowsServiceExtensions
-    {
-        public static void RunAsService(this Microsoft.AspNetCore.Hosting.IWebHost host) { }
-    }
-}
diff --git a/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.Manual.cs b/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3cb6aab37801837a7c7c19cf8f117693d0e4f0d5
--- /dev/null
+++ b/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.Manual.cs
@@ -0,0 +1,13 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Html
+{
+    public partial class HtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer
+    {
+        internal System.Collections.Generic.IList<object> Entries
+        {
+            [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; }
+        }
+    }
+}
diff --git a/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj b/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj
index 823d7d61ce9fe9d55feddfd427d85e493e378897..e27f9b24159b6627ba8b665d645afc5dd5d49ca8 100644
--- a/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj
+++ b/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj
@@ -5,6 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Html.Abstractions.netcoreapp.cs" />
-    
+    <Compile Include="Microsoft.AspNetCore.Html.Abstractions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
   </ItemGroup>
 </Project>
diff --git a/src/Html/Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj b/src/Html/Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj
index 133cae35db8fd6b4c738b4623f55a649db0f4722..0fce64a89d1476c93f7ac75db8b0fd93ba6bca8f 100644
--- a/src/Html/Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj
+++ b/src/Html/Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj
@@ -10,7 +10,7 @@ Microsoft.AspNetCore.Html.IHtmlContent</Description>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
 </Project>
diff --git a/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj b/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj
index 9103a387f3e795ab22ec9a64063285fe32ea4970..8c27edb28499c5390a0b642a2f958afc6de0f4c0 100644
--- a/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj
+++ b/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authentication.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj b/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj
index 854edd740f7ab00bad1001f89e75f0d85bb0077d..999e6741e57f80059428ac8ff3bfa8510c1b3b1f 100644
--- a/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj
+++ b/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj
@@ -6,7 +6,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;authentication;security</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj b/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj
index 149470accd55c5ab388c9a8e549f9d01f6e3b787..8b59d41a67328bf639a1c25b96c04ba8c6d5cbb3 100644
--- a/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj
+++ b/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authentication.Core.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj b/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj
index fd597d7b732cca64aa7c735f33cea6b3cce7e32a..f3bc6965ea0024f7df5cc39015c2273ca8f30eb0 100644
--- a/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj
+++ b/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;authentication;security</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Headers/ref/Microsoft.Net.Http.Headers.Manual.cs b/src/Http/Headers/ref/Microsoft.Net.Http.Headers.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..86a0a12079ae230e1d83a1f8e4d2fc5249fc12ab
--- /dev/null
+++ b/src/Http/Headers/ref/Microsoft.Net.Http.Headers.Manual.cs
@@ -0,0 +1,10 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.Net.Http.Headers
+{
+    public partial class SetCookieHeaderValue
+    {
+        internal static bool SuppressSameSiteNone;
+    }
+}
diff --git a/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj b/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj
index 85d1d1e5cdc4a25fa11218daf744542f9801e43a..5d53f319730f5634dc4a4f51c85cdd32036c204d 100644
--- a/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj
+++ b/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj
@@ -5,6 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.Net.Http.Headers.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Primitives"  />
+    <Compile Include="Microsoft.Net.Http.Headers.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.Extensions.Primitives" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj b/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj
index 96cadd39d535203137f2f84442aff8b2dd903b2c..d0c27e7ed75d26fe5fd1279d4062ca1fe3e58871 100644
--- a/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj
+++ b/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj
@@ -8,7 +8,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>http</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.Manual.cs b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0d0ec8f3a576fcb4a190f4f813d119bb6d95dd5d
--- /dev/null
+++ b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.Manual.cs
@@ -0,0 +1,101 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Builder
+{
+    public static partial class UseMiddlewareExtensions
+    {
+        internal const string InvokeAsyncMethodName = "InvokeAsync";
+        internal const string InvokeMethodName = "Invoke";
+    }
+}
+
+namespace Microsoft.AspNetCore.Http
+{
+    internal static partial class ParsingHelpers
+    {
+        public static void AppendHeaderJoined(Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, params string[] values) { }
+        public static void AppendHeaderUnmodified(Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, Microsoft.Extensions.Primitives.StringValues values) { }
+        public static Microsoft.Extensions.Primitives.StringValues GetHeader(Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key) { throw null; }
+        public static Microsoft.Extensions.Primitives.StringValues GetHeaderSplit(Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key) { throw null; }
+        public static Microsoft.Extensions.Primitives.StringValues GetHeaderUnmodified(Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key) { throw null; }
+        public static void SetHeaderJoined(Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        public static void SetHeaderUnmodified(Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, Microsoft.Extensions.Primitives.StringValues? values) { }
+    }
+}
+
+namespace Microsoft.AspNetCore.Http.Abstractions
+{
+    internal static partial class Resources
+    {
+        internal static string ArgumentCannotBeNullOrEmpty { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string Exception_InvokeDoesNotSupportRefOrOutParams { get { throw null; } }
+        internal static string Exception_InvokeMiddlewareNoService { get { throw null; } }
+        internal static string Exception_PathMustStartWithSlash { get { throw null; } }
+        internal static string Exception_PortMustBeGreaterThanZero { get { throw null; } }
+        internal static string Exception_UseMiddleMutlipleInvokes { get { throw null; } }
+        internal static string Exception_UseMiddlewareExplicitArgumentsNotSupported { get { throw null; } }
+        internal static string Exception_UseMiddlewareIServiceProviderNotAvailable { get { throw null; } }
+        internal static string Exception_UseMiddlewareNoInvokeMethod { get { throw null; } }
+        internal static string Exception_UseMiddlewareNoMiddlewareFactory { get { throw null; } }
+        internal static string Exception_UseMiddlewareNonTaskReturnType { get { throw null; } }
+        internal static string Exception_UseMiddlewareNoParameters { get { throw null; } }
+        internal static string Exception_UseMiddlewareUnableToCreateMiddleware { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string RouteValueDictionary_DuplicateKey { get { throw null; } }
+        internal static string RouteValueDictionary_DuplicatePropertyName { get { throw null; } }
+        internal static string FormatException_InvokeDoesNotSupportRefOrOutParams(object p0) { throw null; }
+        internal static string FormatException_InvokeMiddlewareNoService(object p0, object p1) { throw null; }
+        internal static string FormatException_PathMustStartWithSlash(object p0) { throw null; }
+        internal static string FormatException_UseMiddleMutlipleInvokes(object p0, object p1) { throw null; }
+        internal static string FormatException_UseMiddlewareExplicitArgumentsNotSupported(object p0) { throw null; }
+        internal static string FormatException_UseMiddlewareIServiceProviderNotAvailable(object p0) { throw null; }
+        internal static string FormatException_UseMiddlewareNoInvokeMethod(object p0, object p1, object p2) { throw null; }
+        internal static string FormatException_UseMiddlewareNoMiddlewareFactory(object p0) { throw null; }
+        internal static string FormatException_UseMiddlewareNonTaskReturnType(object p0, object p1, object p2) { throw null; }
+        internal static string FormatException_UseMiddlewareNoParameters(object p0, object p1, object p2) { throw null; }
+        internal static string FormatException_UseMiddlewareUnableToCreateMiddleware(object p0, object p1) { throw null; }
+        internal static string FormatRouteValueDictionary_DuplicateKey(object p0, object p1) { throw null; }
+        internal static string FormatRouteValueDictionary_DuplicatePropertyName(object p0, object p1, object p2, object p3) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Routing
+{
+    public partial class RouteValueDictionary : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IDictionary<string, object>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IReadOnlyDictionary<string, object>, System.Collections.IEnumerable
+    {
+        internal System.Collections.Generic.KeyValuePair<string, object>[] _arrayStorage;
+        internal Microsoft.AspNetCore.Routing.RouteValueDictionary.PropertyStorage _propertyStorage;
+        internal partial class PropertyStorage
+        {
+            public readonly Microsoft.Extensions.Internal.PropertyHelper[] Properties;
+            public readonly object Value;
+            public PropertyStorage(object value) { }
+        }
+    }
+}
+
+namespace Microsoft.Extensions.Internal
+{
+    internal partial class PropertyHelper
+    {
+        public PropertyHelper(System.Reflection.PropertyInfo property) { }
+        public virtual string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]protected set { } }
+        public System.Reflection.PropertyInfo Property { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<object, object> ValueGetter { get { throw null; } }
+        public System.Action<object, object> ValueSetter { get { throw null; } }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetProperties(System.Reflection.TypeInfo typeInfo) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetProperties(System.Type type) { throw null; }
+        protected static Microsoft.Extensions.Internal.PropertyHelper[] GetProperties(System.Type type, System.Func<System.Reflection.PropertyInfo, Microsoft.Extensions.Internal.PropertyHelper> createPropertyHelper, System.Collections.Concurrent.ConcurrentDictionary<System.Type, Microsoft.Extensions.Internal.PropertyHelper[]> cache) { throw null; }
+        public object GetValue(object instance) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetVisibleProperties(System.Reflection.TypeInfo typeInfo) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetVisibleProperties(System.Type type) { throw null; }
+        protected static Microsoft.Extensions.Internal.PropertyHelper[] GetVisibleProperties(System.Type type, System.Func<System.Reflection.PropertyInfo, Microsoft.Extensions.Internal.PropertyHelper> createPropertyHelper, System.Collections.Concurrent.ConcurrentDictionary<System.Type, Microsoft.Extensions.Internal.PropertyHelper[]> allPropertiesCache, System.Collections.Concurrent.ConcurrentDictionary<System.Type, Microsoft.Extensions.Internal.PropertyHelper[]> visiblePropertiesCache) { throw null; }
+        public static System.Func<object, object> MakeFastPropertyGetter(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+        public static System.Action<object, object> MakeFastPropertySetter(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+        public static System.Func<object, object> MakeNullSafeFastPropertyGetter(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+        public static System.Collections.Generic.IDictionary<string, object> ObjectToDictionary(object value) { throw null; }
+        public void SetValue(object instance, object value) { }
+    }
+}
diff --git a/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj
index a3f0a4268f71925da565f54c43b2b8e407918d5c..76dd55bdb91ba83abfceeb4ef0ffd1b106070acf 100644
--- a/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj
+++ b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj
@@ -5,8 +5,11 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Http.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Features"  />
-    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources"  />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
+    <Compile Include="Microsoft.AspNetCore.Http.Abstractions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.Http.Microbenchmarks" Key="" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs b/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs
index 7d4532c4c818a3b3d7dbbc21194ebd3839f04723..c94118a82edc51f58f1398ea1943076b94a46f15 100644
--- a/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs
+++ b/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs
@@ -133,7 +133,8 @@ namespace Microsoft.AspNetCore.Http
             // Therefore, we check encodedLength - totalBytesUsed too.
             while (!completed || encodedLength - totalBytesUsed != 0)
             {
-                encoder.Convert(source, destination, flush: source.Length == 0, out var charsUsed, out var bytesUsed, out completed);
+                // 'text' is a complete string, the converter should always flush its buffer.
+                encoder.Convert(source, destination, flush: true, out var charsUsed, out var bytesUsed, out completed);
                 totalBytesUsed += bytesUsed;
 
                 writer.Advance(bytesUsed);
diff --git a/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj b/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj
index c5ab085eef0abc7301797e4c0af3e66791798a93..adea0a30598822dd8e5481e4a4005d91ef5ddbd7 100644
--- a/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj
+++ b/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj
@@ -13,7 +13,7 @@ Microsoft.AspNetCore.Http.HttpResponse</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj b/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj
index a19e1c7aa841103b48c54d18ee1028bfc7f8057e..4164c67b3a45b44578ce349dec9ab5b121a83f4e 100644
--- a/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj
+++ b/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Http.Extensions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj b/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj
index a67f1e5fe2de13f6c153498cb579837cbfcedcf5..73ba2b8a9ce4b8248daa03a6e18184a05dac0c50 100644
--- a/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj
+++ b/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj b/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj
index ca820965561e09fb01f8301e2164357e449a573f..f2b88f0ca1ff0d357715ec2f47cbe5ef4d233df2 100644
--- a/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj
+++ b/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj
@@ -5,12 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Http.Features.netstandard2.0.cs" />
-    <Reference Include="Microsoft.Extensions.Primitives"  />
-    <Reference Include="System.IO.Pipelines"  />
+    <Reference Include="Microsoft.Extensions.Primitives" />
+    <Reference Include="System.IO.Pipelines" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Http.Features.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Primitives"  />
-    <Reference Include="System.IO.Pipelines"  />
+    <Reference Include="Microsoft.Extensions.Primitives" />
+    <Reference Include="System.IO.Pipelines" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj b/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj
index 74dc703d749b9c8439640006c3824f106c4a7e2b..85f9fdc84731c988b91e4913348d9460e3d1d3df 100644
--- a/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj
+++ b/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj
@@ -8,7 +8,6 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Http/ref/Microsoft.AspNetCore.Http.Manual.cs b/src/Http/Http/ref/Microsoft.AspNetCore.Http.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..67edcfae2a53ba505d45d9cbf93555274e83b217
--- /dev/null
+++ b/src/Http/Http/ref/Microsoft.AspNetCore.Http.Manual.cs
@@ -0,0 +1,62 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Http
+{
+    internal partial class ItemsDictionary : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object, object>>, System.Collections.Generic.IDictionary<object, object>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object, object>>, System.Collections.IEnumerable
+    {
+        public ItemsDictionary() { }
+        public ItemsDictionary(System.Collections.Generic.IDictionary<object, object> items) { }
+        public System.Collections.Generic.IDictionary<object, object> Items { get { throw null; } }
+        int System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.Count { get { throw null; } }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.IsReadOnly { get { throw null; } }
+        object System.Collections.Generic.IDictionary<System.Object,System.Object>.this[object key] { get { throw null; } set { } }
+        System.Collections.Generic.ICollection<object> System.Collections.Generic.IDictionary<System.Object,System.Object>.Keys { get { throw null; } }
+        System.Collections.Generic.ICollection<object> System.Collections.Generic.IDictionary<System.Object,System.Object>.Values { get { throw null; } }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.Add(System.Collections.Generic.KeyValuePair<object, object> item) { }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.Clear() { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.Contains(System.Collections.Generic.KeyValuePair<object, object> item) { throw null; }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.CopyTo(System.Collections.Generic.KeyValuePair<object, object>[] array, int arrayIndex) { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.Remove(System.Collections.Generic.KeyValuePair<object, object> item) { throw null; }
+        void System.Collections.Generic.IDictionary<System.Object,System.Object>.Add(object key, object value) { }
+        bool System.Collections.Generic.IDictionary<System.Object,System.Object>.ContainsKey(object key) { throw null; }
+        bool System.Collections.Generic.IDictionary<System.Object,System.Object>.Remove(object key) { throw null; }
+        bool System.Collections.Generic.IDictionary<System.Object,System.Object>.TryGetValue(object key, out object value) { throw null; }
+        System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object, object>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Object,System.Object>>.GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+    }
+    internal partial class RequestCookieCollection : Microsoft.AspNetCore.Http.IRequestCookieCollection, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, string>>, System.Collections.IEnumerable
+    {
+        public static readonly Microsoft.AspNetCore.Http.RequestCookieCollection Empty;
+        public RequestCookieCollection() { }
+        public RequestCookieCollection(System.Collections.Generic.Dictionary<string, string> store) { }
+        public RequestCookieCollection(int capacity) { }
+        public int Count { get { throw null; } }
+        public string this[string key] { get { throw null; } }
+        public System.Collections.Generic.ICollection<string> Keys { get { throw null; } }
+        public bool ContainsKey(string key) { throw null; }
+        public Microsoft.AspNetCore.Http.RequestCookieCollection.Enumerator GetEnumerator() { throw null; }
+        public static Microsoft.AspNetCore.Http.RequestCookieCollection Parse(System.Collections.Generic.IList<string> values) { throw null; }
+        System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, string>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.String>>.GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        public bool TryGetValue(string key, out string value) { throw null; }
+        public partial struct Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, string>>, System.Collections.IEnumerator, System.IDisposable
+        {
+            internal Enumerator(System.Collections.Generic.Dictionary<string, string>.Enumerator dictionaryEnumerator) { throw null; }
+            public System.Collections.Generic.KeyValuePair<string, string> Current { get { throw null; } }
+            object System.Collections.IEnumerator.Current { get { throw null; } }
+            public void Dispose() { }
+            public bool MoveNext() { throw null; }
+            public void Reset() { }
+        }
+    }
+
+    internal partial class ResponseCookies : Microsoft.AspNetCore.Http.IResponseCookies
+    {
+        public ResponseCookies(Microsoft.AspNetCore.Http.IHeaderDictionary headers, Microsoft.Extensions.ObjectPool.ObjectPool<System.Text.StringBuilder> builderPool) { }
+        public void Append(string key, string value) { }
+        public void Append(string key, string value, Microsoft.AspNetCore.Http.CookieOptions options) { }
+        public void Delete(string key) { }
+        public void Delete(string key, Microsoft.AspNetCore.Http.CookieOptions options) { }
+    }
+}
diff --git a/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj b/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj
index fc7e44c40a1a9eefee54d2fc2feb58b0c81784ee..5f804905ea0395aa683e527781302f50df12deed 100644
--- a/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj
+++ b/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj
@@ -5,10 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Http.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.WebUtilities"  />
-    <Reference Include="Microsoft.Extensions.ObjectPool"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
+    <Compile Include="Microsoft.AspNetCore.Http.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.WebUtilities" />
+    <Reference Include="Microsoft.Extensions.ObjectPool" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj b/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj
index feebf095785852a47ab28de36f3bca9b0198d5b9..a7fb56774bd1c24fa608fd65bcea4722961d86f7 100644
--- a/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj
+++ b/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj
@@ -8,7 +8,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj b/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj
index 5bd3e643f1ed194c09d00476d8fb34d8068659c6..2661d12430a2d05bfcbd495cfe2f4fab33be9846 100644
--- a/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj
+++ b/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj
@@ -1,10 +1,12 @@
 <!-- This file is automatically generated. -->
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
+    <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Metadata.netstandard2.0.cs" />
-    
+  </ItemGroup>
+<ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
+    <Compile Include="Microsoft.AspNetCore.Metadata.netcoreapp.cs" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.netcoreapp.cs b/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.netcoreapp.cs
new file mode 100644
index 0000000000000000000000000000000000000000..effddb3203aa94cd3a083f9300f4580f4ea9e6ba
--- /dev/null
+++ b/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.netcoreapp.cs
@@ -0,0 +1,15 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Authorization
+{
+    public partial interface IAllowAnonymous
+    {
+    }
+    public partial interface IAuthorizeData
+    {
+        string AuthenticationSchemes { get; set; }
+        string Policy { get; set; }
+        string Roles { get; set; }
+    }
+}
diff --git a/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj b/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj
index 10a3baad25ee0224e8e1d607e232262c5d1f6e6f..7869ec0eb52be1129ccfe5d8b5b0f63136ced6c3 100644
--- a/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj
+++ b/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj
@@ -2,9 +2,8 @@
 
   <PropertyGroup>
     <Description>ASP.NET Core metadata.</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
+    <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
diff --git a/src/Http/Owin/ref/Microsoft.AspNetCore.Owin.csproj b/src/Http/Owin/ref/Microsoft.AspNetCore.Owin.csproj
deleted file mode 100644
index 4c74b7422b5d767c590bedce5a59589ac06268e8..0000000000000000000000000000000000000000
--- a/src/Http/Owin/ref/Microsoft.AspNetCore.Owin.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Owin.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Http/Owin/ref/Microsoft.AspNetCore.Owin.netcoreapp.cs b/src/Http/Owin/ref/Microsoft.AspNetCore.Owin.netcoreapp.cs
deleted file mode 100644
index 7a3f19b969055aef4245d532b8dd29cd5247e246..0000000000000000000000000000000000000000
--- a/src/Http/Owin/ref/Microsoft.AspNetCore.Owin.netcoreapp.cs
+++ /dev/null
@@ -1,155 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Builder
-{
-    public static partial class OwinExtensions
-    {
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseBuilder(this System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>> app) { throw null; }
-        public static System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>> UseBuilder(this System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>> app, System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> pipeline) { throw null; }
-        public static System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>> UseBuilder(this System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>> app, System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> pipeline, System.IServiceProvider serviceProvider) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseBuilder(this System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>> app, System.IServiceProvider serviceProvider) { throw null; }
-        public static System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>> UseOwin(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseOwin(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, System.Action<System.Action<System.Func<System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>, System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>>>> pipeline) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Owin
-{
-    public partial interface IOwinEnvironmentFeature
-    {
-        System.Collections.Generic.IDictionary<string, object> Environment { get; set; }
-    }
-    public partial class OwinEnvironment : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IDictionary<string, object>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.IEnumerable
-    {
-        public OwinEnvironment(Microsoft.AspNetCore.Http.HttpContext context) { }
-        public System.Collections.Generic.IDictionary<string, Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap> FeatureMaps { get { throw null; } }
-        int System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.Count { get { throw null; } }
-        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.IsReadOnly { get { throw null; } }
-        object System.Collections.Generic.IDictionary<System.String,System.Object>.this[string key] { get { throw null; } set { } }
-        System.Collections.Generic.ICollection<string> System.Collections.Generic.IDictionary<System.String,System.Object>.Keys { get { throw null; } }
-        System.Collections.Generic.ICollection<object> System.Collections.Generic.IDictionary<System.String,System.Object>.Values { get { throw null; } }
-        public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, object>> GetEnumerator() { throw null; }
-        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.Add(System.Collections.Generic.KeyValuePair<string, object> item) { }
-        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.Clear() { }
-        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.Contains(System.Collections.Generic.KeyValuePair<string, object> item) { throw null; }
-        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.CopyTo(System.Collections.Generic.KeyValuePair<string, object>[] array, int arrayIndex) { }
-        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.Remove(System.Collections.Generic.KeyValuePair<string, object> item) { throw null; }
-        void System.Collections.Generic.IDictionary<System.String,System.Object>.Add(string key, object value) { }
-        bool System.Collections.Generic.IDictionary<System.String,System.Object>.ContainsKey(string key) { throw null; }
-        bool System.Collections.Generic.IDictionary<System.String,System.Object>.Remove(string key) { throw null; }
-        bool System.Collections.Generic.IDictionary<System.String,System.Object>.TryGetValue(string key, out object value) { throw null; }
-        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
-        public partial class FeatureMap
-        {
-            public FeatureMap(System.Type featureInterface, System.Func<object, object> getter) { }
-            public FeatureMap(System.Type featureInterface, System.Func<object, object> getter, System.Action<object, object> setter) { }
-            public FeatureMap(System.Type featureInterface, System.Func<object, object> getter, System.Func<object> defaultFactory) { }
-            public FeatureMap(System.Type featureInterface, System.Func<object, object> getter, System.Func<object> defaultFactory, System.Action<object, object> setter) { }
-            public FeatureMap(System.Type featureInterface, System.Func<object, object> getter, System.Func<object> defaultFactory, System.Action<object, object> setter, System.Func<object> featureFactory) { }
-            public bool CanSet { get { throw null; } }
-        }
-        public partial class FeatureMap<TFeature> : Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap
-        {
-            public FeatureMap(System.Func<TFeature, object> getter) : base (default(System.Type), default(System.Func<object, object>)) { }
-            public FeatureMap(System.Func<TFeature, object> getter, System.Action<TFeature, object> setter) : base (default(System.Type), default(System.Func<object, object>)) { }
-            public FeatureMap(System.Func<TFeature, object> getter, System.Func<object> defaultFactory) : base (default(System.Type), default(System.Func<object, object>)) { }
-            public FeatureMap(System.Func<TFeature, object> getter, System.Func<object> defaultFactory, System.Action<TFeature, object> setter) : base (default(System.Type), default(System.Func<object, object>)) { }
-            public FeatureMap(System.Func<TFeature, object> getter, System.Func<object> defaultFactory, System.Action<TFeature, object> setter, System.Func<TFeature> featureFactory) : base (default(System.Type), default(System.Func<object, object>)) { }
-        }
-    }
-    public partial class OwinEnvironmentFeature : Microsoft.AspNetCore.Owin.IOwinEnvironmentFeature
-    {
-        public OwinEnvironmentFeature() { }
-        public System.Collections.Generic.IDictionary<string, object> Environment { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class OwinFeatureCollection : Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature, Microsoft.AspNetCore.Http.Features.IFeatureCollection, Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature, Microsoft.AspNetCore.Http.Features.IHttpRequestFeature, Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature, Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature, Microsoft.AspNetCore.Http.Features.IHttpResponseFeature, Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature, Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature, Microsoft.AspNetCore.Owin.IOwinEnvironmentFeature, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Type, object>>, System.Collections.IEnumerable
-    {
-        public OwinFeatureCollection(System.Collections.Generic.IDictionary<string, object> environment) { }
-        public System.Collections.Generic.IDictionary<string, object> Environment { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool IsReadOnly { get { throw null; } }
-        public object this[System.Type key] { get { throw null; } set { } }
-        System.Security.Claims.ClaimsPrincipal Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature.User { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.ConnectionId { get { throw null; } set { } }
-        System.Net.IPAddress Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalIpAddress { get { throw null; } set { } }
-        int Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalPort { get { throw null; } set { } }
-        System.Net.IPAddress Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemoteIpAddress { get { throw null; } set { } }
-        int Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemotePort { get { throw null; } set { } }
-        System.IO.Stream Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Body { get { throw null; } set { } }
-        Microsoft.AspNetCore.Http.IHeaderDictionary Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Headers { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Method { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Path { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.PathBase { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Protocol { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.QueryString { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.RawTarget { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Scheme { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature.TraceIdentifier { get { throw null; } set { } }
-        System.Threading.CancellationToken Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature.RequestAborted { get { throw null; } set { } }
-        System.IO.Stream Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.Stream { get { throw null; } }
-        System.IO.Pipelines.PipeWriter Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.Writer { get { throw null; } }
-        System.IO.Stream Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Body { get { throw null; } set { } }
-        bool Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.HasStarted { get { throw null; } }
-        Microsoft.AspNetCore.Http.IHeaderDictionary Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Headers { get { throw null; } set { } }
-        string Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.ReasonPhrase { get { throw null; } set { } }
-        int Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.StatusCode { get { throw null; } set { } }
-        bool Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature.IsWebSocketRequest { get { throw null; } }
-        System.Security.Cryptography.X509Certificates.X509Certificate2 Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature.ClientCertificate { get { throw null; } set { } }
-        public int Revision { get { throw null; } }
-        public bool SupportsWebSockets { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public void Dispose() { }
-        public object Get(System.Type key) { throw null; }
-        public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<System.Type, object>> GetEnumerator() { throw null; }
-        public TFeature Get<TFeature>() { throw null; }
-        void Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature.Abort() { }
-        System.Threading.Tasks.Task Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.CompleteAsync() { throw null; }
-        void Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.DisableBuffering() { }
-        System.Threading.Tasks.Task Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.SendFileAsync(string path, long offset, long? length, System.Threading.CancellationToken cancellation) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        System.Threading.Tasks.Task Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.StartAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
-        void Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.OnCompleted(System.Func<object, System.Threading.Tasks.Task> callback, object state) { }
-        void Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.OnStarting(System.Func<object, System.Threading.Tasks.Task> callback, object state) { }
-        System.Threading.Tasks.Task<System.Net.WebSockets.WebSocket> Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature.AcceptAsync(Microsoft.AspNetCore.Http.WebSocketAcceptContext context) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        System.Threading.Tasks.Task<System.Security.Cryptography.X509Certificates.X509Certificate2> Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature.GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
-        public void Set(System.Type key, object value) { }
-        public void Set<TFeature>(TFeature instance) { }
-        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
-    }
-    public partial class OwinWebSocketAcceptAdapter
-    {
-        internal OwinWebSocketAcceptAdapter() { }
-        public static System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task> AdaptWebSockets(System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task> next) { throw null; }
-    }
-    public partial class OwinWebSocketAcceptContext : Microsoft.AspNetCore.Http.WebSocketAcceptContext
-    {
-        public OwinWebSocketAcceptContext() { }
-        public OwinWebSocketAcceptContext(System.Collections.Generic.IDictionary<string, object> options) { }
-        public System.Collections.Generic.IDictionary<string, object> Options { get { throw null; } }
-        public override string SubProtocol { get { throw null; } set { } }
-    }
-    public partial class OwinWebSocketAdapter : System.Net.WebSockets.WebSocket
-    {
-        public OwinWebSocketAdapter(System.Collections.Generic.IDictionary<string, object> websocketContext, string subProtocol) { }
-        public override System.Net.WebSockets.WebSocketCloseStatus? CloseStatus { get { throw null; } }
-        public override string CloseStatusDescription { get { throw null; } }
-        public override System.Net.WebSockets.WebSocketState State { get { throw null; } }
-        public override string SubProtocol { get { throw null; } }
-        public override void Abort() { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task CloseAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string statusDescription, System.Threading.CancellationToken cancellationToken) { throw null; }
-        public override System.Threading.Tasks.Task CloseOutputAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string statusDescription, System.Threading.CancellationToken cancellationToken) { throw null; }
-        public override void Dispose() { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Net.WebSockets.WebSocketReceiveResult> ReceiveAsync(System.ArraySegment<byte> buffer, System.Threading.CancellationToken cancellationToken) { throw null; }
-        public override System.Threading.Tasks.Task SendAsync(System.ArraySegment<byte> buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-    public partial class WebSocketAcceptAdapter
-    {
-        public WebSocketAcceptAdapter(System.Collections.Generic.IDictionary<string, object> env, System.Func<Microsoft.AspNetCore.Http.WebSocketAcceptContext, System.Threading.Tasks.Task<System.Net.WebSockets.WebSocket>> accept) { }
-        public static System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task> AdaptWebSockets(System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task> next) { throw null; }
-    }
-    public partial class WebSocketAdapter
-    {
-        internal WebSocketAdapter() { }
-    }
-}
diff --git a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.Manual.cs b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.Manual.cs
deleted file mode 100644
index 9a0e3418cfa05ced5ded35eea4b0f6fe84b5db69..0000000000000000000000000000000000000000
--- a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.Manual.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System.Runtime.CompilerServices;
-using Microsoft.AspNetCore.Routing;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-
-[assembly: TypeForwardedTo(typeof(IEndpointFeature))]
-[assembly: TypeForwardedTo(typeof(IRouteValuesFeature))]
-[assembly: TypeForwardedTo(typeof(Endpoint))]
-[assembly: TypeForwardedTo(typeof(EndpointMetadataCollection))]
-[assembly: TypeForwardedTo(typeof(RouteValueDictionary))]
diff --git a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj
index 1d5d2fbc9c4b8385ae5a5270c4d0b4254c305a1a..f4cfdfddb8917a48f37aba0294f480f810ed93f7 100644
--- a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj
+++ b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Routing.Abstractions.netcoreapp.cs" />
-    <Compile Include="Microsoft.AspNetCore.Routing.Abstractions.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj b/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj
index 4240032c6ffa53698d9685cc3b809646379bba49..c500cb5ba7d6244532215b3707f4cdb4269a1cf5 100644
--- a/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj
+++ b/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj
@@ -10,7 +10,7 @@ Microsoft.AspNetCore.Routing.RouteData</Description>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;routing</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.Manual.cs b/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3ce07a786140fcfc35ebaa50f1e339465308935b
--- /dev/null
+++ b/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.Manual.cs
@@ -0,0 +1,575 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Routing.Matching
+{
+
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct Candidate
+    {
+        public readonly Microsoft.AspNetCore.Http.Endpoint Endpoint;
+        public readonly CandidateFlags Flags;
+        public readonly System.Collections.Generic.KeyValuePair<string, object>[] Slots;
+        public readonly (string parameterName, int segmentIndex, int slotIndex)[] Captures;
+        public readonly (string parameterName, int segmentIndex, int slotIndex) CatchAll;
+        public readonly (Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment pathSegment, int segmentIndex)[] ComplexSegments;
+        public readonly System.Collections.Generic.KeyValuePair<string, IRouteConstraint>[] Constraints;
+        public readonly int Score;
+        public Candidate(Microsoft.AspNetCore.Http.Endpoint endpoint) { throw null; }
+        public Candidate(Microsoft.AspNetCore.Http.Endpoint endpoint, int score, System.Collections.Generic.KeyValuePair<string, object>[] slots, System.ValueTuple<string, int, int>[] captures, in (string parameterName, int segmentIndex, int slotIndex) catchAll, System.ValueTuple<Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment, int>[] complexSegments, System.Collections.Generic.KeyValuePair<string, Microsoft.AspNetCore.Routing.IRouteConstraint>[] constraints) { throw null; }
+        [System.FlagsAttribute]
+        public enum CandidateFlags
+        {
+            None = 0,
+            HasDefaults = 1,
+            HasCaptures = 2,
+            HasCatchAll = 4,
+            HasSlots = 7,
+            HasComplexSegments = 8,
+            HasConstraints = 16,
+        }
+    }
+
+    internal partial class ILEmitTrieJumpTable : Microsoft.AspNetCore.Routing.Matching.JumpTable
+    {
+        internal System.Func<string, Microsoft.AspNetCore.Routing.Matching.PathSegment, int> _getDestination;
+        public ILEmitTrieJumpTable(int defaultDestination, int exitDestination, System.ValueTuple<string, int>[] entries, bool? vectorize, Microsoft.AspNetCore.Routing.Matching.JumpTable fallback) { }
+        public override int GetDestination(string path, Microsoft.AspNetCore.Routing.Matching.PathSegment segment) { throw null; }
+        internal void InitializeILDelegate() { }
+        internal System.Threading.Tasks.Task InitializeILDelegateAsync() { throw null; }
+    }
+
+    internal partial class LinearSearchJumpTable : Microsoft.AspNetCore.Routing.Matching.JumpTable
+    {
+        public LinearSearchJumpTable(int defaultDestination, int exitDestination, System.ValueTuple<string, int>[] entries) { }
+        public override string DebuggerToString() { throw null; }
+        public override int GetDestination(string path, Microsoft.AspNetCore.Routing.Matching.PathSegment segment) { throw null; }
+    }
+
+    internal partial class SingleEntryJumpTable : Microsoft.AspNetCore.Routing.Matching.JumpTable
+    {
+        public SingleEntryJumpTable(int defaultDestination, int exitDestination, string text, int destination) { }
+        public override string DebuggerToString() { throw null; }
+        public override int GetDestination(string path, Microsoft.AspNetCore.Routing.Matching.PathSegment segment) { throw null; }
+    }
+
+    internal partial class AmbiguousMatchException : System.Exception
+    {
+        protected AmbiguousMatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
+        public AmbiguousMatchException(string message) { }
+    }
+
+    public sealed partial class EndpointMetadataComparer : System.Collections.Generic.IComparer<Microsoft.AspNetCore.Http.Endpoint>
+    {
+        internal EndpointMetadataComparer(System.IServiceProvider services) { }
+    }
+
+    internal static partial class ILEmitTrieFactory
+    {
+        public const int NotAscii = -2147483648;
+        public static System.Func<string, int, int, int> Create(int defaultDestination, int exitDestination, System.ValueTuple<string, int>[] entries, bool? vectorize) { throw null; }
+        public static void EmitReturnDestination(System.Reflection.Emit.ILGenerator il, System.ValueTuple<string, int>[] entries) { }
+        internal static bool ShouldVectorize(System.ValueTuple<string, int>[] entries) { throw null; }
+    }
+
+    internal partial class SingleEntryAsciiJumpTable : Microsoft.AspNetCore.Routing.Matching.JumpTable
+    {
+        public SingleEntryAsciiJumpTable(int defaultDestination, int exitDestination, string text, int destination) { }
+        public override string DebuggerToString() { throw null; }
+        public override int GetDestination(string path, Microsoft.AspNetCore.Routing.Matching.PathSegment segment) { throw null; }
+    }
+
+    internal partial class ZeroEntryJumpTable : Microsoft.AspNetCore.Routing.Matching.JumpTable
+    {
+        public ZeroEntryJumpTable(int defaultDestination, int exitDestination) { }
+        public override string DebuggerToString() { throw null; }
+        public override int GetDestination(string path, Microsoft.AspNetCore.Routing.Matching.PathSegment segment) { throw null; }
+    }
+
+    public sealed partial class HttpMethodMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy
+    {
+        internal static readonly string AccessControlRequestMethod;
+        internal const string AnyMethod = "*";
+        internal const string Http405EndpointDisplayName = "405 HTTP Method Not Supported";
+        internal static readonly string OriginHeader;
+        internal static readonly string PreflightHttpMethod;
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal readonly partial struct EdgeKey : System.IComparable, System.IComparable<Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.EdgeKey>, System.IEquatable<Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.EdgeKey>
+        {
+            public readonly bool IsCorsPreflightRequest;
+            public readonly string HttpMethod;
+            public EdgeKey(string httpMethod, bool isCorsPreflightRequest) { throw null; }
+            public int CompareTo(Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.EdgeKey other) { throw null; }
+            public int CompareTo(object obj) { throw null; }
+            public bool Equals(Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.EdgeKey other) { throw null; }
+            public override bool Equals(object obj) { throw null; }
+            public override int GetHashCode() { throw null; }
+            public override string ToString() { throw null; }
+        }
+    }
+
+    internal static partial class Ascii
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static bool AsciiIgnoreCaseEquals(char charA, char charB) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static bool AsciiIgnoreCaseEquals(System.ReadOnlySpan<char> a, System.ReadOnlySpan<char> b, int length) { throw null; }
+        public static bool IsAscii(string text) { throw null; }
+    }
+
+    public sealed partial class CandidateSet
+    {
+        internal Microsoft.AspNetCore.Routing.Matching.CandidateState[] Candidates;
+        internal CandidateSet(Microsoft.AspNetCore.Routing.Matching.CandidateState[] candidates) { }
+        internal CandidateSet(Microsoft.AspNetCore.Routing.Matching.Candidate[] candidates) { }
+        internal static bool IsValidCandidate(ref Microsoft.AspNetCore.Routing.Matching.CandidateState candidate) { throw null; }
+        internal static void SetValidity(ref Microsoft.AspNetCore.Routing.Matching.CandidateState candidate, bool value) { }
+    }
+
+    public partial struct CandidateState
+    {
+        public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+    }
+
+    internal sealed partial class DataSourceDependentMatcher : Microsoft.AspNetCore.Routing.Matching.Matcher
+    {
+        public DataSourceDependentMatcher(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource, Microsoft.AspNetCore.Routing.Matching.DataSourceDependentMatcher.Lifetime lifetime, System.Func<Microsoft.AspNetCore.Routing.Matching.MatcherBuilder> matcherBuilderFactory) { }
+        internal Microsoft.AspNetCore.Routing.Matching.Matcher CurrentMatcher { get { throw null; } }
+        public override System.Threading.Tasks.Task MatchAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public sealed partial class Lifetime : System.IDisposable
+        {
+            public Lifetime() { }
+            public Microsoft.AspNetCore.Routing.DataSourceDependentCache<Microsoft.AspNetCore.Routing.Matching.Matcher> Cache { get { throw null; } set { } }
+            public void Dispose() { }
+        }
+    }
+
+    internal sealed partial class DefaultEndpointSelector : Microsoft.AspNetCore.Routing.Matching.EndpointSelector
+    {
+        public DefaultEndpointSelector() { }
+        internal static void Select(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateState[] candidateState) { }
+        public override System.Threading.Tasks.Task SelectAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidateSet) { throw null; }
+    }
+
+    internal sealed partial class DfaMatcher : Microsoft.AspNetCore.Routing.Matching.Matcher
+    {
+        public DfaMatcher(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Routing.Matching.DfaMatcher> logger, Microsoft.AspNetCore.Routing.Matching.EndpointSelector selector, Microsoft.AspNetCore.Routing.Matching.DfaState[] states, int maxSegmentCount) { }
+        internal (Microsoft.AspNetCore.Routing.Matching.Candidate[] candidates, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy[] policies) FindCandidateSet(Microsoft.AspNetCore.Http.HttpContext httpContext, string path, System.ReadOnlySpan<Microsoft.AspNetCore.Routing.Matching.PathSegment> segments) { throw null; }
+        public sealed override System.Threading.Tasks.Task MatchAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        internal static partial class EventIds
+        {
+            public static readonly Microsoft.Extensions.Logging.EventId CandidateNotValid;
+            public static readonly Microsoft.Extensions.Logging.EventId CandidateRejectedByComplexSegment;
+            public static readonly Microsoft.Extensions.Logging.EventId CandidateRejectedByConstraint;
+            public static readonly Microsoft.Extensions.Logging.EventId CandidatesFound;
+            public static readonly Microsoft.Extensions.Logging.EventId CandidatesNotFound;
+            public static readonly Microsoft.Extensions.Logging.EventId CandidateValid;
+        }
+    }
+
+    internal partial class DictionaryJumpTable : Microsoft.AspNetCore.Routing.Matching.JumpTable
+    {
+        public DictionaryJumpTable(int defaultDestination, int exitDestination, System.ValueTuple<string, int>[] entries) { }
+        public override string DebuggerToString() { throw null; }
+        public override int GetDestination(string path, Microsoft.AspNetCore.Routing.Matching.PathSegment segment) { throw null; }
+    }
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerToString(),nq}")]
+    internal partial class DfaNode
+    {
+        public DfaNode() { }
+        public Microsoft.AspNetCore.Routing.Matching.DfaNode CatchAll { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Label { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.Dictionary<string, Microsoft.AspNetCore.Routing.Matching.DfaNode> Literals { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.List<Microsoft.AspNetCore.Http.Endpoint> Matches { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy NodeBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Routing.Matching.DfaNode Parameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int PathDepth { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.Dictionary<object, Microsoft.AspNetCore.Routing.Matching.DfaNode> PolicyEdges { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void AddLiteral(string literal, Microsoft.AspNetCore.Routing.Matching.DfaNode node) { }
+        public void AddMatch(Microsoft.AspNetCore.Http.Endpoint endpoint) { }
+        public void AddMatches(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Http.Endpoint> endpoints) { }
+        public void AddPolicyEdge(object state, Microsoft.AspNetCore.Routing.Matching.DfaNode node) { }
+        public void Visit(System.Action<Microsoft.AspNetCore.Routing.Matching.DfaNode> visitor) { }
+    }
+
+    internal static partial class FastPathTokenizer
+    {
+        public static int Tokenize(string path, System.Span<Microsoft.AspNetCore.Routing.Matching.PathSegment> segments) { throw null; }
+    }
+
+    internal partial class DfaMatcherBuilder : Microsoft.AspNetCore.Routing.Matching.MatcherBuilder
+    {
+        public DfaMatcherBuilder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Routing.ParameterPolicyFactory parameterPolicyFactory, Microsoft.AspNetCore.Routing.Matching.EndpointSelector selector, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Routing.MatcherPolicy> policies) { }
+        public override void AddEndpoint(Microsoft.AspNetCore.Routing.RouteEndpoint endpoint) { }
+        public override Microsoft.AspNetCore.Routing.Matching.Matcher Build() { throw null; }
+        public Microsoft.AspNetCore.Routing.Matching.DfaNode BuildDfaTree(bool includeLabel = false) { throw null; }
+        internal Microsoft.AspNetCore.Routing.Matching.Candidate CreateCandidate(Microsoft.AspNetCore.Http.Endpoint endpoint, int score) { throw null; }
+        internal Microsoft.AspNetCore.Routing.Matching.Candidate[] CreateCandidates(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+    }
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerToString(),nq}")]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct DfaState
+    {
+        public readonly Candidate[] Candidates;
+        public readonly IEndpointSelectorPolicy[] Policies;
+        public readonly JumpTable PathTransitions;
+        public readonly PolicyJumpTable PolicyTransitions;
+        public DfaState(Microsoft.AspNetCore.Routing.Matching.Candidate[] candidates, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy[] policies, Microsoft.AspNetCore.Routing.Matching.JumpTable pathTransitions, Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable policyTransitions) { throw null; }
+        public string DebuggerToString() { throw null; }
+    }
+
+    internal partial class EndpointComparer : System.Collections.Generic.IComparer<Microsoft.AspNetCore.Http.Endpoint>, System.Collections.Generic.IEqualityComparer<Microsoft.AspNetCore.Http.Endpoint>
+    {
+        public EndpointComparer(Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy[] policies) { }
+        public int Compare(Microsoft.AspNetCore.Http.Endpoint x, Microsoft.AspNetCore.Http.Endpoint y) { throw null; }
+        public bool Equals(Microsoft.AspNetCore.Http.Endpoint x, Microsoft.AspNetCore.Http.Endpoint y) { throw null; }
+        public int GetHashCode(Microsoft.AspNetCore.Http.Endpoint obj) { throw null; }
+    }
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerToString(),nq}")]
+    internal abstract partial class JumpTable
+    {
+        protected JumpTable() { }
+        public virtual string DebuggerToString() { throw null; }
+        public abstract int GetDestination(string path, Microsoft.AspNetCore.Routing.Matching.PathSegment segment);
+    }
+
+    internal abstract partial class Matcher
+    {
+        protected Matcher() { }
+        public abstract System.Threading.Tasks.Task MatchAsync(Microsoft.AspNetCore.Http.HttpContext httpContext);
+    }
+    internal abstract partial class MatcherFactory
+    {
+        protected MatcherFactory() { }
+        public abstract Microsoft.AspNetCore.Routing.Matching.Matcher CreateMatcher(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource);
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct PathSegment : System.IEquatable<Microsoft.AspNetCore.Routing.Matching.PathSegment>
+    {
+        public readonly int Start;
+        public readonly int Length;
+        public PathSegment(int start, int length) { throw null; }
+        public bool Equals(Microsoft.AspNetCore.Routing.Matching.PathSegment other) { throw null; }
+        public override bool Equals(object obj) { throw null; }
+        public override int GetHashCode() { throw null; }
+        public override string ToString() { throw null; }
+    }
+
+    internal abstract partial class MatcherBuilder
+    {
+        protected MatcherBuilder() { }
+        public abstract void AddEndpoint(Microsoft.AspNetCore.Routing.RouteEndpoint endpoint);
+        public abstract Microsoft.AspNetCore.Routing.Matching.Matcher Build();
+    }
+}
+
+namespace Microsoft.AspNetCore.Routing
+{
+
+    internal partial class RoutingMarkerService
+    {
+        public RoutingMarkerService() { }
+    }
+
+    internal partial class UriBuilderContextPooledObjectPolicy : Microsoft.Extensions.ObjectPool.IPooledObjectPolicy<Microsoft.AspNetCore.Routing.UriBuildingContext>
+    {
+        public UriBuilderContextPooledObjectPolicy() { }
+        public Microsoft.AspNetCore.Routing.UriBuildingContext Create() { throw null; }
+        public bool Return(Microsoft.AspNetCore.Routing.UriBuildingContext obj) { throw null; }
+    }
+
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct PathTokenizer : System.Collections.Generic.IEnumerable<Microsoft.Extensions.Primitives.StringSegment>, System.Collections.Generic.IReadOnlyCollection<Microsoft.Extensions.Primitives.StringSegment>, System.Collections.Generic.IReadOnlyList<Microsoft.Extensions.Primitives.StringSegment>, System.Collections.IEnumerable
+    {
+        private readonly string _path;
+        private int _count;
+        public PathTokenizer(Microsoft.AspNetCore.Http.PathString path) { throw null; }
+        public int Count { get { throw null; } }
+        public Microsoft.Extensions.Primitives.StringSegment this[int index] { get { throw null; } }
+        public Microsoft.AspNetCore.Routing.PathTokenizer.Enumerator GetEnumerator() { throw null; }
+        System.Collections.Generic.IEnumerator<Microsoft.Extensions.Primitives.StringSegment> System.Collections.Generic.IEnumerable<Microsoft.Extensions.Primitives.StringSegment>.GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct Enumerator : System.Collections.Generic.IEnumerator<Microsoft.Extensions.Primitives.StringSegment>, System.Collections.IEnumerator, System.IDisposable
+        {
+            private readonly string _path;
+            private int _index;
+            private int _length;
+            public Enumerator(Microsoft.AspNetCore.Routing.PathTokenizer tokenizer) { throw null; }
+            public Microsoft.Extensions.Primitives.StringSegment Current { get { throw null; } }
+            object System.Collections.IEnumerator.Current { get { throw null; } }
+            public void Dispose() { }
+            public bool MoveNext() { throw null; }
+            public void Reset() { }
+        }
+    }
+
+    public partial class RouteOptions
+    {
+        internal System.Collections.Generic.ICollection<Microsoft.AspNetCore.Routing.EndpointDataSource> EndpointDataSources { get { throw null; } set { } }
+    }
+
+    internal sealed partial class EndpointMiddleware
+    {
+        internal const string AuthorizationMiddlewareInvokedKey = "__AuthorizationMiddlewareWithEndpointInvoked";
+        internal const string CorsMiddlewareInvokedKey = "__CorsMiddlewareWithEndpointInvoked";
+        public EndpointMiddleware(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Routing.EndpointMiddleware> logger, Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Routing.RouteOptions> routeOptions) { }
+        public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+    }
+
+    internal sealed partial class DataSourceDependentCache<T> : System.IDisposable where T : class
+    {
+        public DataSourceDependentCache(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource, System.Func<System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint>, T> initialize) { }
+        public T Value { get { throw null; } }
+        public void Dispose() { }
+        public T EnsureInitialized() { throw null; }
+    }
+
+    internal partial class DefaultEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder
+    {
+        public DefaultEndpointConventionBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder endpointBuilder) { }
+        internal Microsoft.AspNetCore.Builder.EndpointBuilder EndpointBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Add(System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder> convention) { }
+        public Microsoft.AspNetCore.Http.Endpoint Build() { throw null; }
+    }
+
+    internal partial class DefaultEndpointRouteBuilder : Microsoft.AspNetCore.Routing.IEndpointRouteBuilder
+    {
+        public DefaultEndpointRouteBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder) { }
+        public Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.ICollection<Microsoft.AspNetCore.Routing.EndpointDataSource> DataSources { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.IServiceProvider ServiceProvider { get { throw null; } }
+        public Microsoft.AspNetCore.Builder.IApplicationBuilder CreateApplicationBuilder() { throw null; }
+    }
+
+    internal sealed partial class DefaultLinkGenerator : Microsoft.AspNetCore.Routing.LinkGenerator, System.IDisposable
+    {
+        public DefaultLinkGenerator(Microsoft.AspNetCore.Routing.ParameterPolicyFactory parameterPolicyFactory, Microsoft.AspNetCore.Routing.Template.TemplateBinderFactory binderFactory, Microsoft.AspNetCore.Routing.EndpointDataSource dataSource, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Routing.RouteOptions> routeOptions, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Routing.DefaultLinkGenerator> logger, System.IServiceProvider serviceProvider) { }
+        public void Dispose() { }
+        public static Microsoft.AspNetCore.Routing.RouteValueDictionary GetAmbientValues(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public override string GetPathByAddress<TAddress>(Microsoft.AspNetCore.Http.HttpContext httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues = null, Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) { throw null; }
+        public override string GetPathByAddress<TAddress>(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) { throw null; }
+        internal Microsoft.AspNetCore.Routing.Template.TemplateBinder GetTemplateBinder(Microsoft.AspNetCore.Routing.RouteEndpoint endpoint) { throw null; }
+        public override string GetUriByAddress<TAddress>(Microsoft.AspNetCore.Http.HttpContext httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues = null, string scheme = null, Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) { throw null; }
+        public override string GetUriByAddress<TAddress>(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = null) { throw null; }
+        public string GetUriByEndpoints(System.Collections.Generic.List<Microsoft.AspNetCore.Routing.RouteEndpoint> endpoints, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase, Microsoft.AspNetCore.Http.FragmentString fragment, Microsoft.AspNetCore.Routing.LinkOptions options) { throw null; }
+        internal bool TryProcessTemplate(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteEndpoint endpoint, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues, Microsoft.AspNetCore.Routing.LinkOptions options, out (Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Http.QueryString query) result) { throw null; }
+    }
+
+    internal partial class DefaultLinkParser : Microsoft.AspNetCore.Routing.LinkParser, System.IDisposable
+    {
+        public DefaultLinkParser(Microsoft.AspNetCore.Routing.ParameterPolicyFactory parameterPolicyFactory, Microsoft.AspNetCore.Routing.EndpointDataSource dataSource, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Routing.DefaultLinkParser> logger, System.IServiceProvider serviceProvider) { }
+        public void Dispose() { }
+        internal Microsoft.AspNetCore.Routing.DefaultLinkParser.MatcherState GetMatcherState(Microsoft.AspNetCore.Routing.RouteEndpoint endpoint) { throw null; }
+        public override Microsoft.AspNetCore.Routing.RouteValueDictionary ParsePathByAddress<TAddress>(TAddress address, Microsoft.AspNetCore.Http.PathString path) { throw null; }
+        internal bool TryParse(Microsoft.AspNetCore.Routing.RouteEndpoint endpoint, Microsoft.AspNetCore.Http.PathString path, out Microsoft.AspNetCore.Routing.RouteValueDictionary values) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal readonly partial struct MatcherState
+        {
+            private readonly object _dummy;
+            public readonly Microsoft.AspNetCore.Routing.RoutePatternMatcher Matcher;
+            public readonly System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<IRouteConstraint>> Constraints;
+            public MatcherState(Microsoft.AspNetCore.Routing.RoutePatternMatcher matcher, System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<Microsoft.AspNetCore.Routing.IRouteConstraint>> constraints) { throw null; }
+            public void Deconstruct(out Microsoft.AspNetCore.Routing.RoutePatternMatcher matcher, out System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<Microsoft.AspNetCore.Routing.IRouteConstraint>> constraints) { throw null; }
+        }
+    }
+
+    internal partial class DefaultParameterPolicyFactory : Microsoft.AspNetCore.Routing.ParameterPolicyFactory
+    {
+        public DefaultParameterPolicyFactory(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Routing.RouteOptions> options, System.IServiceProvider serviceProvider) { }
+        public override Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, Microsoft.AspNetCore.Routing.IParameterPolicy parameterPolicy) { throw null; }
+        public override Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, string inlineText) { throw null; }
+    }
+
+    internal sealed partial class EndpointNameAddressScheme : Microsoft.AspNetCore.Routing.IEndpointAddressScheme<string>, System.IDisposable
+    {
+        public EndpointNameAddressScheme(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource) { }
+        internal System.Collections.Generic.Dictionary<string, Microsoft.AspNetCore.Http.Endpoint[]> Entries { get { throw null; } }
+        public void Dispose() { }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Http.Endpoint> FindEndpoints(string address) { throw null; }
+    }
+
+    internal sealed partial class EndpointRoutingMiddleware
+    {
+        public EndpointRoutingMiddleware(Microsoft.AspNetCore.Routing.Matching.MatcherFactory matcherFactory, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware> logger, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpointRouteBuilder, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Http.RequestDelegate next) { }
+        public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+    }
+
+    internal partial class ModelEndpointDataSource : Microsoft.AspNetCore.Routing.EndpointDataSource
+    {
+        public ModelEndpointDataSource() { }
+        internal System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Builder.EndpointBuilder> EndpointBuilders { get { throw null; } }
+        public override System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> Endpoints { get { throw null; } }
+        public Microsoft.AspNetCore.Builder.IEndpointConventionBuilder AddEndpointBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder endpointBuilder) { throw null; }
+        public override Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() { throw null; }
+    }
+
+    internal partial class NullRouter : Microsoft.AspNetCore.Routing.IRouter
+    {
+        public static readonly Microsoft.AspNetCore.Routing.NullRouter Instance;
+        public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) { throw null; }
+        public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) { throw null; }
+    }
+
+    internal partial class RoutePatternMatcher
+    {
+        public RoutePatternMatcher(Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults) { }
+        public Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal static bool MatchComplexSegment(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment routeSegment, System.ReadOnlySpan<char> requestSegment, Microsoft.AspNetCore.Routing.RouteValueDictionary values) { throw null; }
+        public bool TryMatch(Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Routing.RouteValueDictionary values) { throw null; }
+    }
+
+    internal sealed partial class RouteValuesAddressScheme : Microsoft.AspNetCore.Routing.IEndpointAddressScheme<Microsoft.AspNetCore.Routing.RouteValuesAddress>, System.IDisposable
+    {
+        public RouteValuesAddressScheme(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource) { }
+        internal Microsoft.AspNetCore.Routing.RouteValuesAddressScheme.StateEntry State { get { throw null; } }
+        public void Dispose() { }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Http.Endpoint> FindEndpoints(Microsoft.AspNetCore.Routing.RouteValuesAddress address) { throw null; }
+        internal partial class StateEntry
+        {
+            public readonly System.Collections.Generic.List<Microsoft.AspNetCore.Routing.Tree.OutboundMatch> AllMatches;
+            public readonly Microsoft.AspNetCore.Routing.Tree.LinkGenerationDecisionTree AllMatchesLinkGenerationTree;
+            public readonly System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<Microsoft.AspNetCore.Routing.Tree.OutboundMatchResult>> NamedMatches;
+            public StateEntry(System.Collections.Generic.List<Microsoft.AspNetCore.Routing.Tree.OutboundMatch> allMatches, Microsoft.AspNetCore.Routing.Tree.LinkGenerationDecisionTree allMatchesLinkGenerationTree, System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<Microsoft.AspNetCore.Routing.Tree.OutboundMatchResult>> namedMatches) { }
+        }
+    }
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerToString(),nq}")]
+    internal partial class UriBuildingContext
+    {
+        public UriBuildingContext(System.Text.Encodings.Web.UrlEncoder urlEncoder) { }
+        public bool AppendTrailingSlash { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool LowercaseQueryStrings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool LowercaseUrls { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.IO.TextWriter PathWriter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.IO.TextWriter QueryWriter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Accept(string value) { throw null; }
+        public bool Accept(string value, bool encodeSlashes) { throw null; }
+        public bool Buffer(string value) { throw null; }
+        public void Clear() { }
+        internal void EncodeValue(string value, int start, int characterCount, bool encodeSlashes) { }
+        public void EndSegment() { }
+        public void Remove(string literal) { }
+        public Microsoft.AspNetCore.Http.PathString ToPathString() { throw null; }
+        public Microsoft.AspNetCore.Http.QueryString ToQueryString() { throw null; }
+        public override string ToString() { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Routing.DecisionTree
+{
+
+    internal partial class DecisionCriterion<TItem>
+    {
+        public DecisionCriterion() { }
+        public System.Collections.Generic.Dictionary<object, Microsoft.AspNetCore.Routing.DecisionTree.DecisionTreeNode<TItem>> Branches { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Key { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+
+    internal static partial class DecisionTreeBuilder<TItem>
+    {
+        public static Microsoft.AspNetCore.Routing.DecisionTree.DecisionTreeNode<TItem> GenerateTree(System.Collections.Generic.IReadOnlyList<TItem> items, Microsoft.AspNetCore.Routing.DecisionTree.IClassifier<TItem> classifier) { throw null; }
+    }
+
+    internal partial class DecisionTreeNode<TItem>
+    {
+        public DecisionTreeNode() { }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Routing.DecisionTree.DecisionCriterion<TItem>> Criteria { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IList<TItem> Matches { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct DecisionCriterionValue
+    {
+        private readonly object _value;
+        public DecisionCriterionValue(object value) { throw null; }
+        public object Value { get { throw null; } }
+    }
+
+    internal partial interface IClassifier<TItem>
+    {
+        System.Collections.Generic.IEqualityComparer<object> ValueComparer { get; }
+        System.Collections.Generic.IDictionary<string, Microsoft.AspNetCore.Routing.DecisionTree.DecisionCriterionValue> GetCriteria(TItem item);
+    }
+}
+
+namespace Microsoft.AspNetCore.Routing.Tree
+{
+
+    public partial class TreeRouter : Microsoft.AspNetCore.Routing.IRouter
+    {
+        internal TreeRouter(Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree[] trees, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry> linkGenerationEntries, System.Text.Encodings.Web.UrlEncoder urlEncoder, Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Routing.UriBuildingContext> objectPool, Microsoft.Extensions.Logging.ILogger routeLogger, Microsoft.Extensions.Logging.ILogger constraintLogger, int version) { }
+        internal System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree> MatchingTrees { get { throw null; } }
+    }
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerDisplayString,nq}")]
+    internal partial class LinkGenerationDecisionTree
+    {
+        public LinkGenerationDecisionTree(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Routing.Tree.OutboundMatch> entries) { }
+        internal string DebuggerDisplayString { get { throw null; } }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Routing.Tree.OutboundMatchResult> GetMatches(Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues) { throw null; }
+    }
+
+    public partial class TreeRouteBuilder
+    {
+        internal TreeRouteBuilder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Routing.UriBuildingContext> objectPool, Microsoft.AspNetCore.Routing.IInlineConstraintResolver constraintResolver) { }
+    }
+
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct OutboundMatchResult
+    {
+        private readonly object _dummy;
+        private readonly int _dummyPrimitive;
+        public OutboundMatchResult(Microsoft.AspNetCore.Routing.Tree.OutboundMatch match, bool isFallbackMatch) { throw null; }
+        public bool IsFallbackMatch { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Routing.Tree.OutboundMatch Match { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+}
+
+namespace Microsoft.AspNetCore.Routing.Patterns
+{
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerToString()}")]
+    public sealed partial class RoutePatternPathSegment
+    {
+        internal RoutePatternPathSegment(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart> parts) { }
+        internal string DebuggerToString() { throw null; }
+        internal static string DebuggerToString(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart> parts) { throw null; }
+    }
+
+    internal static partial class RouteParameterParser
+    {
+        public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParseRouteParameter(string parameter) { throw null; }
+    }
+
+    internal partial class DefaultRoutePatternTransformer : Microsoft.AspNetCore.Routing.Patterns.RoutePatternTransformer
+    {
+        public DefaultRoutePatternTransformer(Microsoft.AspNetCore.Routing.ParameterPolicyFactory policyFactory) { }
+        public override Microsoft.AspNetCore.Routing.Patterns.RoutePattern SubstituteRequiredValues(Microsoft.AspNetCore.Routing.Patterns.RoutePattern original, object requiredValues) { throw null; }
+    }
+
+    internal static partial class RoutePatternParser
+    {
+        internal static readonly char[] InvalidParameterNameChars;
+        public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Routing.Template
+{
+    public partial class TemplateBinder
+    {
+        internal TemplateBinder(System.Text.Encodings.Web.UrlEncoder urlEncoder, Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Routing.UriBuildingContext> pool, Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IEnumerable<string> requiredKeys, System.Collections.Generic.IEnumerable<System.ValueTuple<string, Microsoft.AspNetCore.Routing.IParameterPolicy>> parameterPolicies) { }
+        internal TemplateBinder(System.Text.Encodings.Web.UrlEncoder urlEncoder, Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Routing.UriBuildingContext> pool, Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern, System.Collections.Generic.IEnumerable<System.ValueTuple<string, Microsoft.AspNetCore.Routing.IParameterPolicy>> parameterPolicies) { }
+        internal TemplateBinder(System.Text.Encodings.Web.UrlEncoder urlEncoder, Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Routing.UriBuildingContext> pool, Microsoft.AspNetCore.Routing.Template.RouteTemplate template, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults) { }
+        internal bool TryBindValues(Microsoft.AspNetCore.Routing.RouteValueDictionary acceptedValues, Microsoft.AspNetCore.Routing.LinkOptions options, Microsoft.AspNetCore.Routing.LinkOptions globalOptions, out (Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Http.QueryString query) result) { throw null; }
+    }
+
+    public static partial class RoutePrecedence
+    {
+        internal static decimal ComputeInbound(Microsoft.AspNetCore.Routing.Patterns.RoutePattern routePattern) { throw null; }
+        internal static decimal ComputeOutbound(Microsoft.AspNetCore.Routing.Patterns.RoutePattern routePattern) { throw null; }
+    }
+}
diff --git a/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj b/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj
index 90ff9fea7c37fa0d4fe1181a80d4d699804303bc..b0245a73c334f28959d91e566ba0fb397eec8f08 100644
--- a/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj
+++ b/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj
@@ -5,12 +5,14 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Routing.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.ObjectPool"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="Microsoft.AspNetCore.Routing.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions" />
+    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.ObjectPool" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj b/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj
index 7c399fe55754adb4c5ddf35f162ca8c998c0ea2d..95a5f0327daf67b4c7450e5c28a73aaa002bfeda 100644
--- a/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj
+++ b/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj
@@ -11,7 +11,7 @@ Microsoft.AspNetCore.Routing.RouteCollection</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;routing</PackageTags>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <PropertyGroup>
diff --git a/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.Manual.cs b/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..386fc1fd0c4b06298c39bbea09094850b79051b9
--- /dev/null
+++ b/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.Manual.cs
@@ -0,0 +1,49 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Internal
+{
+    internal static partial class AspNetCoreTempDirectory
+    {
+        public static string TempDirectory { get { throw null; } }
+        public static System.Func<string> TempDirectoryFactory { get { throw null; } }
+    }
+}
+
+namespace Microsoft.AspNetCore.WebUtilities
+{
+    public sealed partial class FileBufferingWriteStream : System.IO.Stream
+    {
+        internal bool Disposed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.IO.FileStream FileStream { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.WebUtilities.PagedByteBuffer PagedByteBuffer
+        {
+            [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; }
+        }
+    }
+
+    public partial class FormPipeReader
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+        internal void ParseFormValues(ref System.Buffers.ReadOnlySequence<byte> buffer, ref Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator accumulator, bool isFinalBlock) { }
+    }
+
+    public partial class HttpResponseStreamWriter : System.IO.TextWriter
+    {
+        internal const int DefaultBufferSize = 16384;
+    }
+
+    internal sealed partial class PagedByteBuffer : System.IDisposable
+    {
+        internal const int PageSize = 1024;
+        public PagedByteBuffer(System.Buffers.ArrayPool<byte> arrayPool) { }
+        internal bool Disposed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int Length { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.Collections.Generic.List<byte[]> Pages { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Add(byte[] buffer, int offset, int count) { }
+        public void Dispose() { }
+        public void MoveTo(System.IO.Stream stream) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task MoveToAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+}
diff --git a/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj b/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj
index 1b56da784a7817f0bf02cc5737cdd818bfa920e2..7ff6ba8c69c02eb79ff1972cc7eb1fee9cf63f6b 100644
--- a/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj
+++ b/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj
@@ -5,7 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.WebUtilities.netcoreapp.cs" />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
-    <Reference Include="System.IO.Pipelines"  />
+    <Compile Include="Microsoft.AspNetCore.WebUtilities.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="System.IO.Pipelines" />
   </ItemGroup>
 </Project>
diff --git a/src/Http/WebUtilities/src/FormPipeReader.cs b/src/Http/WebUtilities/src/FormPipeReader.cs
index 3c9334f9b69a6bced427cb818e1babed104514fc..e5f158bc2d5222356afd3757010de35bc4b86a79 100644
--- a/src/Http/WebUtilities/src/FormPipeReader.cs
+++ b/src/Http/WebUtilities/src/FormPipeReader.cs
@@ -93,7 +93,15 @@ namespace Microsoft.AspNetCore.WebUtilities
 
                 if (!buffer.IsEmpty)
                 {
-                    ParseFormValues(ref buffer, ref accumulator, readResult.IsCompleted);
+                    try
+                    {
+                        ParseFormValues(ref buffer, ref accumulator, readResult.IsCompleted);
+                    }
+                    catch
+                    {
+                        _pipeReader.AdvanceTo(buffer.Start);
+                        throw;
+                    }
                 }
 
                 if (readResult.IsCompleted)
diff --git a/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj b/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj
index ae6214a552d0752bf12613feb6700b1e94d6ccb0..63d3582d520bf996e70add5925619dd0fb8ba02f 100644
--- a/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj
+++ b/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj
@@ -8,7 +8,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Http/WebUtilities/test/FormPipeReaderTests.cs b/src/Http/WebUtilities/test/FormPipeReaderTests.cs
index f0e806aae04c2cbf9041456a10048dd701109d01..9c973c680d75948358f9ece530b9db6d3e0af256 100644
--- a/src/Http/WebUtilities/test/FormPipeReaderTests.cs
+++ b/src/Http/WebUtilities/test/FormPipeReaderTests.cs
@@ -94,21 +94,32 @@ namespace Microsoft.AspNetCore.WebUtilities
         [Fact]
         public async Task ReadFormAsync_ValueCountLimitExceeded_Throw()
         {
-            var bodyPipe = await MakePipeReader("foo=1&baz=2&bar=3&baz=4&baf=5");
+            var content = "foo=1&baz=2&bar=3&baz=4&baf=5";
+            var bodyPipe = await MakePipeReader(content);
 
             var exception = await Assert.ThrowsAsync<InvalidDataException>(
                 () => ReadFormAsync(new FormPipeReader(bodyPipe) { ValueCountLimit = 3 }));
             Assert.Equal("Form value count limit 3 exceeded.", exception.Message);
+
+            // The body pipe is still readable and has not advanced.
+            var readResult = await bodyPipe.ReadAsync();
+            Assert.Equal(Encoding.UTF8.GetBytes(content), readResult.Buffer.ToArray());
         }
 
         [Fact]
         public async Task ReadFormAsync_ValueCountLimitExceededSameKey_Throw()
         {
-            var bodyPipe = await MakePipeReader("baz=1&baz=2&baz=3&baz=4");
+            var content = "baz=1&baz=2&baz=3&baz=4";
+            var bodyPipe = await MakePipeReader(content);
 
             var exception = await Assert.ThrowsAsync<InvalidDataException>(
                 () => ReadFormAsync(new FormPipeReader(bodyPipe) { ValueCountLimit = 3 }));
             Assert.Equal("Form value count limit 3 exceeded.", exception.Message);
+
+
+            // The body pipe is still readable and has not advanced.
+            var readResult = await bodyPipe.ReadAsync();
+            Assert.Equal(Encoding.UTF8.GetBytes(content), readResult.Buffer.ToArray());
         }
 
         [Fact]
@@ -127,11 +138,16 @@ namespace Microsoft.AspNetCore.WebUtilities
         [Fact]
         public async Task ReadFormAsync_KeyLengthLimitExceeded_Throw()
         {
-            var bodyPipe = await MakePipeReader("foo=1&baz12345678=2");
+            var content = "foo=1&baz12345678=2";
+            var bodyPipe = await MakePipeReader(content);
 
             var exception = await Assert.ThrowsAsync<InvalidDataException>(
                 () => ReadFormAsync(new FormPipeReader(bodyPipe) { KeyLengthLimit = 10 }));
             Assert.Equal("Form key length limit 10 exceeded.", exception.Message);
+
+            // The body pipe is still readable and has not advanced.
+            var readResult = await bodyPipe.ReadAsync();
+            Assert.Equal(Encoding.UTF8.GetBytes(content), readResult.Buffer.ToArray());
         }
 
         [Fact]
@@ -150,11 +166,16 @@ namespace Microsoft.AspNetCore.WebUtilities
         [Fact]
         public async Task ReadFormAsync_ValueLengthLimitExceeded_Throw()
         {
-            var bodyPipe = await MakePipeReader("foo=1&baz=12345678901");
+            var content = "foo=1&baz=12345678901";
+            var bodyPipe = await MakePipeReader(content);
 
             var exception = await Assert.ThrowsAsync<InvalidDataException>(
                 () => ReadFormAsync(new FormPipeReader(bodyPipe) { ValueLengthLimit = 10 }));
             Assert.Equal("Form value length limit 10 exceeded.", exception.Message);
+
+            // The body pipe is still readable and has not advanced.
+            var readResult = await bodyPipe.ReadAsync();
+            Assert.Equal(Encoding.UTF8.GetBytes(content), readResult.Buffer.ToArray());
         }
 
         // https://en.wikipedia.org/wiki/Percent-encoding
diff --git a/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/ApiAuthSample.csproj b/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/ApiAuthSample.csproj
index fc7fd6784f5abfa793a27bdc5c3ece5272bf4f3e..09e3ef160021770cede21581dba97be2940543ac 100644
--- a/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/ApiAuthSample.csproj
+++ b/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/ApiAuthSample.csproj
@@ -6,6 +6,8 @@
     <!-- We are a package that depends on the shared framework, this allows us to
          avoid errors during restore -->
     <GenerateErrorForMissingTargetingPacks>false</GenerateErrorForMissingTargetingPacks>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -35,6 +37,8 @@
     <Reference Include="Microsoft.Extensions.Logging.Configuration" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Debug" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.Manual.cs b/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..23e07827af9540b5ee6dbc8129ae34295f5544f1
--- /dev/null
+++ b/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.Manual.cs
@@ -0,0 +1,18 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Identity
+{
+    public partial class SignInManager<TUser> where TUser : class
+    {
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task<System.Security.Claims.ClaimsPrincipal> StoreRememberClient(TUser user) { throw null; }
+        internal System.Security.Claims.ClaimsPrincipal StoreTwoFactorInfo(string userId, string loginProvider) { throw null; }
+        internal partial class TwoFactorAuthenticationInfo
+        {
+            public TwoFactorAuthenticationInfo() { }
+            public string LoginProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public string UserId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        }
+    }
+}
diff --git a/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj b/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj
index 7874f2c36ee8de3d0b40d51d6ff9d048fa9150a7..a1dfa3bd5532c333e55382c68191a22c1bcfe1b1 100644
--- a/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj
+++ b/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj
@@ -5,7 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Identity.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Cookies"  />
-    <Reference Include="Microsoft.Extensions.Identity.Core"  />
+    <Compile Include="Microsoft.AspNetCore.Identity.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Cookies" />
+    <Reference Include="Microsoft.Extensions.Identity.Core" />
   </ItemGroup>
 </Project>
diff --git a/src/Identity/Core/src/Microsoft.AspNetCore.Identity.csproj b/src/Identity/Core/src/Microsoft.AspNetCore.Identity.csproj
index 69320a66693dd27c949f7d7fa967d55dc8142c64..c4d2657b639a617fe2f0f02c623866424d8620f4 100644
--- a/src/Identity/Core/src/Microsoft.AspNetCore.Identity.csproj
+++ b/src/Identity/Core/src/Microsoft.AspNetCore.Identity.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;identity;membership</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj b/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj
deleted file mode 100644
index 5faea76cbdbd96a5bfc52a00bca77461d17b63a1..0000000000000000000000000000000000000000
--- a/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.1;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
-    <Compile Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore.netstandard2.1.cs" />
-    <Reference Include="Microsoft.Extensions.Identity.Stores"  />
-    <Reference Include="Microsoft.EntityFrameworkCore.Relational"  />
-  </ItemGroup>
-<ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Identity.Stores"  />
-    <Reference Include="Microsoft.EntityFrameworkCore.Relational"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.netcoreapp.cs b/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.netcoreapp.cs
deleted file mode 100644
index 6ce362ca04674f9377a38de530714d5ccd43d5ff..0000000000000000000000000000000000000000
--- a/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.netcoreapp.cs
+++ /dev/null
@@ -1,222 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore
-{
-    public partial class IdentityDbContext : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<Microsoft.AspNetCore.Identity.IdentityUser, Microsoft.AspNetCore.Identity.IdentityRole, string>
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public partial class IdentityDbContext<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<TUser, Microsoft.AspNetCore.Identity.IdentityRole, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public partial class IdentityDbContext<TUser, TRole, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<TUser, TRole, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TKey : System.IEquatable<TKey>
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public abstract partial class IdentityDbContext<TUser, TRole, TKey, TUserClaim, TUserRole, TUserLogin, TRoleClaim, TUserToken> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext<TUser, TKey, TUserClaim, TUserLogin, TUserToken> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey> where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole<TKey> where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey> where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey> where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TRoleClaim> RoleClaims { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TRole> Roles { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserRole> UserRoles { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        protected override void OnModelCreating(Microsoft.EntityFrameworkCore.ModelBuilder builder) { }
-    }
-    public partial class IdentityUserContext<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext<TUser, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser
-    {
-        protected IdentityUserContext() { }
-        public IdentityUserContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public partial class IdentityUserContext<TUser, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext<TUser, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TKey : System.IEquatable<TKey>
-    {
-        protected IdentityUserContext() { }
-        public IdentityUserContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public abstract partial class IdentityUserContext<TUser, TKey, TUserClaim, TUserLogin, TUserToken> : Microsoft.EntityFrameworkCore.DbContext where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey> where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey> where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>
-    {
-        protected IdentityUserContext() { }
-        public IdentityUserContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserClaim> UserClaims { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserLogin> UserLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUser> Users { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserToken> UserTokens { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        protected override void OnModelCreating(Microsoft.EntityFrameworkCore.ModelBuilder builder) { }
-    }
-    public partial class RoleStore<TRole> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.RoleStore<TRole, Microsoft.EntityFrameworkCore.DbContext, string> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<string>
-    {
-        public RoleStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class RoleStore<TRole, TContext> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.RoleStore<TRole, TContext, string> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<string> where TContext : Microsoft.EntityFrameworkCore.DbContext
-    {
-        public RoleStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class RoleStore<TRole, TContext, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.RoleStore<TRole, TContext, TKey, Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>>, Microsoft.AspNetCore.Identity.IQueryableRoleStore<TRole>, Microsoft.AspNetCore.Identity.IRoleClaimStore<TRole>, Microsoft.AspNetCore.Identity.IRoleStore<TRole>, System.IDisposable where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey>
-    {
-        public RoleStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class RoleStore<TRole, TContext, TKey, TUserRole, TRoleClaim> : Microsoft.AspNetCore.Identity.IQueryableRoleStore<TRole>, Microsoft.AspNetCore.Identity.IRoleClaimStore<TRole>, Microsoft.AspNetCore.Identity.IRoleStore<TRole>, System.IDisposable where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey> where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>, new()
-    {
-        public RoleStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) { }
-        public bool AutoSaveChanges { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual TContext Context { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Linq.IQueryable<TRole> Roles { get { throw null; } }
-        public virtual System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual TKey ConvertIdFromString(string id) { throw null; }
-        public virtual string ConvertIdToString(TKey id) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected virtual TRoleClaim CreateRoleClaim(TRole role, System.Security.Claims.Claim claim) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> DeleteAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public void Dispose() { }
-        public virtual System.Threading.Tasks.Task<TRole> FindByIdAsync(string id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<TRole> FindByNameAsync(string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<System.Collections.Generic.IList<System.Security.Claims.Claim>> GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<string> GetNormalizedRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<string> GetRoleIdAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<string> GetRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task SetRoleNameAsync(TRole role, string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected void ThrowIfDisposed() { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class UserOnlyStore<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore<TUser, Microsoft.EntityFrameworkCore.DbContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string>, new()
-    {
-        public UserOnlyStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserOnlyStore<TUser, TContext> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore<TUser, TContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string> where TContext : Microsoft.EntityFrameworkCore.DbContext
-    {
-        public UserOnlyStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserOnlyStore<TUser, TContext, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore<TUser, TContext, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey>
-    {
-        public UserOnlyStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserOnlyStore<TUser, TContext, TKey, TUserClaim, TUserLogin, TUserToken> : Microsoft.AspNetCore.Identity.UserStoreBase<TUser, TKey, TUserClaim, TUserLogin, TUserToken>, Microsoft.AspNetCore.Identity.IProtectedUserStore<TUser>, Microsoft.AspNetCore.Identity.IQueryableUserStore<TUser>, Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore<TUser>, Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore<TUser>, Microsoft.AspNetCore.Identity.IUserClaimStore<TUser>, Microsoft.AspNetCore.Identity.IUserEmailStore<TUser>, Microsoft.AspNetCore.Identity.IUserLockoutStore<TUser>, Microsoft.AspNetCore.Identity.IUserLoginStore<TUser>, Microsoft.AspNetCore.Identity.IUserPasswordStore<TUser>, Microsoft.AspNetCore.Identity.IUserPhoneNumberStore<TUser>, Microsoft.AspNetCore.Identity.IUserSecurityStampStore<TUser>, Microsoft.AspNetCore.Identity.IUserStore<TUser>, Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore<TUser>, Microsoft.AspNetCore.Identity.IUserTwoFactorStore<TUser>, System.IDisposable where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>, new()
-    {
-        public UserOnlyStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-        public bool AutoSaveChanges { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual TContext Context { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUserClaim> UserClaims { get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUserLogin> UserLogins { get { throw null; } }
-        public override System.Linq.IQueryable<TUser> Users { get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUser> UsersSet { get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUserToken> UserTokens { get { throw null; } }
-        public override System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task AddUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<TUser> FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserToken> FindTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUser> FindUserAsync(TKey userId, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(TKey userId, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<System.Security.Claims.Claim>> GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<Microsoft.AspNetCore.Identity.UserLoginInfo>> GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<TUser>> GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task RemoveUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected System.Threading.Tasks.Task SaveChanges(System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class UserStore : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<Microsoft.AspNetCore.Identity.IdentityUser<string>>
-    {
-        public UserStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<TUser, Microsoft.AspNetCore.Identity.IdentityRole, Microsoft.EntityFrameworkCore.DbContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string>, new()
-    {
-        public UserStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser, TRole, TContext> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<TUser, TRole, TContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<string> where TContext : Microsoft.EntityFrameworkCore.DbContext
-    {
-        public UserStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser, TRole, TContext, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<TUser, TRole, TContext, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>, Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey>
-    {
-        public UserStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser, TRole, TContext, TKey, TUserClaim, TUserRole, TUserLogin, TUserToken, TRoleClaim> : Microsoft.AspNetCore.Identity.UserStoreBase<TUser, TRole, TKey, TUserClaim, TUserRole, TUserLogin, TUserToken, TRoleClaim>, Microsoft.AspNetCore.Identity.IProtectedUserStore<TUser>, Microsoft.AspNetCore.Identity.IUserStore<TUser>, System.IDisposable where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>, new()
-    {
-        public UserStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-        public bool AutoSaveChanges { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual TContext Context { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override System.Linq.IQueryable<TUser> Users { get { throw null; } }
-        public override System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task AddToRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task AddUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<TUser> FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task<TRole> FindRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserToken> FindTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUser> FindUserAsync(TKey userId, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(TKey userId, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserRole> FindUserRoleAsync(TKey userId, TKey roleId, System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<System.Security.Claims.Claim>> GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<Microsoft.AspNetCore.Identity.UserLoginInfo>> GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<string>> GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<TUser>> GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<TUser>> GetUsersInRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<bool> IsInRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task RemoveUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected System.Threading.Tasks.Task SaveChanges(System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class IdentityEntityFrameworkBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Identity.IdentityBuilder AddEntityFrameworkStores<TContext>(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) where TContext : Microsoft.EntityFrameworkCore.DbContext { throw null; }
-    }
-}
diff --git a/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.netstandard2.1.cs b/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.netstandard2.1.cs
deleted file mode 100644
index 6ce362ca04674f9377a38de530714d5ccd43d5ff..0000000000000000000000000000000000000000
--- a/src/Identity/EntityFrameworkCore/ref/Microsoft.AspNetCore.Identity.EntityFrameworkCore.netstandard2.1.cs
+++ /dev/null
@@ -1,222 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore
-{
-    public partial class IdentityDbContext : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<Microsoft.AspNetCore.Identity.IdentityUser, Microsoft.AspNetCore.Identity.IdentityRole, string>
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public partial class IdentityDbContext<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<TUser, Microsoft.AspNetCore.Identity.IdentityRole, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public partial class IdentityDbContext<TUser, TRole, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<TUser, TRole, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TKey : System.IEquatable<TKey>
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public abstract partial class IdentityDbContext<TUser, TRole, TKey, TUserClaim, TUserRole, TUserLogin, TRoleClaim, TUserToken> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext<TUser, TKey, TUserClaim, TUserLogin, TUserToken> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey> where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole<TKey> where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey> where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey> where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>
-    {
-        protected IdentityDbContext() { }
-        public IdentityDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TRoleClaim> RoleClaims { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TRole> Roles { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserRole> UserRoles { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        protected override void OnModelCreating(Microsoft.EntityFrameworkCore.ModelBuilder builder) { }
-    }
-    public partial class IdentityUserContext<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext<TUser, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser
-    {
-        protected IdentityUserContext() { }
-        public IdentityUserContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public partial class IdentityUserContext<TUser, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext<TUser, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TKey : System.IEquatable<TKey>
-    {
-        protected IdentityUserContext() { }
-        public IdentityUserContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-    }
-    public abstract partial class IdentityUserContext<TUser, TKey, TUserClaim, TUserLogin, TUserToken> : Microsoft.EntityFrameworkCore.DbContext where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey> where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey> where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>
-    {
-        protected IdentityUserContext() { }
-        public IdentityUserContext(Microsoft.EntityFrameworkCore.DbContextOptions options) { }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserClaim> UserClaims { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserLogin> UserLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUser> Users { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.EntityFrameworkCore.DbSet<TUserToken> UserTokens { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        protected override void OnModelCreating(Microsoft.EntityFrameworkCore.ModelBuilder builder) { }
-    }
-    public partial class RoleStore<TRole> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.RoleStore<TRole, Microsoft.EntityFrameworkCore.DbContext, string> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<string>
-    {
-        public RoleStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class RoleStore<TRole, TContext> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.RoleStore<TRole, TContext, string> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<string> where TContext : Microsoft.EntityFrameworkCore.DbContext
-    {
-        public RoleStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class RoleStore<TRole, TContext, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.RoleStore<TRole, TContext, TKey, Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>>, Microsoft.AspNetCore.Identity.IQueryableRoleStore<TRole>, Microsoft.AspNetCore.Identity.IRoleClaimStore<TRole>, Microsoft.AspNetCore.Identity.IRoleStore<TRole>, System.IDisposable where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey>
-    {
-        public RoleStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class RoleStore<TRole, TContext, TKey, TUserRole, TRoleClaim> : Microsoft.AspNetCore.Identity.IQueryableRoleStore<TRole>, Microsoft.AspNetCore.Identity.IRoleClaimStore<TRole>, Microsoft.AspNetCore.Identity.IRoleStore<TRole>, System.IDisposable where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey> where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>, new()
-    {
-        public RoleStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) { }
-        public bool AutoSaveChanges { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual TContext Context { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Linq.IQueryable<TRole> Roles { get { throw null; } }
-        public virtual System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual TKey ConvertIdFromString(string id) { throw null; }
-        public virtual string ConvertIdToString(TKey id) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected virtual TRoleClaim CreateRoleClaim(TRole role, System.Security.Claims.Claim claim) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> DeleteAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public void Dispose() { }
-        public virtual System.Threading.Tasks.Task<TRole> FindByIdAsync(string id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<TRole> FindByNameAsync(string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<System.Collections.Generic.IList<System.Security.Claims.Claim>> GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<string> GetNormalizedRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<string> GetRoleIdAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task<string> GetRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public virtual System.Threading.Tasks.Task SetRoleNameAsync(TRole role, string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected void ThrowIfDisposed() { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class UserOnlyStore<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore<TUser, Microsoft.EntityFrameworkCore.DbContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string>, new()
-    {
-        public UserOnlyStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserOnlyStore<TUser, TContext> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore<TUser, TContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string> where TContext : Microsoft.EntityFrameworkCore.DbContext
-    {
-        public UserOnlyStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserOnlyStore<TUser, TContext, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore<TUser, TContext, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey>
-    {
-        public UserOnlyStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserOnlyStore<TUser, TContext, TKey, TUserClaim, TUserLogin, TUserToken> : Microsoft.AspNetCore.Identity.UserStoreBase<TUser, TKey, TUserClaim, TUserLogin, TUserToken>, Microsoft.AspNetCore.Identity.IProtectedUserStore<TUser>, Microsoft.AspNetCore.Identity.IQueryableUserStore<TUser>, Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore<TUser>, Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore<TUser>, Microsoft.AspNetCore.Identity.IUserClaimStore<TUser>, Microsoft.AspNetCore.Identity.IUserEmailStore<TUser>, Microsoft.AspNetCore.Identity.IUserLockoutStore<TUser>, Microsoft.AspNetCore.Identity.IUserLoginStore<TUser>, Microsoft.AspNetCore.Identity.IUserPasswordStore<TUser>, Microsoft.AspNetCore.Identity.IUserPhoneNumberStore<TUser>, Microsoft.AspNetCore.Identity.IUserSecurityStampStore<TUser>, Microsoft.AspNetCore.Identity.IUserStore<TUser>, Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore<TUser>, Microsoft.AspNetCore.Identity.IUserTwoFactorStore<TUser>, System.IDisposable where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>, new()
-    {
-        public UserOnlyStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-        public bool AutoSaveChanges { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual TContext Context { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUserClaim> UserClaims { get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUserLogin> UserLogins { get { throw null; } }
-        public override System.Linq.IQueryable<TUser> Users { get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUser> UsersSet { get { throw null; } }
-        protected Microsoft.EntityFrameworkCore.DbSet<TUserToken> UserTokens { get { throw null; } }
-        public override System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task AddUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<TUser> FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserToken> FindTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUser> FindUserAsync(TKey userId, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(TKey userId, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<System.Security.Claims.Claim>> GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<Microsoft.AspNetCore.Identity.UserLoginInfo>> GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<TUser>> GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task RemoveUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected System.Threading.Tasks.Task SaveChanges(System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class UserStore : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<Microsoft.AspNetCore.Identity.IdentityUser<string>>
-    {
-        public UserStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<TUser, Microsoft.AspNetCore.Identity.IdentityRole, Microsoft.EntityFrameworkCore.DbContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string>, new()
-    {
-        public UserStore(Microsoft.EntityFrameworkCore.DbContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.EntityFrameworkCore.DbContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser, TRole, TContext> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<TUser, TRole, TContext, string> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<string> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<string> where TContext : Microsoft.EntityFrameworkCore.DbContext
-    {
-        public UserStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser, TRole, TContext, TKey> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<TUser, TRole, TContext, TKey, Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>, Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>> where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey>
-    {
-        public UserStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(TContext), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-    }
-    public partial class UserStore<TUser, TRole, TContext, TKey, TUserClaim, TUserRole, TUserLogin, TUserToken, TRoleClaim> : Microsoft.AspNetCore.Identity.UserStoreBase<TUser, TRole, TKey, TUserClaim, TUserRole, TUserLogin, TUserToken, TRoleClaim>, Microsoft.AspNetCore.Identity.IProtectedUserStore<TUser>, Microsoft.AspNetCore.Identity.IUserStore<TUser>, System.IDisposable where TUser : Microsoft.AspNetCore.Identity.IdentityUser<TKey> where TRole : Microsoft.AspNetCore.Identity.IdentityRole<TKey> where TContext : Microsoft.EntityFrameworkCore.DbContext where TKey : System.IEquatable<TKey> where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim<TKey>, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole<TKey>, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin<TKey>, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken<TKey>, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim<TKey>, new()
-    {
-        public UserStore(TContext context, Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer = null) : base (default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) { }
-        public bool AutoSaveChanges { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual TContext Context { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override System.Linq.IQueryable<TUser> Users { get { throw null; } }
-        public override System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task AddToRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task AddUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<TUser> FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task<TUser> FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task<TRole> FindRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserToken> FindTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUser> FindUserAsync(TKey userId, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserLogin> FindUserLoginAsync(TKey userId, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) { throw null; }
-        protected override System.Threading.Tasks.Task<TUserRole> FindUserRoleAsync(TKey userId, TKey roleId, System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<System.Security.Claims.Claim>> GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<Microsoft.AspNetCore.Identity.UserLoginInfo>> GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<string>> GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<TUser>> GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<System.Collections.Generic.IList<TUser>> GetUsersInRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<bool> IsInRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable<System.Security.Claims.Claim> claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected override System.Threading.Tasks.Task RemoveUserTokenAsync(TUserToken token) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected System.Threading.Tasks.Task SaveChanges(System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class IdentityEntityFrameworkBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Identity.IdentityBuilder AddEntityFrameworkStores<TContext>(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) where TContext : Microsoft.EntityFrameworkCore.DbContext { throw null; }
-    }
-}
diff --git a/src/Identity/EntityFrameworkCore/test/EF.InMemory.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.InMemory.Test.csproj b/src/Identity/EntityFrameworkCore/test/EF.InMemory.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.InMemory.Test.csproj
index ea50aebe5955582f8b553cee8bdf508b26087561..811dfd7b768e5070b7eaf0427678772f6cbe3bc6 100644
--- a/src/Identity/EntityFrameworkCore/test/EF.InMemory.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.InMemory.Test.csproj
+++ b/src/Identity/EntityFrameworkCore/test/EF.InMemory.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.InMemory.Test.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -15,6 +17,8 @@
     <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.AspNetCore.Http" />
     <Reference Include="Microsoft.EntityFrameworkCore.Sqlite" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Identity/EntityFrameworkCore/test/EF.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test.csproj b/src/Identity/EntityFrameworkCore/test/EF.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test.csproj
index 69d90764b5e53c33ed09249f563c4b3a8887576d..af1c54332cdd0698ded7b5303d36bd122efede85 100644
--- a/src/Identity/EntityFrameworkCore/test/EF.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test.csproj
+++ b/src/Identity/EntityFrameworkCore/test/EF.Test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -20,6 +22,8 @@
     <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
     <Reference Include="Microsoft.Extensions.Configuration.FileExtensions" />
     <Reference Include="Microsoft.Extensions.Configuration.Json" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.Manual.cs b/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..54ab6e3c01817c37fdf3d548e02d1d5eafb1b4e8
--- /dev/null
+++ b/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.Manual.cs
@@ -0,0 +1,83 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Identity
+{
+    public partial class PasswordHasherOptions
+    {
+        internal System.Security.Cryptography.RandomNumberGenerator Rng { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+}
+namespace Microsoft.Extensions.Identity.Core
+{
+    internal static partial class Resources
+    {
+        internal static string ConcurrencyFailure { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string DefaultError { get { throw null; } }
+        internal static string DuplicateEmail { get { throw null; } }
+        internal static string DuplicateRoleName { get { throw null; } }
+        internal static string DuplicateUserName { get { throw null; } }
+        internal static string InvalidEmail { get { throw null; } }
+        internal static string InvalidManagerType { get { throw null; } }
+        internal static string InvalidPasswordHasherCompatibilityMode { get { throw null; } }
+        internal static string InvalidPasswordHasherIterationCount { get { throw null; } }
+        internal static string InvalidRoleName { get { throw null; } }
+        internal static string InvalidToken { get { throw null; } }
+        internal static string InvalidUserName { get { throw null; } }
+        internal static string LoginAlreadyAssociated { get { throw null; } }
+        internal static string MustCallAddIdentity { get { throw null; } }
+        internal static string NoPersonalDataProtector { get { throw null; } }
+        internal static string NoRoleType { get { throw null; } }
+        internal static string NoTokenProvider { get { throw null; } }
+        internal static string NullSecurityStamp { get { throw null; } }
+        internal static string PasswordMismatch { get { throw null; } }
+        internal static string PasswordRequiresDigit { get { throw null; } }
+        internal static string PasswordRequiresLower { get { throw null; } }
+        internal static string PasswordRequiresNonAlphanumeric { get { throw null; } }
+        internal static string PasswordRequiresUniqueChars { get { throw null; } }
+        internal static string PasswordRequiresUpper { get { throw null; } }
+        internal static string PasswordTooShort { get { throw null; } }
+        internal static string RecoveryCodeRedemptionFailed { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string RoleNotFound { get { throw null; } }
+        internal static string StoreNotIProtectedUserStore { get { throw null; } }
+        internal static string StoreNotIQueryableRoleStore { get { throw null; } }
+        internal static string StoreNotIQueryableUserStore { get { throw null; } }
+        internal static string StoreNotIRoleClaimStore { get { throw null; } }
+        internal static string StoreNotIUserAuthenticationTokenStore { get { throw null; } }
+        internal static string StoreNotIUserAuthenticatorKeyStore { get { throw null; } }
+        internal static string StoreNotIUserClaimStore { get { throw null; } }
+        internal static string StoreNotIUserConfirmationStore { get { throw null; } }
+        internal static string StoreNotIUserEmailStore { get { throw null; } }
+        internal static string StoreNotIUserLockoutStore { get { throw null; } }
+        internal static string StoreNotIUserLoginStore { get { throw null; } }
+        internal static string StoreNotIUserPasswordStore { get { throw null; } }
+        internal static string StoreNotIUserPhoneNumberStore { get { throw null; } }
+        internal static string StoreNotIUserRoleStore { get { throw null; } }
+        internal static string StoreNotIUserSecurityStampStore { get { throw null; } }
+        internal static string StoreNotIUserTwoFactorRecoveryCodeStore { get { throw null; } }
+        internal static string StoreNotIUserTwoFactorStore { get { throw null; } }
+        internal static string UserAlreadyHasPassword { get { throw null; } }
+        internal static string UserAlreadyInRole { get { throw null; } }
+        internal static string UserLockedOut { get { throw null; } }
+        internal static string UserLockoutNotEnabled { get { throw null; } }
+        internal static string UserNameNotFound { get { throw null; } }
+        internal static string UserNotInRole { get { throw null; } }
+        internal static string FormatDuplicateEmail(object p0) { throw null; }
+        internal static string FormatDuplicateRoleName(object p0) { throw null; }
+        internal static string FormatDuplicateUserName(object p0) { throw null; }
+        internal static string FormatInvalidEmail(object p0) { throw null; }
+        internal static string FormatInvalidManagerType(object p0, object p1, object p2) { throw null; }
+        internal static string FormatInvalidRoleName(object p0) { throw null; }
+        internal static string FormatInvalidUserName(object p0) { throw null; }
+        internal static string FormatNoTokenProvider(object p0, object p1) { throw null; }
+        internal static string FormatPasswordRequiresUniqueChars(object p0) { throw null; }
+        internal static string FormatPasswordTooShort(object p0) { throw null; }
+        internal static string FormatRoleNotFound(object p0) { throw null; }
+        internal static string FormatUserAlreadyInRole(object p0) { throw null; }
+        internal static string FormatUserNameNotFound(object p0) { throw null; }
+        internal static string FormatUserNotInRole(object p0) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}
diff --git a/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj b/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj
index ae16fce673461b5af926aeeecb842dcfcc6f686e..1fc6eeebc2e1652443d0d0661e6043ae744fdb4c 100644
--- a/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj
+++ b/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj
@@ -5,14 +5,18 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.Extensions.Identity.Core.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="Microsoft.Extensions.Identity.Core.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.Extensions.Identity.Core.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="Microsoft.Extensions.Identity.Core.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Identity/Extensions.Core/src/Microsoft.Extensions.Identity.Core.csproj b/src/Identity/Extensions.Core/src/Microsoft.Extensions.Identity.Core.csproj
index 7fab93143635c62d0d38eb118615c74000a0dc63..7555dda1feeb0d31118f24a29a1a460021f8cd7c 100644
--- a/src/Identity/Extensions.Core/src/Microsoft.Extensions.Identity.Core.csproj
+++ b/src/Identity/Extensions.Core/src/Microsoft.Extensions.Identity.Core.csproj
@@ -5,7 +5,6 @@
     <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <TargetFrameworks Condition="'$(DotNetBuildFromSource)' == 'true'">$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;identity;membership</PackageTags>
   </PropertyGroup>
diff --git a/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.Manual.cs b/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0d2641bedd710d2537f4d73495cd42e1bf7e170d
--- /dev/null
+++ b/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.Manual.cs
@@ -0,0 +1,6 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.Extensions.Internal
+{
+}
diff --git a/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj b/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj
index f490a3125601c6bb5d46088664e804d393a7009d..81e68a47ceab65b9c8010000fbbfc23336c6d6d4 100644
--- a/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj
+++ b/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj
@@ -5,12 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.Extensions.Identity.Stores.netstandard2.0.cs" />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Identity.Core"  />
+    <Compile Include="Microsoft.Extensions.Identity.Stores.Manual.cs" />
+    <Reference Include="Microsoft.Extensions.Caching.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Identity.Core" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.Extensions.Identity.Stores.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Identity.Core"  />
+    <Compile Include="Microsoft.Extensions.Identity.Stores.Manual.cs" />
+    <Reference Include="Microsoft.Extensions.Caching.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Identity.Core" />
   </ItemGroup>
 </Project>
diff --git a/src/Identity/Extensions.Stores/src/Microsoft.Extensions.Identity.Stores.csproj b/src/Identity/Extensions.Stores/src/Microsoft.Extensions.Identity.Stores.csproj
index 13e5b4d34b60fe231bff1488a92312a1c3ff58b3..fd80d41fcd3e27276b0719b7e426126ed6c8f475 100644
--- a/src/Identity/Extensions.Stores/src/Microsoft.Extensions.Identity.Stores.csproj
+++ b/src/Identity/Extensions.Stores/src/Microsoft.Extensions.Identity.Stores.csproj
@@ -5,12 +5,12 @@
     <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <TargetFrameworks Condition="'$(DotNetBuildFromSource)' == 'true'">$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;identity;membership</PackageTags>
   </PropertyGroup>
 
   <ItemGroup>
+    <Reference Include="Microsoft.Extensions.Caching.Abstractions" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Identity.Core" />
     <SuppressBaselineReference Include="System.ComponentModel.Annotations" />
diff --git a/src/Identity/Specification.Tests/src/Microsoft.AspNetCore.Identity.Specification.Tests.csproj b/src/Identity/Specification.Tests/src/Microsoft.AspNetCore.Identity.Specification.Tests.csproj
index 0440e8914af95c0ad0ed42100c21771979edb98f..ceac9bcd6aa2564b9cf11661e1d4c0e45a5ed10f 100644
--- a/src/Identity/Specification.Tests/src/Microsoft.AspNetCore.Identity.Specification.Tests.csproj
+++ b/src/Identity/Specification.Tests/src/Microsoft.AspNetCore.Identity.Specification.Tests.csproj
@@ -12,7 +12,6 @@
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Identity" />
-    <Reference Include="Microsoft.AspNetCore.Testing" />
     <Reference Include="Microsoft.Extensions.Configuration" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging" />
@@ -21,4 +20,8 @@
     <Reference Include="xunit.analyzers" PrivateAssets="All" />
   </ItemGroup>
 
+  <ItemGroup>
+    <!-- Removing nonexistent package -->
+    <SuppressBaselineReference Include="Microsoft.AspNetCore.Testing" />
+  </ItemGroup>
 </Project>
diff --git a/src/Identity/Specification.Tests/src/UserManagerSpecificationTests.cs b/src/Identity/Specification.Tests/src/UserManagerSpecificationTests.cs
index fdcfcaa973df89cb07219d530e574ae7e8bc4340..b27d7041866eaf8a567479223dcbac61c122cc36 100644
--- a/src/Identity/Specification.Tests/src/UserManagerSpecificationTests.cs
+++ b/src/Identity/Specification.Tests/src/UserManagerSpecificationTests.cs
@@ -7,7 +7,6 @@ using System.Linq;
 using System.Linq.Expressions;
 using System.Security.Claims;
 using System.Threading.Tasks;
-using Microsoft.AspNetCore.Testing;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Logging;
 using Xunit;
diff --git a/src/Identity/UI/ref/Microsoft.AspNetCore.Identity.UI.csproj b/src/Identity/UI/ref/Microsoft.AspNetCore.Identity.UI.csproj
deleted file mode 100644
index 813c7c4dffdadd74004c228a5956bf5e77104c55..0000000000000000000000000000000000000000
--- a/src/Identity/UI/ref/Microsoft.AspNetCore.Identity.UI.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Identity.UI.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Identity"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc"  />
-    <Reference Include="Microsoft.AspNetCore.StaticFiles"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Embedded"  />
-    <Reference Include="Microsoft.Extensions.Identity.Stores"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Identity/UI/ref/Microsoft.AspNetCore.Identity.UI.netcoreapp.cs b/src/Identity/UI/ref/Microsoft.AspNetCore.Identity.UI.netcoreapp.cs
deleted file mode 100644
index 4f25f3b9fab41ebb1f20d51f28a34f6f403bbf8b..0000000000000000000000000000000000000000
--- a/src/Identity/UI/ref/Microsoft.AspNetCore.Identity.UI.netcoreapp.cs
+++ /dev/null
@@ -1,966 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Identity
-{
-    public static partial class IdentityBuilderUIExtensions
-    {
-        public static Microsoft.AspNetCore.Identity.IdentityBuilder AddDefaultUI(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI
-{
-    [System.AttributeUsageAttribute(System.AttributeTargets.Assembly, Inherited=false, AllowMultiple=false)]
-    public sealed partial class UIFrameworkAttribute : System.Attribute
-    {
-        public UIFrameworkAttribute(string uiFramework) { }
-        public string UIFramework { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI.Services
-{
-    public partial interface IEmailSender
-    {
-        System.Threading.Tasks.Task SendEmailAsync(string email, string subject, string htmlMessage);
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal
-{
-    public partial class AccessDeniedModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public AccessDeniedModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ConfirmEmailChangeModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ConfirmEmailChangeModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string userId, string email, string code) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ConfirmEmailModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ConfirmEmailModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string userId, string code) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class ExternalLoginModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ExternalLoginModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string ErrorMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.ExternalLoginModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ProviderDisplayName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetCallbackAsync(string returnUrl = null, string remoteError = null) { throw null; }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnPost(string provider, string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostConfirmationAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class ForgotPasswordConfirmation : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ForgotPasswordConfirmation() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ForgotPasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ForgotPasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.ForgotPasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class LockoutModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public LockoutModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LoginModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LoginModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string ErrorMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Authentication.AuthenticationScheme> ExternalLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.LoginModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task OnGetAsync(string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Remember me?")]
-            public bool RememberMe { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LoginWith2faModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LoginWith2faModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.LoginWith2faModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RememberMe { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(bool rememberMe, string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(bool rememberMe, string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Remember this machine")]
-            public bool RememberMachine { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Text)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Authenticator code")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(7, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string TwoFactorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LoginWithRecoveryCodeModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LoginWithRecoveryCodeModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.LoginWithRecoveryCodeModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Text)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Recovery Code")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string RecoveryCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LogoutModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LogoutModel() { }
-        public void OnGet() { }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPost(string returnUrl = null) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class RegisterConfirmationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public RegisterConfirmationModel() { }
-        public bool DisplayConfirmAccountLink { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string EmailConfirmationUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string email, string returnUrl = null) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class RegisterModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected RegisterModel() { }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Authentication.AuthenticationScheme> ExternalLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.RegisterModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task OnGetAsync(string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("Password", ErrorMessage="The password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Email")]
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ResendEmailConfirmationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ResendEmailConfirmationModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.ResendEmailConfirmationModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual void OnGet() { }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class ResetPasswordConfirmationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ResetPasswordConfirmationModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ResetPasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ResetPasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal.ResetPasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnGet(string code = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Code { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("Password", ErrorMessage="The password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Manage.Internal
-{
-    public abstract partial class ChangePasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ChangePasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Manage.Internal.ChangePasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("NewPassword", ErrorMessage="The new password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm new password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="New password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string NewPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Current password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string OldPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public abstract partial class DeletePersonalDataModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected DeletePersonalDataModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Manage.Internal.DeletePersonalDataModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RequirePassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public abstract partial class Disable2faModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected Disable2faModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class DownloadPersonalDataModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected DownloadPersonalDataModel() { }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class EmailModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected EmailModel() { }
-        public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Manage.Internal.EmailModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool IsEmailConfirmed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostChangeEmailAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostSendVerificationEmailAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="New email")]
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string NewEmail { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public partial class EnableAuthenticatorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public EnableAuthenticatorModel() { }
-        public string AuthenticatorUri { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Manage.Internal.EnableAuthenticatorModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string[] RecoveryCodes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string SharedKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Text)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Verification Code")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(7, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string Code { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public abstract partial class ExternalLoginsModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ExternalLoginsModel() { }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Identity.UserLoginInfo> CurrentLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Authentication.AuthenticationScheme> OtherLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ShowRemoveButton { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetLinkLoginCallbackAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostLinkLoginAsync(string provider) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostRemoveLoginAsync(string loginProvider, string providerKey) { throw null; }
-    }
-    public abstract partial class GenerateRecoveryCodesModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected GenerateRecoveryCodesModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string[] RecoveryCodes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class IndexModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected IndexModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Manage.Internal.IndexModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Username { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Phone number")]
-            [System.ComponentModel.DataAnnotations.PhoneAttribute]
-            public string PhoneNumber { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public static partial class ManageNavPages
-    {
-        public static string ChangePassword { get { throw null; } }
-        public static string DeletePersonalData { get { throw null; } }
-        public static string DownloadPersonalData { get { throw null; } }
-        public static string Email { get { throw null; } }
-        public static string ExternalLogins { get { throw null; } }
-        public static string Index { get { throw null; } }
-        public static string PersonalData { get { throw null; } }
-        public static string TwoFactorAuthentication { get { throw null; } }
-        public static string ChangePasswordNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string DeletePersonalDataNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string DownloadPersonalDataNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string EmailNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string ExternalLoginsNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string IndexNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string PageNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string page) { throw null; }
-        public static string PersonalDataNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string TwoFactorAuthenticationNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-    }
-    public abstract partial class PersonalDataModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected PersonalDataModel() { }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-    }
-    public abstract partial class ResetAuthenticatorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ResetAuthenticatorModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class SetPasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected SetPasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Manage.Internal.SetPasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("NewPassword", ErrorMessage="The new password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm new password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="New password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string NewPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public partial class ShowRecoveryCodesModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ShowRecoveryCodesModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string[] RecoveryCodes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-    }
-    public abstract partial class TwoFactorAuthenticationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected TwoFactorAuthenticationModel() { }
-        public bool HasAuthenticator { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public bool Is2faEnabled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool IsMachineRemembered { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int RecoveryCodesLeft { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI.V3.Pages.Internal
-{
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    [Microsoft.AspNetCore.Mvc.ResponseCacheAttribute(Duration=0, Location=Microsoft.AspNetCore.Mvc.ResponseCacheLocation.None, NoStore=true)]
-    public partial class ErrorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ErrorModel() { }
-        public string RequestId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ShowRequestId { get { throw null; } }
-        public void OnGet() { }
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal
-{
-    public partial class AccessDeniedModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public AccessDeniedModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ConfirmEmailChangeModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ConfirmEmailChangeModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string userId, string email, string code) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ConfirmEmailModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ConfirmEmailModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string userId, string code) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class ExternalLoginModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ExternalLoginModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string ErrorMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.ExternalLoginModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ProviderDisplayName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetCallbackAsync(string returnUrl = null, string remoteError = null) { throw null; }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnPost(string provider, string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostConfirmationAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class ForgotPasswordConfirmation : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ForgotPasswordConfirmation() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ForgotPasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ForgotPasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.ForgotPasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class LockoutModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public LockoutModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LoginModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LoginModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string ErrorMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Authentication.AuthenticationScheme> ExternalLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.LoginModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task OnGetAsync(string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Remember me?")]
-            public bool RememberMe { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LoginWith2faModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LoginWith2faModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.LoginWith2faModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RememberMe { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(bool rememberMe, string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(bool rememberMe, string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Remember this machine")]
-            public bool RememberMachine { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Text)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Authenticator code")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(7, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string TwoFactorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LoginWithRecoveryCodeModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LoginWithRecoveryCodeModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.LoginWithRecoveryCodeModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Text)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Recovery Code")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string RecoveryCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class LogoutModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected LogoutModel() { }
-        public void OnGet() { }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPost(string returnUrl = null) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class RegisterConfirmationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public RegisterConfirmationModel() { }
-        public bool DisplayConfirmAccountLink { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string EmailConfirmationUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync(string email, string returnUrl = null) { throw null; }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class RegisterModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected RegisterModel() { }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Authentication.AuthenticationScheme> ExternalLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.RegisterModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ReturnUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task OnGetAsync(string returnUrl = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync(string returnUrl = null) { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("Password", ErrorMessage="The password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Email")]
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ResendEmailConfirmationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ResendEmailConfirmationModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.ResendEmailConfirmationModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual void OnGet() { }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class ResetPasswordConfirmationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ResetPasswordConfirmationModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public abstract partial class ResetPasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ResetPasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Internal.ResetPasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnGet(string code = null) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Code { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("Password", ErrorMessage="The password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Manage.Internal
-{
-    public abstract partial class ChangePasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ChangePasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Manage.Internal.ChangePasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("NewPassword", ErrorMessage="The new password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm new password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="New password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string NewPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Current password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string OldPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public abstract partial class DeletePersonalDataModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected DeletePersonalDataModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Manage.Internal.DeletePersonalDataModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RequirePassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public abstract partial class Disable2faModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected Disable2faModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class DownloadPersonalDataModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected DownloadPersonalDataModel() { }
-        public virtual Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class EmailModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected EmailModel() { }
-        public string Email { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Manage.Internal.EmailModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool IsEmailConfirmed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostChangeEmailAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostSendVerificationEmailAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="New email")]
-            [System.ComponentModel.DataAnnotations.EmailAddressAttribute]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            public string NewEmail { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public partial class EnableAuthenticatorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public EnableAuthenticatorModel() { }
-        public string AuthenticatorUri { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Manage.Internal.EnableAuthenticatorModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string[] RecoveryCodes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string SharedKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Text)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Verification Code")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(7, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string Code { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public abstract partial class ExternalLoginsModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ExternalLoginsModel() { }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Identity.UserLoginInfo> CurrentLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IList<Microsoft.AspNetCore.Authentication.AuthenticationScheme> OtherLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ShowRemoveButton { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetLinkLoginCallbackAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostLinkLoginAsync(string provider) { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostRemoveLoginAsync(string loginProvider, string providerKey) { throw null; }
-    }
-    public abstract partial class GenerateRecoveryCodesModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected GenerateRecoveryCodesModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string[] RecoveryCodes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class IndexModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected IndexModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Manage.Internal.IndexModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Username { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Phone number")]
-            [System.ComponentModel.DataAnnotations.PhoneAttribute]
-            public string PhoneNumber { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public static partial class ManageNavPages
-    {
-        public static string ChangePassword { get { throw null; } }
-        public static string DeletePersonalData { get { throw null; } }
-        public static string DownloadPersonalData { get { throw null; } }
-        public static string Email { get { throw null; } }
-        public static string ExternalLogins { get { throw null; } }
-        public static string Index { get { throw null; } }
-        public static string PersonalData { get { throw null; } }
-        public static string TwoFactorAuthentication { get { throw null; } }
-        public static string ChangePasswordNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string DeletePersonalDataNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string DownloadPersonalDataNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string EmailNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string ExternalLoginsNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string IndexNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string PageNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string page) { throw null; }
-        public static string PersonalDataNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-        public static string TwoFactorAuthenticationNavClass(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) { throw null; }
-    }
-    public abstract partial class PersonalDataModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected PersonalDataModel() { }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-    }
-    public abstract partial class ResetAuthenticatorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected ResetAuthenticatorModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGet() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-    public abstract partial class SetPasswordModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected SetPasswordModel() { }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public Microsoft.AspNetCore.Identity.UI.V4.Pages.Account.Manage.Internal.SetPasswordModel.InputModel Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-        public partial class InputModel
-        {
-            public InputModel() { }
-            [System.ComponentModel.DataAnnotations.CompareAttribute("NewPassword", ErrorMessage="The new password and confirmation password do not match.")]
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="Confirm new password")]
-            public string ConfirmPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-            [System.ComponentModel.DataAnnotations.DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType.Password)]
-            [System.ComponentModel.DataAnnotations.DisplayAttribute(Name="New password")]
-            [System.ComponentModel.DataAnnotations.RequiredAttribute]
-            [System.ComponentModel.DataAnnotations.StringLengthAttribute(100, ErrorMessage="The {0} must be at least {2} and at max {1} characters long.", MinimumLength=6)]
-            public string NewPassword { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        }
-    }
-    public partial class ShowRecoveryCodesModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ShowRecoveryCodesModel() { }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string[] RecoveryCodes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-    }
-    public abstract partial class TwoFactorAuthenticationModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        protected TwoFactorAuthenticationModel() { }
-        public bool HasAuthenticator { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.BindPropertyAttribute]
-        public bool Is2faEnabled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool IsMachineRemembered { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int RecoveryCodesLeft { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.TempDataAttribute]
-        public string StatusMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnGetAsync() { throw null; }
-        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> OnPostAsync() { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Identity.UI.V4.Pages.Internal
-{
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    [Microsoft.AspNetCore.Mvc.ResponseCacheAttribute(Duration=0, Location=Microsoft.AspNetCore.Mvc.ResponseCacheLocation.None, NoStore=true)]
-    public partial class ErrorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ErrorModel() { }
-        public string RequestId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ShowRequestId { get { throw null; } }
-        public void OnGet() { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class IdentityServiceCollectionUIExtensions
-    {
-        public static Microsoft.AspNetCore.Identity.IdentityBuilder AddDefaultIdentity<TUser>(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TUser : class { throw null; }
-        public static Microsoft.AspNetCore.Identity.IdentityBuilder AddDefaultIdentity<TUser>(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<Microsoft.AspNetCore.Identity.IdentityOptions> configureOptions) where TUser : class { throw null; }
-    }
-}
diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V3/Account/ExternalLogin.cshtml.cs b/src/Identity/UI/src/Areas/Identity/Pages/V3/Account/ExternalLogin.cshtml.cs
index dbf5c24f641c28cdcc012866fba4a8c97a8c5f1c..896a7656a5fd9c0ab5ac0347077399fc50fc51c2 100644
--- a/src/Identity/UI/src/Areas/Identity/Pages/V3/Account/ExternalLogin.cshtml.cs
+++ b/src/Identity/UI/src/Areas/Identity/Pages/V3/Account/ExternalLogin.cshtml.cs
@@ -208,6 +208,14 @@ namespace Microsoft.AspNetCore.Identity.UI.V3.Pages.Account.Internal
 
                         await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                             $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
+                        
+                        // If account confirmation is required, we need to show the link if we don't have a real email sender
+                        if (_userManager.Options.SignIn.RequireConfirmedAccount)
+                        {
+                            return RedirectToPage("./RegisterConfirmation", new { Email = Input.Email });
+                        }
+
+                        await _signInManager.SignInAsync(user, isPersistent: false);
 
                         // If account confirmation is required, we need to show the link if we don't have a real email sender
                         if (_userManager.Options.SignIn.RequireConfirmedAccount)
diff --git a/src/Identity/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj b/src/Identity/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj
index f5b5354906e33241eaf880343d369b6d6f19c966..2c59fad47a77d694712aacf15fc3b7147e3d9f5f 100644
--- a/src/Identity/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj
+++ b/src/Identity/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj
@@ -5,6 +5,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <UserSecretsId>aspnetcore-2ff9bc27-5e8c-4484-90ca-e3aace89b72a</UserSecretsId>
     <IdentityUIFrameworkVersion>Bootstrap4</IdentityUIFrameworkVersion>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -31,6 +33,8 @@
     <Reference Include="Microsoft.Extensions.Hosting" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Debug" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/Identity/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj b/src/Identity/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj
index cfd9be2a039d950fa28413fe58fcd4f69dbc79a1..cb60d3e0095d1b2c49bc93dedb9d4b43351a0ab8 100644
--- a/src/Identity/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj
+++ b/src/Identity/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj
@@ -4,6 +4,8 @@
     <Description>Identity sample MVC application on ASP.NET Core</Description>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <UserSecretsId>aspnetcore-b3d20cbe-418e-4bf2-a0f4-57f91d067e07</UserSecretsId>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -27,5 +29,7 @@
     <Reference Include="Microsoft.Extensions.Configuration.UserSecrets" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Debug" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj b/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj
index 5e0e94e218ea2770267961c43cf545755dc3b773..0e8a4a1b87076be3ff8109b2bd1fd64145f9ba70 100644
--- a/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj
+++ b/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj
@@ -4,6 +4,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <!-- Test asset publishing not working on arm64 https://github.com/dotnet/aspnetcore/issues/11205 -->
     <SkipHelixArm>true</SkipHelixArm>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
    </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj b/src/Identity/testassets/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj
index 4b303fe2f2778afd7f6776d8e22a874448bb833c..7af6e012025e63dfeb21f8a181ba2947f6f11377 100644
--- a/src/Identity/testassets/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj
+++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj
@@ -4,6 +4,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <UserSecretsId>aspnet-Identity.DefaultUI.WebSite-80C658D8-CED7-467F-9B47-75DA3BC1A16D</UserSecretsId>
     <IdentityDefaultUIFramework>Bootstrap3</IdentityDefaultUIFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -42,6 +44,8 @@
     <Reference Include="Microsoft.Extensions.Logging.Configuration" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Debug" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
   <PropertyGroup>
diff --git a/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj b/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj
index cafd5c3d1e46e348bf58785f6058340560fd4b6f..ee3b3f707f396e771e77d1a7352ce2c7e5c7664e 100644
--- a/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj
+++ b/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj
@@ -21,7 +21,7 @@
     </ProjectReference>
 
     <InstallerOwnedDirectory Include="$(RpmPackageInstallRoot)packs/$(TargetingPackName)/" />
-    <RpmDependency Include="dotnet-targeting-pack-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)" Version="$(MicrosoftNETCoreAppRuntimeVersion.Split('-')[0])" />
+    <RpmDependency Include="dotnet-targeting-pack-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)" Version="$(MicrosoftNETCoreAppRefPackageVersion.Split('-')[0])" />
   </ItemGroup>
 
   <Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
diff --git a/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 b/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1
index b0c497b985f9989f5349792b6034be243ad83632..5be7b4d3d03183307be3df2fa0d0fb8a255771b3 100644
--- a/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1
+++ b/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1
@@ -12,7 +12,9 @@ param(
     [Parameter(Mandatory=$true)][string]$RepoRoot,
     [Parameter(Mandatory=$true)][string]$MajorVersion,
     [Parameter(Mandatory=$true)][string]$MinorVersion,
-    [Parameter(Mandatory=$true)][string]$PackageIconPath
+    [Parameter(Mandatory=$true)][string]$PackageIcon,
+    [Parameter(Mandatory=$true)][string]$PackageIconFullPath,
+    [Parameter(Mandatory=$true)][string]$PackageLicenseExpression
 )
 
 $NuGetDir = Join-Path $RepoRoot "artifacts\Tools\nuget\$Name\$Architecture"
@@ -23,10 +25,15 @@ if (-not (Test-Path $NuGetDir)) {
 }
 
 if (-not (Test-Path $NuGetExe)) {
-    # Using 3.5.0 to workaround https://github.com/NuGet/Home/issues/5016
+    # Using 5.3.0 to workaround https://github.com/NuGet/Home/issues/5016
     Write-Output "Downloading nuget.exe to $NuGetExe"
     wget https://dist.nuget.org/win-x86-commandline/v5.3.0/nuget.exe -OutFile $NuGetExe
 }
 
-& $NuGetExe pack $NuspecFile -Version $PackageVersion -OutputDirectory $OutputDirectory -NoDefaultExcludes -NoPackageAnalysis -Properties ASPNETCORE_RUNTIME_MSI=$MsiPath`;ASPNETCORE_CAB_FILE=$CabPath`;ARCH=$Architecture`;MAJOR=$MajorVersion`;MINOR=$MinorVersion`;PACKAGE_ICON_PATH=$PackageIconPath`;
-Exit $LastExitCode
\ No newline at end of file
+& $NuGetExe pack $NuspecFile `
+    -Version $PackageVersion `
+    -OutputDirectory $OutputDirectory `
+    -NoDefaultExcludes `
+    -NoPackageAnalysis `
+    -Properties ASPNETCORE_RUNTIME_MSI=$MsiPath`;ASPNETCORE_CAB_FILE=$CabPath`;ARCH=$Architecture`;MAJOR=$MajorVersion`;MINOR=$MinorVersion`;PackageIcon=$PackageIcon`;PackageIconFullPath=$PackageIconFullPath`;PackageLicenseExpression=$PackageLicenseExpression`;
+Exit $LastExitCode
diff --git a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj
index ab12fc945fc6995283d9181f3f83125718c0a4f9..03b0a4a31a6418b65091d3be65a6591c2715a9e5 100644
--- a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj
+++ b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj
@@ -102,6 +102,8 @@
                       '$(RepoRoot)' ^
                       '$(AspNetCoreMajorVersion)' ^
                       '$(AspNetCoreMinorVersion)' ^
-                      '$(PackageIconFullPath)'" />
+                      '$(PackageIcon)' ^
+                      '$(PackageIconFullPath)' ^
+                      '$(PackageLicenseExpression)' " />
   </Target>
 </Project>
diff --git a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec
index 946588c887bef6cddf353b95d6d48149f89cc88f..9170cd268a1d8499aefcb04952eece63a937e8ec 100644
--- a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec
+++ b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec
@@ -6,8 +6,9 @@
         <title>VS.Redist.Common.AspNetCore.SharedFramework.$ARCH$.$MAJOR$.$MINOR$</title>
         <authors>Microsoft</authors>
         <owners>Microsoft</owners>
-        <licenseUrl>https://www.microsoft.com/net/dotnet_library_license.htm</licenseUrl>
+        <license type="expression">$PackageLicenseExpression$</license>
         <projectUrl>https://github.com/dotnet/aspnetcore</projectUrl>
+        <icon>$PackageIcon$</icon>
         <requireLicenseAcceptance>true</requireLicenseAcceptance>
         <description>$MAJOR$.$MINOR$ ASP.NET Core TargetingPack ($ARCH$) Windows Installer MSI as a .nupkg for internal Visual Studio build consumption</description>
         <copyright>© Microsoft Corporation. All rights reserved.</copyright>
@@ -15,6 +16,6 @@
     <files>
         <file src="$ASPNETCORE_RUNTIME_MSI$" />
         <file src="$ASPNETCORE_CAB_FILE$" />
-        <file src="$PACKAGE_ICON_PATH$" target="" />
+        <file src="$PackageIconFullPath$" target="$PackageIcon$" />
     </files>
 </package>
diff --git a/src/Installers/Windows/SharedFrameworkBundle/thm.xml b/src/Installers/Windows/SharedFrameworkBundle/thm.xml
index c6e709b039f788bb1d8b2293faa7a2a7102deebc..4873d0af14bb56d6f462521bfc5316f37ac49d82 100644
--- a/src/Installers/Windows/SharedFrameworkBundle/thm.xml
+++ b/src/Installers/Windows/SharedFrameworkBundle/thm.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Theme xmlns="http://wixtoolset.org/schemas/thmutil/2010">
-    <Window Width="585" Height="317" HexStyle="100a0000" FontId="0">#(loc.Caption)</Window>
+    <Window Width="585" Height="347" HexStyle="100a0000" FontId="0">#(loc.Caption)</Window>
     <Font Id="0" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
     <Font Id="1" Height="-24" Weight="500" Foreground="000000">Segoe UI</Font>
     <Font Id="2" Height="-22" Weight="500" Foreground="666666">Segoe UI</Font>
diff --git a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj
index 8b47c156e30a4a7aef1c139ea4651476a5ca4b0c..3c233ce1d307d21455d82e257cc0ae42daf2f9c3 100644
--- a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj
+++ b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj
@@ -100,6 +100,8 @@
                       '$(RepoRoot)' ^
                       '$(AspNetCoreMajorVersion)' ^
                       '$(AspNetCoreMinorVersion)' ^
-                      '$(PackageIconFullPath)'" />
+                      '$(PackageIcon)' ^
+                      '$(PackageIconFullPath)' ^
+                      '$(PackageLicenseExpression)' " />
   </Target>
 </Project>
diff --git a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec
index f814533970c01abffb6902fecd772c83e4ebda5b..a74d9b0e1ecd9b5df4a20d0972eb1078e1350065 100644
--- a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec
+++ b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec
@@ -6,14 +6,15 @@
         <title>VS.Redist.Common.AspNetCore.TargetingPack.$ARCH$.$MAJOR$.$MINOR$</title>
         <authors>Microsoft</authors>
         <owners>Microsoft</owners>
-        <licenseUrl>https://www.microsoft.com/net/dotnet_library_license.htm</licenseUrl>
+        <license type="expression">$PackageLicenseExpression$</license>
         <projectUrl>https://github.com/dotnet/aspnetcore</projectUrl>
+        <icon>$PackageIcon$</icon>
         <requireLicenseAcceptance>true</requireLicenseAcceptance>
         <description>$MAJOR$.$MINOR$ ASP.NET Core TargetingPack ($ARCH$) Windows Installer MSI as a .nupkg for internal Visual Studio build consumption</description>
         <copyright>© Microsoft Corporation. All rights reserved.</copyright>
     </metadata>
     <files>
         <file src="$ASPNETCORE_RUNTIME_MSI$" />
-        <file src="$PACKAGE_ICON_PATH$" target="" />
+        <file src="$PackageIconFullPath$" target="$PackageIcon$" />
     </files>
 </package>
diff --git a/src/Installers/Windows/WindowsHostingBundle/Product.targets b/src/Installers/Windows/WindowsHostingBundle/Product.targets
index ea34ff172d65b5f66aca2f0a74860722d3351bf1..bb09f9c65c6db2205e1b1e40026d1ab86a9816dd 100644
--- a/src/Installers/Windows/WindowsHostingBundle/Product.targets
+++ b/src/Installers/Windows/WindowsHostingBundle/Product.targets
@@ -23,13 +23,15 @@
     <PropertyGroup>
       <DotNetAssetRootUrl Condition=" '$(DotNetAssetRootUrl)' == '' ">https://dotnetcli.azureedge.net/dotnet/</DotNetAssetRootUrl>
       <DotNetAssetRootUrl Condition=" ! $(DotNetAssetRootUrl.EndsWith('/'))">$(DotNetAssetRootUrl)/</DotNetAssetRootUrl>
+      <DotNetPrivateAssetRootUrl Condition=" '$(DotNetPrivateAssetRootUrl)' == '' ">https://dotnetclimsrc.azureedge.net/dotnet/</DotNetPrivateAssetRootUrl>
+      <DotNetPrivateAssetRootUrl Condition=" ! $(DotNetPrivateAssetRootUrl.EndsWith('/'))">$(DotNetPrivateAssetRootUrl)/</DotNetPrivateAssetRootUrl>
     </PropertyGroup>
 
     <ItemGroup>
-      <RemoteAsset Include="$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x64.exe$(DotNetAssetRootAccessTokenSuffix)">
+      <RemoteAsset Include="Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x64.exe">
         <TargetFileName>dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x64.exe</TargetFileName>
       </RemoteAsset>
-      <RemoteAsset Include="$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x86.exe$(DotNetAssetRootAccessTokenSuffix)">
+      <RemoteAsset Include="Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x86.exe">
         <TargetFileName>dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x86.exe</TargetFileName>
       </RemoteAsset>
     </ItemGroup>
@@ -37,7 +39,10 @@
     <MakeDir Directories="$(DepsPath)" />
 
     <DownloadFile Condition=" ! Exists('$(DepsPath)%(RemoteAsset.TargetFileName)') "
-                  SourceUrl="%(RemoteAsset.Identity)" DestinationFolder="$(DepsPath)" DestinationFileName="%(RemoteAsset.TargetFileName)" />
+                  Uri="$(DotNetAssetRootUrl)%(RemoteAsset.Identity)"
+                  PrivateUri="$(DotNetPrivateAssetRootUrl)%(RemoteAsset.Identity)"
+                  PrivateUriSuffix="$(DotNetAssetRootAccessTokenSuffix)"
+                  DestinationPath="$(DepsPath)%(RemoteAsset.TargetFileName)" />
   </Target>
 
   <Target Name="ExtractPropertiesFromDotNetMsi" DependsOnTargets="FetchDependencies" BeforeTargets="BeforeBuild">
diff --git a/src/Installers/Windows/WindowsHostingBundle/thm.xml b/src/Installers/Windows/WindowsHostingBundle/thm.xml
index 29404280a1c2c5d89023b9fa05ecf7af24cd9437..8ec784cd41b558703b967918ac7e442f40c74ef5 100644
--- a/src/Installers/Windows/WindowsHostingBundle/thm.xml
+++ b/src/Installers/Windows/WindowsHostingBundle/thm.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Theme xmlns="http://wixtoolset.org/schemas/thmutil/2010">
-    <Window Width="485" Height="317" HexStyle="100a0000" FontId="0">#(loc.Caption)</Window>
+    <Window Width="485" Height="347" HexStyle="100a0000" FontId="0">#(loc.Caption)</Window>
     <Font Id="0" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
     <Font Id="1" Height="-24" Weight="500" Foreground="000000">Segoe UI</Font>
     <Font Id="2" Height="-22" Weight="500" Foreground="666666">Segoe UI</Font>
diff --git a/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.Manual.cs b/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e2ca285e3c8b3d70139503949e7f6a4e3450fc44
--- /dev/null
+++ b/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.Manual.cs
@@ -0,0 +1,30 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Cors
+{
+    internal static partial class Resources
+    {
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string InsecureConfiguration { get { throw null; } }
+        internal static string PreflightMaxAgeOutOfRange { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Cors.Infrastructure
+{
+    public partial class CorsPolicyBuilder
+    {
+        internal static string GetNormalizedOrigin(string origin) { throw null; }
+    }
+    internal static partial class CorsPolicyExtensions
+    {
+        public static bool IsOriginAnAllowedSubdomain(this Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, string origin) { throw null; }
+    }
+    internal static partial class UriHelpers
+    {
+        public static bool IsSubdomainOf(System.Uri subdomain, System.Uri domain) { throw null; }
+    }
+}
diff --git a/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj b/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj
index ae28a559760f29f567bef15a4f404065abaa2a0b..e68445f8989fa1375e74111adca7bceb11feb4a2 100644
--- a/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj
+++ b/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj
@@ -5,11 +5,13 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Cors.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="Microsoft.AspNetCore.Cors.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.Extensions.Configuration.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj b/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj
index 9471fd7465f58bdfa64b2b1f4dd13396527e5da8..656043ab16be64c53bf0f007419694e6609d02e4 100644
--- a/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj
+++ b/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj
@@ -10,7 +10,7 @@ Microsoft.AspNetCore.Cors.EnableCorsAttribute</Description>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;cors</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/ConcurrencyLimiter/ref/Microsoft.AspNetCore.ConcurrencyLimiter.csproj b/src/Middleware/ConcurrencyLimiter/ref/Microsoft.AspNetCore.ConcurrencyLimiter.csproj
deleted file mode 100644
index 1b36bc0211bbbe7b5fde3106d77bda7251921731..0000000000000000000000000000000000000000
--- a/src/Middleware/ConcurrencyLimiter/ref/Microsoft.AspNetCore.ConcurrencyLimiter.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.ConcurrencyLimiter.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Extensions.ValueStopwatch.Sources"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/ConcurrencyLimiter/ref/Microsoft.AspNetCore.ConcurrencyLimiter.netcoreapp.cs b/src/Middleware/ConcurrencyLimiter/ref/Microsoft.AspNetCore.ConcurrencyLimiter.netcoreapp.cs
deleted file mode 100644
index e96ad664575ea4c7b589b2282c87cbddb09c9634..0000000000000000000000000000000000000000
--- a/src/Middleware/ConcurrencyLimiter/ref/Microsoft.AspNetCore.ConcurrencyLimiter.netcoreapp.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Builder
-{
-    public static partial class ConcurrencyLimiterExtensions
-    {
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseConcurrencyLimiter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.ConcurrencyLimiter
-{
-    public partial class ConcurrencyLimiterMiddleware
-    {
-        public ConcurrencyLimiterMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.ConcurrencyLimiter.IQueuePolicy queue, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterOptions> options) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; }
-    }
-    public partial class ConcurrencyLimiterOptions
-    {
-        public ConcurrencyLimiterOptions() { }
-        public Microsoft.AspNetCore.Http.RequestDelegate OnRejected { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial interface IQueuePolicy
-    {
-        void OnExit();
-        System.Threading.Tasks.ValueTask<bool> TryEnterAsync();
-    }
-    public partial class QueuePolicyOptions
-    {
-        public QueuePolicyOptions() { }
-        public int MaxConcurrentRequests { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int RequestQueueLimit { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class QueuePolicyServiceCollectionExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddQueuePolicy(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions> configure) { throw null; }
-        public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddStackPolicy(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions> configure) { throw null; }
-    }
-}
diff --git a/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj b/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
index b8673b97857de6c12bcab668025f90e898d4732d..e7e3b130242b7f5c5253d9e33e0f7c0f7de6b0d1 100644
--- a/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
+++ b/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
@@ -5,6 +5,6 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Diagnostics.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj b/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
index 4852ab174d042d098bea160c3f8de3346209dc2a..6b4d54af4f4904d704289ec99194fd5e9219efd9 100644
--- a/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
+++ b/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;diagnostics</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/Diagnostics.EntityFrameworkCore/ref/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj b/src/Middleware/Diagnostics.EntityFrameworkCore/ref/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj
deleted file mode 100644
index 223568b68e5752dc5cb5d5b9014994c0dad18e2c..0000000000000000000000000000000000000000
--- a/src/Middleware/Diagnostics.EntityFrameworkCore/ref/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.EntityFrameworkCore.Relational"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/Diagnostics.EntityFrameworkCore/ref/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.netcoreapp.cs b/src/Middleware/Diagnostics.EntityFrameworkCore/ref/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.netcoreapp.cs
deleted file mode 100644
index e358254af34dc779d1134da7faca5192bee5b357..0000000000000000000000000000000000000000
--- a/src/Middleware/Diagnostics.EntityFrameworkCore/ref/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.netcoreapp.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Builder
-{
-    public static partial class DatabaseErrorPageExtensions
-    {
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDatabaseErrorPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDatabaseErrorPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DatabaseErrorPageOptions options) { throw null; }
-    }
-    public partial class DatabaseErrorPageOptions
-    {
-        public DatabaseErrorPageOptions() { }
-        public virtual Microsoft.AspNetCore.Http.PathString MigrationsEndPointPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public static partial class MigrationsEndPointExtensions
-    {
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMigrationsEndPoint(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMigrationsEndPoint(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.MigrationsEndPointOptions options) { throw null; }
-    }
-    public partial class MigrationsEndPointOptions
-    {
-        public static Microsoft.AspNetCore.Http.PathString DefaultPath;
-        public MigrationsEndPointOptions() { }
-        public virtual Microsoft.AspNetCore.Http.PathString Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
-{
-    public partial class DatabaseErrorPageMiddleware : System.IObserver<System.Collections.Generic.KeyValuePair<string, object>>, System.IObserver<System.Diagnostics.DiagnosticListener>
-    {
-        public DatabaseErrorPageMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Builder.DatabaseErrorPageOptions> options) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
-        void System.IObserver<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.OnCompleted() { }
-        void System.IObserver<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.OnError(System.Exception error) { }
-        void System.IObserver<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.OnNext(System.Collections.Generic.KeyValuePair<string, object> keyValuePair) { }
-        void System.IObserver<System.Diagnostics.DiagnosticListener>.OnCompleted() { }
-        void System.IObserver<System.Diagnostics.DiagnosticListener>.OnError(System.Exception error) { }
-        void System.IObserver<System.Diagnostics.DiagnosticListener>.OnNext(System.Diagnostics.DiagnosticListener diagnosticListener) { }
-    }
-    public partial class MigrationsEndPointMiddleware
-    {
-        public MigrationsEndPointMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware> logger, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Builder.MigrationsEndPointOptions> options) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; }
-    }
-}
diff --git a/src/Middleware/Diagnostics.EntityFrameworkCore/test/FunctionalTests/Diagnostics.EFCore.FunctionalTests.csproj b/src/Middleware/Diagnostics.EntityFrameworkCore/test/FunctionalTests/Diagnostics.EFCore.FunctionalTests.csproj
index 11fec3c8b8ba1cfaa4e354e8d2b5448179793cfe..d8c8f7598977b7e788cffd5f083cf6e67b545bb8 100644
--- a/src/Middleware/Diagnostics.EntityFrameworkCore/test/FunctionalTests/Diagnostics.EFCore.FunctionalTests.csproj
+++ b/src/Middleware/Diagnostics.EntityFrameworkCore/test/FunctionalTests/Diagnostics.EFCore.FunctionalTests.csproj
@@ -4,12 +4,17 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <!-- Mitigation for long path issues -->
     <AssemblyName>Diagnostics.EFCore.FunctionalTests</AssemblyName>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" />
     <Reference Include="Microsoft.AspNetCore.TestHost" />
     <Reference Include="Microsoft.EntityFrameworkCore.Sqlite" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Middleware/Diagnostics.EntityFrameworkCore/test/UnitTests/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.Tests.csproj b/src/Middleware/Diagnostics.EntityFrameworkCore/test/UnitTests/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.Tests.csproj
index c10097fd17d67229155709c3e91f73ce5d89c0e3..619ade142136d86c155070177aec8383b8a7b1cc 100644
--- a/src/Middleware/Diagnostics.EntityFrameworkCore/test/UnitTests/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.Tests.csproj
+++ b/src/Middleware/Diagnostics.EntityFrameworkCore/test/UnitTests/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.Tests.csproj
@@ -2,11 +2,15 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" />
     <Reference Include="Microsoft.EntityFrameworkCore.InMemory" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 
diff --git a/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.Manual.cs b/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1ec2cf85ff3e19e278d0931e89f37b32ce0637b6
--- /dev/null
+++ b/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.Manual.cs
@@ -0,0 +1,32 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.Extensions.StackTrace.Sources
+{
+    internal partial class ExceptionDetails
+    {
+        public ExceptionDetails() { }
+        public System.Exception Error { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ErrorMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IEnumerable<Microsoft.Extensions.StackTrace.Sources.StackFrameSourceCodeInfo> StackFrames { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class ExceptionDetailsProvider
+    {
+        public ExceptionDetailsProvider(Microsoft.Extensions.FileProviders.IFileProvider fileProvider, int sourceCodeLineCount) { }
+        public System.Collections.Generic.IEnumerable<Microsoft.Extensions.StackTrace.Sources.ExceptionDetails> GetDetails(System.Exception exception) { throw null; }
+        internal Microsoft.Extensions.StackTrace.Sources.StackFrameSourceCodeInfo GetStackFrameSourceCodeInfo(string method, string filePath, int lineNumber) { throw null; }
+        internal void ReadFrameContent(Microsoft.Extensions.StackTrace.Sources.StackFrameSourceCodeInfo frame, System.Collections.Generic.IEnumerable<string> allLines, int errorStartLineNumberInFile, int errorEndLineNumberInFile) { }
+    }
+    internal partial class StackFrameSourceCodeInfo
+    {
+        public StackFrameSourceCodeInfo() { }
+        public System.Collections.Generic.IEnumerable<string> ContextCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ErrorDetails { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string File { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Function { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int Line { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IEnumerable<string> PostContextCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IEnumerable<string> PreContextCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int PreContextLine { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+}
diff --git a/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj b/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj
index 1cb4a825a63988c57d758364a1fb317c5b86404b..8b601f48e3c31b4d59c50e9e36c7de8732c0827a 100644
--- a/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj
+++ b/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj
@@ -5,14 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Diagnostics.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Diagnostics.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.AspNetCore.WebUtilities"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Physical"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources"  />
+    <Compile Include="Microsoft.AspNetCore.Diagnostics.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Diagnostics.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.AspNetCore.WebUtilities" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Physical" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj b/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj
index 6a82485ad685b61c321a75765b6d5d59f35b82df..a8ac2a09018d5a90b6a751ffbfeaf27c8fcae256 100644
--- a/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj
+++ b/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;diagnostics</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/Diagnostics/test/testassets/DatabaseErrorPageSample/DatabaseErrorPageSample.csproj b/src/Middleware/Diagnostics/test/testassets/DatabaseErrorPageSample/DatabaseErrorPageSample.csproj
index f110f1152d0261323e1319ae75c8324e684267ec..a5fa42625ffb7bc3b2c127c6f91332d585289bce 100644
--- a/src/Middleware/Diagnostics/test/testassets/DatabaseErrorPageSample/DatabaseErrorPageSample.csproj
+++ b/src/Middleware/Diagnostics/test/testassets/DatabaseErrorPageSample/DatabaseErrorPageSample.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -13,6 +15,8 @@
     <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
     <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
     <Reference Include="Microsoft.EntityFrameworkCore.Sqlite" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Middleware/HeaderPropagation/ref/Microsoft.AspNetCore.HeaderPropagation.csproj b/src/Middleware/HeaderPropagation/ref/Microsoft.AspNetCore.HeaderPropagation.csproj
deleted file mode 100644
index 47f0e56bb4d5aa7a8f3fbfcd162bf2930cb99199..0000000000000000000000000000000000000000
--- a/src/Middleware/HeaderPropagation/ref/Microsoft.AspNetCore.HeaderPropagation.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.HeaderPropagation.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.Extensions.Http"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/HeaderPropagation/ref/Microsoft.AspNetCore.HeaderPropagation.netcoreapp.cs b/src/Middleware/HeaderPropagation/ref/Microsoft.AspNetCore.HeaderPropagation.netcoreapp.cs
deleted file mode 100644
index 72f8f37c2e03c6bf6ca312cf60e92007c3f77a0e..0000000000000000000000000000000000000000
--- a/src/Middleware/HeaderPropagation/ref/Microsoft.AspNetCore.HeaderPropagation.netcoreapp.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Builder
-{
-    public static partial class HeaderPropagationApplicationBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHeaderPropagation(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.HeaderPropagation
-{
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct HeaderPropagationContext
-    {
-        private readonly object _dummy;
-        private readonly int _dummyPrimitive;
-        public HeaderPropagationContext(Microsoft.AspNetCore.Http.HttpContext httpContext, string headerName, Microsoft.Extensions.Primitives.StringValues headerValue) { throw null; }
-        public string HeaderName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.Extensions.Primitives.StringValues HeaderValue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.Http.HttpContext HttpContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public partial class HeaderPropagationEntry
-    {
-        public HeaderPropagationEntry(string inboundHeaderName, string capturedHeaderName, System.Func<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext, Microsoft.Extensions.Primitives.StringValues> valueFilter) { }
-        public string CapturedHeaderName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string InboundHeaderName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public System.Func<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext, Microsoft.Extensions.Primitives.StringValues> ValueFilter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public sealed partial class HeaderPropagationEntryCollection : System.Collections.ObjectModel.Collection<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntry>
-    {
-        public HeaderPropagationEntryCollection() { }
-        public void Add(string headerName) { }
-        public void Add(string headerName, System.Func<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext, Microsoft.Extensions.Primitives.StringValues> valueFilter) { }
-        public void Add(string inboundHeaderName, string outboundHeaderName) { }
-        public void Add(string inboundHeaderName, string outboundHeaderName, System.Func<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext, Microsoft.Extensions.Primitives.StringValues> valueFilter) { }
-    }
-    public partial class HeaderPropagationMessageHandler : System.Net.Http.DelegatingHandler
-    {
-        public HeaderPropagationMessageHandler(Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerOptions options, Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues values) { }
-        protected override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-    public partial class HeaderPropagationMessageHandlerEntry
-    {
-        public HeaderPropagationMessageHandlerEntry(string capturedHeaderName, string outboundHeaderName) { }
-        public string CapturedHeaderName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string OutboundHeaderName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public sealed partial class HeaderPropagationMessageHandlerEntryCollection : System.Collections.ObjectModel.Collection<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntry>
-    {
-        public HeaderPropagationMessageHandlerEntryCollection() { }
-        public void Add(string headerName) { }
-        public void Add(string capturedHeaderName, string outboundHeaderName) { }
-    }
-    public partial class HeaderPropagationMessageHandlerOptions
-    {
-        public HeaderPropagationMessageHandlerOptions() { }
-        public Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntryCollection Headers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class HeaderPropagationMiddleware
-    {
-        public HeaderPropagationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationOptions> options, Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues values) { }
-        public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; }
-    }
-    public partial class HeaderPropagationOptions
-    {
-        public HeaderPropagationOptions() { }
-        public Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection Headers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class HeaderPropagationValues
-    {
-        public HeaderPropagationValues() { }
-        public System.Collections.Generic.IDictionary<string, Microsoft.Extensions.Primitives.StringValues> Headers { get { throw null; } set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class HeaderPropagationHttpClientBuilderExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) { throw null; }
-        public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerOptions> configure) { throw null; }
-    }
-    public static partial class HeaderPropagationServiceCollectionExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) { throw null; }
-        public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Middleware/HeaderPropagation/src/HeaderPropagationMiddleware.cs b/src/Middleware/HeaderPropagation/src/HeaderPropagationMiddleware.cs
index f62c9e4a72bd65769ffe7c53dbcc8d89ba715b49..bd24fb63e2e5c3f8912d487121968159bcf36507 100644
--- a/src/Middleware/HeaderPropagation/src/HeaderPropagationMiddleware.cs
+++ b/src/Middleware/HeaderPropagation/src/HeaderPropagationMiddleware.cs
@@ -33,7 +33,8 @@ namespace Microsoft.AspNetCore.HeaderPropagation
             _values = values ?? throw new ArgumentNullException(nameof(values));
         }
 
-        public Task Invoke(HttpContext context)
+        // This needs to be async as otherwise the AsyncLocal could bleed across requests, see https://github.com/aspnet/AspNetCore/issues/13991.
+        public async Task Invoke(HttpContext context)
         {
             // We need to intialize the headers because the message handler will use this to detect misconfiguration.
             var headers = _values.Headers ??= new Dictionary<string, StringValues>(StringComparer.OrdinalIgnoreCase);
@@ -56,7 +57,7 @@ namespace Microsoft.AspNetCore.HeaderPropagation
                 }
             }
 
-            return _next.Invoke(context);
+            await _next.Invoke(context);
         }
 
         private static StringValues GetValue(HttpContext context, HeaderPropagationEntry entry)
diff --git a/src/Middleware/HeaderPropagation/test/HeaderPropagationMiddlewareTest.cs b/src/Middleware/HeaderPropagation/test/HeaderPropagationMiddlewareTest.cs
index f6576d2d688dfcc3dc04023bb08cb99c47a91204..99bb4997a5ef3f3a680457b7b19fb059ea54f45c 100644
--- a/src/Middleware/HeaderPropagation/test/HeaderPropagationMiddlewareTest.cs
+++ b/src/Middleware/HeaderPropagation/test/HeaderPropagationMiddlewareTest.cs
@@ -1,6 +1,8 @@
 // Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
+using System;
+using System.Collections.Generic;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.Options;
@@ -14,7 +16,11 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
         public HeaderPropagationMiddlewareTest()
         {
             Context = new DefaultHttpContext();
-            Next = ctx => Task.CompletedTask;
+            Next = ctx =>
+            {
+                CapturedHeaders = State.Headers;
+                return Task.CompletedTask;
+            };
             Configuration = new HeaderPropagationOptions();
             State = new HeaderPropagationValues();
             Middleware = new HeaderPropagationMiddleware(Next,
@@ -24,8 +30,10 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
 
         public DefaultHttpContext Context { get; set; }
         public RequestDelegate Next { get; set; }
+        public Action Assertion { get; set; }
         public HeaderPropagationOptions Configuration { get; set; }
         public HeaderPropagationValues State { get; set; }
+        public IDictionary<string, StringValues> CapturedHeaders { get; set; }
         public HeaderPropagationMiddleware Middleware { get; set; }
 
         [Fact]
@@ -39,8 +47,8 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.Contains("in", State.Headers.Keys);
-            Assert.Equal(new[] { "test" }, State.Headers["in"]);
+            Assert.Contains("in", CapturedHeaders.Keys);
+            Assert.Equal(new[] { "test" }, CapturedHeaders["in"]);
         }
 
         [Fact]
@@ -53,7 +61,7 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.Empty(State.Headers);
+            Assert.Empty(CapturedHeaders);
         }
 
         [Fact]
@@ -66,7 +74,7 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.Empty(State.Headers);
+            Assert.Empty(CapturedHeaders);
         }
 
         [Fact]
@@ -82,10 +90,10 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.Contains("in", State.Headers.Keys);
-            Assert.Equal(new[] { "test" }, State.Headers["in"]);
-            Assert.Contains("another", State.Headers.Keys);
-            Assert.Equal(new[] { "test2" }, State.Headers["another"]);
+            Assert.Contains("in", CapturedHeaders.Keys);
+            Assert.Equal(new[] { "test" }, CapturedHeaders["in"]);
+            Assert.Contains("another", CapturedHeaders.Keys);
+            Assert.Equal(new[] { "test2" }, CapturedHeaders["another"]);
         }
 
         [Theory]
@@ -101,7 +109,7 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.DoesNotContain("in", State.Headers.Keys);
+            Assert.DoesNotContain("in", CapturedHeaders.Keys);
         }
 
         [Theory]
@@ -127,8 +135,8 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.Contains("in", State.Headers.Keys);
-            Assert.Equal(expectedValues, State.Headers["in"]);
+            Assert.Contains("in", CapturedHeaders.Keys);
+            Assert.Equal(expectedValues, CapturedHeaders["in"]);
             Assert.Equal("in", receivedName);
             Assert.Equal(new StringValues("value"), receivedValue);
             Assert.Same(Context, receivedContext);
@@ -145,8 +153,8 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.Contains("in", State.Headers.Keys);
-            Assert.Equal("test", State.Headers["in"]);
+            Assert.Contains("in", CapturedHeaders.Keys);
+            Assert.Equal("test", CapturedHeaders["in"]);
         }
 
         [Fact]
@@ -159,7 +167,7 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.DoesNotContain("in", State.Headers.Keys);
+            Assert.DoesNotContain("in", CapturedHeaders.Keys);
         }
 
         [Fact]
@@ -174,8 +182,46 @@ namespace Microsoft.AspNetCore.HeaderPropagation.Tests
             await Middleware.Invoke(Context);
 
             // Assert
-            Assert.Contains("in", State.Headers.Keys);
-            Assert.Equal("Test", State.Headers["in"]);
+            Assert.Contains("in", CapturedHeaders.Keys);
+            Assert.Equal("Test", CapturedHeaders["in"]);
+        }
+
+        [Fact]
+        public async Task HeaderInRequest_WithBleedAsyncLocal_HasCorrectValue()
+        {
+            // Arrange
+            Configuration.Headers.Add("in");
+
+            // Process first request
+            Context.Request.Headers.Add("in", "dirty");
+            await Middleware.Invoke(Context);
+
+            // Process second request
+            Context = new DefaultHttpContext();
+            Context.Request.Headers.Add("in", "test");
+            await Middleware.Invoke(Context);
+
+            // Assert
+            Assert.Contains("in", CapturedHeaders.Keys);
+            Assert.Equal(new[] { "test" }, CapturedHeaders["in"]);
+        }
+
+        [Fact]
+        public async Task NoHeaderInRequest_WithBleedAsyncLocal_DoesNotHaveIt()
+        {
+            // Arrange
+            Configuration.Headers.Add("in");
+
+            // Process first request
+            Context.Request.Headers.Add("in", "dirty");
+            await Middleware.Invoke(Context);
+
+            // Process second request
+            Context = new DefaultHttpContext();
+            await Middleware.Invoke(Context);
+
+            // Assert
+            Assert.Empty(CapturedHeaders);
         }
     }
 }
diff --git a/src/Middleware/HealthChecks.EntityFrameworkCore/ref/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj b/src/Middleware/HealthChecks.EntityFrameworkCore/ref/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj
deleted file mode 100644
index 0f5cd79b7d6af05eae8149f9d6989a1a4e07be7c..0000000000000000000000000000000000000000
--- a/src/Middleware/HealthChecks.EntityFrameworkCore/ref/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.1</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
-    <Compile Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.netstandard2.1.cs" />
-    <Reference Include="Microsoft.EntityFrameworkCore.Relational"  />
-    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/HealthChecks.EntityFrameworkCore/ref/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.netstandard2.1.cs b/src/Middleware/HealthChecks.EntityFrameworkCore/ref/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.netstandard2.1.cs
deleted file mode 100644
index e8fdd147a327d88d0915da66ab6418ae3df56abb..0000000000000000000000000000000000000000
--- a/src/Middleware/HealthChecks.EntityFrameworkCore/ref/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.netstandard2.1.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class EntityFrameworkCoreHealthChecksBuilderExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddDbContextCheck<TContext>(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name = null, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus = default(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus?), System.Collections.Generic.IEnumerable<string> tags = null, System.Func<TContext, System.Threading.CancellationToken, System.Threading.Tasks.Task<bool>> customTestQuery = null) where TContext : Microsoft.EntityFrameworkCore.DbContext { throw null; }
-    }
-}
diff --git a/src/Middleware/HealthChecks.EntityFrameworkCore/test/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.Tests.csproj b/src/Middleware/HealthChecks.EntityFrameworkCore/test/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.Tests.csproj
index 7cd8abe25227c7cfbd562d782d26626d160c442c..87931fac8cd01cdcbe2548b250c78d65a1750e7a 100644
--- a/src/Middleware/HealthChecks.EntityFrameworkCore/test/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.Tests.csproj
+++ b/src/Middleware/HealthChecks.EntityFrameworkCore/test/Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.Tests.csproj
@@ -3,12 +3,18 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <RootNamespace>Microsoft.AspNetCore.Diagnostics.HealthChecks</RootNamespace>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.EntityFrameworkCore.InMemory" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
+    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj b/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
index 0fbb1b252ab53a97e6348d63115c5e8d2b216437..9169ea785475e767a49494ff70620be41eb7334a 100644
--- a/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
+++ b/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
@@ -5,10 +5,10 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Diagnostics.HealthChecks.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/HealthChecks/src/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj b/src/Middleware/HealthChecks/src/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
index 21126ad99455dfdb07d38adbb6b63c4378887524..99c01627f6c1d508b2d4b54dacdcc8902303031c 100644
--- a/src/Middleware/HealthChecks/src/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
+++ b/src/Middleware/HealthChecks/src/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>diagnostics;healthchecks</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj b/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj
index 6547dc72325411cd5f5790042b3e30e2a0cc8d25..9e03c3da4b7a82fce7b0f248d796270e630f72a5 100644
--- a/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj
+++ b/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -15,6 +17,10 @@
     <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Newtonsoft.Json" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
+    <Reference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj b/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj
index 4329a9a756649553e986a2f57a25ec03f55819d9..756989c77e2dc3e93bd767597e6642f86511db64 100644
--- a/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj
+++ b/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj
@@ -5,9 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.HostFiltering.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj b/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj
index 0a0eb0383bcb00b14b0c0a0ac8d09214f497d5b0..b1098f3cea32410141ef795bf0c3d718fc5736c2 100644
--- a/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj
+++ b/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj
@@ -8,7 +8,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj b/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj
index 1e82fd966c550ed43810c1700456f7979f06ff10..a0cfdb1e1cb4a98f3f1f290436cf51a8d1b83216 100644
--- a/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj
+++ b/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.HttpOverrides.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj b/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj
index 000ca9b6d358248e30d3df44f521b636d722a439..aa225718c4cc3c218b53e78bdc558dee3a7ff78d 100644
--- a/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj
+++ b/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj
@@ -9,7 +9,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;proxy;headers;xforwarded</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj b/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj
index 11cc92a331ebf7fd9f0ee451bc10f263104f6c13..d0c49085d97569096ce1888ce0ae675a90328479 100644
--- a/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj
+++ b/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj
@@ -5,10 +5,10 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.HttpsPolicy.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Binder"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Configuration.Binder" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/HttpsPolicy/src/Microsoft.AspNetCore.HttpsPolicy.csproj b/src/Middleware/HttpsPolicy/src/Microsoft.AspNetCore.HttpsPolicy.csproj
index dbde5e594bbfb19d71e9964374ba9ef06151c8ee..c6c14dd30dad881d9600c2ae5967f5542a75fffb 100644
--- a/src/Middleware/HttpsPolicy/src/Microsoft.AspNetCore.HttpsPolicy.csproj
+++ b/src/Middleware/HttpsPolicy/src/Microsoft.AspNetCore.HttpsPolicy.csproj
@@ -9,7 +9,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;https;hsts</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj b/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj
index 901f6f9fef436ef6313dfa6e2bea7bc40ebd7806..fea93edacce303d70ee6f2660e65b330fa4e4b1c 100644
--- a/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj
+++ b/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Localization.Routing.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Localization"  />
-    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Localization" />
+    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/Localization.Routing/src/Microsoft.AspNetCore.Localization.Routing.csproj b/src/Middleware/Localization.Routing/src/Microsoft.AspNetCore.Localization.Routing.csproj
index 393fa1f3556557d4992020983c2a349c64d22c50..3fbf8734b6f0cd8dfae37cee9d4039efda52c442 100644
--- a/src/Middleware/Localization.Routing/src/Microsoft.AspNetCore.Localization.Routing.csproj
+++ b/src/Middleware/Localization.Routing/src/Microsoft.AspNetCore.Localization.Routing.csproj
@@ -8,7 +8,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;localization</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj b/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj
index 2cac3099374b0c80342a2a6c18fa4b6218c80f49..5d37660343956bb2ed6fca23d8439e508c2dd13f 100644
--- a/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj
+++ b/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj
@@ -5,9 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Localization.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Localization.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Localization.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj b/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj
index 4ec4f728dd1b9f7b9c4f376e90347e751219f160..20a32d0507b8ed192228e5e38d47192736b39f9f 100644
--- a/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj
+++ b/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj
@@ -8,7 +8,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;localization</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/Middleware.sln b/src/Middleware/Middleware.sln
index 0e8150f85ce4305d714941e757458e29bc1b90b7..7d5b887711389775faaf9b3dd25c249e417a66b2 100644
--- a/src/Middleware/Middleware.sln
+++ b/src/Middleware/Middleware.sln
@@ -293,7 +293,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.SpaServices.Extensions.Tests", "SpaServices.Extensions\test\Microsoft.AspNetCore.SpaServices.Extensions.Tests.csproj", "{D0CB733B-4CE8-4F6C-BBB9-548EA1A96966}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.WebSockets.Microbenchmarks", "perf\Microbenchmarks\Microsoft.AspNetCore.WebSockets.Microbenchmarks.csproj", "{C4D624B3-749E-41D8-A43B-B304BC3885EA}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.SpaServices.Tests", "SpaServices\test\Microsoft.AspNetCore.SpaServices.Tests.csproj", "{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Perf", "Perf", "{4623F52E-2070-4631-8DEE-7D2F48733FFD}"
 EndProject
@@ -1617,6 +1617,18 @@ Global
 		{C4D624B3-749E-41D8-A43B-B304BC3885EA}.Release|x64.Build.0 = Release|Any CPU
 		{C4D624B3-749E-41D8-A43B-B304BC3885EA}.Release|x86.ActiveCfg = Release|Any CPU
 		{C4D624B3-749E-41D8-A43B-B304BC3885EA}.Release|x86.Build.0 = Release|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Debug|x64.Build.0 = Debug|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Debug|x86.Build.0 = Debug|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Release|x64.ActiveCfg = Release|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Release|x64.Build.0 = Release|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Release|x86.ActiveCfg = Release|Any CPU
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0}.Release|x86.Build.0 = Release|Any CPU
 		{80C8E810-1206-482E-BE17-961DD2EBFB11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{80C8E810-1206-482E-BE17-961DD2EBFB11}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{80C8E810-1206-482E-BE17-961DD2EBFB11}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1756,6 +1768,7 @@ Global
 		{92E11EBB-759E-4DA8-AB61-A9977D9F97D0} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0}
 		{D0CB733B-4CE8-4F6C-BBB9-548EA1A96966} = {D6FA4ABE-E685-4EDD-8B06-D8777E76B472}
 		{C4D624B3-749E-41D8-A43B-B304BC3885EA} = {4623F52E-2070-4631-8DEE-7D2F48733FFD}
+		{8A9C1F6C-3A47-4868-AA95-3EBE0260F5A0} = {D6FA4ABE-E685-4EDD-8B06-D8777E76B472}
 		{80C8E810-1206-482E-BE17-961DD2EBFB11} = {4623F52E-2070-4631-8DEE-7D2F48733FFD}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
diff --git a/src/Middleware/MiddlewareAnalysis/ref/Microsoft.AspNetCore.MiddlewareAnalysis.csproj b/src/Middleware/MiddlewareAnalysis/ref/Microsoft.AspNetCore.MiddlewareAnalysis.csproj
deleted file mode 100644
index 869cc472b93e17340a6ec08ebd2822cb45806d39..0000000000000000000000000000000000000000
--- a/src/Middleware/MiddlewareAnalysis/ref/Microsoft.AspNetCore.MiddlewareAnalysis.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.MiddlewareAnalysis.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/MiddlewareAnalysis/ref/Microsoft.AspNetCore.MiddlewareAnalysis.netcoreapp.cs b/src/Middleware/MiddlewareAnalysis/ref/Microsoft.AspNetCore.MiddlewareAnalysis.netcoreapp.cs
deleted file mode 100644
index 34360758588f404402e8c31302cfb9db5c3f3dcc..0000000000000000000000000000000000000000
--- a/src/Middleware/MiddlewareAnalysis/ref/Microsoft.AspNetCore.MiddlewareAnalysis.netcoreapp.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.MiddlewareAnalysis
-{
-    public partial class AnalysisBuilder : Microsoft.AspNetCore.Builder.IApplicationBuilder
-    {
-        public AnalysisBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder inner) { }
-        public System.IServiceProvider ApplicationServices { get { throw null; } set { } }
-        public System.Collections.Generic.IDictionary<string, object> Properties { get { throw null; } }
-        public Microsoft.AspNetCore.Http.Features.IFeatureCollection ServerFeatures { get { throw null; } }
-        public Microsoft.AspNetCore.Http.RequestDelegate Build() { throw null; }
-        public Microsoft.AspNetCore.Builder.IApplicationBuilder New() { throw null; }
-        public Microsoft.AspNetCore.Builder.IApplicationBuilder Use(System.Func<Microsoft.AspNetCore.Http.RequestDelegate, Microsoft.AspNetCore.Http.RequestDelegate> middleware) { throw null; }
-    }
-    public partial class AnalysisMiddleware
-    {
-        public AnalysisMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, System.Diagnostics.DiagnosticSource diagnosticSource, string middlewareName) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
-    }
-    public partial class AnalysisStartupFilter : Microsoft.AspNetCore.Hosting.IStartupFilter
-    {
-        public AnalysisStartupFilter() { }
-        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> Configure(System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> next) { throw null; }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class AnalysisServiceCollectionExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddMiddlewareAnalysis(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) { throw null; }
-    }
-}
diff --git a/src/Middleware/NodeServices/ref/Microsoft.AspNetCore.NodeServices.csproj b/src/Middleware/NodeServices/ref/Microsoft.AspNetCore.NodeServices.csproj
deleted file mode 100644
index 6d39c2bb03e41fda4d47e3d58c92c6f0d2578c9e..0000000000000000000000000000000000000000
--- a/src/Middleware/NodeServices/ref/Microsoft.AspNetCore.NodeServices.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.NodeServices.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Console"  />
-    <Reference Include="Newtonsoft.Json"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/NodeServices/ref/Microsoft.AspNetCore.NodeServices.netcoreapp.cs b/src/Middleware/NodeServices/ref/Microsoft.AspNetCore.NodeServices.netcoreapp.cs
deleted file mode 100644
index 99474350fed340005db9ba14bff53fc5b0460652..0000000000000000000000000000000000000000
--- a/src/Middleware/NodeServices/ref/Microsoft.AspNetCore.NodeServices.netcoreapp.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.NodeServices
-{
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class EmbeddedResourceReader
-    {
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static string Read(System.Type assemblyContainingType, string path) { throw null; }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial interface INodeServices : System.IDisposable
-    {
-        System.Threading.Tasks.Task<T> InvokeAsync<T>(string moduleName, params object[] args);
-        System.Threading.Tasks.Task<T> InvokeAsync<T>(System.Threading.CancellationToken cancellationToken, string moduleName, params object[] args);
-        System.Threading.Tasks.Task<T> InvokeExportAsync<T>(string moduleName, string exportedFunctionName, params object[] args);
-        System.Threading.Tasks.Task<T> InvokeExportAsync<T>(System.Threading.CancellationToken cancellationToken, string moduleName, string exportedFunctionName, params object[] args);
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class NodeServicesFactory
-    {
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static Microsoft.AspNetCore.NodeServices.INodeServices CreateNodeServices(Microsoft.AspNetCore.NodeServices.NodeServicesOptions options) { throw null; }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial class NodeServicesOptions
-    {
-        public NodeServicesOptions(System.IServiceProvider serviceProvider) { }
-        public System.Threading.CancellationToken ApplicationStoppingToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int DebuggingPort { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IDictionary<string, string> EnvironmentVariables { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int InvocationTimeoutMilliseconds { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool LaunchWithDebugging { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.NodeServices.HostingModels.INodeInstance> NodeInstanceFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.Extensions.Logging.ILogger NodeInstanceOutputLogger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ProjectPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string[] WatchFileExtensions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public sealed partial class StringAsTempFile : System.IDisposable
-    {
-        public StringAsTempFile(string content, System.Threading.CancellationToken applicationStoppingToken) { }
-        public string FileName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public void Dispose() { }
-        ~StringAsTempFile() { }
-    }
-}
-namespace Microsoft.AspNetCore.NodeServices.HostingModels
-{
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial interface INodeInstance : System.IDisposable
-    {
-        System.Threading.Tasks.Task<T> InvokeExportAsync<T>(System.Threading.CancellationToken cancellationToken, string moduleName, string exportNameOrNull, params object[] args);
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial class NodeInvocationException : System.Exception
-    {
-        public NodeInvocationException(string message, string details) { }
-        public NodeInvocationException(string message, string details, bool nodeInstanceUnavailable, bool allowConnectionDraining) { }
-        public bool AllowConnectionDraining { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public bool NodeInstanceUnavailable { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial class NodeInvocationInfo
-    {
-        public NodeInvocationInfo() { }
-        public object[] Args { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ExportedFunctionName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ModuleName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class NodeServicesOptionsExtensions
-    {
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static void UseHttpHosting(this Microsoft.AspNetCore.NodeServices.NodeServicesOptions options) { }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public abstract partial class OutOfProcessNodeInstance : Microsoft.AspNetCore.NodeServices.HostingModels.INodeInstance, System.IDisposable
-    {
-        protected readonly Microsoft.Extensions.Logging.ILogger OutputLogger;
-        public OutOfProcessNodeInstance(string entryPointScript, string projectPath, string[] watchFileExtensions, string commandLineArguments, System.Threading.CancellationToken applicationStoppingToken, Microsoft.Extensions.Logging.ILogger nodeOutputLogger, System.Collections.Generic.IDictionary<string, string> environmentVars, int invocationTimeoutMilliseconds, bool launchWithDebugging, int debuggingPort) { }
-        public void Dispose() { }
-        protected virtual void Dispose(bool disposing) { }
-        ~OutOfProcessNodeInstance() { }
-        protected abstract System.Threading.Tasks.Task<T> InvokeExportAsync<T>(Microsoft.AspNetCore.NodeServices.HostingModels.NodeInvocationInfo invocationInfo, System.Threading.CancellationToken cancellationToken);
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<T> InvokeExportAsync<T>(System.Threading.CancellationToken cancellationToken, string moduleName, string exportNameOrNull, params object[] args) { throw null; }
-        protected virtual void OnErrorDataReceived(string errorData) { }
-        protected virtual void OnOutputDataReceived(string outputData) { }
-        protected virtual System.Diagnostics.ProcessStartInfo PrepareNodeProcessStartInfo(string entryPointFilename, string projectPath, string commandLineArguments, System.Collections.Generic.IDictionary<string, string> environmentVars, bool launchWithDebugging, int debuggingPort) { throw null; }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class NodeServicesServiceCollectionExtensions
-    {
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static void AddNodeServices(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection) { }
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static void AddNodeServices(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, System.Action<Microsoft.AspNetCore.NodeServices.NodeServicesOptions> setupAction) { }
-    }
-}
diff --git a/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj b/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
index e6f989941a119cdeba7ed2562696ca9fbe94bc1a..ac74ba1cb1f8238d4777e7dadfba882191d76b69 100644
--- a/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
+++ b/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
@@ -5,6 +5,6 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.ResponseCaching.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Primitives"  />
+    <Reference Include="Microsoft.Extensions.Primitives" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj b/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
index 56918dab1288452c5ce29a877a5acd085a84de00..226e595816e1b9eede989804009ab1903f74de0b 100644
--- a/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
+++ b/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;cache;caching</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.Manual.cs b/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..75a6c20e6230c3ab5f810c80f2590a62fffd2355
--- /dev/null
+++ b/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.Manual.cs
@@ -0,0 +1,189 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.ResponseCaching
+{
+    internal partial class CachedResponse : Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry
+    {
+        public CachedResponse() { }
+        public System.IO.Stream Body { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.DateTimeOffset Created { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int StatusCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class CachedVaryByRules : Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry
+    {
+        public CachedVaryByRules() { }
+        public Microsoft.Extensions.Primitives.StringValues Headers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.Primitives.StringValues QueryKeys { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string VaryByKeyPrefix { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class FastGuid
+    {
+        internal FastGuid(long id) { }
+        internal string IdString { get { throw null; } }
+        internal long IdValue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal static Microsoft.AspNetCore.ResponseCaching.FastGuid NewGuid() { throw null; }
+    }
+    internal partial interface IResponseCache
+    {
+        Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry Get(string key);
+        System.Threading.Tasks.Task<Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry> GetAsync(string key);
+        void Set(string key, Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry entry, System.TimeSpan validFor);
+        System.Threading.Tasks.Task SetAsync(string key, Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry entry, System.TimeSpan validFor);
+    }
+    internal partial interface IResponseCacheEntry
+    {
+    }
+    internal partial interface IResponseCachingKeyProvider
+    {
+        string CreateBaseKey(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+        System.Collections.Generic.IEnumerable<string> CreateLookupVaryByKeys(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+        string CreateStorageVaryByKey(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+    }
+    internal partial interface IResponseCachingPolicyProvider
+    {
+        bool AllowCacheLookup(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+        bool AllowCacheStorage(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+        bool AttemptResponseCaching(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+        bool IsCachedEntryFresh(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+        bool IsResponseCacheable(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context);
+    }
+    internal partial interface ISystemClock
+    {
+        System.DateTimeOffset UtcNow { get; }
+    }
+    internal partial class MemoryResponseCache : Microsoft.AspNetCore.ResponseCaching.IResponseCache
+    {
+        internal MemoryResponseCache(Microsoft.Extensions.Caching.Memory.IMemoryCache cache) { }
+        public Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry Get(string key) { throw null; }
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry> GetAsync(string key) { throw null; }
+        public void Set(string key, Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry entry, System.TimeSpan validFor) { }
+        public System.Threading.Tasks.Task SetAsync(string key, Microsoft.AspNetCore.ResponseCaching.IResponseCacheEntry entry, System.TimeSpan validFor) { throw null; }
+    }
+    internal partial class ResponseCachingContext
+    {
+        internal ResponseCachingContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.Extensions.Logging.ILogger logger) { }
+        internal string BaseKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.TimeSpan? CachedEntryAge { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+        internal Microsoft.AspNetCore.ResponseCaching.CachedResponse CachedResponse { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal Microsoft.AspNetCore.Http.IHeaderDictionary CachedResponseHeaders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal System.TimeSpan CachedResponseValidFor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.ResponseCaching.CachedVaryByRules CachedVaryByRules { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.HttpContext HttpContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.Extensions.Logging.ILogger Logger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.IO.Stream OriginalResponseStream { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal Microsoft.AspNetCore.ResponseCaching.ResponseCachingStream ResponseCachingStream { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal System.DateTimeOffset? ResponseDate { get { throw null; } set { } }
+        internal System.DateTimeOffset? ResponseExpires { get { throw null; } }
+        internal System.TimeSpan? ResponseMaxAge { get { throw null; } }
+        internal System.TimeSpan? ResponseSharedMaxAge { get { throw null; } }
+        internal bool ResponseStarted { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.DateTimeOffset? ResponseTime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+        internal bool ShouldCacheResponse { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal string StorageVaryKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class ResponseCachingKeyProvider : Microsoft.AspNetCore.ResponseCaching.IResponseCachingKeyProvider
+    {
+        internal ResponseCachingKeyProvider(Microsoft.Extensions.ObjectPool.ObjectPoolProvider poolProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions> options) { }
+        public string CreateBaseKey(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        public System.Collections.Generic.IEnumerable<string> CreateLookupVaryByKeys(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        public string CreateStorageVaryByKey(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+    }
+    public partial class ResponseCachingMiddleware
+    {
+        internal ResponseCachingMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions> options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.ResponseCaching.IResponseCachingPolicyProvider policyProvider, Microsoft.AspNetCore.ResponseCaching.IResponseCache cache, Microsoft.AspNetCore.ResponseCaching.IResponseCachingKeyProvider keyProvider) { }
+        internal static void AddResponseCachingFeature(Microsoft.AspNetCore.Http.HttpContext context) { }
+        internal static bool ContentIsNotModified(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task FinalizeCacheBodyAsync(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        internal System.Threading.Tasks.Task FinalizeCacheHeadersAsync(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        internal static Microsoft.Extensions.Primitives.StringValues GetOrderCasingNormalizedStringValues(Microsoft.Extensions.Primitives.StringValues stringValues) { throw null; }
+        internal void ShimResponseStream(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { }
+        internal System.Threading.Tasks.Task StartResponseAsync(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task<bool> TryServeFromCacheAsync(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+    }
+    public partial class ResponseCachingOptions
+    {
+        internal Microsoft.AspNetCore.ResponseCaching.ISystemClock SystemClock { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class ResponseCachingPolicyProvider : Microsoft.AspNetCore.ResponseCaching.IResponseCachingPolicyProvider
+    {
+        public ResponseCachingPolicyProvider() { }
+        public virtual bool AllowCacheLookup(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        public virtual bool AllowCacheStorage(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        public virtual bool AttemptResponseCaching(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        public virtual bool IsCachedEntryFresh(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+        public virtual bool IsResponseCacheable(Microsoft.AspNetCore.ResponseCaching.ResponseCachingContext context) { throw null; }
+    }
+    internal partial class ResponseCachingStream : System.IO.Stream
+    {
+        internal ResponseCachingStream(System.IO.Stream innerStream, long maxBufferSize, int segmentSize, System.Action startResponseCallback, System.Func<System.Threading.Tasks.Task> startResponseCallbackAsync) { }
+        internal bool BufferingEnabled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        internal void DisableBuffering() { }
+        public override void EndWrite(System.IAsyncResult asyncResult) { }
+        public override void Flush() { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        internal System.IO.Stream GetBufferStream() { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override void WriteByte(byte value) { }
+    }
+    internal partial class SegmentReadStream : System.IO.Stream
+    {
+        internal SegmentReadStream(System.Collections.Generic.List<byte[]> segments, long length) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int EndRead(System.IAsyncResult asyncResult) { throw null; }
+        public override void Flush() { }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int ReadByte() { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+    }
+    internal partial class SegmentWriteStream : System.IO.Stream
+    {
+        internal SegmentWriteStream(int segmentSize) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        protected override void Dispose(bool disposing) { }
+        public override void EndWrite(System.IAsyncResult asyncResult) { }
+        public override void Flush() { }
+        internal System.Collections.Generic.List<byte[]> GetSegments() { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override void WriteByte(byte value) { }
+    }
+    internal static partial class StreamUtilities
+    {
+        internal static int BodySegmentSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static System.IAsyncResult ToIAsyncResult(System.Threading.Tasks.Task task, System.AsyncCallback callback, object state) { throw null; }
+    }
+}
diff --git a/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj b/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj
index 76433bb724884ed27f4c11f9a099cc94c633a85b..cee81252c3cc88be1dc21ab7c52b627508da1052 100644
--- a/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj
+++ b/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj
@@ -5,10 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.ResponseCaching.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.ResponseCaching.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.Extensions.Caching.Memory"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
+    <Compile Include="Microsoft.AspNetCore.ResponseCaching.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.Extensions.Caching.Memory" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/ResponseCaching/src/Microsoft.AspNetCore.ResponseCaching.csproj b/src/Middleware/ResponseCaching/src/Microsoft.AspNetCore.ResponseCaching.csproj
index da2d96e74164ce789ec6bf59ad80223a1a7c34aa..2846ee5907c007d6fb566cc7e418fb3aaad2efcd 100644
--- a/src/Middleware/ResponseCaching/src/Microsoft.AspNetCore.ResponseCaching.csproj
+++ b/src/Middleware/ResponseCaching/src/Microsoft.AspNetCore.ResponseCaching.csproj
@@ -8,7 +8,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;cache;caching</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.Manual.cs b/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..952a972c835fb63c06a611e8918342ca445a000f
--- /dev/null
+++ b/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.Manual.cs
@@ -0,0 +1,35 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.ResponseCompression
+{
+    internal partial class ResponseCompressionBody : System.IO.Stream, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature, Microsoft.AspNetCore.Http.Features.IHttpsCompressionFeature
+    {
+        internal ResponseCompressionBody(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider provider, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature innerBodyFeature) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        Microsoft.AspNetCore.Http.Features.HttpsCompressionMode Microsoft.AspNetCore.Http.Features.IHttpsCompressionFeature.Mode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public override long Position { get { throw null; } set { } }
+        public System.IO.Stream Stream { get { throw null; } }
+        public System.IO.Pipelines.PipeWriter Writer { get { throw null; } }
+        public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task CompleteAsync() { throw null; }
+        public void DisableBuffering() { }
+        public override void EndWrite(System.IAsyncResult asyncResult) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task FinishCompressionAsync() { throw null; }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public System.Threading.Tasks.Task SendFileAsync(string path, long offset, long? count, System.Threading.CancellationToken cancellation) { throw null; }
+        public override void SetLength(long value) { }
+        public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) { throw null; }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+}
diff --git a/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj b/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj
index b5c02e8d563eb4db786296777c5b34dca7089bf3..cfcec4c7b68b6f08d879c6860f77f608a08dd111 100644
--- a/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj
+++ b/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj
@@ -5,9 +5,11 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.ResponseCompression.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="Microsoft.AspNetCore.ResponseCompression.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj b/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj
index 705e78ec8aac9f4b54bf580bcbc51679f69a505f..d63d281422aadeae0c52c32e4be7e4aa8a747389 100644
--- a/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj
+++ b/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.Manual.cs b/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..98253230f71f8c4dd92630bea022c698905817a7
--- /dev/null
+++ b/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.Manual.cs
@@ -0,0 +1,587 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Rewrite
+{
+    internal partial class BackReferenceCollection
+    {
+        public BackReferenceCollection(string reference) { }
+        public BackReferenceCollection(System.Text.RegularExpressions.GroupCollection references) { }
+        public string this[int index] { get { throw null; } }
+        public void Add(Microsoft.AspNetCore.Rewrite.BackReferenceCollection references) { }
+    }
+    internal partial class MatchResults
+    {
+        public static readonly Microsoft.AspNetCore.Rewrite.MatchResults EmptyFailure;
+        public static readonly Microsoft.AspNetCore.Rewrite.MatchResults EmptySuccess;
+        public MatchResults() { }
+        public Microsoft.AspNetCore.Rewrite.BackReferenceCollection BackReferences { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool Success { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class ParserContext
+    {
+        public readonly string Template;
+        public ParserContext(string condition) { }
+        public char Current { get { throw null; } }
+        public int Index { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool Back() { throw null; }
+        public string Capture() { throw null; }
+        public int GetIndex() { throw null; }
+        public bool HasNext() { throw null; }
+        public void Mark() { }
+        public bool Next() { throw null; }
+    }
+    internal partial class Pattern
+    {
+        public Pattern(System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.PatternSegment> patternSegments) { }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.PatternSegment> PatternSegments { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal abstract partial class PatternSegment
+    {
+        protected PatternSegment() { }
+        public abstract string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences);
+    }
+    internal static partial class Resources
+    {
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string Error_ChangeEnvironmentNotSupported { get { throw null; } }
+        internal static string Error_CouldNotParseInteger { get { throw null; } }
+        internal static string Error_InputParserIndexOutOfRange { get { throw null; } }
+        internal static string Error_InputParserInvalidInteger { get { throw null; } }
+        internal static string Error_InputParserMissingCloseBrace { get { throw null; } }
+        internal static string Error_InputParserNoBackreference { get { throw null; } }
+        internal static string Error_InputParserUnrecognizedParameter { get { throw null; } }
+        internal static string Error_IntegerMatch_FormatExceptionMessage { get { throw null; } }
+        internal static string Error_InvalidChangeCookieFlag { get { throw null; } }
+        internal static string Error_ModRewriteGeneralParseError { get { throw null; } }
+        internal static string Error_ModRewriteParseError { get { throw null; } }
+        internal static string Error_UnsupportedServerVariable { get { throw null; } }
+        internal static string Error_UrlRewriteParseError { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string FormatError_CouldNotParseInteger(object p0) { throw null; }
+        internal static string FormatError_InputParserIndexOutOfRange(object p0, object p1) { throw null; }
+        internal static string FormatError_InputParserInvalidInteger(object p0, object p1) { throw null; }
+        internal static string FormatError_InputParserMissingCloseBrace(object p0) { throw null; }
+        internal static string FormatError_InputParserNoBackreference(object p0) { throw null; }
+        internal static string FormatError_InputParserUnrecognizedParameter(object p0, object p1) { throw null; }
+        internal static string FormatError_InvalidChangeCookieFlag(object p0) { throw null; }
+        internal static string FormatError_ModRewriteGeneralParseError(object p0) { throw null; }
+        internal static string FormatError_ModRewriteParseError(object p0, object p1) { throw null; }
+        internal static string FormatError_UnsupportedServerVariable(object p0) { throw null; }
+        internal static string FormatError_UrlRewriteParseError(object p0, object p1, object p2) { throw null; }
+    }
+    internal abstract partial class UrlAction
+    {
+        protected UrlAction() { }
+        protected Microsoft.AspNetCore.Rewrite.Pattern Url { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public abstract void ApplyAction(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences);
+    }
+    internal abstract partial class UrlMatch
+    {
+        protected UrlMatch() { }
+        protected bool Negate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public abstract Microsoft.AspNetCore.Rewrite.MatchResults Evaluate(string input, Microsoft.AspNetCore.Rewrite.RewriteContext context);
+    }
+}
+
+namespace Microsoft.AspNetCore.Rewrite.ApacheModRewrite
+{
+    internal partial class ApacheModRewriteRule : Microsoft.AspNetCore.Rewrite.IRule
+    {
+        public ApacheModRewriteRule(Microsoft.AspNetCore.Rewrite.UrlMatch initialMatch, System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.ApacheModRewrite.Condition> conditions, System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.UrlAction> urlActions) { }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.UrlAction> Actions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.ApacheModRewrite.Condition> Conditions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Rewrite.UrlMatch InitialMatch { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public virtual void ApplyRule(Microsoft.AspNetCore.Rewrite.RewriteContext context) { }
+    }
+    internal partial class Condition
+    {
+        public Condition() { }
+        public Microsoft.AspNetCore.Rewrite.Pattern Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Rewrite.UrlMatch Match { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool OrNext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Rewrite.MatchResults Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class ConditionPatternParser
+    {
+        public ConditionPatternParser() { }
+        public Microsoft.AspNetCore.Rewrite.ApacheModRewrite.ParsedModRewriteInput ParseActionCondition(string condition) { throw null; }
+    }
+    internal enum ConditionType
+    {
+        Regex = 0,
+        PropertyTest = 1,
+        StringComp = 2,
+        IntComp = 3,
+    }
+    internal partial class CookieActionFactory
+    {
+        public CookieActionFactory() { }
+        public Microsoft.AspNetCore.Rewrite.UrlActions.ChangeCookieAction Create(string flagValue) { throw null; }
+    }
+    internal partial class FileParser
+    {
+        public FileParser() { }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.IRule> Parse(System.IO.TextReader input) { throw null; }
+    }
+    internal partial class FlagParser
+    {
+        public FlagParser() { }
+        public Microsoft.AspNetCore.Rewrite.ApacheModRewrite.Flags Parse(string flagString) { throw null; }
+    }
+    internal partial class Flags
+    {
+        public Flags() { }
+        public Flags(System.Collections.Generic.IDictionary<Microsoft.AspNetCore.Rewrite.ApacheModRewrite.FlagType, string> flags) { }
+        public System.Collections.Generic.IDictionary<Microsoft.AspNetCore.Rewrite.ApacheModRewrite.FlagType, string> FlagDictionary { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string this[Microsoft.AspNetCore.Rewrite.ApacheModRewrite.FlagType flag] { get { throw null; } set { } }
+        public bool GetValue(Microsoft.AspNetCore.Rewrite.ApacheModRewrite.FlagType flag, out string value) { throw null; }
+        public bool HasFlag(Microsoft.AspNetCore.Rewrite.ApacheModRewrite.FlagType flag) { throw null; }
+        public void SetFlag(Microsoft.AspNetCore.Rewrite.ApacheModRewrite.FlagType flag, string value) { }
+    }
+    internal enum FlagType
+    {
+        EscapeBackreference = 0,
+        Chain = 1,
+        Cookie = 2,
+        DiscardPath = 3,
+        Env = 4,
+        End = 5,
+        Forbidden = 6,
+        Gone = 7,
+        Handler = 8,
+        Last = 9,
+        Next = 10,
+        NoCase = 11,
+        NoEscape = 12,
+        NoSubReq = 13,
+        NoVary = 14,
+        Or = 15,
+        Proxy = 16,
+        PassThrough = 17,
+        QSAppend = 18,
+        QSDiscard = 19,
+        QSLast = 20,
+        Redirect = 21,
+        Skip = 22,
+        Type = 23,
+    }
+    internal enum OperationType
+    {
+        None = 0,
+        Equal = 1,
+        Greater = 2,
+        GreaterEqual = 3,
+        Less = 4,
+        LessEqual = 5,
+        NotEqual = 6,
+        Directory = 7,
+        RegularFile = 8,
+        ExistingFile = 9,
+        SymbolicLink = 10,
+        Size = 11,
+        ExistingUrl = 12,
+        Executable = 13,
+    }
+    internal partial class ParsedModRewriteInput
+    {
+        public ParsedModRewriteInput() { }
+        public ParsedModRewriteInput(bool invert, Microsoft.AspNetCore.Rewrite.ApacheModRewrite.ConditionType conditionType, Microsoft.AspNetCore.Rewrite.ApacheModRewrite.OperationType operationType, string operand) { }
+        public Microsoft.AspNetCore.Rewrite.ApacheModRewrite.ConditionType ConditionType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool Invert { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Operand { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Rewrite.ApacheModRewrite.OperationType OperationType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class RuleBuilder
+    {
+        internal System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.UrlAction> _actions;
+        public RuleBuilder() { }
+        public void AddAction(Microsoft.AspNetCore.Rewrite.Pattern pattern, Microsoft.AspNetCore.Rewrite.ApacheModRewrite.Flags flags) { }
+        public void AddConditionFromParts(Microsoft.AspNetCore.Rewrite.Pattern pattern, Microsoft.AspNetCore.Rewrite.ApacheModRewrite.ParsedModRewriteInput input, Microsoft.AspNetCore.Rewrite.ApacheModRewrite.Flags flags) { }
+        public void AddMatch(Microsoft.AspNetCore.Rewrite.ApacheModRewrite.ParsedModRewriteInput input, Microsoft.AspNetCore.Rewrite.ApacheModRewrite.Flags flags) { }
+        public void AddRule(string rule) { }
+        public Microsoft.AspNetCore.Rewrite.ApacheModRewrite.ApacheModRewriteRule Build() { throw null; }
+    }
+    internal partial class RuleRegexParser
+    {
+        public RuleRegexParser() { }
+        public Microsoft.AspNetCore.Rewrite.ApacheModRewrite.ParsedModRewriteInput ParseRuleRegex(string regex) { throw null; }
+    }
+    internal partial class TestStringParser
+    {
+        public TestStringParser() { }
+        public Microsoft.AspNetCore.Rewrite.Pattern Parse(string testString) { throw null; }
+    }
+    internal partial class Tokenizer
+    {
+        public Tokenizer() { }
+        public System.Collections.Generic.IList<string> Tokenize(string rule) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Rewrite.IISUrlRewrite
+{
+    internal enum ActionType
+    {
+        None = 0,
+        Rewrite = 1,
+        Redirect = 2,
+        CustomResponse = 3,
+        AbortRequest = 4,
+    }
+    internal partial class Condition
+    {
+        public Condition() { }
+        public Microsoft.AspNetCore.Rewrite.Pattern Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Rewrite.UrlMatch Match { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Rewrite.MatchResults Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class ConditionCollection : System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition>, System.Collections.IEnumerable
+    {
+        public ConditionCollection() { }
+        public ConditionCollection(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.LogicalGrouping grouping, bool trackAllCaptures) { }
+        public int Count { get { throw null; } }
+        public Microsoft.AspNetCore.Rewrite.IISUrlRewrite.LogicalGrouping Grouping { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition this[int index] { get { throw null; } }
+        public bool TrackAllCaptures { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Add(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition condition) { }
+        public void AddConditions(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition> conditions) { }
+        public System.Collections.Generic.IEnumerator<Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition> GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+    }
+    internal partial class IISRewriteMap
+    {
+        public IISRewriteMap(string name) { }
+        public string this[string key] { get { throw null; } set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class IISRewriteMapCollection : System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISRewriteMap>, System.Collections.IEnumerable
+    {
+        public IISRewriteMapCollection() { }
+        public int Count { get { throw null; } }
+        public Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISRewriteMap this[string key] { get { throw null; } }
+        public void Add(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISRewriteMap rewriteMap) { }
+        public System.Collections.Generic.IEnumerator<Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISRewriteMap> GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+    }
+    internal partial class IISUrlRewriteRule : Microsoft.AspNetCore.Rewrite.IRule
+    {
+        public IISUrlRewriteRule(string name, Microsoft.AspNetCore.Rewrite.UrlMatch initialMatch, Microsoft.AspNetCore.Rewrite.IISUrlRewrite.ConditionCollection conditions, Microsoft.AspNetCore.Rewrite.UrlAction action) { }
+        public IISUrlRewriteRule(string name, Microsoft.AspNetCore.Rewrite.UrlMatch initialMatch, Microsoft.AspNetCore.Rewrite.IISUrlRewrite.ConditionCollection conditions, Microsoft.AspNetCore.Rewrite.UrlAction action, bool global) { }
+        public Microsoft.AspNetCore.Rewrite.UrlAction Action { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Rewrite.IISUrlRewrite.ConditionCollection Conditions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Global { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Rewrite.UrlMatch InitialMatch { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public virtual void ApplyRule(Microsoft.AspNetCore.Rewrite.RewriteContext context) { }
+    }
+    internal partial class InputParser
+    {
+        public InputParser() { }
+        public InputParser(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISRewriteMapCollection rewriteMaps, bool alwaysUseManagedServerVariables) { }
+        public Microsoft.AspNetCore.Rewrite.Pattern ParseInputString(string testString) { throw null; }
+        public Microsoft.AspNetCore.Rewrite.Pattern ParseInputString(string testString, Microsoft.AspNetCore.Rewrite.IISUrlRewrite.UriMatchPart uriMatchPart) { throw null; }
+    }
+    internal partial class InvalidUrlRewriteFormatException : System.FormatException
+    {
+        public InvalidUrlRewriteFormatException(System.Xml.Linq.XElement element, string message) { }
+        public InvalidUrlRewriteFormatException(System.Xml.Linq.XElement element, string message, System.Exception innerException) { }
+        public int LineNumber { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int LinePosition { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal enum LogicalGrouping
+    {
+        MatchAll = 0,
+        MatchAny = 1,
+    }
+    internal enum PatternSyntax
+    {
+        ECMAScript = 0,
+        Wildcard = 1,
+        ExactMatch = 2,
+    }
+    internal enum RedirectType
+    {
+        Permanent = 301,
+        Found = 302,
+        SeeOther = 303,
+        Temporary = 307,
+    }
+    internal static partial class RewriteMapParser
+    {
+        public static Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISRewriteMapCollection Parse(System.Xml.Linq.XElement xmlRoot) { throw null; }
+    }
+    internal static partial class RewriteTags
+    {
+        public const string Action = "action";
+        public const string Add = "add";
+        public const string AppendQueryString = "appendQueryString";
+        public const string Conditions = "conditions";
+        public const string Enabled = "enabled";
+        public const string GlobalRules = "globalRules";
+        public const string IgnoreCase = "ignoreCase";
+        public const string Input = "input";
+        public const string Key = "key";
+        public const string LogicalGrouping = "logicalGrouping";
+        public const string LogRewrittenUrl = "logRewrittenUrl";
+        public const string Match = "match";
+        public const string MatchPattern = "matchPattern";
+        public const string MatchType = "matchType";
+        public const string Name = "name";
+        public const string Negate = "negate";
+        public const string Pattern = "pattern";
+        public const string PatternSyntax = "patternSyntax";
+        public const string RedirectType = "redirectType";
+        public const string Rewrite = "rewrite";
+        public const string RewriteMap = "rewriteMap";
+        public const string RewriteMaps = "rewriteMaps";
+        public const string Rule = "rule";
+        public const string Rules = "rules";
+        public const string StatusCode = "statusCode";
+        public const string StatusDescription = "statusDescription";
+        public const string StatusReason = "statusReason";
+        public const string StopProcessing = "stopProcessing";
+        public const string SubStatusCode = "subStatusCode";
+        public const string TrackAllCaptures = "trackAllCaptures";
+        public const string Type = "type";
+        public const string Url = "url";
+        public const string Value = "value";
+    }
+    internal static partial class ServerVariables
+    {
+        public static Microsoft.AspNetCore.Rewrite.PatternSegment FindServerVariable(string serverVariable, Microsoft.AspNetCore.Rewrite.ParserContext context, Microsoft.AspNetCore.Rewrite.IISUrlRewrite.UriMatchPart uriMatchPart, bool alwaysUseManagedServerVariables) { throw null; }
+    }
+    internal partial class UriMatchCondition : Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition
+    {
+        public UriMatchCondition(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.InputParser inputParser, string input, string pattern, Microsoft.AspNetCore.Rewrite.IISUrlRewrite.UriMatchPart uriMatchPart, bool ignoreCase, bool negate) { }
+    }
+    internal enum UriMatchPart
+    {
+        Full = 0,
+        Path = 1,
+    }
+    internal partial class UrlRewriteFileParser
+    {
+        public UrlRewriteFileParser() { }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISUrlRewriteRule> Parse(System.IO.TextReader reader, bool alwaysUseManagedServerVariables) { throw null; }
+    }
+    internal partial class UrlRewriteRuleBuilder
+    {
+        public UrlRewriteRuleBuilder() { }
+        public bool Enabled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool Global { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Rewrite.IISUrlRewrite.UriMatchPart UriMatchPart { get { throw null; } }
+        public void AddUrlAction(Microsoft.AspNetCore.Rewrite.UrlAction action) { }
+        public void AddUrlCondition(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition condition) { }
+        public void AddUrlConditions(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Rewrite.IISUrlRewrite.Condition> conditions) { }
+        public void AddUrlMatch(string input, bool ignoreCase = true, bool negate = false, Microsoft.AspNetCore.Rewrite.IISUrlRewrite.PatternSyntax patternSyntax = Microsoft.AspNetCore.Rewrite.IISUrlRewrite.PatternSyntax.ECMAScript) { }
+        public Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISUrlRewriteRule Build() { throw null; }
+        public void ConfigureConditionBehavior(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.LogicalGrouping logicalGrouping, bool trackAllCaptures) { }
+    }
+}
+
+namespace Microsoft.AspNetCore.Rewrite.PatternSegments
+{
+    internal partial class ConditionMatchSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public ConditionMatchSegment(int index) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class DateTimeSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public DateTimeSegment(string segment) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReference) { throw null; }
+    }
+    internal partial class HeaderSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public HeaderSegment(string header) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class IsHttpsModSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public IsHttpsModSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class IsHttpsUrlSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public IsHttpsUrlSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class IsIPV6Segment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public IsIPV6Segment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class LiteralSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public LiteralSegment(string literal) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class LocalAddressSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public LocalAddressSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class LocalPortSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public LocalPortSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class QueryStringSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public QueryStringSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackRefernces, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class RemoteAddressSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public RemoteAddressSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class RemotePortSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public RemotePortSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class RequestFileNameSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public RequestFileNameSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class RequestMethodSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public RequestMethodSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class RewriteMapSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public RewriteMapSegment(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.IISRewriteMap rewriteMap, Microsoft.AspNetCore.Rewrite.Pattern pattern) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class RuleMatchSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public RuleMatchSegment(int index) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class SchemeSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public SchemeSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class ServerProtocolSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public ServerProtocolSegment() { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class ToLowerSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public ToLowerSegment(Microsoft.AspNetCore.Rewrite.Pattern pattern) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class UrlEncodeSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public UrlEncodeSegment(Microsoft.AspNetCore.Rewrite.Pattern pattern) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+    internal partial class UrlSegment : Microsoft.AspNetCore.Rewrite.PatternSegment
+    {
+        public UrlSegment() { }
+        public UrlSegment(Microsoft.AspNetCore.Rewrite.IISUrlRewrite.UriMatchPart uriMatchPart) { }
+        public override string Evaluate(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Rewrite.UrlActions
+{
+    internal partial class AbortAction : Microsoft.AspNetCore.Rewrite.UrlAction
+    {
+        public AbortAction() { }
+        public override void ApplyAction(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { }
+    }
+    internal partial class ChangeCookieAction : Microsoft.AspNetCore.Rewrite.UrlAction
+    {
+        public ChangeCookieAction(string name) { }
+        internal ChangeCookieAction(string name, System.Func<System.DateTimeOffset> timeSource) { }
+        public string Domain { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HttpOnly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.TimeSpan Lifetime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool Secure { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public override void ApplyAction(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { }
+    }
+    internal partial class ForbiddenAction : Microsoft.AspNetCore.Rewrite.UrlAction
+    {
+        public ForbiddenAction() { }
+        public override void ApplyAction(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { }
+    }
+    internal partial class GoneAction : Microsoft.AspNetCore.Rewrite.UrlAction
+    {
+        public GoneAction() { }
+        public override void ApplyAction(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { }
+    }
+    internal partial class RedirectAction : Microsoft.AspNetCore.Rewrite.UrlAction
+    {
+        public RedirectAction(int statusCode, Microsoft.AspNetCore.Rewrite.Pattern pattern, bool queryStringAppend) { }
+        public RedirectAction(int statusCode, Microsoft.AspNetCore.Rewrite.Pattern pattern, bool queryStringAppend, bool queryStringDelete, bool escapeBackReferences) { }
+        public bool EscapeBackReferences { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool QueryStringAppend { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool QueryStringDelete { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int StatusCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public override void ApplyAction(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { }
+    }
+    internal partial class RewriteAction : Microsoft.AspNetCore.Rewrite.UrlAction
+    {
+        public RewriteAction(Microsoft.AspNetCore.Rewrite.RuleResult result, Microsoft.AspNetCore.Rewrite.Pattern pattern, bool queryStringAppend) { }
+        public RewriteAction(Microsoft.AspNetCore.Rewrite.RuleResult result, Microsoft.AspNetCore.Rewrite.Pattern pattern, bool queryStringAppend, bool queryStringDelete, bool escapeBackReferences) { }
+        public bool EscapeBackReferences { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool QueryStringAppend { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool QueryStringDelete { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Rewrite.RuleResult Result { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public override void ApplyAction(Microsoft.AspNetCore.Rewrite.RewriteContext context, Microsoft.AspNetCore.Rewrite.BackReferenceCollection ruleBackReferences, Microsoft.AspNetCore.Rewrite.BackReferenceCollection conditionBackReferences) { }
+    }
+}
+
+namespace Microsoft.AspNetCore.Rewrite.UrlMatches
+{
+    internal partial class ExactMatch : Microsoft.AspNetCore.Rewrite.UrlMatch
+    {
+        public ExactMatch(bool ignoreCase, string input, bool negate) { }
+        public override Microsoft.AspNetCore.Rewrite.MatchResults Evaluate(string pattern, Microsoft.AspNetCore.Rewrite.RewriteContext context) { throw null; }
+    }
+    internal partial class IntegerMatch : Microsoft.AspNetCore.Rewrite.UrlMatch
+    {
+        public IntegerMatch(int value, Microsoft.AspNetCore.Rewrite.UrlMatches.IntegerOperationType operation) { }
+        public IntegerMatch(string value, Microsoft.AspNetCore.Rewrite.UrlMatches.IntegerOperationType operation) { }
+        public override Microsoft.AspNetCore.Rewrite.MatchResults Evaluate(string input, Microsoft.AspNetCore.Rewrite.RewriteContext context) { throw null; }
+    }
+    internal enum IntegerOperationType
+    {
+        Equal = 0,
+        Greater = 1,
+        GreaterEqual = 2,
+        Less = 3,
+        LessEqual = 4,
+        NotEqual = 5,
+    }
+    internal partial class RegexMatch : Microsoft.AspNetCore.Rewrite.UrlMatch
+    {
+        public RegexMatch(System.Text.RegularExpressions.Regex match, bool negate) { }
+        public override Microsoft.AspNetCore.Rewrite.MatchResults Evaluate(string pattern, Microsoft.AspNetCore.Rewrite.RewriteContext context) { throw null; }
+    }
+    internal partial class StringMatch : Microsoft.AspNetCore.Rewrite.UrlMatch
+    {
+        public StringMatch(string value, Microsoft.AspNetCore.Rewrite.UrlMatches.StringOperationType operation, bool ignoreCase) { }
+        public override Microsoft.AspNetCore.Rewrite.MatchResults Evaluate(string input, Microsoft.AspNetCore.Rewrite.RewriteContext context) { throw null; }
+    }
+    internal enum StringOperationType
+    {
+        Equal = 0,
+        Greater = 1,
+        GreaterEqual = 2,
+        Less = 3,
+        LessEqual = 4,
+    }
+}
diff --git a/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj b/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj
index e277c76b82f1fe1c9f4c5730b7b01ccfc1833903..8a2f0af0b2ef2c2419cb2a096cb029f649d05e19 100644
--- a/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj
+++ b/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj
@@ -5,11 +5,13 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Rewrite.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="Microsoft.AspNetCore.Rewrite.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Configuration.Abstractions" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj b/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj
index d7a25a253ddaef0b6309ae8feab76ff94c26c50d..1f2336373280d111aad1caa200b570323a7fbae0 100644
--- a/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj
+++ b/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj
@@ -10,7 +10,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;urlrewrite;mod_rewrite</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj b/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj
index 7d84ebe33c917d4427148fb4e5a5ea21a0b455e6..5da1be8b70ed9b0d72dc87c1d0e3da33c3d9d0e0 100644
--- a/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj
+++ b/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj
@@ -5,10 +5,10 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Session.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Caching.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Caching.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/Session/src/Microsoft.AspNetCore.Session.csproj b/src/Middleware/Session/src/Microsoft.AspNetCore.Session.csproj
index d06dd6f5ed592aac57959b18e1c2368989e17e48..4763fe2b207d58f49a9932ab810ff931dc4985c3 100644
--- a/src/Middleware/Session/src/Microsoft.AspNetCore.Session.csproj
+++ b/src/Middleware/Session/src/Microsoft.AspNetCore.Session.csproj
@@ -8,7 +8,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;session;sessionstate</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/SpaServices.Extensions/ref/Microsoft.AspNetCore.SpaServices.Extensions.csproj b/src/Middleware/SpaServices.Extensions/ref/Microsoft.AspNetCore.SpaServices.Extensions.csproj
deleted file mode 100644
index d0234531a8f724199c5d0434921c8a748f246dba..0000000000000000000000000000000000000000
--- a/src/Middleware/SpaServices.Extensions/ref/Microsoft.AspNetCore.SpaServices.Extensions.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.SpaServices.Extensions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.SpaServices"  />
-    <Reference Include="Microsoft.AspNetCore.StaticFiles"  />
-    <Reference Include="Microsoft.AspNetCore.WebSockets"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Physical"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/SpaServices.Extensions/ref/Microsoft.AspNetCore.SpaServices.Extensions.netcoreapp.cs b/src/Middleware/SpaServices.Extensions/ref/Microsoft.AspNetCore.SpaServices.Extensions.netcoreapp.cs
deleted file mode 100644
index a8e1299e609fb5886f047fa38169582ee7bcd1f3..0000000000000000000000000000000000000000
--- a/src/Middleware/SpaServices.Extensions/ref/Microsoft.AspNetCore.SpaServices.Extensions.netcoreapp.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Builder
-{
-    public static partial class SpaApplicationBuilderExtensions
-    {
-        public static void UseSpa(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action<Microsoft.AspNetCore.SpaServices.ISpaBuilder> configuration) { }
-    }
-    [System.ObsoleteAttribute("Prerendering is no longer supported out of box")]
-    public static partial class SpaPrerenderingExtensions
-    {
-        [System.ObsoleteAttribute("Prerendering is no longer supported out of box")]
-        public static void UseSpaPrerendering(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, System.Action<Microsoft.AspNetCore.Builder.SpaPrerenderingOptions> configuration) { }
-    }
-    [System.ObsoleteAttribute("Prerendering is no longer supported out of box")]
-    public partial class SpaPrerenderingOptions
-    {
-        public SpaPrerenderingOptions() { }
-        public Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder BootModuleBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string BootModulePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string[] ExcludeUrls { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Action<Microsoft.AspNetCore.Http.HttpContext, System.Collections.Generic.IDictionary<string, object>> SupplyData { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public static partial class SpaProxyingExtensions
-    {
-        public static void UseProxyToSpaDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, System.Func<System.Threading.Tasks.Task<System.Uri>> baseUriTaskFactory) { }
-        public static void UseProxyToSpaDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, string baseUri) { }
-        public static void UseProxyToSpaDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, System.Uri baseUri) { }
-    }
-}
-namespace Microsoft.AspNetCore.SpaServices
-{
-    public partial interface ISpaBuilder
-    {
-        Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { get; }
-        Microsoft.AspNetCore.SpaServices.SpaOptions Options { get; }
-    }
-    public partial class SpaOptions
-    {
-        public SpaOptions() { }
-        public Microsoft.AspNetCore.Http.PathString DefaultPage { get { throw null; } set { } }
-        public Microsoft.AspNetCore.Builder.StaticFileOptions DefaultPageStaticFileOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int DevServerPort { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string PackageManagerCommand { get { throw null; } set { } }
-        public string SourcePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan StartupTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.AspNetCore.SpaServices.AngularCli
-{
-    [System.ObsoleteAttribute("Prerendering is no longer supported out of box")]
-    public partial class AngularCliBuilder : Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder
-    {
-        public AngularCliBuilder(string npmScript) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task Build(Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder) { throw null; }
-    }
-    public static partial class AngularCliMiddlewareExtensions
-    {
-        public static void UseAngularCliServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, string npmScript) { }
-    }
-}
-namespace Microsoft.AspNetCore.SpaServices.Prerendering
-{
-    [System.ObsoleteAttribute("Prerendering is no longer supported out of box")]
-    public partial interface ISpaPrerendererBuilder
-    {
-        System.Threading.Tasks.Task Build(Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder);
-    }
-}
-namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
-{
-    public static partial class ReactDevelopmentServerMiddlewareExtensions
-    {
-        public static void UseReactDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, string npmScript) { }
-    }
-}
-namespace Microsoft.AspNetCore.SpaServices.StaticFiles
-{
-    public partial interface ISpaStaticFileProvider
-    {
-        Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get; }
-    }
-    public partial class SpaStaticFilesOptions
-    {
-        public SpaStaticFilesOptions() { }
-        public string RootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class SpaStaticFilesExtensions
-    {
-        public static void AddSpaStaticFiles(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<Microsoft.AspNetCore.SpaServices.StaticFiles.SpaStaticFilesOptions> configuration = null) { }
-        public static void UseSpaStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder) { }
-        public static void UseSpaStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder, Microsoft.AspNetCore.Builder.StaticFileOptions options) { }
-    }
-}
diff --git a/src/Middleware/SpaServices/ref/Microsoft.AspNetCore.SpaServices.csproj b/src/Middleware/SpaServices/ref/Microsoft.AspNetCore.SpaServices.csproj
deleted file mode 100644
index ca97a61ec6ed304b893057add4cb1266f5d76024..0000000000000000000000000000000000000000
--- a/src/Middleware/SpaServices/ref/Microsoft.AspNetCore.SpaServices.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.SpaServices.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.NodeServices"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.TagHelpers"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.ViewFeatures"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Middleware/SpaServices/ref/Microsoft.AspNetCore.SpaServices.netcoreapp.cs b/src/Middleware/SpaServices/ref/Microsoft.AspNetCore.SpaServices.netcoreapp.cs
deleted file mode 100644
index 21fae17651e6cd09198e7c519520207beb9ce16f..0000000000000000000000000000000000000000
--- a/src/Middleware/SpaServices/ref/Microsoft.AspNetCore.SpaServices.netcoreapp.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Builder
-{
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class SpaRouteExtensions
-    {
-        public static void MapSpaFallbackRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, object defaults, object constraints = null, object dataTokens = null) { }
-        public static void MapSpaFallbackRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string templatePrefix, object defaults, object constraints = null, object dataTokens = null) { }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class WebpackDevMiddleware
-    {
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static void UseWebpackDevMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder appBuilder, Microsoft.AspNetCore.SpaServices.Webpack.WebpackDevMiddlewareOptions options = null) { }
-    }
-}
-namespace Microsoft.AspNetCore.SpaServices.Prerendering
-{
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial interface ISpaPrerenderer
-    {
-        System.Threading.Tasks.Task<Microsoft.AspNetCore.SpaServices.Prerendering.RenderToStringResult> RenderToString(string moduleName, string exportName = null, object customDataParameter = null, int timeoutMilliseconds = 0);
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial class JavaScriptModuleExport
-    {
-        public JavaScriptModuleExport(string moduleName) { }
-        public string ExportName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ModuleName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class Prerenderer
-    {
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static System.Threading.Tasks.Task<Microsoft.AspNetCore.SpaServices.Prerendering.RenderToStringResult> RenderToString(string applicationBasePath, Microsoft.AspNetCore.NodeServices.INodeServices nodeServices, System.Threading.CancellationToken applicationStoppingToken, Microsoft.AspNetCore.SpaServices.Prerendering.JavaScriptModuleExport bootModule, string requestAbsoluteUrl, string requestPathAndQuery, object customDataParameter, int timeoutMilliseconds, string requestPathBase) { throw null; }
-    }
-    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute(Attributes="asp-prerender-module")]
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial class PrerenderTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper
-    {
-        public PrerenderTagHelper(System.IServiceProvider serviceProvider) { }
-        [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("asp-prerender-data")]
-        public object CustomDataParameter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("asp-prerender-export")]
-        public string ExportName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("asp-prerender-module")]
-        public string ModuleName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("asp-prerender-timeout")]
-        public int TimeoutMillisecondsParameter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContextAttribute]
-        [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute]
-        public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) { throw null; }
-    }
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial class RenderToStringResult
-    {
-        public RenderToStringResult() { }
-        public Newtonsoft.Json.Linq.JObject Globals { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Html { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string RedirectUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int? StatusCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string CreateGlobalsAssignmentScript() { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.SpaServices.Webpack
-{
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public partial class WebpackDevMiddlewareOptions
-    {
-        public WebpackDevMiddlewareOptions() { }
-        public string ConfigFile { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IDictionary<string, string> EnvironmentVariables { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public object EnvParam { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool HotModuleReplacement { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IDictionary<string, string> HotModuleReplacementClientOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string HotModuleReplacementEndpoint { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int HotModuleReplacementServerPort { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ProjectPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ReactHotModuleReplacement { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-    public static partial class PrerenderingServiceCollectionExtensions
-    {
-        [System.ObsoleteAttribute("Use Microsoft.AspNetCore.SpaServices.Extensions")]
-        public static void AddSpaPrerenderer(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection) { }
-    }
-}
diff --git a/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.Manual.cs b/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b4b8bdc3220b3693d04c80fd5e8ec315b3e8b62a
--- /dev/null
+++ b/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.Manual.cs
@@ -0,0 +1,77 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Internal
+{
+    internal static partial class RangeHelper
+    {
+        internal static Microsoft.Net.Http.Headers.RangeItemHeaderValue NormalizeRange(Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long length) { throw null; }
+        public static (bool isRangeRequest, Microsoft.Net.Http.Headers.RangeItemHeaderValue range) ParseRange(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.Headers.RequestHeaders requestHeaders, long length, Microsoft.Extensions.Logging.ILogger logger) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.StaticFiles
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct StaticFileContext
+    {
+        private readonly Microsoft.AspNetCore.Http.HttpContext _context;
+        private readonly Microsoft.AspNetCore.Builder.StaticFileOptions _options;
+        private readonly Microsoft.AspNetCore.Http.HttpRequest _request;
+        private readonly Microsoft.AspNetCore.Http.HttpResponse _response;
+        private readonly Microsoft.Extensions.Logging.ILogger _logger;
+        private readonly Microsoft.Extensions.FileProviders.IFileProvider _fileProvider;
+        private readonly string _method;
+        private readonly string _contentType;
+        private Microsoft.Extensions.FileProviders.IFileInfo _fileInfo;
+        private Microsoft.Net.Http.Headers.EntityTagHeaderValue _etag;
+        private Microsoft.AspNetCore.Http.Headers.RequestHeaders _requestHeaders;
+        private Microsoft.AspNetCore.Http.Headers.ResponseHeaders _responseHeaders;
+        private Microsoft.Net.Http.Headers.RangeItemHeaderValue _range;
+        private long _length;
+        private readonly Microsoft.AspNetCore.Http.PathString _subPath;
+        private System.DateTimeOffset _lastModified;
+        private Microsoft.AspNetCore.StaticFiles.StaticFileContext.PreconditionState _ifMatchState;
+        private Microsoft.AspNetCore.StaticFiles.StaticFileContext.PreconditionState _ifNoneMatchState;
+        private Microsoft.AspNetCore.StaticFiles.StaticFileContext.PreconditionState _ifModifiedSinceState;
+        private Microsoft.AspNetCore.StaticFiles.StaticFileContext.PreconditionState _ifUnmodifiedSinceState;
+        private Microsoft.AspNetCore.StaticFiles.StaticFileContext.RequestType _requestType;
+        public StaticFileContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Builder.StaticFileOptions options, Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.FileProviders.IFileProvider fileProvider, string contentType, Microsoft.AspNetCore.Http.PathString subPath) { throw null; }
+        public bool IsGetMethod { get { throw null; } }
+        public bool IsHeadMethod { get { throw null; } }
+        public bool IsRangeRequest { get { throw null; } }
+        public string PhysicalPath { get { throw null; } }
+        public string SubPath { get { throw null; } }
+        public void ApplyResponseHeaders(int statusCode) { }
+        public void ComprehendRequestHeaders() { }
+        public Microsoft.AspNetCore.StaticFiles.StaticFileContext.PreconditionState GetPreconditionState() { throw null; }
+        public bool LookupFileInfo() { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task SendAsync() { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task SendRangeAsync() { throw null; }
+        public System.Threading.Tasks.Task SendStatusAsync(int statusCode) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ServeStaticFile(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.RequestDelegate next) { throw null; }
+        internal enum PreconditionState : byte
+        {
+            Unspecified = (byte)0,
+            NotModified = (byte)1,
+            ShouldProcess = (byte)2,
+            PreconditionFailed = (byte)3,
+        }
+        [System.FlagsAttribute]
+        private enum RequestType : byte
+        {
+            Unspecified = (byte)0,
+            IsHead = (byte)1,
+            IsGet = (byte)2,
+            IsRange = (byte)4,
+        }
+    }
+    public partial class StaticFileMiddleware
+    {
+        internal static bool LookupContentType(Microsoft.AspNetCore.StaticFiles.IContentTypeProvider contentTypeProvider, Microsoft.AspNetCore.Builder.StaticFileOptions options, Microsoft.AspNetCore.Http.PathString subPath, out string contentType) { throw null; }
+        internal static bool ValidatePath(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.PathString matchUrl, out Microsoft.AspNetCore.Http.PathString subPath) { throw null; }
+    }
+}
diff --git a/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj b/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj
index 61c52994897eab36112d8a4042f6d35cebe41c82..6b96eff899e7af4d2c2de22cb36ca7bb46a5c108 100644
--- a/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj
+++ b/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj
@@ -5,11 +5,13 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.StaticFiles.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.WebEncoders"  />
+    <Compile Include="Microsoft.AspNetCore.StaticFiles.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.WebEncoders" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj b/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj
index e48c4597f4f566b3348f639ef577b7e9aa080967..52f563a36bbb6a269a9221be36864782008b2d5c 100644
--- a/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj
+++ b/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;staticfiles</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj b/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj
index 3223cb9b1660deba2aadcfb54e979fb40965da16..be6b920ad53f08bca141a64ad0005c4d5ce44db3 100644
--- a/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj
+++ b/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.WebSockets.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj b/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj
index 87fed578b95e9cf616c4f47bcb0c79a320f1b375..aef64b71c56748244ac31c502af769638046d3d1 100644
--- a/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj
+++ b/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj
@@ -8,7 +8,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/MusicStore/samples/MusicStore/MusicStore.csproj b/src/MusicStore/samples/MusicStore/MusicStore.csproj
index bf1762d331e80109f4a95849e5f4ffee65219c8b..566cc0d6c745636b912a965b036e10cbb1925bd1 100644
--- a/src/MusicStore/samples/MusicStore/MusicStore.csproj
+++ b/src/MusicStore/samples/MusicStore/MusicStore.csproj
@@ -8,6 +8,8 @@
     <DefineConstants>$(DefineConstants);DEMO</DefineConstants>
     <RuntimeIdentifiers>win-x86;win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
     <InProcessTestSite>true</InProcessTestSite>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -33,6 +35,8 @@
     <Reference Include="Microsoft.AspNetCore.StaticFiles" />
     <Reference Include="Microsoft.EntityFrameworkCore.Sqlite" />
     <Reference Include="Microsoft.Extensions.Configuration.CommandLine" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
   <Target Name="VerifyPrecompiledViews" AfterTargets="Publish">
diff --git a/src/MusicStore/test/MusicStore.Test/MusicStore.Test.csproj b/src/MusicStore/test/MusicStore.Test/MusicStore.Test.csproj
index 9394095a66e86c1165ddae458d3397e86a58ec83..775577b1369286e1cf7acb4595b9bee2811df761 100644
--- a/src/MusicStore/test/MusicStore.Test/MusicStore.Test.csproj
+++ b/src/MusicStore/test/MusicStore.Test/MusicStore.Test.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.Manual.cs b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9ded2d72101ee857ae0b6fec7037973aa55b8a33
--- /dev/null
+++ b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.Manual.cs
@@ -0,0 +1,10 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.Extensions.Internal
+{
+    internal static partial class ClosedGenericMatcher
+    {
+        public static System.Type ExtractGenericInterface(System.Type queryType, System.Type interfaceType) { throw null; }
+    }
+}
diff --git a/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj
index 86533825ea9405ae6a5c0d254a2ccd50cd0e6061..bb095a9160c7f0e42b1c6da095f6d5c47968de12 100644
--- a/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj
+++ b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj
@@ -5,8 +5,10 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions"  />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
-    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.Abstractions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs b/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs
index 443e05259a11bab30ce93ee062badd99864a8d93..c6200ba6ee3062886e931201b75b2be1ce842656 100644
--- a/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs
+++ b/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs
@@ -47,6 +47,7 @@ namespace Microsoft.AspNetCore.Mvc.Abstractions
 
         /// <summary>
         /// Gets or sets the endpoint metadata for this action.
+        /// This API is meant for infrastructure and should not be used by application code.
         /// </summary>
         public IList<object> EndpointMetadata { get; set; }
 
diff --git a/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj b/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj
index 4be8e0b016126083bf821a0daf6f1faacbfeeffb..71d459fb80cfbfb09dee8cc9f18eea6fb576c4eb 100644
--- a/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj
+++ b/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj
@@ -8,7 +8,7 @@ Microsoft.AspNetCore.Mvc.IActionResult</Description>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs b/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs
index baac0e3b4f4d7c8a6c87d68afc94ac3391c23350..2c271ff9323e9336af8c3a932536e1fc7dadd5bb 100644
--- a/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs
+++ b/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs
@@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Analyzer.Testing;
 using Microsoft.CodeAnalysis;
 using Xunit;
 
-namespace Microsoft.AspNetCore.Mvc.Analyzers.Test
+namespace Microsoft.AspNetCore.Mvc.Analyzers
 {
     public class AttributesShouldNotBeAppliedToPageModelAnalyzerTest
     {
diff --git a/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs b/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs
index a9630cba1f315c120cdb41daf1c3b9396ae85ec0..129ed81059fa940a08f18746e0ccd40d3e40b29e 100644
--- a/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs
+++ b/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs
@@ -491,7 +491,7 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers
         private Task<Compilation> GetCompilation([CallerMemberName] string testMethod = "")
         {
             var testSource = MvcTestSource.Read(GetType().Name, testMethod);
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             return project.GetCompilationAsync();
         }
diff --git a/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs b/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs
index f29cff84d1f624e63516ebe77f0b1a8a31a50127..2b4b8dca9a9c95bd19c5c615e37cc85c11bfb099 100644
--- a/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs
+++ b/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs
@@ -2,6 +2,10 @@
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
+using System.Collections.Immutable;
+using System.IO;
+using System.Linq;
+using System.Reflection;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Analyzer.Testing;
 using Microsoft.CodeAnalysis;
@@ -20,7 +24,28 @@ namespace Microsoft.AspNetCore.Mvc
 
         public Task<Diagnostic[]> GetDiagnosticsAsync(string source)
         {
-            return GetDiagnosticsAsync(sources: new[] { source }, Analyzer, Array.Empty<string>());
+            var project = CreateProjectWithReferencesInBinDir(GetType().Assembly, source);
+
+            return GetDiagnosticsAsync(project);
+        }
+
+        public static Project CreateProjectWithReferencesInBinDir(Assembly testAssembly, params string[] source)
+        {
+            // The deps file in the project is incorrect and does not contain "compile" nodes for some references.
+            // However these binaries are always present in the bin output. As a "temporary" workaround, we'll add
+            // every dll file that's present in the test's build output as a metadatareference.
+
+            var project = DiagnosticProject.Create(testAssembly, source);
+
+            foreach (var assembly in Directory.EnumerateFiles(AppContext.BaseDirectory, "*.dll"))
+            {
+                if (!project.MetadataReferences.Any(c => string.Equals(Path.GetFileNameWithoutExtension(c.Display), Path.GetFileNameWithoutExtension(assembly), StringComparison.OrdinalIgnoreCase)))
+                {
+                    project = project.AddMetadataReference(MetadataReference.CreateFromFile(assembly));
+                }
+            }
+
+            return project;
         }
 
         public Task<Diagnostic[]> GetDiagnosticsAsync(Project project)
diff --git a/src/Mvc/Mvc.Analyzers/test/Mvc.Analyzers.Test.csproj b/src/Mvc/Mvc.Analyzers/test/Mvc.Analyzers.Test.csproj
index bf653b69e2ab3538867d02dd2d48b7595c0718db..4335457466d6e6e83ea84f11d800bda25eabc4db 100644
--- a/src/Mvc/Mvc.Analyzers/test/Mvc.Analyzers.Test.csproj
+++ b/src/Mvc/Mvc.Analyzers/test/Mvc.Analyzers.Test.csproj
@@ -15,7 +15,7 @@
 
   <ItemGroup>
     <ProjectReference Include="..\..\Mvc.Analyzers\src\Microsoft.AspNetCore.Mvc.Analyzers.csproj" />
-    <ProjectReference Include="..\..\Mvc\src\Microsoft.AspNetCore.Mvc.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Mvc" />
     <Reference Include="Microsoft.AspNetCore.Analyzer.Testing" />
     <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" />
   </ItemGroup>
diff --git a/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs b/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs
index 5876561098f21cebb0c1fee7dc9aa6952cf76692..8868548c4b69a77088d4cabe39675a29d90a166d 100644
--- a/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs
+++ b/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs
@@ -150,7 +150,7 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers
         private async Task<bool> IsProblematicParameterTest([CallerMemberName] string testMethod = "")
         {
             var testSource = MvcTestSource.Read(GetType().Name, testMethod);
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             var compilation = await project.GetCompilationAsync();
 
@@ -231,7 +231,7 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers
         private async Task<Compilation> GetCompilationForGetName()
         {
             var testSource = MvcTestSource.Read(GetType().Name, "GetNameTests");
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             var compilation = await project.GetCompilationAsync();
             return compilation;
@@ -242,7 +242,7 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers
         {
             var testMethod = nameof(SpecifiesModelType_ReturnsFalse_IfModelBinderDoesNotSpecifyType);
             var testSource = MvcTestSource.Read(GetType().Name, "SpecifiesModelTypeTests");
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             var compilation = await project.GetCompilationAsync();
             Assert.True(TopLevelParameterNameAnalyzer.SymbolCache.TryCreate(compilation, out var symbolCache));
@@ -260,7 +260,7 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers
         {
             var testMethod = nameof(SpecifiesModelType_ReturnsTrue_IfModelBinderSpecifiesTypeFromConstructor);
             var testSource = MvcTestSource.Read(GetType().Name, "SpecifiesModelTypeTests");
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             var compilation = await project.GetCompilationAsync();
             Assert.True(TopLevelParameterNameAnalyzer.SymbolCache.TryCreate(compilation, out var symbolCache));
@@ -278,7 +278,7 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers
         {
             var testMethod = nameof(SpecifiesModelType_ReturnsTrue_IfModelBinderSpecifiesTypeFromProperty);
             var testSource = MvcTestSource.Read(GetType().Name, "SpecifiesModelTypeTests");
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             var compilation = await project.GetCompilationAsync();
             Assert.True(TopLevelParameterNameAnalyzer.SymbolCache.TryCreate(compilation, out var symbolCache));
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs
index d9c15bddaa890999affb0da6f806bc8a0aa6e7bd..cca12582dd9c6be0c0c19d97e3e647c54feaa701 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs
@@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         }
     }
 }";
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { source });
             var compilation = await project.GetCompilationAsync();
             Assert.True(ApiControllerSymbolCache.TryCreate(compilation, out var symbolCache));
 
@@ -301,7 +301,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         private async Task<(bool result, IList<ActualApiResponseMetadata> responseMetadatas, TestSource testSource)> TryGetActualResponseMetadata(string typeName, string methodName)
         {
             var testSource = MvcTestSource.Read(GetType().Name, "TryGetActualResponseMetadataTests");
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             var compilation = await GetCompilation("TryGetActualResponseMetadataTests");
 
@@ -340,7 +340,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
 
         private async Task<ActualApiResponseMetadata?> RunInspectReturnStatementSyntax(string source, string test)
         {
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { source });
             var compilation = await project.GetCompilationAsync();
             Assert.True(ApiControllerSymbolCache.TryCreate(compilation, out var symbolCache));
 
@@ -361,7 +361,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         private Task<Compilation> GetCompilation(string test)
         {
             var testSource = MvcTestSource.Read(GetType().Name, test);
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             return project.GetCompilationAsync();
         }
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs
index 9ba677d101f5cbb5eb2e151eafcffd664ccbb08c..10a77b8b42a27ee3c02f5c8b2acc2d811b26c794 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs
@@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
     {
         private MvcDiagnosticAnalyzerRunner AnalyzerRunner { get; } = new MvcDiagnosticAnalyzerRunner(new ApiConventionAnalyzer());
 
-        private CodeFixRunner CodeFixRunner => CodeFixRunner.Default;
+        private CodeFixRunner CodeFixRunner { get; } = new IgnoreCS1701WarningCodeFixRunner();
 
         [Fact]
         public Task CodeFixAddsStatusCodes() => RunTest();
@@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         private Project GetProject(string testMethod)
         {
             var testSource = Read(testMethod + ".Input");
-            return DiagnosticProject.Create(GetType().Assembly, new[] { testSource });
+            return MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource });
         }
 
         private string Read(string fileName)
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs
index 918a04940abdc464f5cd626419395caa439c2209..b8b096d9c94716c19e804df666b9974efb021a6d 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs
@@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
     {
         private MvcDiagnosticAnalyzerRunner AnalyzerRunner { get; } = new MvcDiagnosticAnalyzerRunner(new ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer());
 
-        private CodeFixRunner CodeFixRunner => CodeFixRunner.Default;
+        private CodeFixRunner CodeFixRunner { get; } = new IgnoreCS1701WarningCodeFixRunner();
 
         [Fact]
         public Task CodeFixRemovesModelStateIsInvalidBlockWithIfNotCheck()
@@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         private Project GetProject(string testMethod)
         {
             var testSource = Read(testMethod + ".Input");
-            return DiagnosticProject.Create(GetType().Assembly, new[] { testSource });
+            return MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource });
         }
 
         private string Read(string fileName)
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs
index 786aeeb9d75855c0bb9236279dccbacf6233f2dc..6c2f5a81d17e269806f576b096b1167cda325a95 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs
@@ -35,7 +35,7 @@ namespace TestNamespace
         }
     }
 }";
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { source });
             var compilation = await project.GetCompilationAsync();
             Assert.True(ApiControllerSymbolCache.TryCreate(compilation, out var symbolCache));
             var method = (IMethodSymbol)compilation.GetTypeByMetadataName("TestNamespace.TestController").GetMembers("Get").First();
@@ -130,7 +130,7 @@ namespace TestNamespace
         private Task<Compilation> GetCompilation(string testFile = "TestFile")
         {
             var testSource = MvcTestSource.Read(GetType().Name, testFile);
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             return project.GetCompilationAsync();
         }
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/IgnoreCS1701WarningCodeFixRunner.cs b/src/Mvc/Mvc.Api.Analyzers/test/IgnoreCS1701WarningCodeFixRunner.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e46b39f1458b04b1c4d62041fd8da13e3957fff0
--- /dev/null
+++ b/src/Mvc/Mvc.Api.Analyzers/test/IgnoreCS1701WarningCodeFixRunner.cs
@@ -0,0 +1,18 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Linq;
+using Microsoft.AspNetCore.Analyzer.Testing;
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
+{
+    public class IgnoreCS1701WarningCodeFixRunner : CodeFixRunner
+    {
+        protected override CompilationOptions ConfigureCompilationOptions(CompilationOptions options)
+        {
+            options = base.ConfigureCompilationOptions(options);
+            return options.WithSpecificDiagnosticOptions(new[] { "CS1701" }.ToDictionary(c => c, _ => ReportDiagnostic.Suppress));
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/Mvc.Api.Analyzers.Test.csproj b/src/Mvc/Mvc.Api.Analyzers/test/Mvc.Api.Analyzers.Test.csproj
index d0330c276e073ed49f43b93edc702dacaea67f2e..179e80e92b074a89477a27bec761642d45fe705d 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/Mvc.Api.Analyzers.Test.csproj
+++ b/src/Mvc/Mvc.Api.Analyzers/test/Mvc.Api.Analyzers.Test.csproj
@@ -13,7 +13,7 @@
 
   <ItemGroup>
     <ProjectReference Include="..\..\Mvc.Api.Analyzers\src\Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj" />
-    <ProjectReference Include="..\..\Mvc\src\Microsoft.AspNetCore.Mvc.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Mvc" />
     <Reference Include="Microsoft.AspNetCore.Analyzer.Testing" />
     <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" />
   </ItemGroup>
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs
index 054426295190494b143fd1925c4d57f4cd2429cf..4498d009f174ffc7e551d037d58f4863ae59fce5 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs
@@ -226,7 +226,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         private Task<Compilation> GetCompilation(string test)
         {
             var testSource = MvcTestSource.Read(GetType().Name, test);
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             return project.GetCompilationAsync();
         }
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs
index 1d0ab00c1b2ea2676685ff35af513bc4b6dddffe..011485292c1c61d9c631c0d3e5957db55beb6cef 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs
@@ -559,7 +559,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         private Task<Compilation> GetCompilationAsync(string test = "SymbolApiConventionMatcherTestFile")
         {
             var testSource = MvcTestSource.Read(GetType().Name, test);
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             return project.GetCompilationAsync();
         }
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs
index f9adfa062afc8c58b186e620f6d706ecd1383bd7..daf18e83f1791dfee01346b8047c0ed9f2403c14 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs
@@ -478,7 +478,7 @@ namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
         private Task<Compilation> GetCompilation(string test)
         {
             var testSource = MvcTestSource.Read(GetType().Name, test);
-            var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+            var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
 
             return project.GetCompilationAsync();
         }
diff --git a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs
index 55c1e57727925efc08845cc48f07ace79ded7d31..8159e0f96994aed01771afed85935dbf106877bc 100644
--- a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs
+++ b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs
@@ -1,13 +1,26 @@
 // Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
-using System.Runtime.CompilerServices;
+namespace Microsoft.AspNetCore.Mvc.ApiExplorer
+{
+    internal partial class ApiResponseTypeProvider
+    {
+        public ApiResponseTypeProvider(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) { }
+        public System.Collections.Generic.ICollection<Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType> GetApiResponseTypes(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor action) { throw null; }
+    }
 
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider))]
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription))]
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext))]
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription))]
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo))]
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat))]
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat))]
-[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType))]
+    internal partial class ApiParameterContext
+    {
+        public ApiParameterContext(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Routing.Template.TemplatePart> routeParameters) { }
+        public Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor ActionDescriptor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription> Results { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Routing.Template.TemplatePart> RouteParameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+
+    public partial class DefaultApiDescriptionProvider : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider
+    {
+        internal static void ProcessIsRequired(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterContext context) { }
+        internal static void ProcessParameterDefaultValue(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterContext context) { }
+    }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
index 6866adbfabfe979a6e6bf35d6d7bcfcc73b00250..560f122382036aff19772cc986eb85e8fc711e67 100644
--- a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
+++ b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
@@ -6,6 +6,7 @@
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.ApiExplorer.netcoreapp.cs" />
     <Compile Include="Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Core"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Core" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj b/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
index 2736b825a878f8ed497c37b60acbde1de5db9db6..11be402c60b343b9cd9c0762ee3ceff052384618 100644
--- a/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
+++ b/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs
index d3e44fb47120b6e80176e8a5ed35bf2102ac7bfd..df2524aa1b99cfff78940fa59ed168d7d53ef395 100644
--- a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs
+++ b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs
@@ -1,7 +1,1633 @@
 // Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
-using System.Runtime.CompilerServices;
-using Microsoft.AspNetCore.Mvc.Formatters;
-
-[assembly: TypeForwardedTo(typeof(InputFormatterException))]
+namespace Microsoft.AspNetCore.Builder
+{
+    public sealed partial class ControllerActionEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder
+    {
+        internal ControllerActionEndpointConventionBuilder(object @lock, System.Collections.Generic.List<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> conventions) { }
+    }
+}
+namespace Microsoft.AspNetCore.Internal
+{
+    internal partial class ChunkingCookieManager
+    {
+        public const int DefaultChunkSize = 4050;
+        public ChunkingCookieManager() { }
+        public int? ChunkSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool ThrowForPartialCookies { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void AppendResponseCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, string value, Microsoft.AspNetCore.Http.CookieOptions options) { }
+        public void DeleteCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, Microsoft.AspNetCore.Http.CookieOptions options) { }
+        public string GetRequestCookie(Microsoft.AspNetCore.Http.HttpContext context, string key) { throw null; }
+    }
+    internal static partial class RangeHelper
+    {
+        internal static Microsoft.Net.Http.Headers.RangeItemHeaderValue NormalizeRange(Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long length) { throw null; }
+        public static (bool isRangeRequest, Microsoft.Net.Http.Headers.RangeItemHeaderValue range) ParseRange(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.Headers.RequestHeaders requestHeaders, long length, Microsoft.Extensions.Logging.ILogger logger) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc
+{
+    public sealed partial class ApiConventionMethodAttribute : System.Attribute
+    {
+        internal System.Reflection.MethodInfo Method { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public sealed partial class ApiConventionTypeAttribute : System.Attribute
+    {
+        internal static void EnsureValid(System.Type conventionType) { }
+    }
+    internal static partial class MvcCoreDiagnosticListenerExtensions
+    {
+        public static void AfterAction(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) { }
+        public static void AfterActionResult(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) { }
+        public static void AfterControllerActionMethod(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary<string, object> actionArguments, object controller, Microsoft.AspNetCore.Mvc.IActionResult result) { }
+        public static void AfterOnActionExecuted(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IActionFilter filter) { }
+        public static void AfterOnActionExecuting(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IActionFilter filter) { }
+        public static void AfterOnActionExecution(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter filter) { }
+        public static void AfterOnAuthorization(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter filter) { }
+        public static void AfterOnAuthorizationAsync(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter filter) { }
+        public static void AfterOnException(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter filter) { }
+        public static void AfterOnExceptionAsync(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter filter) { }
+        public static void AfterOnResourceExecuted(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter filter) { }
+        public static void AfterOnResourceExecuting(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter filter) { }
+        public static void AfterOnResourceExecution(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncResourceFilter filter) { }
+        public static void AfterOnResultExecuted(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IResultFilter filter) { }
+        public static void AfterOnResultExecuting(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IResultFilter filter) { }
+        public static void AfterOnResultExecution(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter filter) { }
+        public static void BeforeAction(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) { }
+        public static void BeforeActionResult(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) { }
+        public static void BeforeControllerActionMethod(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary<string, object> actionArguments, object controller) { }
+        public static void BeforeOnActionExecuted(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IActionFilter filter) { }
+        public static void BeforeOnActionExecuting(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IActionFilter filter) { }
+        public static void BeforeOnActionExecution(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter filter) { }
+        public static void BeforeOnAuthorization(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter filter) { }
+        public static void BeforeOnAuthorizationAsync(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter filter) { }
+        public static void BeforeOnException(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter filter) { }
+        public static void BeforeOnExceptionAsync(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter filter) { }
+        public static void BeforeOnResourceExecuted(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter filter) { }
+        public static void BeforeOnResourceExecuting(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter filter) { }
+        public static void BeforeOnResourceExecution(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncResourceFilter filter) { }
+        public static void BeforeOnResultExecuted(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IResultFilter filter) { }
+        public static void BeforeOnResultExecuting(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IResultFilter filter) { }
+        public static void BeforeOnResultExecution(this System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter filter) { }
+    }
+    internal static partial class MvcCoreLoggerExtensions
+    {
+        public const string ActionFilter = "Action Filter";
+        public static void ActionDoesNotExplicitlySpecifyContentTypes(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void ActionDoesNotSupportFormatFilterContentType(this Microsoft.Extensions.Logging.ILogger logger, string format, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection supportedMediaTypes) { }
+        public static void ActionFiltersExecutionPlan(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata> filters) { }
+        public static void ActionFilterShortCircuited(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void ActionMethodExecuted(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ControllerContext context, Microsoft.AspNetCore.Mvc.IActionResult result, System.TimeSpan timeSpan) { }
+        public static void ActionMethodExecuting(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ControllerContext context, object[] arguments) { }
+#nullable enable
+        public static System.IDisposable ActionScope(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action) { throw new System.ArgumentException(); }
+#nullable restore
+        public static void AfterExecutingActionResult(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.IActionResult actionResult) { }
+        public static void AfterExecutingMethodOnFilter(this Microsoft.Extensions.Logging.ILogger logger, string filterType, string methodName, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void AmbiguousActions(this Microsoft.Extensions.Logging.ILogger logger, string actionNames) { }
+        public static void AppliedRequestFormLimits(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void AttemptingToBindCollectionUsingIndices(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void AttemptingToBindModel(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void AttemptingToBindParameterOrProperty(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) { }
+        public static void AttemptingToValidateParameterOrProperty(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) { }
+        public static void AuthorizationFailure(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void AuthorizationFiltersExecutionPlan(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata> filters) { }
+        public static void BeforeExecutingActionResult(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.IActionResult actionResult) { }
+        public static void BeforeExecutingMethodOnFilter(this Microsoft.Extensions.Logging.ILogger logger, string filterType, string methodName, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void CannotApplyFormatFilterContentType(this Microsoft.Extensions.Logging.ILogger logger, string format) { }
+        public static void CannotApplyRequestFormLimits(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void CannotBindToComplexType(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void CannotBindToFilesCollectionDueToUnsupportedContentType(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void CannotCreateHeaderModelBinder(this Microsoft.Extensions.Logging.ILogger logger, System.Type modelType) { }
+        public static void CannotCreateHeaderModelBinderCompatVersion_2_0(this Microsoft.Extensions.Logging.ILogger logger, System.Type modelType) { }
+        public static void ChallengeResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IList<string> schemes) { }
+        public static void ConstraintMismatch(this Microsoft.Extensions.Logging.ILogger logger, string actionName, string actionId, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint actionConstraint) { }
+        public static void ContentResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, string contentType) { }
+        public static void DoneAttemptingToBindModel(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void DoneAttemptingToBindParameterOrProperty(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) { }
+        public static void DoneAttemptingToValidateParameterOrProperty(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) { }
+        public static void ExceptionFiltersExecutionPlan(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata> filters) { }
+        public static void ExceptionFilterShortCircuited(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void ExecutedAction(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action, System.TimeSpan timeSpan) { }
+        public static void ExecutedControllerFactory(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ControllerContext context) { }
+        public static void ExecutingAction(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action) { }
+        public static void ExecutingControllerFactory(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ControllerContext context) { }
+        public static void ExecutingFileResult(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.FileResult fileResult) { }
+        public static void ExecutingFileResult(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.FileResult fileResult, string fileName) { }
+        public static void FeatureIsReadOnly(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void FeatureNotFound(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void ForbidResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IList<string> authenticationSchemes) { }
+        public static void FormatterSelected(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter outputFormatter, Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) { }
+        public static void FoundNoValueInRequest(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void HttpStatusCodeResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, int statusCode) { }
+        public static void IfMatchPreconditionFailed(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Net.Http.Headers.EntityTagHeaderValue etag) { }
+        public static void IfRangeETagPreconditionFailed(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Net.Http.Headers.EntityTagHeaderValue currentETag, Microsoft.Net.Http.Headers.EntityTagHeaderValue ifRangeTag) { }
+        public static void IfRangeLastModifiedPreconditionFailed(this Microsoft.Extensions.Logging.ILogger logger, System.DateTimeOffset? lastModified, System.DateTimeOffset? ifRangeLastModifiedDate) { }
+        public static void IfUnmodifiedSincePreconditionFailed(this Microsoft.Extensions.Logging.ILogger logger, System.DateTimeOffset? lastModified, System.DateTimeOffset? ifUnmodifiedSinceDate) { }
+        public static void InferredParameterBindingSource(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel parameterModel, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) { }
+        public static void InputFormatterRejected(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter inputFormatter, Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext formatterContext) { }
+        public static void InputFormatterSelected(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter inputFormatter, Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext formatterContext) { }
+        public static void LocalRedirectResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, string destination) { }
+        public static void MaxRequestBodySizeSet(this Microsoft.Extensions.Logging.ILogger logger, string requestSize) { }
+        public static void ModelStateInvalidFilterExecuting(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void NoAcceptForNegotiation(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void NoActionsMatched(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IDictionary<string, object> routeValueDictionary) { }
+        public static void NoFilesFoundInRequest(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void NoFormatter(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) { }
+        public static void NoFormatterFromNegotiation(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality> acceptTypes) { }
+        public static void NoInputFormatterSelected(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext formatterContext) { }
+        public static void NoKeyValueFormatForDictionaryModelBinder(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void NoNonIndexBasedFormatFoundForCollection(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void NoPublicSettableProperties(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { }
+        public static void NotEnabledForRangeProcessing(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void NotMostEffectiveFilter(this Microsoft.Extensions.Logging.ILogger logger, System.Type overridenFilter, System.Type overridingFilter, System.Type policyType) { }
+        public static void ObjectResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, object value) { }
+        public static void ParameterBinderRequestPredicateShortCircuit(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) { }
+        public static void RedirectResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, string destination) { }
+        public static void RedirectToActionResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, string destination) { }
+        public static void RedirectToPageResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, string page) { }
+        public static void RedirectToRouteResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, string destination, string routeName) { }
+        public static void RegisteredModelBinderProviders(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider[] providers) { }
+        public static void RegisteredOutputFormatters(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter> outputFormatters) { }
+        public static void RequestBodySizeLimitDisabled(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void ResourceFiltersExecutionPlan(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata> filters) { }
+        public static void ResourceFilterShortCircuited(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void ResultFiltersExecutionPlan(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata> filters) { }
+        public static void ResultFilterShortCircuited(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void SelectFirstCanWriteFormatter(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void SelectingOutputFormatterUsingAcceptHeader(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality> acceptHeader) { }
+        public static void SelectingOutputFormatterUsingAcceptHeaderAndExplicitContentTypes(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality> acceptHeader, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection mediaTypeCollection) { }
+        public static void SelectingOutputFormatterUsingContentTypes(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection mediaTypeCollection) { }
+        public static void SelectingOutputFormatterWithoutUsingContentTypes(this Microsoft.Extensions.Logging.ILogger logger) { }
+        public static void SignInResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, string authenticationScheme, System.Security.Claims.ClaimsPrincipal principal) { }
+        public static void SignOutResultExecuting(this Microsoft.Extensions.Logging.ILogger logger, System.Collections.Generic.IList<string> authenticationSchemes) { }
+        public static void SkippedContentNegotiation(this Microsoft.Extensions.Logging.ILogger logger, string contentType) { }
+        public static void TransformingClientError(this Microsoft.Extensions.Logging.ILogger logger, System.Type initialType, System.Type replacedType, int? statusCode) { }
+        public static void UnsupportedFormatFilterContentType(this Microsoft.Extensions.Logging.ILogger logger, string format) { }
+        public static void WritingRangeToBody(this Microsoft.Extensions.Logging.ILogger logger) { }
+    }
+    internal partial class MvcCoreMvcOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Mvc.MvcOptions>, Microsoft.Extensions.Options.IPostConfigureOptions<Microsoft.AspNetCore.Mvc.MvcOptions>
+    {
+        public MvcCoreMvcOptionsSetup(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory) { }
+        public MvcCoreMvcOptionsSetup(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.JsonOptions> jsonOptions) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+        internal static void ConfigureAdditionalModelMetadataDetailsProviders(System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider> modelMetadataDetailsProviders) { }
+        public void PostConfigure(string name, Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+    }
+    public partial class MvcOptions : System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch>, System.Collections.IEnumerable
+    {
+        internal const int DefaultMaxModelBindingCollectionSize = 1024;
+        internal const int DefaultMaxModelBindingRecursionDepth = 32;
+    }
+    public partial class RequestFormLimitsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        internal Microsoft.AspNetCore.Http.Features.FormOptions FormOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ActionConstraints
+{
+    internal partial class ActionConstraintCache
+    {
+        public ActionConstraintCache(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider collectionProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider> actionConstraintProviders) { }
+        internal Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintCache.InnerCache CurrentCache { get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint> GetActionConstraints(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal readonly partial struct CacheEntry
+        {
+            private readonly object _dummy;
+            public CacheEntry(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint> actionConstraints) { throw null; }
+            public CacheEntry(System.Collections.Generic.List<Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem> items) { throw null; }
+            public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint> ActionConstraints { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public System.Collections.Generic.List<Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem> Items { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        }
+        internal partial class InnerCache
+        {
+            public InnerCache(Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection actions) { }
+            public System.Collections.Concurrent.ConcurrentDictionary<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor, Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintCache.CacheEntry> Entries { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public int Version { get { throw null; } }
+        }
+    }
+    internal partial class DefaultActionConstraintProvider : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider
+    {
+        public DefaultActionConstraintProvider() { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext context) { }
+    }
+    internal partial interface IConsumesActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata
+    {
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ApiExplorer
+{
+    internal static partial class ApiConventionMatcher
+    {
+        internal static Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior GetNameMatchBehavior(System.Reflection.ICustomAttributeProvider attributeProvider) { throw null; }
+        internal static Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior GetTypeMatchBehavior(System.Reflection.ICustomAttributeProvider attributeProvider) { throw null; }
+        internal static bool IsMatch(System.Reflection.MethodInfo methodInfo, System.Reflection.MethodInfo conventionMethod) { throw null; }
+        internal static bool IsNameMatch(string name, string conventionName, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior nameMatchBehavior) { throw null; }
+        internal static bool IsTypeMatch(System.Type type, System.Type conventionType, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior typeMatchBehavior) { throw null; }
+    }
+    public sealed partial class ApiConventionResult
+    {
+        internal static bool TryGetApiConvention(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Mvc.ApiConventionTypeAttribute[] apiConventionAttributes, out Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionResult result) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ApplicationModels
+{
+    internal static partial class ActionAttributeRouteModel
+    {
+        public static System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel> FlattenSelectors(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel actionModel) { throw null; }
+        public static System.Collections.Generic.IEnumerable<System.ValueTuple<Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel, Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel, Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel>> GetAttributeRoutes(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel actionModel) { throw null; }
+    }
+    internal partial class ApiBehaviorApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider
+    {
+        public ApiBehaviorApplicationModelProvider(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.ApiBehaviorOptions> apiBehaviorOptions, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory clientErrorFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public System.Collections.Generic.List<Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention> ActionModelConventions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+    }
+    internal static partial class ApplicationModelConventions
+    {
+        public static void ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel applicationModel, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention> conventions) { }
+    }
+    internal partial class ApplicationModelFactory
+    {
+        public ApplicationModelFactory(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider> applicationModelProviders, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> options) { }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel CreateApplicationModel(System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo> controllerTypes) { throw null; }
+        public static System.Collections.Generic.List<TResult> Flatten<TResult>(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel application, System.Func<Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel, Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel, TResult> flattener) { throw null; }
+    }
+    internal partial class AuthorizationApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider
+    {
+        public AuthorizationApplicationModelProvider(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions) { }
+        public int Order { get { throw null; } }
+        public static Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter GetFilter(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Authorization.IAuthorizeData> authData) { throw null; }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+    }
+    public partial class ConsumesConstraintForFormFileParameterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention
+    {
+        internal void AddMultipartFormDataConsumesAttribute(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) { }
+    }
+    internal static partial class ControllerActionDescriptorBuilder
+    {
+        public static void AddRouteValues(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel controller, Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) { }
+        public static System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor> Build(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel application) { throw null; }
+    }
+    internal partial class ControllerActionDescriptorProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider
+    {
+        public ControllerActionDescriptorProvider(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager partManager, Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelFactory applicationModelFactory) { }
+        public int Order { get { throw null; } }
+        internal System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor> GetDescriptors() { throw null; }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) { }
+    }
+    internal partial class DefaultApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider
+    {
+        public DefaultApplicationModelProvider(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptionsAccessor, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) { }
+        public int Order { get { throw null; } }
+        internal Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel CreateActionModel(System.Reflection.TypeInfo typeInfo, System.Reflection.MethodInfo methodInfo) { throw null; }
+        internal Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel CreateControllerModel(System.Reflection.TypeInfo typeInfo) { throw null; }
+        internal Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel CreateParameterModel(System.Reflection.ParameterInfo parameterInfo) { throw null; }
+        internal Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel CreatePropertyModel(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+        internal bool IsAction(System.Reflection.TypeInfo typeInfo, System.Reflection.MethodInfo methodInfo) { throw null; }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+    }
+    public partial class InferParameterBindingInfoConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention
+    {
+        internal Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource InferBindingSourceForParameter(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel parameter) { throw null; }
+        internal void InferParameterBindingSources(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ApplicationParts
+{
+    public partial class ApplicationPartManager
+    {
+        internal void PopulateDefaultParts(string entryAssemblyName) { }
+    }
+    public sealed partial class RelatedAssemblyAttribute : System.Attribute
+    {
+        internal static string GetAssemblyLocation(System.Reflection.Assembly assembly) { throw null; }
+        internal static System.Collections.Generic.IReadOnlyList<System.Reflection.Assembly> GetRelatedAssemblies(System.Reflection.Assembly assembly, bool throwOnError, System.Func<string, bool> fileExists, System.Func<string, System.Reflection.Assembly> loadFile) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Authorization
+{
+    public partial class AuthorizeFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task<Microsoft.AspNetCore.Authorization.AuthorizationPolicy> GetEffectivePolicyAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Controllers
+{
+    internal delegate System.Threading.Tasks.Task ControllerBinderDelegate(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext, object controller, System.Collections.Generic.Dictionary<string, object> arguments);
+    internal static partial class ControllerBinderDelegateProvider
+    {
+        public static Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegate CreateBinderDelegate(Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder parameterBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) { throw null; }
+    }
+    internal partial class ControllerFactoryProvider : Microsoft.AspNetCore.Mvc.Controllers.IControllerFactoryProvider
+    {
+        public ControllerFactoryProvider(Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider activatorProvider, Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory controllerFactory, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Controllers.IControllerPropertyActivator> propertyActivators) { }
+        public System.Func<Microsoft.AspNetCore.Mvc.ControllerContext, object> CreateControllerFactory(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) { throw null; }
+        public System.Action<Microsoft.AspNetCore.Mvc.ControllerContext, object> CreateControllerReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) { throw null; }
+    }
+    internal partial class DefaultControllerActivator : Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator
+    {
+        public DefaultControllerActivator(Microsoft.AspNetCore.Mvc.Infrastructure.ITypeActivatorCache typeActivatorCache) { }
+        public object Create(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext) { throw null; }
+        public void Release(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) { }
+    }
+    internal partial class DefaultControllerFactory : Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory
+    {
+        public DefaultControllerFactory(Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator controllerActivator, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Controllers.IControllerPropertyActivator> propertyActivators) { }
+        public object CreateController(Microsoft.AspNetCore.Mvc.ControllerContext context) { throw null; }
+        public void ReleaseController(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) { }
+    }
+    internal partial class DefaultControllerPropertyActivator : Microsoft.AspNetCore.Mvc.Controllers.IControllerPropertyActivator
+    {
+        public DefaultControllerPropertyActivator() { }
+        public void Activate(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) { }
+        public System.Action<Microsoft.AspNetCore.Mvc.ControllerContext, object> GetActivatorDelegate(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor) { throw null; }
+    }
+    internal partial interface IControllerPropertyActivator
+    {
+        void Activate(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller);
+        System.Action<Microsoft.AspNetCore.Mvc.ControllerContext, object> GetActivatorDelegate(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor);
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Core
+{
+    internal static partial class Resources
+    {
+        internal static string AcceptHeaderParser_ParseAcceptHeader_InvalidValues { get { throw null; } }
+        internal static string ActionDescriptorMustBeBasedOnControllerAction { get { throw null; } }
+        internal static string ActionExecutor_UnexpectedTaskInstance { get { throw null; } }
+        internal static string ActionExecutor_WrappedTaskInstance { get { throw null; } }
+        internal static string ActionInvokerFactory_CouldNotCreateInvoker { get { throw null; } }
+        internal static string ActionResult_ActionReturnValueCannotBeNull { get { throw null; } }
+        internal static string ApiController_AttributeRouteRequired { get { throw null; } }
+        internal static string ApiController_MultipleBodyParametersFound { get { throw null; } }
+        internal static string ApiConventionMethod_AmbiguousMethodName { get { throw null; } }
+        internal static string ApiConventionMethod_NoMethodFound { get { throw null; } }
+        internal static string ApiConventionMustBeStatic { get { throw null; } }
+        internal static string ApiConventions_Title_400 { get { throw null; } }
+        internal static string ApiConventions_Title_401 { get { throw null; } }
+        internal static string ApiConventions_Title_403 { get { throw null; } }
+        internal static string ApiConventions_Title_404 { get { throw null; } }
+        internal static string ApiConventions_Title_406 { get { throw null; } }
+        internal static string ApiConventions_Title_409 { get { throw null; } }
+        internal static string ApiConventions_Title_415 { get { throw null; } }
+        internal static string ApiConventions_Title_422 { get { throw null; } }
+        internal static string ApiConventions_Title_500 { get { throw null; } }
+        internal static string ApiConvention_UnsupportedAttributesOnConvention { get { throw null; } }
+        internal static string ApiExplorer_UnsupportedAction { get { throw null; } }
+        internal static string ApplicationAssembliesProvider_DuplicateRelatedAssembly { get { throw null; } }
+        internal static string ApplicationAssembliesProvider_RelatedAssemblyCannotDefineAdditional { get { throw null; } }
+        internal static string ApplicationPartFactory_InvalidFactoryType { get { throw null; } }
+        internal static string ArgumentCannotBeNullOrEmpty { get { throw null; } }
+        internal static string Argument_InvalidOffsetLength { get { throw null; } }
+        internal static string AsyncActionFilter_InvalidShortCircuit { get { throw null; } }
+        internal static string AsyncResourceFilter_InvalidShortCircuit { get { throw null; } }
+        internal static string AsyncResultFilter_InvalidShortCircuit { get { throw null; } }
+        internal static string AttributeRoute_AggregateErrorMessage { get { throw null; } }
+        internal static string AttributeRoute_AggregateErrorMessage_ErrorNumber { get { throw null; } }
+        internal static string AttributeRoute_CannotContainParameter { get { throw null; } }
+        internal static string AttributeRoute_DuplicateNames { get { throw null; } }
+        internal static string AttributeRoute_DuplicateNames_Item { get { throw null; } }
+        internal static string AttributeRoute_IndividualErrorMessage { get { throw null; } }
+        internal static string AttributeRoute_MixedAttributeAndConventionallyRoutedActions_ForMethod { get { throw null; } }
+        internal static string AttributeRoute_MixedAttributeAndConventionallyRoutedActions_ForMethod_Item { get { throw null; } }
+        internal static string AttributeRoute_NullTemplateRepresentation { get { throw null; } }
+        internal static string AttributeRoute_TokenReplacement_EmptyTokenNotAllowed { get { throw null; } }
+        internal static string AttributeRoute_TokenReplacement_ImbalancedSquareBrackets { get { throw null; } }
+        internal static string AttributeRoute_TokenReplacement_InvalidSyntax { get { throw null; } }
+        internal static string AttributeRoute_TokenReplacement_ReplacementValueNotFound { get { throw null; } }
+        internal static string AttributeRoute_TokenReplacement_UnclosedToken { get { throw null; } }
+        internal static string AttributeRoute_TokenReplacement_UnescapedBraceInToken { get { throw null; } }
+        internal static string AuthorizeFilter_AuthorizationPolicyCannotBeCreated { get { throw null; } }
+        internal static string BinderType_MustBeIModelBinder { get { throw null; } }
+        internal static string BindingSource_CannotBeComposite { get { throw null; } }
+        internal static string BindingSource_CannotBeGreedy { get { throw null; } }
+        internal static string CacheProfileNotFound { get { throw null; } }
+        internal static string CandidateResolver_DifferentCasedReference { get { throw null; } }
+        internal static string Common_PropertyNotFound { get { throw null; } }
+        internal static string ComplexTypeModelBinder_NoParameterlessConstructor_ForParameter { get { throw null; } }
+        internal static string ComplexTypeModelBinder_NoParameterlessConstructor_ForProperty { get { throw null; } }
+        internal static string ComplexTypeModelBinder_NoParameterlessConstructor_ForType { get { throw null; } }
+        internal static string CouldNotCreateIModelBinder { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string DefaultActionSelector_AmbiguousActions { get { throw null; } }
+        internal static string FileResult_InvalidPath { get { throw null; } }
+        internal static string FileResult_PathNotRooted { get { throw null; } }
+        internal static string FilterFactoryAttribute_TypeMustImplementIFilter { get { throw null; } }
+        internal static string FormatFormatterMappings_GetMediaTypeMappingForFormat_InvalidFormat { get { throw null; } }
+        internal static string FormatterMappings_NotValidMediaType { get { throw null; } }
+        internal static string Formatter_NoMediaTypes { get { throw null; } }
+        internal static string Format_NotValid { get { throw null; } }
+        internal static string FormCollectionModelBinder_CannotBindToFormCollection { get { throw null; } }
+        internal static string HtmlGeneration_NonPropertyValueMustBeNumber { get { throw null; } }
+        internal static string HtmlGeneration_ValueIsInvalid { get { throw null; } }
+        internal static string HtmlGeneration_ValueMustBeNumber { get { throw null; } }
+        internal static string InputFormatterNoEncoding { get { throw null; } }
+        internal static string InputFormattersAreRequired { get { throw null; } }
+        internal static string InvalidTypeTForActionResultOfT { get { throw null; } }
+        internal static string Invalid_IncludePropertyExpression { get { throw null; } }
+        internal static string JQueryFormValueProviderFactory_MissingClosingBracket { get { throw null; } }
+        internal static string KeyValuePair_BothKeyAndValueMustBePresent { get { throw null; } }
+        internal static string MatchAllContentTypeIsNotAllowed { get { throw null; } }
+        internal static string MiddewareFilter_ConfigureMethodOverload { get { throw null; } }
+        internal static string MiddewareFilter_NoConfigureMethod { get { throw null; } }
+        internal static string MiddlewareFilterBuilder_NoMiddlewareFeature { get { throw null; } }
+        internal static string MiddlewareFilterBuilder_NullApplicationBuilder { get { throw null; } }
+        internal static string MiddlewareFilterConfigurationProvider_CreateConfigureDelegate_CannotCreateType { get { throw null; } }
+        internal static string MiddlewareFilter_InvalidConfigureReturnType { get { throw null; } }
+        internal static string MiddlewareFilter_ServiceResolutionFail { get { throw null; } }
+        internal static string ModelBinderProvidersAreRequired { get { throw null; } }
+        internal static string ModelBinderUtil_ModelCannotBeNull { get { throw null; } }
+        internal static string ModelBinderUtil_ModelInstanceIsWrong { get { throw null; } }
+        internal static string ModelBinderUtil_ModelMetadataCannotBeNull { get { throw null; } }
+        internal static string ModelBinding_ExceededMaxModelBindingCollectionSize { get { throw null; } }
+        internal static string ModelBinding_ExceededMaxModelBindingRecursionDepth { get { throw null; } }
+        internal static string ModelBinding_MissingBindRequiredMember { get { throw null; } }
+        internal static string ModelBinding_MissingRequestBodyRequiredMember { get { throw null; } }
+        internal static string ModelBinding_NullValueNotValid { get { throw null; } }
+        internal static string ModelState_AttemptedValueIsInvalid { get { throw null; } }
+        internal static string ModelState_NonPropertyAttemptedValueIsInvalid { get { throw null; } }
+        internal static string ModelState_NonPropertyUnknownValueIsInvalid { get { throw null; } }
+        internal static string ModelState_UnknownValueIsInvalid { get { throw null; } }
+        internal static string ModelType_WrongType { get { throw null; } }
+        internal static string NoRoutesMatched { get { throw null; } }
+        internal static string NoRoutesMatchedForPage { get { throw null; } }
+        internal static string ObjectResultExecutor_MaxEnumerationExceeded { get { throw null; } }
+        internal static string ObjectResult_MatchAllContentType { get { throw null; } }
+        internal static string OutputFormatterNoMediaType { get { throw null; } }
+        internal static string OutputFormattersAreRequired { get { throw null; } }
+        internal static string PropertyOfTypeCannotBeNull { get { throw null; } }
+        internal static string Property_MustBeInstanceOfType { get { throw null; } }
+        internal static string ReferenceToNewtonsoftJsonRequired { get { throw null; } }
+        internal static string RelatedAssemblyAttribute_AssemblyCannotReferenceSelf { get { throw null; } }
+        internal static string RelatedAssemblyAttribute_CouldNotBeFound { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string ResponseCache_SpecifyDuration { get { throw null; } }
+        internal static string SerializableError_DefaultError { get { throw null; } }
+        internal static string TextInputFormatter_SupportedEncodingsMustNotBeEmpty { get { throw null; } }
+        internal static string TextOutputFormatter_SupportedEncodingsMustNotBeEmpty { get { throw null; } }
+        internal static string TextOutputFormatter_WriteResponseBodyAsyncNotSupported { get { throw null; } }
+        internal static string TypeMethodMustReturnNotNullValue { get { throw null; } }
+        internal static string TypeMustDeriveFromType { get { throw null; } }
+        internal static string UnableToFindServices { get { throw null; } }
+        internal static string UnexpectedJsonEnd { get { throw null; } }
+        internal static string UnsupportedContentType { get { throw null; } }
+        internal static string UrlHelper_RelativePagePathIsNotSupported { get { throw null; } }
+        internal static string UrlNotLocal { get { throw null; } }
+        internal static string ValidationProblemDescription_Title { get { throw null; } }
+        internal static string ValidationVisitor_ExceededMaxDepth { get { throw null; } }
+        internal static string ValidationVisitor_ExceededMaxDepthFix { get { throw null; } }
+        internal static string ValidationVisitor_ExceededMaxPropertyDepth { get { throw null; } }
+        internal static string ValueInterfaceAbstractOrOpenGenericTypesCannotBeActivated { get { throw null; } }
+        internal static string ValueProviderResult_NoConverterExists { get { throw null; } }
+        internal static string VaryByQueryKeys_Requires_ResponseCachingMiddleware { get { throw null; } }
+        internal static string VirtualFileResultExecutor_NoFileProviderConfigured { get { throw null; } }
+        internal static string FormatAcceptHeaderParser_ParseAcceptHeader_InvalidValues(object p0) { throw null; }
+        internal static string FormatActionDescriptorMustBeBasedOnControllerAction(object p0) { throw null; }
+        internal static string FormatActionExecutor_UnexpectedTaskInstance(object p0, object p1) { throw null; }
+        internal static string FormatActionExecutor_WrappedTaskInstance(object p0, object p1, object p2) { throw null; }
+        internal static string FormatActionInvokerFactory_CouldNotCreateInvoker(object p0) { throw null; }
+        internal static string FormatActionResult_ActionReturnValueCannotBeNull(object p0) { throw null; }
+        internal static string FormatApiController_AttributeRouteRequired(object p0, object p1) { throw null; }
+        internal static string FormatApiController_MultipleBodyParametersFound(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatApiConventionMethod_AmbiguousMethodName(object p0, object p1) { throw null; }
+        internal static string FormatApiConventionMethod_NoMethodFound(object p0, object p1) { throw null; }
+        internal static string FormatApiConventionMustBeStatic(object p0) { throw null; }
+        internal static string FormatApiConvention_UnsupportedAttributesOnConvention(object p0, object p1, object p2) { throw null; }
+        internal static string FormatApiExplorer_UnsupportedAction(object p0) { throw null; }
+        internal static string FormatApplicationAssembliesProvider_DuplicateRelatedAssembly(object p0) { throw null; }
+        internal static string FormatApplicationAssembliesProvider_RelatedAssemblyCannotDefineAdditional(object p0, object p1) { throw null; }
+        internal static string FormatApplicationPartFactory_InvalidFactoryType(object p0, object p1, object p2) { throw null; }
+        internal static string FormatArgument_InvalidOffsetLength(object p0, object p1) { throw null; }
+        internal static string FormatAsyncActionFilter_InvalidShortCircuit(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatAsyncResourceFilter_InvalidShortCircuit(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatAsyncResultFilter_InvalidShortCircuit(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatAttributeRoute_AggregateErrorMessage(object p0, object p1) { throw null; }
+        internal static string FormatAttributeRoute_AggregateErrorMessage_ErrorNumber(object p0, object p1, object p2) { throw null; }
+        internal static string FormatAttributeRoute_CannotContainParameter(object p0, object p1, object p2) { throw null; }
+        internal static string FormatAttributeRoute_DuplicateNames(object p0, object p1, object p2) { throw null; }
+        internal static string FormatAttributeRoute_DuplicateNames_Item(object p0, object p1) { throw null; }
+        internal static string FormatAttributeRoute_IndividualErrorMessage(object p0, object p1, object p2) { throw null; }
+        internal static string FormatAttributeRoute_MixedAttributeAndConventionallyRoutedActions_ForMethod(object p0, object p1, object p2) { throw null; }
+        internal static string FormatAttributeRoute_MixedAttributeAndConventionallyRoutedActions_ForMethod_Item(object p0, object p1, object p2) { throw null; }
+        internal static string FormatAttributeRoute_TokenReplacement_InvalidSyntax(object p0, object p1) { throw null; }
+        internal static string FormatAttributeRoute_TokenReplacement_ReplacementValueNotFound(object p0, object p1, object p2) { throw null; }
+        internal static string FormatAuthorizeFilter_AuthorizationPolicyCannotBeCreated(object p0, object p1) { throw null; }
+        internal static string FormatBinderType_MustBeIModelBinder(object p0, object p1) { throw null; }
+        internal static string FormatBindingSource_CannotBeComposite(object p0, object p1) { throw null; }
+        internal static string FormatBindingSource_CannotBeGreedy(object p0, object p1) { throw null; }
+        internal static string FormatCacheProfileNotFound(object p0) { throw null; }
+        internal static string FormatCandidateResolver_DifferentCasedReference(object p0) { throw null; }
+        internal static string FormatCommon_PropertyNotFound(object p0, object p1) { throw null; }
+        internal static string FormatComplexTypeModelBinder_NoParameterlessConstructor_ForParameter(object p0, object p1) { throw null; }
+        internal static string FormatComplexTypeModelBinder_NoParameterlessConstructor_ForProperty(object p0, object p1, object p2) { throw null; }
+        internal static string FormatComplexTypeModelBinder_NoParameterlessConstructor_ForType(object p0) { throw null; }
+        internal static string FormatCouldNotCreateIModelBinder(object p0) { throw null; }
+        internal static string FormatDefaultActionSelector_AmbiguousActions(object p0, object p1) { throw null; }
+        internal static string FormatFileResult_InvalidPath(object p0) { throw null; }
+        internal static string FormatFileResult_PathNotRooted(object p0) { throw null; }
+        internal static string FormatFilterFactoryAttribute_TypeMustImplementIFilter(object p0, object p1) { throw null; }
+        internal static string FormatFormatFormatterMappings_GetMediaTypeMappingForFormat_InvalidFormat(object p0) { throw null; }
+        internal static string FormatFormatterMappings_NotValidMediaType(object p0) { throw null; }
+        internal static string FormatFormatter_NoMediaTypes(object p0, object p1) { throw null; }
+        internal static string FormatFormat_NotValid(object p0) { throw null; }
+        internal static string FormatFormCollectionModelBinder_CannotBindToFormCollection(object p0, object p1, object p2) { throw null; }
+        internal static string FormatHtmlGeneration_ValueIsInvalid(object p0) { throw null; }
+        internal static string FormatHtmlGeneration_ValueMustBeNumber(object p0) { throw null; }
+        internal static string FormatInputFormatterNoEncoding(object p0) { throw null; }
+        internal static string FormatInputFormattersAreRequired(object p0, object p1, object p2) { throw null; }
+        internal static string FormatInvalidTypeTForActionResultOfT(object p0, object p1) { throw null; }
+        internal static string FormatInvalid_IncludePropertyExpression(object p0) { throw null; }
+        internal static string FormatJQueryFormValueProviderFactory_MissingClosingBracket(object p0) { throw null; }
+        internal static string FormatMatchAllContentTypeIsNotAllowed(object p0) { throw null; }
+        internal static string FormatMiddewareFilter_ConfigureMethodOverload(object p0) { throw null; }
+        internal static string FormatMiddewareFilter_NoConfigureMethod(object p0, object p1) { throw null; }
+        internal static string FormatMiddlewareFilterBuilder_NoMiddlewareFeature(object p0) { throw null; }
+        internal static string FormatMiddlewareFilterBuilder_NullApplicationBuilder(object p0) { throw null; }
+        internal static string FormatMiddlewareFilterConfigurationProvider_CreateConfigureDelegate_CannotCreateType(object p0, object p1) { throw null; }
+        internal static string FormatMiddlewareFilter_InvalidConfigureReturnType(object p0, object p1, object p2) { throw null; }
+        internal static string FormatMiddlewareFilter_ServiceResolutionFail(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatModelBinderProvidersAreRequired(object p0, object p1, object p2) { throw null; }
+        internal static string FormatModelBinderUtil_ModelCannotBeNull(object p0) { throw null; }
+        internal static string FormatModelBinderUtil_ModelInstanceIsWrong(object p0, object p1) { throw null; }
+        internal static string FormatModelBinding_ExceededMaxModelBindingCollectionSize(object p0, object p1, object p2, object p3, object p4) { throw null; }
+        internal static string FormatModelBinding_ExceededMaxModelBindingRecursionDepth(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatModelBinding_MissingBindRequiredMember(object p0) { throw null; }
+        internal static string FormatModelBinding_NullValueNotValid(object p0) { throw null; }
+        internal static string FormatModelState_AttemptedValueIsInvalid(object p0, object p1) { throw null; }
+        internal static string FormatModelState_NonPropertyAttemptedValueIsInvalid(object p0) { throw null; }
+        internal static string FormatModelState_UnknownValueIsInvalid(object p0) { throw null; }
+        internal static string FormatModelType_WrongType(object p0, object p1) { throw null; }
+        internal static string FormatNoRoutesMatchedForPage(object p0) { throw null; }
+        internal static string FormatObjectResultExecutor_MaxEnumerationExceeded(object p0, object p1) { throw null; }
+        internal static string FormatObjectResult_MatchAllContentType(object p0, object p1) { throw null; }
+        internal static string FormatOutputFormatterNoMediaType(object p0) { throw null; }
+        internal static string FormatOutputFormattersAreRequired(object p0, object p1, object p2) { throw null; }
+        internal static string FormatPropertyOfTypeCannotBeNull(object p0, object p1) { throw null; }
+        internal static string FormatProperty_MustBeInstanceOfType(object p0, object p1, object p2) { throw null; }
+        internal static string FormatReferenceToNewtonsoftJsonRequired(object p0, object p1, object p2, object p3, object p4) { throw null; }
+        internal static string FormatRelatedAssemblyAttribute_AssemblyCannotReferenceSelf(object p0, object p1) { throw null; }
+        internal static string FormatRelatedAssemblyAttribute_CouldNotBeFound(object p0, object p1, object p2) { throw null; }
+        internal static string FormatResponseCache_SpecifyDuration(object p0, object p1) { throw null; }
+        internal static string FormatTextInputFormatter_SupportedEncodingsMustNotBeEmpty(object p0) { throw null; }
+        internal static string FormatTextOutputFormatter_SupportedEncodingsMustNotBeEmpty(object p0) { throw null; }
+        internal static string FormatTextOutputFormatter_WriteResponseBodyAsyncNotSupported(object p0, object p1, object p2) { throw null; }
+        internal static string FormatTypeMethodMustReturnNotNullValue(object p0, object p1) { throw null; }
+        internal static string FormatTypeMustDeriveFromType(object p0, object p1) { throw null; }
+        internal static string FormatUnableToFindServices(object p0, object p1, object p2) { throw null; }
+        internal static string FormatUnsupportedContentType(object p0) { throw null; }
+        internal static string FormatUrlHelper_RelativePagePathIsNotSupported(object p0, object p1, object p2) { throw null; }
+        internal static string FormatValidationVisitor_ExceededMaxDepth(object p0, object p1, object p2) { throw null; }
+        internal static string FormatValidationVisitor_ExceededMaxDepthFix(object p0, object p1) { throw null; }
+        internal static string FormatValidationVisitor_ExceededMaxPropertyDepth(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatValueInterfaceAbstractOrOpenGenericTypesCannotBeActivated(object p0, object p1) { throw null; }
+        internal static string FormatValueProviderResult_NoConverterExists(object p0, object p1) { throw null; }
+        internal static string FormatVaryByQueryKeys_Requires_ResponseCachingMiddleware(object p0) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Filters
+{
+    internal partial class ControllerActionFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public ControllerActionFilter() { }
+        public int Order { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Threading.Tasks.Task OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) { throw null; }
+    }
+    internal partial class ControllerResultFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public ControllerResultFilter() { }
+        public int Order { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Threading.Tasks.Task OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next) { throw null; }
+    }
+    internal partial class DefaultFilterProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterProvider
+    {
+        public DefaultFilterProvider() { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext context) { }
+        public void ProvideFilter(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext context, Microsoft.AspNetCore.Mvc.Filters.FilterItem filterItem) { }
+    }
+    internal partial class DisableRequestSizeLimitFilter : Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.IRequestSizePolicy
+    {
+        public DisableRequestSizeLimitFilter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public void OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct FilterCursor
+    {
+        private object _dummy;
+        private int _dummyPrimitive;
+        public FilterCursor(Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] filters) { throw null; }
+        public Microsoft.AspNetCore.Mvc.Filters.FilterCursorItem<TFilter, TFilterAsync> GetNextFilter<TFilter, TFilterAsync>() where TFilter : class where TFilterAsync : class { throw null; }
+        public void Reset() { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct FilterCursorItem<TFilter, TFilterAsync>
+    {
+        [System.Diagnostics.DebuggerBrowsableAttribute(System.Diagnostics.DebuggerBrowsableState.Never)]
+        [System.Runtime.CompilerServices.CompilerGeneratedAttribute]
+        private readonly TFilter _Filter_k__BackingField;
+        [System.Diagnostics.DebuggerBrowsableAttribute(System.Diagnostics.DebuggerBrowsableState.Never)]
+        [System.Runtime.CompilerServices.CompilerGeneratedAttribute]
+        private readonly TFilterAsync _FilterAsync_k__BackingField;
+        private readonly int _dummyPrimitive;
+        public FilterCursorItem(TFilter filter, TFilterAsync filterAsync) { throw null; }
+        public TFilter Filter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public TFilterAsync FilterAsync { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class FilterDescriptorOrderComparer : System.Collections.Generic.IComparer<Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor>
+    {
+        public FilterDescriptorOrderComparer() { }
+        public static Microsoft.AspNetCore.Mvc.Filters.FilterDescriptorOrderComparer Comparer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int Compare(Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor x, Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor y) { throw null; }
+    }
+    internal static partial class FilterFactory
+    {
+        public static Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] CreateUncachedFilters(Microsoft.AspNetCore.Mvc.Filters.IFilterProvider[] filterProviders, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.Filters.FilterItem[] cachedFilterItems) { throw null; }
+        public static Microsoft.AspNetCore.Mvc.Filters.FilterFactoryResult GetAllFilters(Microsoft.AspNetCore.Mvc.Filters.IFilterProvider[] filterProviders, Microsoft.AspNetCore.Mvc.ActionContext actionContext) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct FilterFactoryResult
+    {
+        private readonly object _dummy;
+        public FilterFactoryResult(Microsoft.AspNetCore.Mvc.Filters.FilterItem[] cacheableFilters, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] filters) { throw null; }
+        public Microsoft.AspNetCore.Mvc.Filters.FilterItem[] CacheableFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] Filters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial interface IMiddlewareFilterFeature
+    {
+        Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get; }
+        Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate ResourceExecutionDelegate { get; }
+    }
+    internal partial interface IResponseCacheFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+    }
+    internal partial class MiddlewareFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        public MiddlewareFilter(Microsoft.AspNetCore.Http.RequestDelegate middlewarePipeline) { }
+        public System.Threading.Tasks.Task OnResourceExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate next) { throw null; }
+    }
+    internal partial class MiddlewareFilterBuilder
+    {
+        public MiddlewareFilterBuilder(Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterConfigurationProvider configurationProvider) { }
+        public Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.RequestDelegate GetPipeline(System.Type configurationType) { throw null; }
+    }
+    internal partial class MiddlewareFilterBuilderStartupFilter : Microsoft.AspNetCore.Hosting.IStartupFilter
+    {
+        public MiddlewareFilterBuilderStartupFilter() { }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> Configure(System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> next) { throw null; }
+    }
+    internal partial class MiddlewareFilterConfigurationProvider
+    {
+        public MiddlewareFilterConfigurationProvider() { }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> CreateConfigureDelegate(System.Type configurationType) { throw null; }
+    }
+    internal partial class MiddlewareFilterFeature : Microsoft.AspNetCore.Mvc.Filters.IMiddlewareFilterFeature
+    {
+        public MiddlewareFilterFeature() { }
+        public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate ResourceExecutionDelegate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class RequestFormLimitsFilter : Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.IRequestFormLimitsPolicy
+    {
+        public RequestFormLimitsFilter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Http.Features.FormOptions FormOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { }
+    }
+    internal partial class RequestSizeLimitFilter : Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.IRequestSizePolicy
+    {
+        public RequestSizeLimitFilter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public long Bytes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { }
+    }
+    internal partial class ResponseCacheFilter : Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResponseCacheFilter
+    {
+        public ResponseCacheFilter(Microsoft.AspNetCore.Mvc.CacheProfile cacheProfile, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public int Duration { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Mvc.ResponseCacheLocation Location { get { throw null; } set { } }
+        public bool NoStore { get { throw null; } set { } }
+        public string VaryByHeader { get { throw null; } set { } }
+        public string[] VaryByQueryKeys { get { throw null; } set { } }
+        public void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) { }
+        public void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) { }
+    }
+    internal partial class ResponseCacheFilterExecutor
+    {
+        public ResponseCacheFilterExecutor(Microsoft.AspNetCore.Mvc.CacheProfile cacheProfile) { }
+        public int Duration { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Mvc.ResponseCacheLocation Location { get { throw null; } set { } }
+        public bool NoStore { get { throw null; } set { } }
+        public string VaryByHeader { get { throw null; } set { } }
+        public string[] VaryByQueryKeys { get { throw null; } set { } }
+        public void Execute(Microsoft.AspNetCore.Mvc.Filters.FilterContext context) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Formatters
+{
+    internal static partial class AcceptHeaderParser
+    {
+        public static System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality> ParseAcceptHeader(System.Collections.Generic.IList<string> acceptHeaders) { throw null; }
+        public static void ParseAcceptHeader(System.Collections.Generic.IList<string> acceptHeaders, System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality> parsedValues) { }
+    }
+    internal enum HttpParseResult
+    {
+        Parsed = 0,
+        NotParsed = 1,
+        InvalidFormat = 2,
+    }
+    internal static partial class HttpTokenParsingRules
+    {
+        internal const char CR = '\r';
+        internal static readonly System.Text.Encoding DefaultHttpEncoding;
+        internal const char LF = '\n';
+        internal const int MaxInt32Digits = 10;
+        internal const int MaxInt64Digits = 19;
+        internal const char SP = ' ';
+        internal const char Tab = '\t';
+        internal static Microsoft.AspNetCore.Mvc.Formatters.HttpParseResult GetQuotedPairLength(string input, int startIndex, out int length) { throw null; }
+        internal static Microsoft.AspNetCore.Mvc.Formatters.HttpParseResult GetQuotedStringLength(string input, int startIndex, out int length) { throw null; }
+        internal static int GetTokenLength(string input, int startIndex) { throw null; }
+        internal static int GetWhitespaceLength(string input, int startIndex) { throw null; }
+        internal static bool IsTokenChar(char character) { throw null; }
+    }
+    internal partial interface IFormatFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        string GetFormat(Microsoft.AspNetCore.Mvc.ActionContext context);
+    }
+    internal static partial class MediaTypeHeaderValues
+    {
+        public static readonly Microsoft.Net.Http.Headers.MediaTypeHeaderValue ApplicationAnyJsonSyntax;
+        public static readonly Microsoft.Net.Http.Headers.MediaTypeHeaderValue ApplicationAnyXmlSyntax;
+        public static readonly Microsoft.Net.Http.Headers.MediaTypeHeaderValue ApplicationJson;
+        public static readonly Microsoft.Net.Http.Headers.MediaTypeHeaderValue ApplicationXml;
+        public static readonly Microsoft.Net.Http.Headers.MediaTypeHeaderValue TextJson;
+        public static readonly Microsoft.Net.Http.Headers.MediaTypeHeaderValue TextXml;
+    }
+    internal static partial class ResponseContentTypeHelper
+    {
+        public static void ResolveContentTypeAndEncoding(string actionResultContentType, string httpResponseContentType, string defaultContentType, out string resolvedContentType, out System.Text.Encoding resolvedContentTypeEncoding) { throw null; }
+    }
+    public partial class SystemTextJsonOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter
+    {
+        internal static Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter CreateFormatter(Microsoft.AspNetCore.Mvc.JsonOptions jsonOptions) { throw null; }
+    }
+    public abstract partial class TextOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter
+    {
+        internal static System.Collections.Generic.IList<Microsoft.Net.Http.Headers.StringWithQualityHeaderValue> GetAcceptCharsetHeaderValues(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Formatters.Json
+{
+    internal sealed partial class TranscodingReadStream : System.IO.Stream
+    {
+        internal const int MaxByteBufferSize = 4096;
+        internal const int MaxCharBufferSize = 12288;
+        public TranscodingReadStream(System.IO.Stream input, System.Text.Encoding sourceEncoding) { }
+        internal int ByteBufferCount { get { throw null; } }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        internal int CharBufferCount { get { throw null; } }
+        public override long Length { get { throw null; } }
+        internal int OverflowCount { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        protected override void Dispose(bool disposing) { }
+        public override void Flush() { }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+    }
+    internal sealed partial class TranscodingWriteStream : System.IO.Stream
+    {
+        internal const int MaxByteBufferSize = 16384;
+        internal const int MaxCharBufferSize = 4096;
+        public TranscodingWriteStream(System.IO.Stream stream, System.Text.Encoding targetEncoding) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        protected override void Dispose(bool disposing) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task FinalWriteAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override void Flush() { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Infrastructure
+{
+    public partial class ActionContextAccessor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor
+    {
+        internal static readonly Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor Null;
+    }
+    internal partial class ActionInvokerFactory : Microsoft.AspNetCore.Mvc.Infrastructure.IActionInvokerFactory
+    {
+        public ActionInvokerFactory(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider> actionInvokerProviders) { }
+        public Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker CreateInvoker(Microsoft.AspNetCore.Mvc.ActionContext actionContext) { throw null; }
+    }
+    internal abstract partial class ActionMethodExecutor
+    {
+        protected ActionMethodExecutor() { }
+        protected abstract bool CanExecute(Microsoft.Extensions.Internal.ObjectMethodExecutor executor);
+        public abstract System.Threading.Tasks.ValueTask<Microsoft.AspNetCore.Mvc.IActionResult> Execute(Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.Extensions.Internal.ObjectMethodExecutor executor, object controller, object[] arguments);
+        public static Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor GetExecutor(Microsoft.Extensions.Internal.ObjectMethodExecutor executor) { throw null; }
+    }
+    internal partial class ActionResultTypeMapper : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper
+    {
+        public ActionResultTypeMapper() { }
+        public Microsoft.AspNetCore.Mvc.IActionResult Convert(object value, System.Type returnType) { throw null; }
+        public System.Type GetResultDataType(System.Type returnType) { throw null; }
+    }
+    internal partial class ActionSelectionTable<TItem>
+    {
+        public int Version { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public static Microsoft.AspNetCore.Mvc.Infrastructure.ActionSelectionTable<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor> Create(Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection actions) { throw null; }
+        public static Microsoft.AspNetCore.Mvc.Infrastructure.ActionSelectionTable<Microsoft.AspNetCore.Http.Endpoint> Create(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+        public System.Collections.Generic.IReadOnlyList<TItem> Select(Microsoft.AspNetCore.Routing.RouteValueDictionary values) { throw null; }
+    }
+    internal partial class ActionSelector : Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector
+    {
+        public ActionSelector(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintCache actionConstraintCache, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor SelectBestCandidate(Microsoft.AspNetCore.Routing.RouteContext context, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor> candidates) { throw null; }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor> SelectCandidates(Microsoft.AspNetCore.Routing.RouteContext context) { throw null; }
+    }
+    internal sealed partial class AsyncEnumerableReader
+    {
+        public AsyncEnumerableReader(Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) { }
+        public bool TryGetReader(System.Type type, out System.Func<object, System.Threading.Tasks.Task<System.Collections.ICollection>> reader) { throw null; }
+    }
+    internal partial class ClientErrorResultFilter : Microsoft.AspNetCore.Mvc.Filters.IAlwaysRunResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter
+    {
+        internal const int FilterOrder = -2000;
+        public ClientErrorResultFilter(Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory clientErrorFactory, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Mvc.Infrastructure.ClientErrorResultFilter> logger) { }
+        public int Order { get { throw null; } }
+        public void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) { }
+        public void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) { }
+    }
+    internal sealed partial class ClientErrorResultFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public ClientErrorResultFilterFactory() { }
+        public bool IsReusable { get { throw null; } }
+        public int Order { get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal partial class ControllerActionInvoker : Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker, Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker
+    {
+        internal ControllerActionInvoker(Microsoft.Extensions.Logging.ILogger logger, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor actionContextAccessor, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.AspNetCore.Mvc.ControllerContext controllerContext, Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvokerCacheEntry cacheEntry, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] filters) : base (default(System.Diagnostics.DiagnosticListener), default(Microsoft.Extensions.Logging.ILogger), default(Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor), default(Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper), default(Microsoft.AspNetCore.Mvc.ActionContext), default(Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[]), default(System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory>)) { }
+        internal Microsoft.AspNetCore.Mvc.ControllerContext ControllerContext { get { throw null; } }
+        protected override System.Threading.Tasks.Task InvokeInnerFilterAsync() { throw null; }
+        protected override void ReleaseResources() { }
+    }
+    internal partial class ControllerActionInvokerCache
+    {
+        public ControllerActionInvokerCache(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider collectionProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder parameterBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterProvider> filterProviders, Microsoft.AspNetCore.Mvc.Controllers.IControllerFactoryProvider factoryProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions) { }
+        public (Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvokerCacheEntry cacheEntry, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] filters) GetCachedResult(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext) { throw null; }
+    }
+    internal partial class ControllerActionInvokerCacheEntry
+    {
+        internal ControllerActionInvokerCacheEntry(Microsoft.AspNetCore.Mvc.Filters.FilterItem[] cachedFilters, System.Func<Microsoft.AspNetCore.Mvc.ControllerContext, object> controllerFactory, System.Action<Microsoft.AspNetCore.Mvc.ControllerContext, object> controllerReleaser, Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegate controllerBinderDelegate, Microsoft.Extensions.Internal.ObjectMethodExecutor objectMethodExecutor, Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor actionMethodExecutor) { }
+        internal Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor ActionMethodExecutor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.FilterItem[] CachedFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegate ControllerBinderDelegate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<Microsoft.AspNetCore.Mvc.ControllerContext, object> ControllerFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Action<Microsoft.AspNetCore.Mvc.ControllerContext, object> ControllerReleaser { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.Extensions.Internal.ObjectMethodExecutor ObjectMethodExecutor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class ControllerActionInvokerProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider
+    {
+        public ControllerActionInvokerProvider(Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvokerCache controllerActionInvokerCache, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper) { }
+        public ControllerActionInvokerProvider(Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvokerCache controllerActionInvokerCache, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor actionContextAccessor) { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext context) { }
+    }
+    internal partial class CopyOnWriteList<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.IEnumerable
+    {
+        public CopyOnWriteList(System.Collections.Generic.IReadOnlyList<T> source) { }
+        public int Count { get { throw null; } }
+        public bool IsReadOnly { get { throw null; } }
+        public T this[int index] { get { throw null; } set { } }
+        public void Add(T item) { }
+        public void Clear() { }
+        public bool Contains(T item) { throw null; }
+        public void CopyTo(T[] array, int arrayIndex) { }
+        public System.Collections.Generic.IEnumerator<T> GetEnumerator() { throw null; }
+        public int IndexOf(T item) { throw null; }
+        public void Insert(int index, T item) { }
+        public bool Remove(T item) { throw null; }
+        public void RemoveAt(int index) { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+    }
+    internal partial class DefaultActionDescriptorCollectionProvider : Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollectionProvider
+    {
+        public DefaultActionDescriptorCollectionProvider(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider> actionDescriptorProviders, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider> actionDescriptorChangeProviders) { }
+        public override Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection ActionDescriptors { get { throw null; } }
+        public override Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() { throw null; }
+    }
+    internal sealed partial class DefaultProblemDetailsFactory : Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory
+    {
+        public DefaultProblemDetailsFactory(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.ApiBehaviorOptions> options) { }
+        public override Microsoft.AspNetCore.Mvc.ProblemDetails CreateProblemDetails(Microsoft.AspNetCore.Http.HttpContext httpContext, int? statusCode = default(int?), string title = null, string type = null, string detail = null, string instance = null) { throw null; }
+        public override Microsoft.AspNetCore.Mvc.ValidationProblemDetails CreateValidationProblemDetails(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary, int? statusCode = default(int?), string title = null, string type = null, string detail = null, string instance = null) { throw null; }
+    }
+    public partial class FileResultExecutorBase
+    {
+        internal Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.PreconditionState GetPreconditionState(Microsoft.AspNetCore.Http.Headers.RequestHeaders httpRequestHeaders, System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue etag = null) { throw null; }
+        internal bool IfRangeValid(Microsoft.AspNetCore.Http.Headers.RequestHeaders httpRequestHeaders, System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue etag = null) { throw null; }
+        internal enum PreconditionState
+        {
+            Unspecified = 0,
+            NotModified = 1,
+            ShouldProcess = 2,
+            PreconditionFailed = 3,
+        }
+    }
+    internal partial interface ITypeActivatorCache
+    {
+        TInstance CreateInstance<TInstance>(System.IServiceProvider serviceProvider, System.Type optionType);
+    }
+    internal partial class MemoryPoolHttpRequestStreamReaderFactory : Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory
+    {
+        public static readonly int DefaultBufferSize;
+        public MemoryPoolHttpRequestStreamReaderFactory(System.Buffers.ArrayPool<byte> bytePool, System.Buffers.ArrayPool<char> charPool) { }
+        public System.IO.TextReader CreateReader(System.IO.Stream stream, System.Text.Encoding encoding) { throw null; }
+    }
+    internal partial class MemoryPoolHttpResponseStreamWriterFactory : Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory
+    {
+        public static readonly int DefaultBufferSize;
+        public MemoryPoolHttpResponseStreamWriterFactory(System.Buffers.ArrayPool<byte> bytePool, System.Buffers.ArrayPool<char> charPool) { }
+        public System.IO.TextWriter CreateWriter(System.IO.Stream stream, System.Text.Encoding encoding) { throw null; }
+    }
+    public partial class ModelStateInvalidFilter : Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        internal const int FilterOrder = -2000;
+    }
+    internal partial class ModelStateInvalidFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public ModelStateInvalidFilterFactory() { }
+        public bool IsReusable { get { throw null; } }
+        public int Order { get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal partial class MvcOptionsConfigureCompatibilityOptions : Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions<Microsoft.AspNetCore.Mvc.MvcOptions>
+    {
+        public MvcOptionsConfigureCompatibilityOptions(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions> compatibilityOptions) : base (default(Microsoft.Extensions.Logging.ILoggerFactory), default(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions>)) { }
+        protected override System.Collections.Generic.IReadOnlyDictionary<string, object> DefaultValues { get { throw null; } }
+    }
+    internal partial class NonDisposableStream : System.IO.Stream
+    {
+        public NonDisposableStream(System.IO.Stream innerStream) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanTimeout { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override int ReadTimeout { get { throw null; } set { } }
+        public override int WriteTimeout { get { throw null; } set { } }
+        public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        public override void Close() { }
+        public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { throw null; }
+        protected override void Dispose(bool disposing) { }
+        public override int EndRead(System.IAsyncResult asyncResult) { throw null; }
+        public override void EndWrite(System.IAsyncResult asyncResult) { }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int ReadByte() { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override void WriteByte(byte value) { }
+    }
+    internal partial class NullableCompatibilitySwitch<TValue> : Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch where TValue : struct
+    {
+        public NullableCompatibilitySwitch(string name) { }
+        public bool IsValueSet { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        object Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch.Value { get { throw null; } set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public TValue? Value { get { throw null; } set { } }
+    }
+    internal static partial class ParameterDefaultValues
+    {
+        public static object[] GetParameterDefaultValues(System.Reflection.MethodInfo methodInfo) { throw null; }
+        public static bool TryGetDeclaredParameterDefaultValue(System.Reflection.ParameterInfo parameterInfo, out object defaultValue) { throw null; }
+    }
+    internal partial class ProblemDetailsClientErrorFactory : Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory
+    {
+        public ProblemDetailsClientErrorFactory(Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory problemDetailsFactory) { }
+        public Microsoft.AspNetCore.Mvc.IActionResult GetClientError(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult clientError) { throw null; }
+    }
+    internal partial class ProblemDetailsJsonConverter : System.Text.Json.Serialization.JsonConverter<Microsoft.AspNetCore.Mvc.ProblemDetails>
+    {
+        public ProblemDetailsJsonConverter() { }
+        public override Microsoft.AspNetCore.Mvc.ProblemDetails Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
+        internal static void ReadValue(ref System.Text.Json.Utf8JsonReader reader, Microsoft.AspNetCore.Mvc.ProblemDetails value, System.Text.Json.JsonSerializerOptions options) { }
+        internal static bool TryReadStringProperty(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonEncodedText propertyName, out string value) { throw null; }
+        public override void Write(System.Text.Json.Utf8JsonWriter writer, Microsoft.AspNetCore.Mvc.ProblemDetails value, System.Text.Json.JsonSerializerOptions options) { }
+        internal static void WriteProblemDetails(System.Text.Json.Utf8JsonWriter writer, Microsoft.AspNetCore.Mvc.ProblemDetails value, System.Text.Json.JsonSerializerOptions options) { }
+    }
+#nullable enable
+    internal abstract partial class ResourceInvoker
+    {
+        protected readonly Microsoft.AspNetCore.Mvc.ActionContext _actionContext;
+        protected readonly Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor _actionContextAccessor;
+        protected Microsoft.AspNetCore.Mvc.Filters.FilterCursor _cursor;
+        protected readonly System.Diagnostics.DiagnosticListener _diagnosticListener;
+        protected readonly Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] _filters;
+        protected object? _instance;
+        protected readonly Microsoft.Extensions.Logging.ILogger _logger;
+        protected readonly Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper _mapper;
+        protected Microsoft.AspNetCore.Mvc.IActionResult? _result;
+        protected readonly System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory> _valueProviderFactories;
+        public ResourceInvoker(System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor actionContextAccessor, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] filters, System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory> valueProviderFactories)
+        {
+            _actionContext = actionContext;
+            _actionContextAccessor = actionContextAccessor;
+            _diagnosticListener = diagnosticListener;
+            _filters = filters;
+            _logger = logger;
+            _mapper = mapper;
+            _valueProviderFactories = valueProviderFactories;
+        }
+        public virtual System.Threading.Tasks.Task InvokeAsync() { throw new System.ArgumentException(); }
+        protected abstract System.Threading.Tasks.Task InvokeInnerFilterAsync();
+        protected virtual System.Threading.Tasks.Task InvokeResultAsync(Microsoft.AspNetCore.Mvc.IActionResult result) { throw new System.ArgumentException(); }
+        protected abstract void ReleaseResources();
+    }
+#nullable restore
+    internal partial class StringArrayComparer : System.Collections.Generic.IEqualityComparer<string[]>
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.Infrastructure.StringArrayComparer Ordinal;
+        public static readonly Microsoft.AspNetCore.Mvc.Infrastructure.StringArrayComparer OrdinalIgnoreCase;
+        public bool Equals(string[] x, string[] y) { throw null; }
+        public int GetHashCode(string[] obj) { throw null; }
+    }
+    internal sealed partial class SystemTextJsonResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor<Microsoft.AspNetCore.Mvc.JsonResult>
+    {
+        public SystemTextJsonResultExecutor(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.JsonOptions> options, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Mvc.Infrastructure.SystemTextJsonResultExecutor> logger, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.JsonResult result) { throw null; }
+    }
+    internal partial class TypeActivatorCache : Microsoft.AspNetCore.Mvc.Infrastructure.ITypeActivatorCache
+    {
+        public TypeActivatorCache() { }
+        public TInstance CreateInstance<TInstance>(System.IServiceProvider serviceProvider, System.Type implementationType) { throw null; }
+    }
+    internal partial class ValidationProblemDetailsJsonConverter : System.Text.Json.Serialization.JsonConverter<Microsoft.AspNetCore.Mvc.ValidationProblemDetails>
+    {
+        public ValidationProblemDetailsJsonConverter() { }
+        public override Microsoft.AspNetCore.Mvc.ValidationProblemDetails Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
+        public override void Write(System.Text.Json.Utf8JsonWriter writer, Microsoft.AspNetCore.Mvc.ValidationProblemDetails value, System.Text.Json.JsonSerializerOptions options) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ModelBinding
+{
+    public partial class CompositeValueProvider : System.Collections.ObjectModel.Collection<Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider>, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider
+    {
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal static System.Threading.Tasks.ValueTask<System.ValueTuple<bool, Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider>> TryCreateAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory> factories) { throw null; }
+    }
+    internal partial class ElementalValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider
+    {
+        public ElementalValueProvider(string key, string value, System.Globalization.CultureInfo culture) { }
+        public System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Key { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool ContainsPrefix(string prefix) { throw null; }
+        public Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) { throw null; }
+    }
+    public partial class ModelAttributes
+    {
+        internal ModelAttributes(System.Collections.Generic.IEnumerable<object> typeAttributes, System.Collections.Generic.IEnumerable<object> propertyAttributes, System.Collections.Generic.IEnumerable<object> parameterAttributes) { }
+    }
+    internal static partial class ModelBindingHelper
+    {
+        public static bool CanGetCompatibleCollection<T>(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { throw null; }
+        internal static TModel CastOrDefault<TModel>(object model) { throw null; }
+        public static void ClearValidationStateForModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, string modelKey) { }
+        public static void ClearValidationStateForModel(System.Type modelType, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, string modelKey) { }
+        public static object ConvertTo(object value, System.Type type, System.Globalization.CultureInfo culture) { throw null; }
+        public static T ConvertTo<T>(object value, System.Globalization.CultureInfo culture) { throw null; }
+        public static System.Collections.Generic.ICollection<T> GetCompatibleCollection<T>(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { throw null; }
+        public static System.Collections.Generic.ICollection<T> GetCompatibleCollection<T>(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, int capacity) { throw null; }
+        public static System.Linq.Expressions.Expression<System.Func<Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata, bool>> GetPropertyFilterExpression<TModel>(System.Linq.Expressions.Expression<System.Func<TModel, object>>[] expressions) { throw null; }
+        internal static string GetPropertyName(System.Linq.Expressions.Expression expression) { throw null; }
+        public static System.Threading.Tasks.Task<bool> TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator objectModelValidator) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public static System.Threading.Tasks.Task<bool> TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator objectModelValidator, System.Func<Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata, bool> propertyFilter) { throw null; }
+        public static System.Threading.Tasks.Task<bool> TryUpdateModelAsync<TModel>(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator objectModelValidator) where TModel : class { throw null; }
+        public static System.Threading.Tasks.Task<bool> TryUpdateModelAsync<TModel>(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator objectModelValidator, System.Func<Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata, bool> propertyFilter) where TModel : class { throw null; }
+        public static System.Threading.Tasks.Task<bool> TryUpdateModelAsync<TModel>(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator objectModelValidator, params System.Linq.Expressions.Expression<System.Func<TModel, object>>[] includeExpressions) where TModel : class { throw null; }
+    }
+    internal partial class NoOpBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder Instance;
+        public NoOpBinder() { }
+        public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { throw null; }
+    }
+    internal partial class PlaceholderBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder
+    {
+        public PlaceholderBinder() { }
+        public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder Inner { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { throw null; }
+    }
+    internal static partial class PropertyValueSetter
+    {
+        public static void SetValue(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object instance, object value) { }
+    }
+    internal partial class ReferenceEqualityComparer : System.Collections.Generic.IEqualityComparer<object>
+    {
+        public ReferenceEqualityComparer() { }
+        public static Microsoft.AspNetCore.Mvc.ModelBinding.ReferenceEqualityComparer Instance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public new bool Equals(object x, object y) { throw null; }
+        public int GetHashCode(object obj) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
+{
+    public partial class CollectionModelBinder<TElement> : Microsoft.AspNetCore.Mvc.ModelBinding.ICollectionModelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder
+    {
+        internal bool AllowValidatingTopLevelNodes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder<TElement>.CollectionResult> BindComplexCollectionFromIndexes(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, System.Collections.Generic.IEnumerable<string> indexNames) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder<TElement>.CollectionResult> BindSimpleCollection(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult values) { throw null; }
+        internal partial class CollectionResult
+        {
+            public CollectionResult() { }
+            public System.Collections.Generic.IEnumerable<TElement> Model { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy ValidationStrategy { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        }
+    }
+    public partial class ComplexTypeModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder
+    {
+        internal const int GreedyPropertiesMayHaveData = 1;
+        internal const int NoDataAvailable = 0;
+        internal const int ValueProviderDataAvailable = 2;
+        internal int CanCreateModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { throw null; }
+        internal static bool CanUpdatePropertyInternal(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata propertyMetadata) { throw null; }
+    }
+    public partial class FloatingPointTypeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider
+    {
+        internal static readonly System.Globalization.NumberStyles SupportedStyles;
+    }
+    public partial class HeaderModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder
+    {
+        internal Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder InnerModelBinder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public partial class KeyValuePairModelBinder<TKey, TValue> : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder
+    {
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult> TryBindStrongModel<TModel>(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder binder, string propertyName, string propertyModelName) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
+{
+    internal partial class DefaultBindingMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider
+    {
+        public DefaultBindingMetadataProvider() { }
+        public void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) { }
+    }
+    internal partial class DefaultCompositeMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider
+    {
+        public DefaultCompositeMetadataDetailsProvider(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider> providers) { }
+        public void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) { }
+        public void CreateDisplayMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext context) { }
+        public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) { }
+    }
+    public partial class DefaultModelMetadata : Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata
+    {
+        internal static bool CalculateHasValidators(System.Collections.Generic.HashSet<Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata> visited, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) { throw null; }
+    }
+    internal partial class DefaultValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider
+    {
+        public DefaultValidationMetadataProvider() { }
+        public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
+{
+    internal partial class DefaultCollectionValidationStrategy : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.Validation.DefaultCollectionValidationStrategy Instance;
+        public System.Collections.Generic.IEnumerator<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry> GetChildren(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) { throw null; }
+        public System.Collections.IEnumerator GetEnumeratorForElementType(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) { throw null; }
+    }
+    internal partial class DefaultComplexObjectValidationStrategy : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy Instance;
+        public System.Collections.Generic.IEnumerator<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry> GetChildren(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) { throw null; }
+    }
+    internal partial class DefaultModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IMetadataBasedModelValidatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider
+    {
+        public DefaultModelValidatorProvider() { }
+        public void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext context) { }
+        public bool HasValidators(System.Type modelType, System.Collections.Generic.IList<object> validatorMetadata) { throw null; }
+    }
+    internal partial class DefaultObjectValidator : Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator
+    {
+        public DefaultObjectValidator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider> validatorProviders, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) : base (default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider), default(System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider>)) { }
+        public override Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor GetValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState) { throw null; }
+    }
+    internal partial class ExplicitIndexCollectionValidationStrategy : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy
+    {
+        public ExplicitIndexCollectionValidationStrategy(System.Collections.Generic.IEnumerable<string> elementKeys) { }
+        public System.Collections.Generic.IEnumerable<string> ElementKeys { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerator<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry> GetChildren(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) { throw null; }
+    }
+    internal partial class HasValidatorsValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider
+    {
+        public HasValidatorsValidationMetadataProvider(System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider> modelValidatorProviders) { }
+        public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) { }
+    }
+    internal partial class ShortFormDictionaryValidationStrategy<TKey, TValue> : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy
+    {
+        public ShortFormDictionaryValidationStrategy(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, TKey>> keyMappings, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata valueMetadata) { }
+        public System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, TKey>> KeyMappings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerator<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry> GetChildren(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) { throw null; }
+    }
+    internal partial class ValidationStack
+    {
+        internal const int CutOff = 20;
+        public ValidationStack() { }
+        public int Count { get { throw null; } }
+        internal System.Collections.Generic.HashSet<object> HashSet { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal System.Collections.Generic.List<object> List { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Pop(object model) { }
+        public bool Push(object model) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Routing
+{
+    internal partial class ActionConstraintMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy
+    {
+        internal static readonly Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor NonAction;
+        public ActionConstraintMatcherPolicy(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintCache actionConstraintCache) { }
+        public override int Order { get { throw null; } }
+        public bool AppliesToEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+        public System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidateSet) { throw null; }
+    }
+    internal abstract partial class ActionEndpointDataSourceBase : Microsoft.AspNetCore.Routing.EndpointDataSource, System.IDisposable
+    {
+        protected readonly System.Collections.Generic.List<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> Conventions;
+        protected readonly object Lock;
+        public ActionEndpointDataSourceBase(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actions) { }
+        public override System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> Endpoints { get { throw null; } }
+        protected abstract System.Collections.Generic.List<Microsoft.AspNetCore.Http.Endpoint> CreateEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor> actions, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> conventions);
+        public void Dispose() { }
+        public override Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() { throw null; }
+        protected void Subscribe() { }
+    }
+    internal partial class ActionEndpointFactory
+    {
+        public ActionEndpointFactory(Microsoft.AspNetCore.Routing.Patterns.RoutePatternTransformer routePatternTransformer) { }
+        public void AddConventionalLinkGenerationRoute(System.Collections.Generic.List<Microsoft.AspNetCore.Http.Endpoint> endpoints, System.Collections.Generic.HashSet<string> routeNames, System.Collections.Generic.HashSet<string> keys, Microsoft.AspNetCore.Mvc.Routing.ConventionalRouteEntry route, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> conventions) { }
+        public void AddEndpoints(System.Collections.Generic.List<Microsoft.AspNetCore.Http.Endpoint> endpoints, System.Collections.Generic.HashSet<string> routeNames, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.Routing.ConventionalRouteEntry> routes, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> conventions, bool createInertEndpoints) { }
+    }
+    internal partial class AttributeRoute : Microsoft.AspNetCore.Routing.IRouter
+    {
+        public AttributeRoute(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, System.IServiceProvider services, System.Func<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor[], Microsoft.AspNetCore.Routing.IRouter> handlerFactory) { }
+        internal void AddEntries(Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder builder, Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection actions) { }
+        public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) { throw null; }
+        public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) { throw null; }
+    }
+    internal static partial class AttributeRouting
+    {
+        public static Microsoft.AspNetCore.Routing.IRouter CreateAttributeMegaRoute(System.IServiceProvider services) { throw null; }
+    }
+    internal partial class ConsumesMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy
+    {
+        internal const string AnyContentType = "*/*";
+        internal const string Http415EndpointDisplayName = "415 HTTP Unsupported Media Type";
+        public ConsumesMatcherPolicy() { }
+        public System.Collections.Generic.IComparer<Microsoft.AspNetCore.Http.Endpoint> Comparer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public override int Order { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates) { throw null; }
+        public Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable BuildJumpTable(int exitDestination, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Routing.Matching.PolicyJumpTableEdge> edges) { throw null; }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Routing.Matching.PolicyNodeEdge> GetEdges(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+        bool Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+        bool Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+    }
+    internal partial class ConsumesMetadata : Microsoft.AspNetCore.Mvc.Routing.IConsumesMetadata
+    {
+        public ConsumesMetadata(string[] contentTypes) { }
+        public System.Collections.Generic.IReadOnlyList<string> ContentTypes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class ControllerActionEndpointDataSource : Microsoft.AspNetCore.Mvc.Routing.ActionEndpointDataSourceBase
+    {
+        public ControllerActionEndpointDataSource(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actions, Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory endpointFactory) : base (default(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider)) { }
+        public bool CreateInertEndpoints { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder DefaultBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder AddRoute(string routeName, string pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary<string, object> constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens) { throw null; }
+        protected override System.Collections.Generic.List<Microsoft.AspNetCore.Http.Endpoint> CreateEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor> actions, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> conventions) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct ConventionalRouteEntry
+    {
+        public readonly Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern;
+        public readonly string RouteName;
+        public readonly Microsoft.AspNetCore.Routing.RouteValueDictionary DataTokens;
+        public readonly int Order;
+        public readonly System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> Conventions;
+        public ConventionalRouteEntry(string routeName, string pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary<string, object> constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, int order, System.Collections.Generic.List<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> conventions) { throw null; }
+    }
+    internal partial class DynamicControllerEndpointMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy
+    {
+        public DynamicControllerEndpointMatcherPolicy(Microsoft.AspNetCore.Mvc.Routing.DynamicControllerEndpointSelector selector, Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer comparer) { }
+        public override int Order { get { throw null; } }
+        public bool AppliesToEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates) { throw null; }
+    }
+    internal partial class DynamicControllerEndpointSelector : System.IDisposable
+    {
+        public DynamicControllerEndpointSelector(Microsoft.AspNetCore.Mvc.Routing.ControllerActionEndpointDataSource dataSource) { }
+        protected DynamicControllerEndpointSelector(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource) { }
+        public void Dispose() { }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> SelectEndpoints(Microsoft.AspNetCore.Routing.RouteValueDictionary values) { throw null; }
+    }
+    internal partial class DynamicControllerMetadata : Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata
+    {
+        public DynamicControllerMetadata(Microsoft.AspNetCore.Routing.RouteValueDictionary values) { }
+        public bool IsDynamic { get { throw null; } }
+        public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class DynamicControllerRouteValueTransformerMetadata : Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata
+    {
+        public DynamicControllerRouteValueTransformerMetadata(System.Type selectorType) { }
+        public bool IsDynamic { get { throw null; } }
+        public System.Type SelectorType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class EndpointRoutingUrlHelper : Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase
+    {
+        public EndpointRoutingUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Routing.LinkGenerator linkGenerator, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Mvc.Routing.EndpointRoutingUrlHelper> logger) : base (default(Microsoft.AspNetCore.Mvc.ActionContext)) { }
+        public override string Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext urlActionContext) { throw null; }
+        public override string RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext) { throw null; }
+    }
+    internal partial interface IConsumesMetadata
+    {
+        System.Collections.Generic.IReadOnlyList<string> ContentTypes { get; }
+    }
+    internal partial class MvcAttributeRouteHandler : Microsoft.AspNetCore.Routing.IRouter
+    {
+        public MvcAttributeRouteHandler(Microsoft.AspNetCore.Mvc.Infrastructure.IActionInvokerFactory actionInvokerFactory, Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector actionSelector, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor[] Actions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) { throw null; }
+        public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) { throw null; }
+    }
+    internal partial class MvcRouteHandler : Microsoft.AspNetCore.Routing.IRouter
+    {
+        public MvcRouteHandler(Microsoft.AspNetCore.Mvc.Infrastructure.IActionInvokerFactory actionInvokerFactory, Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector actionSelector, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) { throw null; }
+        public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) { throw null; }
+    }
+    internal static partial class NormalizedRouteValue
+    {
+        public static string GetNormalizedRouteValue(Microsoft.AspNetCore.Mvc.ActionContext context, string key) { throw null; }
+    }
+    internal partial class NullRouter : Microsoft.AspNetCore.Routing.IRouter
+    {
+        public static Microsoft.AspNetCore.Routing.IRouter Instance;
+        public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) { throw null; }
+        public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) { throw null; }
+    }
+    internal static partial class RoutePatternWriter
+    {
+        public static void WriteString(System.Text.StringBuilder sb, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment> routeSegments) { }
+    }
+    public abstract partial class UrlHelperBase : Microsoft.AspNetCore.Mvc.IUrlHelper
+    {
+        internal static void AppendPathAndFragment(System.Text.StringBuilder builder, Microsoft.AspNetCore.Http.PathString pathBase, string virtualPath, string fragment) { }
+        internal static void NormalizeRouteValuesForAction(string action, string controller, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues) { }
+        internal static void NormalizeRouteValuesForPage(Microsoft.AspNetCore.Mvc.ActionContext context, string page, string handler, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues) { }
+    }
+    internal static partial class ViewEnginePath
+    {
+        public static readonly char[] PathSeparators;
+        public static string CombinePath(string first, string second) { throw null; }
+        public static string ResolvePath(string path) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Routing
+{
+    internal sealed partial class DataSourceDependentCache<T> : System.IDisposable where T : class
+    {
+        public DataSourceDependentCache(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource, System.Func<System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint>, T> initialize) { }
+        public T Value { get { throw null; } }
+        public void Dispose() { }
+        public T EnsureInitialized() { throw null; }
+    }
+}
+namespace Microsoft.Extensions.DependencyInjection
+{
+    internal partial class ApiBehaviorOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Mvc.ApiBehaviorOptions>
+    {
+        public ApiBehaviorOptionsSetup() { }
+        public void Configure(Microsoft.AspNetCore.Mvc.ApiBehaviorOptions options) { }
+        internal static void ConfigureClientErrorMapping(Microsoft.AspNetCore.Mvc.ApiBehaviorOptions options) { }
+        internal static Microsoft.AspNetCore.Mvc.IActionResult ProblemDetailsInvalidModelStateResponse(Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory problemDetailsFactory, Microsoft.AspNetCore.Mvc.ActionContext context) { throw null; }
+    }
+    internal partial class MvcBuilder : Microsoft.Extensions.DependencyInjection.IMvcBuilder
+    {
+        public MvcBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager manager) { }
+        public Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager PartManager { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class MvcCoreBuilder : Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder
+    {
+        public MvcCoreBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager manager) { }
+        public Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager PartManager { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public static partial class MvcCoreMvcCoreBuilderExtensions
+    {
+        internal static void AddAuthorizationServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { }
+        internal static void AddFormatterMappingsServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { }
+    }
+    internal partial class MvcCoreRouteOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Routing.RouteOptions>
+    {
+        public MvcCoreRouteOptionsSetup() { }
+        public void Configure(Microsoft.AspNetCore.Routing.RouteOptions options) { }
+    }
+    public static partial class MvcCoreServiceCollectionExtensions
+    {
+        internal static void AddMvcCoreServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { }
+    }
+    internal partial class MvcMarkerService
+    {
+        public MvcMarkerService() { }
+    }
+}
+namespace Microsoft.Extensions.Internal
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct AwaitableInfo
+    {
+        private readonly object _dummy;
+        public AwaitableInfo(System.Type awaiterType, System.Reflection.PropertyInfo awaiterIsCompletedProperty, System.Reflection.MethodInfo awaiterGetResultMethod, System.Reflection.MethodInfo awaiterOnCompletedMethod, System.Reflection.MethodInfo awaiterUnsafeOnCompletedMethod, System.Type resultType, System.Reflection.MethodInfo getAwaiterMethod) { throw null; }
+        public System.Reflection.MethodInfo AwaiterGetResultMethod { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Reflection.PropertyInfo AwaiterIsCompletedProperty { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Reflection.MethodInfo AwaiterOnCompletedMethod { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Type AwaiterType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Reflection.MethodInfo AwaiterUnsafeOnCompletedMethod { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Reflection.MethodInfo GetAwaiterMethod { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Type ResultType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public static bool IsTypeAwaitable(System.Type type, out Microsoft.Extensions.Internal.AwaitableInfo awaitableInfo) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct CoercedAwaitableInfo
+    {
+        private readonly object _dummy;
+        public CoercedAwaitableInfo(Microsoft.Extensions.Internal.AwaitableInfo awaitableInfo) { throw null; }
+        public CoercedAwaitableInfo(System.Linq.Expressions.Expression coercerExpression, System.Type coercerResultType, Microsoft.Extensions.Internal.AwaitableInfo coercedAwaitableInfo) { throw null; }
+        public Microsoft.Extensions.Internal.AwaitableInfo AwaitableInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Linq.Expressions.Expression CoercerExpression { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Type CoercerResultType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool RequiresCoercion { get { throw null; } }
+        public static bool IsTypeAwaitable(System.Type type, out Microsoft.Extensions.Internal.CoercedAwaitableInfo info) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct CopyOnWriteDictionaryHolder<TKey, TValue>
+    {
+        private object _dummy;
+        public CopyOnWriteDictionaryHolder(Microsoft.Extensions.Internal.CopyOnWriteDictionaryHolder<TKey, TValue> source) { throw null; }
+        public CopyOnWriteDictionaryHolder(System.Collections.Generic.Dictionary<TKey, TValue> source) { throw null; }
+        public int Count { get { throw null; } }
+        public bool HasBeenCopied { get { throw null; } }
+        public bool IsReadOnly { get { throw null; } }
+        public TValue this[TKey key] { get { throw null; } set { } }
+        public System.Collections.Generic.Dictionary<TKey, TValue>.KeyCollection Keys { get { throw null; } }
+        public System.Collections.Generic.Dictionary<TKey, TValue> ReadDictionary { get { throw null; } }
+        public System.Collections.Generic.Dictionary<TKey, TValue>.ValueCollection Values { get { throw null; } }
+        public System.Collections.Generic.Dictionary<TKey, TValue> WriteDictionary { get { throw null; } }
+        public void Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { }
+        public void Add(TKey key, TValue value) { }
+        public void Clear() { }
+        public bool Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { throw null; }
+        public bool ContainsKey(TKey key) { throw null; }
+        public void CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) { }
+        public System.Collections.Generic.Dictionary<TKey, TValue>.Enumerator GetEnumerator() { throw null; }
+        public bool Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { throw null; }
+        public bool Remove(TKey key) { throw null; }
+        public bool TryGetValue(TKey key, out TValue value) { throw null; }
+    }
+    internal partial class CopyOnWriteDictionary<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable
+    {
+        public CopyOnWriteDictionary(System.Collections.Generic.IDictionary<TKey, TValue> sourceDictionary, System.Collections.Generic.IEqualityComparer<TKey> comparer) { }
+        public virtual int Count { get { throw null; } }
+        public virtual bool IsReadOnly { get { throw null; } }
+        public virtual TValue this[TKey key] { get { throw null; } set { } }
+        public virtual System.Collections.Generic.ICollection<TKey> Keys { get { throw null; } }
+        public virtual System.Collections.Generic.ICollection<TValue> Values { get { throw null; } }
+        public virtual void Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { }
+        public virtual void Add(TKey key, TValue value) { }
+        public virtual void Clear() { }
+        public virtual bool Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { throw null; }
+        public virtual bool ContainsKey(TKey key) { throw null; }
+        public virtual void CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) { }
+        public virtual System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> GetEnumerator() { throw null; }
+        public bool Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { throw null; }
+        public virtual bool Remove(TKey key) { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        public virtual bool TryGetValue(TKey key, out TValue value) { throw null; }
+    }
+    internal partial class ObjectMethodExecutor
+    {
+        public System.Type AsyncResultType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsMethodAsync { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Reflection.MethodInfo MethodInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Reflection.ParameterInfo[] MethodParameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Type MethodReturnType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+        public System.Reflection.TypeInfo TargetTypeInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public static Microsoft.Extensions.Internal.ObjectMethodExecutor Create(System.Reflection.MethodInfo methodInfo, System.Reflection.TypeInfo targetTypeInfo) { throw null; }
+        public static Microsoft.Extensions.Internal.ObjectMethodExecutor Create(System.Reflection.MethodInfo methodInfo, System.Reflection.TypeInfo targetTypeInfo, object[] parameterDefaultValues) { throw null; }
+        public object Execute(object target, object[] parameters) { throw null; }
+        public Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable ExecuteAsync(object target, object[] parameters) { throw null; }
+        public object GetDefaultValueForParameter(int index) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct ObjectMethodExecutorAwaitable
+    {
+        private readonly object _dummy;
+        public ObjectMethodExecutorAwaitable(object customAwaitable, System.Func<object, object> getAwaiterMethod, System.Func<object, bool> isCompletedMethod, System.Func<object, object> getResultMethod, System.Action<object, System.Action> onCompletedMethod, System.Action<object, System.Action> unsafeOnCompletedMethod) { throw null; }
+        public Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter GetAwaiter() { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public readonly partial struct Awaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
+        {
+            private readonly object _dummy;
+            public Awaiter(object customAwaiter, System.Func<object, bool> isCompletedMethod, System.Func<object, object> getResultMethod, System.Action<object, System.Action> onCompletedMethod, System.Action<object, System.Action> unsafeOnCompletedMethod) { throw null; }
+            public bool IsCompleted { get { throw null; } }
+            public object GetResult() { throw null; }
+            public void OnCompleted(System.Action continuation) { }
+            public void UnsafeOnCompleted(System.Action continuation) { }
+        }
+    }
+    internal static partial class ObjectMethodExecutorFSharpSupport
+    {
+        public static bool TryBuildCoercerFromFSharpAsyncToAwaitable(System.Type possibleFSharpAsyncType, out System.Linq.Expressions.Expression coerceToAwaitableExpression, out System.Type awaitableType) { throw null; }
+    }
+    internal partial class PropertyActivator<TContext>
+    {
+        public PropertyActivator(System.Reflection.PropertyInfo propertyInfo, System.Func<TContext, object> valueAccessor) { }
+        public System.Reflection.PropertyInfo PropertyInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public object Activate(object instance, TContext context) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyActivator<TContext>[] GetPropertiesToActivate(System.Type type, System.Type activateAttributeType, System.Func<System.Reflection.PropertyInfo, Microsoft.Extensions.Internal.PropertyActivator<TContext>> createActivateInfo) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyActivator<TContext>[] GetPropertiesToActivate(System.Type type, System.Type activateAttributeType, System.Func<System.Reflection.PropertyInfo, Microsoft.Extensions.Internal.PropertyActivator<TContext>> createActivateInfo, bool includeNonPublic) { throw null; }
+    }
+    internal partial class PropertyHelper
+    {
+        public PropertyHelper(System.Reflection.PropertyInfo property) { }
+        public virtual string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]protected set { } }
+        public System.Reflection.PropertyInfo Property { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<object, object> ValueGetter { get { throw null; } }
+        public System.Action<object, object> ValueSetter { get { throw null; } }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetProperties(System.Reflection.TypeInfo typeInfo) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetProperties(System.Type type) { throw null; }
+        protected static Microsoft.Extensions.Internal.PropertyHelper[] GetProperties(System.Type type, System.Func<System.Reflection.PropertyInfo, Microsoft.Extensions.Internal.PropertyHelper> createPropertyHelper, System.Collections.Concurrent.ConcurrentDictionary<System.Type, Microsoft.Extensions.Internal.PropertyHelper[]> cache) { throw null; }
+        public object GetValue(object instance) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetVisibleProperties(System.Reflection.TypeInfo typeInfo) { throw null; }
+        public static Microsoft.Extensions.Internal.PropertyHelper[] GetVisibleProperties(System.Type type) { throw null; }
+        protected static Microsoft.Extensions.Internal.PropertyHelper[] GetVisibleProperties(System.Type type, System.Func<System.Reflection.PropertyInfo, Microsoft.Extensions.Internal.PropertyHelper> createPropertyHelper, System.Collections.Concurrent.ConcurrentDictionary<System.Type, Microsoft.Extensions.Internal.PropertyHelper[]> allPropertiesCache, System.Collections.Concurrent.ConcurrentDictionary<System.Type, Microsoft.Extensions.Internal.PropertyHelper[]> visiblePropertiesCache) { throw null; }
+        public static System.Func<object, object> MakeFastPropertyGetter(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+        public static System.Action<object, object> MakeFastPropertySetter(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+        public static System.Func<object, object> MakeNullSafeFastPropertyGetter(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+        public static System.Collections.Generic.IDictionary<string, object> ObjectToDictionary(object value) { throw null; }
+        public void SetValue(object instance, object value) { }
+    }
+    internal static partial class SecurityHelper
+    {
+        public static System.Security.Claims.ClaimsPrincipal MergeUserPrincipal(System.Security.Claims.ClaimsPrincipal existingPrincipal, System.Security.Claims.ClaimsPrincipal additionalPrincipal) { throw null; }
+    }
+}
+namespace System.Text.Json
+{
+    internal static partial class JsonSerializerOptionsCopyConstructor
+    {
+        public static System.Text.Json.JsonSerializerOptions Copy(this System.Text.Json.JsonSerializerOptions serializerOptions, System.Text.Encodings.Web.JavaScriptEncoder encoder) { throw null; }
+    }
+}
diff --git a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj
index 670de5a7d7b397523b6946249e65cd998c9b90c6..9453d101d8f75397db8b692356c250ca91abf901 100644
--- a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj
+++ b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj
@@ -6,20 +6,21 @@
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs" />
     <Compile Include="Microsoft.AspNetCore.Mvc.Core.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Authorization.Policy"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.ResponseCaching.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.ParameterDefaultValue.Sources"  />
-    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources"  />
-    <Reference Include="Microsoft.Extensions.ValueStopwatch.Sources"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Core" />
+    <Reference Include="Microsoft.AspNetCore.Authorization.Policy" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.ParameterDefaultValue.Sources" />
+    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources" />
+    <Reference Include="Microsoft.Extensions.ValueStopwatch.Sources" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj b/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj
index 1d1eaa6448eec7ce7d529d8042dc2134a87429d6..4c3e760a90fdabe07ce99e5fe4c1379aabc7dcde 100644
--- a/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj
+++ b/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj
@@ -15,7 +15,7 @@ Microsoft.AspNetCore.Mvc.RouteAttribute</Description>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Cors/ref/Microsoft.AspNetCore.Mvc.Cors.Manual.cs b/src/Mvc/Mvc.Cors/ref/Microsoft.AspNetCore.Mvc.Cors.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..641495d93c73df760b889f77912f57eb541d6214
--- /dev/null
+++ b/src/Mvc/Mvc.Cors/ref/Microsoft.AspNetCore.Mvc.Cors.Manual.cs
@@ -0,0 +1,34 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Mvc.Cors
+{
+    internal partial interface ICorsAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+    }
+    internal partial class CorsHttpMethodActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
+    {
+        public CorsHttpMethodActionConstraint(Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint constraint) : base (default(System.Collections.Generic.IEnumerable<string>)) { }
+        public override bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) { throw null; }
+    }
+    internal partial class DisableCorsAuthorizationFilter : Microsoft.AspNetCore.Mvc.Cors.ICorsAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public DisableCorsAuthorizationFilter() { }
+        public int Order { get { throw null; } }
+        public System.Threading.Tasks.Task OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { throw null; }
+    }
+    internal partial class CorsApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider
+    {
+        public CorsApplicationModelProvider(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions) { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+    }
+    internal partial class CorsAuthorizationFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public CorsAuthorizationFilterFactory(string policyName) { }
+        public bool IsReusable { get { throw null; } }
+        public int Order { get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) { throw null; }
+    }
+}
diff --git a/src/Mvc/Mvc.Cors/ref/Microsoft.AspNetCore.Mvc.Cors.csproj b/src/Mvc/Mvc.Cors/ref/Microsoft.AspNetCore.Mvc.Cors.csproj
index a7573bfcb7e107511d386f6fa459489555adfd90..f168dc6859e68ebc81e5ac36278def38760fb0f9 100644
--- a/src/Mvc/Mvc.Cors/ref/Microsoft.AspNetCore.Mvc.Cors.csproj
+++ b/src/Mvc/Mvc.Cors/ref/Microsoft.AspNetCore.Mvc.Cors.csproj
@@ -5,7 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.Cors.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Cors"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.Cors.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Core" />
+    <Reference Include="Microsoft.AspNetCore.Cors" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj b/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj
index c498ea42e8a2f88614e37d2d0d3e07f2a0c042ef..6409a547e451fd2b16e7b9b4878c374ee22a0e5e 100644
--- a/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj
+++ b/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc;cors</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.DataAnnotations/ref/Microsoft.AspNetCore.Mvc.DataAnnotations.Manual.cs b/src/Mvc/Mvc.DataAnnotations/ref/Microsoft.AspNetCore.Mvc.DataAnnotations.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3e175d1fb75cee33be1431cbaffb27531e26849c
--- /dev/null
+++ b/src/Mvc/Mvc.DataAnnotations/ref/Microsoft.AspNetCore.Mvc.DataAnnotations.Manual.cs
@@ -0,0 +1,112 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Mvc.DataAnnotations
+{
+    internal partial class RegularExpressionAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.RegularExpressionAttribute>
+    {
+        public RegularExpressionAttributeAdapter(System.ComponentModel.DataAnnotations.RegularExpressionAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.RegularExpressionAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class MaxLengthAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.MaxLengthAttribute>
+    {
+        public MaxLengthAttributeAdapter(System.ComponentModel.DataAnnotations.MaxLengthAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.MaxLengthAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class MinLengthAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.MinLengthAttribute>
+    {
+        public MinLengthAttributeAdapter(System.ComponentModel.DataAnnotations.MinLengthAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.MinLengthAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class RangeAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.RangeAttribute>
+    {
+        public RangeAttributeAdapter(System.ComponentModel.DataAnnotations.RangeAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.RangeAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class CompareAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.CompareAttribute>
+    {
+        public CompareAttributeAdapter(System.ComponentModel.DataAnnotations.CompareAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.CompareAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class FileExtensionsAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.FileExtensionsAttribute>
+    {
+        public FileExtensionsAttributeAdapter(System.ComponentModel.DataAnnotations.FileExtensionsAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.FileExtensionsAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class DataTypeAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.DataTypeAttribute>
+    {
+        public DataTypeAttributeAdapter(System.ComponentModel.DataAnnotations.DataTypeAttribute attribute, string ruleName, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.DataTypeAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public string RuleName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class NumericClientModelValidator : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator
+    {
+        public NumericClientModelValidator() { }
+        public void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+    }
+    internal partial class DataAnnotationsMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider
+    {
+        public DataAnnotationsMetadataProvider(Microsoft.AspNetCore.Mvc.MvcOptions options, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions> localizationOptions, Microsoft.Extensions.Localization.IStringLocalizerFactory stringLocalizerFactory) { }
+        public void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) { }
+        public void CreateDisplayMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext context) { }
+        public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) { }
+        internal static bool HasNullableAttribute(System.Collections.Generic.IEnumerable<object> attributes, out bool isNullable) { throw null; }
+        internal static bool IsNullableBasedOnContext(System.Type containingType, System.Reflection.MemberInfo member) { throw null; }
+        internal static bool IsNullableReferenceType(System.Type containingType, System.Reflection.MemberInfo member, System.Collections.Generic.IEnumerable<object> attributes) { throw null; }
+    }
+    internal partial class DefaultClientModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider
+    {
+        public DefaultClientModelValidatorProvider() { }
+        public void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext context) { }
+    }
+    internal partial class DataAnnotationsClientModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider
+    {
+        public DataAnnotationsClientModelValidatorProvider(Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider validationAttributeAdapterProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions> options, Microsoft.Extensions.Localization.IStringLocalizerFactory stringLocalizerFactory) { }
+        public void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext context) { }
+    }
+    internal partial class NumericClientModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider
+    {
+        public NumericClientModelValidatorProvider() { }
+        public void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext context) { }
+    }
+    internal sealed partial class DataAnnotationsModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IMetadataBasedModelValidatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider
+    {
+        public DataAnnotationsModelValidatorProvider(Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider validationAttributeAdapterProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions> options, Microsoft.Extensions.Localization.IStringLocalizerFactory stringLocalizerFactory) { }
+        public void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext context) { }
+        public bool HasValidators(System.Type modelType, System.Collections.Generic.IList<object> validatorMetadata) { throw null; }
+    }
+    internal partial class StringLengthAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<System.ComponentModel.DataAnnotations.StringLengthAttribute>
+    {
+        public StringLengthAttributeAdapter(System.ComponentModel.DataAnnotations.StringLengthAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base (default(System.ComponentModel.DataAnnotations.StringLengthAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) { }
+        public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) { }
+        public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) { throw null; }
+    }
+    internal partial class DataAnnotationsModelValidator : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator
+    {
+        public DataAnnotationsModelValidator(Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider validationAttributeAdapterProvider, System.ComponentModel.DataAnnotations.ValidationAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) { }
+        public System.ComponentModel.DataAnnotations.ValidationAttribute Attribute { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult> Validate(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext validationContext) { throw null; }
+    }
+    internal partial class ValidatableObjectAdapter : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator
+    {
+        public ValidatableObjectAdapter() { }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult> Validate(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext context) { throw null; }
+    }
+}
+
+namespace Microsoft.Extensions.DependencyInjection
+{
+    internal partial class MvcDataAnnotationsMvcOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Mvc.MvcOptions>
+    {
+        public MvcDataAnnotationsMvcOptionsSetup(Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider validationAttributeAdapterProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions> dataAnnotationLocalizationOptions) { }
+        public MvcDataAnnotationsMvcOptionsSetup(Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider validationAttributeAdapterProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions> dataAnnotationLocalizationOptions, Microsoft.Extensions.Localization.IStringLocalizerFactory stringLocalizerFactory) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+    }
+}
diff --git a/src/Mvc/Mvc.DataAnnotations/ref/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj b/src/Mvc/Mvc.DataAnnotations/ref/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj
index b7ee4b1bf2eaad6b6058cb12c3d87f1e0360d1a6..9a90a255a608aea6992cab3699194d51d408c194 100644
--- a/src/Mvc/Mvc.DataAnnotations/ref/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj
+++ b/src/Mvc/Mvc.DataAnnotations/ref/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj
@@ -5,7 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.DataAnnotations.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Core"  />
-    <Reference Include="Microsoft.Extensions.Localization"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.DataAnnotations.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Core" />
+    <Reference Include="Microsoft.Extensions.Localization" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj b/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj
index 714aee50902ede43253578db4be65024a02e7b01..dcd837d20beccd7ac5f06cd4500b2eee15347b7c 100644
--- a/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj
+++ b/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj b/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
index 2faf4d47ebb07ba379974aa2533385585e0147a3..6eb08a1080a77856ca453e490220e8a6ce3681ec 100644
--- a/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
+++ b/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.Formatters.Json.netcoreapp.cs" />
-    <Compile Include="Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Core"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Core" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj b/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
index 55dd4b35c0c8702bceeda695022a68efe19a22d6..47b10f6ba843565b3834b8718a5a65f386990fe8 100644
--- a/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
+++ b/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc;json</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Formatters.Xml/ref/Microsoft.AspNetCore.Mvc.Formatters.Xml.Manual.cs b/src/Mvc/Mvc.Formatters.Xml/ref/Microsoft.AspNetCore.Mvc.Formatters.Xml.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1133d2a605dd98d33c4e941ffd80409b006138e2
--- /dev/null
+++ b/src/Mvc/Mvc.Formatters.Xml/ref/Microsoft.AspNetCore.Mvc.Formatters.Xml.Manual.cs
@@ -0,0 +1,40 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Mvc.Formatters.Xml
+{
+    public partial class ProblemDetailsWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable, System.Xml.Serialization.IXmlSerializable
+    {
+        internal Microsoft.AspNetCore.Mvc.ProblemDetails ProblemDetails { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public partial class ValidationProblemDetailsWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable
+    {
+        internal new Microsoft.AspNetCore.Mvc.ValidationProblemDetails ProblemDetails { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class ProblemDetailsWrapperProviderFactory : Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProviderFactory
+    {
+        public ProblemDetailsWrapperProviderFactory() { }
+        public Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context) { throw null; }
+    }
+    internal static partial class FormattingUtilities
+    {
+        public static readonly int DefaultMaxDepth;
+        public static readonly System.Runtime.Serialization.XsdDataContractExporter XsdDataContractExporter;
+        public static System.Xml.XmlDictionaryReaderQuotas GetDefaultXmlReaderQuotas() { throw null; }
+        public static System.Xml.XmlWriterSettings GetDefaultXmlWriterSettings() { throw null; }
+    }
+}
+
+namespace Microsoft.Extensions.DependencyInjection
+{
+    internal sealed partial class XmlDataContractSerializerMvcOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Mvc.MvcOptions>
+    {
+        public XmlDataContractSerializerMvcOptionsSetup(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+    }
+    internal sealed partial class XmlSerializerMvcOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Mvc.MvcOptions>
+    {
+        public XmlSerializerMvcOptionsSetup(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+    }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.Formatters.Xml/ref/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj b/src/Mvc/Mvc.Formatters.Xml/ref/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj
index 6e1345e58a7d23b3d10f21407c87de7e45dc44a0..c6f627c5043d3c24f9c0320dbb027efc0a1f2a70 100644
--- a/src/Mvc/Mvc.Formatters.Xml/ref/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj
+++ b/src/Mvc/Mvc.Formatters.Xml/ref/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj
@@ -5,6 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.Formatters.Xml.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Core"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.Formatters.Xml.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Core" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Formatters.Xml/src/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj b/src/Mvc/Mvc.Formatters.Xml/src/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj
index 64682adc8edbd02133143abcfb136272dad9c8cf..b42ee39139148531bed8a188d94d0655131a2c5c 100644
--- a/src/Mvc/Mvc.Formatters.Xml/src/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj
+++ b/src/Mvc/Mvc.Formatters.Xml/src/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc;xml</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Localization/ref/Microsoft.AspNetCore.Mvc.Localization.Manual.cs b/src/Mvc/Mvc.Localization/ref/Microsoft.AspNetCore.Mvc.Localization.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..69cfbdb07238f36cfc0988bf25707298bd88f6c5
--- /dev/null
+++ b/src/Mvc/Mvc.Localization/ref/Microsoft.AspNetCore.Mvc.Localization.Manual.cs
@@ -0,0 +1,11 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Mvc.Localization
+{
+    internal static partial class MvcLocalizationServices
+    {
+        public static void AddLocalizationServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action<Microsoft.Extensions.Localization.LocalizationOptions> setupAction) { }
+        public static void AddMvcViewLocalizationServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) { }
+    }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.Localization/ref/Microsoft.AspNetCore.Mvc.Localization.csproj b/src/Mvc/Mvc.Localization/ref/Microsoft.AspNetCore.Mvc.Localization.csproj
index 27c1f74bf143b5af422fa37f453029109e0daf73..a91ae5d9ea9debd893cccd06b72ab0b3d635e314 100644
--- a/src/Mvc/Mvc.Localization/ref/Microsoft.AspNetCore.Mvc.Localization.csproj
+++ b/src/Mvc/Mvc.Localization/ref/Microsoft.AspNetCore.Mvc.Localization.csproj
@@ -5,9 +5,11 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.Localization.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Razor"  />
-    <Reference Include="Microsoft.AspNetCore.Localization"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.Extensions.Localization"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.Localization.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Razor" />
+    <Reference Include="Microsoft.AspNetCore.Localization" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.Extensions.Localization" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj b/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj
index 00f740f18b9d036436c7d0c7c819005ffb49c5de..e3f4cfd3c8a3d38f1b6527610c97874e215eb9ae 100644
--- a/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj
+++ b/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj
@@ -9,7 +9,7 @@ Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer</Description>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc;localization</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.NewtonsoftJson/ref/Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj b/src/Mvc/Mvc.NewtonsoftJson/ref/Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj
deleted file mode 100644
index 397d31f63e652911c41a6cd595a334bef00c89f4..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.NewtonsoftJson/ref/Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.ViewFeatures"  />
-    <Reference Include="Microsoft.AspNetCore.JsonPatch"  />
-    <Reference Include="Newtonsoft.Json"  />
-    <Reference Include="Newtonsoft.Json.Bson"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Mvc/Mvc.NewtonsoftJson/ref/Microsoft.AspNetCore.Mvc.NewtonsoftJson.netcoreapp.cs b/src/Mvc/Mvc.NewtonsoftJson/ref/Microsoft.AspNetCore.Mvc.NewtonsoftJson.netcoreapp.cs
deleted file mode 100644
index 1fdaa0ae9705f6456f5807820d4301e0c19eb200..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.NewtonsoftJson/ref/Microsoft.AspNetCore.Mvc.NewtonsoftJson.netcoreapp.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Mvc
-{
-    public static partial class JsonPatchExtensions
-    {
-        public static void ApplyTo<T>(this Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<T> patchDoc, T objectToApplyTo, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) where T : class { }
-        public static void ApplyTo<T>(this Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<T> patchDoc, T objectToApplyTo, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, string prefix) where T : class { }
-    }
-    public partial class MvcNewtonsoftJsonOptions : System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch>, System.Collections.IEnumerable
-    {
-        public MvcNewtonsoftJsonOptions() { }
-        public bool AllowInputFormatterExceptionMessages { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Newtonsoft.Json.JsonSerializerSettings SerializerSettings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        System.Collections.Generic.IEnumerator<Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch> System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch>.GetEnumerator() { throw null; }
-        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Mvc.Formatters
-{
-    public partial class NewtonsoftJsonInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy
-    {
-        public NewtonsoftJsonInputFormatter(Microsoft.Extensions.Logging.ILogger logger, Newtonsoft.Json.JsonSerializerSettings serializerSettings, System.Buffers.ArrayPool<char> charPool, Microsoft.Extensions.ObjectPool.ObjectPoolProvider objectPoolProvider, Microsoft.AspNetCore.Mvc.MvcOptions options, Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions jsonOptions) { }
-        public virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get { throw null; } }
-        protected Newtonsoft.Json.JsonSerializerSettings SerializerSettings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        protected virtual Newtonsoft.Json.JsonSerializer CreateJsonSerializer() { throw null; }
-        protected virtual Newtonsoft.Json.JsonSerializer CreateJsonSerializer(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult> ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) { throw null; }
-        protected virtual void ReleaseJsonSerializer(Newtonsoft.Json.JsonSerializer serializer) { }
-    }
-    public partial class NewtonsoftJsonOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter
-    {
-        public NewtonsoftJsonOutputFormatter(Newtonsoft.Json.JsonSerializerSettings serializerSettings, System.Buffers.ArrayPool<char> charPool, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) { }
-        protected Newtonsoft.Json.JsonSerializerSettings SerializerSettings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        protected virtual Newtonsoft.Json.JsonSerializer CreateJsonSerializer() { throw null; }
-        protected virtual Newtonsoft.Json.JsonSerializer CreateJsonSerializer(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) { throw null; }
-        protected virtual Newtonsoft.Json.JsonWriter CreateJsonWriter(System.IO.TextWriter writer) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) { throw null; }
-    }
-    public partial class NewtonsoftJsonPatchInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter
-    {
-        public NewtonsoftJsonPatchInputFormatter(Microsoft.Extensions.Logging.ILogger logger, Newtonsoft.Json.JsonSerializerSettings serializerSettings, System.Buffers.ArrayPool<char> charPool, Microsoft.Extensions.ObjectPool.ObjectPoolProvider objectPoolProvider, Microsoft.AspNetCore.Mvc.MvcOptions options, Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions jsonOptions) : base (default(Microsoft.Extensions.Logging.ILogger), default(Newtonsoft.Json.JsonSerializerSettings), default(System.Buffers.ArrayPool<char>), default(Microsoft.Extensions.ObjectPool.ObjectPoolProvider), default(Microsoft.AspNetCore.Mvc.MvcOptions), default(Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions)) { }
-        public override Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get { throw null; } }
-        public override bool CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult> ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Mvc.NewtonsoftJson
-{
-    public static partial class JsonSerializerSettingsProvider
-    {
-        public static Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() { throw null; }
-    }
-    public sealed partial class ProblemDetailsConverter : Newtonsoft.Json.JsonConverter
-    {
-        public ProblemDetailsConverter() { }
-        public override bool CanConvert(System.Type objectType) { throw null; }
-        public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { throw null; }
-        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { }
-    }
-    public sealed partial class ValidationProblemDetailsConverter : Newtonsoft.Json.JsonConverter
-    {
-        public ValidationProblemDetailsConverter() { }
-        public override bool CanConvert(System.Type objectType) { throw null; }
-        public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { throw null; }
-        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { }
-    }
-}
-namespace Microsoft.AspNetCore.Mvc.Rendering
-{
-    public static partial class JsonHelperExtensions
-    {
-        public static Microsoft.AspNetCore.Html.IHtmlContent Serialize(this Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper jsonHelper, object value, Newtonsoft.Json.JsonSerializerSettings serializerSettings) { throw null; }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class MvcNewtonsoftJsonOptionsExtensions
-    {
-        public static Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions UseCamelCasing(this Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions options, bool processDictionaryKeys) { throw null; }
-        public static Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions UseMemberCasing(this Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions options) { throw null; }
-    }
-    public static partial class NewtonsoftJsonMvcBuilderExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) { throw null; }
-        public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action<Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions> setupAction) { throw null; }
-    }
-    public static partial class NewtonsoftJsonMvcCoreBuilderExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) { throw null; }
-        public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddNewtonsoftJson(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action<Microsoft.AspNetCore.Mvc.MvcNewtonsoftJsonOptions> setupAction) { throw null; }
-    }
-}
diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/ref/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj b/src/Mvc/Mvc.Razor.RuntimeCompilation/ref/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj
deleted file mode 100644
index d6f2a9ffb715a228f29d127b69f900ba3a2a1d30..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.Razor.RuntimeCompilation/ref/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.RazorPages"  />
-    <Reference Include="Microsoft.AspNetCore.Razor.Runtime"  />
-    <Reference Include="Microsoft.CodeAnalysis.Razor"  />
-    <Reference Include="Microsoft.Extensions.DependencyModel"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/ref/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.netcoreapp.cs b/src/Mvc/Mvc.Razor.RuntimeCompilation/ref/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.netcoreapp.cs
deleted file mode 100644
index 286620cf66490bc2091cb9eff5508710eac20409..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.Razor.RuntimeCompilation/ref/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.netcoreapp.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Mvc.ApplicationParts
-{
-    public static partial class AssemblyPartExtensions
-    {
-        public static System.Collections.Generic.IEnumerable<string> GetReferencePaths(this Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart assemblyPart) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
-{
-    public partial class FileProviderRazorProjectItem : Microsoft.AspNetCore.Razor.Language.RazorProjectItem
-    {
-        public FileProviderRazorProjectItem(Microsoft.Extensions.FileProviders.IFileInfo fileInfo, string basePath, string filePath, string root) { }
-        public FileProviderRazorProjectItem(Microsoft.Extensions.FileProviders.IFileInfo fileInfo, string basePath, string filePath, string root, string fileKind) { }
-        public override string BasePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override bool Exists { get { throw null; } }
-        public Microsoft.Extensions.FileProviders.IFileInfo FileInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override string FileKind { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override string FilePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override string PhysicalPath { get { throw null; } }
-        public override string RelativePhysicalPath { get { throw null; } }
-        public override System.IO.Stream Read() { throw null; }
-    }
-    public partial class MvcRazorRuntimeCompilationOptions
-    {
-        public MvcRazorRuntimeCompilationOptions() { }
-        public System.Collections.Generic.IList<string> AdditionalReferencePaths { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public System.Collections.Generic.IList<Microsoft.Extensions.FileProviders.IFileProvider> FileProviders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class RazorRuntimeCompilationMvcBuilderExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) { throw null; }
-        public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action<Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions> setupAction) { throw null; }
-    }
-    public static partial class RazorRuntimeCompilationMvcCoreBuilderExtensions
-    {
-        public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) { throw null; }
-        public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorRuntimeCompilation(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action<Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions> setupAction) { throw null; }
-    }
-}
diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj
index 1476267dfc1b3bb8f57b80745a31ad26c8e5c4dd..ee568fe9038c3e0caa850cec19e0e42bb0e3eff5 100644
--- a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj
+++ b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj
@@ -12,6 +12,7 @@
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" />
     <Reference Include="Microsoft.AspNetCore.Mvc.RazorPages" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
     <Reference Include="Microsoft.AspNetCore.Razor.Runtime" />
     <Reference Include="Microsoft.CodeAnalysis.Razor" />
     <Reference Include="Microsoft.Extensions.DependencyModel" />
diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Properties/AssemblyInfo.cs b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Properties/AssemblyInfo.cs
index 472b09032a653f6eaec100fb2afa0def9687d9eb..bb42a1ab3807d73dd4c1db5f6c06e0337c8c385a 100644
--- a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Properties/AssemblyInfo.cs
+++ b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Properties/AssemblyInfo.cs
@@ -2,6 +2,10 @@
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System.Runtime.CompilerServices;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation;
 
 [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
 [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
+
+[assembly: HostingStartup(typeof(RazorRuntimeCompilationHostingStartup))]
\ No newline at end of file
diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/RazorRuntimeCompilationHostingStartup.cs b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/RazorRuntimeCompilationHostingStartup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..62eee8072a5bee647b6388ac8cd9fafe7f40def7
--- /dev/null
+++ b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/RazorRuntimeCompilationHostingStartup.cs
@@ -0,0 +1,17 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
+{
+    internal sealed class RazorRuntimeCompilationHostingStartup : IHostingStartup
+    {
+        public void Configure(IWebHostBuilder builder)
+        {
+            // Add Razor services
+            builder.ConfigureServices(services => RazorRuntimeCompilationMvcCoreBuilderExtensions.AddServices(services));
+        }
+    }
+}
diff --git a/src/Mvc/Mvc.Razor/ref/Microsoft.AspNetCore.Mvc.Razor.Manual.cs b/src/Mvc/Mvc.Razor/ref/Microsoft.AspNetCore.Mvc.Razor.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d04a45a77febb69ac8b6df2bd66ac8481081e6b4
--- /dev/null
+++ b/src/Mvc/Mvc.Razor/ref/Microsoft.AspNetCore.Mvc.Razor.Manual.cs
@@ -0,0 +1,198 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Mvc.ApplicationParts
+{
+    internal partial class RazorCompiledItemFeatureProvider
+    {
+        public RazorCompiledItemFeatureProvider() { }
+        public void PopulateFeature(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart> parts, Microsoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeature feature) { }
+    }
+}
+
+namespace Microsoft.AspNetCore.Mvc.Razor
+{
+    public partial class RazorPageActivator : Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator
+    {
+        internal Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator GetOrAddCacheEntry(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page) { throw null; }
+    }
+    internal partial class DefaultTagHelperFactory : Microsoft.AspNetCore.Mvc.Razor.ITagHelperFactory
+    {
+        public DefaultTagHelperFactory(Microsoft.AspNetCore.Mvc.Razor.ITagHelperActivator activator) { }
+        public TTagHelper CreateTagHelper<TTagHelper>(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper { throw null; }
+    }
+    public partial class RazorView
+    {
+        internal System.Action<Microsoft.AspNetCore.Mvc.Razor.IRazorPage, Microsoft.AspNetCore.Mvc.Rendering.ViewContext> OnAfterPageActivated { get { throw null; } set { } }
+    }
+    internal partial class RazorPagePropertyActivator
+    {
+        public RazorPagePropertyActivator(System.Type pageType, System.Type declaredModelType, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator.PropertyValueAccessors propertyValueAccessors) { }
+        public void Activate(object page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) { }
+        internal Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary CreateViewDataDictionary(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) { throw null; }
+        public partial class PropertyValueAccessors
+        {
+            public PropertyValueAccessors() { }
+            public System.Func<Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> DiagnosticSourceAccessor { get { throw null; } set { } }
+            public System.Func<Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> HtmlEncoderAccessor { get { throw null; } set { } }
+            public System.Func<Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> JsonHelperAccessor { get { throw null; } set { } }
+            public System.Func<Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> ModelExpressionProviderAccessor { get { throw null; } set { } }
+            public System.Func<Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> UrlHelperAccessor { get { throw null; } set { } }
+        }
+    }
+    internal partial interface IModelTypeProvider
+    {
+        System.Type GetModelType();
+    }
+    internal static partial class RazorFileHierarchy
+    {
+        public static System.Collections.Generic.IEnumerable<string> GetViewStartPaths(string path) { throw null; }
+    }
+    internal partial class RazorViewEngineOptionsSetup
+    {
+        public RazorViewEngineOptionsSetup() { }
+        public void Configure(Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions options) { }
+    }
+    internal partial class DefaultViewCompiler : Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler
+    {
+        public DefaultViewCompiler(System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor> compiledViews, Microsoft.Extensions.Logging.ILogger logger) { }
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor> CompileAsync(string relativePath) { throw null; }
+    }
+    internal static partial class ViewPath
+    {
+        public static string NormalizePath(string path) { throw null; }
+    }
+    internal partial class ServiceBasedTagHelperActivator : Microsoft.AspNetCore.Mvc.Razor.ITagHelperActivator
+    {
+        public ServiceBasedTagHelperActivator() { }
+        public TTagHelper Create<TTagHelper>(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper { throw null; }
+    }
+    internal partial class TagHelperComponentManager : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager
+    {
+        public TagHelperComponentManager(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent> tagHelperComponents) { }
+        public System.Collections.Generic.ICollection<Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent> Components { get { throw null; } }
+    }
+    internal static partial class Resources
+    {
+        internal static string ArgumentCannotBeNullOrEmpty { get { throw null; } }
+        internal static string CompilationFailed { get { throw null; } }
+        internal static string Compilation_MissingReferences { get { throw null; } }
+        internal static string CompiledViewDescriptor_NoData { get { throw null; } }
+        internal static string CouldNotResolveApplicationRelativeUrl_TagHelper { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { get { throw null; } set { } }
+        internal static string FileProvidersAreRequired { get { throw null; } }
+        internal static string FlushPointCannotBeInvoked { get { throw null; } }
+        internal static string GeneratedCodeFileName { get { throw null; } }
+        internal static string LayoutCannotBeLocated { get { throw null; } }
+        internal static string LayoutCannotBeRendered { get { throw null; } }
+        internal static string LayoutHasCircularReference { get { throw null; } }
+        internal static string PropertyMustBeSet { get { throw null; } }
+        internal static string RazorPage_CannotFlushWhileInAWritingScope { get { throw null; } }
+        internal static string RazorPage_InvalidTagHelperIndexerAssignment { get { throw null; } }
+        internal static string RazorPage_MethodCannotBeCalled { get { throw null; } }
+        internal static string RazorPage_NestingAttributeWritingScopesNotSupported { get { throw null; } }
+        internal static string RazorPage_ThereIsNoActiveWritingScopeToEnd { get { throw null; } }
+        internal static string RazorProject_PathMustStartWithForwardSlash { get { throw null; } }
+        internal static string RazorViewCompiler_ViewPathsDifferOnlyInCase { get { throw null; } }
+        internal static string RenderBodyNotCalled { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string SectionAlreadyDefined { get { throw null; } }
+        internal static string SectionAlreadyRendered { get { throw null; } }
+        internal static string SectionNotDefined { get { throw null; } }
+        internal static string SectionsNotRendered { get { throw null; } }
+        internal static string UnsupportedDebugInformationFormat { get { throw null; } }
+        internal static string ViewContextMustBeSet { get { throw null; } }
+        internal static string ViewLocationFormatsIsRequired { get { throw null; } }
+        internal static string FormatCompilation_MissingReferences(object p0) { throw null; }
+        internal static string FormatCompiledViewDescriptor_NoData(object p0, object p1) { throw null; }
+        internal static string FormatCouldNotResolveApplicationRelativeUrl_TagHelper(object p0, object p1, object p2, object p3, object p4, object p5) { throw null; }
+        internal static string FormatFileProvidersAreRequired(object p0, object p1, object p2) { throw null; }
+        internal static string FormatFlushPointCannotBeInvoked(object p0) { throw null; }
+        internal static string FormatLayoutCannotBeLocated(object p0, object p1) { throw null; }
+        internal static string FormatLayoutCannotBeRendered(object p0, object p1) { throw null; }
+        internal static string FormatLayoutHasCircularReference(object p0, object p1) { throw null; }
+        internal static string FormatPropertyMustBeSet(object p0, object p1) { throw null; }
+        internal static string FormatRazorPage_CannotFlushWhileInAWritingScope(object p0, object p1) { throw null; }
+        internal static string FormatRazorPage_InvalidTagHelperIndexerAssignment(object p0, object p1, object p2) { throw null; }
+        internal static string FormatRazorPage_MethodCannotBeCalled(object p0, object p1) { throw null; }
+        internal static string FormatRenderBodyNotCalled(object p0, object p1, object p2) { throw null; }
+        internal static string FormatSectionAlreadyDefined(object p0) { throw null; }
+        internal static string FormatSectionAlreadyRendered(object p0, object p1, object p2) { throw null; }
+        internal static string FormatSectionNotDefined(object p0, object p1, object p2) { throw null; }
+        internal static string FormatSectionsNotRendered(object p0, object p1, object p2) { throw null; }
+        internal static string FormatUnsupportedDebugInformationFormat(object p0) { throw null; }
+        internal static string FormatViewContextMustBeSet(object p0, object p1) { throw null; }
+        internal static string FormatViewLocationFormatsIsRequired(object p0) { throw null; }
+        internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+    public partial class RazorViewEngine : Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine
+    {
+        internal System.Collections.Generic.IEnumerable<string> GetViewLocationFormats(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Mvc.Razor.Compilation
+{
+    internal partial class DefaultRazorPageFactoryProvider : Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider
+    {
+        public DefaultRazorPageFactoryProvider(Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompilerProvider viewCompilerProvider) { }
+        public Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult CreateFactory(string relativePath) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Mvc.Razor.Infrastructure
+{
+    internal static partial class CryptographyAlgorithms
+    {
+        public static System.Security.Cryptography.SHA256 CreateSHA256() { throw null; }
+    }
+
+    internal partial class DefaultFileVersionProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider
+    {
+        public DefaultFileVersionProvider(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider) { }
+        public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get { throw null; } }
+        public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get { throw null; } }
+        public string AddFileVersionToPath(Microsoft.AspNetCore.Http.PathString requestPathBase, string path) { throw null; }
+    }
+    internal partial class DefaultTagHelperActivator : Microsoft.AspNetCore.Mvc.Razor.ITagHelperActivator
+    {
+        public DefaultTagHelperActivator(Microsoft.AspNetCore.Mvc.Infrastructure.ITypeActivatorCache typeActivatorCache) { }
+        public TTagHelper Create<TTagHelper>(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper { throw null; }
+    }
+    public sealed partial class TagHelperMemoryCacheProvider
+    {
+        public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get { throw null; } internal set { } }
+    }
+}
+
+namespace Microsoft.AspNetCore.Mvc.Razor.TagHelpers
+{
+    internal partial class TagHelperComponentPropertyActivator : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator
+    {
+        public TagHelperComponentPropertyActivator() { }
+        public void Activate(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context, Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent tagHelperComponent) { }
+    }
+}
+
+namespace Microsoft.AspNetCore.Mvc.Razor.Compilation
+{
+    internal partial class DefaultViewCompilerProvider : Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompilerProvider
+    {
+        public DefaultViewCompilerProvider(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager applicationPartManager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler GetCompiler() { throw null; }
+    }
+    internal partial class DefaultViewCompiler : Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler
+    {
+        public DefaultViewCompiler(System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor> compiledViews, Microsoft.Extensions.Logging.ILogger logger) { }
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor> CompileAsync(string relativePath) { throw null; }
+    }
+}
+
+namespace Microsoft.Extensions.DependencyInjection
+{
+    internal partial class MvcRazorMvcViewOptionsSetup
+    {
+        public MvcRazorMvcViewOptionsSetup(Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine razorViewEngine) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.MvcViewOptions options) { }
+    }
+}
diff --git a/src/Mvc/Mvc.Razor/ref/Microsoft.AspNetCore.Mvc.Razor.csproj b/src/Mvc/Mvc.Razor/ref/Microsoft.AspNetCore.Mvc.Razor.csproj
index efa2947eb8dd91aef7f20a1b42f842aa73498fa5..7895de2729ceef02e1aa372079000b21608eeeda 100644
--- a/src/Mvc/Mvc.Razor/ref/Microsoft.AspNetCore.Mvc.Razor.csproj
+++ b/src/Mvc/Mvc.Razor/ref/Microsoft.AspNetCore.Mvc.Razor.csproj
@@ -5,9 +5,11 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.Razor.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.ViewFeatures"  />
-    <Reference Include="Microsoft.AspNetCore.Razor.Runtime"  />
-    <Reference Include="Microsoft.Extensions.Caching.Memory"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Composite"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.Razor.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" />
+    <Reference Include="Microsoft.AspNetCore.Razor.Runtime" />
+    <Reference Include="Microsoft.Extensions.Caching.Memory" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Composite" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj b/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj
index 77ae07bc3b77f5a7cae2e556402754c7a0936725..e9fc306a9e5ef54d2408a1c789cbb65715e74b7e 100644
--- a/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj
+++ b/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc;cshtml;razor</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.RazorPages/ref/Directory.Build.props b/src/Mvc/Mvc.RazorPages/ref/Directory.Build.props
deleted file mode 100644
index 6cab2bf950a47b553e91a6ae43cc538195ec3ffd..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.RazorPages/ref/Directory.Build.props
+++ /dev/null
@@ -1,9 +0,0 @@
-<Project>
-
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
-
-  <ItemGroup>
-    <Compile Include="Microsoft.AspNetCore.Mvc.RazorPages.netcoreapp5.0.Manual.cs" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.Manual.cs b/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..332ae042788b39ab7d1d811c4a663d6fe9d338f4
--- /dev/null
+++ b/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.Manual.cs
@@ -0,0 +1,344 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Mvc.ApplicationModels
+{
+    internal partial class CompiledPageRouteModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelProvider
+    {
+        public CompiledPageRouteModelProvider(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager applicationManager, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions> pagesOptionsAccessor, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Mvc.ApplicationModels.CompiledPageRouteModelProvider> logger) { }
+        public int Order { get { throw null; } }
+        internal static string GetRouteTemplate(Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor viewDescriptor) { throw null; }
+        protected virtual Microsoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeature GetViewFeature(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager applicationManager) { throw null; }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext context) { }
+    }
+    internal partial class DefaultPageApplicationModelPartsProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider
+    {
+        public DefaultPageApplicationModelPartsProvider(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) { }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel CreateHandlerModel(System.Reflection.MethodInfo method) { throw null; }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel CreateParameterModel(System.Reflection.ParameterInfo parameter) { throw null; }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel CreatePropertyModel(System.Reflection.PropertyInfo property) { throw null; }
+        public bool IsHandler(System.Reflection.MethodInfo methodInfo) { throw null; }
+        internal static bool TryParseHandlerMethod(string methodName, out string httpMethod, out string handler) { throw null; }
+    }
+    public partial class PageConventionCollection : System.Collections.ObjectModel.Collection<Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention>
+    {
+        internal PageConventionCollection(System.IServiceProvider serviceProvider) { }
+        internal Microsoft.AspNetCore.Mvc.MvcOptions MvcOptions { get { throw null; } }
+        internal static void EnsureValidFolderPath(string folderPath) { }
+        internal static void EnsureValidPageName(string pageName, string argumentName = "pageName") { }
+        internal static bool PathBelongsToFolder(string folderPath, string viewEnginePath) { throw null; }
+    }
+    internal static partial class CompiledPageActionDescriptorBuilder
+    {
+        public static Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor Build(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel applicationModel, Microsoft.AspNetCore.Mvc.Filters.FilterCollection globalFilters) { throw null; }
+        internal static Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageBoundPropertyDescriptor[] CreateBoundProperties(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel applicationModel) { throw null; }
+        internal static Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor[] CreateHandlerMethods(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel applicationModel) { throw null; }
+        internal static Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerParameterDescriptor[] CreateHandlerParameters(Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel handlerModel) { throw null; }
+    }
+    internal partial class AutoValidateAntiforgeryPageApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider
+    {
+        public AutoValidateAntiforgeryPageApplicationModelProvider() { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+    }
+    // https://github.com/dotnet/arcade/issues/2066
+    [System.Diagnostics.DebuggerDisplayAttribute("PageParameterModel: Name={ParameterName}")]
+    public partial class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel
+    {
+        public PageParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel other) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
+        public PageParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList<object> attributes) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel Handler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get { throw null; } }
+        public System.Reflection.ParameterInfo ParameterInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string ParameterName { get { throw null; } set { } }
+        System.Collections.Generic.IReadOnlyList<object> Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Attributes { get { throw null; } }
+        System.Collections.Generic.IDictionary<object, object> Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel.Properties { get { throw null; } }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("PagePropertyModel: Name={PropertyName}")]
+    public partial class PagePropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel
+    {
+        public PagePropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel other) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
+        public PagePropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList<object> attributes) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
+        System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel Page { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Reflection.PropertyInfo PropertyInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string PropertyName { get { throw null; } set { } }
+        System.Collections.Generic.IReadOnlyList<object> Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Attributes { get { throw null; } }
+        System.Collections.Generic.IDictionary<object, object> Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel.Properties { get { throw null; } }
+    }
+    internal partial class PageRouteModelFactory
+    {
+        public PageRouteModelFactory(Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions options, Microsoft.Extensions.Logging.ILogger logger) { }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel CreateAreaRouteModel(string relativePath, string routeTemplate) { throw null; }
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel CreateRouteModel(string relativePath, string routeTemplate) { throw null; }
+        internal bool TryParseAreaPath(string relativePath, out (string areaName, string viewEnginePath) result) { throw null; }
+    }
+    internal partial class AuthorizationPageApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider
+    {
+        public AuthorizationPageApplicationModelProvider(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions) { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+    }
+    internal partial class DefaultPageApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider
+    {
+        public DefaultPageApplicationModelProvider(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions> razorPagesOptions, Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider pageApplicationModelPartsProvider) { }
+        public int Order { get { throw null; } }
+        protected virtual Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel CreateModel(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, System.Reflection.TypeInfo pageTypeInfo) { throw null; }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+        internal void PopulateFilters(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel pageModel) { }
+        internal void PopulateHandlerMethods(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel pageModel) { }
+        internal void PopulateHandlerProperties(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel pageModel) { }
+    }
+    internal partial class TempDataFilterPageApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider
+    {
+        public TempDataFilterPageApplicationModelProvider(Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+    }
+    internal partial class ViewDataAttributePageApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider
+    {
+        public ViewDataAttributePageApplicationModelProvider() { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+    }
+    internal partial class ResponseCacheFilterApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider
+    {
+        public ResponseCacheFilterApplicationModelProvider(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Filters
+{
+    internal partial class PageViewDataAttributeFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        public PageViewDataAttributeFilterFactory(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> properties) { }
+        public bool IsReusable { get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal partial class PageResponseCacheFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IPageFilter, Microsoft.AspNetCore.Mvc.Filters.IResponseCacheFilter
+    {
+        public PageResponseCacheFilter(Microsoft.AspNetCore.Mvc.CacheProfile cacheProfile, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public int Duration { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Mvc.ResponseCacheLocation Location { get { throw null; } set { } }
+        public bool NoStore { get { throw null; } set { } }
+        public string VaryByHeader { get { throw null; } set { } }
+        public string[] VaryByQueryKeys { get { throw null; } set { } }
+        public void OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context) { }
+        public void OnPageHandlerExecuting(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context) { }
+        public void OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) { }
+    }
+    internal partial class PageViewDataAttributeFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IPageFilter, Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.IViewDataValuesProviderFeature
+    {
+        public PageViewDataAttributeFilter(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> properties) { }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public object Subject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context) { }
+        public void OnPageHandlerExecuting(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context) { }
+        public void OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) { }
+        public void ProvideViewDataValues(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) { }
+    }
+    internal partial class PageSaveTempDataPropertyFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        public PageSaveTempDataPropertyFilterFactory(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> properties) { }
+        public bool IsReusable { get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal partial class PageSaveTempDataPropertyFilter : Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.SaveTempDataPropertyFilterBase, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IPageFilter
+    {
+        public PageSaveTempDataPropertyFilter(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory factory) : base (default(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory)) { }
+        public void OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context) { }
+        public void OnPageHandlerExecuting(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context) { }
+        public void OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) { }
+    }
+    internal partial class PageHandlerPageFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public PageHandlerPageFilter() { }
+        public int Order { get { throw null; } }
+        public System.Threading.Tasks.Task OnPageHandlerExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate next) { throw null; }
+        public System.Threading.Tasks.Task OnPageHandlerSelectionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) { throw null; }
+    }
+    internal partial class PageHandlerResultFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter
+    {
+        public PageHandlerResultFilter() { }
+        public int Order { get { throw null; } }
+        public System.Threading.Tasks.Task OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
+{
+    internal partial class DynamicPageRouteValueTransformerMetadata : Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata
+    {
+        public DynamicPageRouteValueTransformerMetadata(System.Type selectorType) { }
+        public bool IsDynamic { get { throw null; } }
+        public System.Type SelectorType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class DefaultPageModelActivatorProvider : Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider
+    {
+        public DefaultPageModelActivatorProvider() { }
+        public virtual System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor) { throw null; }
+        public virtual System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor) { throw null; }
+    }
+    internal partial class PageLoaderMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy
+    {
+        public PageLoaderMatcherPolicy(Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader loader) { }
+        public override int Order { get { throw null; } }
+        public bool AppliesToEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+        public System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates) { throw null; }
+    }
+    internal partial class DefaultPageActivatorProvider : Microsoft.AspNetCore.Mvc.RazorPages.IPageActivatorProvider
+    {
+        public DefaultPageActivatorProvider() { }
+        public System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor) { throw null; }
+        public System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor) { throw null; }
+    }
+    internal partial class DynamicPageEndpointMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy
+    {
+        public DynamicPageEndpointMatcherPolicy(Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.DynamicPageEndpointSelector selector, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader loader, Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer comparer) { }
+        public override int Order { get { throw null; } }
+        public bool AppliesToEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> endpoints) { throw null; }
+        public System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates) { throw null; }
+    }
+    internal partial class PageActionInvoker : Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker, Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker
+    {
+        public PageActionInvoker(Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector handlerMethodSelector, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor actionContextAccessor, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[] filterMetadata, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvokerCacheEntry cacheEntry, Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder parameterBinder, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions htmlHelperOptions) : base (default(System.Diagnostics.DiagnosticListener), default(Microsoft.Extensions.Logging.ILogger), default(Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor), default(Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper), default(Microsoft.AspNetCore.Mvc.ActionContext), default(Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[]), default(System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory>)) { }
+        internal Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvokerCacheEntry CacheEntry { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.Mvc.RazorPages.PageContext PageContext { get { throw null; } }
+        protected override System.Threading.Tasks.Task InvokeInnerFilterAsync() { throw null; }
+        protected override System.Threading.Tasks.Task InvokeResultAsync(Microsoft.AspNetCore.Mvc.IActionResult result) { throw null; }
+        protected override void ReleaseResources() { }
+    }
+    internal static partial class ExecutorFactory
+    {
+        public static Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageHandlerExecutorDelegate CreateExecutor(Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerDescriptor) { throw null; }
+    }
+    internal partial class DefaultPageLoader : Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader
+    {
+        public DefaultPageLoader(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider> applicationModelProviders, Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompilerProvider viewCompilerProvider, Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory endpointFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions> pageOptions, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions) { }
+        internal static void ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel pageApplicationModel) { }
+        public override System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor> LoadAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) { throw null; }
+    }
+    internal partial class PageActionEndpointDataSource : Microsoft.AspNetCore.Mvc.Routing.ActionEndpointDataSourceBase
+    {
+        public PageActionEndpointDataSource(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actions, Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory endpointFactory) : base (default(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider)) { }
+        public bool CreateInertEndpoints { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Builder.PageActionEndpointConventionBuilder DefaultBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        protected override System.Collections.Generic.List<Microsoft.AspNetCore.Http.Endpoint> CreateEndpoints(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor> actions, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.AspNetCore.Builder.EndpointBuilder>> conventions) { throw null; }
+    }
+    internal partial class DynamicPageEndpointSelector : System.IDisposable
+    {
+        public DynamicPageEndpointSelector(Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionEndpointDataSource dataSource) { }
+        protected DynamicPageEndpointSelector(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource) { }
+        public void Dispose() { }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Endpoint> SelectEndpoints(Microsoft.AspNetCore.Routing.RouteValueDictionary values) { throw null; }
+    }
+    internal partial class DefaultPageModelFactoryProvider : Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider
+    {
+        public DefaultPageModelFactoryProvider(Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider modelActivator) { }
+        public System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> CreateModelDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) { throw null; }
+        public System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> CreateModelFactory(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) { throw null; }
+    }
+    internal partial class DefaultPageFactoryProvider : Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider
+    {
+        public DefaultPageFactoryProvider(Microsoft.AspNetCore.Mvc.RazorPages.IPageActivatorProvider pageActivator, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper jsonHelper, System.Diagnostics.DiagnosticListener diagnosticListener, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider modelExpressionProvider) { }
+        public System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> CreatePageDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) { throw null; }
+        public System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> CreatePageFactory(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor) { throw null; }
+    }
+    internal partial class DefaultPageHandlerMethodSelector : Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector
+    {
+        public DefaultPageHandlerMethodSelector() { }
+        public Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor Select(Microsoft.AspNetCore.Mvc.RazorPages.PageContext context) { throw null; }
+    }
+    internal sealed partial class HandleOptionsRequestsPageFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IPageFilter
+    {
+        public HandleOptionsRequestsPageFilter() { }
+        public int Order { get { throw null; } }
+        public void OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context) { }
+        public void OnPageHandlerExecuting(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context) { }
+        public void OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) { }
+    }
+    internal delegate System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> PageHandlerExecutorDelegate(object handler, object[] arguments);
+    internal partial class PageActionInvokerCacheEntry
+    {
+        public PageActionInvokerCacheEntry(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, System.Func<Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary> viewDataFactory, System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> pageFactory, System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> releasePage, System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> modelFactory, System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> releaseModel, System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object, System.Threading.Tasks.Task> propertyBinder, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageHandlerExecutorDelegate[] handlerExecutors, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageHandlerBinderDelegate[] handlerBinders, System.Collections.Generic.IReadOnlyList<System.Func<Microsoft.AspNetCore.Mvc.Razor.IRazorPage>> viewStartFactories, Microsoft.AspNetCore.Mvc.Filters.FilterItem[] cacheableFilters) { }
+        public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.FilterItem[] CacheableFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageHandlerBinderDelegate[] HandlerBinders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageHandlerExecutorDelegate[] HandlerExecutors { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> ModelFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> PageFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object, System.Threading.Tasks.Task> PropertyBinder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object> ReleaseModel { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Action<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, Microsoft.AspNetCore.Mvc.Rendering.ViewContext, object> ReleasePage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary> ViewDataFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<System.Func<Microsoft.AspNetCore.Mvc.Razor.IRazorPage>> ViewStartFactories { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class PageActionInvokerProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider
+    {
+        public PageActionInvokerProvider(Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader loader, Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider pageFactoryProvider, Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider modelFactoryProvider, Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider razorPageFactoryProvider, Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider collectionProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterProvider> filterProviders, Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder parameterBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcViewOptions> mvcViewOptions, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector selector, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper) { }
+        public PageActionInvokerProvider(Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader loader, Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider pageFactoryProvider, Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider modelFactoryProvider, Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider razorPageFactoryProvider, Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider collectionProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Filters.IFilterProvider> filterProviders, Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder parameterBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcOptions> mvcOptions, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.MvcViewOptions> mvcViewOptions, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector selector, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor actionContextAccessor) { }
+        public int Order { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.Collections.Generic.List<System.Func<Microsoft.AspNetCore.Mvc.Razor.IRazorPage>> GetViewStartFactories(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) { throw null; }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext context) { }
+        internal partial class InnerCache
+        {
+            public InnerCache(int version) { }
+            public System.Collections.Concurrent.ConcurrentDictionary<Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvokerCacheEntry> Entries { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public int Version { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        }
+    }
+    internal static partial class PageBinderFactory
+    {
+        internal static readonly Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageHandlerBinderDelegate NullHandlerBinder = (context, arguments) => System.Threading.Tasks.Task.CompletedTask;
+        internal static readonly System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object, System.Threading.Tasks.Task> NullPropertyBinder = (context, arguments) => System.Threading.Tasks.Task.CompletedTask;
+        public static Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageHandlerBinderDelegate CreateHandlerBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder parameterBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handler, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) { throw null; }
+        public static System.Func<Microsoft.AspNetCore.Mvc.RazorPages.PageContext, object, System.Threading.Tasks.Task> CreatePropertyBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder parameterBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor) { throw null; }
+    }
+    internal delegate System.Threading.Tasks.Task PageHandlerBinderDelegate(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IDictionary<string, object> arguments);
+}
+namespace Microsoft.Extensions.DependencyInjection
+{
+    internal partial class RazorPagesRazorViewEngineOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions>
+    {
+        public RazorPagesRazorViewEngineOptionsSetup(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions> pagesOptions) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions options) { }
+    }
+    internal partial class RazorPagesOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions>
+    {
+        public RazorPagesOptionsSetup(System.IServiceProvider serviceProvider) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions options) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.RazorPages
+{
+    public partial class RazorPagesOptions : System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch>, System.Collections.IEnumerable
+    {
+        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection Conventions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+    }
+    internal static partial class PageLoggerExtensions
+    {
+        public const string PageFilter = "Page Filter";
+        public static void AfterExecutingMethodOnFilter(this Microsoft.Extensions.Logging.ILogger logger, string filterType, string methodName, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void BeforeExecutingMethodOnFilter(this Microsoft.Extensions.Logging.ILogger logger, string filterType, string methodName, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+        public static void ExecutedHandlerMethod(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.RazorPages.PageContext context, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handler, Microsoft.AspNetCore.Mvc.IActionResult result) { }
+        public static void ExecutedImplicitHandlerMethod(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.IActionResult result) { }
+        public static void ExecutedPageFactory(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.RazorPages.PageContext context) { }
+        public static void ExecutedPageModelFactory(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.RazorPages.PageContext context) { }
+        public static void ExecutingHandlerMethod(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.RazorPages.PageContext context, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handler, object[] arguments) { }
+        public static void ExecutingImplicitHandlerMethod(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.RazorPages.PageContext context) { }
+        public static void ExecutingPageFactory(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.RazorPages.PageContext context) { }
+        public static void ExecutingPageModelFactory(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.RazorPages.PageContext context) { }
+        public static void NotMostEffectiveFilter(this Microsoft.Extensions.Logging.ILogger logger, System.Type policyType) { }
+        public static void PageFilterShortCircuited(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) { }
+    }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.csproj b/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.csproj
index d60794192842d1ea7142e7e4b100d34bbe7bcfc0..3b1a22efdf3819ac9951b0e3838aa026f71090fb 100644
--- a/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.csproj
+++ b/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.csproj
@@ -5,6 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.RazorPages.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Razor"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.RazorPages.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Razor" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.netcoreapp5.0.Manual.cs b/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.netcoreapp5.0.Manual.cs
deleted file mode 100644
index 64141594e443aba0686b657e9144c23594ddcc2e..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.netcoreapp5.0.Manual.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Mvc.ApplicationModels
-{
-    // https://github.com/dotnet/arcade/issues/2066
-    [System.Diagnostics.DebuggerDisplayAttribute("PageParameterModel: Name={ParameterName}")]
-    public partial class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel
-    {
-        public PageParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel other) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
-        public PageParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList<object> attributes) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
-        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel Handler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get { throw null; } }
-        public System.Reflection.ParameterInfo ParameterInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public string ParameterName { get { throw null; } set { } }
-        System.Collections.Generic.IReadOnlyList<object> Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Attributes { get { throw null; } }
-        System.Collections.Generic.IDictionary<object, object> Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel.Properties { get { throw null; } }
-    }
-    [System.Diagnostics.DebuggerDisplayAttribute("PagePropertyModel: Name={PropertyName}")]
-    public partial class PagePropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel
-    {
-        public PagePropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel other) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
-        public PagePropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList<object> attributes) : base (default(System.Type), default(System.Collections.Generic.IReadOnlyList<object>)) { }
-        System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get { throw null; } }
-        public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel Page { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public System.Reflection.PropertyInfo PropertyInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public string PropertyName { get { throw null; } set { } }
-        System.Collections.Generic.IReadOnlyList<object> Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Attributes { get { throw null; } }
-        System.Collections.Generic.IDictionary<object, object> Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel.Properties { get { throw null; } }
-    }
-}
diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DefaultPageLoader.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DefaultPageLoader.cs
index 32472186e2a2816a23d56d17f24dc9618d269316..370df5baee6222364a647fa3533712f09fce9c43 100644
--- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DefaultPageLoader.cs
+++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DefaultPageLoader.cs
@@ -67,6 +67,9 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
         }
 
         public override Task<CompiledPageActionDescriptor> LoadAsync(PageActionDescriptor actionDescriptor)
+            => LoadAsync(actionDescriptor, EndpointMetadataCollection.Empty);
+
+        internal Task<CompiledPageActionDescriptor> LoadAsync(PageActionDescriptor actionDescriptor, EndpointMetadataCollection endpointMetadata)
         {
             if (actionDescriptor == null)
             {
@@ -79,10 +82,10 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
                 return compiledDescriptorTask;
             }
 
-            return cache.GetOrAdd(actionDescriptor, LoadAsyncCore(actionDescriptor));
+            return cache.GetOrAdd(actionDescriptor, LoadAsyncCore(actionDescriptor, endpointMetadata));
         }
 
-        private async Task<CompiledPageActionDescriptor> LoadAsyncCore(PageActionDescriptor actionDescriptor)
+        private async Task<CompiledPageActionDescriptor> LoadAsyncCore(PageActionDescriptor actionDescriptor, EndpointMetadataCollection endpointMetadata)
         {
             var viewDescriptor = await Compiler.CompileAsync(actionDescriptor.RelativePath);
             var context = new PageApplicationModelProviderContext(actionDescriptor, viewDescriptor.Type.GetTypeInfo());
@@ -110,7 +113,18 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
                 routeNames: new HashSet<string>(StringComparer.OrdinalIgnoreCase),
                 action: compiled,
                 routes: Array.Empty<ConventionalRouteEntry>(),
-                conventions: Array.Empty<Action<EndpointBuilder>>(),
+                conventions: new Action<EndpointBuilder>[]
+                {
+                    b =>
+                    {
+                        // Metadata from PageActionDescriptor is less significant than the one discovered from the compiled type.
+                        // Consequently, we'll insert it at the beginning.
+                        for (var i = endpointMetadata.Count - 1; i >=0; i--)
+                        {
+                            b.Metadata.Insert(0, endpointMetadata[i]);
+                        }
+                    },
+                },
                 createInertEndpoints: false);
 
             // In some test scenarios there's no route so the endpoint isn't created. This is fine because
diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs
index ea68558d4b954f8493ca11b21b8c8a1e4216bac3..9f1faa2baa3ee7885b11658648380edc43dd3a7b 100644
--- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs
+++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs
@@ -160,7 +160,19 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
                 var loadedEndpoints = new List<Endpoint>(endpoints);
                 for (var j = 0; j < loadedEndpoints.Count; j++)
                 {
-                    var compiled = await _loader.LoadAsync(loadedEndpoints[j].Metadata.GetMetadata<PageActionDescriptor>());
+                    var metadata = loadedEndpoints[j].Metadata;
+                    var pageActionDescriptor = metadata.GetMetadata<PageActionDescriptor>();
+
+                    CompiledPageActionDescriptor compiled;
+                    if (_loader is DefaultPageLoader defaultPageLoader)
+                    {
+                        compiled = await defaultPageLoader.LoadAsync(pageActionDescriptor, endpoint.Metadata);
+                    }
+                    else
+                    {
+                        compiled = await _loader.LoadAsync(pageActionDescriptor);
+                    }
+
                     loadedEndpoints[j] = compiled.Endpoint;
                 }
 
diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageLoaderMatcherPolicy.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageLoaderMatcherPolicy.cs
index 3d2acb23e8b3a00ab28c9224f02e836c37423858..18c14db7c61d80f76038a17379f77ab5d53959df 100644
--- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageLoaderMatcherPolicy.cs
+++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageLoaderMatcherPolicy.cs
@@ -78,7 +78,16 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
                 {
                     // We found an endpoint instance that has a PageActionDescriptor, but not a
                     // CompiledPageActionDescriptor. Update the CandidateSet.
-                    var compiled = _loader.LoadAsync(page);
+                    Task<CompiledPageActionDescriptor> compiled;
+                    if (_loader is DefaultPageLoader defaultPageLoader)
+                    {
+                        compiled = defaultPageLoader.LoadAsync(page, endpoint.Metadata);
+                    }
+                    else
+                    {
+                        compiled = _loader.LoadAsync(page);
+                    }
+
                     if (compiled.IsCompletedSuccessfully)
                     {
                         candidates.ReplaceEndpoint(i, compiled.Result.Endpoint, candidate.Values);
diff --git a/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj b/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj
index 341722c22826249f6a7ca6a6d1f73463f8335412..b38018a13bb9522171a2136c8d78f2cf50dd37fd 100644
--- a/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj
+++ b/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc;cshtml;razor</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.Manual.cs b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6db194970160b0040da3fbc33eddaba3974e65d3
--- /dev/null
+++ b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.Manual.cs
@@ -0,0 +1,114 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Mvc.TagHelpers
+{
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("script", Attributes="asp-append-version")]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("script", Attributes="asp-fallback-src")]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("script", Attributes="asp-fallback-src-exclude")]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("script", Attributes="asp-fallback-src-include")]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("script", Attributes="asp-fallback-test")]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("script", Attributes="asp-src-exclude")]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("script", Attributes="asp-src-include")]
+    public partial class ScriptTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper
+    {
+        internal Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider FileVersionProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class ModeAttributes<TMode>
+    {
+        public ModeAttributes(TMode mode, string[] attributes) { }
+        public string[] Attributes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public TMode Mode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public partial class CacheTagHelperMemoryCacheFactory
+    {
+        internal CacheTagHelperMemoryCacheFactory(Microsoft.Extensions.Caching.Memory.IMemoryCache cache) { }
+    }
+    internal static partial class AttributeMatcher
+    {
+        public static bool TryDetermineMode<TMode>(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.TagHelpers.ModeAttributes<TMode>> modeInfos, System.Func<TMode, TMode, int> compare, out TMode result) { throw null; }
+    }
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-append-version", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-fallback-href", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-fallback-href-exclude", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-fallback-href-include", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-fallback-test-class", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-fallback-test-property", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-fallback-test-value", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-href-exclude", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("link", Attributes="asp-href-include", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    public partial class LinkTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper
+    {
+        internal Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider FileVersionProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public partial class CacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase
+    {
+        internal Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions GetMemoryCacheEntryOptions() { throw null; }
+    }
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("distributed-cache", Attributes="name")]
+    public partial class DistributedCacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase
+    {
+        internal Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions GetDistributedCacheEntryOptions() { throw null; }
+    }
+    public partial class GlobbingUrlBuilder
+    {
+        internal System.Func<Microsoft.Extensions.FileSystemGlobbing.Matcher> MatcherBuilder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal static partial class JavaScriptResources
+    {
+        public static string GetEmbeddedJavaScript(string resourceName) { throw null; }
+        internal static string GetEmbeddedJavaScript(string resourceName, System.Func<string, System.IO.Stream> getManifestResourceStream, System.Collections.Concurrent.ConcurrentDictionary<string, string> cache) { throw null; }
+    }
+    internal static partial class Resources
+    {
+        internal static string AnchorTagHelper_CannotOverrideHref { get { throw null; } }
+        internal static string ArgumentCannotContainHtmlSpace { get { throw null; } }
+        internal static string CannotDetermineAttributeFor { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string FormActionTagHelper_CannotOverrideFormAction { get { throw null; } }
+        internal static string FormTagHelper_CannotOverrideAction { get { throw null; } }
+        internal static string InputTagHelper_InvalidExpressionResult { get { throw null; } }
+        internal static string InputTagHelper_InvalidStringResult { get { throw null; } }
+        internal static string InputTagHelper_ValueRequired { get { throw null; } }
+        internal static string InvalidEnumArgument { get { throw null; } }
+        internal static string PartialTagHelper_InvalidModelAttributes { get { throw null; } }
+        internal static string PropertyOfTypeCannotBeNull { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string TagHelperOutput_AttributeDoesNotExist { get { throw null; } }
+        internal static string TagHelpers_NoProvidedMetadata { get { throw null; } }
+        internal static string ViewEngine_FallbackViewNotFound { get { throw null; } }
+        internal static string ViewEngine_PartialViewNotFound { get { throw null; } }
+        internal static string FormatAnchorTagHelper_CannotOverrideHref(object p0, object p1, object p2, object p3, object p4, object p5, object p6, object p7, object p8, object p9, object p10, object p11) { throw null; }
+        internal static string FormatCannotDetermineAttributeFor(object p0, object p1) { throw null; }
+        internal static string FormatFormActionTagHelper_CannotOverrideFormAction(object p0, object p1, object p2, object p3, object p4, object p5, object p6, object p7, object p8, object p9) { throw null; }
+        internal static string FormatFormTagHelper_CannotOverrideAction(object p0, object p1, object p2, object p3, object p4, object p5, object p6, object p7, object p8, object p9) { throw null; }
+        internal static string FormatInputTagHelper_InvalidExpressionResult(object p0, object p1, object p2, object p3, object p4, object p5, object p6) { throw null; }
+        internal static string FormatInputTagHelper_InvalidStringResult(object p0, object p1, object p2) { throw null; }
+        internal static string FormatInputTagHelper_ValueRequired(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatInvalidEnumArgument(object p0, object p1, object p2) { throw null; }
+        internal static string FormatPartialTagHelper_InvalidModelAttributes(object p0, object p1, object p2) { throw null; }
+        internal static string FormatPropertyOfTypeCannotBeNull(object p0, object p1) { throw null; }
+        internal static string FormatTagHelperOutput_AttributeDoesNotExist(object p0, object p1) { throw null; }
+        internal static string FormatTagHelpers_NoProvidedMetadata(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatViewEngine_FallbackViewNotFound(object p0, object p1) { throw null; }
+        internal static string FormatViewEngine_PartialViewNotFound(object p0, object p1) { throw null; }
+    }
+    [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("partial", Attributes="name", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)]
+    public partial class PartialTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper
+    {
+        internal object ResolveModel() { throw null; }
+    }
+    internal partial class CurrentValues
+    {
+        public CurrentValues(System.Collections.Generic.ICollection<string> values) { }
+        public System.Collections.Generic.ICollection<string> Values { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.ICollection<string> ValuesAndEncodedValues { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.TagHelpers.Cache
+{
+    public partial class CacheTagKey : System.IEquatable<Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey>
+    {
+        internal string Key { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.csproj b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.csproj
index ea02c2ce35af011a75e83037668dbd801df619d7..10a1f3dd6df7c426c7979e46b2a914c764a22892 100644
--- a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.csproj
+++ b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.csproj
@@ -5,11 +5,13 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Razor"  />
-    <Reference Include="Microsoft.AspNetCore.Razor.Runtime"  />
-    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Caching.Memory"  />
-    <Reference Include="Microsoft.Extensions.FileSystemGlobbing"  />
-    <Reference Include="Microsoft.Extensions.Primitives"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.TagHelpers.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Razor" />
+    <Reference Include="Microsoft.AspNetCore.Razor.Runtime" />
+    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Caching.Memory" />
+    <Reference Include="Microsoft.Extensions.FileSystemGlobbing" />
+    <Reference Include="Microsoft.Extensions.Primitives" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj b/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj
index ccf1d5e424aae6efaedcfbe0046ea68e88767acd..4d31ad0585f0d98bfb75befc5ae566d309d034c3 100644
--- a/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj
+++ b/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj
@@ -6,7 +6,7 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc;taghelper;taghelpers</PackageTags>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc.Testing/ref/Microsoft.AspNetCore.Mvc.Testing.csproj b/src/Mvc/Mvc.Testing/ref/Microsoft.AspNetCore.Mvc.Testing.csproj
deleted file mode 100644
index cb3241a4fa2d0d616429486344ceda8bf466f3d5..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.Testing/ref/Microsoft.AspNetCore.Mvc.Testing.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Mvc.Testing.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.TestHost"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Core"  />
-    <Reference Include="Microsoft.Extensions.HostFactoryResolver.Sources"  />
-    <Reference Include="Microsoft.Extensions.DependencyModel"  />
-    <Reference Include="Microsoft.Extensions.Hosting"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Mvc/Mvc.Testing/ref/Microsoft.AspNetCore.Mvc.Testing.netcoreapp.cs b/src/Mvc/Mvc.Testing/ref/Microsoft.AspNetCore.Mvc.Testing.netcoreapp.cs
deleted file mode 100644
index 4efc53b0022e1dbfeed09805731e6d5d5aace81f..0000000000000000000000000000000000000000
--- a/src/Mvc/Mvc.Testing/ref/Microsoft.AspNetCore.Mvc.Testing.netcoreapp.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Mvc.Testing
-{
-    public partial class WebApplicationFactoryClientOptions
-    {
-        public WebApplicationFactoryClientOptions() { }
-        public bool AllowAutoRedirect { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Uri BaseAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool HandleCookies { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int MaxAutomaticRedirections { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    [System.AttributeUsageAttribute(System.AttributeTargets.Assembly, Inherited=false, AllowMultiple=true)]
-    public sealed partial class WebApplicationFactoryContentRootAttribute : System.Attribute
-    {
-        public WebApplicationFactoryContentRootAttribute(string key, string contentRootPath, string contentRootTest, string priority) { }
-        public string ContentRootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string ContentRootTest { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string Key { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public int Priority { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public partial class WebApplicationFactory<TEntryPoint> : System.IDisposable where TEntryPoint : class
-    {
-        public WebApplicationFactory() { }
-        public Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions ClientOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory<TEntryPoint>> Factories { get { throw null; } }
-        public Microsoft.AspNetCore.TestHost.TestServer Server { get { throw null; } }
-        public virtual System.IServiceProvider Services { get { throw null; } }
-        protected virtual void ConfigureClient(System.Net.Http.HttpClient client) { }
-        protected virtual void ConfigureWebHost(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { }
-        public System.Net.Http.HttpClient CreateClient() { throw null; }
-        public System.Net.Http.HttpClient CreateClient(Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryClientOptions options) { throw null; }
-        public System.Net.Http.HttpClient CreateDefaultClient(params System.Net.Http.DelegatingHandler[] handlers) { throw null; }
-        public System.Net.Http.HttpClient CreateDefaultClient(System.Uri baseAddress, params System.Net.Http.DelegatingHandler[] handlers) { throw null; }
-        protected virtual Microsoft.Extensions.Hosting.IHost CreateHost(Microsoft.Extensions.Hosting.IHostBuilder builder) { throw null; }
-        protected virtual Microsoft.Extensions.Hosting.IHostBuilder CreateHostBuilder() { throw null; }
-        protected virtual Microsoft.AspNetCore.TestHost.TestServer CreateServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { throw null; }
-        protected virtual Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateWebHostBuilder() { throw null; }
-        public void Dispose() { }
-        protected virtual void Dispose(bool disposing) { }
-        ~WebApplicationFactory() { }
-        protected virtual System.Collections.Generic.IEnumerable<System.Reflection.Assembly> GetTestAssemblies() { throw null; }
-        public Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory<TEntryPoint> WithWebHostBuilder(System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder> configuration) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Mvc.Testing.Handlers
-{
-    public partial class CookieContainerHandler : System.Net.Http.DelegatingHandler
-    {
-        public CookieContainerHandler() { }
-        public CookieContainerHandler(System.Net.CookieContainer cookieContainer) { }
-        public System.Net.CookieContainer Container { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-    public partial class RedirectHandler : System.Net.Http.DelegatingHandler
-    {
-        public RedirectHandler() { }
-        public RedirectHandler(int maxRedirects) { }
-        public int MaxRedirects { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-}
diff --git a/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.Manual.cs b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..95ab268f5851ca30451948ee54e54405e4e32944
--- /dev/null
+++ b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.Manual.cs
@@ -0,0 +1,612 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Components
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ComponentParameter
+    {
+        private object _dummy;
+        public string Assembly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string TypeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public static (System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parameterDefinitions, System.Collections.Generic.IList<object> parameterValues) FromParameterView(Microsoft.AspNetCore.Components.ParameterView parameters) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ServerComponent
+    {
+        private object _dummy;
+        private int _dummyPrimitive;
+        public ServerComponent(int sequence, string assemblyName, string typeName, System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parametersDefinitions, System.Collections.Generic.IList<object> parameterValues, System.Guid invocationId) { throw null; }
+        public string AssemblyName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Guid InvocationId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> ParameterDefinitions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IList<object> ParameterValues { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string TypeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ServerComponentMarker
+    {
+        public const string ServerMarkerType = "server";
+        private object _dummy;
+        private int _dummyPrimitive;
+        public string Descriptor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string PrerenderId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int? Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Components.ServerComponentMarker GetEndRecord() { throw null; }
+        public static Microsoft.AspNetCore.Components.ServerComponentMarker NonPrerendered(int sequence, string descriptor) { throw null; }
+        public static Microsoft.AspNetCore.Components.ServerComponentMarker Prerendered(int sequence, string descriptor) { throw null; }
+    }
+    internal static partial class ServerComponentSerializationSettings
+    {
+        public static readonly System.TimeSpan DataExpiration;
+        public const string DataProtectionProviderPurpose = "Microsoft.AspNetCore.Components.ComponentDescriptorSerializer,V1";
+        public static readonly System.Text.Json.JsonSerializerOptions JsonSerializationOptions;
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ViewComponents
+{
+    internal partial class DefaultViewComponentActivator : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator
+    {
+        public DefaultViewComponentActivator(Microsoft.AspNetCore.Mvc.Infrastructure.ITypeActivatorCache typeActivatorCache) { }
+        public object Create(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) { throw null; }
+        public void Release(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent) { }
+    }
+    public partial class DefaultViewComponentHelper : Microsoft.AspNetCore.Mvc.IViewComponentHelper, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware
+    {
+        internal System.Collections.Generic.IDictionary<string, object> GetArgumentDictionary(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor descriptor, object arguments) { throw null; }
+    }
+    internal partial class DefaultViewComponentInvokerFactory : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvokerFactory
+    {
+        public DefaultViewComponentInvokerFactory(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory viewComponentFactory, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentInvokerCache viewComponentInvokerCache, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker CreateInstance(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) { throw null; }
+    }
+    internal partial class ViewComponentInvokerCache
+    {
+        public ViewComponentInvokerCache(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider collectionProvider) { }
+        internal Microsoft.Extensions.Internal.ObjectMethodExecutor GetViewComponentMethodExecutor(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers
+{
+    internal partial class PagedBufferedTextWriter : System.IO.TextWriter
+    {
+        public PagedBufferedTextWriter(System.Buffers.ArrayPool<char> pool, System.IO.TextWriter inner) { }
+        public override System.Text.Encoding Encoding { get { throw null; } }
+        protected override void Dispose(bool disposing) { }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync() { throw null; }
+        public override void Write(char value) { }
+        public override void Write(char[] buffer) { }
+        public override void Write(char[] buffer, int index, int count) { }
+        public override void Write(string value) { }
+        public override System.Threading.Tasks.Task WriteAsync(char value) { throw null; }
+        public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) { throw null; }
+        public override System.Threading.Tasks.Task WriteAsync(string value) { throw null; }
+    }
+    internal partial class CharArrayBufferSource : Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ICharBufferSource
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.CharArrayBufferSource Instance;
+        public CharArrayBufferSource() { }
+        public char[] Rent(int bufferSize) { throw null; }
+        public void Return(char[] buffer) { }
+    }
+    internal partial interface ICharBufferSource
+    {
+        char[] Rent(int bufferSize);
+        void Return(char[] buffer);
+    }
+    internal partial class PagedCharBuffer
+    {
+        public const int PageSize = 1024;
+        public PagedCharBuffer(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ICharBufferSource bufferSource) { }
+        public Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ICharBufferSource BufferSource { get { throw null; } }
+        public int Length { get { throw null; } }
+        public System.Collections.Generic.List<char[]> Pages { get { throw null; } }
+        public void Append(char value) { }
+        public void Append(char[] buffer, int index, int count) { }
+        public void Append(string value) { }
+        public void Clear() { }
+        public void Dispose() { }
+    }
+    internal partial class ViewBuffer : Microsoft.AspNetCore.Html.IHtmlContentBuilder
+    {
+        public static readonly int PartialViewPageSize;
+        public static readonly int TagHelperPageSize;
+        public static readonly int ViewComponentPageSize;
+        public static readonly int ViewPageSize;
+        public ViewBuffer(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, string name, int pageSize) { }
+        public int Count { get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferPage this[int index] { get { throw null; } }
+        public Microsoft.AspNetCore.Html.IHtmlContentBuilder Append(string unencoded) { throw null; }
+        public Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent content) { throw null; }
+        public Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(string encoded) { throw null; }
+        public Microsoft.AspNetCore.Html.IHtmlContentBuilder Clear() { throw null; }
+        public void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) { }
+        public void MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) { }
+        public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) { }
+        public System.Threading.Tasks.Task WriteToAsync(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) { throw null; }
+    }
+    internal partial class ViewBufferTextWriter : System.IO.TextWriter
+    {
+        public ViewBufferTextWriter(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBuffer buffer, System.Text.Encoding encoding) { }
+        public ViewBufferTextWriter(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBuffer buffer, System.Text.Encoding encoding, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.IO.TextWriter inner) { }
+        public Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBuffer Buffer { get { throw null; } }
+        public override System.Text.Encoding Encoding { get { throw null; } }
+        public bool Flushed { get { throw null; } }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync() { throw null; }
+        public void Write(Microsoft.AspNetCore.Html.IHtmlContent value) { }
+        public void Write(Microsoft.AspNetCore.Html.IHtmlContentContainer value) { }
+        public override void Write(char value) { }
+        public override void Write(char[] buffer, int index, int count) { }
+        public override void Write(object value) { }
+        public override void Write(string value) { }
+        public override System.Threading.Tasks.Task WriteAsync(char value) { throw null; }
+        public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) { throw null; }
+        public override System.Threading.Tasks.Task WriteAsync(string value) { throw null; }
+        public override void WriteLine() { }
+        public override void WriteLine(object value) { }
+        public override void WriteLine(string value) { }
+        public override System.Threading.Tasks.Task WriteLineAsync() { throw null; }
+        public override System.Threading.Tasks.Task WriteLineAsync(char value) { throw null; }
+        public override System.Threading.Tasks.Task WriteLineAsync(char[] value, int start, int offset) { throw null; }
+        public override System.Threading.Tasks.Task WriteLineAsync(string value) { throw null; }
+    }
+    internal partial class ViewBufferPage
+    {
+        public ViewBufferPage(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] buffer) { }
+        public Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] Buffer { get { throw null; } }
+        public int Capacity { get { throw null; } }
+        public int Count { get { throw null; } set { } }
+        public bool IsFull { get { throw null; } }
+        public void Append(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue value) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Filters
+{
+    internal partial class AutoValidateAntiforgeryTokenAuthorizationFilter : Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ValidateAntiforgeryTokenAuthorizationFilter
+    {
+        public AutoValidateAntiforgeryTokenAuthorizationFilter(Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base (default(Microsoft.AspNetCore.Antiforgery.IAntiforgery), default(Microsoft.Extensions.Logging.ILoggerFactory)) { }
+        protected override bool ShouldValidate(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { throw null; }
+    }
+    internal partial class ControllerSaveTempDataPropertyFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        public ControllerSaveTempDataPropertyFilterFactory(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> properties) { }
+        public bool IsReusable { get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> TempDataProperties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal partial class ControllerViewDataAttributeFilter : Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.IViewDataValuesProviderFeature
+    {
+        public ControllerViewDataAttributeFilter(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> properties) { }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public object Subject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) { }
+        public void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) { }
+        public void ProvideViewDataValues(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) { }
+    }
+    internal partial class ControllerViewDataAttributeFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        public ControllerViewDataAttributeFilterFactory(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> properties) { }
+        public bool IsReusable { get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal partial class SaveTempDataFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter
+    {
+        internal static readonly object SaveTempDataFilterContextKey;
+        public SaveTempDataFilter(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory factory) { }
+        public void OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) { }
+        public void OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context) { }
+        public void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) { }
+        public void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) { }
+        internal partial class SaveTempDataContext
+        {
+            public SaveTempDataContext() { }
+            public System.Collections.Generic.IList<Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata> Filters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public bool RequestHasUnhandledException { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory TempDataDictionaryFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public bool TempDataSaved { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        }
+    }
+    internal partial class ControllerSaveTempDataPropertyFilter : Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.SaveTempDataPropertyFilterBase, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata
+    {
+        public ControllerSaveTempDataPropertyFilter(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory factory) : base (default(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory)) { }
+        public void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) { }
+        public void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) { }
+    }
+    internal partial class TempDataApplicationModelProvider
+    {
+        public TempDataApplicationModelProvider(Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+    }
+    internal partial class ValidateAntiforgeryTokenAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
+    {
+        public ValidateAntiforgeryTokenAuthorizationFilter(Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { throw null; }
+        protected virtual bool ShouldValidate(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) { throw null; }
+    }
+    internal partial class ViewDataAttributeApplicationModelProvider
+    {
+        public ViewDataAttributeApplicationModelProvider() { }
+        public int Order { get { throw null; } }
+        public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+        public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+    }
+    internal static partial class ViewDataAttributePropertyProvider
+    {
+        public static System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> GetViewDataProperties(System.Type type) { throw null; }
+    }
+    internal partial interface ISaveTempDataCallback
+    {
+        void OnTempDataSaving(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData);
+    }
+    internal partial interface IViewDataValuesProviderFeature
+    {
+        void ProvideViewDataValues(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData);
+    }
+    internal abstract partial class SaveTempDataPropertyFilterBase : Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ISaveTempDataCallback
+    {
+        protected readonly Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory _tempDataFactory;
+        public SaveTempDataPropertyFilterBase(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory) { }
+        public System.Collections.Generic.IDictionary<System.Reflection.PropertyInfo, object> OriginalValues { get { throw null; } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> Properties { get { throw null; } set { } }
+        public object Subject { get { throw null; } set { } }
+        public static System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.LifecycleProperty> GetTempDataProperties(Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer, System.Type type) { throw null; }
+        public void OnTempDataSaving(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData) { }
+        protected void SetPropertyValues(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct LifecycleProperty
+    {
+        private readonly object _dummy;
+        private readonly int _dummyPrimitive;
+        public LifecycleProperty(System.Reflection.PropertyInfo propertyInfo, string key) { throw null; }
+        public string Key { get { throw null; } }
+        public System.Reflection.PropertyInfo PropertyInfo { get { throw null; } }
+        public object GetValue(object instance) { throw null; }
+        public void SetValue(object instance, object value) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ViewFeatures
+{
+    internal static partial class CachedExpressionCompiler
+    {
+        public static System.Func<TModel, object> Process<TModel, TResult>(System.Linq.Expressions.Expression<System.Func<TModel, TResult>> expression) { throw null; }
+    }
+    internal partial class ComponentRenderer : Microsoft.AspNetCore.Mvc.ViewFeatures.IComponentRenderer
+    {
+        public ComponentRenderer(Microsoft.AspNetCore.Mvc.ViewFeatures.StaticComponentRenderer staticComponentRenderer, Microsoft.AspNetCore.Mvc.ViewFeatures.ServerComponentSerializer serverComponentSerializer) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Html.IHtmlContent> RenderComponentAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.Type componentType, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) { throw null; }
+    }
+    internal static partial class DefaultDisplayTemplates
+    {
+        public static Microsoft.AspNetCore.Html.IHtmlContent BooleanTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent CollectionTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent DecimalTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent EmailAddressTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent HiddenInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent HtmlTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent ObjectTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent StringTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        internal static System.Collections.Generic.List<Microsoft.AspNetCore.Mvc.Rendering.SelectListItem> TriStateValues(bool? value) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent UrlTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+    }
+    internal static partial class DefaultEditorTemplates
+    {
+        public static Microsoft.AspNetCore.Html.IHtmlContent BooleanTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent CollectionTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent DateInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent DateTimeLocalInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent DateTimeOffsetTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent DecimalTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent EmailAddressInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent FileCollectionInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent FileInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent HiddenInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent MonthInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent MultilineTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent NumberInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent ObjectTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent PasswordTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent PhoneNumberInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent StringTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent TimeInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent UrlInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+        public static Microsoft.AspNetCore.Html.IHtmlContent WeekInputTemplate(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) { throw null; }
+    }
+    internal static partial class ExpressionHelper
+    {
+        public static string GetExpressionText(System.Linq.Expressions.LambdaExpression expression, System.Collections.Concurrent.ConcurrentDictionary<System.Linq.Expressions.LambdaExpression, string> expressionTextCache) { throw null; }
+        public static string GetUncachedExpressionText(System.Linq.Expressions.LambdaExpression expression) { throw null; }
+        public static bool IsSingleArgumentIndexer(System.Linq.Expressions.Expression expression) { throw null; }
+    }
+    internal static partial class ExpressionMetadataProvider
+    {
+        public static Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer FromLambdaExpression<TModel, TResult>(System.Linq.Expressions.Expression<System.Func<TModel, TResult>> expression, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<TModel> viewData, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) { throw null; }
+        public static Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer FromStringExpression(string expression, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) { throw null; }
+    }
+    internal partial class HtmlAttributePropertyHelper : Microsoft.Extensions.Internal.PropertyHelper
+    {
+        public HtmlAttributePropertyHelper(System.Reflection.PropertyInfo property) : base (default(System.Reflection.PropertyInfo)) { }
+        public override string Name { get { throw null; } protected set { } }
+        public static new Microsoft.Extensions.Internal.PropertyHelper[] GetProperties(System.Type type) { throw null; }
+    }
+    internal partial class HttpNavigationManager : Microsoft.AspNetCore.Components.NavigationManager, Microsoft.AspNetCore.Components.Routing.IHostEnvironmentNavigationManager
+    {
+        public HttpNavigationManager() { }
+        void Microsoft.AspNetCore.Components.Routing.IHostEnvironmentNavigationManager.Initialize(string baseUri, string uri) { }
+        protected override void NavigateToCore(string uri, bool forceLoad) { }
+    }
+    internal partial interface IComponentRenderer
+    {
+        System.Threading.Tasks.Task<Microsoft.AspNetCore.Html.IHtmlContent> RenderComponentAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.Type componentType, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters);
+    }
+    internal partial class LambdaExpressionComparer : System.Collections.Generic.IEqualityComparer<System.Linq.Expressions.LambdaExpression>
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.LambdaExpressionComparer Instance;
+        public LambdaExpressionComparer() { }
+        public bool Equals(System.Linq.Expressions.LambdaExpression lambdaExpression1, System.Linq.Expressions.LambdaExpression lambdaExpression2) { throw null; }
+        public int GetHashCode(System.Linq.Expressions.LambdaExpression lambdaExpression) { throw null; }
+    }
+    internal partial class MemberExpressionCacheKeyComparer : System.Collections.Generic.IEqualityComparer<Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKey>
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKeyComparer Instance;
+        public MemberExpressionCacheKeyComparer() { }
+        public bool Equals(Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKey x, Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKey y) { throw null; }
+        public int GetHashCode(Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKey obj) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct MemberExpressionCacheKey
+    {
+        private readonly object _dummy;
+        public MemberExpressionCacheKey(System.Type modelType, System.Linq.Expressions.MemberExpression memberExpression) { throw null; }
+        public MemberExpressionCacheKey(System.Type modelType, System.Reflection.MemberInfo[] members) { throw null; }
+        public System.Linq.Expressions.MemberExpression MemberExpression { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Reflection.MemberInfo[] Members { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Type ModelType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKey.Enumerator GetEnumerator() { throw null; }
+        public Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKey MakeCacheable() { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct Enumerator
+        {
+            private readonly System.Reflection.MemberInfo[] _members;
+            private int _index;
+            public Enumerator(in Microsoft.AspNetCore.Mvc.ViewFeatures.MemberExpressionCacheKey key) { throw null; }
+            public System.Reflection.MemberInfo Current { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public bool MoveNext() { throw null; }
+        }
+    }
+    internal static partial class Resources
+    {
+        internal static string ArgumentCannotBeNullOrEmpty { get { throw null; } }
+        internal static string ArgumentPropertyUnexpectedType { get { throw null; } }
+        internal static string Common_PartialViewNotFound { get { throw null; } }
+        internal static string Common_PropertyNotFound { get { throw null; } }
+        internal static string Common_TriState_False { get { throw null; } }
+        internal static string Common_TriState_NotSet { get { throw null; } }
+        internal static string Common_TriState_True { get { throw null; } }
+        internal static string CreateModelExpression_NullModelMetadata { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string DeserializingTempData { get { throw null; } }
+        internal static string Dictionary_DuplicateKey { get { throw null; } }
+        internal static string DynamicViewData_ViewDataNull { get { throw null; } }
+        internal static string ExpressionHelper_InvalidIndexerExpression { get { throw null; } }
+        internal static string HtmlGenerator_FieldNameCannotBeNullOrEmpty { get { throw null; } }
+        internal static string HtmlHelper_MissingSelectData { get { throw null; } }
+        internal static string HtmlHelper_NotContextualized { get { throw null; } }
+        internal static string HtmlHelper_NullModelMetadata { get { throw null; } }
+        internal static string HtmlHelper_SelectExpressionNotEnumerable { get { throw null; } }
+        internal static string HtmlHelper_TextAreaParameterOutOfRange { get { throw null; } }
+        internal static string HtmlHelper_TypeNotSupported_ForGetEnumSelectList { get { throw null; } }
+        internal static string HtmlHelper_WrongSelectDataType { get { throw null; } }
+        internal static string PropertyOfTypeCannotBeNull { get { throw null; } }
+        internal static string RemoteAttribute_NoUrlFound { get { throw null; } }
+        internal static string RemoteAttribute_RemoteValidationFailed { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string SerializingTempData { get { throw null; } }
+        internal static string TempDataProperties_InvalidType { get { throw null; } }
+        internal static string TempDataProperties_PublicGetterSetter { get { throw null; } }
+        internal static string TempData_CannotDeserializeType { get { throw null; } }
+        internal static string TempData_CannotSerializeType { get { throw null; } }
+        internal static string TemplatedExpander_PopulateValuesMustBeInvokedFirst { get { throw null; } }
+        internal static string TemplatedExpander_ValueFactoryCannotReturnNull { get { throw null; } }
+        internal static string TemplatedViewLocationExpander_NoReplacementToken { get { throw null; } }
+        internal static string TemplateHelpers_NoTemplate { get { throw null; } }
+        internal static string TemplateHelpers_TemplateLimitations { get { throw null; } }
+        internal static string Templates_TypeMustImplementIEnumerable { get { throw null; } }
+        internal static string TypeMethodMustReturnNotNullValue { get { throw null; } }
+        internal static string TypeMustDeriveFromType { get { throw null; } }
+        internal static string UnobtrusiveJavascript_ValidationParameterCannotBeEmpty { get { throw null; } }
+        internal static string UnobtrusiveJavascript_ValidationParameterMustBeLegal { get { throw null; } }
+        internal static string UnobtrusiveJavascript_ValidationTypeCannotBeEmpty { get { throw null; } }
+        internal static string UnobtrusiveJavascript_ValidationTypeMustBeLegal { get { throw null; } }
+        internal static string UnobtrusiveJavascript_ValidationTypeMustBeUnique { get { throw null; } }
+        internal static string ValueInterfaceAbstractOrOpenGenericTypesCannotBeActivated { get { throw null; } }
+        internal static string ViewComponentResult_NameOrTypeMustBeSet { get { throw null; } }
+        internal static string ViewComponent_AmbiguousMethods { get { throw null; } }
+        internal static string ViewComponent_AmbiguousTypeMatch { get { throw null; } }
+        internal static string ViewComponent_AmbiguousTypeMatch_Item { get { throw null; } }
+        internal static string ViewComponent_AsyncMethod_ShouldReturnTask { get { throw null; } }
+        internal static string ViewComponent_CannotFindComponent { get { throw null; } }
+        internal static string ViewComponent_CannotFindMethod { get { throw null; } }
+        internal static string ViewComponent_InvalidReturnValue { get { throw null; } }
+        internal static string ViewComponent_IViewComponentFactory_ReturnedNull { get { throw null; } }
+        internal static string ViewComponent_MustReturnValue { get { throw null; } }
+        internal static string ViewComponent_SyncMethod_CannotReturnTask { get { throw null; } }
+        internal static string ViewComponent_SyncMethod_ShouldReturnValue { get { throw null; } }
+        internal static string ViewData_ModelCannotBeNull { get { throw null; } }
+        internal static string ViewData_WrongTModelType { get { throw null; } }
+        internal static string ViewEnginesAreRequired { get { throw null; } }
+        internal static string ViewEngine_PartialViewNotFound { get { throw null; } }
+        internal static string ViewEngine_ViewNotFound { get { throw null; } }
+        internal static string FormatArgumentPropertyUnexpectedType(object p0, object p1, object p2) { throw null; }
+        internal static string FormatCommon_PartialViewNotFound(object p0, object p1) { throw null; }
+        internal static string FormatCommon_PropertyNotFound(object p0, object p1) { throw null; }
+        internal static string FormatCreateModelExpression_NullModelMetadata(object p0, object p1) { throw null; }
+        internal static string FormatDictionary_DuplicateKey(object p0) { throw null; }
+        internal static string FormatExpressionHelper_InvalidIndexerExpression(object p0, object p1) { throw null; }
+        internal static string FormatHtmlGenerator_FieldNameCannotBeNullOrEmpty(object p0, object p1, object p2, object p3, object p4) { throw null; }
+        internal static string FormatHtmlHelper_MissingSelectData(object p0, object p1) { throw null; }
+        internal static string FormatHtmlHelper_NullModelMetadata(object p0) { throw null; }
+        internal static string FormatHtmlHelper_SelectExpressionNotEnumerable(object p0) { throw null; }
+        internal static string FormatHtmlHelper_TypeNotSupported_ForGetEnumSelectList(object p0, object p1, object p2) { throw null; }
+        internal static string FormatHtmlHelper_WrongSelectDataType(object p0, object p1, object p2) { throw null; }
+        internal static string FormatPropertyOfTypeCannotBeNull(object p0, object p1) { throw null; }
+        internal static string FormatRemoteAttribute_RemoteValidationFailed(object p0) { throw null; }
+        internal static string FormatTempDataProperties_InvalidType(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatTempDataProperties_PublicGetterSetter(object p0, object p1, object p2) { throw null; }
+        internal static string FormatTempData_CannotDeserializeType(object p0) { throw null; }
+        internal static string FormatTempData_CannotSerializeType(object p0, object p1) { throw null; }
+        internal static string FormatTemplatedExpander_PopulateValuesMustBeInvokedFirst(object p0, object p1) { throw null; }
+        internal static string FormatTemplatedViewLocationExpander_NoReplacementToken(object p0) { throw null; }
+        internal static string FormatTemplateHelpers_NoTemplate(object p0) { throw null; }
+        internal static string FormatTemplates_TypeMustImplementIEnumerable(object p0, object p1, object p2) { throw null; }
+        internal static string FormatTypeMethodMustReturnNotNullValue(object p0, object p1) { throw null; }
+        internal static string FormatTypeMustDeriveFromType(object p0, object p1) { throw null; }
+        internal static string FormatUnobtrusiveJavascript_ValidationParameterCannotBeEmpty(object p0) { throw null; }
+        internal static string FormatUnobtrusiveJavascript_ValidationParameterMustBeLegal(object p0, object p1) { throw null; }
+        internal static string FormatUnobtrusiveJavascript_ValidationTypeCannotBeEmpty(object p0) { throw null; }
+        internal static string FormatUnobtrusiveJavascript_ValidationTypeMustBeLegal(object p0, object p1) { throw null; }
+        internal static string FormatUnobtrusiveJavascript_ValidationTypeMustBeUnique(object p0) { throw null; }
+        internal static string FormatValueInterfaceAbstractOrOpenGenericTypesCannotBeActivated(object p0, object p1) { throw null; }
+        internal static string FormatViewComponentResult_NameOrTypeMustBeSet(object p0, object p1) { throw null; }
+        internal static string FormatViewComponent_AmbiguousMethods(object p0, object p1, object p2) { throw null; }
+        internal static string FormatViewComponent_AmbiguousTypeMatch(object p0, object p1, object p2) { throw null; }
+        internal static string FormatViewComponent_AmbiguousTypeMatch_Item(object p0, object p1) { throw null; }
+        internal static string FormatViewComponent_AsyncMethod_ShouldReturnTask(object p0, object p1, object p2) { throw null; }
+        internal static string FormatViewComponent_CannotFindComponent(object p0, object p1, object p2, object p3) { throw null; }
+        internal static string FormatViewComponent_CannotFindMethod(object p0, object p1, object p2) { throw null; }
+        internal static string FormatViewComponent_InvalidReturnValue(object p0, object p1, object p2) { throw null; }
+        internal static string FormatViewComponent_IViewComponentFactory_ReturnedNull(object p0) { throw null; }
+        internal static string FormatViewComponent_SyncMethod_CannotReturnTask(object p0, object p1, object p2) { throw null; }
+        internal static string FormatViewComponent_SyncMethod_ShouldReturnValue(object p0, object p1) { throw null; }
+        internal static string FormatViewData_ModelCannotBeNull(object p0) { throw null; }
+        internal static string FormatViewData_WrongTModelType(object p0, object p1) { throw null; }
+        internal static string FormatViewEnginesAreRequired(object p0, object p1, object p2) { throw null; }
+        internal static string FormatViewEngine_PartialViewNotFound(object p0, object p1) { throw null; }
+        internal static string FormatViewEngine_ViewNotFound(object p0, object p1) { throw null; }
+    }
+    internal partial class ServerComponentInvocationSequence
+    {
+        public ServerComponentInvocationSequence() { }
+        public System.Guid Value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int Next() { throw null; }
+    }
+    internal partial class ServerComponentSerializer
+    {
+        public ServerComponentSerializer(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider) { }
+        internal System.Collections.Generic.IEnumerable<string> GetEpilogue(Microsoft.AspNetCore.Components.ServerComponentMarker record) { throw null; }
+        internal System.Collections.Generic.IEnumerable<string> GetPreamble(Microsoft.AspNetCore.Components.ServerComponentMarker record) { throw null; }
+        public Microsoft.AspNetCore.Components.ServerComponentMarker SerializeInvocation(Microsoft.AspNetCore.Mvc.ViewFeatures.ServerComponentInvocationSequence invocationId, System.Type type, bool prerendered) { throw null; }
+    }
+    internal partial class StaticComponentRenderer
+    {
+        public StaticComponentRenderer(System.Text.Encodings.Web.HtmlEncoder encoder) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<string>> PrerenderComponentAsync(Microsoft.AspNetCore.Components.ParameterView parameters, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Type componentType) { throw null; }
+    }
+    internal partial class NullView : Microsoft.AspNetCore.Mvc.ViewEngines.IView
+    {
+        public static readonly Microsoft.AspNetCore.Mvc.ViewFeatures.NullView Instance;
+        public NullView() { }
+        public string Path { get { throw null; } }
+        public System.Threading.Tasks.Task RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) { throw null; }
+    }
+    internal partial class TemplateRenderer
+    {
+        public const string IEnumerableOfIFormFileName = "IEnumerable`IFormFile";
+        public TemplateRenderer(Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, string templateName, bool readOnly) { }
+        public static System.Collections.Generic.IEnumerable<string> GetTypeNames(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, System.Type fieldType) { throw null; }
+        public Microsoft.AspNetCore.Html.IHtmlContent Render() { throw null; }
+    }
+    internal static partial class FormatWeekHelper
+    {
+        public static string GetFormattedWeek(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) { throw null; }
+    }
+    internal partial class UnsupportedJavaScriptRuntime : Microsoft.JSInterop.IJSRuntime
+    {
+        public UnsupportedJavaScriptRuntime() { }
+        public System.Threading.Tasks.ValueTask<TValue> InvokeAsync<TValue>(string identifier, System.Threading.CancellationToken cancellationToken, object[] args) { throw null; }
+        System.Threading.Tasks.ValueTask<TValue> Microsoft.JSInterop.IJSRuntime.InvokeAsync<TValue>(string identifier, object[] args) { throw null; }
+    }
+    public partial class ViewDataDictionary : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IDictionary<string, object>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.IEnumerable
+    {
+        internal ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) { }
+        internal System.Collections.Generic.IDictionary<string, object> Data { get { throw null; } }
+    }
+    internal static partial class ViewDataDictionaryFactory
+    {
+        public static System.Func<Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary> CreateFactory(System.Reflection.TypeInfo modelType) { throw null; }
+        public static System.Func<Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary> CreateNestedFactory(System.Reflection.TypeInfo modelType) { throw null; }
+    }
+    public partial class ViewDataDictionary<TModel> : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary
+    {
+        internal ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) : base (default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider), default(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary)) { }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure
+{
+    internal partial class DefaultTempDataSerializer : Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer
+    {
+        public DefaultTempDataSerializer() { }
+        public override bool CanSerializeType(System.Type type) { throw null; }
+        public override System.Collections.Generic.IDictionary<string, object> Deserialize(byte[] value) { throw null; }
+        public override byte[] Serialize(System.Collections.Generic.IDictionary<string, object> values) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Mvc.Rendering
+{
+    internal partial class SystemTextJsonHelper : Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper
+    {
+        public SystemTextJsonHelper(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.JsonOptions> options) { }
+        public Microsoft.AspNetCore.Html.IHtmlContent Serialize(object value) { throw null; }
+    }
+}
+namespace Microsoft.Extensions.DependencyInjection
+{
+    public static partial class MvcViewFeaturesMvcCoreBuilderExtensions
+    {
+        internal static void AddViewComponentApplicationPartsProviders(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager manager) { }
+        internal static void AddViewServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { }
+    }
+    internal partial class MvcViewOptionsSetup
+    {
+        public MvcViewOptionsSetup(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions> dataAnnotationLocalizationOptions, Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider validationAttributeAdapterProvider) { }
+        public MvcViewOptionsSetup(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions> dataAnnotationOptions, Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider validationAttributeAdapterProvider, Microsoft.Extensions.Localization.IStringLocalizerFactory stringLocalizerFactory) { }
+        public void Configure(Microsoft.AspNetCore.Mvc.MvcViewOptions options) { }
+    }
+    internal partial class TempDataMvcOptionsSetup
+    {
+        public TempDataMvcOptionsSetup() { }
+        public void Configure(Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Rendering
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct ComponentRenderedText
+    {
+        private readonly object _dummy;
+        private readonly int _dummyPrimitive;
+        public ComponentRenderedText(int componentId, System.Collections.Generic.IEnumerable<string> tokens) { throw null; }
+        public int ComponentId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerable<string> Tokens { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class HtmlRenderer : Microsoft.AspNetCore.Components.RenderTree.Renderer
+    {
+        public HtmlRenderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Func<string, string> htmlEncoder) : base (default(System.IServiceProvider), default(Microsoft.Extensions.Logging.ILoggerFactory)) { }
+        public override Microsoft.AspNetCore.Components.Dispatcher Dispatcher { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        protected override void HandleException(System.Exception exception) { }
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Components.Rendering.ComponentRenderedText> RenderComponentAsync(System.Type componentType, Microsoft.AspNetCore.Components.ParameterView initialParameters) { throw null; }
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Components.Rendering.ComponentRenderedText> RenderComponentAsync<TComponent>(Microsoft.AspNetCore.Components.ParameterView initialParameters) where TComponent : Microsoft.AspNetCore.Components.IComponent { throw null; }
+        protected override System.Threading.Tasks.Task UpdateDisplayAsync(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch renderBatch) { throw null; }
+    }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj
index b6c9f4916ce7d80656b74388d0a44fc25b46db8d..ff1c23b2a87ea1f8c3ddf85c1a435079f3d5b8b8 100644
--- a/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj
+++ b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj
@@ -5,14 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.DataAnnotations"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Antiforgery"  />
-    <Reference Include="Microsoft.AspNetCore.Diagnostics.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Html.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.WebEncoders"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Web"  />
+    <Compile Include="Microsoft.AspNetCore.Mvc.ViewFeatures.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Core" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Antiforgery" />
+    <Reference Include="Microsoft.AspNetCore.Diagnostics.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Html.Abstractions" />
+    <Reference Include="Microsoft.Extensions.WebEncoders" />
+    <Reference Include="Microsoft.AspNetCore.Components.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Components.Web" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj b/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj
index 8d9b65b94bb6260377c7542d65494d8c9b10297b..56f7a39218150455de2bb6d8647741515cffc863 100644
--- a/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj
+++ b/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj
@@ -14,7 +14,7 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc</PackageTags>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
@@ -31,9 +31,9 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Compile Include="$(RepoRoot)src\Shared\Components\ServerComponentSerializationSettings.cs" />
-    <Compile Include="$(RepoRoot)src\Shared\Components\ServerComponentMarker.cs" />
-    <Compile Include="$(RepoRoot)src\Shared\Components\ServerComponent.cs" />
+    <Compile Include="$(SharedSourceRoot)Components\ServerComponentSerializationSettings.cs" />
+    <Compile Include="$(SharedSourceRoot)Components\ServerComponentMarker.cs" />
+    <Compile Include="$(SharedSourceRoot)Components\ServerComponent.cs" />
     <Compile Include="$(RepoRoot)src\Shared\Components\ComponentParameter.cs" />
   </ItemGroup>
 
diff --git a/src/Mvc/Mvc/ref/Microsoft.AspNetCore.Mvc.csproj b/src/Mvc/Mvc/ref/Microsoft.AspNetCore.Mvc.csproj
index 6098d80e5b82753ba9f7d2d7d70fbf0f2009b172..45b5b4772b74a6036917e23c45a8c4826fd0c6fa 100644
--- a/src/Mvc/Mvc/ref/Microsoft.AspNetCore.Mvc.csproj
+++ b/src/Mvc/Mvc/ref/Microsoft.AspNetCore.Mvc.csproj
@@ -5,15 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Mvc.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc.ApiExplorer"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Cors"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.DataAnnotations"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Formatters.Json"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.Localization"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.RazorPages"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.TagHelpers"  />
-    <Reference Include="Microsoft.AspNetCore.Mvc.ViewFeatures"  />
-    <Reference Include="Microsoft.Extensions.Caching.Memory"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.ApiExplorer" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Cors" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.Localization" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.RazorPages" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.TagHelpers" />
+    <Reference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" />
+    <Reference Include="Microsoft.Extensions.Caching.Memory" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj b/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj
index 687b24a6f9b63d16c956897c5fa829066d84cee6..fbc44beae3c5c7c46bbdc4dab5c7f408d73bb9e1 100644
--- a/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj
+++ b/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj
@@ -6,7 +6,7 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;aspnetcoremvc</PackageTags>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Mvc/Mvc/test/Microsoft.AspNetCore.Mvc.Test.csproj b/src/Mvc/Mvc/test/Microsoft.AspNetCore.Mvc.Test.csproj
index 8cc541a4aeab314a23b3857ca2cea7094704ea1f..2b13fa1d451b62985cd8e3d71289e2fade65559f 100644
--- a/src/Mvc/Mvc/test/Microsoft.AspNetCore.Mvc.Test.csproj
+++ b/src/Mvc/Mvc/test/Microsoft.AspNetCore.Mvc.Test.csproj
@@ -12,7 +12,6 @@
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Mvc" />
     <Reference Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" />
-
     <Reference Include="Microsoft.Extensions.Logging" />
   </ItemGroup>
 </Project>
diff --git a/src/Mvc/test/Mvc.FunctionalTests/AuthMiddlewareUsingRequireAuthTest.cs b/src/Mvc/test/Mvc.FunctionalTests/AuthMiddlewareUsingRequireAuthTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7c8e4fed40f7e061b14102b7918a2548e876cdbb
--- /dev/null
+++ b/src/Mvc/test/Mvc.FunctionalTests/AuthMiddlewareUsingRequireAuthTest.cs
@@ -0,0 +1,80 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Hosting;
+using Xunit;
+
+namespace Microsoft.AspNetCore.Mvc.FunctionalTests
+{
+    public class AuthMiddlewareUsingRequireAuthTest : IClassFixture<MvcTestFixture<SecurityWebSite.StartupWithRequireAuth>>
+    {
+        public AuthMiddlewareUsingRequireAuthTest(MvcTestFixture<SecurityWebSite.StartupWithRequireAuth> fixture)
+        {
+            var factory = fixture.Factories.FirstOrDefault() ?? fixture.WithWebHostBuilder(ConfigureWebHostBuilder);
+            Client = factory.CreateDefaultClient();
+        }
+
+        private static void ConfigureWebHostBuilder(IWebHostBuilder builder) =>
+            builder.UseStartup<SecurityWebSite.StartupWithRequireAuth>();
+
+        public HttpClient Client { get; }
+
+        [Fact]
+        public async Task RequireAuthConfiguredGlobally_AppliesToControllers()
+        {
+            // Arrange
+            var action = "Home/Index";
+            var response = await Client.GetAsync(action);
+
+            await AssertAuthorizeResponse(response);
+
+            // We should be able to login with ClaimA alone
+            var authCookie = await GetAuthCookieAsync("LoginClaimA");
+
+            var request = new HttpRequestMessage(HttpMethod.Get, action);
+            request.Headers.Add("Cookie", authCookie);
+
+            response = await Client.SendAsync(request);
+            await response.AssertStatusCodeAsync(HttpStatusCode.OK);
+        }
+
+        [Fact]
+        public async Task RequireAuthConfiguredGlobally_AppliesToRazorPages()
+        {
+            // Arrange
+            var action = "PagesHome";
+            var response = await Client.GetAsync(action);
+
+            await AssertAuthorizeResponse(response);
+
+            // We should be able to login with ClaimA alone
+            var authCookie = await GetAuthCookieAsync("LoginClaimA");
+
+            var request = new HttpRequestMessage(HttpMethod.Get, action);
+            request.Headers.Add("Cookie", authCookie);
+
+            response = await Client.SendAsync(request);
+            await response.AssertStatusCodeAsync(HttpStatusCode.OK);
+        }
+
+        private async Task AssertAuthorizeResponse(HttpResponseMessage response)
+        {
+            await response.AssertStatusCodeAsync(HttpStatusCode.Redirect);
+            Assert.Equal("/Home/Login", response.Headers.Location.LocalPath);
+        }
+
+        private async Task<string> GetAuthCookieAsync(string action)
+        {
+            var response = await Client.PostAsync($"Login/{action}", null);
+
+            await response.AssertStatusCodeAsync(HttpStatusCode.OK);
+            Assert.True(response.Headers.Contains("Set-Cookie"));
+            return response.Headers.GetValues("Set-Cookie").FirstOrDefault();
+        }
+    }
+}
+ 
diff --git a/src/Mvc/test/Mvc.FunctionalTests/ErrorPageTests.cs b/src/Mvc/test/Mvc.FunctionalTests/ErrorPageTests.cs
index 5cd72354c6e3e289acdc4f1bd2ff44aae7d47425..6ca0e5c650fc52e4a9dde2abdbb67962f6102ea0 100644
--- a/src/Mvc/test/Mvc.FunctionalTests/ErrorPageTests.cs
+++ b/src/Mvc/test/Mvc.FunctionalTests/ErrorPageTests.cs
@@ -2,6 +2,7 @@
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
+using System.IO;
 using System.Linq;
 using System.Net;
 using System.Net.Http;
@@ -9,6 +10,8 @@ using System.Net.Http.Headers;
 using System.Text.Encodings.Web;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation;
+using Microsoft.AspNetCore.TestHost;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging.Testing;
@@ -27,6 +30,8 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
             "If you're seeing this in a published application, set 'CopyRefAssembliesToPublishDirectory' to true in your project file to ensure files in the refs directory are published.");
         private readonly AssemblyTestLog _assemblyTestLog;
 
+        private readonly MvcTestFixture<ErrorPageMiddlewareWebSite.Startup> _fixture;
+
         public ErrorPageTests(
             MvcTestFixture<ErrorPageMiddlewareWebSite.Startup> fixture,
             ITestOutputHelper testOutputHelper)
@@ -41,6 +46,8 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
                 .CreateDefaultClient();
             // These tests want to verify runtime compilation and formatting in the HTML of the error page
             Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/html"));
+
+            _fixture = fixture;
         }
 
         public HttpClient Client { get; }
@@ -49,12 +56,18 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
         public async Task CompilationFailuresAreListedByErrorPageMiddleware()
         {
             // Arrange
+            var factory = _fixture.Factories.FirstOrDefault() ?? _fixture.WithWebHostBuilder(b => b.UseStartup<ErrorPageMiddlewareWebSite.Startup>());
+            factory = factory.WithWebHostBuilder(b => b.ConfigureTestServices(serviceCollection => serviceCollection.Configure<MvcRazorRuntimeCompilationOptions>(ConfigureRuntimeCompilationOptions)));
+
+            var client = factory.CreateDefaultClient();
+            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/html"));
+
             var action = "CompilationFailure";
             var expected = "Cannot implicitly convert type &#x27;int&#x27; to &#x27;string&#x27;";
             var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8");
 
             // Act
-            var response = await Client.GetAsync("http://localhost/" + action);
+            var response = await client.GetAsync("http://localhost/" + action);
 
             // Assert
             Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
@@ -63,6 +76,16 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
             Assert.Contains($"{action}.cshtml", content);
             Assert.Contains(expected, content);
             Assert.DoesNotContain(PreserveCompilationContextMessage, content);
+
+            static void ConfigureRuntimeCompilationOptions(MvcRazorRuntimeCompilationOptions options)
+            {
+                // Workaround for incorrectly generated deps file. The build output has all of the binaries required to compile. We'll grab these and
+                // add it to the list of assemblies runtime compilation uses.
+                foreach (var path in Directory.EnumerateFiles(AppContext.BaseDirectory, "*.dll"))
+                {
+                    options.AdditionalReferencePaths.Add(path);
+                }
+            }
         }
 
         [Fact]
diff --git a/src/Mvc/test/Mvc.FunctionalTests/RazorBuildTest.cs b/src/Mvc/test/Mvc.FunctionalTests/RazorBuildTest.cs
index ba90b359476766970344c52731dfcf5d49843879..26ba921a68eabc4b254f177e842b94f248df56ea 100644
--- a/src/Mvc/test/Mvc.FunctionalTests/RazorBuildTest.cs
+++ b/src/Mvc/test/Mvc.FunctionalTests/RazorBuildTest.cs
@@ -3,9 +3,15 @@
 
 using System;
 using System.Collections.Generic;
+using System.IO;
+using System.Linq;
 using System.Net;
 using System.Net.Http;
 using System.Threading.Tasks;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation;
+using Microsoft.AspNetCore.TestHost;
+using Microsoft.Extensions.DependencyInjection;
 using Xunit;
 
 namespace Microsoft.AspNetCore.Mvc.FunctionalTests
@@ -14,7 +20,20 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
     {
         public RazorBuildTest(MvcTestFixture<RazorBuildWebSite.Startup> fixture)
         {
-            Client = fixture.CreateDefaultClient();
+            var factory = fixture.Factories.FirstOrDefault() ?? fixture.WithWebHostBuilder(b => b.UseStartup<RazorBuildWebSite.Startup>());
+            factory = factory.WithWebHostBuilder(b => b.ConfigureTestServices(serviceCollection => serviceCollection.Configure<MvcRazorRuntimeCompilationOptions>(ConfigureRuntimeCompilationOptions)));
+
+            Client = factory.CreateDefaultClient();
+
+            static void ConfigureRuntimeCompilationOptions(MvcRazorRuntimeCompilationOptions options)
+            {
+                // Workaround for incorrectly generated deps file. The build output has all of the binaries required to compile. We'll grab these and
+                // add it to the list of assemblies runtime compilation uses.
+                foreach (var path in Directory.EnumerateFiles(AppContext.BaseDirectory, "*.dll"))
+                {
+                    options.AdditionalReferencePaths.Add(path);
+                }
+            }
         }
 
         public HttpClient Client { get; }
@@ -77,7 +96,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
             var actual2 = body.Trim();
             Assert.NotEqual(expected1, actual2);
 
-            // Act - 3 
+            // Act - 3
             // With all things being the same, expect a cached compilation
             body = await Client.GetStringAsync("/UpdateableViews");
 
diff --git a/src/Mvc/test/WebSites/SecurityWebSite/StartupWithRequireAuth.cs b/src/Mvc/test/WebSites/SecurityWebSite/StartupWithRequireAuth.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6f28bfdd3a0900377c2c0544866a5dfc22cc6bbd
--- /dev/null
+++ b/src/Mvc/test/WebSites/SecurityWebSite/StartupWithRequireAuth.cs
@@ -0,0 +1,44 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Authentication.Cookies;
+using Microsoft.AspNetCore.Authorization.Policy;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace SecurityWebSite
+{
+    public class StartupWithRequireAuth
+    {
+        // This method gets called by the runtime. Use this method to add services to the container.
+        public void ConfigureServices(IServiceCollection services)
+        {
+            // Add framework services.
+            services.AddControllersWithViews().SetCompatibilityVersion(CompatibilityVersion.Latest);
+            services.AddRazorPages();
+            services.AddAntiforgery();
+            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
+            {
+                options.LoginPath = "/Home/Login";
+                options.LogoutPath = "/Home/Logout";
+            })
+            .AddCookie("Cookie2");
+        }
+
+        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
+        public void Configure(IApplicationBuilder app)
+        {
+            app.UseRouting();
+
+            app.UseAuthentication();
+            app.UseAuthorization();
+
+            app.UseEndpoints(endpoints =>
+            {
+                endpoints.MapRazorPages().RequireAuthorization();
+                endpoints.MapDefaultControllerRoute().RequireAuthorization();
+            });
+        }
+    }
+}
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in
index ab090ad09e51387e284fb92960a90dc72463ea9d..5157f8936fdc4c3012c0f098ac30d946d60d960e 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in
+++ b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in
@@ -7,16 +7,16 @@
     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' == 'True'">1</WebProject_DirectoryAccessLevelKey>
     <NoDefaultLaunchSettingsFile Condition="'$(ExcludeLaunchSettings)' == 'True'">True</NoDefaultLaunchSettingsFile>
     <RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace>
+    <CopyRefAssembliesToPublishDirectory Condition="'$(RazorRuntimeCompilation)'=='true'">false</CopyRefAssembliesToPublishDirectory>
   </PropertyGroup>
-
   <!--#if (IndividualLocalAuth && !UseLocalDB) -->
 
-  <!--#endif -->
-  <ItemGroup Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True' ">
+  <ItemGroup>
     <None Update="app.db" CopyToOutputDirectory="PreserveNewest" ExcludeFromSingleFile="true" />
   </ItemGroup>
+  <!--#endif -->
+  <!--#if (IndividualB2CAuth || IndividualLocalAuth || OrganizationalAuth || RazorRuntimeCompilation) -->
 
-  <!--#if (IndividualB2CAuth || IndividualLocalAuth || OrganizationalAuth) -->
   <ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="${MicrosoftAspNetCoreAuthenticationAzureADUIPackageVersion}" Condition="'$(OrganizationalAuth)' == 'True'" />
     <PackageReference Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="${MicrosoftAspNetCoreAuthenticationAzureADB2CUIPackageVersion}" Condition="'$(IndividualB2CAuth)' == 'True'" />
@@ -26,6 +26,7 @@
     <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="${MicrosoftEntityFrameworkCoreSqlitePackageVersion}" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True'" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="${MicrosoftEntityFrameworkCoreSqlServerPackageVersion}" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' == 'True'" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="${MicrosoftEntityFrameworkCoreToolsPackageVersion}" Condition=" '$(IndividualLocalAuth)' == 'True' " />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="${MicrosoftAspNetCoreMvcRazorRuntimeCompilationPackageVersion}" Condition="'$(RazorRuntimeCompilation)' == 'True'" />
   </ItemGroup>
   <!--#endif -->
 
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in
index 70d65ede37c8a600c1aa9053322b8fc5e3b03ed2..9b38d19da0d81540bf451b9f68d14c24e0814159 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in
+++ b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in
@@ -7,16 +7,16 @@
     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' == 'True'">1</WebProject_DirectoryAccessLevelKey>
     <NoDefaultLaunchSettingsFile Condition="'$(ExcludeLaunchSettings)' == 'True'">True</NoDefaultLaunchSettingsFile>
     <RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace>
+    <CopyRefAssembliesToPublishDirectory Condition="'$(RazorRuntimeCompilation)'=='true'">false</CopyRefAssembliesToPublishDirectory>
   </PropertyGroup>
-
   <!--#if (IndividualLocalAuth && !UseLocalDB) -->
 
-  <!--#endif -->
-  <ItemGroup Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True' ">
+  <ItemGroup>
     <None Update="app.db" CopyToOutputDirectory="PreserveNewest" ExcludeFromSingleFile="true" />
   </ItemGroup>
+  <!--#endif -->
+  <!--#if (IndividualB2CAuth || IndividualLocalAuth || OrganizationalAuth || RazorRuntimeCompilation) -->
 
-  <!--#if (IndividualB2CAuth || IndividualLocalAuth || OrganizationalAuth) -->
   <ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="${MicrosoftAspNetCoreAuthenticationAzureADUIPackageVersion}" Condition="'$(OrganizationalAuth)' == 'True'" />
     <PackageReference Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="${MicrosoftAspNetCoreAuthenticationAzureADB2CUIPackageVersion}" Condition="'$(IndividualB2CAuth)' == 'True'" />
@@ -26,6 +26,7 @@
     <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="${MicrosoftEntityFrameworkCoreSqlServerPackageVersion}" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' == 'True'" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="${MicrosoftEntityFrameworkCoreSqlitePackageVersion}" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True'" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="${MicrosoftEntityFrameworkCoreToolsPackageVersion}" Condition=" '$(IndividualLocalAuth)' == 'True' " />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="${MicrosoftAspNetCoreMvcRazorRuntimeCompilationPackageVersion}" Condition="'$(RazorRuntimeCompilation)' == 'True'" />
   </ItemGroup>
   <!--#endif-->
 
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/App.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/App.razor
index 7b58ea096f7298e2232e3920c3ada19745cb8b7b..d3525b251fa1fd5bacefc9927287519e3337554b 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/App.razor
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/App.razor
@@ -1,4 +1,5 @@
-@*#if (NoAuth)
+
+@*#if (NoAuth)
 <Router AppAssembly="@typeof(Program).Assembly">
     <Found Context="routeData">
         <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Index.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Index.razor
index 16dac31925206033d83028c6bb6116c24074bf0c..e54d914390e1d84037c618ed12048b7915a8beeb 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Index.razor
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Index.razor
@@ -3,3 +3,5 @@
 <h1>Hello, world!</h1>
 
 Welcome to your new app.
+
+<SurveyPrompt Title="How is Blazor working for you?" />
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/SurveyPrompt.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/SurveyPrompt.razor
new file mode 100644
index 0000000000000000000000000000000000000000..e9706c83da6a8bcd83e6fce3cc25ac37ad107c10
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/SurveyPrompt.razor
@@ -0,0 +1,16 @@
+<div class="alert alert-secondary mt-4" role="alert">
+    <span class="oi oi-pencil mr-2" aria-hidden="true"></span>
+    <strong>@Title</strong>
+
+    <span class="text-nowrap">
+        Please take our
+        <a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2112271">brief survey</a>
+    </span>
+    and tell us what you think.
+</div>
+
+@code {
+    // Demonstrates how a parent component can supply parameters
+    [Parameter]
+    public string Title { get; set; }
+}
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json
index c39487b5278c8708412f3b57a0679df76c8210ef..324da5d6ae1bd26c86af4c5bcbe01591dab248c8 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json
@@ -67,6 +67,10 @@
     "NoHttps": {
       "longName": "no-https",
       "shortName": ""
+    },
+    "RazorRuntimeCompilation": {
+      "longName": "razor-runtime-compilation",
+      "shortName": "rrc"
     }
   },
   "usageExamples": [
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json
index 90e8b015624ad72bebdd980daee46f29d9cbda05..2d20ad2d452573b0077116e7c2c2c362e2ec73f3 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json
@@ -304,6 +304,12 @@
       "defaultValue": "false",
       "description": "Whether to use LocalDB instead of SQLite. This option only applies if --auth Individual or --auth IndividualB2C is specified."
     },
+    "RazorRuntimeCompilation": {
+      "type": "parameter",
+      "datatype": "bool",
+      "defaultValue": "false",
+      "description": "Determines if the project is configured to use Razor runtime compilation in Debug builds."
+    },
     "Framework": {
       "type": "parameter",
       "description": "The target framework for the project.",
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json
index 52ba934378ba08b118c9fe197469d07404130109..8ee1e7b87744c46a368016b0fe2208a45f3f921d 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json
@@ -59,6 +59,15 @@
       "useHttps": true
     }
   ],
+  "symbolInfo": [
+    {
+      "id": "RazorRuntimeCompilation",
+      "name": {
+        "text": "Enable _Razor runtime compilation"
+      },
+      "isVisible": "true"
+    }
+  ],
   "excludeLaunchSettings": false,
   "azureReplyUrlPortName": "HttpsPort",
   "minFullFrameworkVersion": "4.6.1",
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Properties/launchSettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Properties/launchSettings.json
index a65eda75e36fa4d3d7259d0651ae0949f1639d18..d40962c82da1db20d318f79a2d91c56faa6c054e 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Properties/launchSettings.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Properties/launchSettings.json
@@ -1,11 +1,11 @@
 {
   "iisSettings": {
-    //#if (WindowsAuth) 
-    "windowsAuthentication": true, 
-    "anonymousAuthentication": false, 
-    //#else 
-    "windowsAuthentication": false, 
-    "anonymousAuthentication": true, 
+    //#if (WindowsAuth)
+    "windowsAuthentication": true,
+    "anonymousAuthentication": false,
+    //#else
+    "windowsAuthentication": false,
+    "anonymousAuthentication": true,
     //#endif
     "iisExpress": {
       "applicationUrl": "http://localhost:8080",
@@ -21,7 +21,12 @@
       "commandName": "IISExpress",
       "launchBrowser": true,
       "environmentVariables": {
+        //#if(RazorRuntimeCompilation)
+        "ASPNETCORE_ENVIRONMENT": "Development",
+        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
+        //#else
         "ASPNETCORE_ENVIRONMENT": "Development"
+        //#endif
       }
     },
     "Company.WebApplication1": {
@@ -33,7 +38,12 @@
       "applicationUrl": "http://localhost:5000",
       //#endif
       "environmentVariables": {
+        //#if(RazorRuntimeCompilation)
+        "ASPNETCORE_ENVIRONMENT": "Development",
+        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
+        //#else
         "ASPNETCORE_ENVIRONMENT": "Development"
+        //#endif
       }
     }
   }
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json
index 247382756857e8176b25d64a52f20375d77210c9..5f4c4c45e525e350e31e6d5b9f1f7cd5a02b3b47 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json
@@ -67,6 +67,10 @@
     "NoHttps": {
       "longName": "no-https",
       "shortName": ""
+    },
+    "RazorRuntimeCompilation": {
+      "longName": "razor-runtime-compilation",
+      "shortName": "rrc"
     }
   },
   "usageExamples": [
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json
index 7f4d444645fca984c9b4a88c6b798b8f91d44da9..b690f80effb1a848173d6a14b5988851859f4f33 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json
@@ -294,6 +294,12 @@
       "defaultValue": "false",
       "description": "Whether to use LocalDB instead of SQLite. This option only applies if --auth Individual or --auth IndividualB2C is specified."
     },
+    "RazorRuntimeCompilation": {
+      "type": "parameter",
+      "datatype": "bool",
+      "defaultValue": "false",
+      "description": "Determines if the project is configured to use Razor runtime compilation in Debug builds."
+    },
     "Framework": {
       "type": "parameter",
       "description": "The target framework for the project.",
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json
index 35b22113a6960b309d2fdaa39a8e6f02c674b516..98149ec9bae19286de7914b774d1561140fe0653 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json
@@ -59,6 +59,15 @@
       "useHttps": true
     }
   ],
+  "symbolInfo": [
+    {
+      "id": "RazorRuntimeCompilation",
+      "name": {
+        "text": "Enable _Razor runtime compilation"
+      },
+      "isVisible": "true"
+    }
+  ],
   "excludeLaunchSettings": false,
   "azureReplyUrlPortName": "HttpsPort",
   "minFullFrameworkVersion": "4.6.1",
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Properties/launchSettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Properties/launchSettings.json
index a65eda75e36fa4d3d7259d0651ae0949f1639d18..d40962c82da1db20d318f79a2d91c56faa6c054e 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Properties/launchSettings.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Properties/launchSettings.json
@@ -1,11 +1,11 @@
 {
   "iisSettings": {
-    //#if (WindowsAuth) 
-    "windowsAuthentication": true, 
-    "anonymousAuthentication": false, 
-    //#else 
-    "windowsAuthentication": false, 
-    "anonymousAuthentication": true, 
+    //#if (WindowsAuth)
+    "windowsAuthentication": true,
+    "anonymousAuthentication": false,
+    //#else
+    "windowsAuthentication": false,
+    "anonymousAuthentication": true,
     //#endif
     "iisExpress": {
       "applicationUrl": "http://localhost:8080",
@@ -21,7 +21,12 @@
       "commandName": "IISExpress",
       "launchBrowser": true,
       "environmentVariables": {
+        //#if(RazorRuntimeCompilation)
+        "ASPNETCORE_ENVIRONMENT": "Development",
+        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
+        //#else
         "ASPNETCORE_ENVIRONMENT": "Development"
+        //#endif
       }
     },
     "Company.WebApplication1": {
@@ -33,7 +38,12 @@
       "applicationUrl": "http://localhost:5000",
       //#endif
       "environmentVariables": {
+        //#if(RazorRuntimeCompilation)
+        "ASPNETCORE_ENVIRONMENT": "Development",
+        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
+        //#else
         "ASPNETCORE_ENVIRONMENT": "Development"
+        //#endif
       }
     }
   }
diff --git a/src/ProjectTemplates/test/BlazorServerTemplateTest.cs b/src/ProjectTemplates/test/BlazorServerTemplateTest.cs
index 463b710ac35bfd8bc0700fafc76a8f34011b7453..1c6239d10ede4868d77654e6b10eebf402c40450 100644
--- a/src/ProjectTemplates/test/BlazorServerTemplateTest.cs
+++ b/src/ProjectTemplates/test/BlazorServerTemplateTest.cs
@@ -146,17 +146,17 @@ namespace Templates.Test
             Browser.Equal("Hello, world!", () => Browser.FindElement(By.TagName("h1")).Text);
 
             // Can navigate to the counter page
-            Browser.FindElement(By.PartialLinkText("Counter")).Click();
+            Browser.Click(By.PartialLinkText("Counter"));
             Browser.Contains("counter", () => Browser.Url);
             Browser.Equal("Counter", () => Browser.FindElement(By.TagName("h1")).Text);
 
             // Clicking the counter button works
             Browser.Equal("Current count: 0", () => Browser.FindElement(By.CssSelector("h1 + p")).Text);
-            Browser.FindElement(By.CssSelector("p+button")).Click();
+            Browser.Click(By.CssSelector("p+button"));
             Browser.Equal("Current count: 1", () => Browser.FindElement(By.CssSelector("h1 + p")).Text);
 
             // Can navigate to the 'fetch data' page
-            Browser.FindElement(By.PartialLinkText("Fetch data")).Click();
+            Browser.Click(By.PartialLinkText("Fetch data"));
             Browser.Contains("fetchdata", () => Browser.Url);
             Browser.Equal("Weather forecast", () => Browser.FindElement(By.TagName("h1")).Text);
 
diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets
index 4fa71306017a91307d816d5805182f42ea421fcb..948108395aaa1444b3f7076a90083bf101d702d2 100644
--- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets
+++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets
@@ -4,7 +4,7 @@
       DependsOnTargets="PrepareForTest"
       Condition="$(DesignTimeBuild) != true">
     <!-- The version of the shared framework. This is used in tests to ensure they run against the shared framework version we just built. -->
-    <!-- If we aren' building the targeting pack, use the baseline version -->
+    <!-- If we aren't building the targeting pack, use the baseline version -->
     <MSBuild Projects="$(RepoRoot)src\Framework\ref\Microsoft.AspNetCore.App.Ref.csproj"
         Targets="_GetPackageVersionInfo"
         SkipNonexistentProjects="false"
@@ -15,7 +15,7 @@
     <!-- Targeting pack version should be the one we just built, if we're building it. Otherwise we use the baseline version -->
     <PropertyGroup>
       <MicrosoftAspNetCoreAppRefPackageVersion Condition="'$(IsTargetingPackBuilding)' != 'false'">%(_TargetingPackVersionInfo.PackageVersion)</MicrosoftAspNetCoreAppRefPackageVersion>
-      <MicrosoftAspNetCoreAppRefPackageVersion Condition="'$(IsTargetingPackBuilding)' == 'false'">$(AspNetCoreBaselineVersion)</MicrosoftAspNetCoreAppRefPackageVersion>
+      <MicrosoftAspNetCoreAppRefPackageVersion Condition="'$(IsTargetingPackBuilding)' == 'false'">$(TargetingPackVersionPrefix)</MicrosoftAspNetCoreAppRefPackageVersion>
     </PropertyGroup>
 
     <!-- Runtime and Ref packs may have separate versions. -->
diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs
index c810a45b684272e4fdaade6a92cb355990438e56..976eef53463fc123647c39a1e615326c8c3f3a54 100644
--- a/src/ProjectTemplates/test/MvcTemplateTest.cs
+++ b/src/ProjectTemplates/test/MvcTemplateTest.cs
@@ -219,5 +219,24 @@ namespace Templates.Test
                 await aspNetProcess.AssertPagesOk(pages);
             }
         }
+
+        [Fact]
+        public async Task MvcTemplate_RazorRuntimeCompilation_BuildsAndPublishes()
+        {
+            Project = await ProjectFactory.GetOrCreateProject("mvc_rc", Output);
+
+            var createResult = await Project.RunDotNetNewAsync("mvc", args: new[] { "--razor-runtime-compilation" });
+            Assert.True(0 == createResult.ExitCode, ErrorMessages.GetFailedProcessMessage("create/restore", Project, createResult));
+
+            // Verify building in debug works
+            var buildResult = await Project.RunDotNetBuildAsync();
+            Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("build", Project, buildResult));
+
+            // Publish builds in "release" configuration. Running publish should ensure we can compile in release and that we can publish without issues.
+            buildResult = await Project.RunDotNetPublishAsync();
+            Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, buildResult));
+
+            Assert.False(Directory.Exists(Path.Combine(Project.TemplatePublishDir, "refs")), "The refs directory should not be published.");
+       }
     }
 }
diff --git a/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj b/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj
index 037552d492708d722bab0a05a90dc50d6d05caab..793022e81755d0ac9aa1e290e9283a391108254f 100644
--- a/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj
+++ b/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj
@@ -23,6 +23,7 @@
     <TestTemplateCreationFolder>TestTemplates\</TestTemplateCreationFolder>
     <TestPackageRestorePath>$([MSBuild]::EnsureTrailingSlash('$(RepoRoot)'))obj\template-restore\</TestPackageRestorePath>
     <TestTemplateTestsProps>TemplateTests.props</TestTemplateTestsProps>
+    <GenerateLoggingTestingAssemblyAttributes>false</GenerateLoggingTestingAssemblyAttributes>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs
index ad7c967d48d66715f2f22da95c240b65b795ca7f..818a57453643d4010addd12434f4ec463c31edd4 100644
--- a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs
+++ b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs
@@ -210,6 +210,29 @@ namespace Templates.Test
             }
         }
 
+        [Fact]
+        public async Task RazorPagesTemplate_RazorRuntimeCompilation_BuildsAndPublishes()
+        {
+            Project = await ProjectFactory.GetOrCreateProject("razorpages_rc", Output);
+
+            var createResult = await Project.RunDotNetNewAsync("razor", args: new[] { "--razor-runtime-compilation" });
+            Assert.True(0 == createResult.ExitCode, ErrorMessages.GetFailedProcessMessage("create/restore", Project, createResult));
+
+            // Verify building in debug works
+            var buildResult = await Project.RunDotNetBuildAsync();
+            Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("build", Project, buildResult));
+
+            // Publish builds in "release" configuration. Running publish should ensure we can compile in release and that we can publish without issues.
+            buildResult = await Project.RunDotNetPublishAsync();
+            Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, buildResult));
+
+            Assert.False(Directory.Exists(Path.Combine(Project.TemplatePublishDir, "refs")), "The refs directory should not be published.");
+
+            // Verify ref assemblies isn't published
+            var refsDirectory = Path.Combine(Project.TemplatePublishDir, "refs");
+            Assert.False(Directory.Exists(refsDirectory), $"{refsDirectory} should not be in the publish output.");
+       }
+
 
         private string ReadFile(string basePath, string path)
         {
diff --git a/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs b/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs
index e630b1f5fd876d9e8cc79fe529ab5b4830044013..bd393b8d5865d40fc6924ab56801e49ce7fa4717 100644
--- a/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs
+++ b/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs
@@ -2,6 +2,7 @@
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
+using System.Diagnostics;
 using System.IO;
 using System.Linq;
 using System.Net;
@@ -193,8 +194,11 @@ namespace Templates.Test.SpaTemplateTest
 
         private static async Task WarmUpServer(AspNetProcess aspNetProcess)
         {
+            var intervalInSeconds = 5;
             var attempt = 0;
-            var maxAttempts = 3;
+            var maxAttempts = 5;
+            var stopwatch = new Stopwatch();
+            stopwatch.Start();
             do
             {
                 try
@@ -203,7 +207,7 @@ namespace Templates.Test.SpaTemplateTest
                     var response = await aspNetProcess.SendRequest("/");
                     if (response.StatusCode == HttpStatusCode.OK)
                     {
-                        break;
+                        return;
                     }
                 }
                 catch (OperationCanceledException)
@@ -212,8 +216,11 @@ namespace Templates.Test.SpaTemplateTest
                 catch (HttpRequestException ex) when (ex.Message.StartsWith("The SSL connection could not be established"))
                 {
                 }
-                await Task.Delay(TimeSpan.FromSeconds(10 * attempt));
+                var currentDelay = intervalInSeconds * attempt;
+                await Task.Delay(TimeSpan.FromSeconds(currentDelay));
             } while (attempt < maxAttempts);
+            stopwatch.Stop();
+            throw new TimeoutException($"Could not contact the server within {stopwatch.Elapsed.TotalSeconds} seconds");
         }
 
         private void UpdatePublishedSettings()
@@ -246,25 +253,25 @@ namespace Templates.Test.SpaTemplateTest
             browser.Equal("Hello, world!", () => browser.FindElement(By.TagName("h1")).Text);
 
             // Can navigate to the counter page
-            browser.FindElement(By.PartialLinkText("Counter")).Click();
+            browser.Click(By.PartialLinkText("Counter"));
             browser.Contains("counter", () => browser.Url);
 
             browser.Equal("Counter", () => browser.FindElement(By.TagName("h1")).Text);
 
             // Clicking the counter button works
             browser.Equal("0", () => browser.FindElement(By.CssSelector("p>strong")).Text);
-            browser.FindElement(By.CssSelector("p+button")).Click();
+            browser.Click(By.CssSelector("p+button")) ;
             browser.Equal("1", () => browser.FindElement(By.CssSelector("p>strong")).Text);
 
             if (visitFetchData)
             {
-                browser.FindElement(By.PartialLinkText("Fetch data")).Click();
+                browser.Click(By.PartialLinkText("Fetch data"));
 
                 if (usesAuth)
                 {
                     // We will be redirected to the identity UI
                     browser.Contains("/Identity/Account/Login", () => browser.Url);
-                    browser.FindElement(By.PartialLinkText("Register as a new user")).Click();
+                    browser.Click(By.PartialLinkText("Register as a new user"));
 
                     var userName = $"{Guid.NewGuid()}@example.com";
                     var password = $"!Test.Password1$";
@@ -272,24 +279,24 @@ namespace Templates.Test.SpaTemplateTest
                     browser.FindElement(By.Name("Input.Email")).SendKeys(userName);
                     browser.FindElement(By.Name("Input.Password")).SendKeys(password);
                     browser.FindElement(By.Name("Input.ConfirmPassword")).SendKeys(password);
-                    browser.FindElement(By.Id("registerSubmit")).Click();
+                    browser.Click(By.Id("registerSubmit"));
 
                     // We will be redirected to the RegisterConfirmation
                     browser.Contains("/Identity/Account/RegisterConfirmation", () => browser.Url);
-                    browser.FindElement(By.PartialLinkText("Click here to confirm your account")).Click();
+                    browser.Click(By.PartialLinkText("Click here to confirm your account"));
 
                     // We will be redirected to the ConfirmEmail
                     browser.Contains("/Identity/Account/ConfirmEmail", () => browser.Url);
 
                     // Now we can login
-                    browser.FindElement(By.PartialLinkText("Login")).Click();
+                    browser.Click(By.PartialLinkText("Login"));
                     browser.Exists(By.Name("Input.Email"));
                     browser.FindElement(By.Name("Input.Email")).SendKeys(userName);
                     browser.FindElement(By.Name("Input.Password")).SendKeys(password);
-                    browser.FindElement(By.Id("login-submit")).Click();
+                    browser.Click(By.Id("login-submit"));
 
                     // Need to navigate to fetch page
-                    browser.FindElement(By.PartialLinkText("Fetch data")).Click();
+                    browser.Click(By.PartialLinkText("Fetch data"));
                 }
 
                 // Can navigate to the 'fetch data' page
diff --git a/src/ProjectTemplates/test/template-baselines.json b/src/ProjectTemplates/test/template-baselines.json
index 618bb27a1f184e717ea1e027b2d24794a738deb4..5d70579fb6ff2a94ed509c0ba7d4c3d25ff55afe 100644
--- a/src/ProjectTemplates/test/template-baselines.json
+++ b/src/ProjectTemplates/test/template-baselines.json
@@ -922,6 +922,7 @@
         "Shared/LoginDisplay.razor",
         "Shared/MainLayout.razor",
         "Shared/NavMenu.razor",
+        "Shared/SurveyPrompt.razor",
         "wwwroot/favicon.ico",
         "wwwroot/css/site.css",
         "wwwroot/css/bootstrap/bootstrap.min.css",
@@ -958,6 +959,7 @@
         "Shared/LoginDisplay.razor",
         "Shared/MainLayout.razor",
         "Shared/NavMenu.razor",
+        "Shared/SurveyPrompt.razor",
         "wwwroot/favicon.ico",
         "wwwroot/css/site.css",
         "wwwroot/css/bootstrap/bootstrap.min.css",
@@ -994,6 +996,7 @@
         "Shared/LoginDisplay.razor",
         "Shared/MainLayout.razor",
         "Shared/NavMenu.razor",
+        "Shared/SurveyPrompt.razor",
         "wwwroot/favicon.ico",
         "wwwroot/css/site.css",
         "wwwroot/css/bootstrap/bootstrap.min.css",
@@ -1029,6 +1032,7 @@
         "Properties/launchSettings.json",
         "Shared/MainLayout.razor",
         "Shared/NavMenu.razor",
+        "Shared/SurveyPrompt.razor",
         "wwwroot/favicon.ico",
         "wwwroot/css/site.css",
         "wwwroot/css/bootstrap/bootstrap.min.css",
@@ -1065,6 +1069,7 @@
         "Shared/LoginDisplay.razor",
         "Shared/MainLayout.razor",
         "Shared/NavMenu.razor",
+        "Shared/SurveyPrompt.razor",
         "wwwroot/favicon.ico",
         "wwwroot/css/site.css",
         "wwwroot/css/bootstrap/bootstrap.min.css",
@@ -1101,6 +1106,7 @@
         "Shared/LoginDisplay.razor",
         "Shared/MainLayout.razor",
         "Shared/NavMenu.razor",
+        "Shared/SurveyPrompt.razor",
         "wwwroot/favicon.ico",
         "wwwroot/css/site.css",
         "wwwroot/css/bootstrap/bootstrap.min.css",
diff --git a/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs
index 8549a23cd4f4ce85a59fa928ead1846d24652cff..56b3976d61ac5b699c2de311eb418a71f49626db 100644
--- a/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs
+++ b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs
@@ -1,23 +1,12 @@
 // Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
-using System.Runtime.CompilerServices;
-using Microsoft.AspNetCore.Razor.TagHelpers;
-
-[assembly: TypeForwardedTo(typeof(DefaultTagHelperContent))]
-[assembly: TypeForwardedTo(typeof(HtmlAttributeNameAttribute))]
-[assembly: TypeForwardedTo(typeof(HtmlAttributeNotBoundAttribute))]
-[assembly: TypeForwardedTo(typeof(HtmlTargetElementAttribute))]
-[assembly: TypeForwardedTo(typeof(ITagHelper))]
-[assembly: TypeForwardedTo(typeof(ITagHelperComponent))]
-[assembly: TypeForwardedTo(typeof(NullHtmlEncoder))]
-[assembly: TypeForwardedTo(typeof(OutputElementHintAttribute))]
-[assembly: TypeForwardedTo(typeof(ReadOnlyTagHelperAttributeList))]
-[assembly: TypeForwardedTo(typeof(RestrictChildrenAttribute))]
-[assembly: TypeForwardedTo(typeof(TagHelper))]
-[assembly: TypeForwardedTo(typeof(TagHelperAttribute))]
-[assembly: TypeForwardedTo(typeof(TagHelperAttributeList))]
-[assembly: TypeForwardedTo(typeof(TagHelperComponent))]
-[assembly: TypeForwardedTo(typeof(TagHelperContent))]
-[assembly: TypeForwardedTo(typeof(TagHelperContext))]
-[assembly: TypeForwardedTo(typeof(TagHelperOutput))]
\ No newline at end of file
+namespace Microsoft.AspNetCore.Razor.Runtime.TagHelpers
+{
+    public partial class TagHelperExecutionContext
+    {
+        internal TagHelperExecutionContext(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task<Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent> GetChildContentAsync(bool useCachedResult, System.Text.Encodings.Web.HtmlEncoder encoder) { throw null; }
+    }
+}
diff --git a/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj
index 066e905b9274705cb008878273976707bcfe2ef1..06658a3da0993d1fbfb7ebcf90d4dc364df7092d 100644
--- a/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj
+++ b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj
@@ -6,7 +6,8 @@
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Razor.Runtime.netcoreapp.cs" />
     <Compile Include="Microsoft.AspNetCore.Razor.Runtime.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Razor"  />
-    <Reference Include="Microsoft.AspNetCore.Html.Abstractions"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Razor" />
+    <Reference Include="Microsoft.AspNetCore.Html.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj b/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj
index b76cada4eec61523fb8b490030a1ee3193ed1053..8b9cdb9c3ac8b2e280446dbca538faef70de0675 100644
--- a/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj
+++ b/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj
@@ -6,7 +6,7 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>$(PackageTags);taghelper;taghelpers</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Razor/Razor/ref/Microsoft.AspNetCore.Razor.Manual.cs b/src/Razor/Razor/ref/Microsoft.AspNetCore.Razor.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3d7f56290c2dfc0b06e9d137bb898938ccc31dc7
--- /dev/null
+++ b/src/Razor/Razor/ref/Microsoft.AspNetCore.Razor.Manual.cs
@@ -0,0 +1,10 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Razor.TagHelpers
+{
+    public partial class TagHelperOutput : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer
+    {
+        internal TagHelperOutput(string tagName) { }
+    }
+}
diff --git a/src/Razor/Razor/ref/Microsoft.AspNetCore.Razor.csproj b/src/Razor/Razor/ref/Microsoft.AspNetCore.Razor.csproj
index 57241da57879de779460be7f920bfae7a033c8fd..bfd4736d1d40f57fe6c071070b4571a428abb1e5 100644
--- a/src/Razor/Razor/ref/Microsoft.AspNetCore.Razor.csproj
+++ b/src/Razor/Razor/ref/Microsoft.AspNetCore.Razor.csproj
@@ -5,7 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Razor.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Html.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources"  />
+    <Compile Include="Microsoft.AspNetCore.Razor.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Html.Abstractions" />
+    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources" />
   </ItemGroup>
 </Project>
diff --git a/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj b/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj
index c13602372b5ff0235f1ee41b215904a66d112c2c..9f8d7443c4a8c5f5db943c1434ef1c2bb49bc94e 100644
--- a/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj
+++ b/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj
@@ -13,7 +13,7 @@ Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>$(PackageTags);taghelper;taghelpers</PackageTags>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
 
     <!-- Required to implement an HtmlEncoder -->
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
diff --git a/src/Security/Authentication/Certificate/ref/Microsoft.AspNetCore.Authentication.Certificate.csproj b/src/Security/Authentication/Certificate/ref/Microsoft.AspNetCore.Authentication.Certificate.csproj
deleted file mode 100644
index eb51fca5b928d581171cb6575c4719f578548397..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Certificate/ref/Microsoft.AspNetCore.Authentication.Certificate.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.Certificate.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/Certificate/ref/Microsoft.AspNetCore.Authentication.Certificate.netcoreapp.cs b/src/Security/Authentication/Certificate/ref/Microsoft.AspNetCore.Authentication.Certificate.netcoreapp.cs
deleted file mode 100644
index b158cdec1bc07c7de4cff1ddc95ae718debcb09e..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Certificate/ref/Microsoft.AspNetCore.Authentication.Certificate.netcoreapp.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.Certificate
-{
-    public static partial class CertificateAuthenticationDefaults
-    {
-        public const string AuthenticationScheme = "Certificate";
-    }
-    public partial class CertificateAuthenticationEvents
-    {
-        public CertificateAuthenticationEvents() { }
-        public System.Func<Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationFailedContext, System.Threading.Tasks.Task> OnAuthenticationFailed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.Certificate.CertificateValidatedContext, System.Threading.Tasks.Task> OnCertificateValidated { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task AuthenticationFailed(Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationFailedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task CertificateValidated(Microsoft.AspNetCore.Authentication.Certificate.CertificateValidatedContext context) { throw null; }
-    }
-    public partial class CertificateAuthenticationFailedContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions>
-    {
-        public CertificateAuthenticationFailedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions)) { }
-        public System.Exception Exception { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class CertificateAuthenticationOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions
-    {
-        public CertificateAuthenticationOptions() { }
-        public Microsoft.AspNetCore.Authentication.Certificate.CertificateTypes AllowedCertificateTypes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Security.Cryptography.X509Certificates.X509ChainTrustMode ChainTrustValidationMode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Security.Cryptography.X509Certificates.X509Certificate2Collection CustomTrustStore { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public new Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationEvents Events { get { throw null; } set { } }
-        public System.Security.Cryptography.X509Certificates.X509RevocationFlag RevocationFlag { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Security.Cryptography.X509Certificates.X509RevocationMode RevocationMode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ValidateCertificateUse { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool ValidateValidityPeriod { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    [System.FlagsAttribute]
-    public enum CertificateTypes
-    {
-        Chained = 1,
-        SelfSigned = 2,
-        All = 3,
-    }
-    public partial class CertificateValidatedContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions>
-    {
-        public CertificateValidatedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions)) { }
-        public System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public static partial class X509Certificate2Extensions
-    {
-        public static bool IsSelfSigned(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class CertificateAuthenticationAppBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCertificate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCertificate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCertificate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCertificate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/Cookies/ref/Microsoft.AspNetCore.Authentication.Cookies.csproj b/src/Security/Authentication/Cookies/ref/Microsoft.AspNetCore.Authentication.Cookies.csproj
index 8d5ccfe0e7b7f16292bfd7c896708bbd7ec946b8..c91c25b03bad9cf1163c73a164de7d3dd82188be 100644
--- a/src/Security/Authentication/Cookies/ref/Microsoft.AspNetCore.Authentication.Cookies.csproj
+++ b/src/Security/Authentication/Cookies/ref/Microsoft.AspNetCore.Authentication.Cookies.csproj
@@ -5,6 +5,6 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authentication.Cookies.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication"  />
+    <Reference Include="Microsoft.AspNetCore.Authentication" />
   </ItemGroup>
 </Project>
diff --git a/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj b/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj
index 609247b5d508c24579e0d22bfd4bc936fab2872d..803c58f408774f226f3ccc520c8f0baaf17673f5 100644
--- a/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj
+++ b/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj
@@ -8,7 +8,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;authentication;security</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Security/Authentication/Core/ref/Microsoft.AspNetCore.Authentication.csproj b/src/Security/Authentication/Core/ref/Microsoft.AspNetCore.Authentication.csproj
index 244a2634e244c9a0ac64865b833cd37782078718..231f1aa55dd4f0c59a25e1b7b6e04f18bf20d124 100644
--- a/src/Security/Authentication/Core/ref/Microsoft.AspNetCore.Authentication.csproj
+++ b/src/Security/Authentication/Core/ref/Microsoft.AspNetCore.Authentication.csproj
@@ -5,12 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authentication.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Core"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Extensions.WebEncoders"  />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Core" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Extensions.WebEncoders" />
   </ItemGroup>
 </Project>
diff --git a/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj b/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj
index a316d97f33fc416c2397cc88f9b68411d0d17aba..e81a55f314c3a882098be0f14805fac04985ef4c 100644
--- a/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj
+++ b/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;authentication;security</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Security/Authentication/Facebook/ref/Microsoft.AspNetCore.Authentication.Facebook.csproj b/src/Security/Authentication/Facebook/ref/Microsoft.AspNetCore.Authentication.Facebook.csproj
deleted file mode 100644
index b321a8165f88aad4ad4532badb9e6ed891be1bb0..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Facebook/ref/Microsoft.AspNetCore.Authentication.Facebook.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.Facebook.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OAuth"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/Facebook/ref/Microsoft.AspNetCore.Authentication.Facebook.netcoreapp.cs b/src/Security/Authentication/Facebook/ref/Microsoft.AspNetCore.Authentication.Facebook.netcoreapp.cs
deleted file mode 100644
index 317640bd93c74150dda94cf4ea76170fe18ca9ed..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Facebook/ref/Microsoft.AspNetCore.Authentication.Facebook.netcoreapp.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.Facebook
-{
-    public static partial class FacebookDefaults
-    {
-        public const string AuthenticationScheme = "Facebook";
-        public static readonly string AuthorizationEndpoint;
-        public static readonly string DisplayName;
-        public static readonly string TokenEndpoint;
-        public static readonly string UserInformationEndpoint;
-    }
-    public partial class FacebookHandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler<Microsoft.AspNetCore.Authentication.Facebook.FacebookOptions>
-    {
-        public FacebookHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Facebook.FacebookOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Facebook.FacebookOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticationTicket> CreateTicketAsync(System.Security.Claims.ClaimsIdentity identity, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse tokens) { throw null; }
-        protected override string FormatScope() { throw null; }
-        protected override string FormatScope(System.Collections.Generic.IEnumerable<string> scopes) { throw null; }
-    }
-    public partial class FacebookOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions
-    {
-        public FacebookOptions() { }
-        public string AppId { get { throw null; } set { } }
-        public string AppSecret { get { throw null; } set { } }
-        public System.Collections.Generic.ICollection<string> Fields { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public bool SendAppSecretProof { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public override void Validate() { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class FacebookAuthenticationOptionsExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddFacebook(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddFacebook(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.Facebook.FacebookOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddFacebook(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.Facebook.FacebookOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddFacebook(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.Facebook.FacebookOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/Google/ref/Microsoft.AspNetCore.Authentication.Google.csproj b/src/Security/Authentication/Google/ref/Microsoft.AspNetCore.Authentication.Google.csproj
deleted file mode 100644
index eb7c734cb8995bad72a847097b5d20757787b2f2..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Google/ref/Microsoft.AspNetCore.Authentication.Google.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.Google.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OAuth"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/Google/ref/Microsoft.AspNetCore.Authentication.Google.netcoreapp.cs b/src/Security/Authentication/Google/ref/Microsoft.AspNetCore.Authentication.Google.netcoreapp.cs
deleted file mode 100644
index 18165e7b5671fe8521c6ee9c32de48ac3456ec33..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Google/ref/Microsoft.AspNetCore.Authentication.Google.netcoreapp.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.Google
-{
-    public partial class GoogleChallengeProperties : Microsoft.AspNetCore.Authentication.OAuth.OAuthChallengeProperties
-    {
-        public static readonly string AccessTypeKey;
-        public static readonly string ApprovalPromptKey;
-        public static readonly string IncludeGrantedScopesKey;
-        public static readonly string LoginHintKey;
-        public static readonly string PromptParameterKey;
-        public GoogleChallengeProperties() { }
-        public GoogleChallengeProperties(System.Collections.Generic.IDictionary<string, string> items) { }
-        public GoogleChallengeProperties(System.Collections.Generic.IDictionary<string, string> items, System.Collections.Generic.IDictionary<string, object> parameters) { }
-        public string AccessType { get { throw null; } set { } }
-        public string ApprovalPrompt { get { throw null; } set { } }
-        public bool? IncludeGrantedScopes { get { throw null; } set { } }
-        public string LoginHint { get { throw null; } set { } }
-        public string Prompt { get { throw null; } set { } }
-    }
-    public static partial class GoogleDefaults
-    {
-        public const string AuthenticationScheme = "Google";
-        public static readonly string AuthorizationEndpoint;
-        public static readonly string DisplayName;
-        public static readonly string TokenEndpoint;
-        public static readonly string UserInformationEndpoint;
-    }
-    public partial class GoogleHandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler<Microsoft.AspNetCore.Authentication.Google.GoogleOptions>
-    {
-        public GoogleHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Google.GoogleOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Google.GoogleOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        protected override string BuildChallengeUrl(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string redirectUri) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticationTicket> CreateTicketAsync(System.Security.Claims.ClaimsIdentity identity, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse tokens) { throw null; }
-    }
-    public partial class GoogleOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions
-    {
-        public GoogleOptions() { }
-        public string AccessType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class GoogleExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddGoogle(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddGoogle(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.Google.GoogleOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddGoogle(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.Google.GoogleOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddGoogle(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.Google.GoogleOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/JwtBearer/ref/Microsoft.AspNetCore.Authentication.JwtBearer.csproj b/src/Security/Authentication/JwtBearer/ref/Microsoft.AspNetCore.Authentication.JwtBearer.csproj
deleted file mode 100644
index b84ff89ea7c08b1bc9657cf0bd4abc51e0519372..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/JwtBearer/ref/Microsoft.AspNetCore.Authentication.JwtBearer.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.JwtBearer.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication"  />
-    <Reference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/JwtBearer/ref/Microsoft.AspNetCore.Authentication.JwtBearer.netcoreapp.cs b/src/Security/Authentication/JwtBearer/ref/Microsoft.AspNetCore.Authentication.JwtBearer.netcoreapp.cs
deleted file mode 100644
index 27d30e350be386540c807c9007063e0cd2458fed..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/JwtBearer/ref/Microsoft.AspNetCore.Authentication.JwtBearer.netcoreapp.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.JwtBearer
-{
-    public partial class AuthenticationFailedContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>
-    {
-        public AuthenticationFailedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions)) { }
-        public System.Exception Exception { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class ForbiddenContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>
-    {
-        public ForbiddenContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions)) { }
-    }
-    public partial class JwtBearerChallengeContext : Microsoft.AspNetCore.Authentication.PropertiesContext<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>
-    {
-        public JwtBearerChallengeContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public System.Exception AuthenticateFailure { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Error { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ErrorDescription { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ErrorUri { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool Handled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public void HandleResponse() { }
-    }
-    public static partial class JwtBearerDefaults
-    {
-        public const string AuthenticationScheme = "Bearer";
-    }
-    public partial class JwtBearerEvents
-    {
-        public JwtBearerEvents() { }
-        public System.Func<Microsoft.AspNetCore.Authentication.JwtBearer.AuthenticationFailedContext, System.Threading.Tasks.Task> OnAuthenticationFailed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerChallengeContext, System.Threading.Tasks.Task> OnChallenge { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.JwtBearer.ForbiddenContext, System.Threading.Tasks.Task> OnForbidden { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.JwtBearer.MessageReceivedContext, System.Threading.Tasks.Task> OnMessageReceived { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.JwtBearer.TokenValidatedContext, System.Threading.Tasks.Task> OnTokenValidated { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task AuthenticationFailed(Microsoft.AspNetCore.Authentication.JwtBearer.AuthenticationFailedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task Challenge(Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerChallengeContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task Forbidden(Microsoft.AspNetCore.Authentication.JwtBearer.ForbiddenContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task MessageReceived(Microsoft.AspNetCore.Authentication.JwtBearer.MessageReceivedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task TokenValidated(Microsoft.AspNetCore.Authentication.JwtBearer.TokenValidatedContext context) { throw null; }
-    }
-    public partial class JwtBearerHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>
-    {
-        public JwtBearerHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        protected new Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerEvents Events { get { throw null; } set { } }
-        protected override System.Threading.Tasks.Task<object> CreateEventsAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticateResult> HandleAuthenticateAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-        protected override System.Threading.Tasks.Task HandleForbiddenAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-    }
-    public partial class JwtBearerOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions
-    {
-        public JwtBearerOptions() { }
-        public string Audience { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Authority { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan AutomaticRefreshInterval { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Net.Http.HttpMessageHandler BackchannelHttpHandler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan BackchannelTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Challenge { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.IConfigurationManager<Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfiguration> ConfigurationManager { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public new Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerEvents Events { get { throw null; } set { } }
-        public bool IncludeErrorDetails { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string MetadataAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan RefreshInterval { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RefreshOnIssuerKeyNotFound { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RequireHttpsMetadata { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool SaveToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IList<Microsoft.IdentityModel.Tokens.ISecurityTokenValidator> SecurityTokenValidators { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.IdentityModel.Tokens.TokenValidationParameters TokenValidationParameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class JwtBearerPostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>
-    {
-        public JwtBearerPostConfigureOptions() { }
-        public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions options) { }
-    }
-    public partial class MessageReceivedContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>
-    {
-        public MessageReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions)) { }
-        public string Token { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class TokenValidatedContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions>
-    {
-        public TokenValidatedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions)) { }
-        public Microsoft.IdentityModel.Tokens.SecurityToken SecurityToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class JwtBearerExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddJwtBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddJwtBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddJwtBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddJwtBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/MicrosoftAccount/ref/Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj b/src/Security/Authentication/MicrosoftAccount/ref/Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj
deleted file mode 100644
index 130cdbbe11610761fa42718c207609c23d8df0ec..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/MicrosoftAccount/ref/Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OAuth"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/MicrosoftAccount/ref/Microsoft.AspNetCore.Authentication.MicrosoftAccount.netcoreapp.cs b/src/Security/Authentication/MicrosoftAccount/ref/Microsoft.AspNetCore.Authentication.MicrosoftAccount.netcoreapp.cs
deleted file mode 100644
index 4337321df76ea24b4bb6cb6c25d212c2aafcd8d0..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/MicrosoftAccount/ref/Microsoft.AspNetCore.Authentication.MicrosoftAccount.netcoreapp.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.MicrosoftAccount
-{
-    public static partial class MicrosoftAccountDefaults
-    {
-        public const string AuthenticationScheme = "Microsoft";
-        public static readonly string AuthorizationEndpoint;
-        public static readonly string DisplayName;
-        public static readonly string TokenEndpoint;
-        public static readonly string UserInformationEndpoint;
-    }
-    public partial class MicrosoftAccountHandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler<Microsoft.AspNetCore.Authentication.MicrosoftAccount.MicrosoftAccountOptions>
-    {
-        public MicrosoftAccountHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.MicrosoftAccount.MicrosoftAccountOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.MicrosoftAccount.MicrosoftAccountOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        protected override string BuildChallengeUrl(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string redirectUri) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticationTicket> CreateTicketAsync(System.Security.Claims.ClaimsIdentity identity, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse tokens) { throw null; }
-    }
-    public partial class MicrosoftAccountOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions
-    {
-        public MicrosoftAccountOptions() { }
-    }
-    public partial class MicrosoftChallengeProperties : Microsoft.AspNetCore.Authentication.OAuth.OAuthChallengeProperties
-    {
-        public static readonly string DomainHintKey;
-        public static readonly string LoginHintKey;
-        public static readonly string PromptKey;
-        public static readonly string ResponseModeKey;
-        public MicrosoftChallengeProperties() { }
-        public MicrosoftChallengeProperties(System.Collections.Generic.IDictionary<string, string> items) { }
-        public MicrosoftChallengeProperties(System.Collections.Generic.IDictionary<string, string> items, System.Collections.Generic.IDictionary<string, object> parameters) { }
-        public string DomainHint { get { throw null; } set { } }
-        public string LoginHint { get { throw null; } set { } }
-        public string Prompt { get { throw null; } set { } }
-        public string ResponseMode { get { throw null; } set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class MicrosoftAccountExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddMicrosoftAccount(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddMicrosoftAccount(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.MicrosoftAccount.MicrosoftAccountOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddMicrosoftAccount(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.MicrosoftAccount.MicrosoftAccountOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddMicrosoftAccount(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.MicrosoftAccount.MicrosoftAccountOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/Negotiate/ref/Microsoft.AspNetCore.Authentication.Negotiate.csproj b/src/Security/Authentication/Negotiate/ref/Microsoft.AspNetCore.Authentication.Negotiate.csproj
deleted file mode 100644
index 1b93b39940a40a9acf3a9d3a4d9677d59ab93114..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Negotiate/ref/Microsoft.AspNetCore.Authentication.Negotiate.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.Negotiate.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication"  />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/Negotiate/ref/Microsoft.AspNetCore.Authentication.Negotiate.netcoreapp.cs b/src/Security/Authentication/Negotiate/ref/Microsoft.AspNetCore.Authentication.Negotiate.netcoreapp.cs
deleted file mode 100644
index 3dc01334234ccb02e0fcb1bd4be7c7063750b9f0..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Negotiate/ref/Microsoft.AspNetCore.Authentication.Negotiate.netcoreapp.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.Negotiate
-{
-    public partial class AuthenticatedContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions>
-    {
-        public AuthenticatedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions)) { }
-    }
-    public partial class AuthenticationFailedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions>
-    {
-        public AuthenticationFailedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public System.Exception Exception { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class ChallengeContext : Microsoft.AspNetCore.Authentication.PropertiesContext<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions>
-    {
-        public ChallengeContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public bool Handled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public void HandleResponse() { }
-    }
-    public static partial class NegotiateDefaults
-    {
-        public const string AuthenticationScheme = "Negotiate";
-    }
-    public partial class NegotiateEvents
-    {
-        public NegotiateEvents() { }
-        public System.Func<Microsoft.AspNetCore.Authentication.Negotiate.AuthenticatedContext, System.Threading.Tasks.Task> OnAuthenticated { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.Negotiate.AuthenticationFailedContext, System.Threading.Tasks.Task> OnAuthenticationFailed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.Negotiate.ChallengeContext, System.Threading.Tasks.Task> OnChallenge { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task Authenticated(Microsoft.AspNetCore.Authentication.Negotiate.AuthenticatedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task AuthenticationFailed(Microsoft.AspNetCore.Authentication.Negotiate.AuthenticationFailedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task Challenge(Microsoft.AspNetCore.Authentication.Negotiate.ChallengeContext context) { throw null; }
-    }
-    public partial class NegotiateHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions>, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler
-    {
-        public NegotiateHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        protected new Microsoft.AspNetCore.Authentication.Negotiate.NegotiateEvents Events { get { throw null; } set { } }
-        protected override System.Threading.Tasks.Task<object> CreateEventsAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticateResult> HandleAuthenticateAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<bool> HandleRequestAsync() { throw null; }
-    }
-    public partial class NegotiateOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions
-    {
-        public NegotiateOptions() { }
-        public new Microsoft.AspNetCore.Authentication.Negotiate.NegotiateEvents Events { get { throw null; } set { } }
-        public bool PersistKerberosCredentials { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool PersistNtlmCredentials { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class PostConfigureNegotiateOptions : Microsoft.Extensions.Options.IPostConfigureOptions<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions>
-    {
-        public PostConfigureNegotiateOptions(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Hosting.Server.IServerIntegratedAuth> serverAuthServices, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateHandler> logger) { }
-        public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions options) { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class NegotiateExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddNegotiate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddNegotiate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddNegotiate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddNegotiate(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.Negotiate.NegotiateOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/OAuth/ref/Microsoft.AspNetCore.Authentication.OAuth.csproj b/src/Security/Authentication/OAuth/ref/Microsoft.AspNetCore.Authentication.OAuth.csproj
index def1f59d1e9b41fcc4d1e331bf0e4dc8456b9ff1..74f457dd811fb04998a35607b19beab9d3343182 100644
--- a/src/Security/Authentication/OAuth/ref/Microsoft.AspNetCore.Authentication.OAuth.csproj
+++ b/src/Security/Authentication/OAuth/ref/Microsoft.AspNetCore.Authentication.OAuth.csproj
@@ -5,6 +5,6 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authentication.OAuth.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication"  />
+    <Reference Include="Microsoft.AspNetCore.Authentication" />
   </ItemGroup>
 </Project>
diff --git a/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj b/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj
index 3afc116b34d83594896386d3dd417261cff4150e..d7855aec1a5bfec780cac47c8226705449b1dc48 100644
--- a/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj
+++ b/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;authentication;security</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Security/Authentication/OpenIdConnect/ref/Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj b/src/Security/Authentication/OpenIdConnect/ref/Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj
deleted file mode 100644
index a5c4d9aa4cb93e6368a2c674176ac41884fa0b85..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/OpenIdConnect/ref/Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.OpenIdConnect.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OAuth"  />
-    <Reference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/OpenIdConnect/ref/Microsoft.AspNetCore.Authentication.OpenIdConnect.netcoreapp.cs b/src/Security/Authentication/OpenIdConnect/ref/Microsoft.AspNetCore.Authentication.OpenIdConnect.netcoreapp.cs
deleted file mode 100644
index 395acef0992e0cfb1f882b21f7376724e72407bb..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/OpenIdConnect/ref/Microsoft.AspNetCore.Authentication.OpenIdConnect.netcoreapp.cs
+++ /dev/null
@@ -1,204 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication
-{
-    public static partial class ClaimActionCollectionUniqueExtensions
-    {
-        public static void MapUniqueJsonKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey) { }
-        public static void MapUniqueJsonKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey, string valueType) { }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.OpenIdConnect
-{
-    public partial class AuthenticationFailedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public AuthenticationFailedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public System.Exception Exception { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class AuthorizationCodeReceivedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public AuthorizationCodeReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public System.Net.Http.HttpClient Backchannel { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public bool HandledCodeRedemption { get { throw null; } }
-        public System.IdentityModel.Tokens.Jwt.JwtSecurityToken JwtSecurityToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage TokenEndpointRequest { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage TokenEndpointResponse { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public void HandleCodeRedemption() { }
-        public void HandleCodeRedemption(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage tokenEndpointResponse) { }
-        public void HandleCodeRedemption(string accessToken, string idToken) { }
-    }
-    public partial class MessageReceivedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public MessageReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Token { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class OpenIdConnectChallengeProperties : Microsoft.AspNetCore.Authentication.OAuth.OAuthChallengeProperties
-    {
-        public static readonly string MaxAgeKey;
-        public static readonly string PromptKey;
-        public OpenIdConnectChallengeProperties() { }
-        public OpenIdConnectChallengeProperties(System.Collections.Generic.IDictionary<string, string> items) { }
-        public OpenIdConnectChallengeProperties(System.Collections.Generic.IDictionary<string, string> items, System.Collections.Generic.IDictionary<string, object> parameters) { }
-        public System.TimeSpan? MaxAge { get { throw null; } set { } }
-        public string Prompt { get { throw null; } set { } }
-    }
-    public static partial class OpenIdConnectDefaults
-    {
-        public static readonly string AuthenticationPropertiesKey;
-        public const string AuthenticationScheme = "OpenIdConnect";
-        public static readonly string CookieNoncePrefix;
-        public static readonly string DisplayName;
-        public static readonly string RedirectUriForCodePropertiesKey;
-        public static readonly string UserstatePropertiesKey;
-    }
-    public partial class OpenIdConnectEvents : Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents
-    {
-        public OpenIdConnectEvents() { }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.AuthenticationFailedContext, System.Threading.Tasks.Task> OnAuthenticationFailed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.AuthorizationCodeReceivedContext, System.Threading.Tasks.Task> OnAuthorizationCodeReceived { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.MessageReceivedContext, System.Threading.Tasks.Task> OnMessageReceived { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.RedirectContext, System.Threading.Tasks.Task> OnRedirectToIdentityProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.RedirectContext, System.Threading.Tasks.Task> OnRedirectToIdentityProviderForSignOut { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.RemoteSignOutContext, System.Threading.Tasks.Task> OnRemoteSignOut { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.RemoteSignOutContext, System.Threading.Tasks.Task> OnSignedOutCallbackRedirect { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.TokenResponseReceivedContext, System.Threading.Tasks.Task> OnTokenResponseReceived { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.TokenValidatedContext, System.Threading.Tasks.Task> OnTokenValidated { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.OpenIdConnect.UserInformationReceivedContext, System.Threading.Tasks.Task> OnUserInformationReceived { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task AuthenticationFailed(Microsoft.AspNetCore.Authentication.OpenIdConnect.AuthenticationFailedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task AuthorizationCodeReceived(Microsoft.AspNetCore.Authentication.OpenIdConnect.AuthorizationCodeReceivedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task MessageReceived(Microsoft.AspNetCore.Authentication.OpenIdConnect.MessageReceivedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task RedirectToIdentityProvider(Microsoft.AspNetCore.Authentication.OpenIdConnect.RedirectContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task RedirectToIdentityProviderForSignOut(Microsoft.AspNetCore.Authentication.OpenIdConnect.RedirectContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task RemoteSignOut(Microsoft.AspNetCore.Authentication.OpenIdConnect.RemoteSignOutContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task SignedOutCallbackRedirect(Microsoft.AspNetCore.Authentication.OpenIdConnect.RemoteSignOutContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task TokenResponseReceived(Microsoft.AspNetCore.Authentication.OpenIdConnect.TokenResponseReceivedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task TokenValidated(Microsoft.AspNetCore.Authentication.OpenIdConnect.TokenValidatedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task UserInformationReceived(Microsoft.AspNetCore.Authentication.OpenIdConnect.UserInformationReceivedContext context) { throw null; }
-    }
-    public partial class OpenIdConnectHandler : Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler
-    {
-        public OpenIdConnectHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        protected System.Net.Http.HttpClient Backchannel { get { throw null; } }
-        protected new Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectEvents Events { get { throw null; } set { } }
-        protected System.Text.Encodings.Web.HtmlEncoder HtmlEncoder { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        protected override System.Threading.Tasks.Task<object> CreateEventsAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.HandleRequestResult> GetUserInformationAsync(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage message, System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwt, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.HandleRequestResult> HandleRemoteAuthenticateAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected virtual System.Threading.Tasks.Task<bool> HandleRemoteSignOutAsync() { throw null; }
-        public override System.Threading.Tasks.Task<bool> HandleRequestAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected virtual System.Threading.Tasks.Task<bool> HandleSignOutCallbackAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected virtual System.Threading.Tasks.Task<Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage> RedeemAuthorizationCodeAsync(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage tokenEndpointRequest) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-    }
-    public partial class OpenIdConnectOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions
-    {
-        public OpenIdConnectOptions() { }
-        public Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectRedirectBehavior AuthenticationMethod { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Authority { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan AutomaticRefreshInterval { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection ClaimActions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string ClientId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ClientSecret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.IConfigurationManager<Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfiguration> ConfigurationManager { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool DisableTelemetry { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public new Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectEvents Events { get { throw null; } set { } }
-        public bool GetClaimsFromUserInfoEndpoint { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan? MaxAge { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string MetadataAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.CookieBuilder NonceCookie { get { throw null; } set { } }
-        public string Prompt { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidator ProtocolValidator { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan RefreshInterval { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RefreshOnIssuerKeyNotFound { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.PathString RemoteSignOutPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RequireHttpsMetadata { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Resource { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ResponseMode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ResponseType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.ICollection<string> Scope { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.IdentityModel.Tokens.ISecurityTokenValidator SecurityTokenValidator { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.PathString SignedOutCallbackPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string SignedOutRedirectUri { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string SignOutScheme { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool SkipUnrecognizedRequests { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Authentication.ISecureDataFormat<Microsoft.AspNetCore.Authentication.AuthenticationProperties> StateDataFormat { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Authentication.ISecureDataFormat<string> StringDataFormat { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Tokens.TokenValidationParameters TokenValidationParameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool UsePkce { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool UseTokenLifetime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public override void Validate() { }
-    }
-    public partial class OpenIdConnectPostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public OpenIdConnectPostConfigureOptions(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtection) { }
-        public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options) { }
-    }
-    public enum OpenIdConnectRedirectBehavior
-    {
-        RedirectGet = 0,
-        FormPost = 1,
-    }
-    public partial class RedirectContext : Microsoft.AspNetCore.Authentication.PropertiesContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public RedirectContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public bool Handled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public void HandleResponse() { }
-    }
-    public partial class RemoteSignOutContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public RemoteSignOutContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options, Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage message) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class TokenResponseReceivedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public TokenResponseReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options, System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage TokenEndpointResponse { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class TokenValidatedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public TokenValidatedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public string Nonce { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.IdentityModel.Tokens.Jwt.JwtSecurityToken SecurityToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage TokenEndpointResponse { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class UserInformationReceivedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions>
-    {
-        public UserInformationReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions options, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Text.Json.JsonDocument User { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.OpenIdConnect.Claims
-{
-    public partial class UniqueJsonKeyClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.JsonKeyClaimAction
-    {
-        public UniqueJsonKeyClaimAction(string claimType, string valueType, string jsonKey) : base (default(string), default(string), default(string)) { }
-        public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class OpenIdConnectExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOpenIdConnect(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOpenIdConnect(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOpenIdConnect(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOpenIdConnect(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/Twitter/ref/Microsoft.AspNetCore.Authentication.Twitter.csproj b/src/Security/Authentication/Twitter/ref/Microsoft.AspNetCore.Authentication.Twitter.csproj
deleted file mode 100644
index b5da56a67eee280d3af699efcc405ecf8914103f..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Twitter/ref/Microsoft.AspNetCore.Authentication.Twitter.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.Twitter.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OAuth"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/Twitter/ref/Microsoft.AspNetCore.Authentication.Twitter.netcoreapp.cs b/src/Security/Authentication/Twitter/ref/Microsoft.AspNetCore.Authentication.Twitter.netcoreapp.cs
deleted file mode 100644
index 24c727c3528c1f3d0871f27efd9de45887e0f0a6..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/Twitter/ref/Microsoft.AspNetCore.Authentication.Twitter.netcoreapp.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.Twitter
-{
-    public partial class AccessToken : Microsoft.AspNetCore.Authentication.Twitter.RequestToken
-    {
-        public AccessToken() { }
-        public string ScreenName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string UserId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class RequestToken
-    {
-        public RequestToken() { }
-        public bool CallbackConfirmed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Token { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string TokenSecret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class RequestTokenSerializer : Microsoft.AspNetCore.Authentication.IDataSerializer<Microsoft.AspNetCore.Authentication.Twitter.RequestToken>
-    {
-        public RequestTokenSerializer() { }
-        public virtual Microsoft.AspNetCore.Authentication.Twitter.RequestToken Deserialize(byte[] data) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.Twitter.RequestToken Read(System.IO.BinaryReader reader) { throw null; }
-        public virtual byte[] Serialize(Microsoft.AspNetCore.Authentication.Twitter.RequestToken model) { throw null; }
-        public static void Write(System.IO.BinaryWriter writer, Microsoft.AspNetCore.Authentication.Twitter.RequestToken token) { }
-    }
-    public partial class TwitterCreatingTicketContext : Microsoft.AspNetCore.Authentication.ResultContext<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions>
-    {
-        public TwitterCreatingTicketContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions options, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string userId, string screenName, string accessToken, string accessTokenSecret, System.Text.Json.JsonElement user) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions)) { }
-        public string AccessToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string AccessTokenSecret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string ScreenName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public System.Text.Json.JsonElement User { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string UserId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-    public static partial class TwitterDefaults
-    {
-        public const string AuthenticationScheme = "Twitter";
-        public static readonly string DisplayName;
-    }
-    public partial class TwitterEvents : Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents
-    {
-        public TwitterEvents() { }
-        public System.Func<Microsoft.AspNetCore.Authentication.Twitter.TwitterCreatingTicketContext, System.Threading.Tasks.Task> OnCreatingTicket { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.RedirectContext<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions>, System.Threading.Tasks.Task> OnRedirectToAuthorizationEndpoint { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task CreatingTicket(Microsoft.AspNetCore.Authentication.Twitter.TwitterCreatingTicketContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task RedirectToAuthorizationEndpoint(Microsoft.AspNetCore.Authentication.RedirectContext<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions> context) { throw null; }
-    }
-    public partial class TwitterHandler : Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions>
-    {
-        public TwitterHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        protected new Microsoft.AspNetCore.Authentication.Twitter.TwitterEvents Events { get { throw null; } set { } }
-        protected override System.Threading.Tasks.Task<object> CreateEventsAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticationTicket> CreateTicketAsync(System.Security.Claims.ClaimsIdentity identity, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Authentication.Twitter.AccessToken token, System.Text.Json.JsonElement user) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.HandleRequestResult> HandleRemoteAuthenticateAsync() { throw null; }
-    }
-    public partial class TwitterOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions
-    {
-        public TwitterOptions() { }
-        public Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection ClaimActions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public string ConsumerKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string ConsumerSecret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public new Microsoft.AspNetCore.Authentication.Twitter.TwitterEvents Events { get { throw null; } set { } }
-        public bool RetrieveUserDetails { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.CookieBuilder StateCookie { get { throw null; } set { } }
-        public Microsoft.AspNetCore.Authentication.ISecureDataFormat<Microsoft.AspNetCore.Authentication.Twitter.RequestToken> StateDataFormat { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public override void Validate() { }
-    }
-    public partial class TwitterPostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions>
-    {
-        public TwitterPostConfigureOptions(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtection) { }
-        public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions options) { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class TwitterExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddTwitter(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddTwitter(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddTwitter(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddTwitter(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.Twitter.TwitterOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/WsFederation/ref/Microsoft.AspNetCore.Authentication.WsFederation.csproj b/src/Security/Authentication/WsFederation/ref/Microsoft.AspNetCore.Authentication.WsFederation.csproj
deleted file mode 100644
index f3c624b7bd33f0a9524e9727cb13f5cf566476e6..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/WsFederation/ref/Microsoft.AspNetCore.Authentication.WsFederation.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.WsFederation.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication"  />
-    <Reference Include="Microsoft.IdentityModel.Protocols.WsFederation"  />
-    <Reference Include="System.IdentityModel.Tokens.Jwt"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Security/Authentication/WsFederation/ref/Microsoft.AspNetCore.Authentication.WsFederation.netcoreapp.cs b/src/Security/Authentication/WsFederation/ref/Microsoft.AspNetCore.Authentication.WsFederation.netcoreapp.cs
deleted file mode 100644
index e2b391fd1e10d1719db6dcfeb8fa927fe5d13c9e..0000000000000000000000000000000000000000
--- a/src/Security/Authentication/WsFederation/ref/Microsoft.AspNetCore.Authentication.WsFederation.netcoreapp.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication.WsFederation
-{
-    public partial class AuthenticationFailedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>
-    {
-        public AuthenticationFailedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions options) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public System.Exception Exception { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.WsFederation.WsFederationMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class MessageReceivedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>
-    {
-        public MessageReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.WsFederation.WsFederationMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class RedirectContext : Microsoft.AspNetCore.Authentication.PropertiesContext<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>
-    {
-        public RedirectContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public bool Handled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.IdentityModel.Protocols.WsFederation.WsFederationMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public void HandleResponse() { }
-    }
-    public partial class RemoteSignOutContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>
-    {
-        public RemoteSignOutContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions options, Microsoft.IdentityModel.Protocols.WsFederation.WsFederationMessage message) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.WsFederation.WsFederationMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class SecurityTokenReceivedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>
-    {
-        public SecurityTokenReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.WsFederation.WsFederationMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class SecurityTokenValidatedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>
-    {
-        public SecurityTokenValidatedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions options, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base (default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) { }
-        public Microsoft.IdentityModel.Protocols.WsFederation.WsFederationMessage ProtocolMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Tokens.SecurityToken SecurityToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public static partial class WsFederationDefaults
-    {
-        public const string AuthenticationScheme = "WsFederation";
-        public const string DisplayName = "WsFederation";
-        public static readonly string UserstatePropertiesKey;
-    }
-    public partial class WsFederationEvents : Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents
-    {
-        public WsFederationEvents() { }
-        public System.Func<Microsoft.AspNetCore.Authentication.WsFederation.AuthenticationFailedContext, System.Threading.Tasks.Task> OnAuthenticationFailed { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.WsFederation.MessageReceivedContext, System.Threading.Tasks.Task> OnMessageReceived { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.WsFederation.RedirectContext, System.Threading.Tasks.Task> OnRedirectToIdentityProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.WsFederation.RemoteSignOutContext, System.Threading.Tasks.Task> OnRemoteSignOut { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.WsFederation.SecurityTokenReceivedContext, System.Threading.Tasks.Task> OnSecurityTokenReceived { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<Microsoft.AspNetCore.Authentication.WsFederation.SecurityTokenValidatedContext, System.Threading.Tasks.Task> OnSecurityTokenValidated { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public virtual System.Threading.Tasks.Task AuthenticationFailed(Microsoft.AspNetCore.Authentication.WsFederation.AuthenticationFailedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task MessageReceived(Microsoft.AspNetCore.Authentication.WsFederation.MessageReceivedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task RedirectToIdentityProvider(Microsoft.AspNetCore.Authentication.WsFederation.RedirectContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task RemoteSignOut(Microsoft.AspNetCore.Authentication.WsFederation.RemoteSignOutContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task SecurityTokenReceived(Microsoft.AspNetCore.Authentication.WsFederation.SecurityTokenReceivedContext context) { throw null; }
-        public virtual System.Threading.Tasks.Task SecurityTokenValidated(Microsoft.AspNetCore.Authentication.WsFederation.SecurityTokenValidatedContext context) { throw null; }
-    }
-    public partial class WsFederationHandler : Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler
-    {
-        public WsFederationHandler(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions> options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base (default(Microsoft.Extensions.Options.IOptionsMonitor<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) { }
-        protected new Microsoft.AspNetCore.Authentication.WsFederation.WsFederationEvents Events { get { throw null; } set { } }
-        protected override System.Threading.Tasks.Task<object> CreateEventsAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.HandleRequestResult> HandleRemoteAuthenticateAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected virtual System.Threading.Tasks.Task<bool> HandleRemoteSignOutAsync() { throw null; }
-        public override System.Threading.Tasks.Task<bool> HandleRequestAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public virtual System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) { throw null; }
-    }
-    public partial class WsFederationOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions
-    {
-        public WsFederationOptions() { }
-        public bool AllowUnsolicitedLogins { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.WsFederation.WsFederationConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Protocols.IConfigurationManager<Microsoft.IdentityModel.Protocols.WsFederation.WsFederationConfiguration> ConfigurationManager { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public new Microsoft.AspNetCore.Authentication.WsFederation.WsFederationEvents Events { get { throw null; } set { } }
-        public string MetadataAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RefreshOnIssuerKeyNotFound { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.PathString RemoteSignOutPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool RequireHttpsMetadata { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public new bool SaveTokens { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.ICollection<Microsoft.IdentityModel.Tokens.ISecurityTokenValidator> SecurityTokenHandlers { get { throw null; } set { } }
-        public string SignOutScheme { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string SignOutWreply { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool SkipUnrecognizedRequests { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Authentication.ISecureDataFormat<Microsoft.AspNetCore.Authentication.AuthenticationProperties> StateDataFormat { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.IdentityModel.Tokens.TokenValidationParameters TokenValidationParameters { get { throw null; } set { } }
-        public bool UseTokenLifetime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Wreply { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public string Wtrealm { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public override void Validate() { }
-    }
-    public partial class WsFederationPostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions>
-    {
-        public WsFederationPostConfigureOptions(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtection) { }
-        public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions options) { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class WsFederationExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddWsFederation(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddWsFederation(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddWsFederation(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddWsFederation(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.WsFederation.WsFederationOptions> configureOptions) { throw null; }
-    }
-}
diff --git a/src/Security/Authentication/test/WsFederation/WsFederationTest.cs b/src/Security/Authentication/test/WsFederation/WsFederationTest.cs
index 6cc25f6dd561ef00cd0186b3ac13476a97fbce4e..1c4fc9e94d6758bc93e789615b0d26b50824a99b 100644
--- a/src/Security/Authentication/test/WsFederation/WsFederationTest.cs
+++ b/src/Security/Authentication/test/WsFederation/WsFederationTest.cs
@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
@@ -440,4 +440,4 @@ namespace Microsoft.AspNetCore.Authentication.WsFederation
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.Manual.cs b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.Manual.cs
deleted file mode 100644
index 84fc42f7ab6f23e7e7d20ec885fb76bf07ede392..0000000000000000000000000000000000000000
--- a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.Manual.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System.Runtime.CompilerServices;
-using Microsoft.AspNetCore.Authorization;
-
-// Microsoft.AspNetCore.Metadata
-[assembly: TypeForwardedTo(typeof(IAuthorizeData))]
-[assembly: TypeForwardedTo(typeof(IAllowAnonymous))]
diff --git a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj
index 1c742a823a6f7979b8abbcb9c4bf3db685ac3b16..b0cf327ff4645f103603a832a2d575b949e826aa 100644
--- a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj
+++ b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj
@@ -5,16 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Authorization.netstandard2.0.cs" />
-    <Compile Include="Microsoft.AspNetCore.Authorization.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Metadata"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Metadata" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authorization.netcoreapp.cs" />
-    <Compile Include="Microsoft.AspNetCore.Authorization.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Metadata"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Metadata" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj b/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj
index b6f1f89e7090b66583b7f20e13a8db83471debad..4b42191fd29f0f5d7032e1a46159c487e41b0a7a 100644
--- a/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj
+++ b/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj
@@ -8,7 +8,6 @@ Microsoft.AspNetCore.Authorization.AuthorizeAttribute</Description>
     <TargetFrameworks>netstandard2.0;$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <TargetFrameworks Condition="'$(DotNetBuildFromSource)' == 'true'">$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>true</IsShippingPackage>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;authorization</PackageTags>
diff --git a/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj b/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj
index a6846ca50f94142d9d30d9a9cee0c1543f775002..ba41207565fe5213e3dd39ae8710a22e3ecac39f 100644
--- a/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj
+++ b/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj
@@ -5,9 +5,9 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authorization.Policy.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
+    <Reference Include="Microsoft.AspNetCore.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
   </ItemGroup>
 </Project>
diff --git a/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj b/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj
index 39aaa6463f25f3db9e8a8d35bd2f38ea4acbf45c..604d5bb851eb7250c7b8b1a3f4b718f13e20440a 100644
--- a/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj
+++ b/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;authorization</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Security/CookiePolicy/ref/Microsoft.AspNetCore.CookiePolicy.csproj b/src/Security/CookiePolicy/ref/Microsoft.AspNetCore.CookiePolicy.csproj
index c0f0ce3f26a04effd0d7e03e33128491a39f2fd4..68d2f5f27c1ae548802e64052ed4a571cf8850a0 100644
--- a/src/Security/CookiePolicy/ref/Microsoft.AspNetCore.CookiePolicy.csproj
+++ b/src/Security/CookiePolicy/ref/Microsoft.AspNetCore.CookiePolicy.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.CookiePolicy.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj b/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj
index aa2a00b5869bd79b15c2aba17819b7d4e27a50a1..d401e8d69f1f22db851f107f606efbb4ec99105c 100644
--- a/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj
+++ b/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj
@@ -7,7 +7,7 @@
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj b/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj
index 693cd9388b4f64e1d2fedacd79499c0abf73c887..a740b52b2cb3801646910bd60cdd08763deddd7d 100644
--- a/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj
+++ b/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj
@@ -3,6 +3,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <UserSecretsId>aspnet-Identity.ExternalClaims-E95BE154-CB1B-4633-A2E0-B2DF12FE8BD3</UserSecretsId>
     <IsTestAssetProject>true</IsTestAssetProject>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore" />
@@ -26,5 +28,7 @@
     <Reference Include="Microsoft.Extensions.Configuration.UserSecrets" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Debug" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.csproj b/src/Servers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.csproj
index 290b58c7fe0c17c9e17fb7f1816ef960e9a3ea4f..c6a77eb8ef10905166c6ef14b1289feb7bcf907d 100644
--- a/src/Servers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.csproj
+++ b/src/Servers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.csproj
@@ -5,21 +5,21 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Connections.Abstractions.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Features"  />
-    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources"  />
-    <Reference Include="System.IO.Pipelines"  />
-    <Reference Include="Microsoft.Bcl.AsyncInterfaces"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources" />
+    <Reference Include="System.IO.Pipelines" />
+    <Reference Include="Microsoft.Bcl.AsyncInterfaces" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
     <Compile Include="Microsoft.AspNetCore.Connections.Abstractions.netstandard2.1.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Features"  />
-    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources"  />
-    <Reference Include="System.IO.Pipelines"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources" />
+    <Reference Include="System.IO.Pipelines" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Connections.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Features"  />
-    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources"  />
-    <Reference Include="System.IO.Pipelines"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources" />
+    <Reference Include="System.IO.Pipelines" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj b/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj
index 43f6d4b5748eaf2c7bd8702cc899ee6b305a23e2..d7040f24456f819fb599f066cbef488efd2b3834 100644
--- a/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj
+++ b/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj
@@ -8,7 +8,6 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore</PackageTags>
     <NoWarn>CS1591;$(NoWarn)</NoWarn>
-    <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Servers/HttpSys/ref/Microsoft.AspNetCore.Server.HttpSys.Manual.cs b/src/Servers/HttpSys/ref/Microsoft.AspNetCore.Server.HttpSys.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..bb60aa1cbdb68b89698848ff21d2f22411690831
--- /dev/null
+++ b/src/Servers/HttpSys/ref/Microsoft.AspNetCore.Server.HttpSys.Manual.cs
@@ -0,0 +1,1153 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.HttpSys.Internal
+{
+    internal static partial class Constants
+    {
+        internal const string Chunked = "chunked";
+        internal const string Close = "close";
+        internal const string DefaultServerAddress = "http://localhost:5000";
+        internal const string HttpScheme = "http";
+        internal const string HttpsScheme = "https";
+        internal const string SchemeDelimiter = "://";
+        internal static System.Version V1_0;
+        internal static System.Version V1_1;
+        internal static System.Version V2;
+        internal const string Zero = "0";
+    }
+    internal sealed partial class HeapAllocHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        private HeapAllocHandle() : base (default(bool)) { }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal enum HttpSysRequestHeader
+    {
+        CacheControl = 0,
+        Connection = 1,
+        Date = 2,
+        KeepAlive = 3,
+        Pragma = 4,
+        Trailer = 5,
+        TransferEncoding = 6,
+        Upgrade = 7,
+        Via = 8,
+        Warning = 9,
+        Allow = 10,
+        ContentLength = 11,
+        ContentType = 12,
+        ContentEncoding = 13,
+        ContentLanguage = 14,
+        ContentLocation = 15,
+        ContentMd5 = 16,
+        ContentRange = 17,
+        Expires = 18,
+        LastModified = 19,
+        Accept = 20,
+        AcceptCharset = 21,
+        AcceptEncoding = 22,
+        AcceptLanguage = 23,
+        Authorization = 24,
+        Cookie = 25,
+        Expect = 26,
+        From = 27,
+        Host = 28,
+        IfMatch = 29,
+        IfModifiedSince = 30,
+        IfNoneMatch = 31,
+        IfRange = 32,
+        IfUnmodifiedSince = 33,
+        MaxForwards = 34,
+        ProxyAuthorization = 35,
+        Referer = 36,
+        Range = 37,
+        Te = 38,
+        Translate = 39,
+        UserAgent = 40,
+    }
+    internal partial class SafeLocalFreeChannelBinding : System.Security.Authentication.ExtendedProtection.ChannelBinding
+    {
+        public SafeLocalFreeChannelBinding() { }
+        public override bool IsInvalid { get { throw null; } }
+        public override int Size { get { throw null; } }
+        public static Microsoft.AspNetCore.HttpSys.Internal.SafeLocalFreeChannelBinding LocalAlloc(int cb) { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal sealed partial class SafeLocalMemHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        internal SafeLocalMemHandle() : base (default(bool)) { }
+        internal SafeLocalMemHandle(System.IntPtr existingHandle, bool ownsHandle) : base (default(bool)) { }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal partial class SocketAddress
+    {
+        internal const int IPv4AddressSize = 16;
+        internal const int IPv6AddressSize = 28;
+        public SocketAddress(System.Net.Sockets.AddressFamily family, int size) { }
+        internal byte[] Buffer { get { throw null; } }
+        internal System.Net.Sockets.AddressFamily Family { get { throw null; } }
+        internal int Size { get { throw null; } }
+        public override bool Equals(object comparand) { throw null; }
+        public override int GetHashCode() { throw null; }
+        internal System.Net.IPAddress GetIPAddress() { throw null; }
+        internal string GetIPAddressString() { throw null; }
+        internal int GetPort() { throw null; }
+        public override string ToString() { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct CookedUrl
+    {
+        private readonly int _dummyPrimitive;
+        internal CookedUrl(Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_COOKED_URL nativeCookedUrl) { throw null; }
+        internal string GetAbsPath() { throw null; }
+        internal string GetFullUrl() { throw null; }
+        internal string GetHost() { throw null; }
+        internal string GetQueryString() { throw null; }
+    }
+    internal enum SslStatus : byte
+    {
+        Insecure = (byte)0,
+        NoClientCert = (byte)1,
+        ClientCert = (byte)2,
+    }
+    internal partial class SafeNativeOverlapped : System.Runtime.InteropServices.SafeHandle
+    {
+        internal static readonly Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped Zero;
+        internal SafeNativeOverlapped() : base (default(System.IntPtr), default(bool)) { }
+        internal unsafe SafeNativeOverlapped(System.Threading.ThreadPoolBoundHandle boundHandle, System.Threading.NativeOverlapped* handle) : base (default(System.IntPtr), default(bool)) { }
+        public override bool IsInvalid { get { throw null; } }
+        public void ReinitializeNativeOverlapped() { }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal static unsafe partial class HttpApiTypes
+    {
+        internal static readonly string[] HttpVerbs;
+        internal const int MaxTimeout = 6;
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct FromFileHandle
+        {
+            internal ulong offset;
+            internal ulong count;
+            internal System.IntPtr fileHandle;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct FromMemory
+        {
+            internal System.IntPtr pBuffer;
+            internal uint BufferLength;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTPAPI_VERSION
+        {
+            internal ushort HttpApiMajorVersion;
+            internal ushort HttpApiMinorVersion;
+        }
+        internal enum HTTP_API_VERSION
+        {
+            Invalid = 0,
+            Version10 = 1,
+            Version20 = 2,
+        }
+        internal enum HTTP_AUTH_STATUS
+        {
+            HttpAuthStatusSuccess = 0,
+            HttpAuthStatusNotAuthenticated = 1,
+            HttpAuthStatusFailure = 2,
+        }
+        [System.FlagsAttribute]
+        internal enum HTTP_AUTH_TYPES : uint
+        {
+            NONE = (uint)0,
+            HTTP_AUTH_ENABLE_BASIC = (uint)1,
+            HTTP_AUTH_ENABLE_DIGEST = (uint)2,
+            HTTP_AUTH_ENABLE_NTLM = (uint)4,
+            HTTP_AUTH_ENABLE_NEGOTIATE = (uint)8,
+            HTTP_AUTH_ENABLE_KERBEROS = (uint)16,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_BINDING_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_FLAGS Flags;
+            internal System.IntPtr RequestQueueHandle;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_CACHE_POLICY
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_CACHE_POLICY_TYPE Policy;
+            internal uint SecondsToLive;
+        }
+        internal enum HTTP_CACHE_POLICY_TYPE
+        {
+            HttpCachePolicyNocache = 0,
+            HttpCachePolicyUserInvalidates = 1,
+            HttpCachePolicyTimeToLive = 2,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_CONNECTION_LIMIT_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_FLAGS Flags;
+            internal uint MaxConnections;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_COOKED_URL
+        {
+            internal ushort FullUrlLength;
+            internal ushort HostLength;
+            internal ushort AbsPathLength;
+            internal ushort QueryStringLength;
+            internal ushort* pFullUrl;
+            internal ushort* pHost;
+            internal ushort* pAbsPath;
+            internal ushort* pQueryString;
+        }
+        [System.FlagsAttribute]
+        internal enum HTTP_CREATE_REQUEST_QUEUE_FLAG : uint
+        {
+            None = (uint)0,
+            OpenExisting = (uint)1,
+            Controller = (uint)2,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Explicit)]
+        internal partial struct HTTP_DATA_CHUNK
+        {
+            [System.Runtime.InteropServices.FieldOffset(0)]
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_DATA_CHUNK_TYPE DataChunkType;
+            [System.Runtime.InteropServices.FieldOffset(8)]
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.FromMemory fromMemory;
+            [System.Runtime.InteropServices.FieldOffset(8)]
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.FromFileHandle fromFile;
+        }
+        internal enum HTTP_DATA_CHUNK_TYPE
+        {
+            HttpDataChunkFromMemory = 0,
+            HttpDataChunkFromFileHandle = 1,
+            HttpDataChunkFromFragmentCache = 2,
+            HttpDataChunkMaximum = 3,
+        }
+        [System.FlagsAttribute]
+        internal enum HTTP_FLAGS : uint
+        {
+            NONE = (uint)0,
+            HTTP_INITIALIZE_SERVER = (uint)1,
+            HTTP_PROPERTY_FLAG_PRESENT = (uint)1,
+            HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY = (uint)1,
+            HTTP_RECEIVE_SECURE_CHANNEL_TOKEN = (uint)1,
+            HTTP_SEND_REQUEST_FLAG_MORE_DATA = (uint)1,
+            HTTP_SEND_RESPONSE_FLAG_DISCONNECT = (uint)1,
+            HTTP_SEND_RESPONSE_FLAG_MORE_DATA = (uint)2,
+            HTTP_INITIALIZE_CBT = (uint)4,
+            HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA = (uint)4,
+            HTTP_SEND_RESPONSE_FLAG_RAW_HEADER = (uint)4,
+            HTTP_SEND_RESPONSE_FLAG_OPAQUE = (uint)64,
+            HTTP_SEND_RESPONSE_FLAG_GOAWAY = (uint)256,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_KNOWN_HEADER
+        {
+            internal ushort RawValueLength;
+            internal byte* pRawValue;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_MULTIPLE_KNOWN_HEADERS
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_RESPONSE_HEADER_ID.Enum HeaderId;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_RESPONSE_INFO_FLAGS Flags;
+            internal ushort KnownHeaderCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER* KnownHeaders;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_QOS_SETTING_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_QOS_SETTING_TYPE QosType;
+            internal System.IntPtr QosSetting;
+        }
+        internal enum HTTP_QOS_SETTING_TYPE
+        {
+            HttpQosSettingTypeBandwidth = 0,
+            HttpQosSettingTypeConnectionLimit = 1,
+            HttpQosSettingTypeFlowRate = 2,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_REQUEST
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST_FLAGS Flags;
+            internal ulong ConnectionId;
+            internal ulong RequestId;
+            internal ulong UrlContext;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_VERSION Version;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_VERB Verb;
+            internal ushort UnknownVerbLength;
+            internal ushort RawUrlLength;
+            internal byte* pUnknownVerb;
+            internal byte* pRawUrl;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_COOKED_URL CookedUrl;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_TRANSPORT_ADDRESS Address;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST_HEADERS Headers;
+            internal ulong BytesReceived;
+            internal ushort EntityChunkCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_DATA_CHUNK* pEntityChunks;
+            internal ulong RawConnectionId;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SSL_INFO* pSslInfo;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_REQUEST_AUTH_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_AUTH_STATUS AuthStatus;
+            internal uint SecStatus;
+            internal uint Flags;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST_AUTH_TYPE AuthType;
+            internal System.IntPtr AccessToken;
+            internal uint ContextAttributes;
+            internal uint PackedContextLength;
+            internal uint PackedContextType;
+            internal System.IntPtr PackedContext;
+            internal uint MutualAuthDataLength;
+            internal char* pMutualAuthData;
+        }
+        internal enum HTTP_REQUEST_AUTH_TYPE
+        {
+            HttpRequestAuthTypeNone = 0,
+            HttpRequestAuthTypeBasic = 1,
+            HttpRequestAuthTypeDigest = 2,
+            HttpRequestAuthTypeNTLM = 3,
+            HttpRequestAuthTypeNegotiate = 4,
+            HttpRequestAuthTypeKerberos = 5,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_REQUEST_CHANNEL_BIND_STATUS
+        {
+            internal System.IntPtr ServiceName;
+            internal System.IntPtr ChannelToken;
+            internal uint ChannelTokenSize;
+            internal uint Flags;
+        }
+        [System.FlagsAttribute]
+        internal enum HTTP_REQUEST_FLAGS
+        {
+            None = 0,
+            MoreEntityBodyExists = 1,
+            IPRouted = 2,
+            Http2 = 4,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_REQUEST_HEADERS
+        {
+            internal ushort UnknownHeaderCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_UNKNOWN_HEADER* pUnknownHeaders;
+            internal ushort TrailerCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_UNKNOWN_HEADER* pTrailers;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_02;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_03;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_04;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_05;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_06;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_07;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_08;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_09;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_10;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_11;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_12;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_13;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_14;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_15;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_16;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_17;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_18;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_19;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_20;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_21;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_22;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_23;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_24;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_25;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_26;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_27;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_28;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_29;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_30;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_31;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_32;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_33;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_34;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_35;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_36;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_37;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_38;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_39;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_40;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_41;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_REQUEST_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST_INFO_TYPE InfoType;
+            internal uint InfoLength;
+            internal void* pInfo;
+        }
+        internal enum HTTP_REQUEST_INFO_TYPE
+        {
+            HttpRequestInfoTypeAuth = 0,
+            HttpRequestInfoTypeChannelBind = 1,
+            HttpRequestInfoTypeSslProtocol = 2,
+            HttpRequestInfoTypeSslTokenBinding = 3,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_REQUEST_TOKEN_BINDING_INFO
+        {
+            public byte* TokenBinding;
+            public uint TokenBindingSize;
+            public byte* TlsUnique;
+            public uint TlsUniqueSize;
+            public char* KeyType;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_REQUEST_V2
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST Request;
+            internal ushort RequestInfoCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST_INFO* pRequestInfo;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_RESPONSE
+        {
+            internal uint Flags;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_VERSION Version;
+            internal ushort StatusCode;
+            internal ushort ReasonLength;
+            internal byte* pReason;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_RESPONSE_HEADERS Headers;
+            internal ushort EntityChunkCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_DATA_CHUNK* pEntityChunks;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_RESPONSE_HEADERS
+        {
+            internal ushort UnknownHeaderCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_UNKNOWN_HEADER* pUnknownHeaders;
+            internal ushort TrailerCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_UNKNOWN_HEADER* pTrailers;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_02;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_03;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_04;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_05;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_06;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_07;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_08;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_09;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_10;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_11;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_12;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_13;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_14;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_15;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_16;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_17;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_18;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_19;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_20;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_21;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_22;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_23;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_24;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_25;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_26;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_27;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_28;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_29;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_KNOWN_HEADER KnownHeaders_30;
+        }
+        internal static partial class HTTP_RESPONSE_HEADER_ID
+        {
+            internal static int IndexOfKnownHeader(string HeaderName) { throw null; }
+            internal enum Enum
+            {
+                HttpHeaderCacheControl = 0,
+                HttpHeaderConnection = 1,
+                HttpHeaderDate = 2,
+                HttpHeaderKeepAlive = 3,
+                HttpHeaderPragma = 4,
+                HttpHeaderTrailer = 5,
+                HttpHeaderTransferEncoding = 6,
+                HttpHeaderUpgrade = 7,
+                HttpHeaderVia = 8,
+                HttpHeaderWarning = 9,
+                HttpHeaderAllow = 10,
+                HttpHeaderContentLength = 11,
+                HttpHeaderContentType = 12,
+                HttpHeaderContentEncoding = 13,
+                HttpHeaderContentLanguage = 14,
+                HttpHeaderContentLocation = 15,
+                HttpHeaderContentMd5 = 16,
+                HttpHeaderContentRange = 17,
+                HttpHeaderExpires = 18,
+                HttpHeaderLastModified = 19,
+                HttpHeaderAcceptRanges = 20,
+                HttpHeaderAge = 21,
+                HttpHeaderEtag = 22,
+                HttpHeaderLocation = 23,
+                HttpHeaderProxyAuthenticate = 24,
+                HttpHeaderRetryAfter = 25,
+                HttpHeaderServer = 26,
+                HttpHeaderSetCookie = 27,
+                HttpHeaderVary = 28,
+                HttpHeaderWwwAuthenticate = 29,
+                HttpHeaderResponseMaximum = 30,
+                HttpHeaderMaximum = 41,
+            }
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_RESPONSE_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_RESPONSE_INFO_TYPE Type;
+            internal uint Length;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_MULTIPLE_KNOWN_HEADERS* pInfo;
+        }
+        internal enum HTTP_RESPONSE_INFO_FLAGS : uint
+        {
+            None = (uint)0,
+            PreserveOrder = (uint)1,
+        }
+        internal enum HTTP_RESPONSE_INFO_TYPE
+        {
+            HttpResponseInfoTypeMultipleKnownHeaders = 0,
+            HttpResponseInfoTypeAuthenticationProperty = 1,
+            HttpResponseInfoTypeQosProperty = 2,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_RESPONSE_V2
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_RESPONSE Response_V1;
+            internal ushort ResponseInfoCount;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_RESPONSE_INFO* pResponseInfo;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS
+        {
+            ushort RealmLength;
+            char* Realm;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS
+        {
+            internal ushort DomainNameLength;
+            internal char* DomainName;
+            internal ushort RealmLength;
+            internal char* Realm;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_SERVER_AUTHENTICATION_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_FLAGS Flags;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_AUTH_TYPES AuthSchemes;
+            internal bool ReceiveMutualAuth;
+            internal bool ReceiveContextHandle;
+            internal bool DisableNTLMCredentialCaching;
+            internal ulong ExFlags;
+            Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS DigestParams;
+            Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS BasicParams;
+        }
+        internal enum HTTP_SERVER_PROPERTY
+        {
+            HttpServerAuthenticationProperty = 0,
+            HttpServerLoggingProperty = 1,
+            HttpServerQosProperty = 2,
+            HttpServerTimeoutsProperty = 3,
+            HttpServerQueueLengthProperty = 4,
+            HttpServerStateProperty = 5,
+            HttpServer503VerbosityProperty = 6,
+            HttpServerBindingProperty = 7,
+            HttpServerExtendedAuthenticationProperty = 8,
+            HttpServerListenEndpointProperty = 9,
+            HttpServerChannelBindProperty = 10,
+            HttpServerProtectionLevelProperty = 11,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_SERVICE_BINDING_BASE
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SERVICE_BINDING_TYPE Type;
+        }
+        internal enum HTTP_SERVICE_BINDING_TYPE : uint
+        {
+            HttpServiceBindingTypeNone = (uint)0,
+            HttpServiceBindingTypeW = (uint)1,
+            HttpServiceBindingTypeA = (uint)2,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_SSL_CLIENT_CERT_INFO
+        {
+            internal uint CertFlags;
+            internal uint CertEncodedSize;
+            internal byte* pCertEncoded;
+            internal void* Token;
+            internal byte CertDeniedByMapper;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_SSL_INFO
+        {
+            internal ushort ServerCertKeySize;
+            internal ushort ConnectionKeySize;
+            internal uint ServerCertIssuerSize;
+            internal uint ServerCertSubjectSize;
+            internal byte* pServerCertIssuer;
+            internal byte* pServerCertSubject;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SSL_CLIENT_CERT_INFO* pClientCertInfo;
+            internal uint SslClientCertNegotiated;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_SSL_PROTOCOL_INFO
+        {
+            internal System.Security.Authentication.SslProtocols Protocol;
+            internal System.Security.Authentication.CipherAlgorithmType CipherType;
+            internal uint CipherStrength;
+            internal System.Security.Authentication.HashAlgorithmType HashType;
+            internal uint HashStrength;
+            internal System.Security.Authentication.ExchangeAlgorithmType KeyExchangeType;
+            internal uint KeyExchangeStrength;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_TIMEOUT_LIMIT_INFO
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_FLAGS Flags;
+            internal ushort EntityBody;
+            internal ushort DrainEntityBody;
+            internal ushort RequestQueue;
+            internal ushort IdleConnection;
+            internal ushort HeaderWait;
+            internal uint MinSendRate;
+        }
+        internal enum HTTP_TIMEOUT_TYPE
+        {
+            EntityBody = 0,
+            DrainEntityBody = 1,
+            RequestQueue = 2,
+            IdleConnection = 3,
+            HeaderWait = 4,
+            MinSendRate = 5,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_TRANSPORT_ADDRESS
+        {
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.SOCKADDR* pRemoteAddress;
+            internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.SOCKADDR* pLocalAddress;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_UNKNOWN_HEADER
+        {
+            internal ushort NameLength;
+            internal ushort RawValueLength;
+            internal byte* pName;
+            internal byte* pRawValue;
+        }
+        internal enum HTTP_VERB
+        {
+            HttpVerbUnparsed = 0,
+            HttpVerbUnknown = 1,
+            HttpVerbInvalid = 2,
+            HttpVerbOPTIONS = 3,
+            HttpVerbGET = 4,
+            HttpVerbHEAD = 5,
+            HttpVerbPOST = 6,
+            HttpVerbPUT = 7,
+            HttpVerbDELETE = 8,
+            HttpVerbTRACE = 9,
+            HttpVerbCONNECT = 10,
+            HttpVerbTRACK = 11,
+            HttpVerbMOVE = 12,
+            HttpVerbCOPY = 13,
+            HttpVerbPROPFIND = 14,
+            HttpVerbPROPPATCH = 15,
+            HttpVerbMKCOL = 16,
+            HttpVerbLOCK = 17,
+            HttpVerbUNLOCK = 18,
+            HttpVerbSEARCH = 19,
+            HttpVerbMaximum = 20,
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct HTTP_VERSION
+        {
+            internal ushort MajorVersion;
+            internal ushort MinorVersion;
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial struct SOCKADDR
+        {
+            internal ushort sa_family;
+            internal byte sa_data;
+            internal byte sa_data_02;
+            internal byte sa_data_03;
+            internal byte sa_data_04;
+            internal byte sa_data_05;
+            internal byte sa_data_06;
+            internal byte sa_data_07;
+            internal byte sa_data_08;
+            internal byte sa_data_09;
+            internal byte sa_data_10;
+            internal byte sa_data_11;
+            internal byte sa_data_12;
+            internal byte sa_data_13;
+            internal byte sa_data_14;
+        }
+    }
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("TextTemplatingFileGenerator", "")]
+    internal partial class RequestHeaders : Microsoft.AspNetCore.Http.IHeaderDictionary, System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.Generic.IDictionary<string, Microsoft.Extensions.Primitives.StringValues>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.IEnumerable
+    {
+        internal RequestHeaders(Microsoft.AspNetCore.HttpSys.Internal.NativeRequestContext requestMemoryBlob) { }
+        internal Microsoft.Extensions.Primitives.StringValues Accept { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues AcceptCharset { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues AcceptEncoding { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues AcceptLanguage { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Allow { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Authorization { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues CacheControl { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Connection { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ContentEncoding { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ContentLanguage { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ContentLength { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ContentLocation { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ContentMd5 { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ContentRange { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ContentType { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Cookie { get { throw null; } set { } }
+        public int Count { get { throw null; } }
+        internal Microsoft.Extensions.Primitives.StringValues Date { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Expect { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Expires { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues From { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Host { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues IfMatch { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues IfModifiedSince { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues IfNoneMatch { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues IfRange { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues IfUnmodifiedSince { get { throw null; } set { } }
+        public bool IsReadOnly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+        public Microsoft.Extensions.Primitives.StringValues this[string key] { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues KeepAlive { get { throw null; } set { } }
+        public System.Collections.Generic.ICollection<string> Keys { get { throw null; } }
+        internal Microsoft.Extensions.Primitives.StringValues LastModified { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues MaxForwards { get { throw null; } set { } }
+        long? Microsoft.AspNetCore.Http.IHeaderDictionary.ContentLength { get { throw null; } set { } }
+        Microsoft.Extensions.Primitives.StringValues Microsoft.AspNetCore.Http.IHeaderDictionary.this[string key] { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Pragma { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues ProxyAuthorization { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Range { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Referer { get { throw null; } set { } }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.IsReadOnly { get { throw null; } }
+        Microsoft.Extensions.Primitives.StringValues System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.this[string key] { get { throw null; } set { } }
+        System.Collections.Generic.ICollection<Microsoft.Extensions.Primitives.StringValues> System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.Values { get { throw null; } }
+        internal Microsoft.Extensions.Primitives.StringValues Te { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Trailer { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues TransferEncoding { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Translate { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Upgrade { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues UserAgent { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Via { get { throw null; } set { } }
+        internal Microsoft.Extensions.Primitives.StringValues Warning { get { throw null; } set { } }
+        public bool ContainsKey(string key) { throw null; }
+        public System.Collections.Generic.IEnumerable<string> GetValues(string key) { throw null; }
+        public bool Remove(string key) { throw null; }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Add(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Clear() { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Contains(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { throw null; }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.CopyTo(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] array, int arrayIndex) { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Remove(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { throw null; }
+        void System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.Add(string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+    }
+    internal partial class NativeRequestContext : System.IDisposable
+    {
+        internal unsafe NativeRequestContext(Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST* request) { }
+        internal unsafe NativeRequestContext(Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped nativeOverlapped, int bufferAlignment, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST* nativeRequest, byte[] backingBuffer, ulong requestId) { }
+        internal ulong ConnectionId { get { throw null; } }
+        internal bool IsHttp2 { get { throw null; } }
+        internal Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped NativeOverlapped { get { throw null; } }
+        internal unsafe Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST* NativeRequest { get { throw null; } }
+        internal unsafe Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST_V2* NativeRequestV2 { get { throw null; } }
+        internal ulong RequestId { get { throw null; } set { } }
+        internal uint Size { get { throw null; } }
+        internal Microsoft.AspNetCore.HttpSys.Internal.SslStatus SslStatus { get { throw null; } }
+        internal ushort UnknownHeaderCount { get { throw null; } }
+        internal ulong UrlContext { get { throw null; } }
+        internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_VERB VerbId { get { throw null; } }
+        internal bool CheckAuthenticated() { throw null; }
+        public virtual void Dispose() { }
+        internal uint GetChunks(ref int dataChunkIndex, ref uint dataChunkOffset, byte[] buffer, int offset, int size) { throw null; }
+        internal Microsoft.AspNetCore.HttpSys.Internal.CookedUrl GetCookedUrl() { throw null; }
+        internal string GetKnownHeader(Microsoft.AspNetCore.HttpSys.Internal.HttpSysRequestHeader header) { throw null; }
+        internal Microsoft.AspNetCore.HttpSys.Internal.SocketAddress GetLocalEndPoint() { throw null; }
+        internal string GetRawUrl() { throw null; }
+        internal System.Span<byte> GetRawUrlInBytes() { throw null; }
+        internal Microsoft.AspNetCore.HttpSys.Internal.SocketAddress GetRemoteEndPoint() { throw null; }
+        internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SSL_PROTOCOL_INFO GetTlsHandshake() { throw null; }
+        internal void GetUnknownHeaders(System.Collections.Generic.IDictionary<string, Microsoft.Extensions.Primitives.StringValues> unknownHeaders) { }
+        internal System.Security.Principal.WindowsPrincipal GetUser() { throw null; }
+        internal string GetVerb() { throw null; }
+        internal System.Version GetVersion() { throw null; }
+        internal void ReleasePins() { }
+    }
+    internal partial class HeaderCollection : Microsoft.AspNetCore.Http.IHeaderDictionary, System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.Generic.IDictionary<string, Microsoft.Extensions.Primitives.StringValues>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.IEnumerable
+    {
+        public HeaderCollection() { }
+        public HeaderCollection(System.Collections.Generic.IDictionary<string, Microsoft.Extensions.Primitives.StringValues> store) { }
+        public long? ContentLength { get { throw null; } set { } }
+        public int Count { get { throw null; } }
+        public bool IsReadOnly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+        public Microsoft.Extensions.Primitives.StringValues this[string key] { get { throw null; } set { } }
+        public System.Collections.Generic.ICollection<string> Keys { get { throw null; } }
+        Microsoft.Extensions.Primitives.StringValues System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.this[string key] { get { throw null; } set { } }
+        public System.Collections.Generic.ICollection<Microsoft.Extensions.Primitives.StringValues> Values { get { throw null; } }
+        public void Add(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { }
+        public void Add(string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        public void Append(string key, string value) { }
+        public void Clear() { }
+        public bool Contains(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { throw null; }
+        public bool ContainsKey(string key) { throw null; }
+        public void CopyTo(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] array, int arrayIndex) { }
+        public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>> GetEnumerator() { throw null; }
+        public System.Collections.Generic.IEnumerable<string> GetValues(string key) { throw null; }
+        public bool Remove(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { throw null; }
+        public bool Remove(string key) { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        public static void ValidateHeaderCharacters(Microsoft.Extensions.Primitives.StringValues headerValues) { }
+        public static void ValidateHeaderCharacters(string headerCharacters) { }
+    }
+    internal static partial class UnsafeNclNativeMethods
+    {
+        [System.Runtime.InteropServices.DllImport("api-ms-win-core-io-l1-1-0.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint CancelIoEx(System.Runtime.InteropServices.SafeHandle handle, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped overlapped);
+        [System.Runtime.InteropServices.DllImport("api-ms-win-core-heap-L1-2-0.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern System.IntPtr GetProcessHeap();
+        [System.Runtime.InteropServices.DllImport("api-ms-win-core-heap-L1-2-0.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern bool HeapFree(System.IntPtr hHeap, uint dwFlags, System.IntPtr lpMem);
+        [System.Runtime.InteropServices.DllImport("api-ms-win-core-kernel32-legacy-l1-1-0.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern bool SetFileCompletionNotificationModes(System.Runtime.InteropServices.SafeHandle handle, Microsoft.AspNetCore.HttpSys.Internal.UnsafeNclNativeMethods.FileCompletionNotificationModes modes);
+        [System.Runtime.InteropServices.DllImport("tokenbinding.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public unsafe static extern int TokenBindingVerifyMessage(byte* tokenBindingMessage, uint tokenBindingMessageSize, char* keyType, byte* tlsUnique, uint tlsUniqueSize, out Microsoft.AspNetCore.HttpSys.Internal.HeapAllocHandle resultList);
+        internal static partial class ErrorCodes
+        {
+            internal const uint ERROR_ACCESS_DENIED = (uint)5;
+            internal const uint ERROR_ALREADY_EXISTS = (uint)183;
+            internal const uint ERROR_CONNECTION_INVALID = (uint)1229;
+            internal const uint ERROR_FILE_NOT_FOUND = (uint)2;
+            internal const uint ERROR_HANDLE_EOF = (uint)38;
+            internal const uint ERROR_INVALID_NAME = (uint)123;
+            internal const uint ERROR_INVALID_PARAMETER = (uint)87;
+            internal const uint ERROR_IO_PENDING = (uint)997;
+            internal const uint ERROR_MORE_DATA = (uint)234;
+            internal const uint ERROR_NOT_FOUND = (uint)1168;
+            internal const uint ERROR_NOT_SUPPORTED = (uint)50;
+            internal const uint ERROR_OPERATION_ABORTED = (uint)995;
+            internal const uint ERROR_SHARING_VIOLATION = (uint)32;
+            internal const uint ERROR_SUCCESS = (uint)0;
+        }
+        [System.FlagsAttribute]
+        internal enum FileCompletionNotificationModes : byte
+        {
+            None = (byte)0,
+            SkipCompletionPortOnSuccess = (byte)1,
+            SkipSetEventOnHandle = (byte)2,
+        }
+        internal static partial class SafeNetHandles
+        {
+            [System.Runtime.InteropServices.DllImport("api-ms-win-core-handle-l1-1-0.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern bool CloseHandle(System.IntPtr handle);
+            [System.Runtime.InteropServices.DllImport("sspicli.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int FreeContextBuffer(System.IntPtr contextBuffer);
+            [System.Runtime.InteropServices.DllImport("api-ms-win-core-heap-obsolete-L1-1-0.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern Microsoft.AspNetCore.HttpSys.Internal.SafeLocalFreeChannelBinding LocalAllocChannelBinding(int uFlags, System.UIntPtr sizetdwBytes);
+            [System.Runtime.InteropServices.DllImport("api-ms-win-core-heap-obsolete-L1-1-0.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern System.IntPtr LocalFree(System.IntPtr handle);
+        }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal partial class SECURITY_ATTRIBUTES
+        {
+            public bool bInheritHandle;
+            public Microsoft.AspNetCore.HttpSys.Internal.SafeLocalMemHandle lpSecurityDescriptor;
+            public int nLength;
+            public SECURITY_ATTRIBUTES() { }
+        }
+        internal static partial class TokenBinding
+        {
+            internal enum TOKENBINDING_EXTENSION_FORMAT
+            {
+                TOKENBINDING_EXTENSION_FORMAT_UNDEFINED = 0,
+            }
+            internal enum TOKENBINDING_HASH_ALGORITHM : byte
+            {
+                TOKENBINDING_HASH_ALGORITHM_SHA256 = (byte)4,
+            }
+            [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+            internal partial struct TOKENBINDING_IDENTIFIER
+            {
+                public TOKENBINDING_TYPE bindingType;
+                public TOKENBINDING_HASH_ALGORITHM hashAlgorithm;
+                public TOKENBINDING_SIGNATURE_ALGORITHM signatureAlgorithm;
+            }
+            [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+            internal partial struct TOKENBINDING_RESULT_DATA
+            {
+                public uint identifierSize;
+                public unsafe TOKENBINDING_IDENTIFIER* identifierData;
+                public TOKENBINDING_EXTENSION_FORMAT extensionFormat;
+                public uint extensionSize;
+                public System.IntPtr extensionData;
+            }
+            [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+            internal partial struct TOKENBINDING_RESULT_LIST
+            {
+                public uint resultCount;
+                public unsafe TOKENBINDING_RESULT_DATA* resultData;
+            }
+            internal enum TOKENBINDING_SIGNATURE_ALGORITHM : byte
+            {
+                TOKENBINDING_SIGNATURE_ALGORITHM_RSA = (byte)1,
+                TOKENBINDING_SIGNATURE_ALGORITHM_ECDSAP256 = (byte)3,
+            }
+            internal enum TOKENBINDING_TYPE : byte
+            {
+                TOKENBINDING_TYPE_PROVIDED = (byte)0,
+                TOKENBINDING_TYPE_REFERRED = (byte)1,
+            }
+        }
+    }
+}
+namespace Microsoft.AspNetCore.Server.HttpSys
+{
+    internal static partial class HttpApi
+    {
+        internal static Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_API_VERSION ApiVersion { get { throw null; } }
+        internal static bool Supported { get { throw null; } }
+        internal static Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTPAPI_VERSION Version { get { throw null; } }
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpAddUrlToUrlGroup(ulong urlGroupId, string pFullyQualifiedUrl, ulong context, uint pReserved);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpCancelHttpRequest(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong requestId, System.IntPtr pOverlapped);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpCloseRequestQueue(System.IntPtr pReqQueueHandle);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpCloseServerSession(ulong serverSessionId);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpCloseUrlGroup(ulong urlGroupId);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpCreateRequestQueue(Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTPAPI_VERSION version, string pName, Microsoft.AspNetCore.HttpSys.Internal.UnsafeNclNativeMethods.SECURITY_ATTRIBUTES pSecurityAttributes, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_CREATE_REQUEST_QUEUE_FLAG flags, out Microsoft.AspNetCore.Server.HttpSys.HttpRequestQueueV2Handle pReqQueueHandle);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpCreateServerSession(Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTPAPI_VERSION version, ulong* serverSessionId, uint reserved);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpCreateUrlGroup(ulong serverSessionId, ulong* urlGroupId, uint reserved);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpInitialize(Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTPAPI_VERSION version, uint flags, void* pReserved);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpReceiveClientCertificate(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong connectionId, uint flags, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SSL_CLIENT_CERT_INFO* pSslClientCertInfo, uint sslClientCertInfoSize, uint* pBytesReceived, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped pOverlapped);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpReceiveClientCertificate(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong connectionId, uint flags, byte* pSslClientCertInfo, uint sslClientCertInfoSize, uint* pBytesReceived, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped pOverlapped);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpReceiveHttpRequest(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong requestId, uint flags, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_REQUEST* pRequestBuffer, uint requestBufferLength, uint* pBytesReturned, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped pOverlapped);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpReceiveRequestEntityBody(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong requestId, uint flags, System.IntPtr pEntityBuffer, uint entityBufferLength, out uint bytesReturned, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped pOverlapped);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpRemoveUrlFromUrlGroup(ulong urlGroupId, string pFullyQualifiedUrl, uint flags);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpSendHttpResponse(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong requestId, uint flags, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_RESPONSE_V2* pHttpResponse, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_CACHE_POLICY* pCachePolicy, uint* pBytesSent, System.IntPtr pReserved1, uint Reserved2, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped pOverlapped, System.IntPtr pLogData);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern uint HttpSendResponseEntityBody(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong requestId, uint flags, ushort entityChunkCount, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_DATA_CHUNK* pEntityChunks, uint* pBytesSent, System.IntPtr pReserved1, uint Reserved2, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped pOverlapped, System.IntPtr pLogData);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpSetRequestQueueProperty(System.Runtime.InteropServices.SafeHandle requestQueueHandle, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SERVER_PROPERTY serverProperty, System.IntPtr pPropertyInfo, uint propertyInfoLength, uint reserved, System.IntPtr pReserved);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpSetUrlGroupProperty(ulong urlGroupId, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SERVER_PROPERTY serverProperty, System.IntPtr pPropertyInfo, uint propertyInfoLength);
+        [System.Runtime.InteropServices.DllImport("httpapi.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern uint HttpWaitForDisconnectEx(System.Runtime.InteropServices.SafeHandle requestQueueHandle, ulong connectionId, uint reserved, Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped overlapped);
+    }
+    internal sealed partial class HttpRequestQueueV2Handle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        private HttpRequestQueueV2Handle() : base (default(bool)) { }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal partial class ResponseBody : System.IO.Stream
+    {
+        internal ResponseBody(Microsoft.AspNetCore.Server.HttpSys.RequestContext requestContext) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        internal bool IsDisposed { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        internal Microsoft.AspNetCore.Server.HttpSys.RequestContext RequestContext { get { throw null; } }
+        internal bool ThrowWriteExceptions { get { throw null; } }
+        internal void Abort(bool dispose = true) { }
+        public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        internal void CancelLastWrite() { }
+        protected override void Dispose(bool disposing) { }
+        public override int EndRead(System.IAsyncResult asyncResult) { throw null; }
+        public override void EndWrite(System.IAsyncResult asyncResult) { }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        internal System.Threading.Tasks.Task SendFileAsyncCore(string fileName, long offset, long? count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override void SetLength(long value) { }
+        internal void SwitchToOpaqueMode() { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+    internal partial class ResponseStreamAsyncResult : System.IAsyncResult, System.IDisposable
+    {
+        internal ResponseStreamAsyncResult(Microsoft.AspNetCore.Server.HttpSys.ResponseBody responseStream, System.ArraySegment<byte> data, bool chunked, System.Threading.CancellationToken cancellationToken) { }
+        internal ResponseStreamAsyncResult(Microsoft.AspNetCore.Server.HttpSys.ResponseBody responseStream, System.IO.FileStream fileStream, long offset, long count, bool chunked, System.Threading.CancellationToken cancellationToken) { }
+        internal ResponseStreamAsyncResult(Microsoft.AspNetCore.Server.HttpSys.ResponseBody responseStream, System.Threading.CancellationToken cancellationToken) { }
+        public object AsyncState { get { throw null; } }
+        public System.Threading.WaitHandle AsyncWaitHandle { get { throw null; } }
+        internal uint BytesSent { get { throw null; } set { } }
+        public bool CompletedSynchronously { get { throw null; } }
+        internal ushort DataChunkCount { get { throw null; } }
+        internal unsafe Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_DATA_CHUNK* DataChunks { get { throw null; } }
+        internal bool EndCalled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool IsCompleted { get { throw null; } }
+        internal Microsoft.AspNetCore.HttpSys.Internal.SafeNativeOverlapped NativeOverlapped { get { throw null; } }
+        internal System.Threading.Tasks.Task Task { get { throw null; } }
+        internal void Cancel(bool dispose) { }
+        internal void Complete() { }
+        public void Dispose() { }
+        internal void Fail(System.Exception ex) { }
+        internal void FailSilently() { }
+        internal void IOCompleted(uint errorCode) { }
+        internal void IOCompleted(uint errorCode, uint numBytes) { }
+    }
+    internal sealed partial class HttpServerSessionHandle : Microsoft.Win32.SafeHandles.CriticalHandleZeroOrMinusOneIsInvalid
+    {
+        internal HttpServerSessionHandle(ulong id) { }
+        internal ulong DangerousGetServerSessionId() { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal partial class ServerSession : System.IDisposable
+    {
+        internal ServerSession() { }
+        public Microsoft.AspNetCore.Server.HttpSys.HttpServerSessionHandle Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Dispose() { }
+    }
+    internal partial class UrlGroup : System.IDisposable
+    {
+        internal UrlGroup(Microsoft.AspNetCore.Server.HttpSys.ServerSession serverSession, Microsoft.Extensions.Logging.ILogger logger) { }
+        internal ulong Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Dispose() { }
+        internal void RegisterPrefix(string uriPrefix, int contextId) { }
+        internal void SetMaxConnections(long maxConnections) { }
+        internal void SetProperty(Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_SERVER_PROPERTY property, System.IntPtr info, uint infosize, bool throwOnError = true) { }
+        internal bool UnregisterPrefix(string uriPrefix) { throw null; }
+    }
+    internal partial class RequestQueue
+    {
+        internal RequestQueue(Microsoft.AspNetCore.Server.HttpSys.UrlGroup urlGroup, Microsoft.Extensions.Logging.ILogger logger) { }
+        internal System.Threading.ThreadPoolBoundHandle BoundHandle { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.Runtime.InteropServices.SafeHandle Handle { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal void AttachToUrlGroup() { }
+        internal void DetachFromUrlGroup() { }
+        public void Dispose() { }
+        internal void SetLengthLimit(long length) { }
+        internal void SetRejectionVerbosity(Microsoft.AspNetCore.Server.HttpSys.Http503VerbosityLevel verbosity) { }
+    }
+    internal enum BoundaryType
+    {
+        None = 0,
+        Chunked = 1,
+        ContentLength = 2,
+        Close = 3,
+        PassThrough = 4,
+        Invalid = 5,
+    }
+    internal sealed partial class Request
+    {
+        internal Request(Microsoft.AspNetCore.Server.HttpSys.RequestContext requestContext, Microsoft.AspNetCore.HttpSys.Internal.NativeRequestContext nativeRequestContext) { }
+        public System.IO.Stream Body { get { throw null; } }
+        public System.Security.Authentication.CipherAlgorithmType CipherAlgorithm { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int CipherStrength { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public long ConnectionId { get { throw null; } }
+        public long? ContentLength { get { throw null; } }
+        public bool HasEntityBody { get { throw null; } }
+        public System.Security.Authentication.HashAlgorithmType HashAlgorithm { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int HashStrength { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool HasRequestBodyStarted { get { throw null; } }
+        public Microsoft.AspNetCore.HttpSys.Internal.RequestHeaders Headers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal bool IsHeadMethod { get { throw null; } }
+        public bool IsHttps { get { throw null; } }
+        internal bool IsUpgradable { get { throw null; } }
+        public System.Security.Authentication.ExchangeAlgorithmType KeyExchangeAlgorithm { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int KeyExchangeStrength { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_VERB KnownMethod { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Net.IPAddress LocalIpAddress { get { throw null; } }
+        public int LocalPort { get { throw null; } }
+        public long? MaxRequestBodySize { get { throw null; } set { } }
+        public string Method { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string PathBase { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Security.Authentication.SslProtocols Protocol { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Version ProtocolVersion { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string QueryString { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string RawUrl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Net.IPAddress RemoteIpAddress { get { throw null; } }
+        public int RemotePort { get { throw null; } }
+        internal ulong RequestId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Scheme { get { throw null; } }
+        internal ulong UConnectionId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.Security.Principal.WindowsPrincipal User { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal void Dispose() { }
+        internal uint GetChunks(ref int dataChunkIndex, ref uint dataChunkOffset, byte[] buffer, int offset, int size) { throw null; }
+        internal void SwitchToOpaqueMode() { }
+    }
+    internal sealed partial class Response
+    {
+        internal Response(Microsoft.AspNetCore.Server.HttpSys.RequestContext requestContext) { }
+        public Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes AuthenticationChallenges { get { throw null; } set { } }
+        public System.IO.Stream Body { get { throw null; } }
+        internal bool BodyIsFinished { get { throw null; } }
+        internal Microsoft.AspNetCore.Server.HttpSys.BoundaryType BoundaryType { get { throw null; } }
+        public System.TimeSpan? CacheTtl { get { throw null; } set { } }
+        public long? ContentLength { get { throw null; } set { } }
+        internal long ExpectedBodyLength { get { throw null; } }
+        internal bool HasComputedHeaders { get { throw null; } }
+        public bool HasStarted { get { throw null; } }
+        public Microsoft.AspNetCore.HttpSys.Internal.HeaderCollection Headers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string ReasonPhrase { get { throw null; } set { } }
+        public int StatusCode { get { throw null; } set { } }
+        internal void Abort() { }
+        internal void CancelLastWrite() { }
+        internal Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_FLAGS ComputeHeaders(long writeCount, bool endOfRequest = false) { throw null; }
+        internal void Dispose() { }
+        public System.Threading.Tasks.Task SendFileAsync(string path, long offset, long? count, System.Threading.CancellationToken cancel) { throw null; }
+        internal uint SendHeaders(Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_DATA_CHUNK[] dataChunks, Microsoft.AspNetCore.Server.HttpSys.ResponseStreamAsyncResult asyncResult, Microsoft.AspNetCore.HttpSys.Internal.HttpApiTypes.HTTP_FLAGS flags, bool isOpaqueUpgrade) { throw null; }
+        internal void SendOpaqueUpgrade() { }
+        internal void SwitchToOpaqueMode() { }
+    }
+    internal partial class DisconnectListener
+    {
+        internal DisconnectListener(Microsoft.AspNetCore.Server.HttpSys.RequestQueue requestQueue, Microsoft.Extensions.Logging.ILogger logger) { }
+        internal System.Threading.CancellationToken GetTokenForConnection(ulong connectionId) { throw null; }
+    }
+    internal partial class HttpSysListener : System.IDisposable
+    {
+        internal static readonly bool SkipIOCPCallbackOnSuccess;
+        public HttpSysListener(Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        internal Microsoft.AspNetCore.Server.HttpSys.DisconnectListener DisconnectListener { get { throw null; } }
+        public bool IsListening { get { throw null; } }
+        internal Microsoft.Extensions.Logging.ILogger Logger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions Options { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.Server.HttpSys.RequestQueue RequestQueue { get { throw null; } }
+        internal Microsoft.AspNetCore.Server.HttpSys.UrlGroup UrlGroup { get { throw null; } }
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Server.HttpSys.RequestContext> AcceptAsync() { throw null; }
+        internal void SendError(ulong requestId, int httpStatusCode, System.Collections.Generic.IList<string> authChallenges = null) { }
+        public void Start() { }
+        public void Dispose() { }
+        internal bool ValidateAuth(Microsoft.AspNetCore.HttpSys.Internal.NativeRequestContext requestMemory) { throw null; }
+        internal bool ValidateRequest(Microsoft.AspNetCore.HttpSys.Internal.NativeRequestContext requestMemory) { throw null; }
+        internal enum State
+        {
+            Stopped = 0,
+            Started = 1,
+            Disposed = 2,
+        }
+    }
+    internal sealed partial class RequestContext : System.IDisposable
+    {
+        internal RequestContext(Microsoft.AspNetCore.Server.HttpSys.HttpSysListener server, Microsoft.AspNetCore.HttpSys.Internal.NativeRequestContext memoryBlob) { }
+        internal bool AllowSynchronousIO { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Threading.CancellationToken DisconnectToken { get { throw null; } }
+        public bool IsUpgradableRequest { get { throw null; } }
+        internal Microsoft.Extensions.Logging.ILogger Logger { get { throw null; } }
+        public Microsoft.AspNetCore.Server.HttpSys.Request Request { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Server.HttpSys.Response Response { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.Server.HttpSys.HttpSysListener Server { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Guid TraceIdentifier { get { throw null; } }
+        public System.Security.Principal.WindowsPrincipal User { get { throw null; } }
+        public void Abort() { }
+        public void Dispose() { }
+        internal void ForceCancelRequest() { }
+        internal System.Threading.CancellationTokenRegistration RegisterForCancellation(System.Threading.CancellationToken cancellationToken) { throw null; }
+        internal bool TryGetChannelBinding(ref System.Security.Authentication.ExtendedProtection.ChannelBinding value) { throw null; }
+        public System.Threading.Tasks.Task<System.IO.Stream> UpgradeAsync() { throw null; }
+    }
+    internal partial class MessagePump : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable
+    {
+        public MessagePump(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions> options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider authentication) { }
+        public Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.Server.HttpSys.HttpSysListener Listener { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Dispose() { }
+        public System.Threading.Tasks.Task StartAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+}
diff --git a/src/Servers/HttpSys/ref/Microsoft.AspNetCore.Server.HttpSys.csproj b/src/Servers/HttpSys/ref/Microsoft.AspNetCore.Server.HttpSys.csproj
index 724aaeedb1a97889152af8f4031b6553cd6d69fe..8f6d3ba3e0acc87ba6cc809e7cae856e409df1d5 100644
--- a/src/Servers/HttpSys/ref/Microsoft.AspNetCore.Server.HttpSys.csproj
+++ b/src/Servers/HttpSys/ref/Microsoft.AspNetCore.Server.HttpSys.csproj
@@ -5,11 +5,13 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Server.HttpSys.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
-    <Reference Include="Microsoft.Win32.Registry"  />
-    <Reference Include="System.Security.Principal.Windows"  />
+    <Compile Include="Microsoft.AspNetCore.Server.HttpSys.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Core" />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Hosting" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="Microsoft.Win32.Registry" />
+    <Reference Include="System.Security.Principal.Windows" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj b/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj
index 2e57c61ce8da824fb3590ffe6fa21b6dc03e580e..9877d269859d6958715abb9e2e062d6023cfa95e 100644
--- a/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj
+++ b/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj
@@ -8,7 +8,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;weblistener;httpsys</PackageTags>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs
index ab9860b0336fcb563e9e3ab373745e511bac6692..e196d651971bc9b7c0fbc2cb0a36a3d9dbf84a05 100644
--- a/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs
+++ b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs
@@ -1,8 +1,28 @@
 // Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
-using System.Runtime.CompilerServices;
-using Microsoft.AspNetCore.Http.Features;
-
-[assembly: TypeForwardedTo(typeof(IServerVariablesFeature))]
-
+namespace Microsoft.AspNetCore.Server.IIS
+{
+    internal static partial class CoreStrings
+    {
+        internal static string BadRequest { get { throw null; } }
+        internal static string BadRequest_RequestBodyTooLarge { get { throw null; } }
+        internal static string CannotUpgradeNonUpgradableRequest { get { throw null; } }
+        internal static string ConnectionAbortedByApplication { get { throw null; } }
+        internal static string ConnectionOrStreamAbortedByCancellationToken { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string MaxRequestBodySizeCannotBeModifiedAfterRead { get { throw null; } }
+        internal static string MaxRequestBodySizeCannotBeModifiedForUpgradedRequests { get { throw null; } }
+        internal static string MaxRequestLimitWarning { get { throw null; } }
+        internal static string NonNegativeNumberOrNullRequired { get { throw null; } }
+        internal static string ParameterReadOnlyAfterResponseStarted { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string ResponseStreamWasUpgraded { get { throw null; } }
+        internal static string SynchronousReadsDisallowed { get { throw null; } }
+        internal static string SynchronousWritesDisallowed { get { throw null; } }
+        internal static string UnhandledApplicationException { get { throw null; } }
+        internal static string UpgradeCannotBeCalledMultipleTimes { get { throw null; } }
+        internal static string WritingToResponseBodyAfterResponseCompleted { get { throw null; } }
+        internal static string FormatParameterReadOnlyAfterResponseStarted(object name) { throw null; }
+    }
+}
\ No newline at end of file
diff --git a/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj
index a88930de54cc79c01c96fbda84768a77c8b45b62..d83e4e0301fd2718dfc38a64097db30db7dd651e 100644
--- a/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj
+++ b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj
@@ -6,14 +6,15 @@
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Server.IIS.netcoreapp.cs" />
     <Compile Include="Microsoft.AspNetCore.Server.IIS.Manual.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Features"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Physical"  />
-    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources"  />
-    <Reference Include="System.IO.Pipelines"  />
-    <Reference Include="System.Security.Principal.Windows"  />
+    <Compile Include="../src/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Core" />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Physical" />
+    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources" />
+    <Reference Include="System.IO.Pipelines" />
+    <Reference Include="System.Security.Principal.Windows" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj
index a95e4ec56ad221928ff6937211cfe0bef805101d..1c15bb18581d09d5173982940e085c7e5c370b4e 100644
--- a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj
+++ b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj
@@ -10,7 +10,7 @@
     <PackageTags>aspnetcore;iis</PackageTags>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <NativeAssetsTargetFramework>$(DefaultNetCoreTargetFramework)</NativeAssetsTargetFramework>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj b/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj
index dd8210c336d6ac5edcd1ed8947fae252fbac4939..fabcb2938ad1e8a30f94d6d0718c5760d7b3b805 100644
--- a/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj
+++ b/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj
@@ -11,7 +11,7 @@
 
   <ItemGroup Condition="'$(OS)' == 'Windows_NT'">
     <TestAssetPublishProfile Include="Portable" Properties="TargetFramework=$(DefaultNetCoreTargetFramework)" />
-    <TestAssetPublishProfile Include="Standalone-x64" Properties="RuntimeIdentifier=win-x64;" />
+    <TestAssetPublishProfile Condition="'$(TargetArchitecture)' != 'arm'" Include="Standalone-x64" Properties="RuntimeIdentifier=win-x64;" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/InProcessWebSite.csproj b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/InProcessWebSite.csproj
index 083c9a446a4fda3079c1bb4fec3ed0d7828d001d..4f4c84730d4bc6a8acfe083d7bb636bc694614ef 100644
--- a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/InProcessWebSite.csproj
+++ b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/InProcessWebSite.csproj
@@ -9,7 +9,7 @@
 
   <ItemGroup Condition="'$(OS)' == 'Windows_NT'">
     <TestAssetPublishProfile Include="Portable" Properties="TargetFramework=$(DefaultNetCoreTargetFramework)" />
-    <TestAssetPublishProfile Include="Standalone-x64" Properties="RuntimeIdentifier=win-x64;" />
+    <TestAssetPublishProfile Condition="'$(TargetArchitecture)' != 'arm'" Include="Standalone-x64" Properties="RuntimeIdentifier=win-x64;" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/Servers/IIS/IISIntegration/ref/Microsoft.AspNetCore.Server.IISIntegration.Manual.cs b/src/Servers/IIS/IISIntegration/ref/Microsoft.AspNetCore.Server.IISIntegration.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b2eb6c120c7e914484e9ee67214ff66cb3278ecd
--- /dev/null
+++ b/src/Servers/IIS/IISIntegration/ref/Microsoft.AspNetCore.Server.IISIntegration.Manual.cs
@@ -0,0 +1,18 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Builder
+{
+    public partial class IISOptions
+    {
+        internal bool ForwardWindowsAuthentication { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+}
+namespace Microsoft.AspNetCore.Server.IISIntegration
+{
+    internal partial class IISSetupFilter : Microsoft.AspNetCore.Hosting.IStartupFilter
+    {
+        internal IISSetupFilter(string pairingToken, Microsoft.AspNetCore.Http.PathString pathBase, bool isWebsocketsSupported) { }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> Configure(System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> next) { throw null; }
+    }
+}
diff --git a/src/Servers/IIS/IISIntegration/ref/Microsoft.AspNetCore.Server.IISIntegration.csproj b/src/Servers/IIS/IISIntegration/ref/Microsoft.AspNetCore.Server.IISIntegration.csproj
index 1c8b4a1c05c5807862f094fa7dfeb61a324194da..713ecf4507aeb1bc7cda254663f13461271956db 100644
--- a/src/Servers/IIS/IISIntegration/ref/Microsoft.AspNetCore.Server.IISIntegration.csproj
+++ b/src/Servers/IIS/IISIntegration/ref/Microsoft.AspNetCore.Server.IISIntegration.csproj
@@ -5,15 +5,17 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Server.IISIntegration.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.HttpOverrides"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="System.IO.Pipelines"  />
-    <Reference Include="System.Security.Principal.Windows"  />
+    <Compile Include="Microsoft.AspNetCore.Server.IISIntegration.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Core" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.HttpOverrides" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="System.IO.Pipelines" />
+    <Reference Include="System.Security.Principal.Windows" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj
index ccc1caa9bc3b7b4efbb76d027a3074cbaeaa4e0b..addaf56ff2833d0ed2f3f8f19f11bbf23dbf4fa3 100644
--- a/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj
+++ b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj
@@ -8,7 +8,7 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;iis</PackageTags>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Servers/Kestrel/Core/ref/Microsoft.AspNetCore.Server.Kestrel.Core.Manual.cs b/src/Servers/Kestrel/Core/ref/Microsoft.AspNetCore.Server.Kestrel.Core.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..4dec82338a3aa874629a0f17bfbee4cdb8716fe1
--- /dev/null
+++ b/src/Servers/Kestrel/Core/ref/Microsoft.AspNetCore.Server.Kestrel.Core.Manual.cs
@@ -0,0 +1,1957 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Server.Kestrel.Core
+{
+    public partial class KestrelServer : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable
+    {
+        internal KestrelServer(Microsoft.AspNetCore.Connections.IConnectionListenerFactory transportFactory, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServiceContext serviceContext) { }
+    }
+    public sealed partial class BadHttpRequestException : System.IO.IOException
+    {
+        internal Microsoft.Extensions.Primitives.StringValues AllowedHeader { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason Reason { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]internal static Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException GetException(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]internal static Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException GetException(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason, string detail) { throw null; }
+        [System.Diagnostics.StackTraceHiddenAttribute]
+        internal static void Throw(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason) { }
+        [System.Diagnostics.StackTraceHiddenAttribute]
+        internal static void Throw(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod method) { }
+        [System.Diagnostics.StackTraceHiddenAttribute]
+        internal static void Throw(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason, Microsoft.Extensions.Primitives.StringValues detail) { }
+        [System.Diagnostics.StackTraceHiddenAttribute]
+        internal static void Throw(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason, string detail) { }
+    }
+    internal sealed partial class LocalhostListenOptions : Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions
+    {
+        internal LocalhostListenOptions(int port) : base (default(System.Net.IPEndPoint)) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal override System.Threading.Tasks.Task BindAsync(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBindContext context) { throw null; }
+        internal Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions Clone(System.Net.IPAddress address) { throw null; }
+        internal override string GetDisplayName() { throw null; }
+    }
+    internal sealed partial class AnyIPListenOptions : Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions
+    {
+        internal AnyIPListenOptions(int port) : base (default(System.Net.IPEndPoint)) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal override System.Threading.Tasks.Task BindAsync(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBindContext context) { throw null; }
+    }
+    public partial class KestrelServerOptions
+    {
+        internal System.Security.Cryptography.X509Certificates.X509Certificate2 DefaultCertificate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal bool IsDevCertLoaded { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal bool Latin1RequestHeaders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal System.Collections.Generic.List<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions> ListenOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal void ApplyDefaultCert(Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions httpsOptions) { }
+        internal void ApplyEndpointDefaults(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions) { }
+        internal void ApplyHttpsDefaults(Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions httpsOptions) { }
+    }
+    internal static partial class CoreStrings
+    {
+        internal static string AddressBindingFailed { get { throw null; } }
+        internal static string ArgumentOutOfRange { get { throw null; } }
+        internal static string AuthenticationFailed { get { throw null; } }
+        internal static string AuthenticationTimedOut { get { throw null; } }
+        internal static string BadRequest { get { throw null; } }
+        internal static string BadRequest_BadChunkSizeData { get { throw null; } }
+        internal static string BadRequest_BadChunkSuffix { get { throw null; } }
+        internal static string BadRequest_ChunkedRequestIncomplete { get { throw null; } }
+        internal static string BadRequest_FinalTransferCodingNotChunked { get { throw null; } }
+        internal static string BadRequest_HeadersExceedMaxTotalSize { get { throw null; } }
+        internal static string BadRequest_InvalidCharactersInHeaderName { get { throw null; } }
+        internal static string BadRequest_InvalidContentLength_Detail { get { throw null; } }
+        internal static string BadRequest_InvalidHostHeader { get { throw null; } }
+        internal static string BadRequest_InvalidHostHeader_Detail { get { throw null; } }
+        internal static string BadRequest_InvalidRequestHeadersNoCRLF { get { throw null; } }
+        internal static string BadRequest_InvalidRequestHeader_Detail { get { throw null; } }
+        internal static string BadRequest_InvalidRequestLine { get { throw null; } }
+        internal static string BadRequest_InvalidRequestLine_Detail { get { throw null; } }
+        internal static string BadRequest_InvalidRequestTarget_Detail { get { throw null; } }
+        internal static string BadRequest_LengthRequired { get { throw null; } }
+        internal static string BadRequest_LengthRequiredHttp10 { get { throw null; } }
+        internal static string BadRequest_MalformedRequestInvalidHeaders { get { throw null; } }
+        internal static string BadRequest_MethodNotAllowed { get { throw null; } }
+        internal static string BadRequest_MissingHostHeader { get { throw null; } }
+        internal static string BadRequest_MultipleContentLengths { get { throw null; } }
+        internal static string BadRequest_MultipleHostHeaders { get { throw null; } }
+        internal static string BadRequest_RequestBodyTimeout { get { throw null; } }
+        internal static string BadRequest_RequestBodyTooLarge { get { throw null; } }
+        internal static string BadRequest_RequestHeadersTimeout { get { throw null; } }
+        internal static string BadRequest_RequestLineTooLong { get { throw null; } }
+        internal static string BadRequest_TooManyHeaders { get { throw null; } }
+        internal static string BadRequest_UnexpectedEndOfRequestContent { get { throw null; } }
+        internal static string BadRequest_UnrecognizedHTTPVersion { get { throw null; } }
+        internal static string BadRequest_UpgradeRequestCannotHavePayload { get { throw null; } }
+        internal static string BigEndianNotSupported { get { throw null; } }
+        internal static string BindingToDefaultAddress { get { throw null; } }
+        internal static string BindingToDefaultAddresses { get { throw null; } }
+        internal static string CannotUpgradeNonUpgradableRequest { get { throw null; } }
+        internal static string CertNotFoundInStore { get { throw null; } }
+        internal static string ConcurrentTimeoutsNotSupported { get { throw null; } }
+        internal static string ConfigureHttpsFromMethodCall { get { throw null; } }
+        internal static string ConfigurePathBaseFromMethodCall { get { throw null; } }
+        internal static string ConnectionAbortedByApplication { get { throw null; } }
+        internal static string ConnectionAbortedByClient { get { throw null; } }
+        internal static string ConnectionAbortedDuringServerShutdown { get { throw null; } }
+        internal static string ConnectionOrStreamAbortedByCancellationToken { get { throw null; } }
+        internal static string ConnectionShutdownError { get { throw null; } }
+        internal static string ConnectionTimedBecauseResponseMininumDataRateNotSatisfied { get { throw null; } }
+        internal static string ConnectionTimedOutByServer { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string DynamicPortOnLocalhostNotSupported { get { throw null; } }
+        internal static string EndpointAlreadyInUse { get { throw null; } }
+        internal static string EndPointHttp2NotNegotiated { get { throw null; } }
+        internal static string EndpointMissingUrl { get { throw null; } }
+        internal static string EndPointRequiresAtLeastOneProtocol { get { throw null; } }
+        internal static string FallbackToIPv4Any { get { throw null; } }
+        internal static string GreaterThanZeroRequired { get { throw null; } }
+        internal static string HeaderNotAllowedOnResponse { get { throw null; } }
+        internal static string HeadersAreReadOnly { get { throw null; } }
+        internal static string HPackErrorDynamicTableSizeUpdateNotAtBeginningOfHeaderBlock { get { throw null; } }
+        internal static string HPackErrorDynamicTableSizeUpdateTooLarge { get { throw null; } }
+        internal static string HPackErrorIncompleteHeaderBlock { get { throw null; } }
+        internal static string HPackErrorIndexOutOfRange { get { throw null; } }
+        internal static string HPackErrorIntegerTooBig { get { throw null; } }
+        internal static string HPackErrorNotEnoughBuffer { get { throw null; } }
+        internal static string HPackHuffmanError { get { throw null; } }
+        internal static string HPackHuffmanErrorDestinationTooSmall { get { throw null; } }
+        internal static string HPackHuffmanErrorEOS { get { throw null; } }
+        internal static string HPackHuffmanErrorIncomplete { get { throw null; } }
+        internal static string HPackStringLengthTooLarge { get { throw null; } }
+        internal static string Http2ConnectionFaulted { get { throw null; } }
+        internal static string Http2ErrorConnectionSpecificHeaderField { get { throw null; } }
+        internal static string Http2ErrorConnectMustNotSendSchemeOrPath { get { throw null; } }
+        internal static string Http2ErrorContinuationWithNoHeaders { get { throw null; } }
+        internal static string Http2ErrorDuplicatePseudoHeaderField { get { throw null; } }
+        internal static string Http2ErrorFlowControlWindowExceeded { get { throw null; } }
+        internal static string Http2ErrorFrameOverLimit { get { throw null; } }
+        internal static string Http2ErrorHeaderNameUppercase { get { throw null; } }
+        internal static string Http2ErrorHeadersInterleaved { get { throw null; } }
+        internal static string Http2ErrorHeadersWithTrailersNoEndStream { get { throw null; } }
+        internal static string Http2ErrorInitialWindowSizeInvalid { get { throw null; } }
+        internal static string Http2ErrorInvalidPreface { get { throw null; } }
+        internal static string Http2ErrorMaxStreams { get { throw null; } }
+        internal static string Http2ErrorMethodInvalid { get { throw null; } }
+        internal static string Http2ErrorMinTlsVersion { get { throw null; } }
+        internal static string Http2ErrorMissingMandatoryPseudoHeaderFields { get { throw null; } }
+        internal static string Http2ErrorPaddingTooLong { get { throw null; } }
+        internal static string Http2ErrorPseudoHeaderFieldAfterRegularHeaders { get { throw null; } }
+        internal static string Http2ErrorPushPromiseReceived { get { throw null; } }
+        internal static string Http2ErrorResponsePseudoHeaderField { get { throw null; } }
+        internal static string Http2ErrorSettingsAckLengthNotZero { get { throw null; } }
+        internal static string Http2ErrorSettingsLengthNotMultipleOfSix { get { throw null; } }
+        internal static string Http2ErrorSettingsParameterOutOfRange { get { throw null; } }
+        internal static string Http2ErrorStreamAborted { get { throw null; } }
+        internal static string Http2ErrorStreamClosed { get { throw null; } }
+        internal static string Http2ErrorStreamHalfClosedRemote { get { throw null; } }
+        internal static string Http2ErrorStreamIdEven { get { throw null; } }
+        internal static string Http2ErrorStreamIdle { get { throw null; } }
+        internal static string Http2ErrorStreamIdNotZero { get { throw null; } }
+        internal static string Http2ErrorStreamIdZero { get { throw null; } }
+        internal static string Http2ErrorStreamSelfDependency { get { throw null; } }
+        internal static string Http2ErrorTrailerNameUppercase { get { throw null; } }
+        internal static string Http2ErrorTrailersContainPseudoHeaderField { get { throw null; } }
+        internal static string Http2ErrorUnexpectedFrameLength { get { throw null; } }
+        internal static string Http2ErrorUnknownPseudoHeaderField { get { throw null; } }
+        internal static string Http2ErrorWindowUpdateIncrementZero { get { throw null; } }
+        internal static string Http2ErrorWindowUpdateSizeInvalid { get { throw null; } }
+        internal static string Http2MinDataRateNotSupported { get { throw null; } }
+        internal static string HTTP2NoTlsOsx { get { throw null; } }
+        internal static string HTTP2NoTlsWin7 { get { throw null; } }
+        internal static string Http2StreamAborted { get { throw null; } }
+        internal static string Http2StreamErrorAfterHeaders { get { throw null; } }
+        internal static string Http2StreamErrorLessDataThanLength { get { throw null; } }
+        internal static string Http2StreamErrorMoreDataThanLength { get { throw null; } }
+        internal static string Http2StreamErrorPathInvalid { get { throw null; } }
+        internal static string Http2StreamErrorSchemeMismatch { get { throw null; } }
+        internal static string Http2StreamResetByApplication { get { throw null; } }
+        internal static string Http2StreamResetByClient { get { throw null; } }
+        internal static string Http2TellClientToCalmDown { get { throw null; } }
+        internal static string InvalidAsciiOrControlChar { get { throw null; } }
+        internal static string InvalidContentLength_InvalidNumber { get { throw null; } }
+        internal static string InvalidEmptyHeaderName { get { throw null; } }
+        internal static string InvalidServerCertificateEku { get { throw null; } }
+        internal static string InvalidUrl { get { throw null; } }
+        internal static string KeyAlreadyExists { get { throw null; } }
+        internal static string MaxRequestBodySizeCannotBeModifiedAfterRead { get { throw null; } }
+        internal static string MaxRequestBodySizeCannotBeModifiedForUpgradedRequests { get { throw null; } }
+        internal static string MaxRequestBufferSmallerThanRequestHeaderBuffer { get { throw null; } }
+        internal static string MaxRequestBufferSmallerThanRequestLineBuffer { get { throw null; } }
+        internal static string MinimumGracePeriodRequired { get { throw null; } }
+        internal static string MultipleCertificateSources { get { throw null; } }
+        internal static string NetworkInterfaceBindingFailed { get { throw null; } }
+        internal static string NoCertSpecifiedNoDevelopmentCertificateFound { get { throw null; } }
+        internal static string NonNegativeNumberOrNullRequired { get { throw null; } }
+        internal static string NonNegativeNumberRequired { get { throw null; } }
+        internal static string NonNegativeTimeSpanRequired { get { throw null; } }
+        internal static string OverridingWithKestrelOptions { get { throw null; } }
+        internal static string OverridingWithPreferHostingUrls { get { throw null; } }
+        internal static string ParameterReadOnlyAfterResponseStarted { get { throw null; } }
+        internal static string PositiveFiniteTimeSpanRequired { get { throw null; } }
+        internal static string PositiveNumberOrNullMinDataRateRequired { get { throw null; } }
+        internal static string PositiveNumberOrNullRequired { get { throw null; } }
+        internal static string PositiveNumberRequired { get { throw null; } }
+        internal static string PositiveTimeSpanRequired { get { throw null; } }
+        internal static string PositiveTimeSpanRequired1 { get { throw null; } }
+        internal static string ProtocolSelectionFailed { get { throw null; } }
+        internal static string RequestProcessingAborted { get { throw null; } }
+        internal static string RequestProcessingEndError { get { throw null; } }
+        internal static string RequestTrailersNotAvailable { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string ResponseStreamWasUpgraded { get { throw null; } }
+        internal static string ServerAlreadyStarted { get { throw null; } }
+        internal static string ServerCertificateRequired { get { throw null; } }
+        internal static string ServerShutdownDuringConnectionInitialization { get { throw null; } }
+        internal static string StartAsyncBeforeGetMemory { get { throw null; } }
+        internal static string SynchronousReadsDisallowed { get { throw null; } }
+        internal static string SynchronousWritesDisallowed { get { throw null; } }
+        internal static string TooFewBytesWritten { get { throw null; } }
+        internal static string TooManyBytesWritten { get { throw null; } }
+        internal static string UnableToConfigureHttpsBindings { get { throw null; } }
+        internal static string UnhandledApplicationException { get { throw null; } }
+        internal static string UnixSocketPathMustBeAbsolute { get { throw null; } }
+        internal static string UnknownTransportMode { get { throw null; } }
+        internal static string UnsupportedAddressScheme { get { throw null; } }
+        internal static string UpgradeCannotBeCalledMultipleTimes { get { throw null; } }
+        internal static string UpgradedConnectionLimitReached { get { throw null; } }
+        internal static string WritingToResponseBodyAfterResponseCompleted { get { throw null; } }
+        internal static string WritingToResponseBodyNotSupported { get { throw null; } }
+        internal static string FormatAddressBindingFailed(object address) { throw null; }
+        internal static string FormatArgumentOutOfRange(object min, object max) { throw null; }
+        internal static string FormatBadRequest_FinalTransferCodingNotChunked(object detail) { throw null; }
+        internal static string FormatBadRequest_InvalidContentLength_Detail(object detail) { throw null; }
+        internal static string FormatBadRequest_InvalidHostHeader_Detail(object detail) { throw null; }
+        internal static string FormatBadRequest_InvalidRequestHeader_Detail(object detail) { throw null; }
+        internal static string FormatBadRequest_InvalidRequestLine_Detail(object detail) { throw null; }
+        internal static string FormatBadRequest_InvalidRequestTarget_Detail(object detail) { throw null; }
+        internal static string FormatBadRequest_LengthRequired(object detail) { throw null; }
+        internal static string FormatBadRequest_LengthRequiredHttp10(object detail) { throw null; }
+        internal static string FormatBadRequest_UnrecognizedHTTPVersion(object detail) { throw null; }
+        internal static string FormatBindingToDefaultAddress(object address) { throw null; }
+        internal static string FormatBindingToDefaultAddresses(object address0, object address1) { throw null; }
+        internal static string FormatCertNotFoundInStore(object subject, object storeLocation, object storeName, object allowInvalid) { throw null; }
+        internal static string FormatConfigureHttpsFromMethodCall(object methodName) { throw null; }
+        internal static string FormatConfigurePathBaseFromMethodCall(object methodName) { throw null; }
+        internal static string FormatEndpointAlreadyInUse(object endpoint) { throw null; }
+        internal static string FormatEndpointMissingUrl(object endpointName) { throw null; }
+        internal static string FormatFallbackToIPv4Any(object port) { throw null; }
+        internal static string FormatHeaderNotAllowedOnResponse(object name, object statusCode) { throw null; }
+        internal static string FormatHPackErrorDynamicTableSizeUpdateTooLarge(object size, object maxSize) { throw null; }
+        internal static string FormatHPackErrorIndexOutOfRange(object index) { throw null; }
+        internal static string FormatHPackStringLengthTooLarge(object length, object maxStringLength) { throw null; }
+        internal static string FormatHttp2ErrorFrameOverLimit(object size, object limit) { throw null; }
+        internal static string FormatHttp2ErrorHeadersInterleaved(object frameType, object streamId, object headersStreamId) { throw null; }
+        internal static string FormatHttp2ErrorMethodInvalid(object method) { throw null; }
+        internal static string FormatHttp2ErrorMinTlsVersion(object protocol) { throw null; }
+        internal static string FormatHttp2ErrorPaddingTooLong(object frameType) { throw null; }
+        internal static string FormatHttp2ErrorSettingsParameterOutOfRange(object parameter) { throw null; }
+        internal static string FormatHttp2ErrorStreamAborted(object frameType, object streamId) { throw null; }
+        internal static string FormatHttp2ErrorStreamClosed(object frameType, object streamId) { throw null; }
+        internal static string FormatHttp2ErrorStreamHalfClosedRemote(object frameType, object streamId) { throw null; }
+        internal static string FormatHttp2ErrorStreamIdEven(object frameType, object streamId) { throw null; }
+        internal static string FormatHttp2ErrorStreamIdle(object frameType, object streamId) { throw null; }
+        internal static string FormatHttp2ErrorStreamIdNotZero(object frameType) { throw null; }
+        internal static string FormatHttp2ErrorStreamIdZero(object frameType) { throw null; }
+        internal static string FormatHttp2ErrorStreamSelfDependency(object frameType, object streamId) { throw null; }
+        internal static string FormatHttp2ErrorUnexpectedFrameLength(object frameType, object expectedLength) { throw null; }
+        internal static string FormatHttp2StreamErrorPathInvalid(object path) { throw null; }
+        internal static string FormatHttp2StreamErrorSchemeMismatch(object requestScheme, object transportScheme) { throw null; }
+        internal static string FormatHttp2StreamResetByApplication(object errorCode) { throw null; }
+        internal static string FormatInvalidAsciiOrControlChar(object character) { throw null; }
+        internal static string FormatInvalidContentLength_InvalidNumber(object value) { throw null; }
+        internal static string FormatInvalidServerCertificateEku(object thumbprint) { throw null; }
+        internal static string FormatInvalidUrl(object url) { throw null; }
+        internal static string FormatMaxRequestBufferSmallerThanRequestHeaderBuffer(object requestBufferSize, object requestHeaderSize) { throw null; }
+        internal static string FormatMaxRequestBufferSmallerThanRequestLineBuffer(object requestBufferSize, object requestLineSize) { throw null; }
+        internal static string FormatMinimumGracePeriodRequired(object heartbeatInterval) { throw null; }
+        internal static string FormatMultipleCertificateSources(object endpointName) { throw null; }
+        internal static string FormatNetworkInterfaceBindingFailed(object address, object interfaceName, object error) { throw null; }
+        internal static string FormatOverridingWithKestrelOptions(object addresses, object methodName) { throw null; }
+        internal static string FormatOverridingWithPreferHostingUrls(object settingName, object addresses) { throw null; }
+        internal static string FormatParameterReadOnlyAfterResponseStarted(object name) { throw null; }
+        internal static string FormatTooFewBytesWritten(object written, object expected) { throw null; }
+        internal static string FormatTooManyBytesWritten(object written, object expected) { throw null; }
+        internal static string FormatUnknownTransportMode(object mode) { throw null; }
+        internal static string FormatUnsupportedAddressScheme(object address) { throw null; }
+        internal static string FormatWritingToResponseBodyNotSupported(object statusCode) { throw null; }
+    }
+
+    public partial class ListenOptions : Microsoft.AspNetCore.Connections.IConnectionBuilder
+    {
+        internal readonly System.Collections.Generic.List<System.Func<Microsoft.AspNetCore.Connections.ConnectionDelegate, Microsoft.AspNetCore.Connections.ConnectionDelegate>> _middleware;
+        internal ListenOptions(System.Net.IPEndPoint endPoint) { }
+        internal ListenOptions(string socketPath) { }
+        internal ListenOptions(ulong fileHandle) { }
+        internal ListenOptions(ulong fileHandle, Microsoft.AspNetCore.Connections.FileHandleType handleType) { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions KestrelServerOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+        internal System.Net.EndPoint EndPoint { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal bool IsHttp { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal bool IsTls { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal string Scheme { get { throw null; } }
+        internal virtual string GetDisplayName() { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal virtual System.Threading.Tasks.Task BindAsync(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBindContext context) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Server.Kestrel.Https.Internal
+{
+    internal partial class HttpsConnectionMiddleware
+    {
+        public HttpsConnectionMiddleware(Microsoft.AspNetCore.Connections.ConnectionDelegate next, Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions options) { }
+        public HttpsConnectionMiddleware(Microsoft.AspNetCore.Connections.ConnectionDelegate next, Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public System.Threading.Tasks.Task OnConnectionAsync(Microsoft.AspNetCore.Connections.ConnectionContext context) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Server.Kestrel.Https
+{
+    public static partial class CertificateLoader
+    {
+        internal static bool DoesCertificateHaveAnAccessiblePrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; }
+        internal static bool IsCertificateAllowedForServerAuth(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal
+{
+    internal static partial class MemoryPoolExtensions
+    {
+        public static int GetMinimumAllocSize(this System.Buffers.MemoryPool<byte> pool) { throw null; }
+        public static int GetMinimumSegmentSize(this System.Buffers.MemoryPool<byte> pool) { throw null; }
+    }
+    internal partial class DuplexPipeStreamAdapter<TStream> : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.DuplexPipeStream, System.IO.Pipelines.IDuplexPipe where TStream : System.IO.Stream
+    {
+        public DuplexPipeStreamAdapter(System.IO.Pipelines.IDuplexPipe duplexPipe, System.Func<System.IO.Stream, TStream> createStream) : base (default(System.IO.Pipelines.PipeReader), default(System.IO.Pipelines.PipeWriter), default(bool)) { }
+        public DuplexPipeStreamAdapter(System.IO.Pipelines.IDuplexPipe duplexPipe, System.IO.Pipelines.StreamPipeReaderOptions readerOptions, System.IO.Pipelines.StreamPipeWriterOptions writerOptions, System.Func<System.IO.Stream, TStream> createStream) : base (default(System.IO.Pipelines.PipeReader), default(System.IO.Pipelines.PipeWriter), default(bool)) { }
+        public System.IO.Pipelines.PipeReader Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.IO.Pipelines.PipeWriter Output { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public TStream Stream { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        protected override void Dispose(bool disposing) { }
+        public override System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
+    }
+    internal partial class DuplexPipeStream : System.IO.Stream
+    {
+        public DuplexPipeStream(System.IO.Pipelines.PipeReader input, System.IO.Pipelines.PipeWriter output, bool throwOnCancelled = false) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        public void CancelPendingRead() { }
+        public override int EndRead(System.IAsyncResult asyncResult) { throw null; }
+        public override void EndWrite(System.IAsyncResult asyncResult) { }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public override System.Threading.Tasks.ValueTask<int> ReadAsync(System.Memory<byte> destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+    }
+    internal partial class ConnectionLimitMiddleware
+    {
+        internal ConnectionLimitMiddleware(Microsoft.AspNetCore.Connections.ConnectionDelegate next, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ResourceCounter concurrentConnectionCounter, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace trace) { }
+        public ConnectionLimitMiddleware(Microsoft.AspNetCore.Connections.ConnectionDelegate next, long connectionLimit, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace trace) { }
+        public System.Threading.Tasks.Task OnConnectionAsync(Microsoft.AspNetCore.Connections.ConnectionContext connection) { throw null; }
+    }
+    internal static partial class HttpConnectionBuilderExtensions
+    {
+        public static Microsoft.AspNetCore.Connections.IConnectionBuilder UseHttpServer<TContext>(this Microsoft.AspNetCore.Connections.IConnectionBuilder builder, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServiceContext serviceContext, Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application, Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols protocols) { throw null; }
+    }
+    internal partial class HttpConnection : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutHandler
+    {
+        public HttpConnection(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionContext context) { }
+        internal void Initialize(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.IRequestProcessor requestProcessor) { }
+        public void OnTimeout(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason reason) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ProcessRequestsAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> httpApplication) { throw null; }
+    }
+    internal partial class ConnectionDispatcher
+    {
+        public ConnectionDispatcher(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServiceContext serviceContext, Microsoft.AspNetCore.Connections.ConnectionDelegate connectionDelegate) { }
+        public System.Threading.Tasks.Task StartAcceptingConnections(Microsoft.AspNetCore.Connections.IConnectionListener listener) { throw null; }
+    }
+    internal partial class ServerAddressesFeature : Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature
+    {
+        public ServerAddressesFeature() { }
+        public System.Collections.Generic.ICollection<string> Addresses { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool PreferHostingUrls { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class AddressBindContext
+    {
+        public AddressBindContext() { }
+        public System.Collections.Generic.ICollection<string> Addresses { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Func<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions, System.Threading.Tasks.Task> CreateBinding { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.List<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions> ListenOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.Logging.ILogger Logger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions ServerOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class AddressBinder
+    {
+        public AddressBinder() { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public static System.Threading.Tasks.Task BindAsync(Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature addresses, Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions serverOptions, Microsoft.Extensions.Logging.ILogger logger, System.Func<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions, System.Threading.Tasks.Task> createBinding) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal static System.Threading.Tasks.Task BindEndpointAsync(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions endpoint, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBindContext context) { throw null; }
+        internal static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions ParseAddress(string address, out bool https) { throw null; }
+        protected internal static bool TryCreateIPEndPoint(Microsoft.AspNetCore.Http.BindingAddress address, out System.Net.IPEndPoint endpoint) { throw null; }
+    }
+    internal partial class EndpointConfig
+    {
+        public EndpointConfig() { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.CertificateConfig Certificate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.Configuration.IConfigurationSection ConfigSection { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols? Protocols { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Url { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class EndpointDefaults
+    {
+        public EndpointDefaults() { }
+        public Microsoft.Extensions.Configuration.IConfigurationSection ConfigSection { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols? Protocols { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class CertificateConfig
+    {
+        public CertificateConfig(Microsoft.Extensions.Configuration.IConfigurationSection configSection) { }
+        public bool? AllowInvalid { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.Configuration.IConfigurationSection ConfigSection { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsFileCert { get { throw null; } }
+        public bool IsStoreCert { get { throw null; } }
+        public string Location { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Password { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Store { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Subject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class ConfigurationReader
+    {
+        public ConfigurationReader(Microsoft.Extensions.Configuration.IConfiguration configuration) { }
+        public System.Collections.Generic.IDictionary<string, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.CertificateConfig> Certificates { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.EndpointDefaults EndpointDefaults { get { throw null; } }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.EndpointConfig> Endpoints { get { throw null; } }
+        public bool Latin1RequestHeaders { get { throw null; } }
+    }
+    internal partial class HttpConnectionContext
+    {
+        public HttpConnectionContext() { }
+        public Microsoft.AspNetCore.Connections.ConnectionContext ConnectionContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.Features.IFeatureCollection ConnectionFeatures { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ConnectionId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Net.IPEndPoint LocalEndPoint { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Buffers.MemoryPool<byte> MemoryPool { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols Protocols { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Net.IPEndPoint RemoteEndPoint { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServiceContext ServiceContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutControl TimeoutControl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.IO.Pipelines.IDuplexPipe Transport { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial interface IRequestProcessor
+    {
+        void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException ex);
+        void HandleReadDataRateTimeout();
+        void HandleRequestHeadersTimeout();
+        void OnInputOrOutputCompleted();
+        System.Threading.Tasks.Task ProcessRequestsAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application);
+        void StopProcessingNextRequest();
+        void Tick(System.DateTimeOffset now);
+    }
+    internal partial class KestrelServerOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions>
+    {
+        public KestrelServerOptionsSetup(System.IServiceProvider services) { }
+        public void Configure(Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions options) { }
+    }
+    internal partial class ServiceContext
+    {
+        public ServiceContext() { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ConnectionManager ConnectionManager { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.DateHeaderValueManager DateHeaderValueManager { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.Heartbeat Heartbeat { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpParser<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1ParsingHandler> HttpParser { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace Log { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.IO.Pipelines.PipeScheduler Scheduler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions ServerOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ISystemClock SystemClock { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+}
+
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
+{
+    internal sealed partial class Http1ContentLengthMessageBody : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1MessageBody
+    {
+        public Http1ContentLengthMessageBody(bool keepAlive, long contentLength, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection context) : base (default(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection)) { }
+        public override void AdvanceTo(System.SequencePosition consumed) { }
+        public override void AdvanceTo(System.SequencePosition consumed, System.SequencePosition examined) { }
+        public override void CancelPendingRead() { }
+        public override void Complete(System.Exception exception) { }
+        public override System.Threading.Tasks.Task ConsumeAsync() { throw null; }
+        protected override void OnReadStarting() { }
+        protected override System.Threading.Tasks.Task OnStopAsync() { throw null; }
+        public override System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> ReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public override System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> ReadAsyncInternal(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public override bool TryRead(out System.IO.Pipelines.ReadResult readResult) { throw null; }
+        public override bool TryReadInternal(out System.IO.Pipelines.ReadResult readResult) { throw null; }
+    }
+    internal static partial class ReasonPhrases
+    {
+        public static byte[] ToStatusBytes(int statusCode, string reasonPhrase = null) { throw null; }
+    }
+    internal static partial class PathNormalizer
+    {
+        public unsafe static bool ContainsDotSegments(byte* start, byte* end) { throw null; }
+        public static string DecodePath(System.Span<byte> path, bool pathEncoded, string rawTarget, int queryLength) { throw null; }
+        public unsafe static int RemoveDotSegments(byte* start, byte* end) { throw null; }
+        public static int RemoveDotSegments(System.Span<byte> input) { throw null; }
+    }
+    internal enum RequestRejectionReason
+    {
+        UnrecognizedHTTPVersion = 0,
+        InvalidRequestLine = 1,
+        InvalidRequestHeader = 2,
+        InvalidRequestHeadersNoCRLF = 3,
+        MalformedRequestInvalidHeaders = 4,
+        InvalidContentLength = 5,
+        MultipleContentLengths = 6,
+        UnexpectedEndOfRequestContent = 7,
+        BadChunkSuffix = 8,
+        BadChunkSizeData = 9,
+        ChunkedRequestIncomplete = 10,
+        InvalidRequestTarget = 11,
+        InvalidCharactersInHeaderName = 12,
+        RequestLineTooLong = 13,
+        HeadersExceedMaxTotalSize = 14,
+        TooManyHeaders = 15,
+        RequestBodyTooLarge = 16,
+        RequestHeadersTimeout = 17,
+        RequestBodyTimeout = 18,
+        FinalTransferCodingNotChunked = 19,
+        LengthRequired = 20,
+        LengthRequiredHttp10 = 21,
+        OptionsMethodRequired = 22,
+        ConnectMethodRequired = 23,
+        MissingHostHeader = 24,
+        MultipleHostHeaders = 25,
+        InvalidHostHeader = 26,
+        UpgradeRequestCannotHavePayload = 27,
+        RequestBodyExceedsContentLength = 28,
+    }
+    internal static partial class ChunkWriter
+    {
+        public static int BeginChunkBytes(int dataCount, System.Span<byte> span) { throw null; }
+        internal static int GetPrefixBytesForChunk(int length, out bool sliceOneByte) { throw null; }
+        internal static int WriteBeginChunkBytes(this ref System.Buffers.BufferWriter<System.IO.Pipelines.PipeWriter> start, int dataCount) { throw null; }
+        internal static void WriteEndChunkBytes(this ref System.Buffers.BufferWriter<System.IO.Pipelines.PipeWriter> start) { }
+    }
+    internal sealed partial class HttpRequestPipeReader : System.IO.Pipelines.PipeReader
+    {
+        public HttpRequestPipeReader() { }
+        public void Abort(System.Exception error = null) { }
+        public override void AdvanceTo(System.SequencePosition consumed) { }
+        public override void AdvanceTo(System.SequencePosition consumed, System.SequencePosition examined) { }
+        public override void CancelPendingRead() { }
+        public override void Complete(System.Exception exception = null) { }
+        public override System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> ReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public void StartAcceptingReads(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody body) { }
+        public void StopAcceptingReads() { }
+        public override bool TryRead(out System.IO.Pipelines.ReadResult result) { throw null; }
+    }
+    internal sealed partial class HttpRequestStream : System.IO.Stream
+    {
+        public HttpRequestStream(Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature bodyControl, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestPipeReader pipeReader) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override int WriteTimeout { get { throw null; } set { } }
+        public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int EndRead(System.IAsyncResult asyncResult) { throw null; }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override System.Threading.Tasks.ValueTask<int> ReadAsync(System.Memory<byte> destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+    internal abstract partial class Http1MessageBody : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody
+    {
+        protected bool _completed;
+        protected readonly Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection _context;
+        protected Http1MessageBody(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection context) : base (default(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol)) { }
+        protected void CheckCompletedReadResult(System.IO.Pipelines.ReadResult result) { }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody For(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion httpVersion, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestHeaders headers, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection context) { throw null; }
+        protected override System.Threading.Tasks.Task OnConsumeAsync() { throw null; }
+        public abstract System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> ReadAsyncInternal(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
+        protected void ThrowIfCompleted() { }
+        public abstract bool TryReadInternal(out System.IO.Pipelines.ReadResult readResult);
+    }
+    internal partial interface IHttpOutputAborter
+    {
+        void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason);
+    }
+    internal partial class Http1OutputProducer : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpOutputAborter, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpOutputProducer, System.IDisposable
+    {
+        public Http1OutputProducer(System.IO.Pipelines.PipeWriter pipeWriter, string connectionId, Microsoft.AspNetCore.Connections.ConnectionContext connectionContext, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace log, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutControl timeoutControl, Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinResponseDataRateFeature minResponseDataRateFeature, System.Buffers.MemoryPool<byte> memoryPool) { }
+        public void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException error) { }
+        public void Advance(int bytes) { }
+        public void CancelPendingFlush() { }
+        public void Dispose() { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FirstWriteAsync(int statusCode, string reasonPhrase, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders responseHeaders, bool autoChunk, System.ReadOnlySpan<byte> buffer, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FirstWriteChunkedAsync(int statusCode, string reasonPhrase, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders responseHeaders, bool autoChunk, System.ReadOnlySpan<byte> buffer, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public System.Memory<byte> GetMemory(int sizeHint = 0) { throw null; }
+        public System.Span<byte> GetSpan(int sizeHint = 0) { throw null; }
+        public void Reset() { }
+        public void Stop() { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> Write100ContinueAsync() { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteChunkAsync(System.ReadOnlySpan<byte> buffer, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public System.Threading.Tasks.Task WriteDataAsync(System.ReadOnlySpan<byte> buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteDataToPipeAsync(System.ReadOnlySpan<byte> buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public void WriteResponseHeaders(int statusCode, string reasonPhrase, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders responseHeaders, bool autoChunk, bool appComplete) { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteStreamSuffixAsync() { throw null; }
+    }
+    internal sealed partial class HttpResponseStream : System.IO.Stream
+    {
+        public HttpResponseStream(Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature bodyControl, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponsePipeWriter pipeWriter) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override int ReadTimeout { get { throw null; } set { } }
+        public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { throw null; }
+        public override void EndWrite(System.IAsyncResult asyncResult) { }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+    }
+    internal sealed partial class HttpResponsePipeWriter : System.IO.Pipelines.PipeWriter
+    {
+        public HttpResponsePipeWriter(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpResponseControl pipeControl) { }
+        public void Abort() { }
+        public override void Advance(int bytes) { }
+        public override void CancelPendingFlush() { }
+        public override void Complete(System.Exception exception = null) { }
+        public override System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public override System.Memory<byte> GetMemory(int sizeHint = 0) { throw null; }
+        public override System.Span<byte> GetSpan(int sizeHint = 0) { throw null; }
+        public void StartAcceptingWrites() { }
+        public System.Threading.Tasks.Task StopAcceptingWritesAsync() { throw null; }
+        public override System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteAsync(System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+    }
+    internal partial class DateHeaderValueManager : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IHeartbeatHandler
+    {
+        public DateHeaderValueManager() { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.DateHeaderValueManager.DateHeaderValues GetDateHeaderValues() { throw null; }
+        public void OnHeartbeat(System.DateTimeOffset now) { }
+        public partial class DateHeaderValues
+        {
+            public byte[] Bytes;
+            public string String;
+            public DateHeaderValues() { }
+        }
+    }
+    [System.FlagsAttribute]
+    internal enum ConnectionOptions
+    {
+        None = 0,
+        Close = 1,
+        KeepAlive = 2,
+        Upgrade = 4,
+    }
+    internal abstract partial class HttpHeaders : Microsoft.AspNetCore.Http.IHeaderDictionary, System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.Generic.IDictionary<string, Microsoft.Extensions.Primitives.StringValues>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.IEnumerable
+    {
+        protected System.Collections.Generic.Dictionary<string, Microsoft.Extensions.Primitives.StringValues> MaybeUnknown;
+        protected long _bits;
+        protected long? _contentLength;
+        protected bool _isReadOnly;
+        protected HttpHeaders() { }
+        public long? ContentLength { get { throw null; } set { } }
+        public int Count { get { throw null; } }
+        Microsoft.Extensions.Primitives.StringValues Microsoft.AspNetCore.Http.IHeaderDictionary.this[string key] { get { throw null; } set { } }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.IsReadOnly { get { throw null; } }
+        Microsoft.Extensions.Primitives.StringValues System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.this[string key] { get { throw null; } set { } }
+        System.Collections.Generic.ICollection<string> System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.Keys { get { throw null; } }
+        System.Collections.Generic.ICollection<Microsoft.Extensions.Primitives.StringValues> System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.Values { get { throw null; } }
+        protected System.Collections.Generic.Dictionary<string, Microsoft.Extensions.Primitives.StringValues> Unknown { get { throw null; } }
+        protected virtual bool AddValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]protected static Microsoft.Extensions.Primitives.StringValues AppendValue(Microsoft.Extensions.Primitives.StringValues existing, string append) { throw null; }
+        protected virtual void ClearFast() { }
+        protected virtual bool CopyToFast(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] array, int arrayIndex) { throw null; }
+        protected virtual int GetCountFast() { throw null; }
+        protected virtual System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>> GetEnumeratorFast() { throw null; }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.TransferCoding GetFinalTransferCoding(Microsoft.Extensions.Primitives.StringValues transferEncoding) { throw null; }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.ConnectionOptions ParseConnection(Microsoft.Extensions.Primitives.StringValues connection) { throw null; }
+        protected virtual bool RemoveFast(string key) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]protected bool RemoveUnknown(string key) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Reset() { }
+        public void SetReadOnly() { }
+        protected virtual void SetValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Add(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Clear() { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Contains(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { throw null; }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.CopyTo(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] array, int arrayIndex) { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.Remove(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> item) { throw null; }
+        void System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.Add(string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        bool System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.ContainsKey(string key) { throw null; }
+        bool System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.Remove(string key) { throw null; }
+        bool System.Collections.Generic.IDictionary<System.String,Microsoft.Extensions.Primitives.StringValues>.TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,Microsoft.Extensions.Primitives.StringValues>>.GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        protected static void ThrowArgumentException() { }
+        protected static void ThrowDuplicateKeyException() { }
+        protected static void ThrowHeadersReadOnlyException() { }
+        protected static void ThrowKeyNotFoundException() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]protected bool TryGetUnknown(string key, ref Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        protected virtual bool TryGetValueFast(string key, out Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        public static void ValidateHeaderNameCharacters(string headerCharacters) { }
+        public static void ValidateHeaderValueCharacters(Microsoft.Extensions.Primitives.StringValues headerValues) { }
+        public static void ValidateHeaderValueCharacters(string headerCharacters) { }
+    }
+    internal abstract partial class HttpProtocol : Microsoft.AspNetCore.Http.Features.IEndpointFeature, Microsoft.AspNetCore.Http.Features.IFeatureCollection, Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature, Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature, Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature, Microsoft.AspNetCore.Http.Features.IHttpRequestFeature, Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature, Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature, Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature, Microsoft.AspNetCore.Http.Features.IHttpResponseFeature, Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature, Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature, Microsoft.AspNetCore.Http.Features.IRouteValuesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpResponseControl, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Type, object>>, System.Collections.IEnumerable
+    {
+        protected System.Exception _applicationException;
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.BodyControl _bodyControl;
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion _httpVersion;
+        protected volatile bool _keepAlive;
+        protected string _methodText;
+        protected string _parsedPath;
+        protected string _parsedQueryString;
+        protected string _parsedRawTarget;
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestProcessingStatus _requestProcessingStatus;
+        public HttpProtocol(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionContext context) { }
+        public bool AllowSynchronousIO { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.Features.IFeatureCollection ConnectionFeatures { get { throw null; } }
+        protected string ConnectionId { get { throw null; } }
+        public string ConnectionIdFeature { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HasFlushedHeaders { get { throw null; } }
+        public bool HasResponseCompleted { get { throw null; } }
+        public bool HasResponseStarted { get { throw null; } }
+        public bool HasStartedConsumingRequestBody { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestHeaders HttpRequestHeaders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpResponseControl HttpResponseControl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders HttpResponseHeaders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string HttpVersion { get { throw null; } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]set { } }
+        public bool IsUpgradableRequest { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsUpgraded { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Net.IPAddress LocalIpAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int LocalPort { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace Log { get { throw null; } }
+        public long? MaxRequestBodySize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod Method { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        Microsoft.AspNetCore.Http.Endpoint Microsoft.AspNetCore.Http.Features.IEndpointFeature.Endpoint { get { throw null; } set { } }
+        bool Microsoft.AspNetCore.Http.Features.IFeatureCollection.IsReadOnly { get { throw null; } }
+        object Microsoft.AspNetCore.Http.Features.IFeatureCollection.this[System.Type key] { get { throw null; } set { } }
+        int Microsoft.AspNetCore.Http.Features.IFeatureCollection.Revision { get { throw null; } }
+        bool Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature.AllowSynchronousIO { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.ConnectionId { get { throw null; } set { } }
+        System.Net.IPAddress Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalIpAddress { get { throw null; } set { } }
+        int Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalPort { get { throw null; } set { } }
+        System.Net.IPAddress Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemoteIpAddress { get { throw null; } set { } }
+        int Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemotePort { get { throw null; } set { } }
+        bool Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature.IsReadOnly { get { throw null; } }
+        long? Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature.MaxRequestBodySize { get { throw null; } set { } }
+        System.IO.Stream Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Body { get { throw null; } set { } }
+        Microsoft.AspNetCore.Http.IHeaderDictionary Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Headers { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Method { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Path { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.PathBase { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Protocol { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.QueryString { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.RawTarget { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Scheme { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature.TraceIdentifier { get { throw null; } set { } }
+        System.Threading.CancellationToken Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature.RequestAborted { get { throw null; } set { } }
+        bool Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature.Available { get { throw null; } }
+        Microsoft.AspNetCore.Http.IHeaderDictionary Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature.Trailers { get { throw null; } }
+        System.IO.Stream Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.Stream { get { throw null; } }
+        System.IO.Pipelines.PipeWriter Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.Writer { get { throw null; } }
+        System.IO.Stream Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Body { get { throw null; } set { } }
+        bool Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.HasStarted { get { throw null; } }
+        Microsoft.AspNetCore.Http.IHeaderDictionary Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Headers { get { throw null; } set { } }
+        string Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.ReasonPhrase { get { throw null; } set { } }
+        int Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.StatusCode { get { throw null; } set { } }
+        bool Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature.IsUpgradableRequest { get { throw null; } }
+        System.IO.Pipelines.PipeReader Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature.Reader { get { throw null; } }
+        Microsoft.AspNetCore.Routing.RouteValueDictionary Microsoft.AspNetCore.Http.Features.IRouteValuesFeature.RouteValues { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinRequestBodyDataRate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpOutputProducer Output { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]protected set { } }
+        public string Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string PathBase { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string QueryString { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string RawTarget { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ReasonPhrase { get { throw null; } set { } }
+        public System.Net.IPAddress RemoteIpAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int RemotePort { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Threading.CancellationToken RequestAborted { get { throw null; } set { } }
+        public System.IO.Stream RequestBody { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.IO.Pipelines.PipeReader RequestBodyPipeReader { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.IHeaderDictionary RequestHeaders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.IHeaderDictionary RequestTrailers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool RequestTrailersAvailable { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.IO.Stream ResponseBody { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.IO.Pipelines.PipeWriter ResponseBodyPipeWriter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Http.IHeaderDictionary ResponseHeaders { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseTrailers ResponseTrailers { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Scheme { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions ServerOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServiceContext ServiceContext { get { throw null; } }
+        public int StatusCode { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutControl TimeoutControl { get { throw null; } }
+        public string TraceIdentifier { get { throw null; } set { } }
+        protected void AbortRequest() { }
+        public void Advance(int bytes) { }
+        protected abstract void ApplicationAbort();
+        protected virtual bool BeginRead(out System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> awaitable) { throw null; }
+        protected virtual void BeginRequestProcessing() { }
+        public void CancelPendingFlush() { }
+        public System.Threading.Tasks.Task CompleteAsync(System.Exception exception = null) { throw null; }
+        protected abstract Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody CreateMessageBody();
+        protected abstract string CreateRequestId();
+        protected System.Threading.Tasks.Task FireOnCompleted() { throw null; }
+        protected System.Threading.Tasks.Task FireOnStarting() { throw null; }
+        public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FlushPipeAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public System.Memory<byte> GetMemory(int sizeHint = 0) { throw null; }
+        public System.Span<byte> GetSpan(int sizeHint = 0) { throw null; }
+        public void HandleNonBodyResponseWrite() { }
+        public void InitializeBodyControl(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody messageBody) { }
+        public System.Threading.Tasks.Task InitializeResponseAsync(int firstWriteByteCount) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task InitializeResponseAwaited(System.Threading.Tasks.Task startingTask, int firstWriteByteCount) { throw null; }
+        TFeature Microsoft.AspNetCore.Http.Features.IFeatureCollection.Get<TFeature>() { throw null; }
+        void Microsoft.AspNetCore.Http.Features.IFeatureCollection.Set<TFeature>(TFeature feature) { }
+        void Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature.Abort() { }
+        System.Threading.Tasks.Task Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.CompleteAsync() { throw null; }
+        void Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.DisableBuffering() { }
+        System.Threading.Tasks.Task Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.SendFileAsync(string path, long offset, long? count, System.Threading.CancellationToken cancellation) { throw null; }
+        System.Threading.Tasks.Task Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.StartAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        void Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.OnCompleted(System.Func<object, System.Threading.Tasks.Task> callback, object state) { }
+        void Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.OnStarting(System.Func<object, System.Threading.Tasks.Task> callback, object state) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        System.Threading.Tasks.Task<System.IO.Stream> Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature.UpgradeAsync() { throw null; }
+        public void OnCompleted(System.Func<object, System.Threading.Tasks.Task> callback, object state) { }
+        protected virtual void OnErrorAfterResponseStarted() { }
+        public void OnHeader(System.Span<byte> name, System.Span<byte> value) { }
+        public void OnHeadersComplete() { }
+        protected virtual void OnRequestProcessingEnded() { }
+        protected virtual void OnRequestProcessingEnding() { }
+        protected abstract void OnReset();
+        public void OnStarting(System.Func<object, System.Threading.Tasks.Task> callback, object state) { }
+        public void OnTrailer(System.Span<byte> name, System.Span<byte> value) { }
+        public void OnTrailersComplete() { }
+        protected void PoisonRequestBodyStream(System.Exception abortReason) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ProcessRequestsAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application) { throw null; }
+        public void ProduceContinue() { }
+        protected System.Threading.Tasks.Task ProduceEnd() { throw null; }
+        public void ReportApplicationError(System.Exception ex) { }
+        public void Reset() { }
+        internal void ResetFeatureCollection() { }
+        protected void ResetHttp1Features() { }
+        protected void ResetHttp2Features() { }
+        internal void ResetState() { }
+        public void SetBadRequestState(Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException ex) { }
+        System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<System.Type, object>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Type,System.Object>>.GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        [System.Diagnostics.StackTraceHiddenAttribute]
+        public void ThrowRequestTargetRejected(System.Span<byte> target) { }
+        protected abstract bool TryParseRequest(System.IO.Pipelines.ReadResult result, out bool endConnection);
+        protected System.Threading.Tasks.Task TryProduceInvalidRequestResponse() { throw null; }
+        protected bool VerifyResponseContentLength(out System.Exception ex) { throw null; }
+        public System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory<byte> data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteAsyncAwaited(System.Threading.Tasks.Task initializeTask, System.ReadOnlyMemory<byte> data, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WritePipeAsync(System.ReadOnlyMemory<byte> data, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+    internal sealed partial class HttpRequestHeaders : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders
+    {
+        public HttpRequestHeaders(bool reuseHeaderValues = true, bool useLatin1 = false) { }
+        public bool HasConnection { get { throw null; } }
+        public bool HasTransferEncoding { get { throw null; } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccept { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAcceptCharset { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAcceptEncoding { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAcceptLanguage { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlRequestHeaders { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlRequestMethod { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAllow { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAuthorization { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderCacheControl { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderConnection { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentEncoding { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentLanguage { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentLength { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentLocation { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentMD5 { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentRange { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentType { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderCookie { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderCorrelationContext { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderDate { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderDNT { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderExpect { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderExpires { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderFrom { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderHost { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderIfMatch { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderIfModifiedSince { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderIfNoneMatch { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderIfRange { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderIfUnmodifiedSince { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderKeepAlive { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderLastModified { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderMaxForwards { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderOrigin { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderPragma { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderProxyAuthorization { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderRange { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderReferer { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderRequestId { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTE { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTraceParent { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTraceState { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTrailer { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTransferEncoding { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTranslate { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderUpgrade { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderUpgradeInsecureRequests { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderUserAgent { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderVia { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderWarning { get { throw null; } set { } }
+        public int HostCount { get { throw null; } }
+        protected override bool AddValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        public void Append(System.Span<byte> name, System.Span<byte> value) { }
+        protected override void ClearFast() { }
+        protected override bool CopyToFast(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] array, int arrayIndex) { throw null; }
+        protected override int GetCountFast() { throw null; }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestHeaders.Enumerator GetEnumerator() { throw null; }
+        protected override System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>> GetEnumeratorFast() { throw null; }
+        public void OnHeadersComplete() { }
+        protected override bool RemoveFast(string key) { throw null; }
+        protected override void SetValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        protected override bool TryGetValueFast(string key, out Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.IEnumerator, System.IDisposable
+        {
+            private readonly Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestHeaders _collection;
+            private readonly long _bits;
+            private int _next;
+            private System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> _current;
+            private readonly bool _hasUnknown;
+            private System.Collections.Generic.Dictionary<string, Microsoft.Extensions.Primitives.StringValues>.Enumerator _unknownEnumerator;
+            internal Enumerator(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestHeaders collection) { throw null; }
+            public System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> Current { get { throw null; } }
+            object System.Collections.IEnumerator.Current { get { throw null; } }
+            public void Dispose() { }
+            public bool MoveNext() { throw null; }
+            public void Reset() { }
+        }
+    }
+    internal sealed partial class HttpResponseHeaders : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders
+    {
+        public HttpResponseHeaders() { }
+        public bool HasConnection { get { throw null; } }
+        public bool HasDate { get { throw null; } }
+        public bool HasServer { get { throw null; } }
+        public bool HasTransferEncoding { get { throw null; } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAcceptRanges { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlAllowCredentials { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlAllowHeaders { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlAllowMethods { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlAllowOrigin { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlExposeHeaders { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAccessControlMaxAge { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAge { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderAllow { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderCacheControl { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderConnection { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentEncoding { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentLanguage { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentLength { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentLocation { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentMD5 { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentRange { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderContentType { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderDate { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderETag { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderExpires { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderKeepAlive { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderLastModified { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderLocation { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderPragma { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderProxyAuthenticate { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderRetryAfter { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderServer { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderSetCookie { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTrailer { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderTransferEncoding { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderUpgrade { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderVary { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderVia { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderWarning { get { throw null; } set { } }
+        public Microsoft.Extensions.Primitives.StringValues HeaderWWWAuthenticate { get { throw null; } set { } }
+        protected override bool AddValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        protected override void ClearFast() { }
+        internal void CopyTo(ref System.Buffers.BufferWriter<System.IO.Pipelines.PipeWriter> buffer) { }
+        internal void CopyToFast(ref System.Buffers.BufferWriter<System.IO.Pipelines.PipeWriter> output) { }
+        protected override bool CopyToFast(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] array, int arrayIndex) { throw null; }
+        protected override int GetCountFast() { throw null; }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders.Enumerator GetEnumerator() { throw null; }
+        protected override System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>> GetEnumeratorFast() { throw null; }
+        protected override bool RemoveFast(string key) { throw null; }
+        public void SetRawConnection(Microsoft.Extensions.Primitives.StringValues value, byte[] raw) { }
+        public void SetRawDate(Microsoft.Extensions.Primitives.StringValues value, byte[] raw) { }
+        public void SetRawServer(Microsoft.Extensions.Primitives.StringValues value, byte[] raw) { }
+        public void SetRawTransferEncoding(Microsoft.Extensions.Primitives.StringValues value, byte[] raw) { }
+        protected override void SetValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        protected override bool TryGetValueFast(string key, out Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        [System.Runtime.CompilerServices.CompilerGeneratedAttribute]
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.IEnumerator, System.IDisposable
+        {
+            private readonly Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders _collection;
+            private readonly long _bits;
+            private int _next;
+            private System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> _current;
+            private readonly bool _hasUnknown;
+            private System.Collections.Generic.Dictionary<string, Microsoft.Extensions.Primitives.StringValues>.Enumerator _unknownEnumerator;
+            internal Enumerator(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders collection) { throw null; }
+            public System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> Current { get { throw null; } }
+            object System.Collections.IEnumerator.Current { get { throw null; } }
+            public void Dispose() { }
+            public bool MoveNext() { throw null; }
+            public void Reset() { }
+        }
+    }
+    internal partial class HttpResponseTrailers : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders
+    {
+        public HttpResponseTrailers() { }
+        public Microsoft.Extensions.Primitives.StringValues HeaderETag { get { throw null; } set { } }
+        protected override bool AddValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        protected override void ClearFast() { }
+        protected override bool CopyToFast(System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] array, int arrayIndex) { throw null; }
+        protected override int GetCountFast() { throw null; }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseTrailers.Enumerator GetEnumerator() { throw null; }
+        protected override System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>> GetEnumeratorFast() { throw null; }
+        protected override bool RemoveFast(string key) { throw null; }
+        protected override void SetValueFast(string key, Microsoft.Extensions.Primitives.StringValues value) { }
+        protected override bool TryGetValueFast(string key, out Microsoft.Extensions.Primitives.StringValues value) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>>, System.Collections.IEnumerator, System.IDisposable
+        {
+            private readonly Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseTrailers _collection;
+            private readonly long _bits;
+            private int _next;
+            private System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> _current;
+            private readonly bool _hasUnknown;
+            private System.Collections.Generic.Dictionary<string, Microsoft.Extensions.Primitives.StringValues>.Enumerator _unknownEnumerator;
+            internal Enumerator(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseTrailers collection) { throw null; }
+            public System.Collections.Generic.KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues> Current { get { throw null; } }
+            object System.Collections.IEnumerator.Current { get { throw null; } }
+            public void Dispose() { }
+            public bool MoveNext() { throw null; }
+            public void Reset() { }
+        }
+    }
+    internal partial class Http1Connection : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol, Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinRequestBodyDataRateFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinResponseDataRateFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.IRequestProcessor
+    {
+        protected readonly long _keepAliveTicks;
+        public Http1Connection(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionContext context) : base (default(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionContext)) { }
+        public System.IO.Pipelines.PipeReader Input { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Buffers.MemoryPool<byte> MemoryPool { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinRequestBodyDataRateFeature.MinDataRate { get { throw null; } set { } }
+        Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinResponseDataRateFeature.MinDataRate { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinResponseDataRate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool RequestTimedOut { get { throw null; } }
+        public void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason) { }
+        protected override void ApplicationAbort() { }
+        protected override bool BeginRead(out System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> awaitable) { throw null; }
+        protected override void BeginRequestProcessing() { }
+        protected override Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody CreateMessageBody() { throw null; }
+        protected override string CreateRequestId() { throw null; }
+        internal void EnsureHostHeaderExists() { }
+        public void HandleReadDataRateTimeout() { }
+        public void HandleRequestHeadersTimeout() { }
+        void Microsoft.AspNetCore.Server.Kestrel.Core.Internal.IRequestProcessor.Tick(System.DateTimeOffset now) { }
+        public void OnInputOrOutputCompleted() { }
+        protected override void OnRequestProcessingEnded() { }
+        protected override void OnRequestProcessingEnding() { }
+        protected override void OnReset() { }
+        public void OnStartLine(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod method, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion version, System.Span<byte> target, System.Span<byte> path, System.Span<byte> query, System.Span<byte> customMethod, bool pathEncoded) { }
+        public void ParseRequest(in System.Buffers.ReadOnlySequence<byte> buffer, out System.SequencePosition consumed, out System.SequencePosition examined) { throw null; }
+        public void SendTimeoutResponse() { }
+        public void StopProcessingNextRequest() { }
+        public bool TakeMessageHeaders(in System.Buffers.ReadOnlySequence<byte> buffer, bool trailers, out System.SequencePosition consumed, out System.SequencePosition examined) { throw null; }
+        public bool TakeStartLine(in System.Buffers.ReadOnlySequence<byte> buffer, out System.SequencePosition consumed, out System.SequencePosition examined) { throw null; }
+        protected override bool TryParseRequest(System.IO.Pipelines.ReadResult result, out bool endConnection) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct Http1ParsingHandler : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler
+    {
+        public readonly Http1Connection Connection;
+        public readonly bool Trailers;
+        public Http1ParsingHandler(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection connection) { throw null; }
+        public Http1ParsingHandler(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection connection, bool trailers) { throw null; }
+        public void OnHeader(System.Span<byte> name, System.Span<byte> value) { }
+        public void OnHeadersComplete() { }
+        public void OnStartLine(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod method, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion version, System.Span<byte> target, System.Span<byte> path, System.Span<byte> query, System.Span<byte> customMethod, bool pathEncoded) { }
+    }
+    internal partial interface IHttpOutputProducer
+    {
+        void Advance(int bytes);
+        void CancelPendingFlush();
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FirstWriteAsync(int statusCode, string reasonPhrase, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders responseHeaders, bool autoChunk, System.ReadOnlySpan<byte> data, System.Threading.CancellationToken cancellationToken);
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FirstWriteChunkedAsync(int statusCode, string reasonPhrase, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders responseHeaders, bool autoChunk, System.ReadOnlySpan<byte> data, System.Threading.CancellationToken cancellationToken);
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FlushAsync(System.Threading.CancellationToken cancellationToken);
+        System.Memory<byte> GetMemory(int sizeHint = 0);
+        System.Span<byte> GetSpan(int sizeHint = 0);
+        void Reset();
+        void Stop();
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> Write100ContinueAsync();
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteChunkAsync(System.ReadOnlySpan<byte> data, System.Threading.CancellationToken cancellationToken);
+        System.Threading.Tasks.Task WriteDataAsync(System.ReadOnlySpan<byte> data, System.Threading.CancellationToken cancellationToken);
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteDataToPipeAsync(System.ReadOnlySpan<byte> data, System.Threading.CancellationToken cancellationToken);
+        void WriteResponseHeaders(int statusCode, string reasonPhrase, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders responseHeaders, bool autoChunk, bool appCompleted);
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteStreamSuffixAsync();
+    }
+    internal partial interface IHttpResponseControl
+    {
+        void Advance(int bytes);
+        void CancelPendingFlush();
+        System.Threading.Tasks.Task CompleteAsync(System.Exception exception = null);
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FlushPipeAsync(System.Threading.CancellationToken cancellationToken);
+        System.Memory<byte> GetMemory(int sizeHint = 0);
+        System.Span<byte> GetSpan(int sizeHint = 0);
+        void ProduceContinue();
+        System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WritePipeAsync(System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken);
+    }
+    internal abstract partial class MessageBody
+    {
+        protected long _alreadyTimedBytes;
+        protected bool _backpressure;
+        protected long _examinedUnconsumedBytes;
+        protected bool _timingEnabled;
+        protected MessageBody(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol context) { }
+        public virtual bool IsEmpty { get { throw null; } }
+        protected Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace Log { get { throw null; } }
+        public bool RequestKeepAlive { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]protected set { } }
+        public bool RequestUpgrade { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]protected set { } }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody ZeroContentLengthClose { get { throw null; } }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody ZeroContentLengthKeepAlive { get { throw null; } }
+        protected void AddAndCheckConsumedBytes(long consumedBytes) { }
+        public abstract void AdvanceTo(System.SequencePosition consumed);
+        public abstract void AdvanceTo(System.SequencePosition consumed, System.SequencePosition examined);
+        public abstract void CancelPendingRead();
+        public abstract void Complete(System.Exception exception);
+        public virtual System.Threading.Tasks.Task ConsumeAsync() { throw null; }
+        protected void CountBytesRead(long bytesInReadResult) { }
+        protected long OnAdvance(System.IO.Pipelines.ReadResult readResult, System.SequencePosition consumed, System.SequencePosition examined) { throw null; }
+        protected virtual System.Threading.Tasks.Task OnConsumeAsync() { throw null; }
+        protected virtual void OnDataRead(long bytesRead) { }
+        protected virtual void OnReadStarted() { }
+        protected virtual void OnReadStarting() { }
+        protected virtual System.Threading.Tasks.Task OnStopAsync() { throw null; }
+        public abstract System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> ReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
+        protected System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> StartTimingReadAsync(System.Threading.Tasks.ValueTask<System.IO.Pipelines.ReadResult> readAwaitable, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public virtual System.Threading.Tasks.Task StopAsync() { throw null; }
+        protected void StopTimingRead(long bytesInReadResult) { }
+        protected void TryProduceContinue() { }
+        public abstract bool TryRead(out System.IO.Pipelines.ReadResult readResult);
+        protected void TryStart() { }
+        protected void TryStop() { }
+    }
+    internal enum RequestProcessingStatus
+    {
+        RequestPending = 0,
+        ParsingRequestLine = 1,
+        ParsingHeaders = 2,
+        AppStarted = 3,
+        HeadersCommitted = 4,
+        HeadersFlushed = 5,
+        ResponseCompleted = 6,
+    }
+    [System.FlagsAttribute]
+    internal enum TransferCoding
+    {
+        None = 0,
+        Chunked = 1,
+        Other = 2,
+    }
+}
+
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2
+{
+    internal static partial class Http2FrameReader
+    {
+        public const int HeaderLength = 9;
+        public const int SettingSize = 6;
+        public static int GetPayloadFieldsLength(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame frame) { throw null; }
+        public static bool ReadFrame(in System.Buffers.ReadOnlySequence<byte> readableBuffer, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame frame, uint maxFrameSize, out System.Buffers.ReadOnlySequence<byte> framePayload) { throw null; }
+        public static System.Collections.Generic.IList<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSetting> ReadSettings(in System.Buffers.ReadOnlySequence<byte> payload) { throw null; }
+    }
+    internal static partial class Bitshifter
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static uint ReadUInt24BigEndian(System.ReadOnlySpan<byte> source) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static uint ReadUInt31BigEndian(System.ReadOnlySpan<byte> source) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void WriteUInt24BigEndian(System.Span<byte> destination, uint value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void WriteUInt31BigEndian(System.Span<byte> destination, uint value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void WriteUInt31BigEndian(System.Span<byte> destination, uint value, bool preserveHighestBit) { }
+    }
+    internal partial class Http2Connection : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.IHttp2StreamLifetimeHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.IRequestProcessor
+    {
+        public Http2Connection(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionContext context) { }
+        public static byte[] ClientPreface { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Http.Features.IFeatureCollection ConnectionFeatures { get { throw null; } }
+        public string ConnectionId { get { throw null; } }
+        public System.IO.Pipelines.PipeReader Input { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerLimits Limits { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace Log { get { throw null; } }
+        internal Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSettings ServerSettings { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ISystemClock SystemClock { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutControl TimeoutControl { get { throw null; } }
+        public void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException ex) { }
+        public void DecrementActiveClientStreamCount() { }
+        public void HandleReadDataRateTimeout() { }
+        public void HandleRequestHeadersTimeout() { }
+        public void IncrementActiveClientStreamCount() { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ProcessRequestsAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application) { throw null; }
+        void Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.IHttp2StreamLifetimeHandler.OnStreamCompleted(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Stream stream) { }
+        void Microsoft.AspNetCore.Server.Kestrel.Core.Internal.IRequestProcessor.Tick(System.DateTimeOffset now) { }
+        public void OnHeader(System.Span<byte> name, System.Span<byte> value) { }
+        public void OnHeadersComplete() { }
+        public void OnInputOrOutputCompleted() { }
+        public void StopProcessingNextRequest() { }
+        public void StopProcessingNextRequest(bool serverInitiated) { }
+    }
+    internal partial interface IHttp2StreamLifetimeHandler
+    {
+        void DecrementActiveClientStreamCount();
+        void OnStreamCompleted(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Stream stream);
+    }
+    internal partial class Http2FrameWriter
+    {
+        public Http2FrameWriter(System.IO.Pipelines.PipeWriter outputPipeWriter, Microsoft.AspNetCore.Connections.ConnectionContext connectionContext, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Connection http2Connection, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.OutputFlowControl connectionOutputFlowControl, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutControl timeoutControl, Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate minResponseDataRate, string connectionId, System.Buffers.MemoryPool<byte> memoryPool, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace log) { }
+        public void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException error) { }
+        public void AbortPendingStreamDataWrites(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.StreamOutputFlowControl flowControl) { }
+        public void Complete() { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FlushAsync(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpOutputAborter outputAborter, System.Threading.CancellationToken cancellationToken) { throw null; }
+        public bool TryUpdateConnectionWindow(int bytes) { throw null; }
+        public bool TryUpdateStreamWindow(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.StreamOutputFlowControl flowControl, int bytes) { throw null; }
+        public void UpdateMaxFrameSize(uint maxFrameSize) { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> Write100ContinueAsync(int streamId) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteDataAsync(int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.StreamOutputFlowControl flowControl, in System.Buffers.ReadOnlySequence<byte> data, bool endStream) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteGoAwayAsync(int lastStreamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode errorCode) { throw null; }
+        internal static void WriteHeader(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame frame, System.IO.Pipelines.PipeWriter output) { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WritePingAsync(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PingFrameFlags flags, in System.Buffers.ReadOnlySequence<byte> payload) { throw null; }
+        public void WriteResponseHeaders(int streamId, int statusCode, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2HeadersFrameFlags headerFrameFlags, Microsoft.AspNetCore.Http.IHeaderDictionary headers) { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteResponseTrailers(int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseTrailers headers) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteRstStreamAsync(int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode errorCode) { throw null; }
+        internal static void WriteSettings(System.Collections.Generic.IList<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSetting> settings, System.Span<byte> destination) { }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteSettingsAckAsync() { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteSettingsAsync(System.Collections.Generic.IList<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSetting> settings) { throw null; }
+        public System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> WriteWindowUpdateAsync(int streamId, int sizeIncrement) { throw null; }
+    }
+    internal abstract partial class Http2Stream : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol, Microsoft.AspNetCore.Http.Features.IHttpResetFeature, Microsoft.AspNetCore.Http.Features.IHttpResponseTrailersFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttp2StreamIdFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinRequestBodyDataRateFeature, System.Threading.IThreadPoolWorkItem
+    {
+        public Http2Stream(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2StreamContext context) : base (default(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionContext)) { }
+        internal long DrainExpirationTicks { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool EndStreamReceived { get { throw null; } }
+        public long? InputRemaining { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]internal set { } }
+        Microsoft.AspNetCore.Http.IHeaderDictionary Microsoft.AspNetCore.Http.Features.IHttpResponseTrailersFeature.Trailers { get { throw null; } set { } }
+        int Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttp2StreamIdFeature.StreamId { get { throw null; } }
+        Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinRequestBodyDataRateFeature.MinDataRate { get { throw null; } set { } }
+        public bool ReceivedEmptyRequestBody { get { throw null; } }
+        public System.IO.Pipelines.Pipe RequestBodyPipe { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool RequestBodyStarted { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal bool RstStreamReceived { get { throw null; } }
+        public int StreamId { get { throw null; } }
+        public void Abort(System.IO.IOException abortReason) { }
+        public void AbortRstStreamReceived() { }
+        protected override void ApplicationAbort() { }
+        protected override Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody CreateMessageBody() { throw null; }
+        protected override string CreateRequestId() { throw null; }
+        public void DecrementActiveClientStreamCount() { }
+        public abstract void Execute();
+        void Microsoft.AspNetCore.Http.Features.IHttpResetFeature.Reset(int errorCode) { }
+        public System.Threading.Tasks.Task OnDataAsync(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame dataFrame, in System.Buffers.ReadOnlySequence<byte> payload) { throw null; }
+        public void OnDataRead(int bytesRead) { }
+        public void OnEndStreamReceived() { }
+        protected override void OnErrorAfterResponseStarted() { }
+        protected override void OnRequestProcessingEnded() { }
+        protected override void OnReset() { }
+        internal void ResetAndAbort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode error) { }
+        protected override bool TryParseRequest(System.IO.Pipelines.ReadResult result, out bool endConnection) { throw null; }
+        public bool TryUpdateOutputWindow(int bytes) { throw null; }
+    }
+    internal sealed partial class Http2StreamContext : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionContext
+    {
+        public Http2StreamContext() { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSettings ClientPeerSettings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.InputFlowControl ConnectionInputFlowControl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.OutputFlowControl ConnectionOutputFlowControl { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2FrameWriter FrameWriter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSettings ServerPeerSettings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int StreamId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.IHttp2StreamLifetimeHandler StreamLifetimeHandler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal sealed partial class Http2ConnectionErrorException : System.Exception
+    {
+        public Http2ConnectionErrorException(string message, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode errorCode) { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode ErrorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    [System.FlagsAttribute]
+    internal enum Http2ContinuationFrameFlags : byte
+    {
+        NONE = (byte)0,
+        END_HEADERS = (byte)4,
+    }
+    [System.FlagsAttribute]
+    internal enum Http2DataFrameFlags : byte
+    {
+        NONE = (byte)0,
+        END_STREAM = (byte)1,
+        PADDED = (byte)8,
+    }
+    internal enum Http2ErrorCode : uint
+    {
+        NO_ERROR = (uint)0,
+        PROTOCOL_ERROR = (uint)1,
+        INTERNAL_ERROR = (uint)2,
+        FLOW_CONTROL_ERROR = (uint)3,
+        SETTINGS_TIMEOUT = (uint)4,
+        STREAM_CLOSED = (uint)5,
+        FRAME_SIZE_ERROR = (uint)6,
+        REFUSED_STREAM = (uint)7,
+        CANCEL = (uint)8,
+        COMPRESSION_ERROR = (uint)9,
+        CONNECT_ERROR = (uint)10,
+        ENHANCE_YOUR_CALM = (uint)11,
+        INADEQUATE_SECURITY = (uint)12,
+        HTTP_1_1_REQUIRED = (uint)13,
+    }
+    internal partial class Http2Frame
+    {
+        public Http2Frame() { }
+        public bool ContinuationEndHeaders { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ContinuationFrameFlags ContinuationFlags { get { throw null; } set { } }
+        public bool DataEndStream { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2DataFrameFlags DataFlags { get { throw null; } set { } }
+        public bool DataHasPadding { get { throw null; } }
+        public byte DataPadLength { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int DataPayloadLength { get { throw null; } }
+        public byte Flags { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode GoAwayErrorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int GoAwayLastStreamId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HeadersEndHeaders { get { throw null; } }
+        public bool HeadersEndStream { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2HeadersFrameFlags HeadersFlags { get { throw null; } set { } }
+        public bool HeadersHasPadding { get { throw null; } }
+        public bool HeadersHasPriority { get { throw null; } }
+        public byte HeadersPadLength { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int HeadersPayloadLength { get { throw null; } }
+        public byte HeadersPriorityWeight { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int HeadersStreamDependency { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int PayloadLength { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool PingAck { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PingFrameFlags PingFlags { get { throw null; } set { } }
+        public bool PriorityIsExclusive { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int PriorityStreamDependency { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public byte PriorityWeight { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode RstStreamErrorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool SettingsAck { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2SettingsFrameFlags SettingsFlags { get { throw null; } set { } }
+        public int StreamId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2FrameType Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int WindowUpdateSizeIncrement { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void PrepareContinuation(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ContinuationFrameFlags flags, int streamId) { }
+        public void PrepareData(int streamId, byte? padLength = default(byte?)) { }
+        public void PrepareGoAway(int lastStreamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode errorCode) { }
+        public void PrepareHeaders(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2HeadersFrameFlags flags, int streamId) { }
+        public void PreparePing(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PingFrameFlags flags) { }
+        public void PreparePriority(int streamId, int streamDependency, bool exclusive, byte weight) { }
+        public void PrepareRstStream(int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode errorCode) { }
+        public void PrepareSettings(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2SettingsFrameFlags flags) { }
+        public void PrepareWindowUpdate(int streamId, int sizeIncrement) { }
+        internal object ShowFlags() { throw null; }
+        public override string ToString() { throw null; }
+    }
+    internal enum Http2FrameType : byte
+    {
+        DATA = (byte)0,
+        HEADERS = (byte)1,
+        PRIORITY = (byte)2,
+        RST_STREAM = (byte)3,
+        SETTINGS = (byte)4,
+        PUSH_PROMISE = (byte)5,
+        PING = (byte)6,
+        GOAWAY = (byte)7,
+        WINDOW_UPDATE = (byte)8,
+        CONTINUATION = (byte)9,
+    }
+    [System.FlagsAttribute]
+    internal enum Http2HeadersFrameFlags : byte
+    {
+        NONE = (byte)0,
+        END_STREAM = (byte)1,
+        END_HEADERS = (byte)4,
+        PADDED = (byte)8,
+        PRIORITY = (byte)32,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct Http2PeerSetting
+    {
+        private readonly int _dummyPrimitive;
+        public Http2PeerSetting(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2SettingsParameter parameter, uint value) { throw null; }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2SettingsParameter Parameter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public uint Value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class Http2PeerSettings
+    {
+        public const bool DefaultEnablePush = true;
+        public const uint DefaultHeaderTableSize = (uint)4096;
+        public const uint DefaultInitialWindowSize = (uint)65535;
+        public const uint DefaultMaxConcurrentStreams = (uint)4294967295;
+        public const uint DefaultMaxFrameSize = (uint)16384;
+        public const uint DefaultMaxHeaderListSize = (uint)4294967295;
+        internal const int MaxAllowedMaxFrameSize = 16777215;
+        public const uint MaxWindowSize = (uint)2147483647;
+        internal const int MinAllowedMaxFrameSize = 16384;
+        public Http2PeerSettings() { }
+        public bool EnablePush { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public uint HeaderTableSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public uint InitialWindowSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public uint MaxConcurrentStreams { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public uint MaxFrameSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public uint MaxHeaderListSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal System.Collections.Generic.IList<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSetting> GetNonProtocolDefaults() { throw null; }
+        public void Update(System.Collections.Generic.IList<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2PeerSetting> settings) { }
+    }
+    [System.FlagsAttribute]
+    internal enum Http2PingFrameFlags : byte
+    {
+        NONE = (byte)0,
+        ACK = (byte)1,
+    }
+    [System.FlagsAttribute]
+    internal enum Http2SettingsFrameFlags : byte
+    {
+        NONE = (byte)0,
+        ACK = (byte)1,
+    }
+    internal enum Http2SettingsParameter : ushort
+    {
+        SETTINGS_HEADER_TABLE_SIZE = (ushort)1,
+        SETTINGS_ENABLE_PUSH = (ushort)2,
+        SETTINGS_MAX_CONCURRENT_STREAMS = (ushort)3,
+        SETTINGS_INITIAL_WINDOW_SIZE = (ushort)4,
+        SETTINGS_MAX_FRAME_SIZE = (ushort)5,
+        SETTINGS_MAX_HEADER_LIST_SIZE = (ushort)6,
+    }
+    internal sealed partial class Http2StreamErrorException : System.Exception
+    {
+        public Http2StreamErrorException(int streamId, string message, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode errorCode) { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode ErrorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int StreamId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+}
+
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl
+{
+    internal partial class OutputFlowControlAwaitable : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
+    {
+        public OutputFlowControlAwaitable() { }
+        public bool IsCompleted { get { throw null; } }
+        public void Complete() { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.OutputFlowControlAwaitable GetAwaiter() { throw null; }
+        public void GetResult() { }
+        public void OnCompleted(System.Action continuation) { }
+        public void UnsafeOnCompleted(System.Action continuation) { }
+    }
+    internal partial class StreamOutputFlowControl
+    {
+        public StreamOutputFlowControl(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.OutputFlowControl connectionLevelFlowControl, uint initialWindowSize) { }
+        public int Available { get { throw null; } }
+        public bool IsAborted { get { throw null; } }
+        public void Abort() { }
+        public void Advance(int bytes) { }
+        public int AdvanceUpToAndWait(long bytes, out Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.OutputFlowControlAwaitable awaitable) { throw null; }
+        public bool TryUpdateWindow(int bytes) { throw null; }
+    }
+    internal partial class OutputFlowControl
+    {
+        public OutputFlowControl(uint initialWindowSize) { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.OutputFlowControlAwaitable AvailabilityAwaitable { get { throw null; } }
+        public int Available { get { throw null; } }
+        public bool IsAborted { get { throw null; } }
+        public void Abort() { }
+        public void Advance(int bytes) { }
+        public bool TryUpdateWindow(int bytes) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct FlowControl
+    {
+        private int _dummyPrimitive;
+        public FlowControl(uint initialWindowSize) { throw null; }
+        public int Available { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsAborted { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Abort() { }
+        public void Advance(int bytes) { }
+        public bool TryUpdateWindow(int bytes) { throw null; }
+    }
+    internal partial class InputFlowControl
+    {
+        public InputFlowControl(uint initialWindowSize, uint minWindowSizeIncrement) { }
+        public bool IsAvailabilityLow { get { throw null; } }
+        public int Abort() { throw null; }
+        public void StopWindowUpdates() { }
+        public bool TryAdvance(int bytes) { throw null; }
+        public bool TryUpdateWindow(int bytes, out int updateSize) { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack
+{
+    internal sealed partial class HuffmanDecodingException : System.Exception
+    {
+        public HuffmanDecodingException(string message) { }
+    }
+    internal static partial class IntegerEncoder
+    {
+        public static bool Encode(int i, int n, System.Span<byte> buffer, out int length) { throw null; }
+    }
+    internal partial class IntegerDecoder
+    {
+        public IntegerDecoder() { }
+        public bool BeginTryDecode(byte b, int prefixLength, out int result) { throw null; }
+        public static void ThrowIntegerTooBigException() { }
+        public bool TryDecode(byte b, out int result) { throw null; }
+    }
+    internal partial class Huffman
+    {
+        public Huffman() { }
+        public static int Decode(System.ReadOnlySpan<byte> src, System.Span<byte> dst) { throw null; }
+        internal static int DecodeValue(uint data, int validBits, out int decodedBits) { throw null; }
+        public static (uint encoded, int bitLength) Encode(int data) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct HeaderField
+    {
+        public const int RfcOverhead = 32;
+        private readonly object _dummy;
+        public HeaderField(System.Span<byte> name, System.Span<byte> value) { throw null; }
+        public int Length { get { throw null; } }
+        public byte[] Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public byte[] Value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public static int GetLength(int nameLength, int valueLength) { throw null; }
+    }
+    internal partial class HPackEncoder
+    {
+        public HPackEncoder() { }
+        public bool BeginEncode(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, string>> headers, System.Span<byte> buffer, out int length) { throw null; }
+        public bool BeginEncode(int statusCode, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, string>> headers, System.Span<byte> buffer, out int length) { throw null; }
+        public bool Encode(System.Span<byte> buffer, out int length) { throw null; }
+    }
+    internal partial class DynamicTable
+    {
+        public DynamicTable(int maxSize) { }
+        public int Count { get { throw null; } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack.HeaderField this[int index] { get { throw null; } }
+        public int MaxSize { get { throw null; } }
+        public int Size { get { throw null; } }
+        public void Insert(System.Span<byte> name, System.Span<byte> value) { }
+        public void Resize(int maxSize) { }
+    }
+    internal partial class HPackDecoder
+    {
+        public HPackDecoder(int maxDynamicTableSize, int maxRequestHeaderFieldSize) { }
+        internal HPackDecoder(int maxDynamicTableSize, int maxRequestHeaderFieldSize, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack.DynamicTable dynamicTable) { }
+        public void Decode(in System.Buffers.ReadOnlySequence<byte> data, bool endHeaders, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler handler) { }
+    }
+    internal sealed partial class HPackDecodingException : System.Exception
+    {
+        public HPackDecodingException(string message) { }
+        public HPackDecodingException(string message, System.Exception innerException) { }
+    }
+    internal sealed partial class HPackEncodingException : System.Exception
+    {
+        public HPackEncodingException(string message) { }
+        public HPackEncodingException(string message, System.Exception innerException) { }
+    }
+}
+
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
+{
+    internal static partial class Constants
+    {
+        public static readonly string DefaultServerAddress;
+        public static readonly string DefaultServerHttpsAddress;
+        public const int MaxExceptionDetailSize = 128;
+        public const string PipeDescriptorPrefix = "pipefd:";
+        public static readonly System.TimeSpan RequestBodyDrainTimeout;
+        public const string ServerName = "Kestrel";
+        public const string SocketDescriptorPrefix = "sockfd:";
+        public const string UnixPipeHostPrefix = "unix:/";
+    }
+    internal static partial class HttpUtilities
+    {
+        public const string Http10Version = "HTTP/1.0";
+        public const string Http11Version = "HTTP/1.1";
+        public const string Http2Version = "HTTP/2";
+        public const string HttpsUriScheme = "https://";
+        public const string HttpUriScheme = "http://";
+        public static string GetAsciiStringEscaped(this System.Span<byte> span, int maxChars) { throw null; }
+        public static string GetAsciiStringNonNullCharacters(this System.Span<byte> span) { throw null; }
+        public static string GetHeaderName(this System.Span<byte> span) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static bool GetKnownHttpScheme(this System.Span<byte> span, out Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpScheme knownScheme) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal unsafe static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod GetKnownMethod(byte* data, int length, out int methodLength) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static bool GetKnownMethod(this System.Span<byte> span, out Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod method, out int length) { throw null; }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod GetKnownMethod(string value) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal unsafe static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion GetKnownVersion(byte* location, int length) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static bool GetKnownVersion(this System.Span<byte> span, out Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion knownVersion, out byte length) { throw null; }
+        public static string GetRequestHeaderStringNonNullCharacters(this System.Span<byte> span, bool useLatin1) { throw null; }
+        public static bool IsHostHeaderValid(string hostText) { throw null; }
+        public static string MethodToString(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod method) { throw null; }
+        public static string SchemeToString(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpScheme scheme) { throw null; }
+        public static string VersionToString(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion httpVersion) { throw null; }
+    }
+    internal abstract partial class WriteOnlyStream : System.IO.Stream
+    {
+        protected WriteOnlyStream() { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override int ReadTimeout { get { throw null; } set { } }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+    internal sealed partial class ThrowingWasUpgradedWriteOnlyStream : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.WriteOnlyStream
+    {
+        public ThrowingWasUpgradedWriteOnlyStream() { }
+        public override bool CanSeek { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public override void Flush() { }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+    internal partial class Disposable : System.IDisposable
+    {
+        public Disposable(System.Action dispose) { }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+    }
+    internal sealed partial class DebuggerWrapper : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IDebugger
+    {
+        public bool IsAttached { get { throw null; } }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IDebugger Singleton { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class SystemClock : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ISystemClock
+    {
+        public SystemClock() { }
+        public System.DateTimeOffset UtcNow { get { throw null; } }
+        public long UtcNowTicks { get { throw null; } }
+        public System.DateTimeOffset UtcNowUnsynchronized { get { throw null; } }
+    }
+    internal partial class HeartbeatManager : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IHeartbeatHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ISystemClock
+    {
+        public HeartbeatManager(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ConnectionManager connectionManager) { }
+        public System.DateTimeOffset UtcNow { get { throw null; } }
+        public long UtcNowTicks { get { throw null; } }
+        public System.DateTimeOffset UtcNowUnsynchronized { get { throw null; } }
+        public void OnHeartbeat(System.DateTimeOffset now) { }
+    }
+
+    internal partial class StringUtilities
+    {
+        public StringUtilities() { }
+        public static bool BytesOrdinalEqualsStringAndAscii(string previousValue, System.Span<byte> newValue) { throw null; }
+        public static string ConcatAsHexSuffix(string str, char separator, uint number) { throw null; }
+        public unsafe static bool TryGetAsciiString(byte* input, char* output, int count) { throw null; }
+        public unsafe static bool TryGetLatin1String(byte* input, char* output, int count) { throw null; }
+    }
+    internal partial class TimeoutControl : Microsoft.AspNetCore.Server.Kestrel.Core.Features.IConnectionTimeoutFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutControl
+    {
+        public TimeoutControl(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ITimeoutHandler timeoutHandler) { }
+        internal Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IDebugger Debugger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason TimerReason { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void BytesRead(long count) { }
+        public void BytesWrittenToBuffer(Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate minRate, long count) { }
+        public void CancelTimeout() { }
+        internal void Initialize(long nowTicks) { }
+        public void InitializeHttp2(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.InputFlowControl connectionInputFlowControl) { }
+        void Microsoft.AspNetCore.Server.Kestrel.Core.Features.IConnectionTimeoutFeature.ResetTimeout(System.TimeSpan timeSpan) { }
+        void Microsoft.AspNetCore.Server.Kestrel.Core.Features.IConnectionTimeoutFeature.SetTimeout(System.TimeSpan timeSpan) { }
+        public void ResetTimeout(long ticks, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason timeoutReason) { }
+        public void SetTimeout(long ticks, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason timeoutReason) { }
+        public void StartRequestBody(Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate minRate) { }
+        public void StartTimingRead() { }
+        public void StartTimingWrite() { }
+        public void StopRequestBody() { }
+        public void StopTimingRead() { }
+        public void StopTimingWrite() { }
+        public void Tick(System.DateTimeOffset now) { }
+    }
+    internal partial class KestrelTrace : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace, Microsoft.Extensions.Logging.ILogger
+    {
+        public KestrelTrace(Microsoft.Extensions.Logging.ILogger logger) { }
+        public virtual void ApplicationAbortedConnection(string connectionId, string traceIdentifier) { }
+        public virtual void ApplicationError(string connectionId, string traceIdentifier, System.Exception ex) { }
+        public virtual void ApplicationNeverCompleted(string connectionId) { }
+        public virtual System.IDisposable BeginScope<TState>(TState state) { throw null; }
+        public virtual void ConnectionAccepted(string connectionId) { }
+        public virtual void ConnectionBadRequest(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException ex) { }
+        public virtual void ConnectionDisconnect(string connectionId) { }
+        public virtual void ConnectionHeadResponseBodyWrite(string connectionId, long count) { }
+        public virtual void ConnectionKeepAlive(string connectionId) { }
+        public virtual void ConnectionPause(string connectionId) { }
+        public virtual void ConnectionRejected(string connectionId) { }
+        public virtual void ConnectionResume(string connectionId) { }
+        public virtual void ConnectionStart(string connectionId) { }
+        public virtual void ConnectionStop(string connectionId) { }
+        public virtual void HeartbeatSlow(System.TimeSpan interval, System.DateTimeOffset now) { }
+        public virtual void HPackDecodingError(string connectionId, int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack.HPackDecodingException ex) { }
+        public virtual void HPackEncodingError(string connectionId, int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack.HPackEncodingException ex) { }
+        public virtual void Http2ConnectionClosed(string connectionId, int highestOpenedStreamId) { }
+        public virtual void Http2ConnectionClosing(string connectionId) { }
+        public virtual void Http2ConnectionError(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ConnectionErrorException ex) { }
+        public void Http2FrameReceived(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame frame) { }
+        public void Http2FrameSending(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame frame) { }
+        public virtual void Http2StreamError(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2StreamErrorException ex) { }
+        public void Http2StreamResetAbort(string traceIdentifier, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode error, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason) { }
+        public virtual bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; }
+        public virtual void Log<TState>(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func<TState, System.Exception, string> formatter) { }
+        public virtual void NotAllConnectionsAborted() { }
+        public virtual void NotAllConnectionsClosedGracefully() { }
+        public virtual void RequestBodyDone(string connectionId, string traceIdentifier) { }
+        public virtual void RequestBodyDrainTimedOut(string connectionId, string traceIdentifier) { }
+        public virtual void RequestBodyMinimumDataRateNotSatisfied(string connectionId, string traceIdentifier, double rate) { }
+        public virtual void RequestBodyNotEntirelyRead(string connectionId, string traceIdentifier) { }
+        public virtual void RequestBodyStart(string connectionId, string traceIdentifier) { }
+        public virtual void RequestProcessingError(string connectionId, System.Exception ex) { }
+        public virtual void ResponseMinimumDataRateNotSatisfied(string connectionId, string traceIdentifier) { }
+    }
+    internal partial class BodyControl
+    {
+        public BodyControl(Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature bodyControl, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpResponseControl responseControl) { }
+        public void Abort(System.Exception error) { }
+        public (System.IO.Stream request, System.IO.Stream response, System.IO.Pipelines.PipeReader reader, System.IO.Pipelines.PipeWriter writer) Start(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody body) { throw null; }
+        public System.Threading.Tasks.Task StopAsync() { throw null; }
+        public System.IO.Stream Upgrade() { throw null; }
+    }
+    internal partial class ConnectionManager
+    {
+        public ConnectionManager(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace trace, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ResourceCounter upgradedConnections) { }
+        public ConnectionManager(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace trace, long? upgradedConnectionLimit) { }
+        public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ResourceCounter UpgradedConnectionCount { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<bool> AbortAllConnectionsAsync() { throw null; }
+        public void AddConnection(long id, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection connection) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<bool> CloseAllConnectionsAsync(System.Threading.CancellationToken token) { throw null; }
+        public void RemoveConnection(long id) { }
+        public void Walk(System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection> callback) { }
+    }
+    internal partial class Heartbeat : System.IDisposable
+    {
+        public static readonly System.TimeSpan Interval;
+        public Heartbeat(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IHeartbeatHandler[] callbacks, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ISystemClock systemClock, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IDebugger debugger, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace trace) { }
+        public void Dispose() { }
+        internal void OnHeartbeat() { }
+        public void Start() { }
+    }
+    internal partial interface IDebugger
+    {
+        bool IsAttached { get; }
+    }
+    internal partial interface IHeartbeatHandler
+    {
+        void OnHeartbeat(System.DateTimeOffset now);
+    }
+    internal partial interface IKestrelTrace : Microsoft.Extensions.Logging.ILogger
+    {
+        void ApplicationAbortedConnection(string connectionId, string traceIdentifier);
+        void ApplicationError(string connectionId, string traceIdentifier, System.Exception ex);
+        void ApplicationNeverCompleted(string connectionId);
+        void ConnectionAccepted(string connectionId);
+        void ConnectionBadRequest(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException ex);
+        void ConnectionDisconnect(string connectionId);
+        void ConnectionHeadResponseBodyWrite(string connectionId, long count);
+        void ConnectionKeepAlive(string connectionId);
+        void ConnectionPause(string connectionId);
+        void ConnectionRejected(string connectionId);
+        void ConnectionResume(string connectionId);
+        void ConnectionStart(string connectionId);
+        void ConnectionStop(string connectionId);
+        void HeartbeatSlow(System.TimeSpan interval, System.DateTimeOffset now);
+        void HPackDecodingError(string connectionId, int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack.HPackDecodingException ex);
+        void HPackEncodingError(string connectionId, int streamId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack.HPackEncodingException ex);
+        void Http2ConnectionClosed(string connectionId, int highestOpenedStreamId);
+        void Http2ConnectionClosing(string connectionId);
+        void Http2ConnectionError(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ConnectionErrorException ex);
+        void Http2FrameReceived(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame frame);
+        void Http2FrameSending(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Frame frame);
+        void Http2StreamError(string connectionId, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2StreamErrorException ex);
+        void Http2StreamResetAbort(string traceIdentifier, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ErrorCode error, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason);
+        void NotAllConnectionsAborted();
+        void NotAllConnectionsClosedGracefully();
+        void RequestBodyDone(string connectionId, string traceIdentifier);
+        void RequestBodyDrainTimedOut(string connectionId, string traceIdentifier);
+        void RequestBodyMinimumDataRateNotSatisfied(string connectionId, string traceIdentifier, double rate);
+        void RequestBodyNotEntirelyRead(string connectionId, string traceIdentifier);
+        void RequestBodyStart(string connectionId, string traceIdentifier);
+        void RequestProcessingError(string connectionId, System.Exception ex);
+        void ResponseMinimumDataRateNotSatisfied(string connectionId, string traceIdentifier);
+    }
+    internal partial interface ISystemClock
+    {
+        System.DateTimeOffset UtcNow { get; }
+        long UtcNowTicks { get; }
+        System.DateTimeOffset UtcNowUnsynchronized { get; }
+    }
+    internal partial interface ITimeoutControl
+    {
+        Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason TimerReason { get; }
+        void BytesRead(long count);
+        void BytesWrittenToBuffer(Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate minRate, long count);
+        void CancelTimeout();
+        void InitializeHttp2(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.FlowControl.InputFlowControl connectionInputFlowControl);
+        void ResetTimeout(long ticks, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason timeoutReason);
+        void SetTimeout(long ticks, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason timeoutReason);
+        void StartRequestBody(Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate minRate);
+        void StartTimingRead();
+        void StartTimingWrite();
+        void StopRequestBody();
+        void StopTimingRead();
+        void StopTimingWrite();
+    }
+    internal partial interface ITimeoutHandler
+    {
+        void OnTimeout(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TimeoutReason reason);
+    }
+    internal partial class KestrelConnection : Microsoft.AspNetCore.Connections.Features.IConnectionCompleteFeature, Microsoft.AspNetCore.Connections.Features.IConnectionHeartbeatFeature, Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeNotificationFeature, System.Threading.IThreadPoolWorkItem
+    {
+        public KestrelConnection(long id, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServiceContext serviceContext, Microsoft.AspNetCore.Connections.ConnectionDelegate connectionDelegate, Microsoft.AspNetCore.Connections.ConnectionContext connectionContext, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.IKestrelTrace logger) { }
+        public System.Threading.CancellationToken ConnectionClosedRequested { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Threading.Tasks.Task ExecutionTask { get { throw null; } }
+        public Microsoft.AspNetCore.Connections.ConnectionContext TransportConnection { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void Complete() { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        internal System.Threading.Tasks.Task ExecuteAsync() { throw null; }
+        public System.Threading.Tasks.Task FireOnCompletedAsync() { throw null; }
+        void Microsoft.AspNetCore.Connections.Features.IConnectionCompleteFeature.OnCompleted(System.Func<object, System.Threading.Tasks.Task> callback, object state) { }
+        public void OnHeartbeat(System.Action<object> action, object state) { }
+        public void RequestClose() { }
+        void System.Threading.IThreadPoolWorkItem.Execute() { }
+        public void TickHeartbeat() { }
+    }
+    internal abstract partial class ResourceCounter
+    {
+        protected ResourceCounter() { }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ResourceCounter Unlimited { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public static Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ResourceCounter Quota(long amount) { throw null; }
+        public abstract void ReleaseOne();
+        public abstract bool TryLockOne();
+        internal partial class FiniteCounter : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ResourceCounter
+        {
+            public FiniteCounter(long max) { }
+            internal long Count { get { throw null; } set { } }
+            public override void ReleaseOne() { }
+            public override bool TryLockOne() { throw null; }
+        }
+    }
+    internal enum TimeoutReason
+    {
+        None = 0,
+        KeepAlive = 1,
+        RequestHeaders = 2,
+        ReadDataRate = 3,
+        WriteDataRate = 4,
+        RequestBodyDrain = 5,
+        TimeoutFeature = 6,
+    }
+}
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
+{
+    [System.Diagnostics.Tracing.EventSourceAttribute(Name="Microsoft-AspNetCore-Server-Kestrel")]
+    internal sealed partial class KestrelEventSource : System.Diagnostics.Tracing.EventSource
+    {
+        public static readonly Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelEventSource Log;
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Diagnostics.Tracing.EventAttribute(5, Level=System.Diagnostics.Tracing.EventLevel.Verbose)]
+        public void ConnectionRejected(string connectionId) { }
+        [System.Diagnostics.Tracing.NonEventAttribute]
+        public void ConnectionStart(Microsoft.AspNetCore.Connections.ConnectionContext connection) { }
+        [System.Diagnostics.Tracing.NonEventAttribute]
+        public void ConnectionStop(Microsoft.AspNetCore.Connections.ConnectionContext connection) { }
+        [System.Diagnostics.Tracing.NonEventAttribute]
+        public void RequestStart(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol httpProtocol) { }
+        [System.Diagnostics.Tracing.NonEventAttribute]
+        public void RequestStop(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol httpProtocol) { }
+    }
+}
+namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.PipeWriterHelpers
+{
+    internal sealed partial class ConcurrentPipeWriter : System.IO.Pipelines.PipeWriter
+    {
+        public ConcurrentPipeWriter(System.IO.Pipelines.PipeWriter innerPipeWriter, System.Buffers.MemoryPool<byte> pool, object sync) { }
+        public void Abort() { }
+        public override void Advance(int bytes) { }
+        public override void CancelPendingFlush() { }
+        public override void Complete(System.Exception exception = null) { }
+        public override System.Threading.Tasks.ValueTask<System.IO.Pipelines.FlushResult> FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public override System.Memory<byte> GetMemory(int sizeHint = 0) { throw null; }
+        public override System.Span<byte> GetSpan(int sizeHint = 0) { throw null; }
+    }
+}
+namespace System.Buffers
+{
+    internal static partial class BufferExtensions
+    {
+        public static System.ArraySegment<byte> GetArray(this System.Memory<byte> buffer) { throw null; }
+        public static System.ArraySegment<byte> GetArray(this System.ReadOnlyMemory<byte> memory) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static System.ReadOnlySpan<byte> ToSpan(this in System.Buffers.ReadOnlySequence<byte> buffer) { throw null; }
+        internal static void WriteAsciiNoValidation(this ref System.Buffers.BufferWriter<System.IO.Pipelines.PipeWriter> buffer, string data) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static void WriteNumeric(this ref System.Buffers.BufferWriter<System.IO.Pipelines.PipeWriter> buffer, ulong number) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal ref partial struct BufferWriter<T> where T : System.Buffers.IBufferWriter<byte>
+    {
+        private T _output;
+        private System.Span<byte> _span;
+        private int _buffered;
+        private long _bytesCommitted;
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public BufferWriter(T output) { throw null; }
+        public long BytesCommitted { get { throw null; } }
+        public System.Span<byte> Span { get { throw null; } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Advance(int count) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Commit() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Ensure(int count = 1) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Write(System.ReadOnlySpan<byte> source) { }
+    }
+}
+
+namespace System.Diagnostics
+{
+    [System.AttributeUsageAttribute(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, Inherited=false)]
+    internal sealed partial class StackTraceHiddenAttribute : System.Attribute
+    {
+        public StackTraceHiddenAttribute() { }
+    }
+}
diff --git a/src/Servers/Kestrel/Core/ref/Microsoft.AspNetCore.Server.Kestrel.Core.csproj b/src/Servers/Kestrel/Core/ref/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
index e2fdde82b217c7952da18b92bad0d839329afe1d..ff3785034676bdb4bbdbd956ab9ca163e40b0388 100644
--- a/src/Servers/Kestrel/Core/ref/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
+++ b/src/Servers/Kestrel/Core/ref/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
@@ -5,14 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Server.Kestrel.Core.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.WebUtilities"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Binder"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Net.Http.Headers"  />
-    <Reference Include="System.Security.Cryptography.Cng"  />
+    <Compile Include="Microsoft.AspNetCore.Server.Kestrel.Core.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.WebUtilities" />
+    <Reference Include="Microsoft.Extensions.Configuration.Binder" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="System.Security.Cryptography.Cng" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/Kestrel/Core/src/CoreStrings.resx b/src/Servers/Kestrel/Core/src/CoreStrings.resx
index 20c0b928cb56a3c500ac29c7cbe899b82848faad..3a25467bcc2f9dc85ccc52b38219c5861a8ad5bf 100644
--- a/src/Servers/Kestrel/Core/src/CoreStrings.resx
+++ b/src/Servers/Kestrel/Core/src/CoreStrings.resx
@@ -581,4 +581,4 @@ For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?l
   <data name="TransportNotFound" xml:space="preserve">
     <value>Unable to resolve service for type 'Microsoft.AspNetCore.Connections.IConnectionListenerFactory' while attempting to activate 'Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer'.</value>
   </data>
-</root>
+</root>
\ No newline at end of file
diff --git a/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs b/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs
index 259f2c61b6810d1cc2a50b28ddcb15c9c0e2155a..79dc84d5c1c134834e8b05dfd2e702b28946999c 100644
--- a/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs
+++ b/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs
@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
@@ -15,11 +15,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal
         private const string EndpointDefaultsKey = "EndpointDefaults";
         private const string EndpointsKey = "Endpoints";
         private const string UrlKey = "Url";
+        private const string Latin1RequestHeadersKey = "Latin1RequestHeaders";
 
         private IConfiguration _configuration;
         private IDictionary<string, CertificateConfig> _certificates;
         private IList<EndpointConfig> _endpoints;
         private EndpointDefaults _endpointDefaults;
+        private bool? _latin1RequestHeaders;
 
         public ConfigurationReader(IConfiguration configuration)
         {
@@ -65,6 +67,19 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal
             }
         }
 
+        public bool Latin1RequestHeaders
+        {
+            get
+            {
+                if (_latin1RequestHeaders is null)
+                {
+                    _latin1RequestHeaders = _configuration.GetValue<bool>(Latin1RequestHeadersKey);
+                }
+
+                return _latin1RequestHeaders.Value;
+            }
+        }
+
         private void ReadCertificates()
         {
             _certificates = new Dictionary<string, CertificateConfig>(0);
diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs
index 09c8d7923c6333911d58ba92c0f01e4451eaca18..832d48cdce4cbbf42873016da77739009f444c2b 100644
--- a/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs
+++ b/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs
@@ -34,6 +34,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
         private HttpRequestTarget _requestTargetForm = HttpRequestTarget.Unknown;
         private Uri _absoluteRequestTarget;
 
+        // The _parsed fields cache the Path, QueryString, RawTarget, and/or _absoluteRequestTarget
+        // from the previous request when DisableStringReuse is false.
+        private string _parsedPath = null;
+        private string _parsedQueryString = null;
+        private string _parsedRawTarget = null;
+        private Uri _parsedAbsoluteRequestTarget;
+
         private int _remainingRequestHeadersBytesAllowed;
 
         public Http1Connection(HttpConnectionContext context)
@@ -338,6 +345,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
                 // Clear parsedData as we won't check it if we come via this path again,
                 // an setting to null is fast as it doesn't need to use a GC write barrier.
                 _parsedRawTarget = _parsedPath = _parsedQueryString = null;
+                _parsedAbsoluteRequestTarget = null;
                 return;
             }
 
@@ -390,6 +398,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
                     Path = _parsedPath;
                     QueryString = _parsedQueryString;
                 }
+
+                // Clear parsedData for absolute target as we won't check it if we come via this path again,
+                // an setting to null is fast as it doesn't need to use a GC write barrier.
+                _parsedAbsoluteRequestTarget = null;
             }
             catch (InvalidOperationException)
             {
@@ -442,9 +454,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
 
             Path = string.Empty;
             QueryString = string.Empty;
-            // Clear parsedData for path and queryString as we won't check it if we come via this path again,
+            // Clear parsedData for path, queryString and absolute target as we won't check it if we come via this path again,
             // an setting to null is fast as it doesn't need to use a GC write barrier.
             _parsedPath = _parsedQueryString = null;
+            _parsedAbsoluteRequestTarget = null;
         }
 
         private void OnAsteriskFormTarget(HttpMethod method)
@@ -464,6 +477,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
             // Clear parsedData as we won't check it if we come via this path again,
             // an setting to null is fast as it doesn't need to use a GC write barrier.
             _parsedRawTarget = _parsedPath = _parsedQueryString = null;
+            _parsedAbsoluteRequestTarget = null;
         }
 
         private void OnAbsoluteFormTarget(Span<byte> target, Span<byte> query)
@@ -498,7 +512,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
                     ThrowRequestTargetRejected(target);
                 }
 
-                _absoluteRequestTarget = uri;
+                _absoluteRequestTarget = _parsedAbsoluteRequestTarget = uri;
                 Path = _parsedPath = uri.LocalPath;
                 // don't use uri.Query because we need the unescaped version
                 previousValue = _parsedQueryString;
@@ -521,6 +535,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
                 RawTarget = _parsedRawTarget;
                 Path = _parsedPath;
                 QueryString = _parsedQueryString;
+                _absoluteRequestTarget = _parsedAbsoluteRequestTarget;
             }
         }
 
diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.Generated.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.Generated.cs
index 402809d818ae5fef81a2d0bf91df3788d45a6b31..c46e2183c5a8354acd84a337e4cd55011da63e46 100644
--- a/src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.Generated.cs
+++ b/src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.Generated.cs
@@ -6105,7 +6105,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
                 }
 
                 // We didn't have a previous matching header value, or have already added a header, so get the string for this value.
-                var valueStr = value.GetAsciiOrUTF8StringNonNullCharacters();
+                var valueStr = value.GetRequestHeaderStringNonNullCharacters(_useLatin1);
                 if ((_bits & flag) == 0)
                 {
                     // We didn't already have a header set, so add a new one.
@@ -6123,7 +6123,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
                 // The header was not one of the "known" headers.
                 // Convert value to string first, because passing two spans causes 8 bytes stack zeroing in 
                 // this method with rep stosd, which is slower than necessary.
-                var valueStr = value.GetAsciiOrUTF8StringNonNullCharacters();
+                var valueStr = value.GetRequestHeaderStringNonNullCharacters(_useLatin1);
                 AppendUnknownHeaders(name, valueStr);
             }
         }
diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs
index 4e6cd3f8f0c4ba2df0fe178ed0884ce33fae70eb..d86ab4107bbde50284cb3999a63d594c08ea54d3 100644
--- a/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs
+++ b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs
@@ -81,6 +81,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
 
             ServerOptions = ServiceContext.ServerOptions;
 
+            HttpRequestHeaders = new HttpRequestHeaders(
+                reuseHeaderValues: !ServerOptions.DisableStringReuse,
+                useLatin1: ServerOptions.Latin1RequestHeaders);
+
             Reset();
 
             HttpRequestHeaders.ReuseHeaderValues = !ServerOptions.DisableStringReuse;
@@ -137,13 +141,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
         public HttpMethod Method { get; set; }
         public string PathBase { get; set; }
 
-        protected string _parsedPath = null;
         public string Path { get; set; }
-
-        protected string _parsedQueryString = null;
         public string QueryString { get; set; }
-
-        protected string _parsedRawTarget = null;
         public string RawTarget { get; set; }
 
         public string HttpVersion
@@ -533,7 +532,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
             }
 
             string key = name.GetHeaderName();
-            var valueStr = value.GetAsciiOrUTF8StringNonNullCharacters();
+            var valueStr = value.GetRequestHeaderStringNonNullCharacters(ServerOptions.Latin1RequestHeaders);
             RequestTrailers.Append(key, valueStr);
         }
 
diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestHeaders.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestHeaders.cs
index 329ce4b312d41710a89a772536ee4fee420c8689..39a5ce81dfec4da782c68915502b7ad5688baf60 100644
--- a/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestHeaders.cs
+++ b/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestHeaders.cs
@@ -14,11 +14,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
 {
     internal sealed partial class HttpRequestHeaders : HttpHeaders
     {
+        private readonly bool _useLatin1;
         private long _previousBits = 0;
 
-        public HttpRequestHeaders(bool reuseHeaderValues = true)
+        public HttpRequestHeaders(bool reuseHeaderValues = true, bool useLatin1 = false)
         {
             ReuseHeaderValues = reuseHeaderValues;
+            _useLatin1 = useLatin1;
         }
 
         public bool ReuseHeaderValues { get; set; }
@@ -81,7 +83,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
                 parsed < 0 ||
                 consumed != value.Length)
             {
-                BadHttpRequestException.Throw(RequestRejectionReason.InvalidContentLength, value.GetAsciiOrUTF8StringNonNullCharacters());
+                BadHttpRequestException.Throw(RequestRejectionReason.InvalidContentLength, value.GetRequestHeaderStringNonNullCharacters(_useLatin1));
             }
 
             _contentLength = parsed;
diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.cs
index c95386b9f7743e833763186a2f7cf8e9c746ae80..09c2d74265a011b7eeacb6b8ff76248e9b760214 100644
--- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.cs
+++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.cs
@@ -133,7 +133,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
         {
             fixed (char* output = &MemoryMarshal.GetReference(buffer))
             {
-                // This version if AsciiUtilities returns null if there are any null (0 byte) characters
+                // StringUtilities.TryGetAsciiString returns null if there are any null (0 byte) characters
                 // in the string
                 if (!StringUtilities.TryGetAsciiString((byte*)state.ToPointer(), output, buffer.Length))
                 {
@@ -142,7 +142,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
             }
         }
 
-        public static unsafe string GetAsciiOrUTF8StringNonNullCharacters(this Span<byte> span)
+        private static unsafe string GetAsciiOrUTF8StringNonNullCharacters(this Span<byte> span)
             => GetAsciiOrUTF8StringNonNullCharacters((ReadOnlySpan<byte>)span);
 
         public static unsafe string GetAsciiOrUTF8StringNonNullCharacters(this ReadOnlySpan<byte> span)
@@ -195,6 +195,32 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
             }
         }
 
+        private static unsafe string GetLatin1StringNonNullCharacters(this Span<byte> span)
+        {
+            if (span.IsEmpty)
+            {
+                return string.Empty;
+            }
+
+            var resultString = new string('\0', span.Length);
+
+            fixed (char* output = resultString)
+            fixed (byte* buffer = span)
+            {
+                // This returns false if there are any null (0 byte) characters in the string.
+                if (!StringUtilities.TryGetLatin1String(buffer, output, span.Length))
+                {
+                    // null characters are considered invalid
+                    throw new InvalidOperationException();
+                }
+            }
+
+            return resultString;
+        }
+
+        public static string GetRequestHeaderStringNonNullCharacters(this Span<byte> span, bool useLatin1) =>
+            useLatin1 ? GetLatin1StringNonNullCharacters(span) : GetAsciiOrUTF8StringNonNullCharacters(span);
+
         public static string GetAsciiStringEscaped(this Span<byte> span, int maxChars)
         {
             var sb = new StringBuilder();
diff --git a/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs b/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs
index 4522fedd62935959bc47654ff39cddeee4919d3f..5e202f3efa2945413bc950e219bbab93d2ac3aba 100644
--- a/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs
+++ b/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs
@@ -222,6 +222,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel
             }
             _loaded = true;
 
+            Options.Latin1RequestHeaders = ConfigurationReader.Latin1RequestHeaders;
+
             LoadDefaultCert(ConfigurationReader);
 
             foreach (var endpoint in ConfigurationReader.Endpoints)
diff --git a/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs b/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs
index 19bbce9362d592e09608b7fa4fd782f7d50310ed..71def30d73990634250dc7fbbb387138145d9774 100644
--- a/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs
+++ b/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs
@@ -97,6 +97,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
         /// </summary>
         internal bool IsDevCertLoaded { get; set; }
 
+        /// <summary>
+        /// Treat request headers as Latin-1 or ISO/IEC 8859-1 instead of UTF-8.
+        /// </summary>
+        internal bool Latin1RequestHeaders { get; set; }
+
         /// <summary>
         /// Specifies a configuration Action to run for each newly created endpoint. Calling this again will replace
         /// the prior action.
diff --git a/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
index 789564054a5e75d7866e65f28b8aa5c80b91d715..61db948363b578560175492501dc561453624d8d 100644
--- a/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
+++ b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
@@ -8,7 +8,7 @@
     <PackageTags>aspnetcore;kestrel</PackageTags>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <NoWarn>CS1591;$(NoWarn)</NoWarn>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
     <DefineConstants>$(DefineConstants);KESTREL</DefineConstants>
   </PropertyGroup>
 
diff --git a/src/Servers/Kestrel/Core/test/HttpRequestHeadersTests.cs b/src/Servers/Kestrel/Core/test/HttpRequestHeadersTests.cs
index a7603b9190fd9a4447406390aa3085834e6972f4..d87f1f814fea09e8f3ba0bc739efc10611cda3e7 100644
--- a/src/Servers/Kestrel/Core/test/HttpRequestHeadersTests.cs
+++ b/src/Servers/Kestrel/Core/test/HttpRequestHeadersTests.cs
@@ -318,6 +318,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
         public void ValueReuseOnlyWhenAllowed(bool reuseValue, KnownHeader header)
         {
             const string HeaderValue = "Hello";
+
             var headers = new HttpRequestHeaders(reuseHeaderValues: reuseValue);
 
             for (var i = 0; i < 6; i++)
@@ -336,14 +337,14 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
                 Assert.Equal(values.PrevHeaderValue, values.NextHeaderValue);
                 if (reuseValue)
                 {
-                    // When materalized string is reused previous and new should be the same object
+                    // When materialized string is reused previous and new should be the same object
                     Assert.Same(values.PrevHeaderValue, values.NextHeaderValue);
                 }
                 else
                 {
-                    // When materalized string is not reused previous and new should be the different objects
+                    // When materialized string is not reused previous and new should be the different objects
                     Assert.NotSame(values.PrevHeaderValue, values.NextHeaderValue);
-            }
+                }
             }
         }
 
@@ -483,6 +484,89 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
             }
         }
 
+        [Theory]
+        [MemberData(nameof(KnownRequestHeaders))]
+        public void Latin1ValuesAcceptedInLatin1ModeButNotReused(bool reuseValue, KnownHeader header)
+        {
+            var headers = new HttpRequestHeaders(reuseHeaderValues: reuseValue, useLatin1: true);
+
+            var headerValue = new char[127]; // 64 + 32 + 16 + 8 + 4 + 2 + 1
+            for (var i = 0; i < headerValue.Length; i++)
+            {
+                headerValue[i] = 'a';
+            }
+
+            for (var i = 0; i < headerValue.Length; i++)
+            {
+                // Set non-ascii Latin char that is valid Utf16 when widened; but not a valid utf8 -> utf16 conversion.
+                headerValue[i] = '\u00a3';
+
+                for (var mode = 0; mode <= 1; mode++)
+                {
+                    string headerValueUtf16Latin1CrossOver;
+                    if (mode == 0)
+                    {
+                        // Full length
+                        headerValueUtf16Latin1CrossOver = new string(headerValue);
+                    }
+                    else
+                    {
+                        // Truncated length (to ensure different paths from changing lengths in matching)
+                        headerValueUtf16Latin1CrossOver = new string(headerValue.AsSpan().Slice(0, i + 1));
+                    }
+
+                    headers.Reset();
+
+                    var headerName = Encoding.ASCII.GetBytes(header.Name).AsSpan();
+                    var latinValueSpan = Encoding.GetEncoding("iso-8859-1").GetBytes(headerValueUtf16Latin1CrossOver).AsSpan();
+
+                    Assert.False(latinValueSpan.SequenceEqual(Encoding.ASCII.GetBytes(headerValueUtf16Latin1CrossOver)));
+
+                    headers.Append(headerName, latinValueSpan);
+                    headers.OnHeadersComplete();
+                    var parsedHeaderValue = ((IHeaderDictionary)headers)[header.Name].ToString();
+
+                    Assert.Equal(headerValueUtf16Latin1CrossOver, parsedHeaderValue);
+                    Assert.NotSame(headerValueUtf16Latin1CrossOver, parsedHeaderValue);
+                }
+
+                // Reset back to Ascii
+                headerValue[i] = 'a';
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(KnownRequestHeaders))]
+        public void NullCharactersRejectedInUTF8AndLatin1Mode(bool useLatin1, KnownHeader header)
+        {
+            var headers = new HttpRequestHeaders(useLatin1: useLatin1);
+
+            var valueArray = new char[127]; // 64 + 32 + 16 + 8 + 4 + 2 + 1
+            for (var i = 0; i < valueArray.Length; i++)
+            {
+                valueArray[i] = 'a';
+            }
+
+            for (var i = 1; i < valueArray.Length; i++)
+            {
+                // Set non-ascii Latin char that is valid Utf16 when widened; but not a valid utf8 -> utf16 conversion.
+                valueArray[i] = '\0';
+                string valueString = new string(valueArray);
+
+                headers.Reset();
+
+                Assert.Throws<InvalidOperationException>(() =>
+                {
+                    var headerName = Encoding.ASCII.GetBytes(header.Name).AsSpan();
+                    var valueSpan = Encoding.ASCII.GetBytes(valueString).AsSpan();
+
+                    headers.Append(headerName, valueSpan);
+                });
+
+                valueArray[i] = 'a';
+            }
+        }
+
         [Fact]
         public void ValueReuseNeverWhenUnknownHeader()
         {
diff --git a/src/Servers/Kestrel/Core/test/UTF8Decoding.cs b/src/Servers/Kestrel/Core/test/UTF8Decoding.cs
index 532e13781d994da9562dfb6bcfc4c6d996936aed..4c4e37740047ea12a8f6994b45a7bff8961d7b4b 100644
--- a/src/Servers/Kestrel/Core/test/UTF8Decoding.cs
+++ b/src/Servers/Kestrel/Core/test/UTF8Decoding.cs
@@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
         [InlineData(new byte[] { 0xef, 0xbf, 0xbd })] // 3 bytes: Replacement character, highest UTF-8 character currently encoded in the UTF-8 code page
         private void FullUTF8RangeSupported(byte[] encodedBytes)
         {
-            var s = encodedBytes.AsSpan().GetAsciiOrUTF8StringNonNullCharacters();
+            var s = encodedBytes.AsSpan().GetRequestHeaderStringNonNullCharacters(useLatin1: false);
 
             Assert.Equal(1, s.Length);
         }
@@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
                     var byteRange = Enumerable.Range(1, length).Select(x => (byte)x).ToArray();
                     Array.Copy(bytes, 0, byteRange, position, bytes.Length);
 
-                    Assert.Throws<InvalidOperationException>(() => byteRange.AsSpan().GetAsciiOrUTF8StringNonNullCharacters());
+                    Assert.Throws<InvalidOperationException>(() => byteRange.AsSpan().GetRequestHeaderStringNonNullCharacters(useLatin1: false));
                 }
             }
         }
diff --git a/src/Servers/Kestrel/Kestrel/ref/Microsoft.AspNetCore.Server.Kestrel.csproj b/src/Servers/Kestrel/Kestrel/ref/Microsoft.AspNetCore.Server.Kestrel.csproj
index 8ea78b24024d1ce9b2a606558ebfbe11bec0d575..a390f09e1c95a68d484233520075843a80aa6db1 100644
--- a/src/Servers/Kestrel/Kestrel/ref/Microsoft.AspNetCore.Server.Kestrel.csproj
+++ b/src/Servers/Kestrel/Kestrel/ref/Microsoft.AspNetCore.Server.Kestrel.csproj
@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Server.Kestrel.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets"  />
+    <Reference Include="Microsoft.AspNetCore.Hosting" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj b/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj
index c82835cdce143006c420c7f16665ebcf2f7ae936..f4ef0ca07a62f1de9f60376a5052c8849d8f177b 100644
--- a/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj
+++ b/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj
@@ -7,7 +7,7 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;kestrel</PackageTags>
     <NoWarn>CS1591;$(NoWarn)</NoWarn>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs b/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs
index b2425f7175803db6d6498178bd641ca249bf65c9..d557e007f1b94d1c7fcac58cf54994d9f03861a5 100644
--- a/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs
+++ b/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs
@@ -456,6 +456,27 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests
             Assert.True(ran3);
         }
 
+        [Fact]
+        public void Latin1RequestHeadersReadFromConfig()
+        {
+            var options = CreateServerOptions();
+            var config =  new ConfigurationBuilder().AddInMemoryCollection().Build();
+
+            Assert.False(options.Latin1RequestHeaders);
+            options.Configure(config).Load();
+            Assert.False(options.Latin1RequestHeaders);
+
+            options = CreateServerOptions();
+            config = new ConfigurationBuilder().AddInMemoryCollection(new[]
+            {
+                new KeyValuePair<string, string>("Latin1RequestHeaders", "true"),
+            }).Build();
+
+            Assert.False(options.Latin1RequestHeaders);
+            options.Configure(config).Load();
+            Assert.True(options.Latin1RequestHeaders);
+        }
+
         private static string GetCertificatePath()
         {
             var appData = Environment.GetEnvironmentVariable("APPDATA");
diff --git a/src/Servers/Kestrel/Transport.Libuv/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj b/src/Servers/Kestrel/Transport.Libuv/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj
deleted file mode 100644
index c80557cd678cf998a89023f02fa788902b17c46a..0000000000000000000000000000000000000000
--- a/src/Servers/Kestrel/Transport.Libuv/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.netcoreapp.cs" />
-    <Reference Include="Libuv"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-  </ItemGroup>
-</Project>
diff --git a/src/Servers/Kestrel/Transport.Libuv/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.netcoreapp.cs b/src/Servers/Kestrel/Transport.Libuv/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.netcoreapp.cs
deleted file mode 100644
index f680b14300490ac5a37f50ed59193fe2a3dbf2e7..0000000000000000000000000000000000000000
--- a/src/Servers/Kestrel/Transport.Libuv/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.netcoreapp.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Hosting
-{
-    public static partial class WebHostBuilderLibuvExtensions
-    {
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseLibuv(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseLibuv(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action<Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions> configureOptions) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv
-{
-    public partial class LibuvTransportOptions
-    {
-        public LibuvTransportOptions() { }
-        public int Backlog { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public long? MaxReadBufferSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public long? MaxWriteBufferSize { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool NoDelay { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public int ThreadCount { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
diff --git a/src/Servers/Kestrel/Transport.Sockets/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Manual.cs b/src/Servers/Kestrel/Transport.Sockets/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Manual.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9e17979a0581eb55686b0f94cfb183403f1cdd44
--- /dev/null
+++ b/src/Servers/Kestrel/Transport.Sockets/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Manual.cs
@@ -0,0 +1,94 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace System.Buffers
+{
+    internal partial class DiagnosticMemoryPool : System.Buffers.MemoryPool<byte>
+    {        public DiagnosticMemoryPool(System.Buffers.MemoryPool<byte> pool, bool allowLateReturn = false, bool rentTracking = false) { }
+        public bool IsDisposed { get { throw null; } }
+        public override int MaxBufferSize { get { throw null; } }
+        protected override void Dispose(bool disposing) { }
+        public override System.Buffers.IMemoryOwner<byte> Rent(int size = -1) { throw null; }
+        internal void ReportException(System.Exception exception) { }
+        internal void Return(System.Buffers.DiagnosticPoolBlock block) { }
+        public System.Threading.Tasks.Task WhenAllBlocksReturnedAsync(System.TimeSpan timeout) { throw null; }
+    }
+    internal sealed partial class DiagnosticPoolBlock : System.Buffers.MemoryManager<byte>
+    {
+        internal DiagnosticPoolBlock(System.Buffers.DiagnosticMemoryPool pool, System.Buffers.IMemoryOwner<byte> memoryOwner) { }
+        public System.Diagnostics.StackTrace Leaser { get { throw null; } set { } }
+        public override System.Memory<byte> Memory { get { throw null; } }
+        protected override void Dispose(bool disposing) { }
+        public override System.Span<byte> GetSpan() { throw null; }
+        public override System.Buffers.MemoryHandle Pin(int byteOffset = 0) { throw null; }
+        public void Track() { }
+        protected override bool TryGetArray(out System.ArraySegment<byte> segment) { throw null; }
+        public override void Unpin() { }
+    }
+    internal sealed partial class MemoryPoolBlock : System.Buffers.IMemoryOwner<byte>
+    {
+        internal MemoryPoolBlock(System.Buffers.SlabMemoryPool pool, System.Buffers.MemoryPoolSlab slab, int offset, int length) { }
+        public System.Memory<byte> Memory { get { throw null; } }
+        public System.Buffers.SlabMemoryPool Pool { get { throw null; } }
+        public System.Buffers.MemoryPoolSlab Slab { get { throw null; } }
+        public void Dispose() { }
+        ~MemoryPoolBlock() { }
+        public void Lease() { }
+    }
+    internal partial class MemoryPoolSlab : System.IDisposable
+    {
+        public MemoryPoolSlab(byte[] data) { }
+        public byte[] Array { get { throw null; } }
+        public bool IsActive { get { throw null; } }
+        public System.IntPtr NativePointer { get { throw null; } }
+        public static System.Buffers.MemoryPoolSlab Create(int length) { throw null; }
+        public void Dispose() { }
+        protected void Dispose(bool disposing) { }
+        ~MemoryPoolSlab() { }
+    }
+    internal partial class MemoryPoolThrowHelper
+    {
+        public MemoryPoolThrowHelper() { }
+        public static void ThrowArgumentOutOfRangeException(int sourceLength, int offset) { }
+        public static void ThrowArgumentOutOfRangeException_BufferRequestTooLarge(int maxSize) { }
+        public static void ThrowInvalidOperationException_BlockDoubleDispose(System.Buffers.DiagnosticPoolBlock block) { }
+        public static void ThrowInvalidOperationException_BlockIsBackedByDisposedSlab(System.Buffers.DiagnosticPoolBlock block) { }
+        public static void ThrowInvalidOperationException_BlockReturnedToDisposedPool(System.Buffers.DiagnosticPoolBlock block) { }
+        public static void ThrowInvalidOperationException_BlocksWereNotReturnedInTime(int returned, int total, System.Buffers.DiagnosticPoolBlock[] blocks) { }
+        public static void ThrowInvalidOperationException_DisposingPoolWithActiveBlocks(int returned, int total, System.Buffers.DiagnosticPoolBlock[] blocks) { }
+        public static void ThrowInvalidOperationException_DoubleDispose() { }
+        public static void ThrowInvalidOperationException_PinCountZero(System.Buffers.DiagnosticPoolBlock block) { }
+        public static void ThrowInvalidOperationException_ReturningPinnedBlock(System.Buffers.DiagnosticPoolBlock block) { }
+        public static void ThrowObjectDisposedException(System.Buffers.MemoryPoolThrowHelper.ExceptionArgument argument) { }
+        internal enum ExceptionArgument
+        {
+            size = 0,
+            offset = 1,
+            length = 2,
+            MemoryPoolBlock = 3,
+            MemoryPool = 4,
+        }
+    }
+    internal sealed partial class SlabMemoryPool : System.Buffers.MemoryPool<byte>
+    {
+        public SlabMemoryPool() { }
+        public static int BlockSize { get { throw null; } }
+        public override int MaxBufferSize { get { throw null; } }
+        protected override void Dispose(bool disposing) { }
+        internal void RefreshBlock(System.Buffers.MemoryPoolSlab slab, int offset, int length) { }
+        public override System.Buffers.IMemoryOwner<byte> Rent(int size = -1) { throw null; }
+        internal void Return(System.Buffers.MemoryPoolBlock block) { }
+    }
+    internal static partial class SlabMemoryPoolFactory
+    {
+        public static System.Buffers.MemoryPool<byte> Create() { throw null; }
+        public static System.Buffers.MemoryPool<byte> CreateSlabMemoryPool() { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets
+{
+    public partial class SocketTransportOptions
+    {
+        internal System.Func<System.Buffers.MemoryPool<byte>> MemoryPoolFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+}
\ No newline at end of file
diff --git a/src/Servers/Kestrel/Transport.Sockets/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj b/src/Servers/Kestrel/Transport.Sockets/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
index a388dfa90480e9dbac135ff73fdf1a2bf2424572..3c6e3ec432303c6e2320049c9fa11547cbbce870 100644
--- a/src/Servers/Kestrel/Transport.Sockets/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
+++ b/src/Servers/Kestrel/Transport.Sockets/ref/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
@@ -5,8 +5,10 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Compile Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Manual.cs" />
+    <Compile Include="../src/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>
diff --git a/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj b/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
index 6bb6ff2ce32008fe6e816803e28c142f891c6b43..278fed94dd95d9a6604d88956378c14043674c7e 100644
--- a/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
+++ b/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
@@ -8,7 +8,7 @@
     <PackageTags>aspnetcore;kestrel</PackageTags>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <NoWarn>CS1591;$(NoWarn)</NoWarn>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/Servers/Kestrel/perf/Kestrel.Performance/BytesToStringBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/BytesToStringBenchmark.cs
index 28f365d7da45a191b95f894e63849656084906a3..cd6d19b75c9167e67f9f1e4d3ee5503cdf4d975f 100644
--- a/src/Servers/Kestrel/perf/Kestrel.Performance/BytesToStringBenchmark.cs
+++ b/src/Servers/Kestrel/perf/Kestrel.Performance/BytesToStringBenchmark.cs
@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using BenchmarkDotNet.Attributes;
@@ -67,7 +67,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Performance
         {
             for (uint i = 0; i < Iterations; i++)
             {
-                HttpUtilities.GetAsciiOrUTF8StringNonNullCharacters(_utf8Bytes);
+                HttpUtilities.GetRequestHeaderStringNonNullCharacters(_utf8Bytes, useLatin1: false);
             }
         }
 
diff --git a/src/Servers/Kestrel/shared/KnownHeaders.cs b/src/Servers/Kestrel/shared/KnownHeaders.cs
index f26fb786d50231d8b60254da77da0c34d384e7d0..fe643020d4906414ea5a7bd511b59426798443c4 100644
--- a/src/Servers/Kestrel/shared/KnownHeaders.cs
+++ b/src/Servers/Kestrel/shared/KnownHeaders.cs
@@ -986,7 +986,7 @@ $@"        private void Clear(long bitsToClear)
                 }}
 
                 // We didn't have a previous matching header value, or have already added a header, so get the string for this value.
-                var valueStr = value.GetAsciiOrUTF8StringNonNullCharacters();
+                var valueStr = value.GetRequestHeaderStringNonNullCharacters(_useLatin1);
                 if ((_bits & flag) == 0)
                 {{
                     // We didn't already have a header set, so add a new one.
@@ -1004,7 +1004,7 @@ $@"        private void Clear(long bitsToClear)
                 // The header was not one of the ""known"" headers.
                 // Convert value to string first, because passing two spans causes 8 bytes stack zeroing in 
                 // this method with rep stosd, which is slower than necessary.
-                var valueStr = value.GetAsciiOrUTF8StringNonNullCharacters();
+                var valueStr = value.GetRequestHeaderStringNonNullCharacters(_useLatin1);
                 AppendUnknownHeaders(name, valueStr);
             }}
         }}" : "")}
diff --git a/src/Servers/Kestrel/shared/test/TestResources.cs b/src/Servers/Kestrel/shared/test/TestResources.cs
index d335617c7d75b250d5c5bfe935495747cb7e1448..760eb81051321049579087fe7b28cce048e50601 100644
--- a/src/Servers/Kestrel/shared/test/TestResources.cs
+++ b/src/Servers/Kestrel/shared/test/TestResources.cs
@@ -40,5 +40,10 @@ namespace Microsoft.AspNetCore.Testing
                 importPfxMutex?.ReleaseMutex();
             }
         }
+
+        public static X509Certificate2 GetTestCertificate(string certName, string password)
+        {
+            return new X509Certificate2(GetCertPath(certName), password);
+        }
     }
 }
diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs
index 109e513bff29834019037c8eb911a9c6e23e955b..6d9e6da62ee9fccfc858be53678bde0af95dd136 100644
--- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs
+++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs
@@ -4582,5 +4582,65 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
             Assert.Single(_decodedHeaders);
             Assert.Equal("Custom Value", _decodedHeaders["CustomName"]);
         }
+
+        [Fact]
+        public async Task HEADERS_Received_Latin1_AcceptedWhenLatin1OptionIsConfigured()
+        {
+            _serviceContext.ServerOptions.Latin1RequestHeaders = true;
+
+            var headers = new[]
+            {
+                new KeyValuePair<string, string>(HeaderNames.Method, "GET"),
+                new KeyValuePair<string, string>(HeaderNames.Path, "/"),
+                new KeyValuePair<string, string>(HeaderNames.Scheme, "http"),
+                // The HPackEncoder will encode £ as 0xA3 aka Latin1 encoding.
+                new KeyValuePair<string, string>("X-Test", "£"),
+            };
+
+            await InitializeConnectionAsync(context =>
+            {
+                Assert.Equal("£", context.Request.Headers["X-Test"]);
+                return Task.CompletedTask;
+            });
+
+            await StartStreamAsync(1, headers, endStream: true);
+
+            var headersFrame = await ExpectAsync(Http2FrameType.HEADERS,
+                withLength: 55,
+                withFlags: (byte)(Http2HeadersFrameFlags.END_HEADERS | Http2HeadersFrameFlags.END_STREAM),
+                withStreamId: 1);
+
+            await StopConnectionAsync(expectedLastStreamId: 1, ignoreNonGoAwayFrames: false);
+
+            _hpackDecoder.Decode(headersFrame.PayloadSequence, endHeaders: false, handler: this);
+
+            Assert.Equal(3, _decodedHeaders.Count);
+            Assert.Contains("date", _decodedHeaders.Keys, StringComparer.OrdinalIgnoreCase);
+            Assert.Equal("200", _decodedHeaders[HeaderNames.Status]);
+            Assert.Equal("0", _decodedHeaders["content-length"]);
+        }
+
+        [Fact]
+        public async Task HEADERS_Received_Latin1_RejectedWhenLatin1OptionIsNotConfigured()
+        {
+            var headers = new[]
+            {
+                new KeyValuePair<string, string>(HeaderNames.Method, "GET"),
+                new KeyValuePair<string, string>(HeaderNames.Path, "/"),
+                new KeyValuePair<string, string>(HeaderNames.Scheme, "http"),
+                // The HPackEncoder will encode £ as 0xA3 aka Latin1 encoding.
+                new KeyValuePair<string, string>("X-Test", "£"),
+            };
+
+            await InitializeConnectionAsync(_noopApplication);
+
+            await StartStreamAsync(1, headers, endStream: true);
+
+            await WaitForConnectionErrorAsync<Http2ConnectionErrorException>(
+                ignoreNonGoAwayFrames: true,
+                expectedLastStreamId: 1,
+                expectedErrorCode: Http2ErrorCode.PROTOCOL_ERROR,
+                expectedErrorMessage: CoreStrings.BadRequest_MalformedRequestInvalidHeaders);
+        }
     }
 }
diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs
index d43657f5456383931b905a6bd8743772bdf425f9..22bc15f2fcdc8708210d100a2a3ee66f983bcf4f 100644
--- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs
+++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs
@@ -403,7 +403,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
 
         void IHttpHeadersHandler.OnHeader(ReadOnlySpan<byte> name, ReadOnlySpan<byte> value)
         {
-            _decodedHeaders[name.GetAsciiStringNonNullCharacters()] = value.GetAsciiOrUTF8StringNonNullCharacters();
+            _decodedHeaders[name.GetAsciiStringNonNullCharacters()] = value.GetRequestHeaderStringNonNullCharacters(useLatin1: _serviceContext.ServerOptions.Latin1RequestHeaders);
         }
 
         void IHttpHeadersHandler.OnHeadersComplete(bool endStream) { }
diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/RequestTests.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/RequestTests.cs
index 2911ff915900062fe502fb5355fe1062806e1c96..a392e73f86fbfec0598f1fe60c3c2c7e76bd1fa3 100644
--- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/RequestTests.cs
+++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/RequestTests.cs
@@ -253,6 +253,38 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
             }
         }
 
+        [Fact]
+        public async Task CanHandleTwoAbsoluteFormRequestsInARow()
+        {
+            // Regression test for https://github.com/dotnet/aspnetcore/issues/18438
+            var testContext = new TestServiceContext(LoggerFactory);
+
+            await using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
+            {
+                using (var connection = server.CreateConnection())
+                {
+                    await connection.Send(
+                        "GET http://localhost/ HTTP/1.1",
+                        "Host: localhost",
+                        "",
+                        "GET http://localhost/ HTTP/1.1",
+                        "Host: localhost",
+                        "",
+                        "");
+                    await connection.Receive(
+                        "HTTP/1.1 200 OK",
+                        $"Date: {testContext.DateHeaderValue}",
+                        "Content-Length: 0",
+                        "",
+                        "HTTP/1.1 200 OK",
+                        $"Date: {testContext.DateHeaderValue}",
+                        "Content-Length: 0",
+                        "",
+                        "");
+                }
+            }
+        }
+
         [Fact]
         public async Task AppCanSetTraceIdentifier()
         {
@@ -358,7 +390,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
             }
         }
 
-
         [Fact]
         public async Task Http10NotKeptAliveByDefault()
         {
@@ -1653,6 +1684,69 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
             }
         }
 
+        [Fact]
+        public async Task Latin1HeaderValueAcceptedWhenLatin1OptionIsConfigured()
+        {
+            var testContext = new TestServiceContext(LoggerFactory);
+
+            testContext.ServerOptions.Latin1RequestHeaders = true;
+
+            await using (var server = new TestServer(context =>
+            {
+                Assert.Equal("£", context.Request.Headers["X-Test"]);
+                return Task.CompletedTask;
+            }, testContext))
+            {
+                using (var connection = server.CreateConnection())
+                {
+                    // The StreamBackedTestConnection will encode £ using the "iso-8859-1" aka Latin1 encoding.
+                    // It will be encoded as 0xA3 which isn't valid UTF-8.
+                    await connection.Send(
+                        "GET / HTTP/1.1",
+                        "Host:",
+                        "X-Test: £",
+                        "",
+                        "");
+
+                    await connection.Receive(
+                        "HTTP/1.1 200 OK",
+                        $"Date: {testContext.DateHeaderValue}",
+                        "Content-Length: 0",
+                        "",
+                        "");
+                }
+            }
+        }
+
+        [Fact]
+        public async Task Latin1HeaderValueRejectedWhenLatin1OptionIsNotConfigured()
+        {
+            var testContext = new TestServiceContext(LoggerFactory);
+
+            await using (var server = new TestServer(_ => Task.CompletedTask, testContext))
+            {
+                using (var connection = server.CreateConnection())
+                {
+                    // The StreamBackedTestConnection will encode £ using the "iso-8859-1" aka Latin1 encoding.
+                    // It will be encoded as 0xA3 which isn't valid UTF-8.
+                    await connection.Send(
+                        "GET / HTTP/1.1",
+                        "Host:",
+                        "X-Test: £",
+                        "",
+                        "");
+
+                    await connection.ReceiveEnd(
+                        "HTTP/1.1 400 Bad Request",
+                        "Connection: close",
+                        $"Date: {testContext.DateHeaderValue}",
+                        "Content-Length: 0",
+                        "",
+                        "");
+                }
+            }
+        }
+
         public static TheoryData<string, string> HostHeaderData => HttpParsingData.HostHeaderData;
     }
 }
diff --git a/src/Shared/CertificateGeneration/CertificateManager.cs b/src/Shared/CertificateGeneration/CertificateManager.cs
index c40c9e6413690d4f4ca8a53bfb32b53f732479eb..01962e83d4bfc0cbc924b22e8ea3ca4e74687a92 100644
--- a/src/Shared/CertificateGeneration/CertificateManager.cs
+++ b/src/Shared/CertificateGeneration/CertificateManager.cs
@@ -7,6 +7,7 @@ using System.Diagnostics;
 using System.IO;
 using System.Linq;
 using System.Runtime.InteropServices;
+using System.Runtime.InteropServices.ComTypes;
 using System.Security.Cryptography;
 using System.Security.Cryptography.X509Certificates;
 using System.Text;
@@ -41,6 +42,8 @@ namespace Microsoft.AspNetCore.Certificates.Generation
         private const string MacOSTrustCertificateCommandLine = "sudo";
         private static readonly string MacOSTrustCertificateCommandLineArguments = "security add-trusted-cert -d -r trustRoot -k " + MacOSSystemKeyChain + " ";
         private const int UserCancelledErrorCode = 1223;
+        private const string MacOSSetPartitionKeyPermissionsCommandLine = "sudo";
+        private static readonly string MacOSSetPartitionKeyPermissionsCommandLineArguments = "security set-key-partition-list -D localhost -S unsigned:,teamid:UBF8T346G9 " + MacOSUserKeyChain;
 
         // Setting to 0 means we don't append the version byte,
         // which is what all machines currently have.
@@ -177,6 +180,27 @@ namespace Microsoft.AspNetCore.Certificates.Generation
             }
         }
 
+        internal bool HasValidCertificateWithInnaccessibleKeyAcrossPartitions()
+        {
+            var certificates = GetHttpsCertificates();
+            if (certificates.Count == 0)
+            {
+                return false;
+            }
+
+            // We need to check all certificates as a new one might be created that hasn't been correctly setup.
+            var result = false;
+            foreach (var certificate in certificates)
+            {
+                result = result || !CanAccessCertificateKeyAcrossPartitions(certificate);
+            }
+
+            return result;
+        }
+
+        public IList<X509Certificate2> GetHttpsCertificates() =>
+            ListCertificates(CertificatePurpose.HTTPS, StoreName.My, StoreLocation.CurrentUser, isValid: true, requireExportable: true);
+
         public X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter, string subjectOverride, DiagnosticInformation diagnostics = null)
         {
             var subject = new X500DistinguishedName(subjectOverride ?? LocalhostHttpsDistinguishedName);
@@ -707,20 +731,22 @@ namespace Microsoft.AspNetCore.Certificates.Generation
             bool trust = false,
             bool includePrivateKey = false,
             string password = null,
-            string subject = LocalhostHttpsDistinguishedName)
+            string subject = LocalhostHttpsDistinguishedName,
+            bool isInteractive = true)
         {
-            return EnsureValidCertificateExists(notBefore, notAfter, CertificatePurpose.HTTPS, path, trust, includePrivateKey, password, subject);
+            return EnsureValidCertificateExists(notBefore, notAfter, CertificatePurpose.HTTPS, path, trust, includePrivateKey, password, subject, isInteractive);
         }
 
         public DetailedEnsureCertificateResult EnsureValidCertificateExists(
             DateTimeOffset notBefore,
             DateTimeOffset notAfter,
             CertificatePurpose purpose,
-            string path,
-            bool trust,
-            bool includePrivateKey,
-            string password,
-            string subject)
+            string path = null,
+            bool trust = false,
+            bool includePrivateKey = false,
+            string password = null,
+            string subjectOverride = null,
+            bool isInteractive = true)
         {
             if (purpose == CertificatePurpose.All)
             {
@@ -732,12 +758,12 @@ namespace Microsoft.AspNetCore.Certificates.Generation
             var certificates = ListCertificates(purpose, StoreName.My, StoreLocation.CurrentUser, isValid: true, requireExportable: true, result.Diagnostics).Concat(
                 ListCertificates(purpose, StoreName.My, StoreLocation.LocalMachine, isValid: true, requireExportable: true, result.Diagnostics));
 
-            var filteredCertificates = subject == null ? certificates : certificates.Where(c => c.Subject == subject);
-            if (subject != null)
+            var filteredCertificates = subjectOverride == null ? certificates : certificates.Where(c => c.Subject == subjectOverride);
+            if (subjectOverride != null)
             {
                 var excludedCertificates = certificates.Except(filteredCertificates);
 
-                result.Diagnostics.Debug($"Filtering found certificates to those with a subject equal to '{subject}'");
+                result.Diagnostics.Debug($"Filtering found certificates to those with a subject equal to '{subjectOverride}'");
                 result.Diagnostics.Debug(result.Diagnostics.DescribeCertificates(filteredCertificates));
                 result.Diagnostics.Debug($"Listing certificates excluded from consideration.");
                 result.Diagnostics.Debug(result.Diagnostics.DescribeCertificates(excludedCertificates));
@@ -747,6 +773,35 @@ namespace Microsoft.AspNetCore.Certificates.Generation
                 result.Diagnostics.Debug("Skipped filtering certificates by subject.");
             }
 
+            if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
+            {
+                foreach (var cert in filteredCertificates)
+                {
+                    if (!CanAccessCertificateKeyAcrossPartitions(cert))
+                    {
+                        if (!isInteractive)
+                        {
+                            // If the process is not interactive (first run experience) bail out. We will simply create a certificate
+                            // in case there is none or report success during the first run experience.
+                            break;
+                        }
+                        try
+                        {
+                            // The command we run handles making keys for all localhost certificates accessible across partitions. If it can not run the
+                            // command safely (because there are other localhost certificates that were not created by asp.net core, it will throw.
+                            MakeCertificateKeyAccessibleAcrossPartitions(cert);
+                            break;
+                        }
+                        catch (Exception ex)
+                        {
+                            result.Diagnostics.Error("Failed to make certificate key accessible", ex);
+                            result.ResultCode = EnsureCertificateResult.FailedToMakeKeyAccessible;
+                            return result;
+                        }
+                    }
+                }
+            }
+
             certificates = filteredCertificates;
 
             result.ResultCode = EnsureCertificateResult.Succeeded;
@@ -771,7 +826,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation
                         case CertificatePurpose.All:
                             throw new InvalidOperationException("The certificate must have a specific purpose.");
                         case CertificatePurpose.HTTPS:
-                            certificate = CreateAspNetCoreHttpsDevelopmentCertificate(notBefore, notAfter, subject, result.Diagnostics);
+                            certificate = CreateAspNetCoreHttpsDevelopmentCertificate(notBefore, notAfter, subjectOverride, result.Diagnostics);
                             break;
                         default:
                             throw new InvalidOperationException("The certificate must have a purpose.");
@@ -794,6 +849,16 @@ namespace Microsoft.AspNetCore.Certificates.Generation
                     result.ResultCode = EnsureCertificateResult.ErrorSavingTheCertificateIntoTheCurrentUserPersonalStore;
                     return result;
                 }
+
+                if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && isInteractive)
+                {
+                    MakeCertificateKeyAccessibleAcrossPartitions(certificate);
+                }
+
+                if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && isInteractive)
+                {
+                    MakeCertificateKeyAccessibleAcrossPartitions(certificate);
+                }
             }
             if (path != null)
             {
@@ -835,6 +900,74 @@ namespace Microsoft.AspNetCore.Certificates.Generation
             return result;
         }
 
+        private void MakeCertificateKeyAccessibleAcrossPartitions(X509Certificate2 certificate)
+        {
+            if (OtherNonAspNetCoreHttpsCertificatesPresent())
+            {
+                throw new InvalidOperationException("Unable to make HTTPS certificate key trusted across security partitions.");
+            }
+            using (var process = Process.Start(MacOSSetPartitionKeyPermissionsCommandLine, MacOSSetPartitionKeyPermissionsCommandLineArguments))
+            {
+                process.WaitForExit();
+                if (process.ExitCode != 0)
+                {
+                    throw new InvalidOperationException("Error making the key accessible across partitions.");
+                }
+            }
+
+            var certificateSentinelPath = GetCertificateSentinelPath(certificate);
+            File.WriteAllText(certificateSentinelPath, "true");
+        }
+
+        private static string GetCertificateSentinelPath(X509Certificate2 certificate) =>
+            Path.Combine(Environment.GetEnvironmentVariable("HOME"), ".dotnet", $"certificate.{certificate.GetCertHashString(HashAlgorithmName.SHA256)}.sentinel");
+
+        private bool OtherNonAspNetCoreHttpsCertificatesPresent()
+        {
+            var certificates = new List<X509Certificate2>();
+            try
+            {
+                using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser))
+                {
+                    store.Open(OpenFlags.ReadOnly);
+                    certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
+                    IEnumerable<X509Certificate2> matchingCertificates = certificates;
+                        // Ensure the certificate hasn't expired, has a private key and its exportable
+                        // (for container/unix scenarios).
+                        var now = DateTimeOffset.Now;
+                        matchingCertificates = matchingCertificates
+                            .Where(c => c.NotBefore <= now &&
+                                now <= c.NotAfter && c.Subject == LocalhostHttpsDistinguishedName);
+
+                    // We need to enumerate the certificates early to prevent dispoisng issues.
+                    matchingCertificates = matchingCertificates.ToList();
+
+                    var certificatesToDispose = certificates.Except(matchingCertificates);
+                    DisposeCertificates(certificatesToDispose);
+
+                    store.Close();
+
+                    return matchingCertificates.All(c => !HasOid(c, AspNetHttpsOid));
+                }
+            }
+            catch
+            {
+                DisposeCertificates(certificates);
+                certificates.Clear();
+                return true;
+            }
+
+            bool HasOid(X509Certificate2 certificate, string oid) =>
+                certificate.Extensions.OfType<X509Extension>()
+                .Any(e => string.Equals(oid, e.Oid.Value, StringComparison.Ordinal));
+        }
+
+        private bool CanAccessCertificateKeyAcrossPartitions(X509Certificate2 certificate)
+        {
+            var certificateSentinelPath = GetCertificateSentinelPath(certificate);
+            return File.Exists(certificateSentinelPath);
+        }
+
         private class UserCancelledTrustException : Exception
         {
         }
diff --git a/src/Shared/CertificateGeneration/EnsureCertificateResult.cs b/src/Shared/CertificateGeneration/EnsureCertificateResult.cs
index 4676d7b3aa948d7e4bc3aee7c4ee960f7c7d83fa..00eebbac3dcc867948bf87fc43c4378b935f4825 100644
--- a/src/Shared/CertificateGeneration/EnsureCertificateResult.cs
+++ b/src/Shared/CertificateGeneration/EnsureCertificateResult.cs
@@ -11,6 +11,8 @@ namespace Microsoft.AspNetCore.Certificates.Generation
         ErrorSavingTheCertificateIntoTheCurrentUserPersonalStore,
         ErrorExportingTheCertificate,
         FailedToTrustTheCertificate,
-        UserCancelledTrustStep
+        UserCancelledTrustStep,
+        FailedToMakeKeyAccessible,
     }
 }
+
diff --git a/src/Shared/E2ETesting/WaitAssert.cs b/src/Shared/E2ETesting/WaitAssert.cs
index 8792d2692f9f9ba3321c0d49b21017d4db254e2c..f6fee3e618fe14ee2476383ffe99ae5c41258164 100644
--- a/src/Shared/E2ETesting/WaitAssert.cs
+++ b/src/Shared/E2ETesting/WaitAssert.cs
@@ -63,6 +63,12 @@ namespace Microsoft.AspNetCore.E2ETesting
                 return result;
             }, timeout);
 
+        public static void Click(this IWebDriver driver, By selector)
+            => WaitAssertCore(driver, () =>
+            {
+                driver.FindElement(selector).Click();
+            });
+
         private static void WaitAssertCore(IWebDriver driver, Action assertion, TimeSpan timeout = default)
         {
             WaitAssertCore<object>(driver, () => { assertion(); return null; }, timeout);
diff --git a/src/Shared/ServerInfrastructure/StringUtilities.cs b/src/Shared/ServerInfrastructure/StringUtilities.cs
index 856c3693e844e44bfd9a36c25f7a003f6cf9476d..97b2c8b08342d6263459b72df410d243a8253c27 100644
--- a/src/Shared/ServerInfrastructure/StringUtilities.cs
+++ b/src/Shared/ServerInfrastructure/StringUtilities.cs
@@ -226,6 +226,111 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
             return true;
         }
 
+        [MethodImpl(MethodImplOptions.AggressiveOptimization)]
+        public static unsafe bool TryGetLatin1String(byte* input, char* output, int count)
+        {
+            Debug.Assert(input != null);
+            Debug.Assert(output != null);
+
+            // Calculate end position
+            var end = input + count;
+            // Start as valid
+            var isValid = true;
+
+            do
+            {
+                // If Vector not-accelerated or remaining less than vector size
+                if (!Vector.IsHardwareAccelerated || input > end - Vector<sbyte>.Count)
+                {
+                    if (IntPtr.Size == 8) // Use Intrinsic switch for branch elimination
+                    {
+                        // 64-bit: Loop longs by default
+                        while (input <= end - sizeof(long))
+                        {
+                            isValid &= CheckBytesNotNull(((long*)input)[0]);
+
+                            output[0] = (char)input[0];
+                            output[1] = (char)input[1];
+                            output[2] = (char)input[2];
+                            output[3] = (char)input[3];
+                            output[4] = (char)input[4];
+                            output[5] = (char)input[5];
+                            output[6] = (char)input[6];
+                            output[7] = (char)input[7];
+
+                            input += sizeof(long);
+                            output += sizeof(long);
+                        }
+                        if (input <= end - sizeof(int))
+                        {
+                            isValid &= CheckBytesNotNull(((int*)input)[0]);
+
+                            output[0] = (char)input[0];
+                            output[1] = (char)input[1];
+                            output[2] = (char)input[2];
+                            output[3] = (char)input[3];
+
+                            input += sizeof(int);
+                            output += sizeof(int);
+                        }
+                    }
+                    else
+                    {
+                        // 32-bit: Loop ints by default
+                        while (input <= end - sizeof(int))
+                        {
+                            isValid &= CheckBytesNotNull(((int*)input)[0]);
+
+                            output[0] = (char)input[0];
+                            output[1] = (char)input[1];
+                            output[2] = (char)input[2];
+                            output[3] = (char)input[3];
+
+                            input += sizeof(int);
+                            output += sizeof(int);
+                        }
+                    }
+                    if (input <= end - sizeof(short))
+                    {
+                        isValid &= CheckBytesNotNull(((short*)input)[0]);
+
+                        output[0] = (char)input[0];
+                        output[1] = (char)input[1];
+
+                        input += sizeof(short);
+                        output += sizeof(short);
+                    }
+                    if (input < end)
+                    {
+                        isValid &= CheckBytesNotNull(((sbyte*)input)[0]);
+                        output[0] = (char)input[0];
+                    }
+
+                    return isValid;
+                }
+
+                // do/while as entry condition already checked
+                do
+                {
+                    // Use byte/ushort instead of signed equivalents to ensure it doesn't fill based on the high bit.
+                    var vector = Unsafe.AsRef<Vector<byte>>(input);
+                    isValid &= CheckBytesNotNull(vector);
+                    Vector.Widen(
+                        vector,
+                        out Unsafe.AsRef<Vector<ushort>>(output),
+                        out Unsafe.AsRef<Vector<ushort>>(output + Vector<ushort>.Count));
+
+                    input += Vector<byte>.Count;
+                    output += Vector<byte>.Count;
+                } while (input <= end - Vector<byte>.Count);
+
+                // Vector path done, loop back to do non-Vector
+                // If is a exact multiple of vector size, bail now
+            } while (input < end);
+
+            return isValid;
+        }
+
         [MethodImpl(MethodImplOptions.AggressiveOptimization)]
         public unsafe static bool BytesOrdinalEqualsStringAndAscii(string previousValue, ReadOnlySpan<byte> newValue)
         {
@@ -551,7 +656,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
         // Validate: bytes != 0 && bytes <= 127
         //  Subtract 1 from all bytes to move 0 to high bits
         //  bitwise or with self to catch all > 127 bytes
-        //  mask off high bits and check if 0
+        //  mask off non high bits and check if 0
 
         [MethodImpl(MethodImplOptions.AggressiveInlining)] // Needs a push
         private static bool CheckBytesInAsciiRange(long check)
@@ -574,5 +679,39 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
 
         private static bool CheckBytesInAsciiRange(sbyte check)
             => check > 0;
+
+        [MethodImpl(MethodImplOptions.AggressiveInlining)] // Needs a push
+        private static bool CheckBytesNotNull(Vector<byte> check)
+        {
+            // Vectorized byte range check, signed byte != null
+            return !Vector.EqualsAny(check, Vector<byte>.Zero);
+        }
+
+        // Validate: bytes != 0
+        //  Subtract 1 from all bytes to move 0 to high bits
+        //  bitwise and with ~check so high bits are only set for bytes that were originally 0
+        //  mask off non high bits and check if 0
+
+        [MethodImpl(MethodImplOptions.AggressiveInlining)] // Needs a push
+        private static bool CheckBytesNotNull(long check)
+        {
+            const long HighBits = unchecked((long)0x8080808080808080L);
+            return ((check - 0x0101010101010101L) & ~check & HighBits) == 0;
+        }
+
+        private static bool CheckBytesNotNull(int check)
+        {
+            const int HighBits = unchecked((int)0x80808080);
+            return ((check - 0x01010101) & ~check & HighBits) == 0;
+        }
+
+        private static bool CheckBytesNotNull(short check)
+        {
+            const short HighBits = unchecked((short)0x8080);
+            return ((check - 0x0101) & ~check & HighBits) == 0;
+        }
+
+        private static bool CheckBytesNotNull(sbyte check)
+            => check != 0;
     }
 }
diff --git a/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.csproj b/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.csproj
deleted file mode 100644
index 3e4c1252c089377ac40b0cfb73fb92783f389c2f..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Common"  />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Protocols.Json"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="System.Threading.Channels"  />
-    <Reference Include="Microsoft.Bcl.AsyncInterfaces"  />
-  </ItemGroup>
-<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
-    <Compile Include="Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.1.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Common"  />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Protocols.Json"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="System.Threading.Channels"  />
-  </ItemGroup>
-</Project>
diff --git a/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.0.cs b/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.0.cs
deleted file mode 100644
index 5be77677a20462c2c6fc44b6da841c8f77d0ada9..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.0.cs
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.SignalR.Client
-{
-    public partial class HubConnection : System.IAsyncDisposable
-    {
-        public static readonly System.TimeSpan DefaultHandshakeTimeout;
-        public static readonly System.TimeSpan DefaultKeepAliveInterval;
-        public static readonly System.TimeSpan DefaultServerTimeout;
-        public HubConnection(Microsoft.AspNetCore.Connections.IConnectionFactory connectionFactory, Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol, System.Net.EndPoint endPoint, System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public HubConnection(Microsoft.AspNetCore.Connections.IConnectionFactory connectionFactory, Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol, System.Net.EndPoint endPoint, System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.SignalR.Client.IRetryPolicy reconnectPolicy) { }
-        public string ConnectionId { get { throw null; } }
-        public System.TimeSpan HandshakeTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan KeepAliveInterval { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan ServerTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.SignalR.Client.HubConnectionState State { get { throw null; } }
-        public event System.Func<System.Exception, System.Threading.Tasks.Task> Closed { add { } remove { } }
-        public event System.Func<string, System.Threading.Tasks.Task> Reconnected { add { } remove { } }
-        public event System.Func<System.Exception, System.Threading.Tasks.Task> Reconnecting { add { } remove { } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<object> InvokeCoreAsync(string methodName, System.Type returnType, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public System.IDisposable On(string methodName, System.Type[] parameterTypes, System.Func<object[], object, System.Threading.Tasks.Task> handler, object state) { throw null; }
-        public void Remove(string methodName) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task SendCoreAsync(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<object>> StreamAsChannelCoreAsync(string methodName, System.Type returnType, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsyncCore<TResult>(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class HubConnectionBuilder : Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder, Microsoft.AspNetCore.SignalR.ISignalRBuilder
-    {
-        public HubConnectionBuilder() { }
-        public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.SignalR.Client.HubConnection Build() { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public override bool Equals(object obj) { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public override int GetHashCode() { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public new System.Type GetType() { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public override string ToString() { throw null; }
-    }
-    public static partial class HubConnectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder ConfigureLogging(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Action<Microsoft.Extensions.Logging.ILoggingBuilder> configureLogging) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, Microsoft.AspNetCore.SignalR.Client.IRetryPolicy retryPolicy) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.TimeSpan[] reconnectDelays) { throw null; }
-    }
-    public static partial class HubConnectionExtensions
-    {
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeCoreAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public static System.Threading.Tasks.Task<TResult> InvokeCoreAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.IDisposable On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) { throw null; }
-        public static System.IDisposable On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Type[] parameterTypes, System.Func<object[], System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1> handler) { throw null; }
-        public static System.IDisposable On<T1>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2> handler) { throw null; }
-        public static System.IDisposable On<T1, T2>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5, T6> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, T6, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5, T6, T7> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, T6, T7, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7, T8>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5, T6, T7, T8> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7, T8>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, T6, T7, T8, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelCoreAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public enum HubConnectionState
-    {
-        Disconnected = 0,
-        Connected = 1,
-        Connecting = 2,
-        Reconnecting = 3,
-    }
-    public partial interface IHubConnectionBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder
-    {
-        Microsoft.AspNetCore.SignalR.Client.HubConnection Build();
-    }
-    public partial interface IRetryPolicy
-    {
-        System.TimeSpan? NextRetryDelay(Microsoft.AspNetCore.SignalR.Client.RetryContext retryContext);
-    }
-    public sealed partial class RetryContext
-    {
-        public RetryContext() { }
-        public System.TimeSpan ElapsedTime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public long PreviousRetryCount { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Exception RetryReason { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
diff --git a/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.1.cs b/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.1.cs
deleted file mode 100644
index 5be77677a20462c2c6fc44b6da841c8f77d0ada9..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Client.Core/ref/Microsoft.AspNetCore.SignalR.Client.Core.netstandard2.1.cs
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.SignalR.Client
-{
-    public partial class HubConnection : System.IAsyncDisposable
-    {
-        public static readonly System.TimeSpan DefaultHandshakeTimeout;
-        public static readonly System.TimeSpan DefaultKeepAliveInterval;
-        public static readonly System.TimeSpan DefaultServerTimeout;
-        public HubConnection(Microsoft.AspNetCore.Connections.IConnectionFactory connectionFactory, Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol, System.Net.EndPoint endPoint, System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public HubConnection(Microsoft.AspNetCore.Connections.IConnectionFactory connectionFactory, Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol, System.Net.EndPoint endPoint, System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.SignalR.Client.IRetryPolicy reconnectPolicy) { }
-        public string ConnectionId { get { throw null; } }
-        public System.TimeSpan HandshakeTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan KeepAliveInterval { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.TimeSpan ServerTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.SignalR.Client.HubConnectionState State { get { throw null; } }
-        public event System.Func<System.Exception, System.Threading.Tasks.Task> Closed { add { } remove { } }
-        public event System.Func<string, System.Threading.Tasks.Task> Reconnected { add { } remove { } }
-        public event System.Func<System.Exception, System.Threading.Tasks.Task> Reconnecting { add { } remove { } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<object> InvokeCoreAsync(string methodName, System.Type returnType, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public System.IDisposable On(string methodName, System.Type[] parameterTypes, System.Func<object[], object, System.Threading.Tasks.Task> handler, object state) { throw null; }
-        public void Remove(string methodName) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task SendCoreAsync(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<object>> StreamAsChannelCoreAsync(string methodName, System.Type returnType, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsyncCore<TResult>(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class HubConnectionBuilder : Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder, Microsoft.AspNetCore.SignalR.ISignalRBuilder
-    {
-        public HubConnectionBuilder() { }
-        public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.SignalR.Client.HubConnection Build() { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public override bool Equals(object obj) { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public override int GetHashCode() { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public new System.Type GetType() { throw null; }
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        public override string ToString() { throw null; }
-    }
-    public static partial class HubConnectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder ConfigureLogging(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Action<Microsoft.Extensions.Logging.ILoggingBuilder> configureLogging) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, Microsoft.AspNetCore.SignalR.Client.IRetryPolicy retryPolicy) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.TimeSpan[] reconnectDelays) { throw null; }
-    }
-    public static partial class HubConnectionExtensions
-    {
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task InvokeCoreAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public static System.Threading.Tasks.Task<TResult> InvokeCoreAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.IDisposable On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) { throw null; }
-        public static System.IDisposable On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Type[] parameterTypes, System.Func<object[], System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1> handler) { throw null; }
-        public static System.IDisposable On<T1>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2> handler) { throw null; }
-        public static System.IDisposable On<T1, T2>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5, T6> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, T6, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5, T6, T7> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, T6, T7, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7, T8>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action<T1, T2, T3, T4, T5, T6, T7, T8> handler) { throw null; }
-        public static System.IDisposable On<T1, T2, T3, T4, T5, T6, T7, T8>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func<T1, T2, T3, T4, T5, T6, T7, T8, System.Threading.Tasks.Task> handler) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public static System.Threading.Tasks.Task<System.Threading.Channels.ChannelReader<TResult>> StreamAsChannelCoreAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IAsyncEnumerable<TResult> StreamAsync<TResult>(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public enum HubConnectionState
-    {
-        Disconnected = 0,
-        Connected = 1,
-        Connecting = 2,
-        Reconnecting = 3,
-    }
-    public partial interface IHubConnectionBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder
-    {
-        Microsoft.AspNetCore.SignalR.Client.HubConnection Build();
-    }
-    public partial interface IRetryPolicy
-    {
-        System.TimeSpan? NextRetryDelay(Microsoft.AspNetCore.SignalR.Client.RetryContext retryContext);
-    }
-    public sealed partial class RetryContext
-    {
-        public RetryContext() { }
-        public System.TimeSpan ElapsedTime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public long PreviousRetryCount { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Exception RetryReason { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
diff --git a/src/SignalR/clients/csharp/Client/ref/Microsoft.AspNetCore.SignalR.Client.csproj b/src/SignalR/clients/csharp/Client/ref/Microsoft.AspNetCore.SignalR.Client.csproj
deleted file mode 100644
index 0b7e13daf909ca005a30921399ec9f0d0cb7a86b..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Client/ref/Microsoft.AspNetCore.SignalR.Client.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.SignalR.Client.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Client.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Connections.Client"  />
-  </ItemGroup>
-</Project>
diff --git a/src/SignalR/clients/csharp/Client/ref/Microsoft.AspNetCore.SignalR.Client.netstandard2.0.cs b/src/SignalR/clients/csharp/Client/ref/Microsoft.AspNetCore.SignalR.Client.netstandard2.0.cs
deleted file mode 100644
index 1fb111784b012f25b4e5827effa74becfb511def..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Client/ref/Microsoft.AspNetCore.SignalR.Client.netstandard2.0.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.SignalR.Client
-{
-    public static partial class HubConnectionBuilderHttpExtensions
-    {
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports, System.Action<Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions> configureHttpConnection) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url, System.Action<Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions> configureHttpConnection) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports, System.Action<Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions> configureHttpConnection) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url, System.Action<Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions> configureHttpConnection) { throw null; }
-    }
-}
diff --git a/src/SignalR/clients/csharp/Client/test/FunctionalTests/Microsoft.AspNetCore.SignalR.Client.FunctionalTests.csproj b/src/SignalR/clients/csharp/Client/test/FunctionalTests/Microsoft.AspNetCore.SignalR.Client.FunctionalTests.csproj
index 083a6a141af3980e0f84bf113c09be40aeb3169f..64df7e4cf6aa5193d5584f481af41c6790599461 100644
--- a/src/SignalR/clients/csharp/Client/test/FunctionalTests/Microsoft.AspNetCore.SignalR.Client.FunctionalTests.csproj
+++ b/src/SignalR/clients/csharp/Client/test/FunctionalTests/Microsoft.AspNetCore.SignalR.Client.FunctionalTests.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/clients/csharp/Client/test/UnitTests/Microsoft.AspNetCore.SignalR.Client.Tests.csproj b/src/SignalR/clients/csharp/Client/test/UnitTests/Microsoft.AspNetCore.SignalR.Client.Tests.csproj
index 7c584a84bc8bf4280502914cc66d63ec6db9b5c3..7c0781eeee1690223dbad85aa71891f22d699acf 100644
--- a/src/SignalR/clients/csharp/Client/test/UnitTests/Microsoft.AspNetCore.SignalR.Client.Tests.csproj
+++ b/src/SignalR/clients/csharp/Client/test/UnitTests/Microsoft.AspNetCore.SignalR.Client.Tests.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.csproj b/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.csproj
deleted file mode 100644
index df0c10a3eb7010d5c2779cd83a225fd9906265c4..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.csproj
+++ /dev/null
@@ -1,18 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.Http.Connections.Client.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Connections.Common"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-  </ItemGroup>
-<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
-    <Compile Include="Microsoft.AspNetCore.Http.Connections.Client.netstandard2.1.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Connections.Common"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-  </ItemGroup>
-</Project>
diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.netstandard2.0.cs b/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.netstandard2.0.cs
deleted file mode 100644
index c36c30930bc8c6b863708ab2928b488d6ed2ac5e..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.netstandard2.0.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Http.Connections.Client
-{
-    public partial class HttpConnection : Microsoft.AspNetCore.Connections.ConnectionContext, Microsoft.AspNetCore.Connections.Features.IConnectionInherentKeepAliveFeature
-    {
-        public HttpConnection(Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions httpConnectionOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public HttpConnection(System.Uri url) { }
-        public HttpConnection(System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports) { }
-        public HttpConnection(System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public override string ConnectionId { get { throw null; } set { } }
-        public override Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override System.Collections.Generic.IDictionary<object, object> Items { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        bool Microsoft.AspNetCore.Connections.Features.IConnectionInherentKeepAliveFeature.HasInherentKeepAlive { get { throw null; } }
-        public override System.IO.Pipelines.IDuplexPipe Transport { get { throw null; } set { } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task StartAsync(Microsoft.AspNetCore.Connections.TransferFormat transferFormat, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class HttpConnectionFactory : Microsoft.AspNetCore.Connections.IConnectionFactory
-    {
-        public HttpConnectionFactory(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions> options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.ValueTask<Microsoft.AspNetCore.Connections.ConnectionContext> ConnectAsync(System.Net.EndPoint endPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class HttpConnectionOptions
-    {
-        public HttpConnectionOptions() { }
-        public System.Func<System.Threading.Tasks.Task<string>> AccessTokenProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get { throw null; } set { } }
-        public System.TimeSpan CloseTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Net.CookieContainer Cookies { get { throw null; } set { } }
-        public System.Net.ICredentials Credentials { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Connections.TransferFormat DefaultTransferFormat { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IDictionary<string, string> Headers { get { throw null; } set { } }
-        public System.Func<System.Net.Http.HttpMessageHandler, System.Net.Http.HttpMessageHandler> HttpMessageHandlerFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Net.IWebProxy Proxy { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool SkipNegotiation { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.Connections.HttpTransportType Transports { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Uri Url { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool? UseDefaultCredentials { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Action<System.Net.WebSockets.ClientWebSocketOptions> WebSocketConfiguration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class NoTransportSupportedException : System.Exception
-    {
-        public NoTransportSupportedException(string message) { }
-    }
-    public partial class TransportFailedException : System.Exception
-    {
-        public TransportFailedException(string transportType, string message, System.Exception innerException = null) { }
-        public string TransportType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-}
diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.netstandard2.1.cs b/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.netstandard2.1.cs
deleted file mode 100644
index c36c30930bc8c6b863708ab2928b488d6ed2ac5e..0000000000000000000000000000000000000000
--- a/src/SignalR/clients/csharp/Http.Connections.Client/ref/Microsoft.AspNetCore.Http.Connections.Client.netstandard2.1.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Http.Connections.Client
-{
-    public partial class HttpConnection : Microsoft.AspNetCore.Connections.ConnectionContext, Microsoft.AspNetCore.Connections.Features.IConnectionInherentKeepAliveFeature
-    {
-        public HttpConnection(Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions httpConnectionOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public HttpConnection(System.Uri url) { }
-        public HttpConnection(System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports) { }
-        public HttpConnection(System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public override string ConnectionId { get { throw null; } set { } }
-        public override Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public override System.Collections.Generic.IDictionary<object, object> Items { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        bool Microsoft.AspNetCore.Connections.Features.IConnectionInherentKeepAliveFeature.HasInherentKeepAlive { get { throw null; } }
-        public override System.IO.Pipelines.IDuplexPipe Transport { get { throw null; } set { } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task StartAsync(Microsoft.AspNetCore.Connections.TransferFormat transferFormat, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class HttpConnectionFactory : Microsoft.AspNetCore.Connections.IConnectionFactory
-    {
-        public HttpConnectionFactory(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions> options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.ValueTask<Microsoft.AspNetCore.Connections.ConnectionContext> ConnectAsync(System.Net.EndPoint endPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class HttpConnectionOptions
-    {
-        public HttpConnectionOptions() { }
-        public System.Func<System.Threading.Tasks.Task<string>> AccessTokenProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get { throw null; } set { } }
-        public System.TimeSpan CloseTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Net.CookieContainer Cookies { get { throw null; } set { } }
-        public System.Net.ICredentials Credentials { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Connections.TransferFormat DefaultTransferFormat { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Collections.Generic.IDictionary<string, string> Headers { get { throw null; } set { } }
-        public System.Func<System.Net.Http.HttpMessageHandler, System.Net.Http.HttpMessageHandler> HttpMessageHandlerFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Net.IWebProxy Proxy { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool SkipNegotiation { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public Microsoft.AspNetCore.Http.Connections.HttpTransportType Transports { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Uri Url { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public bool? UseDefaultCredentials { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Action<System.Net.WebSockets.ClientWebSocketOptions> WebSocketConfiguration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-    public partial class NoTransportSupportedException : System.Exception
-    {
-        public NoTransportSupportedException(string message) { }
-    }
-    public partial class TransportFailedException : System.Exception
-    {
-        public TransportFailedException(string transportType, string message, System.Exception innerException = null) { }
-        public string TransportType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-    }
-}
diff --git a/src/SignalR/clients/java/signalr/signalr.client.java.javaproj b/src/SignalR/clients/java/signalr/signalr.client.java.javaproj
index 15eeed479f0c0da5eea0283fd4bcbaf8c6c402ad..57dfdef48819cd73f83c72e24913ef5020850de9 100644
--- a/src/SignalR/clients/java/signalr/signalr.client.java.javaproj
+++ b/src/SignalR/clients/java/signalr/signalr.client.java.javaproj
@@ -2,13 +2,7 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.props))\Directory.Build.props" />
 
   <PropertyGroup>
-
-    <!-- This package ID is only ever used along with eng/PatchConfig.props to determine when to patch the Java client. -->
-    <PackageId>java:signalr</PackageId>
-
-    <!-- In servicing builds, this will be set to value if the Java client is not configured to be released in the currently building patch. -->
     <IsPackable>true</IsPackable>
-
     <IsShippingPackage>true</IsShippingPackage>
 
     <IsTestProject>true</IsTestProject>
diff --git a/src/SignalR/clients/ts/FunctionalTests/SignalR.Client.FunctionalTestApp.csproj b/src/SignalR/clients/ts/FunctionalTests/SignalR.Client.FunctionalTestApp.csproj
index 91fc9b870d692ebc84b126271a79f4551290d559..db743ebecfd654ed7f2aaf9b570c175505f8c202 100644
--- a/src/SignalR/clients/ts/FunctionalTests/SignalR.Client.FunctionalTestApp.csproj
+++ b/src/SignalR/clients/ts/FunctionalTests/SignalR.Client.FunctionalTestApp.csproj
@@ -7,6 +7,8 @@
 
     <!-- The naming of this file doesn't match repo conventions. This overrides the conventions. -->
     <IsTestAssetProject>true</IsTestAssetProject>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -35,6 +37,8 @@
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Debug" />
     <Reference Include="System.Reactive.Linq" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/common/Http.Connections.Common/ref/Microsoft.AspNetCore.Http.Connections.Common.csproj b/src/SignalR/common/Http.Connections.Common/ref/Microsoft.AspNetCore.Http.Connections.Common.csproj
index 9955ca7202144c83313c7905a92916c7e56e02a5..8ae1a927db91b30e75d993b734a2d85db14218d0 100644
--- a/src/SignalR/common/Http.Connections.Common/ref/Microsoft.AspNetCore.Http.Connections.Common.csproj
+++ b/src/SignalR/common/Http.Connections.Common/ref/Microsoft.AspNetCore.Http.Connections.Common.csproj
@@ -5,11 +5,11 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Http.Connections.Common.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="System.Text.Json"  />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Reference Include="System.Text.Json" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Http.Connections.Common.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
   </ItemGroup>
 </Project>
diff --git a/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj b/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj
index c40fa68e6d52f7a8d0d2113a55736e9a6b21c566..4277aaef64d0c945bfc5ca796a1420d47215827f 100644
--- a/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj
+++ b/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj
@@ -7,7 +7,6 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <RootNamespace>Microsoft.AspNetCore.Http.Connections</RootNamespace>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/common/Http.Connections/ref/Microsoft.AspNetCore.Http.Connections.csproj b/src/SignalR/common/Http.Connections/ref/Microsoft.AspNetCore.Http.Connections.csproj
index 8b474e9124bbb3042054d55471d13cbe34f76d51..e081a5c399a8e8321b3f30ec9a51b13354732ef2 100644
--- a/src/SignalR/common/Http.Connections/ref/Microsoft.AspNetCore.Http.Connections.csproj
+++ b/src/SignalR/common/Http.Connections/ref/Microsoft.AspNetCore.Http.Connections.csproj
@@ -5,13 +5,14 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Http.Connections.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization.Policy"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Connections.Common"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.AspNetCore.WebSockets"  />
-    <Reference Include="Microsoft.Extensions.ValueStopwatch.Sources"  />
-    <Reference Include="System.Security.Principal.Windows"  />
+    <Reference Include="Microsoft.AspNetCore.Authorization.Policy" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Connections.Common" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.AspNetCore.WebSockets" />
+    <Reference Include="Microsoft.Extensions.ValueStopwatch.Sources" />
+    <Reference Include="System.Security.Principal.Windows" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.Http.Connections.Tests" Key="" />
   </ItemGroup>
 </Project>
diff --git a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs
index dac620efa8f51439c69020c1fe32d8e3ecdb8d9d..abf6b695246a46751cad34799f5c387a15751bae 100644
--- a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs
+++ b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs
@@ -31,6 +31,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
                                          IHttpTransportFeature,
                                          IConnectionInherentKeepAliveFeature
     {
+        private static long _tenSeconds = TimeSpan.FromSeconds(10).Ticks;
+
         private readonly object _stateLock = new object();
         private readonly object _itemsLock = new object();
         private readonly object _heartbeatLock = new object();
@@ -40,6 +42,12 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
         private IDuplexPipe _application;
         private IDictionary<object, object> _items;
 
+        private CancellationTokenSource _sendCts;
+        private bool _activeSend;
+        private long _startedSendTime;
+        private readonly object _sendingLock = new object();
+        internal CancellationToken SendingToken { get; private set; }
+
         // This tcs exists so that multiple calls to DisposeAsync all wait asynchronously
         // on the same task
         private readonly TaskCompletionSource<object> _disposeTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
@@ -258,8 +266,26 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
                     }
                     else
                     {
-                        // The other transports don't close their own output, so we can do it here safely
-                        Application?.Output.Complete();
+                        // Normally it isn't safe to try and acquire this lock because the Send can hold onto it for a long time if there is backpressure
+                        // It is safe to wait for this lock now because the Send will be in one of 4 states
+                        // 1. In the middle of a write which is in the middle of being canceled by the CancelPendingFlush above, when it throws
+                        //    an OperationCanceledException it will complete the PipeWriter which will make any other Send waiting on the lock
+                        //    throw an InvalidOperationException if they call Write
+                        // 2. About to write and see that there is a pending cancel from the CancelPendingFlush, go to 1 to see what happens
+                        // 3. Enters the Send and sees the Dispose state from DisposeAndRemoveAsync and releases the lock
+                        // 4. No Send in progress
+                        await WriteLock.WaitAsync();
+                        try
+                        {
+                            // Complete the applications read loop
+                            Application?.Output.Complete();
+                        }
+                        finally
+                        {
+                            WriteLock.Release();
+                        }
+
+                        Application?.Input.CancelPendingRead();
                     }
                 }
 
@@ -401,7 +427,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
                         nonClonedContext.Response.RegisterForDispose(timeoutSource);
                         nonClonedContext.Response.RegisterForDispose(tokenSource);
 
-                        var longPolling = new LongPollingServerTransport(timeoutSource.Token, Application.Input, loggerFactory);
+                        var longPolling = new LongPollingServerTransport(timeoutSource.Token, Application.Input, loggerFactory, this);
 
                         // Start the transport
                         TransportTask = longPolling.ProcessRequestAsync(nonClonedContext, tokenSource.Token);
@@ -507,6 +533,40 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
             await connectionDelegate(this);
         }
 
+        internal void StartSendCancellation()
+        {
+            lock (_sendingLock)
+            {
+                if (_sendCts == null || _sendCts.IsCancellationRequested)
+                {
+                    _sendCts = new CancellationTokenSource();
+                    SendingToken = _sendCts.Token;
+                }
+                _startedSendTime = DateTime.UtcNow.Ticks;
+                _activeSend = true;
+            }
+        }
+        internal void TryCancelSend(long currentTicks)
+        {
+            lock (_sendingLock)
+            {
+                if (_activeSend)
+                {
+                    if (currentTicks - _startedSendTime > _tenSeconds)
+                    {
+                        _sendCts.Cancel();
+                    }
+                }
+            }
+        }
+        internal void StopSendCancellation()
+        {
+            lock (_sendingLock)
+            {
+                _activeSend = false;
+            }
+        }
+
         private static class Log
         {
             private static readonly Action<ILogger, string, Exception> _disposingConnection =
diff --git a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs
index 9da1ea0c185db18677d965a96b1a18e732d0f091..c40a80b9ce973dc3ea3b3fa209a03acf3718ab6e 100644
--- a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs
+++ b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs
@@ -142,7 +142,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
                 connection.SupportedFormats = TransferFormat.Text;
 
                 // We only need to provide the Input channel since writing to the application is handled through /send.
-                var sse = new ServerSentEventsServerTransport(connection.Application.Input, connection.ConnectionId, _loggerFactory);
+                var sse = new ServerSentEventsServerTransport(connection.Application.Input, connection.ConnectionId, connection, _loggerFactory);
 
                 await DoPersistentConnection(connectionDelegate, sse, context, connection);
             }
@@ -216,7 +216,9 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
                         connection.Transport.Output.Complete(connection.ApplicationTask.Exception);
 
                         // Wait for the transport to run
-                        await connection.TransportTask;
+                        // Ignore exceptions, it has been logged if there is one and the application has finished
+                        // So there is no one to give the exception to
+                        await connection.TransportTask.NoThrow();
 
                         // If the status code is a 204 it means the connection is done
                         if (context.Response.StatusCode == StatusCodes.Status204NoContent)
@@ -234,12 +236,12 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
                             connection.MarkInactive();
                         }
                     }
-                    else if (resultTask.IsFaulted)
+                    else if (resultTask.IsFaulted || resultTask.IsCanceled)
                     {
                         // Cancel current request to release any waiting poll and let dispose acquire the lock
                         currentRequestTcs.TrySetCanceled();
-
-                        // transport task was faulted, we should remove the connection
+                        // We should be able to safely dispose because there's no more data being written
+                        // We don't need to wait for close here since we've already waited for both sides
                         await _manager.DisposeAndRemoveAsync(connection, closeGracefully: false);
                     }
                     else
@@ -434,6 +436,14 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
 
                         context.Response.StatusCode = StatusCodes.Status404NotFound;
                         context.Response.ContentType = "text/plain";
+
+                        // There are no writes anymore (since this is the write "loop")
+                        // So it is safe to complete the writer
+                        // We complete the writer here because we already have the WriteLock acquired
+                        // and it's unsafe to complete outside of the lock
+                        // Other code isn't guaranteed to be able to acquire the lock before another write
+                        // even if CancelPendingFlush is called, and the other write could hang if there is backpressure
+                        connection.Application.Output.Complete();
                         return;
                     }
                     catch (IOException ex)
@@ -481,11 +491,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
 
             Log.TerminatingConection(_logger);
 
-            // Complete the receiving end of the pipe
-            connection.Application.Output.Complete();
-
-            // Dispose the connection gracefully, but don't wait for it. We assign it here so we can wait in tests
-            connection.DisposeAndRemoveTask = _manager.DisposeAndRemoveAsync(connection, closeGracefully: true);
+            // Dispose the connection, but don't wait for it. We assign it here so we can wait in tests
+            connection.DisposeAndRemoveTask = _manager.DisposeAndRemoveAsync(connection, closeGracefully: false);
 
             context.Response.StatusCode = StatusCodes.Status202Accepted;
             context.Response.ContentType = "text/plain";
diff --git a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionManager.cs b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionManager.cs
index 4a97681fc0b668f010e3832d07c69a3fc34e30c4..b0f4b079fb348731280bc812d129a951342380dd 100644
--- a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionManager.cs
+++ b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionManager.cs
@@ -31,6 +31,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
         private readonly TimerAwaitable _nextHeartbeat;
         private readonly ILogger<HttpConnectionManager> _logger;
         private readonly ILogger<HttpConnectionContext> _connectionLogger;
+        private readonly bool _useSendTimeout = true;
         private readonly TimeSpan _disconnectTimeout;
 
         public HttpConnectionManager(ILoggerFactory loggerFactory, IHostApplicationLifetime appLifetime)
@@ -44,6 +45,11 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
             _connectionLogger = loggerFactory.CreateLogger<HttpConnectionContext>();
             _nextHeartbeat = new TimerAwaitable(_heartbeatTickRate, _heartbeatTickRate);
             _disconnectTimeout = connectionOptions.Value.DisconnectTimeout ?? ConnectionOptionsSetup.DefaultDisconectTimeout;
+            if (AppContext.TryGetSwitch("Microsoft.AspNetCore.Http.Connections.DoNotUseSendTimeout", out var timeoutDisabled))
+            {
+                _useSendTimeout = !timeoutDisabled;
+            }
+
             // Register these last as the callbacks could run immediately
             appLifetime.ApplicationStarted.Register(() => Start());
             appLifetime.ApplicationStopping.Register(() => CloseConnections());
@@ -155,20 +161,26 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
                 // Capture the connection state
                 var lastSeenUtc = connection.LastSeenUtcIfInactive;
 
+                var utcNow = DateTimeOffset.UtcNow;
                 // Once the decision has been made to dispose we don't check the status again
                 // But don't clean up connections while the debugger is attached.
-                if (!Debugger.IsAttached && lastSeenUtc.HasValue && (DateTimeOffset.UtcNow - lastSeenUtc.Value).TotalSeconds > _disconnectTimeout.TotalSeconds)
+                if (!Debugger.IsAttached && lastSeenUtc.HasValue && (utcNow - lastSeenUtc.Value).TotalSeconds > _disconnectTimeout.TotalSeconds)
                 {
                     Log.ConnectionTimedOut(_logger, connection.ConnectionId);
                     HttpConnectionsEventSource.Log.ConnectionTimedOut(connection.ConnectionId);
 
                     // This is most likely a long polling connection. The transport here ends because
-                    // a poll completed and has been inactive for > 5 seconds so we wait for the 
+                    // a poll completed and has been inactive for > 5 seconds so we wait for the
                     // application to finish gracefully
                     _ = DisposeAndRemoveAsync(connection, closeGracefully: true);
                 }
                 else
                 {
+                    if (!Debugger.IsAttached && _useSendTimeout)
+                    {
+                        connection.TryCancelSend(utcNow.Ticks);
+                    }
+
                     // Tick the heartbeat, if the connection is still active
                     connection.TickHeartbeat();
                 }
diff --git a/src/SignalR/common/Http.Connections/src/Internal/TaskExtensions.cs b/src/SignalR/common/Http.Connections/src/Internal/TaskExtensions.cs
new file mode 100644
index 0000000000000000000000000000000000000000..efbbb4a2391a8787bce89f9007cbc82b3cbab1af
--- /dev/null
+++ b/src/SignalR/common/Http.Connections/src/Internal/TaskExtensions.cs
@@ -0,0 +1,26 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Runtime.CompilerServices;
+
+namespace System.Threading.Tasks
+{
+    internal static class TaskExtensions
+    {
+        public static async Task NoThrow(this Task task)
+        {
+            await new NoThrowAwaiter(task);
+        }
+    }
+    internal readonly struct NoThrowAwaiter : ICriticalNotifyCompletion
+    {
+        private readonly Task _task;
+        public NoThrowAwaiter(Task task) { _task = task; }
+        public NoThrowAwaiter GetAwaiter() => this;
+        public bool IsCompleted => _task.IsCompleted;
+        // Observe exception
+        public void GetResult() { _ = _task.Exception; }
+        public void OnCompleted(Action continuation) => _task.GetAwaiter().OnCompleted(continuation);
+        public void UnsafeOnCompleted(Action continuation) => OnCompleted(continuation);
+    }
+}
diff --git a/src/SignalR/common/Http.Connections/src/Internal/Transports/LongPollingServerTransport.cs b/src/SignalR/common/Http.Connections/src/Internal/Transports/LongPollingServerTransport.cs
index 02ff32ab8fb861b33916d391c2470c89f025e835..8ecf395276b6722baec2d59fa8c3d5482250bd3a 100644
--- a/src/SignalR/common/Http.Connections/src/Internal/Transports/LongPollingServerTransport.cs
+++ b/src/SignalR/common/Http.Connections/src/Internal/Transports/LongPollingServerTransport.cs
@@ -16,12 +16,19 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
         private readonly PipeReader _application;
         private readonly ILogger _logger;
         private readonly CancellationToken _timeoutToken;
+        private readonly HttpConnectionContext _connection;
 
         public LongPollingServerTransport(CancellationToken timeoutToken, PipeReader application, ILoggerFactory loggerFactory)
+            : this(timeoutToken, application, loggerFactory, connection: null)
+        { }
+
+        public LongPollingServerTransport(CancellationToken timeoutToken, PipeReader application, ILoggerFactory loggerFactory, HttpConnectionContext connection)
         {
             _timeoutToken = timeoutToken;
             _application = application;
 
+            _connection = connection;
+
             // We create the logger with a string to preserve the logging namespace after the server side transport renames.
             _logger = loggerFactory.CreateLogger("Microsoft.AspNetCore.Http.Connections.Internal.Transports.LongPollingTransport");
         }
@@ -33,37 +40,40 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
                 var result = await _application.ReadAsync(token);
                 var buffer = result.Buffer;
 
-                if (buffer.IsEmpty && result.IsCompleted)
+                try
                 {
-                    Log.LongPolling204(_logger);
-                    context.Response.ContentType = "text/plain";
-                    context.Response.StatusCode = StatusCodes.Status204NoContent;
-                    return;
-                }
+                    if (buffer.IsEmpty && (result.IsCompleted || result.IsCanceled))
+                    {
+                        Log.LongPolling204(_logger);
+                        context.Response.ContentType = "text/plain";
+                        context.Response.StatusCode = StatusCodes.Status204NoContent;
+                        return;
+                    }
 
-                // We're intentionally not checking cancellation here because we need to drain messages we've got so far,
-                // but it's too late to emit the 204 required by being canceled.
+                    // We're intentionally not checking cancellation here because we need to drain messages we've got so far,
+                    // but it's too late to emit the 204 required by being canceled.
 
-                Log.LongPollingWritingMessage(_logger, buffer.Length);
+                    Log.LongPollingWritingMessage(_logger, buffer.Length);
 
-                context.Response.ContentLength = buffer.Length;
-                context.Response.ContentType = "application/octet-stream";
+                    context.Response.ContentLength = buffer.Length;
+                    context.Response.ContentType = "application/octet-stream";
 
-                try
-                {
-                    await context.Response.Body.WriteAsync(buffer);
+                    _connection?.StartSendCancellation();
+                    await context.Response.Body.WriteAsync(buffer, _connection?.SendingToken ?? default);
                 }
                 finally
                 {
+                    _connection?.StopSendCancellation();
                     _application.AdvanceTo(buffer.End);
                 }
             }
             catch (OperationCanceledException)
             {
-                // 3 cases:
+                // 4 cases:
                 // 1 - Request aborted, the client disconnected (no response)
                 // 2 - The poll timeout is hit (200)
-                // 3 - A new request comes in and cancels this request (204)
+                // 3 - SendingToken was canceled, abort the connection
+                // 4 - A new request comes in and cancels this request (204)
 
                 // Case 1
                 if (context.RequestAborted.IsCancellationRequested)
@@ -81,9 +91,16 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
                     context.Response.ContentType = "text/plain";
                     context.Response.StatusCode = StatusCodes.Status200OK;
                 }
-                else
+                else if (_connection?.SendingToken.IsCancellationRequested == true)
                 {
                     // Case 3
+                    context.Response.ContentType = "text/plain";
+                    context.Response.StatusCode = StatusCodes.Status204NoContent;
+                    throw;
+                }
+                else
+                {
+                    // Case 4
                     Log.LongPolling204(_logger);
                     context.Response.ContentType = "text/plain";
                     context.Response.StatusCode = StatusCodes.Status204NoContent;
diff --git a/src/SignalR/common/Http.Connections/src/Internal/Transports/ServerSentEventsServerTransport.cs b/src/SignalR/common/Http.Connections/src/Internal/Transports/ServerSentEventsServerTransport.cs
index 54f2ed8f38bb847849b9a46c5f593249a5ffa3df..3d5e1f6f4bd595cac455193a5ba4166d364717f3 100644
--- a/src/SignalR/common/Http.Connections/src/Internal/Transports/ServerSentEventsServerTransport.cs
+++ b/src/SignalR/common/Http.Connections/src/Internal/Transports/ServerSentEventsServerTransport.cs
@@ -16,11 +16,17 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
         private readonly PipeReader _application;
         private readonly string _connectionId;
         private readonly ILogger _logger;
+        private readonly HttpConnectionContext _connection;
 
         public ServerSentEventsServerTransport(PipeReader application, string connectionId, ILoggerFactory loggerFactory)
+            : this(application, connectionId, connection: null, loggerFactory)
+        { }
+
+        public ServerSentEventsServerTransport(PipeReader application, string connectionId, HttpConnectionContext connection, ILoggerFactory loggerFactory)
         {
             _application = application;
             _connectionId = connectionId;
+            _connection = connection;
 
             // We create the logger with a string to preserve the logging namespace after the server side transport renames.
             _logger = loggerFactory.CreateLogger("Microsoft.AspNetCore.Http.Connections.Internal.Transports.ServerSentEventsTransport");
@@ -51,11 +57,17 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
 
                     try
                     {
+                        if (result.IsCanceled)
+                        {
+                            break;
+                        }
+
                         if (!buffer.IsEmpty)
                         {
                             Log.SSEWritingMessage(_logger, buffer.Length);
 
-                            await ServerSentEventsMessageFormatter.WriteMessageAsync(buffer, context.Response.Body);
+                            _connection?.StartSendCancellation();
+                            await ServerSentEventsMessageFormatter.WriteMessageAsync(buffer, context.Response.Body, _connection?.SendingToken ?? default);
                         }
                         else if (result.IsCompleted)
                         {
@@ -64,6 +76,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
                     }
                     finally
                     {
+                        _connection?.StopSendCancellation();
                         _application.AdvanceTo(buffer.End);
                     }
                 }
diff --git a/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs b/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs
index d5c2c1fefb2e3577a51dbfbcd6b286a28096c25d..a95041c48a81368a8c4bd23dc1bc0b25feda70d9 100644
--- a/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs
+++ b/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs
@@ -231,7 +231,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
 
                                 if (WebSocketCanSend(socket))
                                 {
-                                    await socket.SendAsync(buffer, webSocketMessageType);
+                                    _connection.StartSendCancellation();
+                                    await socket.SendAsync(buffer, webSocketMessageType, _connection.SendingToken);
                                 }
                                 else
                                 {
@@ -254,6 +255,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
                     }
                     finally
                     {
+                        _connection.StopSendCancellation();
                         _application.Input.AdvanceTo(buffer.End);
                     }
                 }
diff --git a/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj b/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj
index d19e84efe5039d914c4cf296d15e5e1f2584e12f..1e8738d9a9605b9d624ad72e6f294ae46b67f914 100644
--- a/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj
+++ b/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj
@@ -4,7 +4,7 @@
     <Description>Components for providing real-time bi-directional communication across the Web.</Description>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/common/Http.Connections/src/ServerSentEventsMessageFormatter.cs b/src/SignalR/common/Http.Connections/src/ServerSentEventsMessageFormatter.cs
index efd2e24f0f909dc2dfedd544c847192717395be3..6e723c51681bd584fd42988b0c21434eae5ef637 100644
--- a/src/SignalR/common/Http.Connections/src/ServerSentEventsMessageFormatter.cs
+++ b/src/SignalR/common/Http.Connections/src/ServerSentEventsMessageFormatter.cs
@@ -4,6 +4,7 @@
 using System;
 using System.Buffers;
 using System.IO;
+using System.Threading;
 using System.Threading.Tasks;
 
 namespace Microsoft.AspNetCore.Http.Connections
@@ -15,19 +16,19 @@ namespace Microsoft.AspNetCore.Http.Connections
 
         private const byte LineFeed = (byte)'\n';
 
-        public static async Task WriteMessageAsync(ReadOnlySequence<byte> payload, Stream output)
+        public static async Task WriteMessageAsync(ReadOnlySequence<byte> payload, Stream output, CancellationToken token)
         {
             // Payload does not contain a line feed so write it directly to output
             if (payload.PositionOf(LineFeed) == null)
             {
                 if (payload.Length > 0)
                 {
-                    await output.WriteAsync(DataPrefix, 0, DataPrefix.Length);
-                    await output.WriteAsync(payload);
-                    await output.WriteAsync(Newline, 0, Newline.Length);
+                    await output.WriteAsync(DataPrefix, 0, DataPrefix.Length, token);
+                    await output.WriteAsync(payload, token);
+                    await output.WriteAsync(Newline, 0, Newline.Length, token);
                 }
 
-                await output.WriteAsync(Newline, 0, Newline.Length);
+                await output.WriteAsync(Newline, 0, Newline.Length, token);
                 return;
             }
 
@@ -37,7 +38,7 @@ namespace Microsoft.AspNetCore.Http.Connections
             await WriteMessageToMemory(ms, payload);
             ms.Position = 0;
 
-            await ms.CopyToAsync(output);
+            await ms.CopyToAsync(output, token);
         }
 
         /// <summary>
diff --git a/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs b/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs
index 08eba5e045b9aa234098df46d1e821c76986949e..2a083c598264820b705fd241f0ce726c24a132b8 100644
--- a/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs
+++ b/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs
@@ -1050,6 +1050,176 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
             }
         }
 
+        private class BlockingStream : Stream
+        {
+            private readonly SyncPoint _sync;
+            private bool _isSSE;
+            public BlockingStream(SyncPoint sync, bool isSSE = false)
+            {
+                _sync = sync;
+                _isSSE = isSSE;
+            }
+            public override bool CanRead => throw new NotImplementedException();
+            public override bool CanSeek => throw new NotImplementedException();
+            public override bool CanWrite => throw new NotImplementedException();
+            public override long Length => throw new NotImplementedException();
+            public override long Position { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+            public override Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken)
+            {
+                throw new NotImplementedException();
+            }
+            public override void Flush()
+            {
+            }
+            public override int Read(byte[] buffer, int offset, int count)
+            {
+                throw new NotImplementedException();
+            }
+            public override long Seek(long offset, SeekOrigin origin)
+            {
+                throw new NotImplementedException();
+            }
+            public override void SetLength(long value)
+            {
+                throw new NotImplementedException();
+            }
+            public override void Write(byte[] buffer, int offset, int count)
+            {
+                throw new NotImplementedException();
+            }
+            public override async Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
+            {
+                if (_isSSE)
+                {
+                    // SSE does an initial write of :\r\n that we want to ignore in testing
+                    _isSSE = false;
+                    return;
+                }
+                await _sync.WaitToContinue();
+                cancellationToken.ThrowIfCancellationRequested();
+            }
+            public override async ValueTask WriteAsync(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken = default)
+            {
+                if (_isSSE)
+                {
+                    // SSE does an initial write of :\r\n that we want to ignore in testing
+                    _isSSE = false;
+                    return;
+                }
+                await _sync.WaitToContinue();
+                cancellationToken.ThrowIfCancellationRequested();
+            }
+        }
+
+        [Fact]
+        [LogLevel(LogLevel.Debug)]
+        public async Task LongPollingConnectionClosesWhenSendTimeoutReached()
+        {
+            bool ExpectedErrors(WriteContext writeContext)
+            {
+                return (writeContext.LoggerName == typeof(Internal.Transports.LongPollingServerTransport).FullName &&
+                       writeContext.EventId.Name == "LongPollingTerminated") ||
+                       (writeContext.LoggerName == typeof(HttpConnectionManager).FullName && writeContext.EventId.Name == "FailedDispose");
+            }
+
+            using (StartVerifiableLog(expectedErrorsFilter: ExpectedErrors))
+            {
+                var manager = CreateConnectionManager(LoggerFactory);
+                var connection = manager.CreateConnection();
+                connection.TransportType = HttpTransportType.LongPolling;
+                var dispatcher = new HttpConnectionDispatcher(manager, LoggerFactory);
+                var context = MakeRequest("/foo", connection);
+                var services = new ServiceCollection();
+                services.AddSingleton<TestConnectionHandler>();
+                var builder = new ConnectionBuilder(services.BuildServiceProvider());
+                builder.UseConnectionHandler<TestConnectionHandler>();
+                var app = builder.Build();
+                var options = new HttpConnectionDispatcherOptions();
+                // First poll completes immediately
+                await dispatcher.ExecuteAsync(context, options, app).OrTimeout();
+                var sync = new SyncPoint();
+                context.Response.Body = new BlockingStream(sync);
+                var dispatcherTask = dispatcher.ExecuteAsync(context, options, app);
+                await connection.Transport.Output.WriteAsync(new byte[] { 1 }).OrTimeout();
+                await sync.WaitForSyncPoint().OrTimeout();
+                // Cancel write to response body
+                connection.TryCancelSend(long.MaxValue);
+                sync.Continue();
+                await dispatcherTask.OrTimeout();
+                // Connection should be removed on canceled write
+                Assert.False(manager.TryGetConnection(connection.ConnectionId, out var _));
+            }
+        }
+
+        [Fact]
+        [LogLevel(LogLevel.Debug)]
+        public async Task SSEConnectionClosesWhenSendTimeoutReached()
+        {
+            using (StartVerifiableLog())
+            {
+                var manager = CreateConnectionManager(LoggerFactory);
+                var connection = manager.CreateConnection();
+                connection.TransportType = HttpTransportType.ServerSentEvents;
+                var dispatcher = new HttpConnectionDispatcher(manager, LoggerFactory);
+                var context = MakeRequest("/foo", connection);
+                SetTransport(context, connection.TransportType);
+                var services = new ServiceCollection();
+                services.AddSingleton<TestConnectionHandler>();
+                var builder = new ConnectionBuilder(services.BuildServiceProvider());
+                builder.UseConnectionHandler<TestConnectionHandler>();
+                var app = builder.Build();
+                var sync = new SyncPoint();
+                context.Response.Body = new BlockingStream(sync, isSSE: true);
+                var options = new HttpConnectionDispatcherOptions();
+                var dispatcherTask = dispatcher.ExecuteAsync(context, options, app);
+                await connection.Transport.Output.WriteAsync(new byte[] { 1 }).OrTimeout();
+                await sync.WaitForSyncPoint().OrTimeout();
+                // Cancel write to response body
+                connection.TryCancelSend(long.MaxValue);
+                sync.Continue();
+                await dispatcherTask.OrTimeout();
+                // Connection should be removed on canceled write
+                Assert.False(manager.TryGetConnection(connection.ConnectionId, out var _));
+            }
+        }
+
+        [Fact]
+        [LogLevel(LogLevel.Debug)]
+        public async Task WebSocketConnectionClosesWhenSendTimeoutReached()
+        {
+            bool ExpectedErrors(WriteContext writeContext)
+            {
+                return writeContext.LoggerName == typeof(Internal.Transports.WebSocketsServerTransport).FullName &&
+                       writeContext.EventId.Name == "ErrorWritingFrame";
+            }
+            using (StartVerifiableLog(expectedErrorsFilter: ExpectedErrors))
+            {
+                var manager = CreateConnectionManager(LoggerFactory);
+                var connection = manager.CreateConnection();
+                connection.TransportType = HttpTransportType.WebSockets;
+                var dispatcher = new HttpConnectionDispatcher(manager, LoggerFactory);
+                var sync = new SyncPoint();
+                var context = MakeRequest("/foo", connection);
+                SetTransport(context, connection.TransportType, sync);
+                var services = new ServiceCollection();
+                services.AddSingleton<TestConnectionHandler>();
+                var builder = new ConnectionBuilder(services.BuildServiceProvider());
+                builder.UseConnectionHandler<TestConnectionHandler>();
+                var app = builder.Build();
+                var options = new HttpConnectionDispatcherOptions();
+                options.WebSockets.CloseTimeout = TimeSpan.FromSeconds(0);
+                var dispatcherTask = dispatcher.ExecuteAsync(context, options, app);
+                await connection.Transport.Output.WriteAsync(new byte[] { 1 }).OrTimeout();
+                await sync.WaitForSyncPoint().OrTimeout();
+                // Cancel write to response body
+                connection.TryCancelSend(long.MaxValue);
+                sync.Continue();
+                await dispatcherTask.OrTimeout();
+                // Connection should be removed on canceled write
+                Assert.False(manager.TryGetConnection(connection.ConnectionId, out var _));
+            }
+        }
+
         [Fact]
         [LogLevel(LogLevel.Trace)]
         public async Task WebSocketTransportTimesOutWhenCloseFrameNotReceived()
@@ -1635,6 +1805,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
                 Assert.Equal(StatusCodes.Status202Accepted, deleteContext.Response.StatusCode);
                 Assert.Equal("text/plain", deleteContext.Response.ContentType);
 
+                await connection.DisposeAndRemoveTask.OrTimeout();
+
                 // Verify the connection was removed from the manager
                 Assert.False(manager.TryGetConnection(connection.ConnectionToken, out _));
             }
@@ -1688,6 +1860,110 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
             }
         }
 
+        [Fact]
+        public async Task DeleteEndpointTerminatesLongPollingWithHangingApplication()
+        {
+            using (StartVerifiableLog())
+            {
+                var manager = CreateConnectionManager(LoggerFactory);
+                var pipeOptions = new PipeOptions(pauseWriterThreshold: 2, resumeWriterThreshold: 1);
+                var connection = manager.CreateConnection(pipeOptions, pipeOptions);
+                connection.TransportType = HttpTransportType.LongPolling;
+
+                var dispatcher = new HttpConnectionDispatcher(manager, LoggerFactory);
+
+                var context = MakeRequest("/foo", connection);
+
+                var services = new ServiceCollection();
+                services.AddSingleton<NeverEndingConnectionHandler>();
+                var builder = new ConnectionBuilder(services.BuildServiceProvider());
+                builder.UseConnectionHandler<NeverEndingConnectionHandler>();
+                var app = builder.Build();
+                var options = new HttpConnectionDispatcherOptions();
+
+                var pollTask = dispatcher.ExecuteAsync(context, options, app);
+                Assert.True(pollTask.IsCompleted);
+
+                // Now send the second poll
+                pollTask = dispatcher.ExecuteAsync(context, options, app);
+
+                // Issue the delete request and make sure the poll completes
+                var deleteContext = new DefaultHttpContext();
+                deleteContext.Request.Path = "/foo";
+                deleteContext.Request.QueryString = new QueryString($"?id={connection.ConnectionId}");
+                deleteContext.Request.Method = "DELETE";
+
+                Assert.False(pollTask.IsCompleted);
+
+                await dispatcher.ExecuteAsync(deleteContext, options, app).OrTimeout();
+
+                await pollTask.OrTimeout();
+
+                // Verify that transport shuts down
+                await connection.TransportTask.OrTimeout();
+
+                // Verify the response from the DELETE request
+                Assert.Equal(StatusCodes.Status202Accepted, deleteContext.Response.StatusCode);
+                Assert.Equal("text/plain", deleteContext.Response.ContentType);
+                Assert.Equal(HttpConnectionStatus.Disposed, connection.Status);
+
+                // Verify the connection not removed because application is hanging
+                Assert.True(manager.TryGetConnection(connection.ConnectionId, out _));
+            }
+        }
+
+        [Fact]
+        public async Task PollCanReceiveFinalMessageAfterAppCompletes()
+        {
+            using (StartVerifiableLog())
+            {
+                var transportType = HttpTransportType.LongPolling;
+                var manager = CreateConnectionManager(LoggerFactory);
+                var dispatcher = new HttpConnectionDispatcher(manager, LoggerFactory);
+                var connection = manager.CreateConnection();
+                connection.TransportType = transportType;
+
+                var waitForMessageTcs1 = new TaskCompletionSource<object>();
+                var messageTcs1 = new TaskCompletionSource<object>();
+                var waitForMessageTcs2 = new TaskCompletionSource<object>();
+                var messageTcs2 = new TaskCompletionSource<object>();
+                ConnectionDelegate connectionDelegate = async c =>
+                {
+                    await waitForMessageTcs1.Task.OrTimeout();
+                    await c.Transport.Output.WriteAsync(Encoding.UTF8.GetBytes("Message1")).OrTimeout();
+                    messageTcs1.TrySetResult(null);
+                    await waitForMessageTcs2.Task.OrTimeout();
+                    await c.Transport.Output.WriteAsync(Encoding.UTF8.GetBytes("Message2")).OrTimeout();
+                    messageTcs2.TrySetResult(null);
+                };
+                {
+                    var options = new HttpConnectionDispatcherOptions();
+                    var context = MakeRequest("/foo", connection);
+                    await dispatcher.ExecuteAsync(context, options, connectionDelegate).OrTimeout();
+
+                    // second poll should have data
+                    waitForMessageTcs1.SetResult(null);
+                    await messageTcs1.Task.OrTimeout();
+
+                    var ms = new MemoryStream();
+                    context.Response.Body = ms;
+                    // Now send the second poll
+                    await dispatcher.ExecuteAsync(context, options, connectionDelegate).OrTimeout();
+                    Assert.Equal("Message1", Encoding.UTF8.GetString(ms.ToArray()));
+
+                    waitForMessageTcs2.SetResult(null);
+                    await messageTcs2.Task.OrTimeout();
+
+                    context = MakeRequest("/foo", connection);
+                    ms.Seek(0, SeekOrigin.Begin);
+                    context.Response.Body = ms;
+                    // This is the third poll which gets the final message after the app is complete
+                    await dispatcher.ExecuteAsync(context, options, connectionDelegate).OrTimeout();
+                    Assert.Equal("Message2", Encoding.UTF8.GetString(ms.ToArray()));
+                }
+            }
+        }
+
         [Fact]
         public async Task NegotiateDoesNotReturnWebSocketsWhenNotAvailable()
         {
@@ -2000,12 +2276,12 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
             return context;
         }
 
-        private static void SetTransport(HttpContext context, HttpTransportType transportType)
+        private static void SetTransport(HttpContext context, HttpTransportType transportType, SyncPoint sync = null)
         {
             switch (transportType)
             {
                 case HttpTransportType.WebSockets:
-                    context.Features.Set<IHttpWebSocketFeature>(new TestWebSocketConnectionFeature());
+                    context.Features.Set<IHttpWebSocketFeature>(new TestWebSocketConnectionFeature(sync));
                     break;
                 case HttpTransportType.ServerSentEvents:
                     context.Request.Headers["Accept"] = "text/event-stream";
diff --git a/src/SignalR/common/Http.Connections/test/HttpConnectionManagerTests.cs b/src/SignalR/common/Http.Connections/test/HttpConnectionManagerTests.cs
index ade605b08a3368293c5253109f22cac4ebbe6440..05a29f0e73d17f1e56161c7feb5f81ec94302756 100644
--- a/src/SignalR/common/Http.Connections/test/HttpConnectionManagerTests.cs
+++ b/src/SignalR/common/Http.Connections/test/HttpConnectionManagerTests.cs
@@ -235,9 +235,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
                     try
                     {
                         Assert.True(result.IsCompleted);
-
-                        // We should be able to write
-                        await connection.Transport.Output.WriteAsync(new byte[] { 1 });
                     }
                     finally
                     {
@@ -248,13 +245,9 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
                 connection.TransportTask = Task.Run(async () =>
                 {
                     var result = await connection.Application.Input.ReadAsync();
-                    Assert.Equal(new byte[] { 1 }, result.Buffer.ToArray());
-                    connection.Application.Input.AdvanceTo(result.Buffer.End);
-
-                    result = await connection.Application.Input.ReadAsync();
                     try
                     {
-                        Assert.True(result.IsCompleted);
+                        Assert.True(result.IsCanceled);
                     }
                     finally
                     {
diff --git a/src/SignalR/common/Http.Connections/test/Microsoft.AspNetCore.Http.Connections.Tests.csproj b/src/SignalR/common/Http.Connections/test/Microsoft.AspNetCore.Http.Connections.Tests.csproj
index 3bff69e902118d490fa431249ae2c79b5a7b9dbf..47191a34e230f3adb57877a1af05359d7b2d915a 100644
--- a/src/SignalR/common/Http.Connections/test/Microsoft.AspNetCore.Http.Connections.Tests.csproj
+++ b/src/SignalR/common/Http.Connections/test/Microsoft.AspNetCore.Http.Connections.Tests.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/common/Http.Connections/test/ServerSentEventsMessageFormatterTests.cs b/src/SignalR/common/Http.Connections/test/ServerSentEventsMessageFormatterTests.cs
index 2a58e8d4dd88c910fa5ec5ec5001b4b530923c0a..16407520561f950b8646be3f9b42827ac8d2ca50 100644
--- a/src/SignalR/common/Http.Connections/test/ServerSentEventsMessageFormatterTests.cs
+++ b/src/SignalR/common/Http.Connections/test/ServerSentEventsMessageFormatterTests.cs
@@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
             var buffer = new ReadOnlySequence<byte>(Encoding.UTF8.GetBytes(payload));
 
             var output = new MemoryStream();
-            await ServerSentEventsMessageFormatter.WriteMessageAsync(buffer, output);
+            await ServerSentEventsMessageFormatter.WriteMessageAsync(buffer, output, default);
 
             Assert.Equal(encoded, Encoding.UTF8.GetString(output.ToArray()));
         }
@@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
             var buffer = ReadOnlySequenceFactory.SegmentPerByteFactory.CreateWithContent(Encoding.UTF8.GetBytes(payload));
 
             var output = new MemoryStream();
-            await ServerSentEventsMessageFormatter.WriteMessageAsync(buffer, output);
+            await ServerSentEventsMessageFormatter.WriteMessageAsync(buffer, output, default);
 
             Assert.Equal(encoded, Encoding.UTF8.GetString(output.ToArray()));
         }
diff --git a/src/SignalR/common/Http.Connections/test/TestWebSocketConnectionFeature.cs b/src/SignalR/common/Http.Connections/test/TestWebSocketConnectionFeature.cs
index f67dd940031eb7807ee0c56c43823e93eae48ef6..9bbb6894dbe473d1b5f41053f1f4234e5dc2612b 100644
--- a/src/SignalR/common/Http.Connections/test/TestWebSocketConnectionFeature.cs
+++ b/src/SignalR/common/Http.Connections/test/TestWebSocketConnectionFeature.cs
@@ -5,11 +5,21 @@ using System.Threading;
 using System.Threading.Channels;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Http.Features;
+using Microsoft.AspNetCore.Internal;
+using Microsoft.AspNetCore.SignalR.Tests;
 
 namespace Microsoft.AspNetCore.Http.Connections.Tests
 {
     internal class TestWebSocketConnectionFeature : IHttpWebSocketFeature, IDisposable
     {
+        public TestWebSocketConnectionFeature()
+        { }
+        public TestWebSocketConnectionFeature(SyncPoint sync)
+        {
+            _sync = sync;
+        }
+
+        private readonly SyncPoint _sync;
         private readonly TaskCompletionSource<object> _accepted = new TaskCompletionSource<object>();
 
         public bool IsWebSocketRequest => true;
@@ -27,8 +37,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
             var clientToServer = Channel.CreateUnbounded<WebSocketMessage>();
             var serverToClient = Channel.CreateUnbounded<WebSocketMessage>();
 
-            var clientSocket = new WebSocketChannel(serverToClient.Reader, clientToServer.Writer);
-            var serverSocket = new WebSocketChannel(clientToServer.Reader, serverToClient.Writer);
+            var clientSocket = new WebSocketChannel(serverToClient.Reader, clientToServer.Writer, _sync);
+            var serverSocket = new WebSocketChannel(clientToServer.Reader, serverToClient.Writer, _sync);
 
             Client = clientSocket;
             SubProtocol = context.SubProtocol;
@@ -45,16 +55,18 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
         {
             private readonly ChannelReader<WebSocketMessage> _input;
             private readonly ChannelWriter<WebSocketMessage> _output;
+            private readonly SyncPoint _sync;
 
             private WebSocketCloseStatus? _closeStatus;
             private string _closeStatusDescription;
             private WebSocketState _state;
             private WebSocketMessage _internalBuffer = new WebSocketMessage();
 
-            public WebSocketChannel(ChannelReader<WebSocketMessage> input, ChannelWriter<WebSocketMessage> output)
+            public WebSocketChannel(ChannelReader<WebSocketMessage> input, ChannelWriter<WebSocketMessage> output, SyncPoint sync = null)
             {
                 _input = input;
                 _output = output;
+                _sync = sync;
             }
 
             public override WebSocketCloseStatus? CloseStatus => _closeStatus;
@@ -173,11 +185,17 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests
                 throw new InvalidOperationException("Unexpected close");
             }
 
-            public override Task SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, CancellationToken cancellationToken)
+            public override async Task SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, CancellationToken cancellationToken)
             {
+                if (_sync != null)
+                {
+                    await _sync.WaitToContinue();
+                }
+                cancellationToken.ThrowIfCancellationRequested();
+
                 var copy = new byte[buffer.Count];
                 Buffer.BlockCopy(buffer.Array, buffer.Offset, copy, 0, buffer.Count);
-                return SendMessageAsync(new WebSocketMessage
+                await SendMessageAsync(new WebSocketMessage
                 {
                     Buffer = copy,
                     MessageType = messageType,
diff --git a/src/SignalR/common/Protocols.Json/ref/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj b/src/SignalR/common/Protocols.Json/ref/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj
index 94da81a8e3fdf0d3b0f9de8fa7d16e4fd8379345..19480b336fb99e24eb2e6252e3a3dab0e8a64d31 100644
--- a/src/SignalR/common/Protocols.Json/ref/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj
+++ b/src/SignalR/common/Protocols.Json/ref/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj
@@ -5,10 +5,10 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.SignalR.Protocols.Json.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Common"  />
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.SignalR.Protocols.Json.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Common"  />
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 </Project>
diff --git a/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj b/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj
index 2dd22c44a5022a859917756768d1f68af70788d4..98865bf6c9fca3e919333c8d686186053af5e5ec 100644
--- a/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj
+++ b/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj
@@ -7,7 +7,6 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <RootNamespace>Microsoft.AspNetCore.SignalR</RootNamespace>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/common/Protocols.MessagePack/ref/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj b/src/SignalR/common/Protocols.MessagePack/ref/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj
deleted file mode 100644
index 99f48f00d8abfc52dd794b9ea49187f23ad19945..0000000000000000000000000000000000000000
--- a/src/SignalR/common/Protocols.MessagePack/ref/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Common"  />
-    <Reference Include="MessagePack"  />
-  </ItemGroup>
-</Project>
diff --git a/src/SignalR/common/Protocols.MessagePack/ref/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.netstandard2.0.cs b/src/SignalR/common/Protocols.MessagePack/ref/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.netstandard2.0.cs
deleted file mode 100644
index 70f7ce9d02ed2cdc4ae7ce79e99c77a1e4fad1ab..0000000000000000000000000000000000000000
--- a/src/SignalR/common/Protocols.MessagePack/ref/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.netstandard2.0.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.SignalR
-{
-    public partial class MessagePackHubProtocolOptions
-    {
-        public MessagePackHubProtocolOptions() { }
-        public System.Collections.Generic.IList<MessagePack.IFormatterResolver> FormatterResolvers { get { throw null; } set { } }
-    }
-}
-namespace Microsoft.AspNetCore.SignalR.Protocol
-{
-    public partial class MessagePackHubProtocol : Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol
-    {
-        public MessagePackHubProtocol() { }
-        public MessagePackHubProtocol(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions> options) { }
-        public string Name { get { throw null; } }
-        public Microsoft.AspNetCore.Connections.TransferFormat TransferFormat { get { throw null; } }
-        public int Version { get { throw null; } }
-        public System.ReadOnlyMemory<byte> GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
-        public bool IsVersionSupported(int version) { throw null; }
-        public bool TryParseMessage(ref System.Buffers.ReadOnlySequence<byte> input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
-        public void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter<byte> output) { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class MessagePackProtocolDependencyInjectionExtensions
-    {
-        public static TBuilder AddMessagePackProtocol<TBuilder>(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder { throw null; }
-        public static TBuilder AddMessagePackProtocol<TBuilder>(this TBuilder builder, System.Action<Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions> configure) where TBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder { throw null; }
-    }
-}
diff --git a/src/SignalR/common/Protocols.NewtonsoftJson/ref/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj b/src/SignalR/common/Protocols.NewtonsoftJson/ref/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj
deleted file mode 100644
index cd39d0046a8ba8243e043021ebf63d3d3a1aeef5..0000000000000000000000000000000000000000
--- a/src/SignalR/common/Protocols.NewtonsoftJson/ref/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Common"  />
-    <Reference Include="Newtonsoft.Json"  />
-  </ItemGroup>
-</Project>
diff --git a/src/SignalR/common/Protocols.NewtonsoftJson/ref/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.netstandard2.0.cs b/src/SignalR/common/Protocols.NewtonsoftJson/ref/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.netstandard2.0.cs
deleted file mode 100644
index 61558ba6cbeb91184e952e4ba039dfcf8e830666..0000000000000000000000000000000000000000
--- a/src/SignalR/common/Protocols.NewtonsoftJson/ref/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.netstandard2.0.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.SignalR
-{
-    public partial class NewtonsoftJsonHubProtocolOptions
-    {
-        public NewtonsoftJsonHubProtocolOptions() { }
-        public Newtonsoft.Json.JsonSerializerSettings PayloadSerializerSettings { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.AspNetCore.SignalR.Protocol
-{
-    public partial class NewtonsoftJsonHubProtocol : Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol
-    {
-        public NewtonsoftJsonHubProtocol() { }
-        public NewtonsoftJsonHubProtocol(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.SignalR.NewtonsoftJsonHubProtocolOptions> options) { }
-        public string Name { get { throw null; } }
-        public Newtonsoft.Json.JsonSerializer PayloadSerializer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
-        public Microsoft.AspNetCore.Connections.TransferFormat TransferFormat { get { throw null; } }
-        public int Version { get { throw null; } }
-        public System.ReadOnlyMemory<byte> GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
-        public bool IsVersionSupported(int version) { throw null; }
-        public bool TryParseMessage(ref System.Buffers.ReadOnlySequence<byte> input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
-        public void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter<byte> output) { }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class NewtonsoftJsonProtocolDependencyInjectionExtensions
-    {
-        public static TBuilder AddNewtonsoftJsonProtocol<TBuilder>(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder { throw null; }
-        public static TBuilder AddNewtonsoftJsonProtocol<TBuilder>(this TBuilder builder, System.Action<Microsoft.AspNetCore.SignalR.NewtonsoftJsonHubProtocolOptions> configure) where TBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder { throw null; }
-    }
-}
diff --git a/src/SignalR/common/Shared/PipeWriterStream.cs b/src/SignalR/common/Shared/PipeWriterStream.cs
index ddb7960b63ab1682ead30a674e0ea9b1dfecaef9..43474433f46eb948882c42b15834634d0546f51e 100644
--- a/src/SignalR/common/Shared/PipeWriterStream.cs
+++ b/src/SignalR/common/Shared/PipeWriterStream.cs
@@ -1,12 +1,9 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
-using System;
 using System.Buffers;
-using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
-using Microsoft.AspNetCore.Internal;
 
 namespace System.IO.Pipelines
 {
@@ -77,7 +74,15 @@ namespace System.IO.Pipelines
 
             _length += source.Length;
             var task = _pipeWriter.WriteAsync(source);
-            if (!task.IsCompletedSuccessfully)
+            if (task.IsCompletedSuccessfully)
+            {
+                // Cancellation can be triggered by PipeWriter.CancelPendingFlush
+                if (task.Result.IsCanceled)
+                {
+                    throw new OperationCanceledException();
+                }
+            }
+            else
             {
                 return WriteSlowAsync(task);
             }
diff --git a/src/SignalR/common/SignalR.Common/ref/Microsoft.AspNetCore.SignalR.Common.csproj b/src/SignalR/common/SignalR.Common/ref/Microsoft.AspNetCore.SignalR.Common.csproj
index fdc6d747c76848bd6de66147dcf8e00b6d2b93d6..ce6ebe8ce1bef68d1d158996570a391c3119752c 100644
--- a/src/SignalR/common/SignalR.Common/ref/Microsoft.AspNetCore.SignalR.Common.csproj
+++ b/src/SignalR/common/SignalR.Common/ref/Microsoft.AspNetCore.SignalR.Common.csproj
@@ -5,13 +5,17 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.SignalR.Common.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="System.Text.Json"  />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="System.Text.Json" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.Common.Tests" Key="" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.Tests.Utils" Key="" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.SignalR.Common.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.Common.Tests" Key="" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.Tests.Utils" Key="" />
   </ItemGroup>
 </Project>
diff --git a/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj b/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj
index eab77e2bf1832d565eeee2a84ed913fe128a07ad..17252e2b1f59f37fd782617cb52337802eb02be4 100644
--- a/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj
+++ b/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj
@@ -7,7 +7,6 @@
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <RootNamespace>Microsoft.AspNetCore.SignalR</RootNamespace>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/common/SignalR.Common/test/Microsoft.AspNetCore.SignalR.Common.Tests.csproj b/src/SignalR/common/SignalR.Common/test/Microsoft.AspNetCore.SignalR.Common.Tests.csproj
index 1120424ee602f06c7cf6168c191a81af9137d616..f5d711aaaa926d082feeba16517e90ae88d8c4be 100644
--- a/src/SignalR/common/SignalR.Common/test/Microsoft.AspNetCore.SignalR.Common.Tests.csproj
+++ b/src/SignalR/common/SignalR.Common/test/Microsoft.AspNetCore.SignalR.Common.Tests.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/common/testassets/Tests.Utils/Microsoft.AspNetCore.SignalR.Tests.Utils.csproj b/src/SignalR/common/testassets/Tests.Utils/Microsoft.AspNetCore.SignalR.Tests.Utils.csproj
index ce47db0ac82b05b53a7d4c55e2ca1701237fde92..3271bd2ef557daec1beef27be6e8aca854428e66 100644
--- a/src/SignalR/common/testassets/Tests.Utils/Microsoft.AspNetCore.SignalR.Tests.Utils.csproj
+++ b/src/SignalR/common/testassets/Tests.Utils/Microsoft.AspNetCore.SignalR.Tests.Utils.csproj
@@ -4,6 +4,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <RootNamespace>Microsoft.AspNetCore.SignalR.Tests</RootNamespace>
     <DefineConstants>$(DefineConstants);TESTUTILS</DefineConstants>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -21,6 +23,8 @@
     <Reference Include="Microsoft.AspNetCore.Testing" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
     <Reference Include="Microsoft.Extensions.ValueStopwatch.Sources" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
 </Project>
diff --git a/src/SignalR/common/testassets/Tests.Utils/TestClient.cs b/src/SignalR/common/testassets/Tests.Utils/TestClient.cs
index b5edf50d2eb99cd7e7fb68093fa8558067d737ef..fe7605fed7b8193401860d59db1808aa5fb96876 100644
--- a/src/SignalR/common/testassets/Tests.Utils/TestClient.cs
+++ b/src/SignalR/common/testassets/Tests.Utils/TestClient.cs
@@ -37,9 +37,10 @@ namespace Microsoft.AspNetCore.SignalR.Tests
 
         public TransferFormat ActiveFormat { get; set; }
 
-        public TestClient(IHubProtocol protocol = null, IInvocationBinder invocationBinder = null, string userIdentifier = null)
+        public TestClient(IHubProtocol protocol = null, IInvocationBinder invocationBinder = null, string userIdentifier = null, long pauseWriterThreshold = 32768)
         {
-            var options = new PipeOptions(readerScheduler: PipeScheduler.Inline, writerScheduler: PipeScheduler.Inline, useSynchronizationContext: false);
+            var options = new PipeOptions(readerScheduler: PipeScheduler.Inline, writerScheduler: PipeScheduler.Inline, useSynchronizationContext: false,
+                pauseWriterThreshold: pauseWriterThreshold, resumeWriterThreshold: pauseWriterThreshold / 2);
             var pair = DuplexPipe.CreateConnectionPair(options, options);
             Connection = new DefaultConnectionContext(Guid.NewGuid().ToString(), pair.Transport, pair.Application);
 
@@ -70,16 +71,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests
         {
             if (sendHandshakeRequestMessage)
             {
-                var memoryBufferWriter = MemoryBufferWriter.Get();
-                try
-                {
-                    HandshakeProtocol.WriteRequestMessage(new HandshakeRequestMessage(_protocol.Name, _protocol.Version), memoryBufferWriter);
-                    await Connection.Application.Output.WriteAsync(memoryBufferWriter.ToArray());
-                }
-                finally
-                {
-                    MemoryBufferWriter.Return(memoryBufferWriter);
-                }
+                await Connection.Application.Output.WriteAsync(GetHandshakeRequestMessage());
             }
 
             var connection = handler.OnConnectedAsync(Connection);
@@ -259,7 +251,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests
                 }
                 else
                 {
-                    // read first message out of the incoming data 
+                    // read first message out of the incoming data
                     if (HandshakeProtocol.TryParseResponseMessage(ref buffer, out var responseMessage))
                     {
                         return responseMessage;
@@ -314,6 +306,20 @@ namespace Microsoft.AspNetCore.SignalR.Tests
             }
         }
 
+        public byte[] GetHandshakeRequestMessage()
+        {
+            var memoryBufferWriter = MemoryBufferWriter.Get();
+            try
+            {
+                HandshakeProtocol.WriteRequestMessage(new HandshakeRequestMessage(_protocol.Name, _protocol.Version), memoryBufferWriter);
+                return memoryBufferWriter.ToArray();
+            }
+            finally
+            {
+                MemoryBufferWriter.Return(memoryBufferWriter);
+            }
+        }
+
         private class DefaultInvocationBinder : IInvocationBinder
         {
             public IReadOnlyList<Type> GetParameterTypes(string methodName)
diff --git a/src/SignalR/common/testassets/Tests.Utils/VerifyNoErrorsScope.cs b/src/SignalR/common/testassets/Tests.Utils/VerifyNoErrorsScope.cs
index f23712c8d5c9331d077e4917f71a5d1241151e8c..7aa1c4544fce07320dabf5914c160eeaf11577e0 100644
--- a/src/SignalR/common/testassets/Tests.Utils/VerifyNoErrorsScope.cs
+++ b/src/SignalR/common/testassets/Tests.Utils/VerifyNoErrorsScope.cs
@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
@@ -62,4 +62,4 @@ namespace Microsoft.AspNetCore.SignalR.Tests
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/SignalR/perf/Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj b/src/SignalR/perf/Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj
index 3f892a8cdf403fb7ac2398df746cb97a2c280169..84f5308ae5b56ae156da6a6d3e727968b5eb659e 100644
--- a/src/SignalR/perf/Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj
+++ b/src/SignalR/perf/Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj
@@ -3,6 +3,8 @@
   <PropertyGroup>
     <OutputType>Exe</OutputType>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/perf/Microbenchmarks/ServerSentEventsBenchmark.cs b/src/SignalR/perf/Microbenchmarks/ServerSentEventsBenchmark.cs
index fd4357c9524773b985ed2d0b6c7a9a2deeade15c..5b20e7209d64f0a0182a5ef6624b71de2714c48d 100644
--- a/src/SignalR/perf/Microbenchmarks/ServerSentEventsBenchmark.cs
+++ b/src/SignalR/perf/Microbenchmarks/ServerSentEventsBenchmark.cs
@@ -61,7 +61,7 @@ namespace Microsoft.AspNetCore.SignalR.Microbenchmarks
             _parser = new ServerSentEventsMessageParser();
             _rawData = new ReadOnlySequence<byte>(protocol.GetMessageBytes(hubMessage));
             var ms = new MemoryStream();
-            ServerSentEventsMessageFormatter.WriteMessageAsync(_rawData, ms).GetAwaiter().GetResult();
+            ServerSentEventsMessageFormatter.WriteMessageAsync(_rawData, ms, default).GetAwaiter().GetResult();
             _sseFormattedData = ms.ToArray();
         }
 
@@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.SignalR.Microbenchmarks
         [Benchmark]
         public Task WriteSingleMessage()
         {
-            return ServerSentEventsMessageFormatter.WriteMessageAsync(_rawData, Stream.Null);
+            return ServerSentEventsMessageFormatter.WriteMessageAsync(_rawData, Stream.Null, default);
         }
 
         public enum Message
diff --git a/src/SignalR/samples/ClientSample/ClientSample.csproj b/src/SignalR/samples/ClientSample/ClientSample.csproj
index 4c8d780015e1317729610da3c1ce0f85e4604d44..654bf67bef796b70ca327e252cdc2216271780e8 100644
--- a/src/SignalR/samples/ClientSample/ClientSample.csproj
+++ b/src/SignalR/samples/ClientSample/ClientSample.csproj
@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFrameworks>$(DefaultNetCoreTargetFramework);net461</TargetFrameworks>
     <OutputType>Exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -14,6 +16,8 @@
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.CommandLineUtils.Sources" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
 </Project>
diff --git a/src/SignalR/samples/JwtClientSample/JwtClientSample.csproj b/src/SignalR/samples/JwtClientSample/JwtClientSample.csproj
index 916907b46c4879d7a32d55c4e9c943ca5ed0beb2..0e66b6c40fa6a4a5606a3bb472d6aed561eeb0f8 100644
--- a/src/SignalR/samples/JwtClientSample/JwtClientSample.csproj
+++ b/src/SignalR/samples/JwtClientSample/JwtClientSample.csproj
@@ -3,10 +3,14 @@
   <PropertyGroup>
     <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
     <OutputType>Exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.SignalR.Client" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
 </Project>
diff --git a/src/SignalR/samples/SignalRSamples/SignalRSamples.csproj b/src/SignalR/samples/SignalRSamples/SignalRSamples.csproj
index 97bf72df88bc67928f6aea932bd47a380f0d54ef..c49287b478fa01116508b0ea99fab617830d4d38 100644
--- a/src/SignalR/samples/SignalRSamples/SignalRSamples.csproj
+++ b/src/SignalR/samples/SignalRSamples/SignalRSamples.csproj
@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <GenerateRazorAssemblyInfo>false</GenerateRazorAssemblyInfo>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -20,6 +22,8 @@
     <Reference Include="Microsoft.Extensions.Configuration.CommandLine" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="System.Reactive.Linq" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
   <Target Name="CopyTSClient" BeforeTargets="AfterBuild">
diff --git a/src/SignalR/server/Core/ref/Microsoft.AspNetCore.SignalR.Core.csproj b/src/SignalR/server/Core/ref/Microsoft.AspNetCore.SignalR.Core.csproj
index 6416b75d2e5ce73c7f66c3d5a4a234f69602d7eb..0f4212eacec267956c32c20bff95afeb8084563f 100644
--- a/src/SignalR/server/Core/ref/Microsoft.AspNetCore.SignalR.Core.csproj
+++ b/src/SignalR/server/Core/ref/Microsoft.AspNetCore.SignalR.Core.csproj
@@ -5,10 +5,14 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.SignalR.Core.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization.Policy"  />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Common"  />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Protocols.Json"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Authorization.Policy" />
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
+    <Reference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.Tests.Utils" Key="" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.Microbenchmarks" Key="" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.Tests" Key="" />
+    <InternalsVisibleTo Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests" Key="" />
   </ItemGroup>
 </Project>
diff --git a/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs b/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs
index a8a9fe2095614dfb2e8bde5472c9e733a80f1bec..172112b647db611c18d2d15b68ab0dac3eeb5c82 100644
--- a/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs
+++ b/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs
@@ -82,10 +82,10 @@ namespace Microsoft.AspNetCore.SignalR
         /// <inheritdoc />
         public override Task SendAllAsync(string methodName, object[] args, CancellationToken cancellationToken = default)
         {
-            return SendToAllConnections(methodName, args, null);
+            return SendToAllConnections(methodName, args, include: null, cancellationToken);
         }
 
-        private Task SendToAllConnections(string methodName, object[] args, Func<HubConnectionContext, object, bool> include, object state = null)
+        private Task SendToAllConnections(string methodName, object[] args, Func<HubConnectionContext, object, bool> include, object state = null, CancellationToken cancellationToken)
         {
             List<Task> tasks = null;
             SerializedHubMessage message = null;
@@ -103,7 +103,7 @@ namespace Microsoft.AspNetCore.SignalR
                     message = CreateSerializedInvocationMessage(methodName, args);
                 }
 
-                var task = connection.WriteAsync(message);
+                var task = connection.WriteAsync(message, cancellationToken);
 
                 if (!task.IsCompletedSuccessfully)
                 {
@@ -127,7 +127,7 @@ namespace Microsoft.AspNetCore.SignalR
 
         // Tasks and message are passed by ref so they can be lazily created inside the method post-filtering,
         // while still being re-usable when sending to multiple groups
-        private void SendToGroupConnections(string methodName, object[] args, ConcurrentDictionary<string, HubConnectionContext> connections, Func<HubConnectionContext, object, bool> include, object state, ref List<Task> tasks, ref SerializedHubMessage message)
+        private void SendToGroupConnections(string methodName, object[] args, ConcurrentDictionary<string, HubConnectionContext> connections, Func<HubConnectionContext, object, bool> include, object state, ref List<Task> tasks, ref SerializedHubMessage message, CancellationToken cancellationToken)
         {
             // foreach over ConcurrentDictionary avoids allocating an enumerator
             foreach (var connection in connections)
@@ -142,7 +142,7 @@ namespace Microsoft.AspNetCore.SignalR
                     message = CreateSerializedInvocationMessage(methodName, args);
                 }
 
-                var task = connection.Value.WriteAsync(message);
+                var task = connection.Value.WriteAsync(message, cancellationToken);
 
                 if (!task.IsCompletedSuccessfully)
                 {
@@ -175,7 +175,7 @@ namespace Microsoft.AspNetCore.SignalR
             // Write message directly to connection without caching it in memory
             var message = CreateInvocationMessage(methodName, args);
 
-            return connection.WriteAsync(message).AsTask();
+            return connection.WriteAsync(message, cancellationToken).AsTask();
         }
 
         /// <inheritdoc />
@@ -193,7 +193,7 @@ namespace Microsoft.AspNetCore.SignalR
                 // group might be modified inbetween checking and sending
                 List<Task> tasks = null;
                 SerializedHubMessage message = null;
-                SendToGroupConnections(methodName, args, group, null, null, ref tasks, ref message);
+                SendToGroupConnections(methodName, args, group, null, null, ref tasks, ref message, cancellationToken);
 
                 if (tasks != null)
                 {
@@ -221,7 +221,7 @@ namespace Microsoft.AspNetCore.SignalR
                 var group = _groups[groupName];
                 if (group != null)
                 {
-                    SendToGroupConnections(methodName, args, group, null, null, ref tasks, ref message);
+                    SendToGroupConnections(methodName, args, group, null, null, ref tasks, ref message, cancellationToken);
                 }
             }
 
@@ -247,7 +247,7 @@ namespace Microsoft.AspNetCore.SignalR
                 List<Task> tasks = null;
                 SerializedHubMessage message = null;
 
-                SendToGroupConnections(methodName, args, group, (connection, state) => !((IReadOnlyList<string>)state).Contains(connection.ConnectionId), excludedConnectionIds, ref tasks, ref message);
+                SendToGroupConnections(methodName, args, group, (connection, state) => !((IReadOnlyList<string>)state).Contains(connection.ConnectionId), excludedConnectionIds, ref tasks, ref message, cancellationToken);
 
                 if (tasks != null)
                 {
@@ -271,7 +271,7 @@ namespace Microsoft.AspNetCore.SignalR
         /// <inheritdoc />
         public override Task SendUserAsync(string userId, string methodName, object[] args, CancellationToken cancellationToken = default)
         {
-            return SendToAllConnections(methodName, args, (connection, state) => string.Equals(connection.UserIdentifier, (string)state, StringComparison.Ordinal), userId);
+            return SendToAllConnections(methodName, args, (connection, state) => string.Equals(connection.UserIdentifier, (string)state, StringComparison.Ordinal), userId, cancellationToken);
         }
 
         /// <inheritdoc />
@@ -292,19 +292,19 @@ namespace Microsoft.AspNetCore.SignalR
         /// <inheritdoc />
         public override Task SendAllExceptAsync(string methodName, object[] args, IReadOnlyList<string> excludedConnectionIds, CancellationToken cancellationToken = default)
         {
-            return SendToAllConnections(methodName, args, (connection, state) => !((IReadOnlyList<string>)state).Contains(connection.ConnectionId), excludedConnectionIds);
+            return SendToAllConnections(methodName, args, (connection, state) => !((IReadOnlyList<string>)state).Contains(connection.ConnectionId), excludedConnectionIds, cancellationToken);
         }
 
         /// <inheritdoc />
         public override Task SendConnectionsAsync(IReadOnlyList<string> connectionIds, string methodName, object[] args, CancellationToken cancellationToken = default)
         {
-            return SendToAllConnections(methodName, args, (connection, state) => ((IReadOnlyList<string>)state).Contains(connection.ConnectionId), connectionIds);
+            return SendToAllConnections(methodName, args, (connection, state) => ((IReadOnlyList<string>)state).Contains(connection.ConnectionId), connectionIds, cancellationToken);
         }
 
         /// <inheritdoc />
         public override Task SendUsersAsync(IReadOnlyList<string> userIds, string methodName, object[] args, CancellationToken cancellationToken = default)
         {
-            return SendToAllConnections(methodName, args, (connection, state) => ((IReadOnlyList<string>)state).Contains(connection.UserIdentifier), userIds);
+            return SendToAllConnections(methodName, args, (connection, state) => ((IReadOnlyList<string>)state).Contains(connection.UserIdentifier), userIds, cancellationToken);
         }
     }
 }
diff --git a/src/SignalR/server/Core/src/HubConnectionContext.cs b/src/SignalR/server/Core/src/HubConnectionContext.cs
index bd544102c082fac58350631cbd55689ce711bcf8..1dc7ad89c4288a109c621ad8e5534c55a7a92fb7 100644
--- a/src/SignalR/server/Core/src/HubConnectionContext.cs
+++ b/src/SignalR/server/Core/src/HubConnectionContext.cs
@@ -34,6 +34,8 @@ namespace Microsoft.AspNetCore.SignalR
         private readonly long _keepAliveInterval;
         private readonly long _clientTimeoutInterval;
         private readonly SemaphoreSlim _writeLock = new SemaphoreSlim(1);
+        private readonly bool _useAbsoluteClientTimeout;
+        private readonly object _receiveMessageTimeoutLock = new object();
 
         private StreamTracker _streamTracker;
         private long _lastSendTimeStamp = DateTime.UtcNow.Ticks;
@@ -41,10 +43,13 @@ namespace Microsoft.AspNetCore.SignalR
         private bool _receivedMessageThisInterval = false;
         private ReadOnlyMemory<byte> _cachedPingMessage;
         private bool _clientTimeoutActive;
-        private bool _connectionAborted;
+        private volatile bool _connectionAborted;
         private volatile bool _allowReconnect = true;
         private int _streamBufferCapacity;
         private long? _maxMessageSize;
+        private bool _receivedMessageTimeoutEnabled = false;
+        private long _receivedMessageElapsedTicks = 0;
+        private long _receivedMessageTimestamp;
 
         /// <summary>
         /// Initializes a new instance of the <see cref="HubConnectionContext"/> class.
@@ -64,6 +69,11 @@ namespace Microsoft.AspNetCore.SignalR
             ConnectionAborted = _connectionAbortedTokenSource.Token;
 
             HubCallerContext = new DefaultHubCallerContext(this);
+
+            if (AppContext.TryGetSwitch("Microsoft.AspNetCore.SignalR.UseAbsoluteClientTimeout", out var useAbsoluteClientTimeout))
+            {
+                _useAbsoluteClientTimeout = useAbsoluteClientTimeout;
+            }
         }
 
         internal StreamTracker StreamTracker
@@ -131,7 +141,7 @@ namespace Microsoft.AspNetCore.SignalR
             // Try to grab the lock synchronously, if we fail, go to the slower path
             if (!_writeLock.Wait(0))
             {
-                return new ValueTask(WriteSlowAsync(message));
+                return new ValueTask(WriteSlowAsync(message, cancellationToken));
             }
 
             if (_connectionAborted)
@@ -141,7 +151,7 @@ namespace Microsoft.AspNetCore.SignalR
             }
 
             // This method should never throw synchronously
-            var task = WriteCore(message);
+            var task = WriteCore(message, cancellationToken);
 
             // The write didn't complete synchronously so await completion
             if (!task.IsCompletedSuccessfully)
@@ -167,7 +177,7 @@ namespace Microsoft.AspNetCore.SignalR
             // Try to grab the lock synchronously, if we fail, go to the slower path
             if (!_writeLock.Wait(0))
             {
-                return new ValueTask(WriteSlowAsync(message));
+                return new ValueTask(WriteSlowAsync(message, cancellationToken));
             }
 
             if (_connectionAborted)
@@ -177,7 +187,7 @@ namespace Microsoft.AspNetCore.SignalR
             }
 
             // This method should never throw synchronously
-            var task = WriteCore(message);
+            var task = WriteCore(message, cancellationToken);
 
             // The write didn't complete synchronously so await completion
             if (!task.IsCompletedSuccessfully)
@@ -191,7 +201,7 @@ namespace Microsoft.AspNetCore.SignalR
             return default;
         }
 
-        private ValueTask<FlushResult> WriteCore(HubMessage message)
+        private ValueTask<FlushResult> WriteCore(HubMessage message, CancellationToken cancellationToken)
         {
             try
             {
@@ -199,7 +209,7 @@ namespace Microsoft.AspNetCore.SignalR
                 // write it without caching.
                 Protocol.WriteMessage(message, _connectionContext.Transport.Output);
 
-                return _connectionContext.Transport.Output.FlushAsync();
+                return _connectionContext.Transport.Output.FlushAsync(cancellationToken);
             }
             catch (Exception ex)
             {
@@ -211,14 +221,14 @@ namespace Microsoft.AspNetCore.SignalR
             }
         }
 
-        private ValueTask<FlushResult> WriteCore(SerializedHubMessage message)
+        private ValueTask<FlushResult> WriteCore(SerializedHubMessage message, CancellationToken cancellationToken)
         {
             try
             {
                 // Grab a preserialized buffer for this protocol.
                 var buffer = message.GetSerializedMessage(Protocol);
 
-                return _connectionContext.Transport.Output.WriteAsync(buffer);
+                return _connectionContext.Transport.Output.WriteAsync(buffer, cancellationToken);
             }
             catch (Exception ex)
             {
@@ -249,10 +259,10 @@ namespace Microsoft.AspNetCore.SignalR
             }
         }
 
-        private async Task WriteSlowAsync(HubMessage message)
+        private async Task WriteSlowAsync(HubMessage message, CancellationToken cancellationToken)
         {
             // Failed to get the lock immediately when entering WriteAsync so await until it is available
-            await _writeLock.WaitAsync();
+            await _writeLock.WaitAsync(cancellationToken);
 
             try
             {
@@ -261,7 +271,7 @@ namespace Microsoft.AspNetCore.SignalR
                     return;
                 }
 
-                await WriteCore(message);
+                await WriteCore(message, cancellationToken);
             }
             catch (Exception ex)
             {
@@ -274,7 +284,7 @@ namespace Microsoft.AspNetCore.SignalR
             }
         }
 
-        private async Task WriteSlowAsync(SerializedHubMessage message)
+        private async Task WriteSlowAsync(SerializedHubMessage message, CancellationToken cancellationToken)
         {
             // Failed to get the lock immediately when entering WriteAsync so await until it is available
             await _writeLock.WaitAsync();
@@ -286,7 +296,7 @@ namespace Microsoft.AspNetCore.SignalR
                     return;
                 }
 
-                await WriteCore(message);
+                await WriteCore(message, cancellationToken);
             }
             catch (Exception ex)
             {
@@ -308,6 +318,7 @@ namespace Microsoft.AspNetCore.SignalR
                 return default;
             }
 
+            // TODO: cancel?
             return new ValueTask(TryWritePingSlowAsync());
         }
 
@@ -370,6 +381,9 @@ namespace Microsoft.AspNetCore.SignalR
         private void AbortAllowReconnect()
         {
             _connectionAborted = true;
+            // Cancel any current writes or writes that are about to happen and have already gone past the _connectionAborted bool
+            // We have to do this outside of the lock otherwise it could hang if the write is observing backpressure
+            _connectionContext.Transport.Output.CancelPendingFlush();
 
             // If we already triggered the token then noop, this isn't thread safe but it's good enough
             // to avoid spawning a new task in the most common cases
@@ -525,9 +539,23 @@ namespace Microsoft.AspNetCore.SignalR
         internal Task AbortAsync()
         {
             AbortAllowReconnect();
+
+            // Acquire lock to make sure all writes are completed
+            if (!_writeLock.Wait(0))
+            {
+                return AbortAsyncSlow();
+            }
+            _writeLock.Release();
             return _abortCompletedTcs.Task;
         }
 
+        private async Task AbortAsyncSlow()
+        {
+            await _writeLock.WaitAsync();
+            _writeLock.Release();
+            await _abortCompletedTcs.Task;
+        }
+
         private void KeepAliveTick()
         {
             var currentTime = DateTime.UtcNow.Ticks;
@@ -569,17 +597,36 @@ namespace Microsoft.AspNetCore.SignalR
                 return;
             }
 
-            // If it's been too long since we've heard from the client, then close this
-            if (DateTime.UtcNow.Ticks - Volatile.Read(ref _lastReceivedTimeStamp) > _clientTimeoutInterval)
+            if (_useAbsoluteClientTimeout)
             {
-                if (!_receivedMessageThisInterval)
+                // If it's been too long since we've heard from the client, then close this
+                if (DateTime.UtcNow.Ticks - Volatile.Read(ref _lastReceivedTimeStamp) > _clientTimeoutInterval)
                 {
-                    Log.ClientTimeout(_logger, TimeSpan.FromTicks(_clientTimeoutInterval));
-                    AbortAllowReconnect();
+                    if (!_receivedMessageThisInterval)
+                    {
+                        Log.ClientTimeout(_logger, TimeSpan.FromTicks(_clientTimeoutInterval));
+                        AbortAllowReconnect();
+                    }
+
+                    _receivedMessageThisInterval = false;
+                    Volatile.Write(ref _lastReceivedTimeStamp, DateTime.UtcNow.Ticks);
                 }
+            }
+            else
+            {
+                lock (_receiveMessageTimeoutLock)
+                {
+                    if (_receivedMessageTimeoutEnabled)
+                    {
+                        _receivedMessageElapsedTicks = DateTime.UtcNow.Ticks - _receivedMessageTimestamp;
 
-                _receivedMessageThisInterval = false;
-                Volatile.Write(ref _lastReceivedTimeStamp, DateTime.UtcNow.Ticks);
+                        if (_receivedMessageElapsedTicks >= _clientTimeoutInterval)
+                        {
+                            Log.ClientTimeout(_logger, TimeSpan.FromTicks(_clientTimeoutInterval));
+                            AbortAllowReconnect();
+                        }
+                    }
+                }
             }
         }
 
@@ -628,6 +675,35 @@ namespace Microsoft.AspNetCore.SignalR
             _receivedMessageThisInterval = true;
         }
 
+        internal void BeginClientTimeout()
+        {
+            // check if new timeout behavior is in use
+            if (!_useAbsoluteClientTimeout)
+            {
+                lock (_receiveMessageTimeoutLock)
+                {
+                    _receivedMessageTimeoutEnabled = true;
+                    _receivedMessageTimestamp = DateTime.UtcNow.Ticks;
+                }
+            }
+        }
+
+        internal void StopClientTimeout()
+        {
+            // check if new timeout behavior is in use
+            if (!_useAbsoluteClientTimeout)
+            {
+                lock (_receiveMessageTimeoutLock)
+                {
+                    // we received a message so stop the timer and reset it
+                    // it will resume after the message has been processed
+                    _receivedMessageElapsedTicks = 0;
+                    _receivedMessageTimestamp = 0;
+                    _receivedMessageTimeoutEnabled = false;
+                }
+            }
+        }
+
         private static class Log
         {
             // Category: HubConnectionContext
diff --git a/src/SignalR/server/Core/src/HubConnectionHandler.cs b/src/SignalR/server/Core/src/HubConnectionHandler.cs
index 663864cbb99e7f40735a16db8fab8f96598cad04..0a8f3380f91c5cc57659b05db0fa2cea25fa06e6 100644
--- a/src/SignalR/server/Core/src/HubConnectionHandler.cs
+++ b/src/SignalR/server/Core/src/HubConnectionHandler.cs
@@ -213,6 +213,8 @@ namespace Microsoft.AspNetCore.SignalR
         {
             var input = connection.Input;
             var protocol = connection.Protocol;
+            connection.BeginClientTimeout();
+
 
             var binder = new HubConnectionBinder<THub>(_dispatcher, connection);
 
@@ -221,6 +223,8 @@ namespace Microsoft.AspNetCore.SignalR
                 var result = await input.ReadAsync();
                 var buffer = result.Buffer;
 
+                connection.ResetClientTimeout();
+
                 try
                 {
                     if (result.IsCanceled)
@@ -230,15 +234,21 @@ namespace Microsoft.AspNetCore.SignalR
 
                     if (!buffer.IsEmpty)
                     {
-                        connection.ResetClientTimeout();
-
+                        bool messageReceived = false;
                         // No message limit, just parse and dispatch
                         if (_maximumMessageSize == null)
                         {
                             while (protocol.TryParseMessage(ref buffer, binder, out var message))
                             {
+                                messageReceived = true;
+                                connection.StopClientTimeout();
                                 await _dispatcher.DispatchMessageAsync(connection, message);
                             }
+
+                            if (messageReceived)
+                            {
+                                connection.BeginClientTimeout();
+                            }
                         }
                         else
                         {
@@ -258,6 +268,9 @@ namespace Microsoft.AspNetCore.SignalR
 
                                 if (protocol.TryParseMessage(ref segment, binder, out var message))
                                 {
+                                    messageReceived = true;
+                                    connection.StopClientTimeout();
+
                                     await _dispatcher.DispatchMessageAsync(connection, message);
                                 }
                                 else if (overLength)
@@ -273,6 +286,11 @@ namespace Microsoft.AspNetCore.SignalR
                                 // Update the buffer to the remaining segment
                                 buffer = buffer.Slice(segment.Start);
                             }
+
+                            if (messageReceived)
+                            {
+                                connection.BeginClientTimeout();
+                            }
                         }
                     }
 
diff --git a/src/SignalR/server/Core/src/Internal/Proxies.cs b/src/SignalR/server/Core/src/Internal/Proxies.cs
index 9a3edd56bdb5f1f61aa9dbdd6b9323bc2063ae89..8a2beb26de0354cea8cb6a2b76ce23da2b93ac16 100644
--- a/src/SignalR/server/Core/src/Internal/Proxies.cs
+++ b/src/SignalR/server/Core/src/Internal/Proxies.cs
@@ -105,7 +105,7 @@ namespace Microsoft.AspNetCore.SignalR.Internal
 
         public Task SendCoreAsync(string method, object[] args, CancellationToken cancellationToken = default)
         {
-            return _lifetimeManager.SendAllAsync(method, args);
+            return _lifetimeManager.SendAllAsync(method, args, cancellationToken);
         }
     }
 
diff --git a/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj b/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj
index 79dcd00130e8e5b6a1d8410b27517ba9c962e222..9a18d8ac7426baf2de46476d9d531bbb7ae5bb58 100644
--- a/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj
+++ b/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj
@@ -5,7 +5,7 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
     <RootNamespace>Microsoft.AspNetCore.SignalR</RootNamespace>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/server/SignalR/ref/Microsoft.AspNetCore.SignalR.csproj b/src/SignalR/server/SignalR/ref/Microsoft.AspNetCore.SignalR.csproj
index 7e293580fbb95333ccb7a1c04981a1a12dce2152..c172ea83d6b5d7da03faadca800bb6b5f9e7643c 100644
--- a/src/SignalR/server/SignalR/ref/Microsoft.AspNetCore.SignalR.csproj
+++ b/src/SignalR/server/SignalR/ref/Microsoft.AspNetCore.SignalR.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.SignalR.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Core"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Connections"  />
+    <Reference Include="Microsoft.AspNetCore.SignalR.Core" />
+    <Reference Include="Microsoft.AspNetCore.Http.Connections" />
   </ItemGroup>
 </Project>
diff --git a/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj b/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj
index e4b8eb42262f4fc93e7d6a2eb5096d3511a8342f..1f69a61ddc11ddc4107fea5191ee1147e57676b2 100644
--- a/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj
+++ b/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj
@@ -3,7 +3,7 @@
     <Description>Components for providing real-time bi-directional communication across the Web.</Description>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <IsAspNetCoreApp>true</IsAspNetCoreApp>
-    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/server/SignalR/test/DefaultHubLifetimeManagerTests.cs b/src/SignalR/server/SignalR/test/DefaultHubLifetimeManagerTests.cs
index 0e00c9a9ab5477d384064eb89481578a45a07dc8..ee312dbf3e668b7e2ef547ee98e055563017cbdb 100644
--- a/src/SignalR/server/SignalR/test/DefaultHubLifetimeManagerTests.cs
+++ b/src/SignalR/server/SignalR/test/DefaultHubLifetimeManagerTests.cs
@@ -1,9 +1,14 @@
 // Copyright (c) .NET Foundation. All rights reserved.
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using System.Threading;
+using Microsoft.AspNetCore.SignalR.Protocol;
+using Microsoft.AspNetCore.SignalR.Specification.Tests;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging.Abstractions;
-using Microsoft.AspNetCore.SignalR.Specification.Tests;
+using Xunit;
 
 namespace Microsoft.AspNetCore.SignalR.Tests
 {
@@ -13,5 +18,241 @@ namespace Microsoft.AspNetCore.SignalR.Tests
         {
             return new DefaultHubLifetimeManager<MyHub>(new Logger<DefaultHubLifetimeManager<MyHub>>(NullLoggerFactory.Instance));
         }
+
+        [Fact]
+        public async Task SendAllAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient())
+            using (var client2 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection);
+                var connection2 = HubConnectionContextUtils.Create(client2.Connection);
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                await manager.OnConnectedAsync(connection2).OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendAllAsync("Hello", new object[] { "World" }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var message = Assert.IsType<InvocationMessage>(client1.TryRead());
+                Assert.Equal("Hello", message.Target);
+                Assert.Single(message.Arguments);
+                Assert.Equal("World", (string)message.Arguments[0]);
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection2.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+                Assert.False(connection1.ConnectionAborted.IsCancellationRequested);
+            }
+        }
+
+        [Fact]
+        public async Task SendAllExceptAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient())
+            using (var client2 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection);
+                var connection2 = HubConnectionContextUtils.Create(client2.Connection);
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                await manager.OnConnectedAsync(connection2).OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendAllExceptAsync("Hello", new object[] { "World" }, new List<string> { connection1.ConnectionId }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection2.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+                Assert.False(connection1.ConnectionAborted.IsCancellationRequested);
+                Assert.Null(client1.TryRead());
+            }
+        }
+
+        [Fact]
+        public async Task SendConnectionAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection);
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendConnectionAsync(connection1.ConnectionId, "Hello", new object[] { "World" }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection1.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+            }
+        }
+
+        [Fact]
+        public async Task SendConnectionsAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection);
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendConnectionsAsync(new List<string> { connection1.ConnectionId }, "Hello", new object[] { "World" }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection1.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+            }
+        }
+
+        [Fact]
+        public async Task SendGroupAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection);
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                await manager.AddToGroupAsync(connection1.ConnectionId, "group").OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendGroupAsync("group", "Hello", new object[] { "World" }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection1.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+            }
+        }
+
+        [Fact]
+        public async Task SendGroupExceptAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient())
+            using (var client2 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection);
+                var connection2 = HubConnectionContextUtils.Create(client2.Connection);
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                await manager.OnConnectedAsync(connection2).OrTimeout();
+                await manager.AddToGroupAsync(connection1.ConnectionId, "group").OrTimeout();
+                await manager.AddToGroupAsync(connection2.ConnectionId, "group").OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendGroupExceptAsync("group", "Hello", new object[] { "World" }, new List<string> { connection1.ConnectionId }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection2.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+                Assert.False(connection1.ConnectionAborted.IsCancellationRequested);
+                Assert.Null(client1.TryRead());
+            }
+        }
+
+        [Fact]
+        public async Task SendGroupsAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection);
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                await manager.AddToGroupAsync(connection1.ConnectionId, "group").OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendGroupsAsync(new List<string> { "group" }, "Hello", new object[] { "World" }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection1.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+            }
+        }
+
+        [Fact]
+        public async Task SendUserAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient())
+            using (var client2 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection, userIdentifier: "user");
+                var connection2 = HubConnectionContextUtils.Create(client2.Connection, userIdentifier: "user");
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                await manager.OnConnectedAsync(connection2).OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendUserAsync("user", "Hello", new object[] { "World" }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var message = Assert.IsType<InvocationMessage>(client1.TryRead());
+                Assert.Equal("Hello", message.Target);
+                Assert.Single(message.Arguments);
+                Assert.Equal("World", (string)message.Arguments[0]);
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection2.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+                Assert.False(connection1.ConnectionAborted.IsCancellationRequested);
+            }
+        }
+
+        [Fact]
+        public async Task SendUsersAsyncWillCancelWithToken()
+        {
+            using (var client1 = new TestClient())
+            using (var client2 = new TestClient(pauseWriterThreshold: 2))
+            {
+                var manager = CreateNewHubLifetimeManager();
+                var connection1 = HubConnectionContextUtils.Create(client1.Connection, userIdentifier: "user1");
+                var connection2 = HubConnectionContextUtils.Create(client2.Connection, userIdentifier: "user2");
+                await manager.OnConnectedAsync(connection1).OrTimeout();
+                await manager.OnConnectedAsync(connection2).OrTimeout();
+                var cts = new CancellationTokenSource();
+                var sendTask = manager.SendUsersAsync(new List<string> { "user1", "user2" }, "Hello", new object[] { "World" }, cts.Token).OrTimeout();
+                Assert.False(sendTask.IsCompleted);
+                cts.Cancel();
+                await sendTask.OrTimeout();
+                var message = Assert.IsType<InvocationMessage>(client1.TryRead());
+                Assert.Equal("Hello", message.Target);
+                Assert.Single(message.Arguments);
+                Assert.Equal("World", (string)message.Arguments[0]);
+                var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                connection2.ConnectionAborted.Register(t =>
+                {
+                    ((TaskCompletionSource<object>)t).SetResult(null);
+                }, tcs);
+                await tcs.Task.OrTimeout();
+                Assert.False(connection1.ConnectionAborted.IsCancellationRequested);
+            }
+        }
     }
 }
diff --git a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs
index 31cd9f520620899d7055c20d9d7051c12de60ee5..7ea759cba3f017cc69fac4110125e2353ee3a5ca 100644
--- a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs
+++ b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs
@@ -6,9 +6,11 @@ using System.Buffers;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
+using System.IO.Pipelines;
 using System.Linq;
 using System.Security.Claims;
 using System.Text;
+using System.Threading;
 using System.Threading.Tasks;
 using MessagePack;
 using MessagePack.Formatters;
@@ -16,7 +18,6 @@ using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Connections;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http.Connections.Features;
-using Microsoft.AspNetCore.Http.Connections.Internal;
 using Microsoft.AspNetCore.SignalR.Internal;
 using Microsoft.AspNetCore.SignalR.Protocol;
 using Microsoft.AspNetCore.Testing;
@@ -2796,6 +2797,127 @@ namespace Microsoft.AspNetCore.SignalR.Tests
             }
         }
 
+        internal class PipeReaderWrapper : PipeReader
+        {
+            private readonly PipeReader _originalPipeReader;
+            private TaskCompletionSource<object> _waitForRead;
+            private object _lock = new object();
+
+            public PipeReaderWrapper(PipeReader pipeReader)
+            {
+                _originalPipeReader = pipeReader;
+                _waitForRead = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+            }
+
+            public override void AdvanceTo(SequencePosition consumed) =>
+                _originalPipeReader.AdvanceTo(consumed);
+
+            public override void AdvanceTo(SequencePosition consumed, SequencePosition examined) =>
+                _originalPipeReader.AdvanceTo(consumed, examined);
+
+            public override void CancelPendingRead() =>
+                _originalPipeReader.CancelPendingRead();
+
+            public override void Complete(Exception exception = null) =>
+                _originalPipeReader.Complete(exception);
+
+            public override async ValueTask<ReadResult> ReadAsync(CancellationToken cancellationToken = default)
+            {
+                lock (_lock)
+                {
+                    _waitForRead.SetResult(null);
+                }
+
+                try
+                {
+                    return await _originalPipeReader.ReadAsync(cancellationToken);
+                }
+                finally
+                {
+                    lock (_lock)
+                    {
+                        _waitForRead = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
+                    }
+                }
+            }
+
+            public override bool TryRead(out ReadResult result) =>
+                _originalPipeReader.TryRead(out result);
+
+            public Task WaitForReadStart()
+            {
+                lock (_lock)
+                {
+                    return _waitForRead.Task;
+                }
+            }
+        }
+
+        internal class CustomDuplex : IDuplexPipe
+        {
+            private readonly IDuplexPipe _originalDuplexPipe;
+            public readonly PipeReaderWrapper WrappedPipeReader;
+
+            public CustomDuplex(IDuplexPipe duplexPipe)
+            {
+                _originalDuplexPipe = duplexPipe;
+                WrappedPipeReader = new PipeReaderWrapper(_originalDuplexPipe.Input);
+            }
+
+            public PipeReader Input => WrappedPipeReader;
+
+            public PipeWriter Output => _originalDuplexPipe.Output;
+        }
+
+        [Fact]
+        public async Task HubMethodInvokeDoesNotCountTowardsClientTimeout()
+        {
+            using (StartVerifiableLog())
+            {
+                var tcsService = new TcsService();
+                var serviceProvider = HubConnectionHandlerTestUtils.CreateServiceProvider(services =>
+                {
+                    services.Configure<HubOptions>(options =>
+                         options.ClientTimeoutInterval = TimeSpan.FromMilliseconds(0));
+                    services.AddSingleton(tcsService);
+                }, LoggerFactory);
+                var connectionHandler = serviceProvider.GetService<HubConnectionHandler<LongRunningHub>>();
+
+                using (var client = new TestClient(new JsonHubProtocol()))
+                {
+                    var customDuplex = new CustomDuplex(client.Connection.Transport);
+                    client.Connection.Transport = customDuplex;
+
+                    var connectionHandlerTask = await client.ConnectAsync(connectionHandler);
+                    // This starts the timeout logic
+                    await client.SendHubMessageAsync(PingMessage.Instance);
+
+                    // Call long running hub method
+                    var hubMethodTask = client.InvokeAsync(nameof(LongRunningHub.LongRunningMethod));
+                    await tcsService.StartedMethod.Task.OrTimeout();
+
+                    // Tick heartbeat while hub method is running to show that close isn't triggered
+                    client.TickHeartbeat();
+
+                    // Unblock long running hub method
+                    tcsService.EndMethod.SetResult(null);
+
+                    await hubMethodTask.OrTimeout();
+
+                    // There is a small window when the hub method finishes and the timer starts again
+                    // So we need to delay a little before ticking the heart beat.
+                    // We do this by waiting until we know the HubConnectionHandler code is in pipe.ReadAsync()
+                    await customDuplex.WrappedPipeReader.WaitForReadStart().OrTimeout();
+
+                    // Tick heartbeat again now that we're outside of the hub method
+                    client.TickHeartbeat();
+
+                    // Connection is closed
+                    await connectionHandlerTask.OrTimeout();
+                }
+            }
+        }
+
         [Fact]
         public async Task EndingConnectionSendsCloseMessageWithNoError()
         {
diff --git a/src/SignalR/server/SignalR/test/Microsoft.AspNetCore.SignalR.Tests.csproj b/src/SignalR/server/SignalR/test/Microsoft.AspNetCore.SignalR.Tests.csproj
index ff9d0f1d01b3a4c275d63679c73660c0d265dc4b..15574498b1ea8f4049ad0c6afeea812437995a82 100644
--- a/src/SignalR/server/SignalR/test/Microsoft.AspNetCore.SignalR.Tests.csproj
+++ b/src/SignalR/server/SignalR/test/Microsoft.AspNetCore.SignalR.Tests.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SignalR/server/Specification.Tests/src/Microsoft.AspNetCore.SignalR.Specification.Tests.csproj b/src/SignalR/server/Specification.Tests/src/Microsoft.AspNetCore.SignalR.Specification.Tests.csproj
index acc91b8abef59150752f285b2797602ba889f7e9..69a2c459c3003fad25a8c7e7b3964534d787a05a 100644
--- a/src/SignalR/server/Specification.Tests/src/Microsoft.AspNetCore.SignalR.Specification.Tests.csproj
+++ b/src/SignalR/server/Specification.Tests/src/Microsoft.AspNetCore.SignalR.Specification.Tests.csproj
@@ -5,6 +5,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <IsShippingPackage>true</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -23,6 +25,8 @@
     <Reference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" />
     <Reference Include="xunit.assert" />
     <Reference Include="xunit.extensibility.core" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
 </Project>
diff --git a/src/SignalR/server/StackExchangeRedis/ref/Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj b/src/SignalR/server/StackExchangeRedis/ref/Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj
deleted file mode 100644
index 107b56273ac24817ec0b3fa33eb9deabed3e7807..0000000000000000000000000000000000000000
--- a/src/SignalR/server/StackExchangeRedis/ref/Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="StackExchange.Redis"  />
-    <Reference Include="MessagePack"  />
-    <Reference Include="Microsoft.AspNetCore.SignalR.Core"  />
-  </ItemGroup>
-</Project>
diff --git a/src/SignalR/server/StackExchangeRedis/ref/Microsoft.AspNetCore.SignalR.StackExchangeRedis.netcoreapp.cs b/src/SignalR/server/StackExchangeRedis/ref/Microsoft.AspNetCore.SignalR.StackExchangeRedis.netcoreapp.cs
deleted file mode 100644
index b71edc21996e0cd0146533418035b88ea08ff8b9..0000000000000000000000000000000000000000
--- a/src/SignalR/server/StackExchangeRedis/ref/Microsoft.AspNetCore.SignalR.StackExchangeRedis.netcoreapp.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.SignalR.StackExchangeRedis
-{
-    public partial class RedisHubLifetimeManager<THub> : Microsoft.AspNetCore.SignalR.HubLifetimeManager<THub>, System.IDisposable where THub : Microsoft.AspNetCore.SignalR.Hub
-    {
-        public RedisHubLifetimeManager(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager<THub>> logger, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions> options, Microsoft.AspNetCore.SignalR.IHubProtocolResolver hubProtocolResolver) { }
-        public RedisHubLifetimeManager(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager<THub>> logger, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions> options, Microsoft.AspNetCore.SignalR.IHubProtocolResolver hubProtocolResolver, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.SignalR.HubOptions> globalHubOptions, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.SignalR.HubOptions<THub>> hubOptions) { }
-        public override System.Threading.Tasks.Task AddToGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public void Dispose() { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public override System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) { throw null; }
-        public override System.Threading.Tasks.Task OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) { throw null; }
-        public override System.Threading.Tasks.Task RemoveFromGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendAllAsync(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendAllExceptAsync(string methodName, object[] args, System.Collections.Generic.IReadOnlyList<string> excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendConnectionAsync(string connectionId, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendConnectionsAsync(System.Collections.Generic.IReadOnlyList<string> connectionIds, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendGroupAsync(string groupName, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendGroupExceptAsync(string groupName, string methodName, object[] args, System.Collections.Generic.IReadOnlyList<string> excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendGroupsAsync(System.Collections.Generic.IReadOnlyList<string> groupNames, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendUserAsync(string userId, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public override System.Threading.Tasks.Task SendUsersAsync(System.Collections.Generic.IReadOnlyList<string> userIds, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public partial class RedisOptions
-    {
-        public RedisOptions() { }
-        public StackExchange.Redis.ConfigurationOptions Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-        public System.Func<System.IO.TextWriter, System.Threading.Tasks.Task<StackExchange.Redis.IConnectionMultiplexer>> ConnectionFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute] set { } }
-    }
-}
-namespace Microsoft.Extensions.DependencyInjection
-{
-    public static partial class StackExchangeRedisDependencyInjectionExtensions
-    {
-        public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, System.Action<Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions> configure) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, string redisConnectionString) { throw null; }
-        public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, string redisConnectionString, System.Action<Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions> configure) { throw null; }
-    }
-}
diff --git a/src/SignalR/server/StackExchangeRedis/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests.csproj b/src/SignalR/server/StackExchangeRedis/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests.csproj
index c884296369d95365dfade5c4ee8c46bdd8c32f1c..e9395224a656254d1fbd0d86c5ed5f5f1d43a719 100644
--- a/src/SignalR/server/StackExchangeRedis/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests.csproj
+++ b/src/SignalR/server/StackExchangeRedis/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests.csproj
@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj b/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
index 82e665d1c0a72471c3711dbf1952822757fb1340..743ef0787e1e419583403b19a3e3f9a5ee383387 100644
--- a/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
+++ b/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
@@ -16,6 +16,8 @@
     <DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
     <NoSemVer20>true</NoSemVer20>
     <IsShippingPackage>true</IsShippingPackage>
+    <ReferenceReferenceAssemblies>false</ReferenceReferenceAssemblies>
+    <ReferenceImplementationAssemblies>true</ReferenceImplementationAssemblies>
 
     <!-- Grab packages LB.csproj should have just built. -->
     <RestoreAdditionalProjectSources>$(RestoreAdditionalProjectSources);$(ArtifactsNonShippingPackagesDir)</RestoreAdditionalProjectSources>
@@ -24,8 +26,11 @@
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.2.1" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion)" PrivateAssets="All" />
     <Reference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.2.2" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion)" PrivateAssets="All" />
-    <PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.5.0.x86" Version="$(PackageVersion)" PrivateAssets="All" />
-    <PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.5.0.x64" Version="$(PackageVersion)" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.5.0.x86" Version="$(PackageVersion)-$(_PreReleaseLabel)" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.5.0.x64" Version="$(PackageVersion)-$(_PreReleaseLabel)" PrivateAssets="All" />
+    <!-- When updating this add the previous SiteExtension(s) to the list above -->
+    <PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.3.1.x64" Version="$(PackageVersion)-$(_PreReleaseLabel)" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.3.1.x86" Version="$(PackageVersion)-$(_PreReleaseLabel)" PrivateAssets="All" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/SiteExtensions/LoggingAggregate/test/Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests/TransformTest.cs b/src/SiteExtensions/LoggingAggregate/test/Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests/TransformTest.cs
index 148048380490d741fd2054a491243e8b30fc8b12..6e933e4fe7c2c29e6ab5a041e5f65e15c20fe560 100644
--- a/src/SiteExtensions/LoggingAggregate/test/Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests/TransformTest.cs
+++ b/src/SiteExtensions/LoggingAggregate/test/Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests/TransformTest.cs
@@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.AzureAppServices.SiteExtension
             var depsElement = envNode.FirstChild;
             Assert.Equal("add", depsElement.Name);
             Assert.Equal("DOTNET_ADDITIONAL_DEPS", depsElement.Attributes["name"].Value);
-            Assert.Equal($@"{XdtExtensionPath}\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\;" +
+            Assert.Equal($@"{XdtExtensionPath}\additionalDeps\;{XdtExtensionPath}\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\;" +
                          @"%ProgramFiles%\dotnet\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\",
                 depsElement.Attributes["value"].Value);
 
@@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.AzureAppServices.SiteExtension
             Assert.Equal("add", depsElement.Name);
             Assert.Equal("DOTNET_ADDITIONAL_DEPS", depsElement.Attributes["name"].Value);
             Assert.Equal(@"ExistingValue1;"+
-                         $@"{XdtExtensionPath}\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\;" +
+                         $@"{XdtExtensionPath}\additionalDeps\;{XdtExtensionPath}\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\;" +
                          @"%ProgramFiles%\dotnet\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\",
                 depsElement.Attributes["value"].Value);
 
diff --git a/src/SiteExtensions/LoggingBranch/LB.csproj b/src/SiteExtensions/LoggingBranch/LB.csproj
index 5367207897b1f5e0ef8aaef8e2206b617fe278bc..1cf9f52287fc9030afd731a18bc65c724c67c970 100644
--- a/src/SiteExtensions/LoggingBranch/LB.csproj
+++ b/src/SiteExtensions/LoggingBranch/LB.csproj
@@ -31,6 +31,9 @@
     </ProjectReference>
   </ItemGroup>
 
+  <!-- No code in this project to compile. -->
+  <Target Name="Compile" />
+
   <!-- Cannot assume this project and Microsoft.AspNetCore.AzureAppServices.HostingStartup have the same package version. -->
   <Target Name="_GetHostingStartupPackageReference" BeforeTargets="GenerateHostingStartupDeps">
     <!-- This target is defined in eng/targets/Packaging.targets and included in every C# and F# project. -->
diff --git a/src/SiteExtensions/Sdk/SiteExtension.targets b/src/SiteExtensions/Sdk/SiteExtension.targets
index 3c4e9c9b5d06a62f6b4e753fea545889b5fd4336..c2bf7ea61a28ec41f91811daacce2c081bd1852a 100644
--- a/src/SiteExtensions/Sdk/SiteExtension.targets
+++ b/src/SiteExtensions/Sdk/SiteExtension.targets
@@ -42,6 +42,11 @@
 
     <ItemGroup>
       <_TemplateFiles Include="$(MSBuildThisFileDirectory)\HostingStartup\*.cs*" />
+      <!--
+        Always use Major.Minor.0 so that if we have to produce a new SiteExtension during a patch build it will still work for non-patch runtimes.
+        i.e. 3.0.0 dotnet will search for 3.0.0 and below and wouldn't find a 3.0.1 folder path
+        Side effect, also removes the -ci or -servicing label.
+      -->
       <_HostingStartupPackageReference
         Include="%(HostingStartupPackageReference.Identity)"
         Source="%(HostingStartupPackageReference.Source)"
@@ -50,7 +55,7 @@
         Project="$(_DepsOutputDirectory)%(HostingStartupPackageReference.Identity)\HostingStartup.csproj"
         DepsFile="$(_DepsOutputDirectory)%(HostingStartupPackageReference.Identity)\p\HostingStartup.deps.json"
         TrimmedDepsFile="$(_DepsOutputDirectory)%(HostingStartupPackageReference.Identity)\%(HostingStartupPackageReference.Identity).deps.json"
-        PackagePath="$(_BasePackagePath)\shared\Microsoft.AspNetCore.App\$(MicrosoftAspNetCoreAppPackageVersion)\"
+        PackagePath="$(_BasePackagePath)\shared\Microsoft.AspNetCore.App\$(AspNetCoreMajorMinorVersion).0\"
          />
     </ItemGroup>
     <MakeDir Directories="$(_DepsOutputDirectory)" />
diff --git a/src/Tools/FirstRunCertGenerator/src/CertificateGenerator.cs b/src/Tools/FirstRunCertGenerator/src/CertificateGenerator.cs
index d3f58eae35c5c90cd22a8507f1448cc097b26ecb..d3a94baf2ec6e00d3bcab926b1c5935518bc4add 100644
--- a/src/Tools/FirstRunCertGenerator/src/CertificateGenerator.cs
+++ b/src/Tools/FirstRunCertGenerator/src/CertificateGenerator.cs
@@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.DeveloperCertificates.XPlat
         {
             var manager = new CertificateManager();
             var now = DateTimeOffset.Now;
-            manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1));
+            manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), isInteractive: false);
         }
     }
 }
diff --git a/src/Tools/FirstRunCertGenerator/test/CertificateManagerTests.cs b/src/Tools/FirstRunCertGenerator/test/CertificateManagerTests.cs
index 5e131c2afd20168e74252d13a681b6cadb3cf2f7..5651ba46220d70ee4327ffe0fef2ef0195235a7e 100644
--- a/src/Tools/FirstRunCertGenerator/test/CertificateManagerTests.cs
+++ b/src/Tools/FirstRunCertGenerator/test/CertificateManagerTests.cs
@@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
                     // Act
                 DateTimeOffset now = DateTimeOffset.UtcNow;
                 now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
-                var result = _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), CertificateName, trust: false, subject: TestCertificateSubject);
+                var result = _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), CertificateName, trust: false, subject: TestCertificateSubject, isInteractive: false);
 
                 // Assert
                 Assert.Equal(EnsureCertificateResult.Succeeded, result.ResultCode);
@@ -135,12 +135,12 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
 
             DateTimeOffset now = DateTimeOffset.UtcNow;
             now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
-            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject);
+            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject, isInteractive: false);
 
             var httpsCertificate = CertificateManager.ListCertificates(CertificatePurpose.HTTPS, StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
 
             // Act
-            var result = _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), CertificateName, trust: false, includePrivateKey: true, password: certificatePassword, subject: TestCertificateSubject);
+            var result = _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), CertificateName, trust: false, includePrivateKey: true, password: certificatePassword, subject: TestCertificateSubject, isInteractive: false);
 
             // Assert
             Assert.Equal(EnsureCertificateResult.ValidCertificatePresent, result.ResultCode);
@@ -162,7 +162,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
 
             DateTimeOffset now = DateTimeOffset.UtcNow;
             now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
-            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject);
+            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject, isInteractive: false);
 
             CertificateManager.AspNetHttpsCertificateVersion = 2;
 
@@ -179,7 +179,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
             DateTimeOffset now = DateTimeOffset.UtcNow;
             now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
             CertificateManager.AspNetHttpsCertificateVersion = 0;
-            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject);
+            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject, isInteractive: false);
 
             CertificateManager.AspNetHttpsCertificateVersion = 1;
 
@@ -196,7 +196,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
             DateTimeOffset now = DateTimeOffset.UtcNow;
             now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
             CertificateManager.AspNetHttpsCertificateVersion = 0;
-            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject);
+            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject, isInteractive: false);
 
             var httpsCertificateList = CertificateManager.ListCertificates(CertificatePurpose.HTTPS, StoreName.My, StoreLocation.CurrentUser, isValid: true);
             Assert.NotEmpty(httpsCertificateList);
@@ -211,7 +211,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
             DateTimeOffset now = DateTimeOffset.UtcNow;
             now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
             CertificateManager.AspNetHttpsCertificateVersion = 2;
-            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject);
+            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: false, subject: TestCertificateSubject, isInteractive: false);
 
             CertificateManager.AspNetHttpsCertificateVersion = 1;
             var httpsCertificateList = CertificateManager.ListCertificates(CertificatePurpose.HTTPS, StoreName.My, StoreLocation.CurrentUser, isValid: true);
@@ -225,7 +225,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
 
             DateTimeOffset now = DateTimeOffset.UtcNow;
             now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
-            var trustFailed = _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: true, subject: TestCertificateSubject);
+            var trustFailed = _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: true, subject: TestCertificateSubject, isInteractive: false);
 
             Assert.Equal(EnsureCertificateResult.UserCancelledTrustStep, trustFailed.ResultCode);
         }
@@ -237,7 +237,7 @@ namespace Microsoft.AspNetCore.Certificates.Generation.Tests
 
             DateTimeOffset now = DateTimeOffset.UtcNow;
             now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0, now.Offset);
-            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: true, subject: TestCertificateSubject);
+            _manager.EnsureAspNetCoreHttpsDevelopmentCertificate(now, now.AddYears(1), path: null, trust: true, subject: TestCertificateSubject, isInteractive: false);
 
             _manager.CleanupHttpsCertificates(TestCertificateSubject);
 
diff --git a/src/Tools/dotnet-dev-certs/src/Program.cs b/src/Tools/dotnet-dev-certs/src/Program.cs
index 2c58ff4947fc03b88e476cd3b0a937ae67e40588..0afc7057357cc0dce4d1f3589a942ce80296afcf 100644
--- a/src/Tools/dotnet-dev-certs/src/Program.cs
+++ b/src/Tools/dotnet-dev-certs/src/Program.cs
@@ -24,6 +24,7 @@ namespace Microsoft.AspNetCore.DeveloperCertificates.Tools
         private const int ErrorNoValidCertificateFound = 6;
         private const int ErrorCertificateNotTrusted = 7;
         private const int ErrorCleaningUpCertificates = 8;
+        private const int ErrorMacOsCertificateKeyCouldNotBeAccessible = 9;
 
         public static readonly TimeSpan HttpsCertificateValidity = TimeSpan.FromDays(365);
 
@@ -158,7 +159,15 @@ namespace Microsoft.AspNetCore.DeveloperCertificates.Tools
             }
             else
             {
-                reporter.Output("A valid certificate was found.");
+                if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && certificateManager.HasValidCertificateWithInnaccessibleKeyAcrossPartitions())
+                {
+                    reporter.Warn($"A valid HTTPS certificate was found but it may not be accessible across security partitions. Run dotnet dev-certs https to ensure it will be accessible during development.");
+                    return ErrorMacOsCertificateKeyCouldNotBeAccessible;
+                }
+                else
+                {
+                    reporter.Verbose("A valid certificate was found.");
+                }
             }
 
             if (trust != null && trust.HasValue())
@@ -185,6 +194,20 @@ namespace Microsoft.AspNetCore.DeveloperCertificates.Tools
             var now = DateTimeOffset.Now;
             var manager = new CertificateManager();
 
+            if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && manager.HasValidCertificateWithInnaccessibleKeyAcrossPartitions() || manager.GetHttpsCertificates().Count == 0)
+            {
+                reporter.Warn($"A valid HTTPS certificate with a key accessible across security partitions was not found. The following command will run to fix it:" + Environment.NewLine +
+                    "'sudo security set-key-partition-list -D localhost -S unsigned:,teamid:UBF8T346G9'" + Environment.NewLine +
+                    "This command will make the certificate key accessible across security partitions and might prompt you for your password. For more information see: https://aka.ms/aspnetcore/2.1/troubleshootcertissues");
+            }
+
+            if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && manager.HasValidCertificateWithInnaccessibleKeyAcrossPartitions() || manager.GetHttpsCertificates().Count == 0)
+            {
+                reporter.Warn($"A valid HTTPS certificate with a key accessible across security partitions was not found. The following command will run to fix it:" + Environment.NewLine +
+                    "'sudo security set-key-partition-list -D localhost -S unsigned:,teamid:UBF8T346G9'" + Environment.NewLine +
+                    "This command will make the certificate key accessible across security partitions and might prompt you for your password. For more information see: https://aka.ms/aspnetcore/3.1/troubleshootcertissues");
+            }
+
             if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && trust?.HasValue() == true)
             {
                 reporter.Warn("Trusting the HTTPS development certificate was requested. If the certificate is not " +