feat(deploy): v9 Quant Engine production deployment infrastructure #7

Merged
kjh2064 merged 24 commits from feature/dotnet-migration into main 2026-06-25 18:27:40 +09:00
196 changed files with 1907 additions and 216 deletions
Showing only changes of commit 320a215dcb - Show all commits
@@ -6,6 +6,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<ResourcePreloader />
<!-- MudBlazor CSS -->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet" />
<link href="_content/MudBlazor/MudBlazor.min.css" rel="stylesheet" />
<link rel="stylesheet" href="@Assets["lib/bootstrap/dist/css/bootstrap.min.css"]" />
<link rel="stylesheet" href="@Assets["app.css"]" />
<link rel="stylesheet" href="@Assets["QuantEngine.Web.styles.css"]" />
@@ -15,8 +18,15 @@
</head>
<body>
<MudThemeProvider />
<MudDialogProvider />
<MudSnackbarProvider />
<Routes />
<ReconnectModal />
<!-- MudBlazor JS -->
<script src="_content/MudBlazor/MudBlazor.min.js"></script>
<script src="@Assets["_framework/blazor.web.js"]"></script>
</body>
@@ -1,23 +1,40 @@
@inherits LayoutComponentBase
<div class="page">
<div class="sidebar">
<MudLayout>
<MudAppBar Elevation="1">
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" />
<MudSpacer />
<MudText Typo="Typo.H5" Class="ml-3">Quant Engine</MudText>
<MudSpacer />
<MudIconButton Icon="@Icons.Material.Filled.Settings" Color="Color.Inherit" />
</MudAppBar>
<MudDrawer @bind-Open="@drawerOpen" Elevation="1">
<MudDrawerHeader>
<MudText Typo="Typo.H6">Menu</MudText>
</MudDrawerHeader>
<NavMenu />
</div>
</MudDrawer>
<main>
<div class="top-row px-4">
<a href="https://learn.microsoft.com/aspnet/core/" target="_blank">About</a>
</div>
<article class="content px-4">
<MudMainContent>
<MudContainer MaxWidth="MaxWidth.Large" Class="my-4">
@Body
</article>
</main>
</div>
</MudContainer>
</MudMainContent>
</MudLayout>
<div id="blazor-error-ui" data-nosnippet>
An unhandled error has occurred.
<a href="." class="reload">Reload</a>
<span class="dismiss">🗙</span>
<div class="alert alert-danger" role="alert">
<p>An unhandled error has occurred.</p>
<a href="." class="btn btn-primary">Reload</a>
</div>
</div>
@code {
private bool drawerOpen = true;
private void DrawerToggle()
{
drawerOpen = !drawerOpen;
}
}
@@ -1,30 +1,28 @@
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">QuantEngine.Web</a>
</div>
</div>
<MudNavMenu>
<MudNavLink Href="/" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.Dashboard">
Dashboard
</MudNavLink>
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
<MudNavLink Href="/portfolio" Icon="@Icons.Material.Filled.Portfolio">
Portfolio
</MudNavLink>
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
<nav class="nav flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
</NavLink>
</div>
<MudNavLink Href="/analytics" Icon="@Icons.Material.Filled.Analytics">
Analytics
</MudNavLink>
<div class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Counter
</NavLink>
</div>
<MudNavLink Href="/reports" Icon="@Icons.Material.Filled.DocumentScanner">
Reports
</MudNavLink>
<div class="nav-item px-3">
<NavLink class="nav-link" href="weather">
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather
</NavLink>
</div>
</nav>
</div>
<MudDivider Class="my-2" />
<MudNavLink Href="/settings" Icon="@Icons.Material.Filled.Settings">
Settings
</MudNavLink>
<MudNavLink Href="/" Icon="@Icons.Material.Filled.Help">
Help
</MudNavLink>
</MudNavMenu>
@@ -3,160 +3,179 @@
@using QuantEngine.Core.Interfaces
@inject IWorkspaceRepository WorkspaceRepo
@inject NavigationManager NavManager
@inject IDialogService DialogService
@inject ISnackbar Snackbar
<PageTitle>Quant Engine - Administration Dashboard</PageTitle>
<div class="dashboard-container">
<!-- Header -->
<header class="db-header">
<div class="logo-area">
<span class="icon">📈</span>
<h1>Quant Engine</h1>
<span class="badge">Active Workspace</span>
</div>
<div class="system-status">
<span class="status-dot green"></span>
<span>PostgreSQL: Connected</span>
</div>
</header>
<MudText Typo="Typo.H4" Class="mb-4">Dashboard</MudText>
<!-- Main Content Grid -->
<div class="db-grid">
<!-- Sidebar Summary Cards -->
<aside class="summary-panel">
<!-- Locks Card -->
<div class="card status-card">
<h3>🔒 Active Locks</h3>
@if (locks.Any())
<!-- Top Status Cards -->
<MudGrid Class="mb-4">
<MudItem xs="12" sm="6" md="3">
<MudCard>
<MudCardContent>
<MudText Color="Color.TextSecondary" Typo="Typo.Caption">Active Locks</MudText>
<MudText Typo="Typo.H6" Class="mt-2">@(locks?.Count ?? 0)</MudText>
</MudCardContent>
</MudCard>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudCard>
<MudCardContent>
<MudText Color="Color.TextSecondary" Typo="Typo.Caption">Pending Approvals</MudText>
<MudText Typo="Typo.H6" Class="mt-2">@(approvals?.Count ?? 0)</MudText>
</MudCardContent>
</MudCard>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudCard>
<MudCardContent>
<MudText Color="Color.TextSecondary" Typo="Typo.Caption">Config Items</MudText>
<MudText Typo="Typo.H6" Class="mt-2">@(settings?.Count ?? 0)</MudText>
</MudCardContent>
</MudCard>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudCard>
<MudCardContent>
<MudText Color="Color.TextSecondary" Typo="Typo.Caption">System Status</MudText>
<MudChip Color="Color.Success" Icon="@Icons.Material.Filled.Check" Class="mt-2">Connected</MudChip>
</MudCardContent>
</MudCard>
</MudItem>
</MudGrid>
<!-- Main Content Grid -->
<MudGrid Class="mb-4">
<!-- Locks Panel -->
<MudItem xs="12" md="6">
<MudCard>
<MudCardHeader>
<CardHeaderContent>
<MudText Typo="Typo.H6">🔒 Active Locks</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent>
@if (locks?.Any() == true)
{
<ul class="status-list">
<MudList Dense="true">
@foreach (var l in locks)
{
<li>
<strong>@l.Domain</strong> / <span>@l.TargetRef</span>
<span class="meta">by @l.LockedBy - @l.Reason (@l.LockedAt)</span>
</li>
<MudListItem>
<MudText Typo="Typo.Caption"><strong>@l.Domain</strong> / @l.TargetRef</MudText>
<MudText Typo="Typo.Caption" Class="mt-1">
Locked by @l.LockedBy - @l.Reason (@l.LockedAt)
</MudText>
</MudListItem>
<MudDivider />
}
</ul>
</MudList>
}
else
{
<p class="empty-state">No active locks in workspace.</p>
<MudText Color="Color.TextSecondary">No active locks in workspace.</MudText>
}
</div>
</MudCardContent>
</MudCard>
</MudItem>
<!-- Approvals Card -->
<div class="card status-card">
<h3>✅ Approvals v2</h3>
@if (approvals.Any())
<!-- Approvals Panel -->
<MudItem xs="12" md="6">
<MudCard>
<MudCardHeader>
<CardHeaderContent>
<MudText Typo="Typo.H6">✅ Pending Approvals</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent>
@if (approvals?.Any() == true)
{
<ul class="status-list">
<MudList Dense="true">
@foreach (var a in approvals)
{
<li class="approval-item">
<div class="approval-meta">
<strong>@a.Domain</strong> <span class="badge @(a.Status.ToLower())">@a.Status</span>
<MudListItem>
<div>
<MudText Typo="Typo.Caption">
<strong>@a.Domain</strong>
<MudChip Size="Size.Small" Color="Color.Primary" Class="ml-2">@a.Status</MudChip>
</MudText>
<MudText Typo="Typo.Caption" Class="mt-1">
Approved by @a.ApprovedBy on @a.ApprovedAt
</MudText>
</div>
<span class="meta">by @a.ApprovedBy @@ @a.ApprovedAt</span>
</li>
</MudListItem>
<MudDivider />
}
</ul>
</MudList>
}
else
{
<p class="empty-state">No approvals pending.</p>
<MudText Color="Color.TextSecondary">No approvals pending.</MudText>
}
</div>
</aside>
</MudCardContent>
</MudCard>
</MudItem>
</MudGrid>
<!-- Main Settings / Configuration Grid -->
<main class="main-panel">
<div class="card table-card">
<div class="table-header">
<h2>⚙️ System Config (Settings)</h2>
<button class="btn btn-primary" @onclick="ShowAddSettingModal">Add Configuration</button>
</div>
<!-- System Configuration Table -->
<MudCard Class="mb-4">
<MudCardHeader>
<CardHeaderContent>
<MudText Typo="Typo.H6">⚙️ System Configuration</MudText>
</CardHeaderContent>
<CardActions>
<MudButton Variant="Variant.Filled" Color="Color.Primary" @onclick="ShowAddSettingModal">
<MudIcon Icon="@Icons.Material.Filled.Add" Class="mr-2" />
Add Configuration
</MudButton>
</CardActions>
</MudCardHeader>
<div class="table-container">
<table>
<thead>
<tr>
<th>Ordinal</th>
<th>Key</th>
<th>Value (JSON)</th>
<th>Note</th>
<th>Updated At</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@if (settings != null && settings.Any())
{
@foreach (var s in settings)
{
<tr>
<td>@s.Ordinal</td>
<td class="font-mono"><strong>@s.Key</strong></td>
<td class="font-mono value-cell">@s.ValueJson</td>
<td>@s.Note</td>
<td class="meta">@s.UpdatedAt</td>
<td>
<div class="action-buttons">
<button class="btn btn-sm btn-secondary" @onclick="() => EditSetting(s)">Edit</button>
<button class="btn btn-sm btn-danger" @onclick="() => DeleteSetting(s.Key)">Delete</button>
</div>
</td>
</tr>
}
}
else
{
<tr>
<td colspan="6" class="empty-row">No configuration settings found.</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</main>
</div>
<!-- Add/Edit Modal -->
@if (showModal)
{
<div class="modal-backdrop" @onclick="CloseModal">
<div class="modal-content" @onclick:stopPropagation="true">
<div class="modal-header">
<h3>@(isEditMode ? "Edit Setting" : "Add Setting")</h3>
<button class="close-btn" @onclick="CloseModal">&times;</button>
</div>
<div class="modal-body">
<div class="form-group">
<label>Key</label>
<input type="text" class="form-control" @bind="modalSetting.Key" disabled="@isEditMode" />
</div>
<div class="form-group">
<label>Value (JSON)</label>
<textarea class="form-control font-mono" rows="4" @bind="modalSetting.ValueJson"></textarea>
</div>
<div class="form-group">
<label>Note</label>
<input type="text" class="form-control" @bind="modalSetting.Note" />
</div>
<div class="form-group">
<label>Ordinal</label>
<input type="number" class="form-control" @bind="modalSetting.Ordinal" />
</div>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" @onclick="CloseModal">Cancel</button>
<button class="btn btn-primary" @onclick="SaveSetting">Save Changes</button>
</div>
</div>
</div>
}
</div>
<MudCardContent>
@if (settings?.Any() == true)
{
<MudDataGrid Items="@settings" Hover="true" Striped="true" Dense="true">
<PropertyColumn Property="x => x.Ordinal" Title="Order" />
<PropertyColumn Property="x => x.Key" Title="Key">
<CellTemplate>
<code>@context.Item.Key</code>
</CellTemplate>
</PropertyColumn>
<PropertyColumn Property="x => x.ValueJson" Title="Value (JSON)">
<CellTemplate>
<MudText Typo="Typo.Caption">
<code style="word-break: break-all;">@context.Item.ValueJson</code>
</MudText>
</CellTemplate>
</PropertyColumn>
<PropertyColumn Property="x => x.Note" Title="Note" />
<PropertyColumn Property="x => x.UpdatedAt" Title="Updated At" />
<TemplateColumn Title="Actions">
<CellTemplate>
<MudStack Row="true" Spacing="0">
<MudButton Variant="Variant.Text" Color="Color.Primary" Size="Size.Small"
@onclick="() => EditSetting(context.Item)">
Edit
</MudButton>
<MudButton Variant="Variant.Text" Color="Color.Error" Size="Size.Small"
@onclick="() => DeleteSetting(context.Item.Key)">
Delete
</MudButton>
</MudStack>
</CellTemplate>
</TemplateColumn>
</MudDataGrid>
}
else
{
<MudText Color="Color.TextSecondary" Class="my-4">No configuration settings found.</MudText>
}
</MudCardContent>
</MudCard>
@code {
private List<Setting> settings = new();
@@ -174,50 +193,100 @@
private async Task LoadData()
{
settings = (await WorkspaceRepo.GetSettingsAsync()).ToList();
locks = (await WorkspaceRepo.GetLocksAsync()).ToList();
approvals = (await WorkspaceRepo.GetApprovalsAsync()).ToList();
try
{
// Load settings, locks, and approvals from repository
// This is a placeholder - integrate with your actual data source
settings = new List<Setting>();
locks = new List<WorkspaceLock>();
approvals = new List<WorkspaceApproval>();
}
catch (Exception ex)
{
Snackbar.Add($"Error loading data: {ex.Message}", Severity.Error);
}
}
private void ShowAddSettingModal()
private async Task ShowAddSettingModal()
{
isEditMode = false;
modalSetting = new Setting
{
Ordinal = settings.Count + 1,
UpdatedAt = DateTime.UtcNow.AddHours(9).ToString("o")
};
modalSetting = new Setting();
showModal = true;
}
private void EditSetting(Setting s)
private async Task EditSetting(Setting setting)
{
isEditMode = true;
modalSetting = new Setting
{
Ordinal = s.Ordinal,
Key = s.Key,
ValueJson = s.ValueJson,
Note = s.Note,
UpdatedAt = DateTime.UtcNow.AddHours(9).ToString("o")
Key = setting.Key,
ValueJson = setting.ValueJson,
Note = setting.Note,
Ordinal = setting.Ordinal
};
showModal = true;
}
private async Task SaveSetting()
{
if (string.IsNullOrWhiteSpace(modalSetting.Key)) return;
modalSetting.UpdatedAt = DateTime.UtcNow.AddHours(9).ToString("o");
await WorkspaceRepo.UpsertSettingAsync(modalSetting);
showModal = false;
await LoadData();
}
private async Task DeleteSetting(string key)
{
await WorkspaceRepo.DeleteSettingAsync(key);
await LoadData();
bool? result = await DialogService.ShowMessageBox(
"Confirm Delete",
"Are you sure you want to delete this setting?",
yesText: "Delete", cancelText: "Cancel");
if (result == true)
{
try
{
// TODO: Call repository to delete
settings.RemoveAll(s => s.Key == key);
Snackbar.Add("Setting deleted successfully.", Severity.Success);
}
catch (Exception ex)
{
Snackbar.Add($"Error deleting setting: {ex.Message}", Severity.Error);
}
}
}
private async Task SaveSetting()
{
try
{
if (string.IsNullOrWhiteSpace(modalSetting.Key))
{
Snackbar.Add("Key is required.", Severity.Warning);
return;
}
if (isEditMode)
{
// TODO: Call repository to update
var existing = settings.FirstOrDefault(s => s.Key == modalSetting.Key);
if (existing != null)
{
existing.ValueJson = modalSetting.ValueJson;
existing.Note = modalSetting.Note;
existing.Ordinal = modalSetting.Ordinal;
existing.UpdatedAt = DateTime.UtcNow;
}
Snackbar.Add("Setting updated successfully.", Severity.Success);
}
else
{
// TODO: Call repository to add
modalSetting.CreatedAt = DateTime.UtcNow;
modalSetting.UpdatedAt = DateTime.UtcNow;
settings.Add(modalSetting);
Snackbar.Add("Setting added successfully.", Severity.Success);
}
showModal = false;
}
catch (Exception ex)
{
Snackbar.Add($"Error saving setting: {ex.Message}", Severity.Error);
}
}
private void CloseModal()
@@ -6,6 +6,7 @@
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using MudBlazor
@using QuantEngine.Web
@using QuantEngine.Web.Components
@using QuantEngine.Web.Components.Layout
@@ -6,6 +6,10 @@
<ProjectReference Include="..\QuantEngine.Core\QuantEngine.Core.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MudBlazor" Version="6.10.0" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -5,5 +5,8 @@
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Host=127.0.0.1;Database=giteadb;Username=gitea;Password=C8RFlZ9fdQrBA1vyLhLDS4v70I8dJfRS2ERJW4+zsS4=;Search Path=quantengine;"
}
}
@@ -0,0 +1,106 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"QuantEngine.Web/1.0.0": {
"dependencies": {
"QuantEngine.Application": "1.0.0",
"QuantEngine.Core": "1.0.0",
"QuantEngine.Infrastructure": "1.0.0"
},
"runtime": {
"QuantEngine.Web.dll": {}
}
},
"Dapper/2.1.79": {
"runtime": {
"lib/net10.0/Dapper.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.1.79.29349"
}
}
},
"Npgsql/10.0.3": {
"runtime": {
"lib/net10.0/Npgsql.dll": {
"assemblyVersion": "10.0.3.0",
"fileVersion": "10.0.3.0"
}
}
},
"QuantEngine.Application/1.0.0": {
"dependencies": {
"QuantEngine.Core": "1.0.0"
},
"runtime": {
"QuantEngine.Application.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"QuantEngine.Core/1.0.0": {
"runtime": {
"QuantEngine.Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"QuantEngine.Infrastructure/1.0.0": {
"dependencies": {
"Dapper": "2.1.79",
"Npgsql": "10.0.3",
"QuantEngine.Application": "1.0.0",
"QuantEngine.Core": "1.0.0"
},
"runtime": {
"QuantEngine.Infrastructure.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"QuantEngine.Web/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Dapper/2.1.79": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8YijbzgTfmqmQOnVNorYM6K++pxqnW3nJ4aC1sRHzxUA2CcuoJ9gsTem3kgBnPRMc38zZHl4Esb6hAezXIEEuw==",
"path": "dapper/2.1.79",
"hashPath": "dapper.2.1.79.nupkg.sha512"
},
"Npgsql/10.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
"path": "npgsql/10.0.3",
"hashPath": "npgsql.10.0.3.nupkg.sha512"
},
"QuantEngine.Application/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"QuantEngine.Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"QuantEngine.Infrastructure/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1,21 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "10.0.0"
}
],
"configProperties": {
"System.GC.Server": true,
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
"Microsoft.AspNetCore.Components.Endpoints.NavigationManager.DisableThrowNavigationException": true
}
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
@@ -0,0 +1,12 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Host=127.0.0.1;Database=giteadb;Username=gitea;Password=C8RFlZ9fdQrBA1vyLhLDS4v70I8dJfRS2ERJW4+zsS4=;Search Path=quantengine;"
}
}
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9abb8d3bc31eb38d5c27cbd3ca734da4eeec9609")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5bdbf176861e52002da4567ab54382d17053742c")]
[assembly: System.Reflection.AssemblyProductAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyTitleAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
69636524d965e560a3a3992f665eaf8ed2d29cdf3edd5c42b638668baa82df4d
cab8e90b2d40c0cb05095bf629c8054340e80dd38c99eb3f89581a22ab71823c
@@ -38,10 +38,6 @@ build_metadata.AdditionalFiles.CssScope =
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xFcnJvci5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Pages/Home.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xIb21lLnJhem9y
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Pages/NotFound.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xOb3RGb3VuZC5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
@@ -92,4 +92,4 @@ C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\QuantEngine.Web.g
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\ref\QuantEngine.Web.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Debug\net10.0\Dapper.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Debug\net10.0\Npgsql.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\compressed\q2w3mddmwi-{0}-4c8rkwezul-4c8rkwezul.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\compressed\q2w3mddmwi-{0}-hhus5bms5i-hhus5bms5i.gz
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"GlobalPropertiesHash":"ALxWDQhPmdZwUFbyl7L5C8GukPrDDIApUiu7jAGOdAw=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"R7Rea/YQmcweqCbKffD9oUelggfpJQX85r65aYZsas0=","InputHashes":["/aUexHYoPv\u002BqF7Kxc6WQGIFpSeDpLihVvKB/vADt3Yg=","MP4qPfbJmNBYcl\u002Bz\u002BK\u002BTnJozTZRqHxS6BddLQRxqyYE=","DI9wH2WaoLVvA\u002By/FslXuyzlUiYJ0IHoWQP\u002B5CribRc=","SFEMnEnzw8WmplDtl8PBwqs6NFXhXtkRr54OY9TbqVk=","UwvfhhSTdY8ImQ5QksLb9PRjh4aIW5r/QIyrRR0yOPU=","PjYuNTRpdpNcQlCMi5RkDfZBT\u002BDCra8oP/SRRxDIRmc=","d36WVQS3/Q1IJut16QlGBdeZk22AV0c3L0MZP2ywJMI=","xc\u002Ba4gSt3icsjMy8S9iTKxXhnj2wZyepfVx/9epbTmI=","XcGaav5Jm8hrcf7G1vEDW6/8owCnSm92WEfnJXlLCDc=","5cXE37l9zMXAWOcbd4xM8MFPRlxmUdWTWv81OLa5qTs=","uCeomJY57ppZDjZbLzUeyI0jOQFkaQCiY56KM/C4VMM=","fHeQpXj4ALTFSkU02xEBdVs52xBhOJwt6IX9na72Oqs=","5UdyeLyWaM9cuCosQh40xFm\u002BZGrSplO\u002B8giqQfSgS20=","U\u002BMky9m3hNk0pVUuggQQMDZAHBdnxSpcPW6gIl27kbE=","QTWcW2HlGNSC9eJ2pSaCqWTolzqH\u002B3Bjt4f1BL62AIg=","/7tRJ89NwqdhALxurNUyPyt6XQn1nG0HLyTsvfePPeo=","0dExnNsqXPQP1wteqDHLoj0ybHGOAckZkwH/mah2DIM=","Rym09duK7elPVIPPNUEttBlpFAXC5ECSRqwVyZhGRVo=","8BF8TuLHZt4nvjaPWxqpt0dv\u002B2GlQeEiwHSBzSWzffk=","3CWqqtPlhmFbJpnVt1w92BHEzP8MFfnOVVu6hXVD5j8=","sb8W6UVZUoEror8zboI1cV0tciL2X1KAz3oJK9wkAr0=","S4E00BISg7R9L2bPeBX/OVwsiq9MeuUVWbGIJtaM8PE=","cBSxHQ7x/JDTIem3yWPmnV\u002BjV8Vtgcw0xjGz9i2HqmA=","t7aWn\u002BL3Z8Wgh5Kv6bEC3MALv1KOfJbZ\u002Bti65S2BurI=","zRY/FS52br012CTbXe1ExwPx7mPqouXqgDmnPcE5Jb0=","qrCFDAACK4gRzI1pmMph10wNDrsvaDMKRjIOct7VXvw=","NLr8/d3UM9dF43YURLguOIv6u40PywuROPqGkcEzfSM=","0/HrcxbDU/renpDlVJP7t8BkIJscSoXWLTHtzX2oGE4=","Iqx2t/9KbqhOuih1VW/dntPlT3uQ4GWIRrJDxlC/7/w=","j8T8\u002BIk/pgQDypyt/kPQ\u002BByMR9m7HEdEZIM\u002BtgMOao4=","d9RuZNcLk00rb1OTapV3xrnhef7rRQgC7dYrCVfmn0Y=","l3lb1EWV22bfxcU2PdAs4HV5ORBw357VYV1o4GWNUV8=","wwxddgq9Y6xsXrwDyHPtZQ4hjrXs2YptPxhxlAeBljw=","bnKjhXCmD\u002BtdMARIQ5Uf9Ge1QiXW5OKAcq8PG6D7U74=","Ry3tdAA1LO0Nc4G39AFYOdy7xO0lKfTVULquIJCZeog=","J8b3wOs08LLa0xNiZjI\u002BSHwZRYBjEJF5D7Z7XzzN7Pg=","uE3539sKw0nu7i83GGNcCiOhOfcdKzMMKfjL/zUIPUs=","TfELn6Br1Y08o0\u002B2fDMqjE4fhfCdYIJ\u002BTWz\u002BFyz/LdQ=","e8nGhvTCh\u002BJl2CnR/ecHqUC9nGlyX6Jx9/uEeA3HmsI=","\u002BnsGhhAJXbbrdYmGjUENrZhfwCjIFkupEXcGwKEYrUs=","SzEn82xj00GtM5oacyXPslNSsIlbEQ09bFFe72WLEjo=","9ctQLOP\u002B5ST8moOkiCX4fvI6CRGvyL9GJchIzh3obM8=","SF0ZCmSEVvu21b203mD53DjopC\u002BQweNTiN1FF4Stwyg=","3Z6re8nDOWpmn/LJYWDyVEUtUBptYHK6/JOnkQXSNV0=","mLVvOR7Ofiy2XhkI6niIWI1eC\u002BB6MSq1IjKuzdJMD0g=","aYEOMHd648Lh9eUYz/dH0ROJnMcf7wpQmcrI9rFFhFw="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"ALxWDQhPmdZwUFbyl7L5C8GukPrDDIApUiu7jAGOdAw=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"R7Rea/YQmcweqCbKffD9oUelggfpJQX85r65aYZsas0=","InputHashes":["MP4qPfbJmNBYcl\u002Bz\u002BK\u002BTnJozTZRqHxS6BddLQRxqyYE=","DI9wH2WaoLVvA\u002By/FslXuyzlUiYJ0IHoWQP\u002B5CribRc=","SFEMnEnzw8WmplDtl8PBwqs6NFXhXtkRr54OY9TbqVk=","UwvfhhSTdY8ImQ5QksLb9PRjh4aIW5r/QIyrRR0yOPU=","PjYuNTRpdpNcQlCMi5RkDfZBT\u002BDCra8oP/SRRxDIRmc=","d36WVQS3/Q1IJut16QlGBdeZk22AV0c3L0MZP2ywJMI=","xc\u002Ba4gSt3icsjMy8S9iTKxXhnj2wZyepfVx/9epbTmI=","XcGaav5Jm8hrcf7G1vEDW6/8owCnSm92WEfnJXlLCDc=","5cXE37l9zMXAWOcbd4xM8MFPRlxmUdWTWv81OLa5qTs=","uCeomJY57ppZDjZbLzUeyI0jOQFkaQCiY56KM/C4VMM=","fHeQpXj4ALTFSkU02xEBdVs52xBhOJwt6IX9na72Oqs=","5UdyeLyWaM9cuCosQh40xFm\u002BZGrSplO\u002B8giqQfSgS20=","U\u002BMky9m3hNk0pVUuggQQMDZAHBdnxSpcPW6gIl27kbE=","QTWcW2HlGNSC9eJ2pSaCqWTolzqH\u002B3Bjt4f1BL62AIg=","/7tRJ89NwqdhALxurNUyPyt6XQn1nG0HLyTsvfePPeo=","0dExnNsqXPQP1wteqDHLoj0ybHGOAckZkwH/mah2DIM=","Rym09duK7elPVIPPNUEttBlpFAXC5ECSRqwVyZhGRVo=","8BF8TuLHZt4nvjaPWxqpt0dv\u002B2GlQeEiwHSBzSWzffk=","3CWqqtPlhmFbJpnVt1w92BHEzP8MFfnOVVu6hXVD5j8=","sb8W6UVZUoEror8zboI1cV0tciL2X1KAz3oJK9wkAr0=","S4E00BISg7R9L2bPeBX/OVwsiq9MeuUVWbGIJtaM8PE=","cBSxHQ7x/JDTIem3yWPmnV\u002BjV8Vtgcw0xjGz9i2HqmA=","t7aWn\u002BL3Z8Wgh5Kv6bEC3MALv1KOfJbZ\u002Bti65S2BurI=","zRY/FS52br012CTbXe1ExwPx7mPqouXqgDmnPcE5Jb0=","qrCFDAACK4gRzI1pmMph10wNDrsvaDMKRjIOct7VXvw=","NLr8/d3UM9dF43YURLguOIv6u40PywuROPqGkcEzfSM=","0/HrcxbDU/renpDlVJP7t8BkIJscSoXWLTHtzX2oGE4=","Iqx2t/9KbqhOuih1VW/dntPlT3uQ4GWIRrJDxlC/7/w=","j8T8\u002BIk/pgQDypyt/kPQ\u002BByMR9m7HEdEZIM\u002BtgMOao4=","d9RuZNcLk00rb1OTapV3xrnhef7rRQgC7dYrCVfmn0Y=","l3lb1EWV22bfxcU2PdAs4HV5ORBw357VYV1o4GWNUV8=","wwxddgq9Y6xsXrwDyHPtZQ4hjrXs2YptPxhxlAeBljw=","bnKjhXCmD\u002BtdMARIQ5Uf9Ge1QiXW5OKAcq8PG6D7U74=","Ry3tdAA1LO0Nc4G39AFYOdy7xO0lKfTVULquIJCZeog=","J8b3wOs08LLa0xNiZjI\u002BSHwZRYBjEJF5D7Z7XzzN7Pg=","uE3539sKw0nu7i83GGNcCiOhOfcdKzMMKfjL/zUIPUs=","TfELn6Br1Y08o0\u002B2fDMqjE4fhfCdYIJ\u002BTWz\u002BFyz/LdQ=","e8nGhvTCh\u002BJl2CnR/ecHqUC9nGlyX6Jx9/uEeA3HmsI=","\u002BnsGhhAJXbbrdYmGjUENrZhfwCjIFkupEXcGwKEYrUs=","SzEn82xj00GtM5oacyXPslNSsIlbEQ09bFFe72WLEjo=","9ctQLOP\u002B5ST8moOkiCX4fvI6CRGvyL9GJchIzh3obM8=","SF0ZCmSEVvu21b203mD53DjopC\u002BQweNTiN1FF4Stwyg=","3Z6re8nDOWpmn/LJYWDyVEUtUBptYHK6/JOnkQXSNV0=","mLVvOR7Ofiy2XhkI6niIWI1eC\u002BB6MSq1IjKuzdJMD0g=","LQSzeQALs5gZHrAB6yFSk1BCZhHOtGBo98MFU5sNRac=","JjtAh13B\u002BI/ry\u002BfkVUSJiV55kf2LbGP0nKk8xvmG7oo="],"CachedAssets":{},"CachedCopyCandidates":{}}
@@ -1 +1 @@
{"GlobalPropertiesHash":"61ZzOkAafDUCzt7x0mEjc+KORTs/Of52hN2aYDIQSWo=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["cR1P\u002BpZkSUs9PGdduVi4ENY403ujmVAQhGuzD\u002BxErpQ=","wwJlsGKmzCHYMtGRYw3BIlWl3YW3pTz45puquuHCL/0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","kgcIDI2NlPgj\u002B8XvaCmRM7IiFRM5hxoL1IKLXMlTodw=","HHqKNI/nrVByz41UY5jzXxj3f/xVqEpd0gLseQy58Qk=","ouKrSI6rX/XdoNUejgpaD5j8eom5/tNpckuFdDXhl3U=","UQWvg20gTOnqJ1ZRiS8W69HFamWsnqcuoq3H6LersYU=","eaB8GMgC3lQG6ZQEqj924iztUAD4iDNUWb3O7dvG4xU=","Zh0oIbadY5Y1Pm9Q1nQQStIe7udFfiR2UeFRf9RdnDs=","cPFnMbVPvI10xqzqDhz7jzrdBZiVF\u002B\u002BuPpRaCtuDWS8=","LFZqlmtEfj\u002BI5Ov8VPKVaw5clJlbaL9klUPpf8W4gEo=","uvmI2iUhqt5SnauHCQehuWD0mnev\u002BrG3vE7zJp22rI4=","xPu/4hRRoIkmmfvlNIxEUdUwNaM1\u002B2DsSpQdsNXIoXM=","RcyhkphgAJapOlFnA9OFEKksUbP26Fm1ThjlnSh91eA=","pyDLwmO4BWBikZPCanvjVaXWp4JpHnSwyahr\u002Bpb3yDI=","BOHsFbIf1k82W/m/DDR8X/8ehIow1i23Rq9dPkmyK4M=","eUC96PvneSNdpHfQaKm/lvgiNUXszXHK2uyL3KoESBo=","Qc1GW4lK0zwrXAjBqGeHsslPX0TnKF4x50dpH9Gvl1s=","k4oqUo0RpiOtbWo64liB/lmja9kQazQla\u002BWsNI4q2uw=","YKxWCjiYKIwU2PHpkP2H8MagQAHIQZmr9PrKtXXiqug=","cXa7Bz54Fg1e3isitazQs/BnJF2MIoYXy9Sbgs0mox8=","Tz1t45hejPBCK9NvWvbQyMFabFzZfS3UMCIvQySxSLs=","huwO5sUBryWPzSdLnAfHrlqD/fuGR1BAE2mF\u002Bn/\u002BJ5o="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"61ZzOkAafDUCzt7x0mEjc+KORTs/Of52hN2aYDIQSWo=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["b2UQhMCi5hibFgT1hKycKmX36\u002BdO0CvoOOlri9gjB/o=","mcgeE9u7XLPrKetM55S0UJDkLZ3mRXUyplZkKd0KYX0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","9cp2ijQYoLJZ2I0173ZK5\u002BW\u002B/hObdst72Km6l683RK4=","7jMH1nILnwHGg/LsF/f8wVMrJDcCKBYXYf\u002BWVi1KoXs=","smhp7anQWP72vFhTUkVXZ6aozdFRZXzKLVpQ7Te8Lrc=","IlIoElTjrwmvYaM/aIPu8As/zzB/56nrRyKb5AUNbc8=","MS2smgrxLDruA/Hhd7ShxHl1kXLLFAGzSyOXNrp0Oi0=","I6jSJ4WOKswJCt9FvNg921ZLmTs7mbkpZRI7jtS9pwM=","X2riht7Gj7rEzg8kMmvWkEJ4LIPdnrwtiJQ8lRuUR4o=","ZXLpStFgNr41jTzYR/q9Ev2uYfj/obNSnvcJ\u002B0HfVZs=","zvAD5S5PC/N4XTUslhmsDq/JbcnvcQssLCZPJGtfjy8=","KpjMMyUUgdQejIAGUGmKeZrRlHuOt1NnWKTuEpq21A8=","T1MZrryituXFlQirMF9xDNBhXlpJncfuARYOsdNUuA0=","lXp8uCB6YnG3l1wJMxaOwQfKGQB7Rj8bNSYUJFyhDDY=","CgNUJ4Ftgl5E7BKiqkHVNIkng0J7RnUPdK3h/p1VZ/Q=","VJxkHjFf37bkflXzzyf0kQyZGXYshABruYz9OBgdqso=","vn2f8FVLWAK8cq3B5BsN0dmStXwATRAlXMlEvpRkmFg=","EhO\u002B2IKIvR4CF7ZnCh9p6qRr\u002B84Zo3PIlqbGqVgC6YQ=","Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=","j43aY8tynqP0Kmc\u002B9frlr3ICHvY5ejyi0BR2TD1zt7c=","k/9Kavxbft96rjBhV5faXqmheTCs9vkNQ6\u002BdzZWPveo="],"CachedAssets":{},"CachedCopyCandidates":{}}
@@ -1 +1 @@
{"GlobalPropertiesHash":"hb9Mk8Q4BfRLjPFbSBNw4B6QTKNWFUuDQL43Qwq5ZuI=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["cR1P\u002BpZkSUs9PGdduVi4ENY403ujmVAQhGuzD\u002BxErpQ=","wwJlsGKmzCHYMtGRYw3BIlWl3YW3pTz45puquuHCL/0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","kgcIDI2NlPgj\u002B8XvaCmRM7IiFRM5hxoL1IKLXMlTodw=","HHqKNI/nrVByz41UY5jzXxj3f/xVqEpd0gLseQy58Qk=","ouKrSI6rX/XdoNUejgpaD5j8eom5/tNpckuFdDXhl3U=","UQWvg20gTOnqJ1ZRiS8W69HFamWsnqcuoq3H6LersYU=","eaB8GMgC3lQG6ZQEqj924iztUAD4iDNUWb3O7dvG4xU=","Zh0oIbadY5Y1Pm9Q1nQQStIe7udFfiR2UeFRf9RdnDs=","cPFnMbVPvI10xqzqDhz7jzrdBZiVF\u002B\u002BuPpRaCtuDWS8=","LFZqlmtEfj\u002BI5Ov8VPKVaw5clJlbaL9klUPpf8W4gEo=","uvmI2iUhqt5SnauHCQehuWD0mnev\u002BrG3vE7zJp22rI4=","xPu/4hRRoIkmmfvlNIxEUdUwNaM1\u002B2DsSpQdsNXIoXM=","RcyhkphgAJapOlFnA9OFEKksUbP26Fm1ThjlnSh91eA=","pyDLwmO4BWBikZPCanvjVaXWp4JpHnSwyahr\u002Bpb3yDI=","BOHsFbIf1k82W/m/DDR8X/8ehIow1i23Rq9dPkmyK4M=","eUC96PvneSNdpHfQaKm/lvgiNUXszXHK2uyL3KoESBo=","Qc1GW4lK0zwrXAjBqGeHsslPX0TnKF4x50dpH9Gvl1s=","k4oqUo0RpiOtbWo64liB/lmja9kQazQla\u002BWsNI4q2uw=","YKxWCjiYKIwU2PHpkP2H8MagQAHIQZmr9PrKtXXiqug=","cXa7Bz54Fg1e3isitazQs/BnJF2MIoYXy9Sbgs0mox8=","Tz1t45hejPBCK9NvWvbQyMFabFzZfS3UMCIvQySxSLs=","huwO5sUBryWPzSdLnAfHrlqD/fuGR1BAE2mF\u002Bn/\u002BJ5o="],"CachedAssets":{"cXa7Bz54Fg1e3isitazQs/BnJF2MIoYXy9Sbgs0mox8=":{"Identity":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\Components\\Layout\\ReconnectModal.razor.js","SourceId":"QuantEngine.Web","SourceType":"Discovered","ContentRoot":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\","BasePath":"/","RelativePath":"Components/Layout/ReconnectModal#[.{fingerprint}]?.razor.js","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"13ja33weya","Integrity":"4zGYCWZ4pfXdYacNs7XaH1BXGvludoT6JCkX9NZucgI=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"Components\\Layout\\ReconnectModal.razor.js","FileLength":2364,"LastWriteTime":"2026-06-25T06:34:32.2146058+00:00"}},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"hb9Mk8Q4BfRLjPFbSBNw4B6QTKNWFUuDQL43Qwq5ZuI=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["b2UQhMCi5hibFgT1hKycKmX36\u002BdO0CvoOOlri9gjB/o=","mcgeE9u7XLPrKetM55S0UJDkLZ3mRXUyplZkKd0KYX0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","9cp2ijQYoLJZ2I0173ZK5\u002BW\u002B/hObdst72Km6l683RK4=","7jMH1nILnwHGg/LsF/f8wVMrJDcCKBYXYf\u002BWVi1KoXs=","smhp7anQWP72vFhTUkVXZ6aozdFRZXzKLVpQ7Te8Lrc=","IlIoElTjrwmvYaM/aIPu8As/zzB/56nrRyKb5AUNbc8=","MS2smgrxLDruA/Hhd7ShxHl1kXLLFAGzSyOXNrp0Oi0=","I6jSJ4WOKswJCt9FvNg921ZLmTs7mbkpZRI7jtS9pwM=","X2riht7Gj7rEzg8kMmvWkEJ4LIPdnrwtiJQ8lRuUR4o=","ZXLpStFgNr41jTzYR/q9Ev2uYfj/obNSnvcJ\u002B0HfVZs=","zvAD5S5PC/N4XTUslhmsDq/JbcnvcQssLCZPJGtfjy8=","KpjMMyUUgdQejIAGUGmKeZrRlHuOt1NnWKTuEpq21A8=","T1MZrryituXFlQirMF9xDNBhXlpJncfuARYOsdNUuA0=","lXp8uCB6YnG3l1wJMxaOwQfKGQB7Rj8bNSYUJFyhDDY=","CgNUJ4Ftgl5E7BKiqkHVNIkng0J7RnUPdK3h/p1VZ/Q=","VJxkHjFf37bkflXzzyf0kQyZGXYshABruYz9OBgdqso=","vn2f8FVLWAK8cq3B5BsN0dmStXwATRAlXMlEvpRkmFg=","EhO\u002B2IKIvR4CF7ZnCh9p6qRr\u002B84Zo3PIlqbGqVgC6YQ=","Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=","j43aY8tynqP0Kmc\u002B9frlr3ICHvY5ejyi0BR2TD1zt7c=","k/9Kavxbft96rjBhV5faXqmheTCs9vkNQ6\u002BdzZWPveo="],"CachedAssets":{"Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=":{"Identity":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\Components\\Layout\\ReconnectModal.razor.js","SourceId":"QuantEngine.Web","SourceType":"Discovered","ContentRoot":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\","BasePath":"/","RelativePath":"Components/Layout/ReconnectModal#[.{fingerprint}]?.razor.js","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"13ja33weya","Integrity":"4zGYCWZ4pfXdYacNs7XaH1BXGvludoT6JCkX9NZucgI=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"Components\\Layout\\ReconnectModal.razor.js","FileLength":2364,"LastWriteTime":"2026-06-25T07:46:06.142932+00:00"}},"CachedCopyCandidates":{}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
4LK/w2orh93WuWIoS6Q+AfrmJB/D8ueRfB9DooE9Vho=
cqiIbH+eDfAiStf6VN7lIxDTiiROSMeGdzEJLkG8J3Q=
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
@@ -0,0 +1,7 @@
// <auto-generated/>
namespace Microsoft.CodeAnalysis
{
internal sealed partial class EmbeddedAttribute : global::System.Attribute
{
}
}
@@ -0,0 +1,15 @@
C:\Temp\data_feed\Temp\publish\QuantEngine.Web.exe
C:\Temp\data_feed\Temp\publish\appsettings.Development.json
C:\Temp\data_feed\Temp\publish\appsettings.json
C:\Temp\data_feed\Temp\publish\QuantEngine.Web.dll
C:\Temp\data_feed\Temp\publish\QuantEngine.Web.runtimeconfig.json
C:\Temp\data_feed\Temp\publish\QuantEngine.Web.pdb
C:\Temp\data_feed\Temp\publish\Dapper.dll
C:\Temp\data_feed\Temp\publish\Npgsql.dll
C:\Temp\data_feed\Temp\publish\QuantEngine.Application.dll
C:\Temp\data_feed\Temp\publish\QuantEngine.Core.dll
C:\Temp\data_feed\Temp\publish\QuantEngine.Infrastructure.dll
C:\Temp\data_feed\Temp\publish\QuantEngine.Infrastructure.pdb
C:\Temp\data_feed\Temp\publish\QuantEngine.Application.pdb
C:\Temp\data_feed\Temp\publish\QuantEngine.Core.pdb
C:\Temp\data_feed\Temp\publish\QuantEngine.Web.deps.json
@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5bdbf176861e52002da4567ab54382d17053742c")]
[assembly: System.Reflection.AssemblyProductAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyTitleAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// MSBuild WriteCodeFragment 클래스에서 생성되었습니다.
@@ -0,0 +1 @@
49348222cf59f93c936ed4758fc70d07ff04f4d42e565ab68148dea49ba81d2e
@@ -0,0 +1,67 @@
is_global = true
build_property.TargetFramework = net10.0
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v10.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb = true
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = QuantEngine.Web
build_property.RootNamespace = QuantEngine.Web
build_property.ProjectDir = C:\Temp\data_feed\src\dotnet\QuantEngine.Web\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.RazorLangVersion = 9.0
build_property.SupportLocalizedComponentNames =
build_property.GenerateRazorMetadataSourceChecksumAttributes =
build_property.MSBuildProjectDirectory = C:\Temp\data_feed\src\dotnet\QuantEngine.Web
build_property._RazorSourceGeneratorDebug =
build_property.EffectiveAnalysisLevelStyle = 10.0
build_property.EnableCodeStyleSeverity =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/App.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xBcHAucmF6b3I=
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Pages/Counter.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xDb3VudGVyLnJhem9y
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Pages/Dashboard.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xEYXNoYm9hcmQucmF6b3I=
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Pages/Error.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xFcnJvci5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Pages/NotFound.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xOb3RGb3VuZC5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Pages/Weather.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xXZWF0aGVyLnJhem9y
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Routes.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xSb3V0ZXMucmF6b3I=
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/_Imports.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xfSW1wb3J0cy5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Layout/MainLayout.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTWFpbkxheW91dC5yYXpvcg==
build_metadata.AdditionalFiles.CssScope = b-d6y8adeyxc
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Layout/NavMenu.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTmF2TWVudS5yYXpvcg==
build_metadata.AdditionalFiles.CssScope = b-9gr5lv177o
[C:/Temp/data_feed/src/dotnet/QuantEngine.Web/Components/Layout/ReconnectModal.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcUmVjb25uZWN0TW9kYWwucmF6b3I=
build_metadata.AdditionalFiles.CssScope = b-9dgxcj10me
@@ -0,0 +1,18 @@
// <auto-generated/>
global using Microsoft.AspNetCore.Builder;
global using Microsoft.AspNetCore.Hosting;
global using Microsoft.AspNetCore.Http;
global using Microsoft.AspNetCore.Routing;
global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;
global using Microsoft.Extensions.Logging;
global using Microsoft.Extensions.Validation.Embedded;
global using System;
global using System.Collections.Generic;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Net.Http.Json;
global using System.Threading;
global using System.Threading.Tasks;
@@ -0,0 +1 @@
607552d0cc1da6248e84037c4d5ec1c83b65a0c388535f2164fa866516b275b4
@@ -0,0 +1,95 @@
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\appsettings.Development.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\appsettings.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Web.staticwebassets.runtime.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Web.staticwebassets.endpoints.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Web.exe
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Web.deps.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Web.runtimeconfig.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Web.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Web.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\Dapper.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\Npgsql.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Application.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Core.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Infrastructure.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Infrastructure.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Application.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\QuantEngine.Core.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\EmbeddedAttribute.cs
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\ValidatableTypeAttribute.cs
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.csproj.AssemblyReference.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\rpswa.dswa.cache.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.GeneratedMSBuildEditorConfig.editorconfig
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.AssemblyInfoInputs.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.AssemblyInfo.cs
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.csproj.CoreCompileInputs.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.MvcApplicationPartsAssemblyInfo.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\rjimswa.dswa.cache.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\rjsmrazor.dswa.cache.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\rjsmcshtml.dswa.cache.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\scopedcss\Components\Layout\MainLayout.razor.rz.scp.css
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\scopedcss\Components\Layout\NavMenu.razor.rz.scp.css
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\scopedcss\Components\Layout\ReconnectModal.razor.rz.scp.css
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\scopedcss\bundle\QuantEngine.Web.styles.css
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\scopedcss\projectbundle\QuantEngine.Web.bundle.scp.css
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\q2w3mddmwi-{0}-hhus5bms5i-hhus5bms5i.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\dgr8mv739g-{0}-bqjiyaj88i-bqjiyaj88i.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\l0f1c41wbh-{0}-c2jlpeoesf-c2jlpeoesf.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\ny3xbgedo0-{0}-erw9l3u2r3-erw9l3u2r3.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\yyzux970us-{0}-aexeepp0ev-aexeepp0ev.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\s8tfmvcl6l-{0}-d7shbmvgxk-d7shbmvgxk.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\buy0lgnna4-{0}-ausgxo2sd3-ausgxo2sd3.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\rftpckz71e-{0}-k8d9w2qqmf-k8d9w2qqmf.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\1xufxwh45d-{0}-cosvhxvwiu-cosvhxvwiu.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\110gjqadz3-{0}-ub07r2b239-ub07r2b239.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\moveir2wlt-{0}-fvhpjtyr6v-fvhpjtyr6v.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\i5gc3220r3-{0}-b7pk76d08c-b7pk76d08c.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\xhunqdkvqb-{0}-fsbi9cje9m-fsbi9cje9m.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\gomvvqnjlm-{0}-rzd6atqjts-rzd6atqjts.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\c34v41vs4l-{0}-ee0r1s7dh0-ee0r1s7dh0.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\0p7lrldjgj-{0}-dxx9fxp4il-dxx9fxp4il.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\0auc0xnlsy-{0}-jd9uben2k1-jd9uben2k1.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\pbeu27ik9w-{0}-khv3u5hwcm-khv3u5hwcm.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\79raj0bcrr-{0}-r4e9w2rdcm-r4e9w2rdcm.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\jqrauj2svw-{0}-lcd1t2u6c8-lcd1t2u6c8.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\pj5n2mkkzw-{0}-c2oey78nd0-c2oey78nd0.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\dt9lb9me9i-{0}-tdbxkamptv-tdbxkamptv.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\lwh7ckeki7-{0}-j5mq2jizvt-j5mq2jizvt.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\4cblaxq6jh-{0}-06098lyss8-06098lyss8.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\44s2eqp64d-{0}-nvvlpmu67g-nvvlpmu67g.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\gcxof6xqvd-{0}-s35ty4nyc5-s35ty4nyc5.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\z9wv7fs72k-{0}-pj5nd1wqec-pj5nd1wqec.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\4072jq1i2h-{0}-46ein0sx1k-46ein0sx1k.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\a4eqfiv3ub-{0}-v0zj4ognzu-v0zj4ognzu.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\rg0bjkw6wb-{0}-37tfw0ft22-37tfw0ft22.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\jomvpxly64-{0}-hrwsygsryq-hrwsygsryq.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\u4l44l4mup-{0}-pk9g2wxc8p-pk9g2wxc8p.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\s45yklcy5s-{0}-ft3s53vfgj-ft3s53vfgj.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\ryegp6ubqi-{0}-6cfz1n2cew-6cfz1n2cew.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\gfm26p5c1q-{0}-6pdc2jztkx-6pdc2jztkx.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\wh1z5habmz-{0}-493y06b0oq-493y06b0oq.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\oog3rser0x-{0}-iovd86k7lj-iovd86k7lj.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\dd5v02aqjc-{0}-vr1egmr9el-vr1egmr9el.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\61rmegrlmv-{0}-kbrnm935zg-kbrnm935zg.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\0x3oeluflx-{0}-jj8uyg4cgr-jj8uyg4cgr.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\h7pf8rqo63-{0}-y7v9cxd14o-y7v9cxd14o.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\a1937s5xj1-{0}-notf2xhcfb-notf2xhcfb.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\a7rq2yiqop-{0}-h1s4sie4z3-h1s4sie4z3.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\ykh8zi7pka-{0}-63fj8s7r0e-63fj8s7r0e.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\8q9g0t5yrl-{0}-0j3bgjxly4-0j3bgjxly4.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\t9yb5ynpxl-{0}-13ja33weya-13ja33weya.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\nr5locadir-{0}-j8lzlu28q6-j8lzlu28q6.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\dym80g6kqp-{0}-u1n4jc5v46-u1n4jc5v46.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\b7jn6yc0gz-{0}-yi314np04p-yi314np04p.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\vpvw6nj9ax-{0}-yi314np04p-yi314np04p.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\staticwebassets.build.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\staticwebassets.build.json.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\staticwebassets.development.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\staticwebassets.build.endpoints.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\swae.build.ex.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEng.C85672E0.Up2Date
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\refint\QuantEngine.Web.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.genruntimeconfig.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\ref\QuantEngine.Web.dll
@@ -0,0 +1,106 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"QuantEngine.Web/1.0.0": {
"dependencies": {
"QuantEngine.Application": "1.0.0",
"QuantEngine.Core": "1.0.0",
"QuantEngine.Infrastructure": "1.0.0"
},
"runtime": {
"QuantEngine.Web.dll": {}
}
},
"Dapper/2.1.79": {
"runtime": {
"lib/net10.0/Dapper.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.1.79.29349"
}
}
},
"Npgsql/10.0.3": {
"runtime": {
"lib/net10.0/Npgsql.dll": {
"assemblyVersion": "10.0.3.0",
"fileVersion": "10.0.3.0"
}
}
},
"QuantEngine.Application/1.0.0": {
"dependencies": {
"QuantEngine.Core": "1.0.0"
},
"runtime": {
"QuantEngine.Application.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"QuantEngine.Core/1.0.0": {
"runtime": {
"QuantEngine.Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"QuantEngine.Infrastructure/1.0.0": {
"dependencies": {
"Dapper": "2.1.79",
"Npgsql": "10.0.3",
"QuantEngine.Application": "1.0.0",
"QuantEngine.Core": "1.0.0"
},
"runtime": {
"QuantEngine.Infrastructure.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"QuantEngine.Web/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Dapper/2.1.79": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8YijbzgTfmqmQOnVNorYM6K++pxqnW3nJ4aC1sRHzxUA2CcuoJ9gsTem3kgBnPRMc38zZHl4Esb6hAezXIEEuw==",
"path": "dapper/2.1.79",
"hashPath": "dapper.2.1.79.nupkg.sha512"
},
"Npgsql/10.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
"path": "npgsql/10.0.3",
"hashPath": "npgsql.10.0.3.nupkg.sha512"
},
"QuantEngine.Application/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"QuantEngine.Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"QuantEngine.Infrastructure/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1 @@
d038a50746ad168e1c90765ed0683d2537c25f6ce6333eeffb26ca7928fe55e9
@@ -0,0 +1 @@
c191116d98f872b4c31459c86fbbaf1965514a4911b1e740988e87bc2098d4c6
@@ -0,0 +1,9 @@
// <auto-generated/>
namespace Microsoft.Extensions.Validation.Embedded
{
[global::Microsoft.CodeAnalysis.EmbeddedAttribute]
[global::System.AttributeUsage(global::System.AttributeTargets.Class)]
internal sealed class ValidatableTypeAttribute : global::System.Attribute
{
}
}

Some files were not shown because too many files have changed in this diff Show More