diff --git a/.gitignore b/.gitignore
index 993e10c..866fbb2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,8 @@
dujiaoka-master/
Vmianqian/
.vs
-.idea
\ No newline at end of file
+.idea
+bin_proxycheck/
+bin/Debug/*
+bin/Output/*
+bin/Release/*
diff --git a/AlipayMonitor.cs b/AlipayMonitor.cs
index 855d524..f41db26 100644
--- a/AlipayMonitor.cs
+++ b/AlipayMonitor.cs
@@ -159,6 +159,29 @@ public sealed class AlipayMonitorOptions
/// 轮询时默认回查最近多少天的账单。
///
public int QueryDays { get; set; } = 1;
+
+ ///
+ /// 可选:支付宝账号。
+ /// 仅用于 WebView2 登录页自动填充,不参与后台 HttpClient 直登。
+ ///
+ public string Account { get; set; } = string.Empty;
+
+ ///
+ /// 可选:支付宝密码。
+ /// 仅用于 WebView2 登录页自动填充,不参与后台 HttpClient 直登。
+ ///
+ public string Password { get; set; } = string.Empty;
+
+ ///
+ /// 是否启用自动填充账号密码。
+ /// 启用后,程序会在 WebView2 登录页尝试:
+ /// 1. 切换到密码登录
+ /// 2. 自动填入账号
+ /// 3. 自动填入密码
+ /// 4. 自动点击登录按钮
+ /// 若遇到滑块、短信、人机校验,仍需用户手动处理。
+ ///
+ public bool EnableAutoFill { get; set; }
}
///
@@ -1450,7 +1473,7 @@ public sealed class AlipayLoginForm : Form
private string _detectedCtoken = string.Empty;
private bool _loginEventRaised;
private bool _navigatedToBillPage;
- private bool _waitingSecurityVerify;
+ private bool _autoFillAttempted;
///
/// 当检测到登录成功并提取到 Cookie 后触发。
@@ -1506,7 +1529,9 @@ public sealed class AlipayLoginForm : Form
_webView.CoreWebView2.DOMContentLoaded += CoreWebView2_DOMContentLoaded;
_webView.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
- _statusLabel.Text = "请使用支付宝扫码登录。";
+ _statusLabel.Text = _options.EnableAutoFill
+ ? "正在打开支付宝登录页,将自动尝试账号密码登录;若出现验证,请手动完成。"
+ : "请使用支付宝扫码登录。";
_webView.CoreWebView2.Navigate(_options.LoginUrl);
}
catch (Exception ex)
@@ -1581,7 +1606,6 @@ public sealed class AlipayLoginForm : Form
if (IsSecurityVerifyUrl(currentUrl))
{
- _waitingSecurityVerify = true;
_statusLabel.Text = "支付宝触发安全校验,请在当前页面完成验证,完成后程序会自动继续。";
StatusChanged?.Invoke(this, new AlipayStatusChangedEventArgs
{
@@ -1593,7 +1617,6 @@ public sealed class AlipayLoginForm : Form
if (IsBillReadyUrl(currentUrl))
{
- _waitingSecurityVerify = false;
await TryExtractCookiesAndRaiseAsync(currentUrl);
return;
}
@@ -1641,12 +1664,7 @@ public sealed class AlipayLoginForm : Form
""";
var result = await core.ExecuteScriptAsync(script);
- if (string.IsNullOrWhiteSpace(result))
- {
- return;
- }
-
- var json = JsonSerializer.Deserialize(result);
+ var json = ExtractWebViewJsonPayload(result);
if (string.IsNullOrWhiteSpace(json))
{
return;
@@ -1661,14 +1679,14 @@ public sealed class AlipayLoginForm : Form
if (IsSecurityVerifyUrl(currentUrl))
{
- _waitingSecurityVerify = true;
_statusLabel.Text = "支付宝触发安全校验,请在当前页面完成验证,完成后程序会自动继续。";
return;
}
+ await TryAutoFillLoginAsync(currentUrl);
+
if (IsBillReadyUrl(currentUrl))
{
- _waitingSecurityVerify = false;
await TryExtractCookiesAndRaiseAsync(currentUrl);
return;
}
@@ -1692,6 +1710,415 @@ public sealed class AlipayLoginForm : Form
}
}
+ ///
+ /// 在 WebView2 登录页尝试自动填充账号密码并点击登录。
+ /// 注意:
+ /// 1. 支付宝登录页 DOM 可能随版本变化,本方法采用“多选择器 + 页面文本”策略尽量兼容;
+ /// 2. 若页面出现滑块、短信、人机验证,本方法不会强行绕过,只会提示用户手动接管;
+ /// 3. 为避免重复点击,本方法整个登录流程只自动尝试一次。
+ ///
+ private async Task TryAutoFillLoginAsync(string currentUrl)
+ {
+ if (_autoFillAttempted ||
+ !_options.EnableAutoFill ||
+ _webView.CoreWebView2 == null ||
+ IsDisposed)
+ {
+ return;
+ }
+
+ if (string.IsNullOrWhiteSpace(_options.Account) || string.IsNullOrWhiteSpace(_options.Password))
+ {
+ return;
+ }
+
+ if (IsBillReadyUrl(currentUrl) || IsSecurityVerifyUrl(currentUrl))
+ {
+ return;
+ }
+
+ try
+ {
+ var submitted = false;
+ var partialFilled = false;
+ var switchedToPasswordLogin = false;
+
+ for (var attempt = 1; attempt <= 10; attempt++)
+ {
+ if (_webView.CoreWebView2 == null || IsDisposed)
+ {
+ return;
+ }
+
+ var script = $$"""
+ (async () => {
+ const result = {
+ switched: false,
+ accountFilled: false,
+ passwordFilled: false,
+ clicked: false,
+ hasAccountInput: false,
+ hasPasswordInput: false,
+ pageText: document.body ? document.body.innerText : "",
+ title: document.title || "",
+ href: location.href
+ };
+
+ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
+
+ function setNativeValue(element, value) {
+ if (!element) return false;
+
+ const prototype = Object.getPrototypeOf(element);
+ const descriptor = prototype
+ ? Object.getOwnPropertyDescriptor(prototype, 'value')
+ : null;
+
+ if (descriptor && descriptor.set) {
+ descriptor.set.call(element, value);
+ } else {
+ element.value = value;
+ }
+
+ element.dispatchEvent(new Event('input', { bubbles: true }));
+ element.dispatchEvent(new Event('change', { bubbles: true }));
+ element.dispatchEvent(new Event('blur', { bubbles: true }));
+ return true;
+ }
+
+ function isVisible(element) {
+ if (!element) return false;
+ const style = window.getComputedStyle(element);
+ return style.display !== 'none' &&
+ style.visibility !== 'hidden' &&
+ style.opacity !== '0' &&
+ !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ }
+
+ function normalizeText(element) {
+ return (element?.innerText || element?.textContent || element?.value || '')
+ .replace(/\s+/g, '')
+ .trim();
+ }
+
+ function triggerMouseClick(element) {
+ if (!element || !isVisible(element)) return false;
+
+ try { element.scrollIntoView({ block: 'center', inline: 'center' }); } catch {}
+ try { element.focus(); } catch {}
+
+ for (const eventName of ['pointerdown', 'mousedown', 'pointerup', 'mouseup', 'click']) {
+ try {
+ element.dispatchEvent(new MouseEvent(eventName, {
+ bubbles: true,
+ cancelable: true,
+ composed: true,
+ view: window
+ }));
+ } catch {}
+ }
+
+ try { element.click(); } catch {}
+ return true;
+ }
+
+ function clickElementOrAncestors(element, maxDepth = 4) {
+ let current = element;
+ let depth = 0;
+
+ while (current && depth <= maxDepth) {
+ if (triggerMouseClick(current)) {
+ return true;
+ }
+
+ current = current.parentElement;
+ depth++;
+ }
+
+ return false;
+ }
+
+ function findPasswordLoginTrigger() {
+ const keywords = [
+ '账号密码',
+ '账号密码登录',
+ '账密登录',
+ '密码登录',
+ '切换到密码登录',
+ '手机密码登录'
+ ];
+
+ const selectors = [
+ '[data-status="show_login"]',
+ '[data-role*="password"]',
+ '[data-role*="login"]',
+ '[class*="password"]',
+ '[class*="login"]',
+ '[class*="tab"]',
+ '[class*="switch"]',
+ '[id*="password"]',
+ '[id*="login"]',
+ '[id*="tab"]',
+ 'a',
+ 'button',
+ 'div',
+ 'span',
+ 'li'
+ ];
+
+ for (const selector of selectors) {
+ const elements = [...document.querySelectorAll(selector)];
+ const found = elements.find(el => {
+ if (!isVisible(el)) return false;
+ const text = normalizeText(el);
+ return keywords.some(keyword => text.includes(keyword));
+ });
+
+ if (found) {
+ return found;
+ }
+ }
+
+ return null;
+ }
+
+ function findFirstVisible(selectors) {
+ for (const selector of selectors) {
+ const list = [...document.querySelectorAll(selector)];
+ const found = list.find(isVisible);
+ if (found) return found;
+ }
+
+ return null;
+ }
+
+ function findLoginButton() {
+ const selectors = [
+ 'button[type="submit"]',
+ 'input[type="submit"]',
+ 'button',
+ 'input[type="button"]',
+ 'a',
+ 'div'
+ ];
+
+ const keywords = ['登录', '立即登录', '确认登录', '下一步'];
+
+ for (const selector of selectors) {
+ const elements = [...document.querySelectorAll(selector)];
+ const found = elements.find(el => {
+ if (!isVisible(el)) return false;
+
+ const text = normalizeText(el);
+ if (!keywords.some(keyword => text.includes(keyword))) return false;
+
+ const rect = el.getBoundingClientRect();
+ return rect.width >= 40 && rect.height >= 24;
+ });
+
+ if (found) {
+ return found;
+ }
+ }
+
+ return null;
+ }
+
+ const passwordTrigger = findPasswordLoginTrigger();
+ if (passwordTrigger) {
+ result.switched = clickElementOrAncestors(passwordTrigger, 5);
+ await sleep(350);
+ }
+
+ const accountSelectors = [
+ 'input[name="loginId"]',
+ 'input[name="account"]',
+ 'input[name="username"]',
+ 'input[name="userName"]',
+ 'input[name="user-id"]',
+ 'input[id*="loginId"]',
+ 'input[id*="account"]',
+ 'input[id*="user"]',
+ 'input[placeholder*="账号"]',
+ 'input[placeholder*="手机号"]',
+ 'input[placeholder*="邮箱"]',
+ 'input[autocomplete="username"]',
+ 'input[type="text"]',
+ 'input:not([type])'
+ ];
+
+ const passwordSelectors = [
+ 'input[name="password"]',
+ 'input[id*="password"]',
+ 'input[placeholder*="密码"]',
+ 'input[type="password"]',
+ 'input[autocomplete="current-password"]'
+ ];
+
+ const accountInput = findFirstVisible(accountSelectors);
+ const passwordInput = findFirstVisible(passwordSelectors);
+
+ result.hasAccountInput = !!accountInput;
+ result.hasPasswordInput = !!passwordInput;
+
+ if (accountInput) {
+ accountInput.focus();
+ result.accountFilled = setNativeValue(accountInput, {{JsonSerializer.Serialize(_options.Account)}});
+ try { accountInput.blur(); } catch {}
+ }
+
+ if (passwordInput) {
+ passwordInput.focus();
+ result.passwordFilled = setNativeValue(passwordInput, {{JsonSerializer.Serialize(_options.Password)}});
+ try { passwordInput.blur(); } catch {}
+ }
+
+ if (result.accountFilled && result.passwordFilled) {
+ await sleep(300);
+ }
+
+ let loginButton = findLoginButton();
+
+ if (loginButton && result.accountFilled && result.passwordFilled) {
+ result.clicked = clickElementOrAncestors(loginButton, 4);
+ }
+
+ if (!result.clicked && passwordInput && result.accountFilled && result.passwordFilled) {
+ try {
+ passwordInput.focus();
+ passwordInput.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, key: 'Enter', code: 'Enter' }));
+ passwordInput.dispatchEvent(new KeyboardEvent('keypress', { bubbles: true, key: 'Enter', code: 'Enter' }));
+ passwordInput.dispatchEvent(new KeyboardEvent('keyup', { bubbles: true, key: 'Enter', code: 'Enter' }));
+ } catch {}
+ }
+
+ if (!result.clicked && result.accountFilled && result.passwordFilled) {
+ loginButton = findLoginButton();
+ const form = passwordInput?.form || accountInput?.form || loginButton?.closest?.('form') || null;
+ if (form) {
+ try {
+ if (typeof form.requestSubmit === 'function') {
+ form.requestSubmit();
+ } else {
+ form.submit();
+ }
+ result.clicked = true;
+ } catch {}
+ }
+ }
+
+ result.href = location.href;
+ result.pageText = document.body ? document.body.innerText : "";
+ return JSON.stringify(result);
+ })();
+ """;
+
+ var raw = await _webView.CoreWebView2.ExecuteScriptAsync(script);
+ var json = ExtractWebViewJsonPayload(raw);
+
+ if (!string.IsNullOrWhiteSpace(json))
+ {
+ using var doc = JsonDocument.Parse(json);
+ var root = doc.RootElement;
+
+ var switched = root.TryGetProperty("switched", out var switchedProp) && switchedProp.GetBoolean();
+ var accountFilled = root.TryGetProperty("accountFilled", out var accountProp) && accountProp.GetBoolean();
+ var passwordFilled = root.TryGetProperty("passwordFilled", out var passwordProp) && passwordProp.GetBoolean();
+ var clicked = root.TryGetProperty("clicked", out var clickedProp) && clickedProp.GetBoolean();
+ var hasAccountInput = root.TryGetProperty("hasAccountInput", out var hasAccountProp) && hasAccountProp.GetBoolean();
+ var hasPasswordInput = root.TryGetProperty("hasPasswordInput", out var hasPasswordProp) && hasPasswordProp.GetBoolean();
+
+ switchedToPasswordLogin |= switched;
+ partialFilled |= accountFilled || passwordFilled;
+
+ if (clicked && accountFilled && passwordFilled)
+ {
+ submitted = true;
+ }
+
+ if ((switched || hasAccountInput || hasPasswordInput) && attempt < 10)
+ {
+ _statusLabel.Text = $"已识别支付宝登录页,正在自动切换账密登录并填充信息(第 {attempt}/10 次尝试)……";
+ }
+ }
+
+ if (submitted)
+ {
+ await Task.Delay(1200);
+ break;
+ }
+
+ await Task.Delay(800);
+ }
+
+ _autoFillAttempted = true;
+
+ if (submitted)
+ {
+ _statusLabel.Text = "已自动点击账密登录、填充账号密码并提交,若出现验证请手动完成。";
+ StatusChanged?.Invoke(this, new AlipayStatusChangedEventArgs
+ {
+ StatusCode = "AutoFillSubmitted",
+ Message = "支付宝登录页已自动切换账密登录、填充账号密码并提交登录。"
+ });
+ }
+ else if (partialFilled || switchedToPasswordLogin)
+ {
+ _statusLabel.Text = "已尝试切换账密登录并部分填充,请确认页面后手动继续。";
+ StatusChanged?.Invoke(this, new AlipayStatusChangedEventArgs
+ {
+ StatusCode = "AutoFillPartial",
+ Message = "支付宝登录页已尝试切换账密登录并部分自动填充,请人工确认并继续。"
+ });
+ }
+ else
+ {
+ _statusLabel.Text = "当前页面未识别到账密登录表单,请手动切换并登录。";
+ StatusChanged?.Invoke(this, new AlipayStatusChangedEventArgs
+ {
+ StatusCode = "AutoFillSkipped",
+ Message = "当前支付宝页面未识别到密码登录表单,已切换为人工登录模式。"
+ });
+ }
+ }
+ catch (Exception ex)
+ {
+ StatusChanged?.Invoke(this, new AlipayStatusChangedEventArgs
+ {
+ StatusCode = "Warn",
+ Message = $"自动填充支付宝登录信息失败,已切换为人工登录:{ex.Message}",
+ Exception = ex
+ });
+ }
+ }
+
+ private static string ExtractWebViewJsonPayload(string? scriptResult)
+ {
+ if (string.IsNullOrWhiteSpace(scriptResult))
+ {
+ return string.Empty;
+ }
+
+ try
+ {
+ using var doc = JsonDocument.Parse(scriptResult);
+ return doc.RootElement.ValueKind switch
+ {
+ JsonValueKind.String => doc.RootElement.GetString() ?? string.Empty,
+ JsonValueKind.Object => doc.RootElement.GetRawText(),
+ JsonValueKind.Array => doc.RootElement.GetRawText(),
+ JsonValueKind.True => "true",
+ JsonValueKind.False => "false",
+ JsonValueKind.Number => doc.RootElement.ToString(),
+ _ => string.Empty
+ };
+ }
+ catch
+ {
+ return scriptResult.Trim();
+ }
+ }
+
private async Task TryNavigateToBillPageBeforeExtractAsync(string currentUrl)
{
if (_webView.CoreWebView2 == null || _navigatedToBillPage)
diff --git a/Form1.Designer.cs b/Form1.Designer.cs
index 4c783b8..6c0c69a 100644
--- a/Form1.Designer.cs
+++ b/Form1.Designer.cs
@@ -40,6 +40,7 @@ namespace Vmianqian
homeSummaryCard = new System.Windows.Forms.Panel();
lblSummaryTitle = new AntdUI.Label();
lblSummaryDesc = new AntdUI.Label();
+ btnCheckUpdate = new AntdUI.Button();
homeConfigCard = new System.Windows.Forms.Panel();
btnSaveConfig = new AntdUI.Button();
btnHeartbeatCheck = new AntdUI.Button();
@@ -50,7 +51,11 @@ namespace Vmianqian
lblApiKeyTitle = new AntdUI.Label();
txtApiKey = new Input();
homeMemberCard = new System.Windows.Forms.Panel();
- lblMemberPlaceholder = new AntdUI.Label();
+ btnActivate = new AntdUI.Button();
+ txtActivationCode = new Input();
+ lblActivationCodeTitle = new AntdUI.Label();
+ btnCopyDeviceCode = new AntdUI.Button();
+ label3 = new AntdUI.Label();
homeLogCard = new System.Windows.Forms.Panel();
btnClearLog = new AntdUI.Button();
txtLog = new TextBox();
@@ -107,6 +112,14 @@ namespace Vmianqian
txtNotifyEmail = new Input();
lblEmailAuthCodeTitle = new AntdUI.Label();
txtEmailAuthCode = new Input();
+ settingsAlipayCard = new System.Windows.Forms.Panel();
+ btnAlipayAccountSave = new AntdUI.Button();
+ chkAlipayAutoFill = new Switch();
+ lblAlipayAutoFillTitle = new AntdUI.Label();
+ lblAlipayAccountTitle = new AntdUI.Label();
+ txtAlipayAccount = new Input();
+ lblAlipayPasswordTitle = new AntdUI.Label();
+ txtAlipayPassword = new Input();
titlebar = new PageHeader();
lblTopNotice = new AntdUI.Label();
lblAlipayStatusValue = new AntdUI.Label();
@@ -116,10 +129,10 @@ namespace Vmianqian
buttonCollapse = new AntdUI.Button();
menu = new AntdUI.Menu();
contentHost = new System.Windows.Forms.Panel();
- pageAlipay = new System.Windows.Forms.Panel();
- pageWechat = new System.Windows.Forms.Panel();
pageHome = new System.Windows.Forms.Panel();
pageSettings = new System.Windows.Forms.Panel();
+ pageAlipay = new System.Windows.Forms.Panel();
+ pageWechat = new System.Windows.Forms.Panel();
homeSummaryCard.SuspendLayout();
homeConfigCard.SuspendLayout();
homeMemberCard.SuspendLayout();
@@ -134,13 +147,14 @@ namespace Vmianqian
alipayLogCard.SuspendLayout();
((System.ComponentModel.ISupportInitialize)gridAlipayLogs).BeginInit();
settingsEmailCard.SuspendLayout();
+ settingsAlipayCard.SuspendLayout();
titlebar.SuspendLayout();
bottomBar.SuspendLayout();
contentHost.SuspendLayout();
- pageAlipay.SuspendLayout();
- pageWechat.SuspendLayout();
pageHome.SuspendLayout();
pageSettings.SuspendLayout();
+ pageAlipay.SuspendLayout();
+ pageWechat.SuspendLayout();
SuspendLayout();
//
// homeSummaryCard
@@ -148,6 +162,7 @@ namespace Vmianqian
homeSummaryCard.BackColor = Color.White;
homeSummaryCard.Controls.Add(lblSummaryTitle);
homeSummaryCard.Controls.Add(lblSummaryDesc);
+ homeSummaryCard.Controls.Add(btnCheckUpdate);
homeSummaryCard.Location = new Point(20, 23);
homeSummaryCard.Name = "homeSummaryCard";
homeSummaryCard.Size = new Size(960, 100);
@@ -171,7 +186,20 @@ namespace Vmianqian
lblSummaryDesc.Name = "lblSummaryDesc";
lblSummaryDesc.Size = new Size(899, 32);
lblSummaryDesc.TabIndex = 1;
- lblSummaryDesc.Text = "当前阶段先打通“PC端本地监听 -> V免签服务端回调 -> 心跳检测”链路,整体布局按 AntdUI Demo 风格复刻。";
+ lblSummaryDesc.Text = "这是v0.0.2版本的软件";
+ //
+ // btnCheckUpdate
+ //
+ btnCheckUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ btnCheckUpdate.BorderWidth = 2F;
+ btnCheckUpdate.Ghost = true;
+ btnCheckUpdate.Location = new Point(844, 24);
+ btnCheckUpdate.Name = "btnCheckUpdate";
+ btnCheckUpdate.Size = new Size(92, 36);
+ btnCheckUpdate.TabIndex = 2;
+ btnCheckUpdate.Text = "检查更新";
+ btnCheckUpdate.Type = TTypeMini.Primary;
+ btnCheckUpdate.Click += btnCheckUpdate_Click;
//
// homeConfigCard
//
@@ -265,21 +293,64 @@ namespace Vmianqian
// homeMemberCard
//
homeMemberCard.BackColor = Color.White;
- homeMemberCard.Controls.Add(lblMemberPlaceholder);
+ homeMemberCard.Controls.Add(btnActivate);
+ homeMemberCard.Controls.Add(txtActivationCode);
+ homeMemberCard.Controls.Add(lblActivationCodeTitle);
+ homeMemberCard.Controls.Add(btnCopyDeviceCode);
+ homeMemberCard.Controls.Add(label3);
homeMemberCard.Location = new Point(510, 141);
homeMemberCard.Name = "homeMemberCard";
homeMemberCard.Size = new Size(470, 280);
homeMemberCard.TabIndex = 1;
homeMemberCard.Tag = "home-member";
//
- // lblMemberPlaceholder
+ // btnActivate
//
- lblMemberPlaceholder.ForeColor = Color.DimGray;
- lblMemberPlaceholder.Location = new Point(24, 20);
- lblMemberPlaceholder.Name = "lblMemberPlaceholder";
- lblMemberPlaceholder.Size = new Size(429, 52);
- lblMemberPlaceholder.TabIndex = 0;
- lblMemberPlaceholder.Text = "预留区域:后续用于会员登录、设备绑定、解绑与状态展示。";
+ btnActivate.Location = new Point(358, 64);
+ btnActivate.Name = "btnActivate";
+ btnActivate.Size = new Size(92, 40);
+ btnActivate.TabIndex = 0;
+ btnActivate.Text = "激活";
+ btnActivate.Type = TTypeMini.Primary;
+ btnActivate.Click += btnActivate_Click;
+ //
+ // txtActivationCode
+ //
+ txtActivationCode.Location = new Point(74, 64);
+ txtActivationCode.Name = "txtActivationCode";
+ txtActivationCode.PlaceholderText = "请输入激活码";
+ txtActivationCode.Size = new Size(276, 40);
+ txtActivationCode.TabIndex = 1;
+ //
+ // lblActivationCodeTitle
+ //
+ lblActivationCodeTitle.AutoSizeMode = TAutoSize.Auto;
+ lblActivationCodeTitle.Location = new Point(21, 76);
+ lblActivationCodeTitle.Name = "lblActivationCodeTitle";
+ lblActivationCodeTitle.Size = new Size(36, 16);
+ lblActivationCodeTitle.TabIndex = 2;
+ lblActivationCodeTitle.Text = "激活码";
+ //
+ // btnCopyDeviceCode
+ //
+ btnCopyDeviceCode.BorderWidth = 2F;
+ btnCopyDeviceCode.Ghost = true;
+ btnCopyDeviceCode.Location = new Point(358, 18);
+ btnCopyDeviceCode.Name = "btnCopyDeviceCode";
+ btnCopyDeviceCode.Size = new Size(92, 36);
+ btnCopyDeviceCode.TabIndex = 3;
+ btnCopyDeviceCode.Text = "复制";
+ btnCopyDeviceCode.Type = TTypeMini.Primary;
+ btnCopyDeviceCode.Click += btnCopyDeviceCode_Click;
+ //
+ // label3
+ //
+ label3.ForeColor = Color.FromArgb(38, 38, 38);
+ label3.Location = new Point(21, 20);
+ label3.Name = "label3";
+ label3.Size = new Size(329, 36);
+ label3.TabIndex = 4;
+ label3.Text = "设备号:读取中...";
//
// homeLogCard
//
@@ -872,6 +943,83 @@ namespace Vmianqian
txtEmailAuthCode.Size = new Size(250, 55);
txtEmailAuthCode.TabIndex = 11;
//
+ // settingsAlipayCard
+ //
+ settingsAlipayCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+ settingsAlipayCard.BackColor = Color.White;
+ settingsAlipayCard.Controls.Add(btnAlipayAccountSave);
+ settingsAlipayCard.Controls.Add(chkAlipayAutoFill);
+ settingsAlipayCard.Controls.Add(lblAlipayAutoFillTitle);
+ settingsAlipayCard.Controls.Add(lblAlipayAccountTitle);
+ settingsAlipayCard.Controls.Add(txtAlipayAccount);
+ settingsAlipayCard.Controls.Add(lblAlipayPasswordTitle);
+ settingsAlipayCard.Controls.Add(txtAlipayPassword);
+ settingsAlipayCard.Location = new Point(624, 23);
+ settingsAlipayCard.Name = "settingsAlipayCard";
+ settingsAlipayCard.Size = new Size(361, 395);
+ settingsAlipayCard.TabIndex = 0;
+ settingsAlipayCard.Tag = "settings-listen";
+ //
+ // btnAlipayAccountSave
+ //
+ btnAlipayAccountSave.Location = new Point(24, 325);
+ btnAlipayAccountSave.Name = "btnAlipayAccountSave";
+ btnAlipayAccountSave.Size = new Size(120, 42);
+ btnAlipayAccountSave.TabIndex = 0;
+ btnAlipayAccountSave.Text = "保存支付宝配置";
+ btnAlipayAccountSave.Type = TTypeMini.Primary;
+ btnAlipayAccountSave.Click += btnAlipayAccountSave_Click;
+ //
+ // chkAlipayAutoFill
+ //
+ chkAlipayAutoFill.Location = new Point(24, 274);
+ chkAlipayAutoFill.Name = "chkAlipayAutoFill";
+ chkAlipayAutoFill.Size = new Size(62, 32);
+ chkAlipayAutoFill.TabIndex = 1;
+ //
+ // lblAlipayAutoFillTitle
+ //
+ lblAlipayAutoFillTitle.AutoSizeMode = TAutoSize.Auto;
+ lblAlipayAutoFillTitle.Location = new Point(95, 280);
+ lblAlipayAutoFillTitle.Name = "lblAlipayAutoFillTitle";
+ lblAlipayAutoFillTitle.Size = new Size(144, 16);
+ lblAlipayAutoFillTitle.TabIndex = 2;
+ lblAlipayAutoFillTitle.Text = "启用账号密码自动填充登录";
+ //
+ // lblAlipayAccountTitle
+ //
+ lblAlipayAccountTitle.AutoSizeMode = TAutoSize.Auto;
+ lblAlipayAccountTitle.Location = new Point(24, 21);
+ lblAlipayAccountTitle.Name = "lblAlipayAccountTitle";
+ lblAlipayAccountTitle.Size = new Size(60, 16);
+ lblAlipayAccountTitle.TabIndex = 3;
+ lblAlipayAccountTitle.Text = "支付宝账号";
+ //
+ // txtAlipayAccount
+ //
+ txtAlipayAccount.Location = new Point(24, 49);
+ txtAlipayAccount.Name = "txtAlipayAccount";
+ txtAlipayAccount.PlaceholderText = "请输入支付宝登录账号";
+ txtAlipayAccount.Size = new Size(250, 55);
+ txtAlipayAccount.TabIndex = 4;
+ //
+ // lblAlipayPasswordTitle
+ //
+ lblAlipayPasswordTitle.AutoSizeMode = TAutoSize.Auto;
+ lblAlipayPasswordTitle.Location = new Point(24, 116);
+ lblAlipayPasswordTitle.Name = "lblAlipayPasswordTitle";
+ lblAlipayPasswordTitle.Size = new Size(60, 16);
+ lblAlipayPasswordTitle.TabIndex = 5;
+ lblAlipayPasswordTitle.Text = "支付宝密码";
+ //
+ // txtAlipayPassword
+ //
+ txtAlipayPassword.Location = new Point(24, 144);
+ txtAlipayPassword.Name = "txtAlipayPassword";
+ txtAlipayPassword.PlaceholderText = "请输入支付宝登录密码";
+ txtAlipayPassword.Size = new Size(250, 55);
+ txtAlipayPassword.TabIndex = 6;
+ //
// titlebar
//
titlebar.Controls.Add(lblTopNotice);
@@ -879,6 +1027,7 @@ namespace Vmianqian
titlebar.Controls.Add(lblWechatStatusValue);
titlebar.DividerShow = true;
titlebar.Dock = DockStyle.Top;
+ titlebar.Icon = Properties.Resources.logo;
titlebar.Location = new Point(0, 0);
titlebar.Name = "titlebar";
titlebar.ShowButton = true;
@@ -977,16 +1126,44 @@ namespace Vmianqian
// contentHost
//
contentHost.BackColor = Color.White;
- contentHost.Controls.Add(pageAlipay);
- contentHost.Controls.Add(pageWechat);
contentHost.Controls.Add(pageHome);
contentHost.Controls.Add(pageSettings);
+ contentHost.Controls.Add(pageAlipay);
+ contentHost.Controls.Add(pageWechat);
contentHost.Dock = DockStyle.Fill;
contentHost.Location = new Point(192, 44);
contentHost.Name = "contentHost";
contentHost.Size = new Size(1008, 916);
contentHost.TabIndex = 0;
//
+ // pageHome
+ //
+ pageHome.AutoScroll = true;
+ pageHome.BackColor = Color.FromArgb(245, 247, 250);
+ pageHome.Controls.Add(homeLogCard);
+ pageHome.Controls.Add(homeSummaryCard);
+ pageHome.Controls.Add(homeMemberCard);
+ pageHome.Controls.Add(homeConfigCard);
+ pageHome.Dock = DockStyle.Fill;
+ pageHome.Location = new Point(0, 0);
+ pageHome.Name = "pageHome";
+ pageHome.Padding = new Padding(20);
+ pageHome.Size = new Size(1008, 916);
+ pageHome.TabIndex = 3;
+ //
+ // pageSettings
+ //
+ pageSettings.AutoScroll = true;
+ pageSettings.BackColor = Color.FromArgb(245, 247, 250);
+ pageSettings.Controls.Add(settingsAlipayCard);
+ pageSettings.Controls.Add(settingsEmailCard);
+ pageSettings.Dock = DockStyle.Fill;
+ pageSettings.Location = new Point(0, 0);
+ pageSettings.Name = "pageSettings";
+ pageSettings.Padding = new Padding(20);
+ pageSettings.Size = new Size(1008, 916);
+ pageSettings.TabIndex = 0;
+ //
// pageAlipay
//
pageAlipay.AutoScroll = true;
@@ -1012,33 +1189,6 @@ namespace Vmianqian
pageWechat.Size = new Size(1008, 916);
pageWechat.TabIndex = 2;
//
- // pageHome
- //
- pageHome.AutoScroll = true;
- pageHome.BackColor = Color.FromArgb(245, 247, 250);
- pageHome.Controls.Add(homeLogCard);
- pageHome.Controls.Add(homeSummaryCard);
- pageHome.Controls.Add(homeMemberCard);
- pageHome.Controls.Add(homeConfigCard);
- pageHome.Dock = DockStyle.Fill;
- pageHome.Location = new Point(0, 0);
- pageHome.Name = "pageHome";
- pageHome.Padding = new Padding(20);
- pageHome.Size = new Size(1008, 916);
- pageHome.TabIndex = 3;
- //
- // pageSettings
- //
- pageSettings.AutoScroll = true;
- pageSettings.BackColor = Color.FromArgb(245, 247, 250);
- pageSettings.Controls.Add(settingsEmailCard);
- pageSettings.Dock = DockStyle.Fill;
- pageSettings.Location = new Point(0, 0);
- pageSettings.Name = "pageSettings";
- pageSettings.Padding = new Padding(20);
- pageSettings.Size = new Size(1008, 916);
- pageSettings.TabIndex = 0;
- //
// Form1
//
AutoScaleDimensions = new SizeF(7F, 17F);
@@ -1061,6 +1211,7 @@ namespace Vmianqian
homeConfigCard.ResumeLayout(false);
homeConfigCard.PerformLayout();
homeMemberCard.ResumeLayout(false);
+ homeMemberCard.PerformLayout();
homeLogCard.ResumeLayout(false);
homeLogCard.PerformLayout();
wechatHookCard.ResumeLayout(false);
@@ -1076,17 +1227,20 @@ namespace Vmianqian
((System.ComponentModel.ISupportInitialize)gridAlipayLogs).EndInit();
settingsEmailCard.ResumeLayout(false);
settingsEmailCard.PerformLayout();
+ settingsAlipayCard.ResumeLayout(false);
+ settingsAlipayCard.PerformLayout();
titlebar.ResumeLayout(false);
bottomBar.ResumeLayout(false);
contentHost.ResumeLayout(false);
- pageAlipay.ResumeLayout(false);
- pageWechat.ResumeLayout(false);
pageHome.ResumeLayout(false);
pageSettings.ResumeLayout(false);
+ pageAlipay.ResumeLayout(false);
+ pageWechat.ResumeLayout(false);
ResumeLayout(false);
}
private WinPanel homeSummaryCard = null!;
+ private AntdUI.Button btnCheckUpdate = null!;
private WinPanel homeConfigCard = null!;
private WinPanel homeMemberCard = null!;
private WinPanel homeLogCard = null!;
@@ -1103,20 +1257,33 @@ namespace Vmianqian
private NumericUpDown numAlipayInterval = null!;
private AntdUI.Label lblAlipayDesc = null!;
private WinPanel alipayLogCard = null!;
+ private WinPanel settingsAlipayCard = null!;
+ private AntdUI.Button btnAlipayAccountSave = null!;
+ private Switch chkAlipayAutoFill = null!;
+ private AntdUI.Label lblAlipayAutoFillTitle = null!;
+ private AntdUI.Label lblAlipayAccountTitle = null!;
+ private Input txtAlipayAccount = null!;
+ private AntdUI.Label lblAlipayPasswordTitle = null!;
+ private Input txtAlipayPassword = null!;
private WinPanel settingsEmailCard = null!;
private AntdUI.Label label1 = null!;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
- private DataGridViewTextBoxColumn 订单状态;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn8;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn9;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn7;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn10;
- private DataGridViewTextBoxColumn 状态;
- private DataGridViewTextBoxColumn dataGridViewTextBoxColumn11;
+ private AntdUI.Button btnActivate = null!;
+ private Input txtActivationCode = null!;
+ private AntdUI.Label lblActivationCodeTitle = null!;
+ private AntdUI.Button btnCopyDeviceCode = null!;
+ private AntdUI.Label label3 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn1 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn2 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn3 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn4 = null!;
+ private DataGridViewTextBoxColumn 订单状态 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn5 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn6 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn8 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn9 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn7 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn10 = null!;
+ private DataGridViewTextBoxColumn 状态 = null!;
+ private DataGridViewTextBoxColumn dataGridViewTextBoxColumn11 = null!;
}
}
diff --git a/Form1.cs b/Form1.cs
index 453c7b8..e5b6d15 100644
--- a/Form1.cs
+++ b/Form1.cs
@@ -5,8 +5,11 @@ using MimeKit;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
+using System.IO.Compression;
+using System.Management;
using System.Net;
using System.Net.Http;
+using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
@@ -38,8 +41,13 @@ namespace Vmianqian
private readonly string _pendingOrdersFilePath = Path.Combine(AppContext.BaseDirectory, "pending-orders.client.json");
private readonly JsonSerializerOptions _jsonOptions = new() { WriteIndented = true, PropertyNameCaseInsensitive = true };
private readonly HttpClient _httpClient = new();
+ private readonly object _pendingOrdersFileLock = new();
+ private bool _isUpdating;
private readonly System.Windows.Forms.Timer _runtimeTimer = new();
private readonly System.Windows.Forms.Timer _heartbeatTimer = new();
+ private readonly string _deviceCode;
+ private const string UpgradeCheckApiBaseUrl = "https://api.yunzer.cn";
+ private const string UpgradeProductCode = "Vmianqian";
private DateTime _appStartTime = DateTime.Now;
private HttpListener? _httpListener;
@@ -63,6 +71,8 @@ namespace Vmianqian
private bool _heartbeatRequestInProgress;
private int _wechatProtocolAuthFailCount;
private Vmianqian.AlipayMonitor? _alipayMonitor;
+ private Vmianqian.AlipayLoginForm? _alipayLoginForm;
+ private bool _alipayAutoRefreshingCookie;
private AntdUI.Label? _lblWechatSidHint;
private AntdUI.PageHeader titlebar = null!;
@@ -103,7 +113,6 @@ namespace Vmianqian
private AntdUI.Label lblWechatSidTitle = null!;
private AntdUI.Label lblWechatFrequencyTitle = null!;
private AntdUI.Label lblHeartbeatDesc = null!;
- private AntdUI.Label lblMemberPlaceholder = null!;
private AntdUI.Switch chkHeartbeatEnabled = null!;
private AntdUI.Button btnHeartbeatCheck = null!;
private AntdUI.Button btnClearLog = null!;
@@ -129,9 +138,12 @@ namespace Vmianqian
public Form1()
{
+ _deviceCode = BuildDeviceCode();
InitializeComponent();
+ UpdateTitlebarVersion();
InitializeDesignerLayout();
InitializeWechatUi();
+ UpdateDeviceCodeLabel();
// InitializeAlipayUi();
ReloadMenuItems();
SelectPage("home");
@@ -250,6 +262,12 @@ namespace Vmianqian
{
summaryCard.SuspendLayout();
lblSummaryTitle.Location = new Point(28, 20);
+ if (btnCheckUpdate != null)
+ {
+ btnCheckUpdate.Size = new Size(92, 36);
+ btnCheckUpdate.Location = new Point(Math.Max(28, summaryCard.ClientSize.Width - btnCheckUpdate.Width - 24), 20);
+ btnCheckUpdate.BringToFront();
+ }
var summaryDescTop = lblSummaryTitle.Bottom + 8;
var summaryDescWidth = Math.Max(220, pageAvailableWidth - 56);
var summaryDescPreferred = TextRenderer.MeasureText(
@@ -278,7 +296,7 @@ namespace Vmianqian
var leftWidth = rowWidth / 2;
var rightWidth = rowWidth - leftWidth;
var configHeight = 390;
- var memberHeight = 128;
+ var memberHeight = 170;
configCard.Bounds = new Rectangle(margin, top, leftWidth, configHeight);
memberCard.Bounds = new Rectangle(margin + leftWidth + gap, top, rightWidth, memberHeight);
@@ -305,7 +323,24 @@ namespace Vmianqian
const int heartbeatTop = 310;
chkHeartbeatEnabled.Location = new Point(contentLeft, heartbeatTop - 4);
lblHeartbeatDesc.Location = new Point(chkHeartbeatEnabled.Right + 4, heartbeatTop + 1);
- lblMemberPlaceholder.Size = new Size(Math.Max(220, memberCard.ClientSize.Width - 48), 52);
+
+ const int memberLeft = 21;
+ const int memberRight = 20;
+ const int memberTop = 20;
+ const int memberButtonGap = 8;
+ var memberContentWidth = Math.Max(220, memberCard.ClientSize.Width - memberLeft - memberRight);
+ var memberActionWidth = 92;
+ var memberInputWidth = Math.Max(140, memberContentWidth - memberActionWidth - memberButtonGap);
+
+ label3.Location = new Point(memberLeft, memberTop);
+ label3.Size = new Size(memberInputWidth, 36);
+ btnCopyDeviceCode.Location = new Point(memberCard.ClientSize.Width - memberRight - memberActionWidth, 18);
+ btnCopyDeviceCode.Size = new Size(memberActionWidth, 36);
+ lblActivationCodeTitle.Location = new Point(memberLeft, 62);
+ txtActivationCode.Location = new Point(memberLeft, 84);
+ txtActivationCode.Size = new Size(memberInputWidth, 40);
+ btnActivate.Location = new Point(memberCard.ClientSize.Width - memberRight - memberActionWidth, 84);
+ btnActivate.Size = new Size(memberActionWidth, 40);
var rowBottom = Math.Max(configCard.Bottom, memberCard.Bottom);
var logCardTop = rowBottom + margin;
@@ -607,6 +642,7 @@ namespace Vmianqian
ApplyHeartbeatSetting();
Log("程序已启动。");
+ _ = CheckForUpdatesAsync(silentWhenUpToDate: true, showNoUpdateMessage: false);
}
private void Form1_FormClosing(object? sender, FormClosingEventArgs e)
@@ -618,6 +654,20 @@ namespace Vmianqian
StopWechatSidCapture();
_alipayMonitor?.Stop();
_alipayMonitor?.Dispose();
+ if (_alipayLoginForm != null)
+ {
+ try
+ {
+ _alipayLoginForm.Close();
+ _alipayLoginForm.Dispose();
+ }
+ catch
+ {
+ }
+
+ _alipayLoginForm = null;
+ }
+
_runtimeTimer.Stop();
_runtimeTimer.Dispose();
_heartbeatTimer.Dispose();
@@ -738,27 +788,74 @@ namespace Vmianqian
private void LoadPendingOrders()
{
- if (!File.Exists(_pendingOrdersFilePath))
+ lock (_pendingOrdersFileLock)
{
- _pendingOrders = new List();
- return;
- }
+ if (!File.Exists(_pendingOrdersFilePath))
+ {
+ _pendingOrders = new List();
+ return;
+ }
- try
- {
- var json = File.ReadAllText(_pendingOrdersFilePath, Encoding.UTF8);
- _pendingOrders = JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List();
- }
- catch
- {
- _pendingOrders = new List();
+ try
+ {
+ using var stream = new FileStream(_pendingOrdersFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ using var reader = new StreamReader(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks: true);
+ var json = reader.ReadToEnd();
+ _pendingOrders = JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List();
+ }
+ catch
+ {
+ _pendingOrders = new List();
+ }
}
}
private void SavePendingOrders()
{
- var json = JsonSerializer.Serialize(_pendingOrders, _jsonOptions);
- File.WriteAllText(_pendingOrdersFilePath, json, Encoding.UTF8);
+ lock (_pendingOrdersFileLock)
+ {
+ var json = JsonSerializer.Serialize(_pendingOrders, _jsonOptions);
+ var tempFilePath = _pendingOrdersFilePath + ".tmp";
+
+ Exception? lastError = null;
+ for (var attempt = 1; attempt <= 5; attempt++)
+ {
+ try
+ {
+ File.WriteAllText(tempFilePath, json, Encoding.UTF8);
+
+ if (File.Exists(_pendingOrdersFilePath))
+ {
+ File.Copy(tempFilePath, _pendingOrdersFilePath, overwrite: true);
+ File.Delete(tempFilePath);
+ }
+ else
+ {
+ File.Move(tempFilePath, _pendingOrdersFilePath);
+ }
+
+ return;
+ }
+ catch (Exception ex)
+ {
+ lastError = ex;
+ try
+ {
+ if (File.Exists(tempFilePath))
+ {
+ File.Delete(tempFilePath);
+ }
+ }
+ catch
+ {
+ }
+
+ Thread.Sleep(80 * attempt);
+ }
+ }
+
+ throw new IOException($"保存待支付订单文件失败:{lastError?.Message}", lastError);
+ }
}
private void BindConfigToUi()
@@ -770,6 +867,9 @@ namespace Vmianqian
txtSmtpPort.Text = _config.SmtpPort.ToString();
txtNotifyEmail.Text = _config.NotifyEmail;
txtEmailAuthCode.Text = _config.EmailAuthCode;
+ txtAlipayAccount.Text = _config.AlipayAccount;
+ txtAlipayPassword.Text = _config.AlipayPassword;
+ chkAlipayAutoFill.Checked = _config.AlipayEnableAutoFill;
txtWechatPath.Text = _config.WechatPath;
txtWechatId.Text = _config.WechatSid;
var savedAlipayUrl = string.IsNullOrWhiteSpace(_config.AlipayBillApiUrl)
@@ -796,6 +896,9 @@ namespace Vmianqian
_config.SmtpPort = ParseSmtpPort(txtSmtpPort.Text);
_config.NotifyEmail = txtNotifyEmail.Text.Trim();
_config.EmailAuthCode = txtEmailAuthCode.Text.Trim();
+ _config.AlipayAccount = txtAlipayAccount.Text.Trim();
+ _config.AlipayPassword = txtAlipayPassword.Text;
+ _config.AlipayEnableAutoFill = chkAlipayAutoFill.Checked;
_config.WechatPath = txtWechatPath.Text.Trim();
_config.WechatSid = txtWechatId.Text.Trim();
_config.AlipayPath = txtAliPath.Text.Trim();
@@ -2101,6 +2204,22 @@ namespace Vmianqian
}
}
+ private void btnAlipayAccountSave_Click(object? sender, EventArgs e)
+ {
+ try
+ {
+ SaveUiToConfig();
+ SaveConfig();
+ Log("支付宝账号登录配置已保存到本地缓存文件。");
+ MessageBox.Show("支付宝配置已保存。", "保存成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ Log($"保存支付宝配置失败:{ex.Message}");
+ MessageBox.Show(ex.Message, "保存失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
private void btnAlipayLogin_Click(object? sender, EventArgs e)
{
try
@@ -2119,43 +2238,7 @@ namespace Vmianqian
SaveUiToConfig();
SaveConfig();
-
- using var loginForm = new Vmianqian.AlipayLoginForm(BuildAlipayOptions());
- loginForm.LoginSucceeded += (_, args) =>
- {
- EnsureAlipayMonitorCreated();
- _alipayMonitor!.SetCookies(args.CookieContainer);
- _alipayMonitor.SetCtoken(args.CToken);
-
- if (!string.IsNullOrWhiteSpace(args.CToken))
- {
- var pureApiUrl = txtAliPath.Text.Trim();
- if (Uri.TryCreate(pureApiUrl, UriKind.Absolute, out var apiUri))
- {
- pureApiUrl = $"{apiUri.Scheme}://{apiUri.Host}{apiUri.AbsolutePath}";
- }
-
- txtAliPath.Text = pureApiUrl;
- }
-
- Log($"支付宝登录成功,Cookie 已提取,ctoken={args.CToken},当前地址:{args.CurrentUrl}");
- lblAlipayStatusValue.Text = "支付宝: 已登录";
- lblAlipayStatusValue.ForeColor = Color.DarkOrange;
-
- // 登录成功后自动开始监听,不再需要用户手动再点一次。
- _alipayMonitor.Start();
-
- btnAlipayLogin.Text = "停止监听";
- btnAlipayLogin.Type = TTypeMini.Error;
-
- loginForm.BeginInvoke(() => loginForm.Close());
- };
- loginForm.StatusChanged += (_, args) =>
- {
- Log($"支付宝登录窗口:{args.Message}");
- };
-
- loginForm.ShowDialog(this);
+ OpenAlipayLoginWindow(autoRefresh: false);
}
catch (Exception ex)
{
@@ -2215,7 +2298,10 @@ namespace Vmianqian
JsonpCallback = "callback",
MinPollSeconds = 15,
MaxPollSeconds = Math.Max(15, Math.Min(35, (int)numAlipayInterval.Value)),
- PageSize = 10
+ PageSize = 10,
+ Account = txtAlipayAccount.Text.Trim(),
+ Password = txtAlipayPassword.Text,
+ EnableAutoFill = chkAlipayAutoFill.Checked
};
}
@@ -2295,21 +2381,154 @@ namespace Vmianqian
lblAlipayStatusValue.ForeColor = Color.DarkOrange;
break;
case "CookieExpired":
- lblAlipayStatusValue.Text = "支付宝: Cookie失效";
- lblAlipayStatusValue.ForeColor = Color.Red;
- btnAlipayLogin.Text = "扫码登录";
- btnAlipayLogin.Type = TTypeMini.Primary;
- MessageBox.Show("支付宝 Cookie 失效,请重新扫码登录。", "支付宝监听提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ lblAlipayStatusValue.Text = "支付宝: 自动续登中";
+ lblAlipayStatusValue.ForeColor = Color.DarkOrange;
+ btnAlipayLogin.Text = "自动续登中";
+ btnAlipayLogin.Type = TTypeMini.Warn;
+ BeginAlipayAutoRefreshCookie();
break;
case "Stopped":
- lblAlipayStatusValue.Text = "支付宝: 离线";
- lblAlipayStatusValue.ForeColor = Color.Red;
- btnAlipayLogin.Text = "扫码登录";
- btnAlipayLogin.Type = TTypeMini.Primary;
+ if (_alipayAutoRefreshingCookie)
+ {
+ lblAlipayStatusValue.Text = "支付宝: 自动续登中";
+ lblAlipayStatusValue.ForeColor = Color.DarkOrange;
+ btnAlipayLogin.Text = "自动续登中";
+ btnAlipayLogin.Type = TTypeMini.Warn;
+ }
+ else
+ {
+ lblAlipayStatusValue.Text = "支付宝: 离线";
+ lblAlipayStatusValue.ForeColor = Color.Red;
+ btnAlipayLogin.Text = "扫码登录";
+ btnAlipayLogin.Type = TTypeMini.Primary;
+ }
break;
}
}
+ private void BeginAlipayAutoRefreshCookie()
+ {
+ if (_alipayAutoRefreshingCookie)
+ {
+ return;
+ }
+
+ _alipayAutoRefreshingCookie = true;
+
+ try
+ {
+ SaveUiToConfig();
+ SaveConfig();
+ Log("支付宝 Cookie 已失效,正在自动打开登录窗口续 Cookie……");
+ OpenAlipayLoginWindow(autoRefresh: true);
+ }
+ catch (Exception ex)
+ {
+ _alipayAutoRefreshingCookie = false;
+ Log($"支付宝自动续 Cookie 失败:{ex.Message}");
+ lblAlipayStatusValue.Text = "支付宝: 续登失败";
+ lblAlipayStatusValue.ForeColor = Color.Red;
+ btnAlipayLogin.Text = "扫码登录";
+ btnAlipayLogin.Type = TTypeMini.Primary;
+ }
+ }
+
+ private void OpenAlipayLoginWindow(bool autoRefresh)
+ {
+ if (_alipayLoginForm != null && !_alipayLoginForm.IsDisposed)
+ {
+ try
+ {
+ _alipayLoginForm.BringToFront();
+ _alipayLoginForm.Focus();
+ }
+ catch
+ {
+ }
+
+ return;
+ }
+
+ var loginForm = new Vmianqian.AlipayLoginForm(BuildAlipayOptions());
+ _alipayLoginForm = loginForm;
+
+ loginForm.FormClosed += (_, _) =>
+ {
+ if (ReferenceEquals(_alipayLoginForm, loginForm))
+ {
+ _alipayLoginForm = null;
+ }
+
+ if (_alipayAutoRefreshingCookie)
+ {
+ _alipayAutoRefreshingCookie = false;
+
+ if (_alipayMonitor?.IsRunning != true)
+ {
+ lblAlipayStatusValue.Text = "支付宝: 离线";
+ lblAlipayStatusValue.ForeColor = Color.Red;
+ btnAlipayLogin.Text = "扫码登录";
+ btnAlipayLogin.Type = TTypeMini.Primary;
+ }
+ }
+ };
+
+ loginForm.LoginSucceeded += (_, args) =>
+ {
+ EnsureAlipayMonitorCreated();
+ _alipayMonitor!.SetCookies(args.CookieContainer);
+ _alipayMonitor.SetCtoken(args.CToken);
+
+ if (!string.IsNullOrWhiteSpace(args.CToken))
+ {
+ var pureApiUrl = txtAliPath.Text.Trim();
+ if (Uri.TryCreate(pureApiUrl, UriKind.Absolute, out var apiUri))
+ {
+ pureApiUrl = $"{apiUri.Scheme}://{apiUri.Host}{apiUri.AbsolutePath}";
+ }
+
+ txtAliPath.Text = pureApiUrl;
+ }
+
+ Log(autoRefresh
+ ? $"支付宝自动续 Cookie 成功,ctoken={args.CToken},当前地址:{args.CurrentUrl}"
+ : $"支付宝登录成功,Cookie 已提取,ctoken={args.CToken},当前地址:{args.CurrentUrl}");
+
+ lblAlipayStatusValue.Text = "支付宝: 已登录";
+ lblAlipayStatusValue.ForeColor = Color.DarkOrange;
+
+ _alipayAutoRefreshingCookie = false;
+
+ // 登录成功后自动开始监听,不再需要用户手动再点一次。
+ _alipayMonitor.Start();
+
+ btnAlipayLogin.Text = "停止监听";
+ btnAlipayLogin.Type = TTypeMini.Error;
+
+ try
+ {
+ loginForm.BeginInvoke(() => loginForm.Close());
+ }
+ catch
+ {
+ }
+ };
+
+ loginForm.StatusChanged += (_, args) =>
+ {
+ Log($"支付宝登录窗口:{args.Message}");
+ };
+
+ if (autoRefresh)
+ {
+ loginForm.Show(this);
+ }
+ else
+ {
+ loginForm.ShowDialog(this);
+ }
+ }
+
private async Task StartListenerAsync()
{
StopListener();
@@ -3090,6 +3309,451 @@ namespace Vmianqian
};
}
+ ///
+ /// 将设备号显示到首页会员卡区域。
+ ///
+ private void UpdateDeviceCodeLabel()
+ {
+ if (label3 == null)
+ {
+ return;
+ }
+
+ label3.Text = $"设备号:{_deviceCode}";
+ }
+
+ ///
+ /// 复制设备号按钮点击事件。
+ /// 便于用户一键复制后发送给他人。
+ ///
+ private void btnCopyDeviceCode_Click(object? sender, EventArgs e)
+ {
+ try
+ {
+ if (string.IsNullOrWhiteSpace(_deviceCode))
+ {
+ MessageBox.Show("当前设备号为空,无法复制。", "复制失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ return;
+ }
+
+ Clipboard.SetText(_deviceCode);
+ Log($"设备号已复制:{_deviceCode}");
+ MessageBox.Show("设备号已复制到剪贴板。", "复制成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ Log($"复制设备号失败:{ex.Message}");
+ MessageBox.Show($"复制失败:{ex.Message}", "复制失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btnActivate_Click(object? sender, EventArgs e)
+ {
+ try
+ {
+ var activationCode = txtActivationCode?.Text?.Trim() ?? string.Empty;
+ if (string.IsNullOrWhiteSpace(activationCode))
+ {
+ MessageBox.Show("请输入激活码。", "激活提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ return;
+ }
+
+ Log($"收到激活请求,激活码:{activationCode}");
+ MessageBox.Show("激活按钮已添加,后续可在此接入真实激活接口。", "激活", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ Log($"激活失败:{ex.Message}");
+ MessageBox.Show($"激活失败:{ex.Message}", "激活失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private async void btnCheckUpdate_Click(object? sender, EventArgs e)
+ {
+ await CheckForUpdatesAsync(silentWhenUpToDate: false, showNoUpdateMessage: true);
+ }
+
+ private async Task CheckForUpdatesAsync(bool silentWhenUpToDate, bool showNoUpdateMessage)
+ {
+ if (_isUpdating)
+ {
+ if (!silentWhenUpToDate)
+ {
+ MessageBox.Show("更新任务正在执行中,请稍候。", "检查更新", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ return;
+ }
+
+ try
+ {
+ var currentVersion = GetCurrentVersion();
+ var requestUrl = BuildUpgradeCheckUrl(UpgradeProductCode, currentVersion);
+ var response = await _httpClient.GetAsync(requestUrl);
+ var body = await response.Content.ReadAsStringAsync();
+
+ if (!response.IsSuccessStatusCode)
+ {
+ Log($"检查更新失败:HTTP {(int)response.StatusCode} {response.StatusCode}");
+ if (!silentWhenUpToDate)
+ {
+ MessageBox.Show($"检查更新失败:HTTP {(int)response.StatusCode} {response.StatusCode}", "检查更新", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ }
+ return;
+ }
+
+ var result = JsonSerializer.Deserialize(body, _jsonOptions);
+ if (result?.Data == null)
+ {
+ Log("检查更新失败:服务端响应无法解析。");
+ if (!silentWhenUpToDate)
+ {
+ MessageBox.Show("检查更新失败:服务端响应无法解析。", "检查更新", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ }
+ return;
+ }
+
+ var remoteVersion = (result.Data.LatestVersion ?? string.Empty).Trim();
+ var upToDate = result.Data.UpToDate;
+
+ if (!upToDate && IsRemoteVersionNewer(currentVersion, remoteVersion))
+ {
+ Log($"发现新版本:当前={currentVersion},最新={remoteVersion}");
+ var notes = string.IsNullOrWhiteSpace(result.Data.ReleaseNotes) ? "暂无更新说明" : result.Data.ReleaseNotes.Trim();
+ var downloadUrl = (result.Data.DownloadUrl ?? string.Empty).Trim();
+ var forceText = result.Data.ForceUpdate ? "是" : "否";
+
+ var promptMessage =
+ $"发现新版本:{remoteVersion}{Environment.NewLine}" +
+ $"当前版本:{currentVersion}{Environment.NewLine}" +
+ $"是否强更:{forceText}{Environment.NewLine}{Environment.NewLine}" +
+ $"更新说明:{Environment.NewLine}{notes}{Environment.NewLine}{Environment.NewLine}" +
+ (result.Data.ForceUpdate
+ ? "当前版本为强制更新,点击“确定”后将立即开始增量更新。"
+ : "点击“是”开始增量更新,程序会在下载完成后自动退出并覆盖更新。");
+
+ var dialogResult = MessageBox.Show(
+ promptMessage,
+ "发现新版本",
+ result.Data.ForceUpdate ? MessageBoxButtons.OK : MessageBoxButtons.YesNo,
+ MessageBoxIcon.Information);
+
+ if ((result.Data.ForceUpdate && dialogResult == DialogResult.OK) ||
+ (!result.Data.ForceUpdate && dialogResult == DialogResult.Yes))
+ {
+ await StartIncrementalUpdateAsync(remoteVersion, downloadUrl, result.Data.ForceUpdate);
+ }
+
+ return;
+ }
+
+ Log($"已是最新版本:{currentVersion}");
+ if (showNoUpdateMessage)
+ {
+ MessageBox.Show($"当前已是最新版本:{currentVersion}", "检查更新", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ catch (Exception ex)
+ {
+ Log($"检查更新异常:{ex.Message}");
+ if (!silentWhenUpToDate)
+ {
+ MessageBox.Show($"检查更新失败:{ex.Message}", "检查更新", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private async Task StartIncrementalUpdateAsync(string remoteVersion, string downloadUrl, bool forceUpdate)
+ {
+ if (_isUpdating)
+ {
+ return;
+ }
+
+ if (string.IsNullOrWhiteSpace(downloadUrl))
+ {
+ throw new InvalidOperationException("服务端未提供更新包下载地址。");
+ }
+
+ _isUpdating = true;
+ if (btnCheckUpdate != null)
+ {
+ btnCheckUpdate.Loading = true;
+ btnCheckUpdate.Enabled = false;
+ btnCheckUpdate.Text = "更新中";
+ }
+
+ try
+ {
+ var tempRoot = Path.Combine(Path.GetTempPath(), "VmianqianUpdate", remoteVersion + "_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
+ var packageFile = Path.Combine(tempRoot, "update-package.zip");
+ var extractRoot = Path.Combine(tempRoot, "package");
+ Directory.CreateDirectory(tempRoot);
+
+ Log($"开始下载增量更新包:{downloadUrl}");
+ await DownloadFileAsync(downloadUrl, packageFile);
+ Log($"增量更新包下载完成:{packageFile}");
+
+ try
+ {
+ ZipFile.ExtractToDirectory(packageFile, extractRoot, true);
+ }
+ catch (InvalidDataException)
+ {
+ throw new InvalidOperationException("更新包不是有效的 zip 压缩包,无法执行增量更新。");
+ }
+
+ var payloadRoot = ResolveUpdatePayloadRoot(extractRoot);
+ Log($"增量更新包已解压:{payloadRoot}");
+
+ var launcherPath = Application.ExecutablePath;
+ var currentProcessId = Environment.ProcessId;
+ var scriptPath = Path.Combine(tempRoot, "apply-update.cmd");
+ var updateLogPath = Path.Combine(tempRoot, "apply-update.log");
+ var appDirectory = AppContext.BaseDirectory.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
+ var deleteListPath = Path.Combine(payloadRoot, "delete-files.txt");
+
+ var deleteCommands = new StringBuilder();
+ if (File.Exists(deleteListPath))
+ {
+ foreach (var line in File.ReadAllLines(deleteListPath, Encoding.UTF8))
+ {
+ var relativePath = line.Trim();
+ if (string.IsNullOrWhiteSpace(relativePath))
+ {
+ continue;
+ }
+
+ if (relativePath.StartsWith("#", StringComparison.Ordinal))
+ {
+ continue;
+ }
+
+ var normalizedRelative = relativePath.Replace('/', '\\').TrimStart('\\');
+ var fullDeletePath = Path.Combine(appDirectory, normalizedRelative);
+ deleteCommands.AppendLine($"if exist \"{fullDeletePath}\" del /f /q \"{fullDeletePath}\" >> \"%LOG%\" 2>&1");
+ }
+ }
+
+ var script = $@"@echo off
+chcp 65001 >nul
+setlocal enableextensions
+set ""APPDIR={appDirectory}""
+set ""SRCDIR={payloadRoot}""
+set ""EXE={launcherPath}""
+set ""PID={currentProcessId}""
+set ""LOG={updateLogPath}""
+
+echo [%%date%% %%time%%] updater started > ""%LOG%""
+echo APPDIR=%APPDIR% >> ""%LOG%""
+echo SRCDIR=%SRCDIR% >> ""%LOG%""
+echo EXE=%EXE% >> ""%LOG%""
+echo PID=%PID% >> ""%LOG%""
+
+taskkill /PID %PID% /T /F >> ""%LOG%"" 2>&1
+
+:waitloop
+tasklist /FI ""PID eq %PID%"" | find ""%PID%"" >nul
+if not errorlevel 1 (
+ timeout /t 1 /nobreak >nul
+ goto waitloop
+)
+
+echo [%%date%% %%time%%] process stopped, start copy >> ""%LOG%""
+robocopy ""%SRCDIR%"" ""%APPDIR%"" /E /R:3 /W:1 /NFL /NDL /NJH /NJS /NP >> ""%LOG%"" 2>&1
+set ""RC=%ERRORLEVEL%""
+echo robocopy exit code=%RC% >> ""%LOG%""
+if %RC% GEQ 8 goto copyfailed
+
+{deleteCommands}
+echo [%%date%% %%time%%] copy success, start app >> ""%LOG%""
+start """" ""%EXE%""
+exit /b 0
+
+:copyfailed
+echo [%%date%% %%time%%] copy failed, robocopy exit code=%RC% >> ""%LOG%""
+start notepad.exe ""%LOG%""
+exit /b %RC%
+";
+ File.WriteAllText(scriptPath, script, new UTF8Encoding(false));
+
+ Log($"增量更新准备完成,目标版本:{remoteVersion}");
+ var confirmText = forceUpdate
+ ? "更新包已下载完成,当前版本要求强制更新。点击确定后程序将退出并自动完成覆盖更新。"
+ : "更新包已下载完成。点击确定后程序将退出并自动完成覆盖更新。";
+ MessageBox.Show(confirmText, "开始更新", MessageBoxButtons.OK, MessageBoxIcon.Information);
+
+ Process.Start(new ProcessStartInfo
+ {
+ FileName = scriptPath,
+ UseShellExecute = true,
+ WorkingDirectory = tempRoot,
+ WindowStyle = ProcessWindowStyle.Normal
+ });
+
+ BeginInvoke(new Action(Close));
+ }
+ catch
+ {
+ _isUpdating = false;
+ if (btnCheckUpdate != null)
+ {
+ btnCheckUpdate.Loading = false;
+ btnCheckUpdate.Enabled = true;
+ btnCheckUpdate.Text = "检查更新";
+ }
+
+ throw;
+ }
+ }
+
+ private async Task DownloadFileAsync(string requestUrl, string targetFilePath)
+ {
+ using var response = await _httpClient.GetAsync(requestUrl, HttpCompletionOption.ResponseHeadersRead);
+ response.EnsureSuccessStatusCode();
+
+ Directory.CreateDirectory(Path.GetDirectoryName(targetFilePath)!);
+
+ await using var httpStream = await response.Content.ReadAsStreamAsync();
+ await using var fileStream = new FileStream(targetFilePath, FileMode.Create, FileAccess.Write, FileShare.None);
+ await httpStream.CopyToAsync(fileStream);
+ }
+
+ private static string ResolveUpdatePayloadRoot(string extractRoot)
+ {
+ var incrementalRoot = Path.Combine(extractRoot, "incremental");
+ if (Directory.Exists(incrementalRoot))
+ {
+ return incrementalRoot;
+ }
+
+ var appRoot = Path.Combine(extractRoot, "app");
+ if (Directory.Exists(appRoot))
+ {
+ return appRoot;
+ }
+
+ return extractRoot;
+ }
+
+ private void UpdateTitlebarVersion()
+ {
+ if (titlebar == null)
+ {
+ return;
+ }
+
+ titlebar.SubText = $"V{GetCurrentVersion()}";
+ titlebar.Refresh();
+ }
+
+ private static string GetCurrentVersion()
+ {
+ var informationalVersion = Assembly
+ .GetExecutingAssembly()
+ .GetCustomAttribute()
+ ?.InformationalVersion;
+
+ var version = string.IsNullOrWhiteSpace(informationalVersion)
+ ? Application.ProductVersion?.Trim()
+ : informationalVersion.Trim();
+
+ if (string.IsNullOrWhiteSpace(version))
+ {
+ version = "0.0.0";
+ }
+
+ var plusIndex = version.IndexOf('+');
+ if (plusIndex >= 0)
+ {
+ version = version[..plusIndex];
+ }
+
+ return version.Trim().TrimStart('V', 'v');
+ }
+
+ private static string BuildUpgradeCheckUrl(string code, string version)
+ {
+ return $"{UpgradeCheckApiBaseUrl}/api/softwareupgrade/check?code={Uri.EscapeDataString(code)}&version={Uri.EscapeDataString(string.IsNullOrWhiteSpace(version) ? "0.0.0" : version)}";
+ }
+
+ private static bool IsRemoteVersionNewer(string currentVersion, string remoteVersion)
+ {
+ if (string.IsNullOrWhiteSpace(remoteVersion))
+ {
+ return false;
+ }
+
+ if (Version.TryParse(NormalizeVersion(remoteVersion), out var remote) &&
+ Version.TryParse(NormalizeVersion(currentVersion), out var current))
+ {
+ return remote > current;
+ }
+
+ return !string.Equals(currentVersion?.Trim(), remoteVersion.Trim(), StringComparison.OrdinalIgnoreCase);
+ }
+
+ private static string NormalizeVersion(string? version)
+ {
+ var value = string.IsNullOrWhiteSpace(version) ? "0.0.0" : version.Trim();
+ var parts = value.Split('.', StringSplitOptions.RemoveEmptyEntries).ToList();
+ while (parts.Count < 3)
+ {
+ parts.Add("0");
+ }
+
+ return string.Join(".", parts.Take(4));
+ }
+
+ ///
+ /// 生成当前设备的唯一标识。
+ /// 优先拼接主板序列号、CPU ProcessorId、磁盘序列号和机器名,再做 SHA256 摘要。
+ /// 若某些硬件信息读取失败,则自动降级为可获取到的信息组合。
+ ///
+ private static string BuildDeviceCode()
+ {
+ var parts = new List
+ {
+ GetWmiProperty("Win32_BaseBoard", "SerialNumber"),
+ GetWmiProperty("Win32_Processor", "ProcessorId"),
+ GetWmiProperty("Win32_DiskDrive", "SerialNumber"),
+ Environment.MachineName
+ };
+
+ var raw = string.Join("|", parts.Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => x.Trim()));
+ if (string.IsNullOrWhiteSpace(raw))
+ {
+ raw = $"{Environment.MachineName}|{Environment.UserName}|{Environment.OSVersion.VersionString}";
+ }
+
+ var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(raw));
+ var hex = Convert.ToHexString(bytes);
+ return hex[..24];
+ }
+
+ ///
+ /// 读取指定 WMI 类的首个属性值。
+ ///
+ private static string GetWmiProperty(string className, string propertyName)
+ {
+ try
+ {
+ using var searcher = new ManagementObjectSearcher($"SELECT {propertyName} FROM {className}");
+ foreach (var item in searcher.Get())
+ {
+ var value = item[propertyName]?.ToString();
+ if (!string.IsNullOrWhiteSpace(value))
+ {
+ return value.Trim();
+ }
+ }
+ }
+ catch
+ {
+ }
+
+ return string.Empty;
+ }
+
private static (string Sid, string Version, string Source) TryExtractSidFromWechatLocalFiles()
{
foreach (var root in GetWechatDataRoots())
@@ -3444,6 +4108,9 @@ namespace Vmianqian
public int SmtpPort { get; set; } = 465;
public string NotifyEmail { get; set; } = string.Empty;
public string EmailAuthCode { get; set; } = string.Empty;
+ public string AlipayAccount { get; set; } = string.Empty;
+ public string AlipayPassword { get; set; } = string.Empty;
+ public bool AlipayEnableAutoFill { get; set; }
public string WechatPath { get; set; } = string.Empty;
public string WechatSid { get; set; } = string.Empty;
public string WechatApiVersion { get; set; } = "7.10.1";
@@ -3508,6 +4175,31 @@ namespace Vmianqian
public List? Data { get; set; }
}
+ public sealed class SoftwareUpgradeCheckResponse
+ {
+ public int Code { get; set; }
+ public string Msg { get; set; } = string.Empty;
+ public SoftwareUpgradeCheckData? Data { get; set; }
+ }
+
+ public sealed class SoftwareUpgradeCheckData
+ {
+ [JsonPropertyName("upToDate")]
+ public bool UpToDate { get; set; }
+
+ [JsonPropertyName("latestVersion")]
+ public string LatestVersion { get; set; } = string.Empty;
+
+ [JsonPropertyName("downloadUrl")]
+ public string DownloadUrl { get; set; } = string.Empty;
+
+ [JsonPropertyName("forceUpdate")]
+ public bool ForceUpdate { get; set; }
+
+ [JsonPropertyName("releaseNotes")]
+ public string ReleaseNotes { get; set; } = string.Empty;
+ }
+
public sealed class ServerCallbackPayload
{
public string ApiKey { get; set; } = string.Empty;
diff --git a/Properties/PublishProfiles/FolderProfile.pubxml b/Properties/PublishProfiles/FolderProfile.pubxml
new file mode 100644
index 0000000..cadfda9
--- /dev/null
+++ b/Properties/PublishProfiles/FolderProfile.pubxml
@@ -0,0 +1,11 @@
+
+
+
+
+ Release
+ Any CPU
+ bin\Release\net10.0-windows\publish\
+ FileSystem
+ <_TargetId>Folder
+
+
\ No newline at end of file
diff --git a/Properties/PublishProfiles/FolderProfile.pubxml.user b/Properties/PublishProfiles/FolderProfile.pubxml.user
new file mode 100644
index 0000000..e98870d
--- /dev/null
+++ b/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..c21d564
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+namespace Vmianqian.Properties {
+ using System;
+
+
+ ///
+ /// 一个强类型的资源类,用于查找本地化的字符串等。
+ ///
+ // 此类是由 StronglyTypedResourceBuilder
+ // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ // (以 /str 作为命令选项),或重新生成 VS 项目。
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// 返回此类使用的缓存的 ResourceManager 实例。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Vmianqian.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 重写当前线程的 CurrentUICulture 属性,对
+ /// 使用此强类型资源类的所有资源查找执行重写。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// 查找 System.Drawing.Bitmap 类型的本地化资源。
+ ///
+ internal static System.Drawing.Bitmap logo {
+ get {
+ object obj = ResourceManager.GetObject("logo", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..79c5eed
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\logo.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/Readmd.md b/Readmd.md
new file mode 100644
index 0000000..b8968df
--- /dev/null
+++ b/Readmd.md
@@ -0,0 +1,5 @@
+# 自动生成升级包代码
+```
+powershell -ExecutionPolicy Bypass -File .\package-incremental.ps1
+
+```
\ No newline at end of file
diff --git a/Vmianqian.csproj b/Vmianqian.csproj
index b5cc563..70206fb 100644
--- a/Vmianqian.csproj
+++ b/Vmianqian.csproj
@@ -1,6 +1,7 @@
+ 0.0.3
WinExe
net10.0-windows
enable
@@ -8,12 +9,14 @@
true
enable
local
+ logo.ico
+
@@ -25,4 +28,23 @@
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
diff --git a/Vmianqian.csproj.user b/Vmianqian.csproj.user
index 3a34caa..3dbd63a 100644
--- a/Vmianqian.csproj.user
+++ b/Vmianqian.csproj.user
@@ -1,5 +1,8 @@
+
+ <_LastSelectedProfileId>E:\Demo\C\Vmianqian\Properties\PublishProfiles\FolderProfile.pubxml
+
Form
diff --git a/bin/Debug/net10.0-windows/Vmianqian.deps.json b/bin/Debug/net10.0-windows/Vmianqian.deps.json
index 2171dde..5a51752 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.deps.json
+++ b/bin/Debug/net10.0-windows/Vmianqian.deps.json
@@ -6,11 +6,12 @@
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
- "Vmianqian/1.0.0": {
+ "Vmianqian/0.0.2": {
"dependencies": {
"AntdUI": "2.3.10",
"MailKit": "4.16.0",
"Microsoft.Web.WebView2": "1.0.2903.40",
+ "System.Management": "9.0.0",
"Titanium.Web.Proxy": "3.2.0",
"Microsoft.Web.WebView2.Core": "1.0.2903.40",
"Microsoft.Web.WebView2.WinForms": "1.0.2903.40",
@@ -93,6 +94,22 @@
}
}
},
+ "System.Management/9.0.0": {
+ "runtime": {
+ "lib/net9.0/System.Management.dll": {
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net9.0/System.Management.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ }
+ },
"Titanium.Web.Proxy/3.2.0": {
"dependencies": {
"BrotliSharpLib": "0.3.3",
@@ -132,7 +149,7 @@
}
},
"libraries": {
- "Vmianqian/1.0.0": {
+ "Vmianqian/0.0.2": {
"type": "project",
"serviceable": false,
"sha512": ""
@@ -186,6 +203,13 @@
"path": "portable.bouncycastle/1.8.8",
"hashPath": "portable.bouncycastle.1.8.8.nupkg.sha512"
},
+ "System.Management/9.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bVh4xAMI5grY5GZoklKcMBLirhC8Lqzp63Ft3zXJacwGAlLyFdF4k0qz4pnKIlO6HyL2Z4zqmHm9UkzEo6FFsA==",
+ "path": "system.management/9.0.0",
+ "hashPath": "system.management.9.0.0.nupkg.sha512"
+ },
"Titanium.Web.Proxy/3.2.0": {
"type": "package",
"serviceable": true,
diff --git a/bin/Debug/net10.0-windows/Vmianqian.dll b/bin/Debug/net10.0-windows/Vmianqian.dll
index 4851cfb..ad54f9b 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.dll and b/bin/Debug/net10.0-windows/Vmianqian.dll differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe b/bin/Debug/net10.0-windows/Vmianqian.exe
index ab4d2ff..86e86f0 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe and b/bin/Debug/net10.0-windows/Vmianqian.exe differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Crashpad/settings.dat b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Crashpad/settings.dat
index 5ad1e5c..261f997 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Crashpad/settings.dat and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Crashpad/settings.dat differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/BrowsingTopicsState b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/BrowsingTopicsState
index 019afa4..eecbb27 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/BrowsingTopicsState
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/BrowsingTopicsState
@@ -8,5 +8,5 @@
"top_topics_and_observing_domains": [ ]
} ],
"hex_encoded_hmac_key": "3D20341D26496BECEC5CACADB813B2813BF9F4CB81F7946788CD04BBF5F9787C",
- "next_scheduled_calculation_time": "13423151610108124"
+ "next_scheduled_calculation_time": "13423151610108165"
}
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_0
index df64fe1..2ff0222 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_1 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_1
index d95d6f4..052038c 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_1 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_1 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_2 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_2
index 0815d09..023db5b 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_2 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_2 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_3 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_3
index ee08a5c..35a8391 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_3 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/data_3 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_00000e b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_00000e
deleted file mode 100644
index 4348aa6..0000000
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_00000e and /dev/null differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_0000bc b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_0000bc
deleted file mode 100644
index 29b13c1..0000000
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_0000bc and /dev/null differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_0000bf b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_0000bf
deleted file mode 100644
index e5ed779..0000000
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Cache/Cache_Data/f_0000bf and /dev/null differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/0b823975e93d8f62_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/0b823975e93d8f62_0
index 131a49a..63f273c 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/0b823975e93d8f62_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/0b823975e93d8f62_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/1c33ffb4849bc576_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/1c33ffb4849bc576_0
index 50a42fe..f6fa37a 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/1c33ffb4849bc576_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/1c33ffb4849bc576_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2283f7fc2235ac9b_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2283f7fc2235ac9b_0
index 37a43f3..d4f6943 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2283f7fc2235ac9b_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2283f7fc2235ac9b_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2d4bbff7a4794e99_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2d4bbff7a4794e99_0
index a83d33b..b7a2a1c 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2d4bbff7a4794e99_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/2d4bbff7a4794e99_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/35fded26c20d2c01_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/35fded26c20d2c01_0
index b33998e..706842c 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/35fded26c20d2c01_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/35fded26c20d2c01_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/37fe573eb18b1af1_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/37fe573eb18b1af1_0
index 803beae..e42c259 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/37fe573eb18b1af1_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/37fe573eb18b1af1_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/402960bb4de5c1dd_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/402960bb4de5c1dd_0
index e90efe5..82f7843 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/402960bb4de5c1dd_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/402960bb4de5c1dd_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/49b89d9224bbaf4a_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/49b89d9224bbaf4a_0
index 90aa243..836fab9 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/49b89d9224bbaf4a_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/49b89d9224bbaf4a_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/4e6257104190409f_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/4e6257104190409f_0
index aa48390..8ce761b 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/4e6257104190409f_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/4e6257104190409f_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/524045f5db22fdf0_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/524045f5db22fdf0_0
index 9b25525..2f2d0ac 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/524045f5db22fdf0_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/524045f5db22fdf0_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/5d575d723cc47977_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/5d575d723cc47977_0
index 71a4e2a..afc4b60 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/5d575d723cc47977_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/5d575d723cc47977_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/68de63f0354a100a_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/68de63f0354a100a_0
index e201e22..a373437 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/68de63f0354a100a_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/68de63f0354a100a_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/6c124b5f44fae4bf_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/6c124b5f44fae4bf_0
index d139977..9406171 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/6c124b5f44fae4bf_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/6c124b5f44fae4bf_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/72b63c519f585e52_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/72b63c519f585e52_0
index 77fa015..5ad2123 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/72b63c519f585e52_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/72b63c519f585e52_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73a048f70d94e6a1_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73a048f70d94e6a1_0
index d91cfb5..e103b41 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73a048f70d94e6a1_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73a048f70d94e6a1_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73b8d17c189b6bd1_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73b8d17c189b6bd1_0
index 2ce8b49..cd2d945 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73b8d17c189b6bd1_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/73b8d17c189b6bd1_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/83a76477b6f3374d_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/83a76477b6f3374d_0
index ff38a53..36d048c 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/83a76477b6f3374d_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/83a76477b6f3374d_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/8d2c6711d72e60ad_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/8d2c6711d72e60ad_0
index 757ba36..dee73ae 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/8d2c6711d72e60ad_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/8d2c6711d72e60ad_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c7325cfd747da566_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c7325cfd747da566_0
index 4ce2301..5cc62d2 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c7325cfd747da566_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c7325cfd747da566_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c9182ec6c0c6d2ba_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c9182ec6c0c6d2ba_0
index 2e660f9..93e1e28 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c9182ec6c0c6d2ba_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/c9182ec6c0c6d2ba_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/d29d0db27140d61d_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/d29d0db27140d61d_0
index 431f64c..0bc0846 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/d29d0db27140d61d_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/d29d0db27140d61d_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/eb73aa6fb46a19d9_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/eb73aa6fb46a19d9_0
index dfd227e..9c27ea3 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/eb73aa6fb46a19d9_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/eb73aa6fb46a19d9_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/ebcd9b9512ad1d7d_0 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/ebcd9b9512ad1d7d_0
index 2c2e180..9b5194a 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/ebcd9b9512ad1d7d_0 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/ebcd9b9512ad1d7d_0 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/index-dir/the-real-index b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/index-dir/the-real-index
index 5f8af87..5cb57f5 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/index-dir/the-real-index and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Code Cache/js/index-dir/the-real-index differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DIPS b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DIPS
index 25f8cbc..6f1414d 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DIPS and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DIPS differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnGraphiteCache/data_1 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnGraphiteCache/data_1
index 4c13fe2..dbfb845 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnGraphiteCache/data_1 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnGraphiteCache/data_1 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnWebGPUCache/data_1 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnWebGPUCache/data_1
index d445e99..3880686 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnWebGPUCache/data_1 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/DawnWebGPUCache/data_1 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG
index 77fa6ee..6407516 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG
@@ -1,3 +1,3 @@
-2026/05/07-00:59:30.890 a9f0 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/MANIFEST-000001
-2026/05/07-00:59:30.890 a9f0 Recovering log #3
-2026/05/07-00:59:30.890 a9f0 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/000003.log
+2026/05/07-20:24:27.760 1648 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/MANIFEST-000001
+2026/05/07-20:24:27.761 1648 Recovering log #3
+2026/05/07-20:24:27.761 1648 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG.old b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG.old
index 7ebb452..bab84cb 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG.old
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Extension State/LOG.old
@@ -1,3 +1,3 @@
-2026/05/07-00:34:08.006 5d14 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/MANIFEST-000001
-2026/05/07-00:34:08.007 5d14 Recovering log #3
-2026/05/07-00:34:08.007 5d14 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/000003.log
+2026/05/07-20:03:13.009 ef30 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/MANIFEST-000001
+2026/05/07-20:03:13.009 ef30 Recovering log #3
+2026/05/07-20:03:13.010 ef30 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Extension State/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/GPUCache/data_1 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/GPUCache/data_1
index 930b71b..d37b839 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/GPUCache/data_1 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/GPUCache/data_1 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/History b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/History
index a863918..a3c554e 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/History and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/History differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/000008.log b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/000008.log
index de751f4..76233e2 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/000008.log and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/000008.log differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG
index 6c03a38..c42f887 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG
@@ -1,3 +1,3 @@
-2026/05/07-00:59:30.851 50dc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001
-2026/05/07-00:59:30.857 50dc Recovering log #8
-2026/05/07-00:59:30.859 50dc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/000008.log
+2026/05/07-20:24:27.720 c6fc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001
+2026/05/07-20:24:27.728 c6fc Recovering log #8
+2026/05/07-20:24:27.731 c6fc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/000008.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG.old b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG.old
index 64777ea..7fc900b 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG.old
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG.old
@@ -1,3 +1,3 @@
-2026/05/07-00:34:07.975 f674 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001
-2026/05/07-00:34:07.981 f674 Recovering log #8
-2026/05/07-00:34:07.990 f674 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/000008.log
+2026/05/07-20:03:12.956 f7ec Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001
+2026/05/07-20:03:12.964 f7ec Recovering log #8
+2026/05/07-20:03:12.967 f7ec Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Local Storage\leveldb/000008.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Cookies b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Cookies
index 31293a0..79b66a0 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Cookies and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Cookies differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Network Persistent State b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Network Persistent State
index e3b559d..a59d217 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Network Persistent State
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/Network Persistent State
@@ -1 +1 @@
-{"net":{"http_server_properties":{"servers":[{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://log.mmstat.com","supports_spdy":true},{"anonymization":["GAAAABMAAABkZXZ0b29sczovL2RldnRvb2xzAA==",false,0],"server":"https://msedgedevtools.microsoft.com","supports_spdy":true},{"anonymization":["HAAAABUAAABodHRwczovL21pY3Jvc29mdC5jb20AAAA=",false,0],"server":"https://msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com","supports_spdy":true},{"anonymization":["HAAAABUAAABodHRwczovL21pY3Jvc29mdC5jb20AAAA=",false,0],"server":"https://edge.microsoft.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://shanghu.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://cdn.marmot-cloud.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://uemprod.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://collect.alipay.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13422636312884635","port":443,"protocol_str":"quic"}],"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"network_stats":{"srtt":197033},"server":"https://html2canvas.hertzen.com"},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://render.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://accounts.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://passport.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://securitycore.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://mass.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://auth.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://assets.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://img.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://ynuf.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://seccliprod.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://mdn.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://captcha.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://at.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://authsa127.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://g.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://my.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://app.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://lab.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://rds.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://as.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://gw.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://csmobiledata.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://kcart.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://a.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://t.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://i.alipayobjects.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13425152387036832","port":443,"protocol_str":"quic"}],"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"network_stats":{"srtt":37714},"server":"https://passport.alibaba.com","supports_spdy":true}],"supports_quic":{"address":"10.31.2.235","used_quic":true},"version":5},"network_qualities":{"CAESABiAgICA+P////8B":"4G"}}}
\ No newline at end of file
+{"net":{"http_server_properties":{"servers":[{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://log.mmstat.com","supports_spdy":true},{"anonymization":["GAAAABMAAABkZXZ0b29sczovL2RldnRvb2xzAA==",false,0],"server":"https://msedgedevtools.microsoft.com","supports_spdy":true},{"anonymization":["HAAAABUAAABodHRwczovL21pY3Jvc29mdC5jb20AAAA=",false,0],"server":"https://msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com","supports_spdy":true},{"anonymization":["HAAAABUAAABodHRwczovL21pY3Jvc29mdC5jb20AAAA=",false,0],"server":"https://edge.microsoft.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://shanghu.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://cdn.marmot-cloud.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://uemprod.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://collect.alipay.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13422636312884635","port":443,"protocol_str":"quic"}],"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"network_stats":{"srtt":197033},"server":"https://html2canvas.hertzen.com"},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://render.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://accounts.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://passport.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://mass.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://securitycore.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://auth.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://assets.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://mdn.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://seccliprod.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://at.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://img.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://ynuf.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://captcha.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://authsa127.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://g.alicdn.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://my.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://app.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://lab.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://rds.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://as.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://gw.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://csmobiledata.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://kcart.alipay.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://a.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://t.alipayobjects.com","supports_spdy":true},{"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"server":"https://i.alipayobjects.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13425222270526222","port":443,"protocol_str":"quic"}],"anonymization":["GAAAABIAAABodHRwczovL2FsaXBheS5jb20AAA==",false,0],"network_stats":{"srtt":33744},"server":"https://passport.alibaba.com","supports_spdy":true}],"supports_quic":{"address":"10.31.2.235","used_quic":true},"version":5},"network_qualities":{"CAESABiAgICA+P////8B":"4G"}}}
\ No newline at end of file
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/TransportSecurity b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/TransportSecurity
index c7b82ea..a3b1896 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/TransportSecurity
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Network/TransportSecurity
@@ -1 +1 @@
-{"sts":[{"expiry":1809622772.657692,"host":"A2/wbeEx/aC2rtqbUKngiRfcgNWMT3tB1wb3ZmYFyRM=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1778086772.657695},{"expiry":1809622771.177372,"host":"Bdxh+Bfct++E17qtbcM3jzTcMqgY2PdzmTY1K08VpdA=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086771.17738},{"expiry":1809622787.744493,"host":"DgJLCgwvkhiG9w8Xys+hBplrzB5T7jbEpsNb+49ukHg=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086787.744495},{"expiry":1809622787.601367,"host":"EkacVdsJn1ARSX2ppOETh7L0Zl6RM8OOYwCLbLt5wqg=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086787.601368},{"expiry":1809620003.143162,"host":"F0csEKuCD0eR2V2NN+/mtNQCaUiA0JpZHdP+LzN4Cgk=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778084003.143165},{"expiry":1783260315.099109,"host":"GA/hN++eo+nH37fA4GTCoF4yWmEsPJk7j+u2eoLTVcQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076315.099111},{"expiry":1809622786.963083,"host":"LJaCO7AMX3IVHDbwJj83Z8ve8TWvhC8VbWn/qhftJY8=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086786.963086},{"expiry":1809622784.705636,"host":"Qp9cfodp255q5y8sD5Gkmc0obIy40cpu3QMn2TUuiNM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086784.705639},{"expiry":1809612317.558494,"host":"R5CneIBsN7LVoF4+oxrTCA3IVV7vMJSx+P3GFqZznXs=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076317.558496},{"expiry":1809612319.883013,"host":"SpAtk5b3UtuW7vkMZW4MXng6Fcv8hVHpksth/ka1f+c=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.883016},{"expiry":1809612319.71723,"host":"S1JCOW3azYDC5JK2vE/fG/dUeWn3aTgZODU5vEaqsh0=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.717233},{"expiry":1809616979.291947,"host":"TPxfUZ+8fM4vFfENpe/X8KXm0MTdAPk/ZhAvvAwHlm4=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778080979.291949},{"expiry":1809622788.813456,"host":"Vpk4aiXc3U7YeKUIdiZnkPQ/DryP52cc2kB1MKjcolM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086788.81346},{"expiry":1809621258.059715,"host":"aaw9MBcVan5WthkoQWYaEz1502KFXFFfxx34Nw0oQmQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778085258.059717},{"expiry":1809617107.15301,"host":"ea5U4KbtPrh9ba6uF9KynRCmWUhrGPo1U1XvaOHf7sw=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081107.153013},{"expiry":1809612319.688066,"host":"iq8JoN2FUSuP+v40rHqp3/C6eoA3MuWO+i+uCto0za8=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.688068},{"expiry":1809617082.198997,"host":"pWOREOMq0M7/H6ysp59oxmu1ZKeA2CEDQcQs9uXyPFQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081082.199},{"expiry":1809617107.344202,"host":"r3R+DRmSJvkaMcPPLjfgBDsokTmxxWYU8KUeHsEBJSo=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081107.344205},{"expiry":1809622788.847267,"host":"uEZTlxBfNWjUUXSVHIZ5jVd4hVz59yUJFaTWBoUSoyo=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086788.84727},{"expiry":1809622787.649605,"host":"vNDoXtm//gthFUPpmv+B45Ju1Pe7ePmdvWZgQZ4PY3w=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086787.649608},{"expiry":1809612311.334785,"host":"vip0AA6I/RumHf+HaYV7onVuYylaAqPsC+TMDxNv268=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076311.334788},{"expiry":1809620003.544906,"host":"xx7JL0TPjNT9/50nstatSS71QZJwalnz2Ru9yOCXuNs=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778084003.544908},{"expiry":1809617002.620419,"host":"yIP5EgxK5v1lbJLhZbAKp4cNSTcYa9Qg8Bvkn8ef9yQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081002.620424},{"expiry":1809622781.317187,"host":"zR1mFxMYQopPt9xPiMwhnBtTCD7IkqxcvjWtmtURdXA=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086781.317189},{"expiry":1809622787.362427,"host":"zu4+REkPUElG0tlE+sFuJ8mEP1lV/Umobu5Cf4+f1HA=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086787.36243},{"expiry":1809622787.618751,"host":"2sdpf8rVqETwVr07X8pQd5v6YrSNUPgCdridvu2O/yw=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086787.618753},{"expiry":1809622787.036926,"host":"4Wy9SyFnufEX0UwN0xx9kcCiPyEE0LohTZfAsApiEMM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086787.036929},{"expiry":1809612317.955306,"host":"4akBB59v2MTqUI1XC6wN+y9nXT5rOCxACzTIVydkwFM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076317.955308},{"expiry":1809622773.670653,"host":"6SXipZ22ReoFLztAlmKgp1sypANWAUSO4mMA+DFk3Rg=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086773.670656},{"expiry":1809612319.553668,"host":"8an1eyalKXfid19zDjgq2n/7+cFLlwNp6NYlYIuN2pI=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.55367}],"version":2}
\ No newline at end of file
+{"sts":[{"expiry":1809692669.480525,"host":"A2/wbeEx/aC2rtqbUKngiRfcgNWMT3tB1wb3ZmYFyRM=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1778156669.480528},{"expiry":1809692668.024894,"host":"Bdxh+Bfct++E17qtbcM3jzTcMqgY2PdzmTY1K08VpdA=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156668.024902},{"expiry":1809692671.266509,"host":"DgJLCgwvkhiG9w8Xys+hBplrzB5T7jbEpsNb+49ukHg=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156671.266512},{"expiry":1809692671.13518,"host":"EkacVdsJn1ARSX2ppOETh7L0Zl6RM8OOYwCLbLt5wqg=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156671.135182},{"expiry":1809690959.748696,"host":"F0csEKuCD0eR2V2NN+/mtNQCaUiA0JpZHdP+LzN4Cgk=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778154959.748698},{"expiry":1783260315.099109,"host":"GA/hN++eo+nH37fA4GTCoF4yWmEsPJk7j+u2eoLTVcQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076315.099111},{"expiry":1809692670.453667,"host":"LJaCO7AMX3IVHDbwJj83Z8ve8TWvhC8VbWn/qhftJY8=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156670.45367},{"expiry":1809692669.598417,"host":"Qp9cfodp255q5y8sD5Gkmc0obIy40cpu3QMn2TUuiNM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156669.59842},{"expiry":1809612317.558494,"host":"R5CneIBsN7LVoF4+oxrTCA3IVV7vMJSx+P3GFqZznXs=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076317.558496},{"expiry":1809612319.883013,"host":"SpAtk5b3UtuW7vkMZW4MXng6Fcv8hVHpksth/ka1f+c=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.883016},{"expiry":1809612319.71723,"host":"S1JCOW3azYDC5JK2vE/fG/dUeWn3aTgZODU5vEaqsh0=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.717233},{"expiry":1809616979.291947,"host":"TPxfUZ+8fM4vFfENpe/X8KXm0MTdAPk/ZhAvvAwHlm4=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778080979.291949},{"expiry":1809692672.41629,"host":"Vpk4aiXc3U7YeKUIdiZnkPQ/DryP52cc2kB1MKjcolM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156672.416294},{"expiry":1809621258.059715,"host":"aaw9MBcVan5WthkoQWYaEz1502KFXFFfxx34Nw0oQmQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778085258.059717},{"expiry":1809617107.15301,"host":"ea5U4KbtPrh9ba6uF9KynRCmWUhrGPo1U1XvaOHf7sw=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081107.153013},{"expiry":1809612319.688066,"host":"iq8JoN2FUSuP+v40rHqp3/C6eoA3MuWO+i+uCto0za8=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.688068},{"expiry":1809617082.198997,"host":"pWOREOMq0M7/H6ysp59oxmu1ZKeA2CEDQcQs9uXyPFQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081082.199},{"expiry":1809617107.344202,"host":"r3R+DRmSJvkaMcPPLjfgBDsokTmxxWYU8KUeHsEBJSo=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081107.344205},{"expiry":1809692672.457383,"host":"uEZTlxBfNWjUUXSVHIZ5jVd4hVz59yUJFaTWBoUSoyo=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156672.457387},{"expiry":1809692671.11481,"host":"vNDoXtm//gthFUPpmv+B45Ju1Pe7ePmdvWZgQZ4PY3w=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156671.114813},{"expiry":1809612311.334785,"host":"vip0AA6I/RumHf+HaYV7onVuYylaAqPsC+TMDxNv268=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076311.334788},{"expiry":1809620003.544906,"host":"xx7JL0TPjNT9/50nstatSS71QZJwalnz2Ru9yOCXuNs=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778084003.544908},{"expiry":1809617002.620419,"host":"yIP5EgxK5v1lbJLhZbAKp4cNSTcYa9Qg8Bvkn8ef9yQ=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778081002.620424},{"expiry":1809622781.317187,"host":"zR1mFxMYQopPt9xPiMwhnBtTCD7IkqxcvjWtmtURdXA=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778086781.317189},{"expiry":1809692670.881281,"host":"zu4+REkPUElG0tlE+sFuJ8mEP1lV/Umobu5Cf4+f1HA=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156670.881284},{"expiry":1809692671.169371,"host":"2sdpf8rVqETwVr07X8pQd5v6YrSNUPgCdridvu2O/yw=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156671.169373},{"expiry":1809692670.526332,"host":"4Wy9SyFnufEX0UwN0xx9kcCiPyEE0LohTZfAsApiEMM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156670.526335},{"expiry":1809612317.955306,"host":"4akBB59v2MTqUI1XC6wN+y9nXT5rOCxACzTIVydkwFM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076317.955308},{"expiry":1809692668.583761,"host":"6SXipZ22ReoFLztAlmKgp1sypANWAUSO4mMA+DFk3Rg=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778156668.583764},{"expiry":1809612319.553668,"host":"8an1eyalKXfid19zDjgq2n/7+cFLlwNp6NYlYIuN2pI=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1778076319.55367}],"version":2}
\ No newline at end of file
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Preferences b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Preferences
index 5da89bc..b6908d3 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Preferences
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Preferences
@@ -1 +1 @@
-{"aadc_info":{"age_group":0},"accessibility":{"captions":{"headless_caption_enabled":false}},"account_tracker_service_last_update":"13422546802703952","alternate_error_pages":{"backup":true},"autocomplete":{"retention_policy_last_version":142},"autofill":{"edge_autofill_purge_low_quality_profiles_by_timeline":false,"last_version_deduped":142,"upload_encoding_seed":"950CF7FB29E5B991A0C15087EF20880C"},"bookmark":{"storage_computation_last_update":"13422546800845818"},"browser":{"app_window_placement":{"EdgeDevToolsApp":{"always_on_top":false,"bottom":1266,"left":54,"maximized":false,"right":1074,"top":269,"work_area_bottom":1392,"work_area_left":0,"work_area_right":3440,"work_area_top":0}},"available_dark_theme_options":"All","recent_theme_color_list":[4293914607.0,4293914607.0,4293914607.0,4293914607.0,4293914607.0],"user_level_features_context":{},"window_placement_popup":{"bottom":1392,"left":10,"maximized":false,"right":1731,"top":0,"work_area_bottom":1392,"work_area_left":0,"work_area_right":3440,"work_area_top":0}},"browser_content_container_height":685,"browser_content_container_width":1084,"browser_content_container_x":0,"browser_content_container_y":0,"commerce_daily_metrics_last_update_time":"13422546800846068","countryid_at_install":17230,"credentials_enable_service":false,"devtools":{"last_open_timestamp":"13422547064786","preferences":{"closeable-tabs":"{\"security\":true,\"heap-profiler\":true,\"resources\":true,\"lighthouse\":true,\"welcome\":true,\"timeline\":true,\"network\":true,\"cssoverview\":true,\"issues-pane\":true}","cloud-release-notes":"{\"edgeVersion\":142,\"shouldOpenWelcome\":true,\"help\":[{\"title\":\"DevTools documentation\",\"linkId\":\"2196640\",\"localizedAnnouncementKey\":\"helpCard1\",\"iconName\":\"edge-documentation_book_filled\"},{\"title\":\"Overview of all tools\",\"linkId\":\"2196549\",\"localizedAnnouncementKey\":\"helpCard2\",\"iconName\":\"edge-developer-resources\"},{\"title\":\"Use Copilot to explain Console errors\",\"linkId\":\"2257416\",\"localizedAnnouncementKey\":\"helpCard3\",\"iconName\":\"edge-copilot\"},{\"title\":\"Videos about web development with Microsoft Edge\",\"linkId\":\"2196701\",\"localizedAnnouncementKey\":\"helpCard5\",\"iconName\":\"edge-run_command\"},{\"title\":\"Accessibility testing features\",\"linkId\":\"2196801\",\"localizedAnnouncementKey\":\"helpCard6\",\"iconName\":\"edge-documentation_book_filled\"},{\"title\":\"Use the Console tool to track down problems\",\"linkId\":\"2196702\",\"localizedAnnouncementKey\":\"helpCard7\",\"iconName\":\"edge-console\"},{\"title\":\"Modify and debug JS with the Sources tool\",\"linkId\":\"2196900\",\"localizedAnnouncementKey\":\"helpCard8\",\"iconName\":\"edge-sources\"},{\"title\":\"Find source files for a page using the search tool\",\"linkId\":\"2196802\",\"localizedAnnouncementKey\":\"helpCard9\",\"iconName\":\"edge-sources-search-sources-tab\"},{\"title\":\"Microsoft Edge DevTools for Visual Studio Code\",\"linkId\":\"2196901\",\"localizedAnnouncementKey\":\"helpCard10\",\"iconName\":\"edge-help_tooltips\"}],\"releaseNotes\":[{\"title\":\"Activity Bar will only appear horizontally in Edge 144\",\"subtitle\":\"Starting with Microsoft Edge 144, the vertical Activity Bar will no longer be supported.\",\"linkId\":\"2341450\",\"localizedAnnouncementKey\":\"edgeAnnouncement1\"}],\"header\":{\"localizedKey\":\"highlightsFromTheLatestMicrosoft\",\"title\":\"What's New\"},\"learnHeader\":{\"localizedKey\":\"learnHeader\",\"title\":\"Learn\"},\"allAnnouncementsLinkText\":{\"localizedKey\":\"allAnnouncementsLinkText\",\"title\":\"View all\"},\"whatsNewVideo\":{\"title\":\"What's New in DevTools 115 - 125\",\"subtitle\":\"Check out our video series on the latest and greatest features in DevTools!\",\"linkId\":\"26zDq9Xhz7k\",\"imageName\":\"whats-new-115-125-thumbnail.jpg\",\"imageAltText\":\"A title card for the Microsoft Edge: What's New in DevTools 115 - 125 video\",\"localizedKey\":\"whatsNewVideo\"},\"viewAllLinkId\":\"2341449\",\"localized\":{\"en-US\":{\"panels/edge_welcome/ReleaseNotes.ts | helpCard1\":{\"message\":\"DevTools documentation\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard2\":{\"message\":\"Overview of all tools\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard3\":{\"message\":\"Use Copilot to explain Console errors\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard5\":{\"message\":\"Videos about web development with Microsoft Edge\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard6\":{\"message\":\"Accessibility testing features\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard7\":{\"message\":\"Use the Console tool to track down problems\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard8\":{\"message\":\"Modify and debug JS with the Sources tool\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard9\":{\"message\":\"Find source files for a page using the search tool\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard10\":{\"message\":\"Microsoft Edge DevTools for Visual Studio Code\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | edgeAnnouncement1\":{\"message\":\"Activity Bar will only appear horizontally in Edge 144\",\"description\":\"Title of a release note, shown next to a description, in a list of release notes.\"},\"panels/edge_welcome/ReleaseNotes.ts | edgeAnnouncement1Description\":{\"message\":\"Starting with Microsoft Edge 144, the vertical Activity Bar will no longer be supported.\",\"description\":\"Description of a release note providing further details, shown next to each release note title.\"},\"panels/edge_welcome/ReleaseNotes.ts | learnHeader\":{\"message\":\"Learn\",\"description\":\"Title text of a header bar in the welcome tool.\"},\"panels/edge_welcome/ReleaseNotes.ts | allAnnouncementsLinkText\":{\"message\":\"View all\",\"description\":\"Title text of a header bar in the welcome tool.\"},\"panels/edge_welcome/ReleaseNotes.ts | highlightsFromTheLatestMicrosoft\":{\"message\":\"What's New\",\"description\":\"Title text of a header bar in the welcome tool.\"},\"panels/edge_welcome/ReleaseNotes.ts | whatsNewVideo\":{\"message\":\"What's New in DevTools 115 - 125\",\"description\":\"Title of a video summarizing the latest release, shown next to a description, above a list of release notes.\"},\"panels/edge_welcome/ReleaseNotes.ts | whatsNewVideoDescription\":{\"message\":\"Check out our video series on the latest and greatest features in DevTools!\",\"description\":\"Description of a video link providing further details\"}}}}","console.sidebar-selected-filter":"\"message\"","console.sidebar.width":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","drawer-minimize-state":"false","edge-inspector.actions-tab-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"},\"horizontal\":{\"size\":30,\"showMode\":\"Both\"}}","inspector.drawer-split-view-state":"{\"horizontal\":{\"size\":0,\"showMode\":\"Both\"}}","inspectorVersion":"40","last-open-view-in-drawer":"\"console\"","network-panel-sidebar-state":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","network-panel-split-view-state":"{\"vertical\":{\"size\":329}}","network-panel-split-view-waterfall":"{\"vertical\":{\"size\":0}}","network-resource-type-filters":"{\"all\":true}","network-text-filter":"\"\"","panel-selected-tab":"\"network\"","release-note-version-seen":"142","request-info-form-data-category-expanded":"true","request-info-general-category-expanded":"true","request-info-query-string-category-expanded":"true","request-info-request-headers-category-expanded":"true","request-info-request-payload-category-expanded":"true","request-info-response-headers-category-expanded":"true","sources-panel-debugger-sidebar-tab-order":"{\"sources.scope-chain\":10,\"sources.watch\":20}","sources-panel-navigator-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","sources-panel-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"},\"horizontal\":{\"size\":0,\"showMode\":\"Both\"}}","tools-used":"{\"welcome\":1778073238153,\"console-view\":1778073465046,\"sources\":1778073238270,\"network\":1778073533701}"},"synced_preferences_sync_disabled":{"syncedInspectorVersion":"40"}},"domain_diversity":{"last_reporting_timestamp":"13422557185686044"},"edge":{"bookmarks":{"last_dup_info_record_time":"13422546810850948"},"msa_sso_info":{"allow_for_non_msa_profile":true},"profile_sso_info":{"is_msa_first_profile":true,"msa_sso_algo_state":1},"services":{"signin_scoped_device_id":"255d78e1-72cb-47ee-909e-9819a850d889"}},"edge_rewards":{"cache_data":"CAA=","coachmark_promotions":{},"hva_promotions":[],"hva_webui_action_status_dict":{},"refresh_status_muted_until":"13423151600814637"},"edge_ux_config":{"assignmentcontext":"","dataversion":"0","experimentvariables":{},"flights":{}},"edge_vpn":{"available":true},"edge_wallet":{"passwords":{"password_lost_report_date":"13422546830816975"}},"enterprise_profile_guid":"9bd7af34-9d92-48c9-a729-70ae19e85bc3","extension":{"installed_extension_count":2},"extensions":{"alerts":{"initialized":true},"chrome_url_overrides":{},"commands":{},"last_chrome_version":"142.0.3595.80","pdf_upsell_triggered":false,"pinned_extension_migration":true,"pinned_extensions":[]},"fsd":{"retention_policy_last_version":142},"gaia_cookie":{"periodic_report_time_2":"13422546800814511"},"https_upgrade_navigations":{"2026-05-06":10},"intl":{"selected_languages":"zh-CN,en,en-GB,en-US"},"language_dwell_time_average":{"zh-CN":15.414634146341468},"language_model_counters":{"zh-CN":75},"language_usage_count":{"zh-CN":41},"media":{"device_id_salt":"66881CCF929243473AEC413F32CE3CFC","engagement":{"schema_version":5}},"muid":{"last_sync":"13422546800845679","values_seen":[]},"optimization_guide":{"hintsfetcher":{"hosts_successfully_fetched":{}},"previously_registered_optimization_types":{"ABOUT_THIS_SITE":true,"GLIC_ACTION_PAGE_BLOCK":true,"LOADING_PREDICTOR":true,"MERCHANT_TRUST_SIGNALS_V2":true,"PRICE_TRACKING":true,"V8_COMPILE_HINTS":true}},"password_manager":{"account_store_backup_password_cleaning_last_timestamp":"13422546860819200","account_store_migrated_to_os_crypt_async":true,"profile_store_backup_password_cleaning_last_timestamp":"13422546860819302","profile_store_migrated_to_os_crypt_async":true},"personalization_data_consent":{"personalization_in_context_consent_can_prompt":true,"personalization_in_context_count":0},"privacy_sandbox":{"first_party_sets_data_access_allowed_initialized":true},"profile":{"avatar_index":20,"content_settings":{"exceptions":{"3pcd_heuristics_grants":{},"3pcd_support":{},"abusive_notification_permissions":{},"access_to_get_all_screens_media_in_session":{},"anti_abuse":{},"app_banner":{},"ar":{},"are_suspicious_notifications_allowlisted_by_user":{},"auto_picture_in_picture":{},"auto_select_certificate":{},"automatic_downloads":{},"automatic_fullscreen":{},"autoplay":{},"background_sync":{},"bluetooth_chooser_data":{},"bluetooth_guard":{},"bluetooth_scanning":{},"camera_pan_tilt_zoom":{},"captured_surface_control":{},"clear_browsing_data_cookies_exceptions":{},"client_hints":{},"clipboard":{},"controlled_frame":{},"cookie_controls_metadata":{"https://[*.]alipay.com,*":{"last_modified":"13422560388764213","setting":{}}},"cookies":{},"direct_sockets":{},"direct_sockets_private_network_access":{},"display_media_system_audio":{},"disruptive_notification_permissions":{},"durable_storage":{},"edge_ad_targeting":{},"edge_ad_targeting_data":{},"edge_browser_action":{},"edge_sdsm":{},"edge_split_screen":{},"edge_tech_scam_detection":{},"edge_u2f_api_request":{},"edge_user_agent_token":{},"fedcm_idp_registration":{},"fedcm_idp_signin":{},"fedcm_share":{},"file_system_access_chooser_data":{},"file_system_access_extended_permission":{},"file_system_access_restore_permission":{},"file_system_last_picked_directory":{},"file_system_read_guard":{},"file_system_write_guard":{},"formfill_metadata":{},"geolocation":{},"geolocation_with_options":{},"hand_tracking":{},"hid_chooser_data":{},"hid_guard":{},"http_allowed":{},"https_enforced":{},"idle_detection":{},"images":{},"important_site_info":{},"initialized_translations":{},"intent_picker_auto_display":{},"javascript":{},"javascript_jit":{},"javascript_optimizer":{},"keyboard_lock":{},"legacy_cookie_access":{},"legacy_cookie_scope":{},"local_fonts":{},"local_network_access":{},"media_engagement":{"https://accounts.alipay.com:443,*":{"expiration":"13430330712093240","last_modified":"13422554712093243","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":1}},"https://auth.alipay.com:443,*":{"expiration":"13430336386977039","last_modified":"13422560386977041","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":29}},"https://authsa127.alipay.com:443,*":{"expiration":"13430336387370127","last_modified":"13422560387370129","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":28}},"https://b.alipay.com:443,*":{"expiration":"13430325923665237","last_modified":"13422549923665241","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":1}},"https://consumeprod.alipay.com:443,*":{"expiration":"13430336388881171","last_modified":"13422560388881175","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":7}},"https://my.alipay.com:443,*":{"expiration":"13430336388764839","last_modified":"13422560388764842","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":27}}},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"nfc_devices":{},"notification_interactions":{},"notification_permission_review":{},"notifications":{},"ondevice_languages_downloaded":{},"password_protection":{},"payment_handler":{},"permission_actions_history":{},"permission_autoblocking_data":{},"permission_autorevocation_data":{},"pointer_lock":{},"popups":{},"protected_media_identifier":{},"protocol_handler":{},"reduced_accept_language":{},"safe_browsing_url_check_data":{},"secure_network":{},"secure_network_sites":{},"sensors":{},"serial_chooser_data":{},"serial_guard":{},"site_engagement":{"https://accounts.alipay.com:443,*":{"last_modified":"13422554705963559","setting":{"lastEngagementTime":1.3422554705963548e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":6.899999999999999,"rawScore":6.899999999999999}},"https://auth.alipay.com:443,*":{"last_modified":"13422560383012836","setting":{"lastEngagementTime":1.342256038301282e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":15.0,"rawScore":30.000000000000007}},"https://authsa127.alipay.com:443,*":{"last_modified":"13422554713267112","setting":{"lastEngagementTime":1.34225547132671e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":2.7,"rawScore":2.7}},"https://consumeprod.alipay.com:443,*":{"last_modified":"13422560388765351","setting":{"lastEngagementTime":1.3422560388765344e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":12.0,"rawScore":12.0}},"https://my.alipay.com:443,*":{"last_modified":"13422546837856376","setting":{"lastEngagementTime":1.3422546837856368e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":2.1,"rawScore":2.1}}},"sleeping_tabs":{},"sound":{},"speaker_selection":{},"ssl_cert_decisions":{},"storage_access":{},"storage_access_header_origin_trial":{},"subresource_filter":{},"subresource_filter_data":{},"suspicious_notification_ids":{},"suspicious_notification_show_original":{},"third_party_storage_partitioning":{},"top_level_3pcd_origin_trial":{},"top_level_3pcd_support":{},"top_level_storage_access":{},"trackers":{},"trackers_data":{"https://assets.alicdn.com:443,*":{"last_modified":"13422546804986408","setting":{"allowed_tracker_count":1}}},"tracking_org_exceptions":{},"tracking_org_relationships":{"https://alibabagroup.test:443,*":{"last_modified":"13422557833596993","setting":{"https://accounts|alipay|com/":true,"https://auth|alipay|com/":true,"https://consumeprod|alipay|com/":true}}},"tracking_protection":{},"unused_site_permissions":{},"usb_chooser_data":{},"usb_guard":{},"vr":{},"web_app_installation":{},"webid_api":{},"webid_auto_reauthn":{},"window_placement":{}},"pref_version":1},"created_by_version":"142.0.3595.80","creation_time":"13422546800791319","edge_crash_exit_count":0,"edge_password_is_using_new_login_db_path":false,"edge_password_login_db_path_flip_flop_count":0,"edge_profile_id":"752b6372-c68b-4d86-99b8-b22924ac0200","exit_type":"Normal","has_seen_signin_fre":false,"is_relative_to_aad":false,"last_engagement_time":"13422560388765344","last_time_obsolete_http_credentials_removed":1778073260.819234,"last_time_password_store_metrics_reported":1778073230.816643,"managed_user_id":"","name":"用户配置 1","network_pbs":{},"observed_session_time":{"feedback_rating_in_product_help_observed_session_time_key_142.0.3595.80":825.0},"password_hash_data_list":[],"signin_fre_seen_time":"13422546800808667","were_old_google_logins_removed":true},"reset_prepopulated_engines":false,"safety_hub":{"unused_site_permissions_revocation":{"migration_completed":true}},"sessions":{"event_log":[{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422557260876640","type":2,"window_count":0},{"crashed":false,"time":"13422557297614424","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422557323888432","type":2,"window_count":0},{"crashed":false,"time":"13422557381134015","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422557397276081","type":2,"window_count":0},{"crashed":false,"time":"13422557541995227","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422557603681504","type":2,"window_count":0},{"crashed":false,"time":"13422557815293772","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422557833712052","type":2,"window_count":0},{"crashed":false,"time":"13422558215201459","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422558233804216","type":2,"window_count":0},{"crashed":false,"time":"13422558534241019","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422558551304841","type":2,"window_count":0},{"crashed":false,"time":"13422558684909425","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422558702407109","type":2,"window_count":0},{"crashed":false,"time":"13422558847906984","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422558865682107","type":2,"window_count":0},{"crashed":false,"time":"13422560370787634","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422560388892292","type":2,"window_count":0}],"session_data_status":3},"signin":{"accounts_metadata_dict":{},"allowed":true,"cookie_clear_on_exit_migration_notice_complete":true},"spellcheck":{"dictionaries":["zh-CN"]},"syncing_theme_prefs_migrated_to_non_syncing":true,"total_passwords_available_for_account":0,"total_passwords_available_for_profile":0,"translate_site_blacklist":[],"translate_site_blocklist_with_time":{},"user_experience_metrics":{"personalization_data_consent_enabled_last_known_value":false}}
\ No newline at end of file
+{"aadc_info":{"age_group":0},"accessibility":{"captions":{"headless_caption_enabled":false}},"account_tracker_service_last_update":"13422546802703952","alternate_error_pages":{"backup":true},"autocomplete":{"retention_policy_last_version":142},"autofill":{"edge_autofill_purge_low_quality_profiles_by_timeline":false,"last_version_deduped":142,"upload_encoding_seed":"950CF7FB29E5B991A0C15087EF20880C"},"bookmark":{"storage_computation_last_update":"13422546800845818"},"browser":{"app_window_placement":{"EdgeDevToolsApp":{"always_on_top":false,"bottom":1266,"left":54,"maximized":false,"right":1074,"top":269,"work_area_bottom":1392,"work_area_left":0,"work_area_right":3440,"work_area_top":0}},"available_dark_theme_options":"All","recent_theme_color_list":[4293914607.0,4293914607.0,4293914607.0,4293914607.0,4293914607.0],"user_level_features_context":{},"window_placement_popup":{"bottom":1392,"left":10,"maximized":false,"right":1731,"top":0,"work_area_bottom":1392,"work_area_left":0,"work_area_right":3440,"work_area_top":0}},"browser_content_container_height":685,"browser_content_container_width":1084,"browser_content_container_x":0,"browser_content_container_y":0,"commerce_daily_metrics_last_update_time":"13422546800846068","countryid_at_install":17230,"credentials_enable_service":false,"devtools":{"last_open_timestamp":"13422547064786","preferences":{"closeable-tabs":"{\"security\":true,\"heap-profiler\":true,\"resources\":true,\"lighthouse\":true,\"welcome\":true,\"timeline\":true,\"network\":true,\"cssoverview\":true,\"issues-pane\":true}","cloud-release-notes":"{\"edgeVersion\":142,\"shouldOpenWelcome\":true,\"help\":[{\"title\":\"DevTools documentation\",\"linkId\":\"2196640\",\"localizedAnnouncementKey\":\"helpCard1\",\"iconName\":\"edge-documentation_book_filled\"},{\"title\":\"Overview of all tools\",\"linkId\":\"2196549\",\"localizedAnnouncementKey\":\"helpCard2\",\"iconName\":\"edge-developer-resources\"},{\"title\":\"Use Copilot to explain Console errors\",\"linkId\":\"2257416\",\"localizedAnnouncementKey\":\"helpCard3\",\"iconName\":\"edge-copilot\"},{\"title\":\"Videos about web development with Microsoft Edge\",\"linkId\":\"2196701\",\"localizedAnnouncementKey\":\"helpCard5\",\"iconName\":\"edge-run_command\"},{\"title\":\"Accessibility testing features\",\"linkId\":\"2196801\",\"localizedAnnouncementKey\":\"helpCard6\",\"iconName\":\"edge-documentation_book_filled\"},{\"title\":\"Use the Console tool to track down problems\",\"linkId\":\"2196702\",\"localizedAnnouncementKey\":\"helpCard7\",\"iconName\":\"edge-console\"},{\"title\":\"Modify and debug JS with the Sources tool\",\"linkId\":\"2196900\",\"localizedAnnouncementKey\":\"helpCard8\",\"iconName\":\"edge-sources\"},{\"title\":\"Find source files for a page using the search tool\",\"linkId\":\"2196802\",\"localizedAnnouncementKey\":\"helpCard9\",\"iconName\":\"edge-sources-search-sources-tab\"},{\"title\":\"Microsoft Edge DevTools for Visual Studio Code\",\"linkId\":\"2196901\",\"localizedAnnouncementKey\":\"helpCard10\",\"iconName\":\"edge-help_tooltips\"}],\"releaseNotes\":[{\"title\":\"Activity Bar will only appear horizontally in Edge 144\",\"subtitle\":\"Starting with Microsoft Edge 144, the vertical Activity Bar will no longer be supported.\",\"linkId\":\"2341450\",\"localizedAnnouncementKey\":\"edgeAnnouncement1\"}],\"header\":{\"localizedKey\":\"highlightsFromTheLatestMicrosoft\",\"title\":\"What's New\"},\"learnHeader\":{\"localizedKey\":\"learnHeader\",\"title\":\"Learn\"},\"allAnnouncementsLinkText\":{\"localizedKey\":\"allAnnouncementsLinkText\",\"title\":\"View all\"},\"whatsNewVideo\":{\"title\":\"What's New in DevTools 115 - 125\",\"subtitle\":\"Check out our video series on the latest and greatest features in DevTools!\",\"linkId\":\"26zDq9Xhz7k\",\"imageName\":\"whats-new-115-125-thumbnail.jpg\",\"imageAltText\":\"A title card for the Microsoft Edge: What's New in DevTools 115 - 125 video\",\"localizedKey\":\"whatsNewVideo\"},\"viewAllLinkId\":\"2341449\",\"localized\":{\"en-US\":{\"panels/edge_welcome/ReleaseNotes.ts | helpCard1\":{\"message\":\"DevTools documentation\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard2\":{\"message\":\"Overview of all tools\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard3\":{\"message\":\"Use Copilot to explain Console errors\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard5\":{\"message\":\"Videos about web development with Microsoft Edge\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard6\":{\"message\":\"Accessibility testing features\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard7\":{\"message\":\"Use the Console tool to track down problems\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard8\":{\"message\":\"Modify and debug JS with the Sources tool\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard9\":{\"message\":\"Find source files for a page using the search tool\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | helpCard10\":{\"message\":\"Microsoft Edge DevTools for Visual Studio Code\",\"description\":\"Title of a help link in a list of help section.\"},\"panels/edge_welcome/ReleaseNotes.ts | edgeAnnouncement1\":{\"message\":\"Activity Bar will only appear horizontally in Edge 144\",\"description\":\"Title of a release note, shown next to a description, in a list of release notes.\"},\"panels/edge_welcome/ReleaseNotes.ts | edgeAnnouncement1Description\":{\"message\":\"Starting with Microsoft Edge 144, the vertical Activity Bar will no longer be supported.\",\"description\":\"Description of a release note providing further details, shown next to each release note title.\"},\"panels/edge_welcome/ReleaseNotes.ts | learnHeader\":{\"message\":\"Learn\",\"description\":\"Title text of a header bar in the welcome tool.\"},\"panels/edge_welcome/ReleaseNotes.ts | allAnnouncementsLinkText\":{\"message\":\"View all\",\"description\":\"Title text of a header bar in the welcome tool.\"},\"panels/edge_welcome/ReleaseNotes.ts | highlightsFromTheLatestMicrosoft\":{\"message\":\"What's New\",\"description\":\"Title text of a header bar in the welcome tool.\"},\"panels/edge_welcome/ReleaseNotes.ts | whatsNewVideo\":{\"message\":\"What's New in DevTools 115 - 125\",\"description\":\"Title of a video summarizing the latest release, shown next to a description, above a list of release notes.\"},\"panels/edge_welcome/ReleaseNotes.ts | whatsNewVideoDescription\":{\"message\":\"Check out our video series on the latest and greatest features in DevTools!\",\"description\":\"Description of a video link providing further details\"}}}}","console.sidebar-selected-filter":"\"message\"","console.sidebar.width":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","drawer-minimize-state":"false","edge-inspector.actions-tab-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"},\"horizontal\":{\"size\":30,\"showMode\":\"Both\"}}","inspector.drawer-split-view-state":"{\"horizontal\":{\"size\":0,\"showMode\":\"Both\"}}","inspectorVersion":"40","last-open-view-in-drawer":"\"console\"","network-panel-sidebar-state":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","network-panel-split-view-state":"{\"vertical\":{\"size\":329}}","network-panel-split-view-waterfall":"{\"vertical\":{\"size\":0}}","network-resource-type-filters":"{\"all\":true}","network-text-filter":"\"\"","panel-selected-tab":"\"network\"","release-note-version-seen":"142","request-info-form-data-category-expanded":"true","request-info-general-category-expanded":"true","request-info-query-string-category-expanded":"true","request-info-request-headers-category-expanded":"true","request-info-request-payload-category-expanded":"true","request-info-response-headers-category-expanded":"true","sources-panel-debugger-sidebar-tab-order":"{\"sources.scope-chain\":10,\"sources.watch\":20}","sources-panel-navigator-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","sources-panel-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"},\"horizontal\":{\"size\":0,\"showMode\":\"Both\"}}","tools-used":"{\"welcome\":1778073238153,\"console-view\":1778073465046,\"sources\":1778073238270,\"network\":1778073533701}"},"synced_preferences_sync_disabled":{"syncedInspectorVersion":"40"}},"domain_diversity":{"last_reporting_timestamp":"13422557185686044"},"edge":{"bookmarks":{"last_dup_info_record_time":"13422546810850948"},"msa_sso_info":{"allow_for_non_msa_profile":true},"profile_sso_info":{"is_msa_first_profile":true,"msa_sso_algo_state":1},"services":{"signin_scoped_device_id":"61195091-16bb-4c79-8673-3710cfe46190"}},"edge_rewards":{"cache_data":"CAA=","coachmark_promotions":{},"hva_promotions":[],"hva_webui_action_status_dict":{},"refresh_status_muted_until":"13423151600814637"},"edge_ux_config":{"assignmentcontext":"","dataversion":"0","experimentvariables":{},"flights":{}},"edge_vpn":{"available":true},"edge_wallet":{"passwords":{"password_lost_report_date":"13422546830816975"}},"enterprise_profile_guid":"9bd7af34-9d92-48c9-a729-70ae19e85bc3","extension":{"installed_extension_count":2},"extensions":{"alerts":{"initialized":true},"chrome_url_overrides":{},"commands":{},"last_chrome_version":"142.0.3595.80","pdf_upsell_triggered":false,"pinned_extension_migration":true,"pinned_extensions":[]},"fsd":{"retention_policy_last_version":142},"gaia_cookie":{"periodic_report_time_2":"13422546800814511"},"https_upgrade_navigations":{"2026-05-06":10},"intl":{"selected_languages":"zh-CN,en,en-GB,en-US"},"language_dwell_time_average":{"zh-CN":16.10638297872341},"language_model_counters":{"zh-CN":88},"language_usage_count":{"zh-CN":47},"media":{"device_id_salt":"66881CCF929243473AEC413F32CE3CFC","engagement":{"schema_version":5}},"muid":{"last_sync":"13422546800845679","values_seen":[]},"optimization_guide":{"hintsfetcher":{"hosts_successfully_fetched":{}},"previously_registered_optimization_types":{"ABOUT_THIS_SITE":true,"GLIC_ACTION_PAGE_BLOCK":true,"LOADING_PREDICTOR":true,"MERCHANT_TRUST_SIGNALS_V2":true,"PRICE_TRACKING":true,"V8_COMPILE_HINTS":true}},"password_manager":{"account_store_backup_password_cleaning_last_timestamp":"13422546860819200","account_store_migrated_to_os_crypt_async":true,"profile_store_backup_password_cleaning_last_timestamp":"13422546860819302","profile_store_migrated_to_os_crypt_async":true},"personalization_data_consent":{"personalization_in_context_consent_can_prompt":true,"personalization_in_context_count":0},"privacy_sandbox":{"first_party_sets_data_access_allowed_initialized":true},"profile":{"avatar_index":20,"content_settings":{"exceptions":{"3pcd_heuristics_grants":{},"3pcd_support":{},"abusive_notification_permissions":{},"access_to_get_all_screens_media_in_session":{},"anti_abuse":{},"app_banner":{},"ar":{},"are_suspicious_notifications_allowlisted_by_user":{},"auto_picture_in_picture":{},"auto_select_certificate":{},"automatic_downloads":{},"automatic_fullscreen":{},"autoplay":{},"background_sync":{},"bluetooth_chooser_data":{},"bluetooth_guard":{},"bluetooth_scanning":{},"camera_pan_tilt_zoom":{},"captured_surface_control":{},"clear_browsing_data_cookies_exceptions":{},"client_hints":{},"clipboard":{},"controlled_frame":{},"cookie_controls_metadata":{"https://[*.]alipay.com,*":{"last_modified":"13422630272371763","setting":{}}},"cookies":{},"direct_sockets":{},"direct_sockets_private_network_access":{},"display_media_system_audio":{},"disruptive_notification_permissions":{},"durable_storage":{},"edge_ad_targeting":{},"edge_ad_targeting_data":{},"edge_browser_action":{},"edge_sdsm":{},"edge_split_screen":{},"edge_tech_scam_detection":{},"edge_u2f_api_request":{},"edge_user_agent_token":{},"fedcm_idp_registration":{},"fedcm_idp_signin":{},"fedcm_share":{},"file_system_access_chooser_data":{},"file_system_access_extended_permission":{},"file_system_access_restore_permission":{},"file_system_last_picked_directory":{},"file_system_read_guard":{},"file_system_write_guard":{},"formfill_metadata":{},"geolocation":{},"geolocation_with_options":{},"hand_tracking":{},"hid_chooser_data":{},"hid_guard":{},"http_allowed":{},"https_enforced":{},"idle_detection":{},"images":{},"important_site_info":{},"initialized_translations":{},"intent_picker_auto_display":{},"javascript":{},"javascript_jit":{},"javascript_optimizer":{},"keyboard_lock":{},"legacy_cookie_access":{},"legacy_cookie_scope":{},"local_fonts":{},"local_network_access":{},"media_engagement":{"https://accounts.alipay.com:443,*":{"expiration":"13430330712093240","last_modified":"13422554712093243","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":1}},"https://auth.alipay.com:443,*":{"expiration":"13430406270468691","last_modified":"13422630270468693","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":36}},"https://authsa127.alipay.com:443,*":{"expiration":"13430406270888754","last_modified":"13422630270888756","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":32}},"https://b.alipay.com:443,*":{"expiration":"13430325923665237","last_modified":"13422549923665241","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":1}},"https://consumeprod.alipay.com:443,*":{"expiration":"13430406272496573","last_modified":"13422630272496577","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":10}},"https://my.alipay.com:443,*":{"expiration":"13430406272372342","last_modified":"13422630272372344","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":30}}},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"nfc_devices":{},"notification_interactions":{},"notification_permission_review":{},"notifications":{},"ondevice_languages_downloaded":{},"password_protection":{},"payment_handler":{},"permission_actions_history":{},"permission_autoblocking_data":{},"permission_autorevocation_data":{},"pointer_lock":{},"popups":{},"protected_media_identifier":{},"protocol_handler":{},"reduced_accept_language":{},"safe_browsing_url_check_data":{},"secure_network":{},"secure_network_sites":{},"sensors":{},"serial_chooser_data":{},"serial_guard":{},"site_engagement":{"https://accounts.alipay.com:443,*":{"last_modified":"13422627206821580","setting":{"lastEngagementTime":1.342259272401974e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":0.0,"rawScore":6.899999999999999}},"https://auth.alipay.com:443,*":{"last_modified":"13422630268033230","setting":{"lastEngagementTime":1.3422630268033216e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":15.0,"rawScore":29.225070000000006}},"https://authsa127.alipay.com:443,*":{"last_modified":"13422627206821684","setting":{"lastEngagementTime":1.3422592731323292e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":0.0,"rawScore":2.7}},"https://consumeprod.alipay.com:443,*":{"last_modified":"13422630272372729","setting":{"lastEngagementTime":1.342263027237272e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":15.0,"rawScore":14.690028}},"https://my.alipay.com:443,*":{"last_modified":"13422627206821720","setting":{"lastEngagementTime":1.342258485591256e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":0.0,"rawScore":2.1}}},"sleeping_tabs":{},"sound":{},"speaker_selection":{},"ssl_cert_decisions":{},"storage_access":{},"storage_access_header_origin_trial":{},"subresource_filter":{},"subresource_filter_data":{},"suspicious_notification_ids":{},"suspicious_notification_show_original":{},"third_party_storage_partitioning":{},"top_level_3pcd_origin_trial":{},"top_level_3pcd_support":{},"top_level_storage_access":{},"trackers":{},"trackers_data":{"https://assets.alicdn.com:443,*":{"last_modified":"13422546804986408","setting":{"allowed_tracker_count":1}}},"tracking_org_exceptions":{},"tracking_org_relationships":{"https://alibabagroup.test:443,*":{"last_modified":"13422557833596993","setting":{"https://accounts|alipay|com/":true,"https://auth|alipay|com/":true,"https://consumeprod|alipay|com/":true}}},"tracking_protection":{},"unused_site_permissions":{},"usb_chooser_data":{},"usb_guard":{},"vr":{},"web_app_installation":{},"webid_api":{},"webid_auto_reauthn":{},"window_placement":{}},"pref_version":1},"created_by_version":"142.0.3595.80","creation_time":"13422546800791319","edge_crash_exit_count":0,"edge_password_is_using_new_login_db_path":false,"edge_password_login_db_path_flip_flop_count":0,"edge_profile_id":"752b6372-c68b-4d86-99b8-b22924ac0200","exit_type":"Normal","has_seen_signin_fre":false,"is_relative_to_aad":false,"last_engagement_time":"13422630272372721","last_time_obsolete_http_credentials_removed":1778073260.819234,"last_time_password_store_metrics_reported":1778073230.816643,"managed_user_id":"","name":"用户配置 1","network_pbs":{},"observed_session_time":{"feedback_rating_in_product_help_observed_session_time_key_142.0.3595.80":960.0},"password_hash_data_list":[],"signin_fre_seen_time":"13422546800808667","were_old_google_logins_removed":true},"reset_prepopulated_engines":false,"safety_hub":{"unused_site_permissions_revocation":{"migration_completed":true}},"sessions":{"event_log":[{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422558702407109","type":2,"window_count":0},{"crashed":false,"time":"13422558847906984","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422558865682107","type":2,"window_count":0},{"crashed":false,"time":"13422560370787634","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422560388892292","type":2,"window_count":0},{"crashed":false,"time":"13422627206648950","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422627276305639","type":2,"window_count":0},{"crashed":false,"time":"13422628315281085","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422628362132409","type":2,"window_count":0},{"crashed":false,"time":"13422628520718512","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422628545089747","type":2,"window_count":0},{"crashed":false,"time":"13422628555659064","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422628572008670","type":2,"window_count":0},{"crashed":false,"time":"13422628573302553","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422628583667376","type":2,"window_count":0},{"crashed":false,"time":"13422628992880233","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422628997973375","type":2,"window_count":0},{"crashed":false,"time":"13422630267650844","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13422630272510502","type":2,"window_count":0}],"session_data_status":3},"signin":{"accounts_metadata_dict":{},"allowed":true,"cookie_clear_on_exit_migration_notice_complete":true},"spellcheck":{"dictionaries":["zh-CN"]},"syncing_theme_prefs_migrated_to_non_syncing":true,"total_passwords_available_for_account":0,"total_passwords_available_for_profile":0,"translate_site_blacklist":[],"translate_site_blocklist_with_time":{},"user_experience_metrics":{"personalization_data_consent_enabled_last_known_value":false}}
\ No newline at end of file
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/000003.log b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/000003.log
index c0d1346..906c089 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/000003.log and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/000003.log differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG
index 9ecc4e0..eb451ea 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG
@@ -1,3 +1,3 @@
-2026/05/07-00:59:31.188 50dc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/MANIFEST-000001
-2026/05/07-00:59:31.188 50dc Recovering log #3
-2026/05/07-00:59:31.190 50dc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/000003.log
+2026/05/07-20:24:28.037 c6fc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/MANIFEST-000001
+2026/05/07-20:24:28.038 c6fc Recovering log #3
+2026/05/07-20:24:28.040 c6fc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG.old b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG.old
index f271bc7..3d88125 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG.old
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Session Storage/LOG.old
@@ -1,3 +1,3 @@
-2026/05/07-00:34:08.312 f674 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/MANIFEST-000001
-2026/05/07-00:34:08.312 f674 Recovering log #3
-2026/05/07-00:34:08.315 f674 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/000003.log
+2026/05/07-20:03:13.318 f7ec Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/MANIFEST-000001
+2026/05/07-20:03:13.319 f7ec Recovering log #3
+2026/05/07-20:03:13.321 f7ec Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Session Storage/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/000003.log b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/000003.log
index d0a726a..a66ff04 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/000003.log and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/000003.log differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG
index f932344..00873ae 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG
@@ -1,3 +1,3 @@
-2026/05/07-00:59:30.785 ecb0 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/MANIFEST-000001
-2026/05/07-00:59:30.789 ecb0 Recovering log #3
-2026/05/07-00:59:30.789 ecb0 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/000003.log
+2026/05/07-20:24:27.648 a5cc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/MANIFEST-000001
+2026/05/07-20:24:27.651 a5cc Recovering log #3
+2026/05/07-20:24:27.652 a5cc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG.old b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG.old
index ffaaef6..7041cb4 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG.old
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG.old
@@ -1,3 +1,3 @@
-2026/05/07-00:34:07.905 ece0 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/MANIFEST-000001
-2026/05/07-00:34:07.909 ece0 Recovering log #3
-2026/05/07-00:34:07.909 ece0 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/000003.log
+2026/05/07-20:03:12.876 c9c4 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/MANIFEST-000001
+2026/05/07-20:03:12.882 c9c4 Recovering log #3
+2026/05/07-20:03:12.882 c9c4 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Site Characteristics Database/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG
index 1b7f4db..c5eaf1e 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG
@@ -1,3 +1,3 @@
-2026/05/07-00:59:30.784 d424 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/MANIFEST-000001
-2026/05/07-00:59:30.789 d424 Recovering log #3
-2026/05/07-00:59:30.789 d424 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/000003.log
+2026/05/07-20:24:27.647 73b4 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/MANIFEST-000001
+2026/05/07-20:24:27.651 73b4 Recovering log #3
+2026/05/07-20:24:27.651 73b4 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG.old b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG.old
index 0c211cc..5f90af8 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG.old
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG.old
@@ -1,3 +1,3 @@
-2026/05/07-00:34:07.904 6f20 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/MANIFEST-000001
-2026/05/07-00:34:07.909 6f20 Recovering log #3
-2026/05/07-00:34:07.909 6f20 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/000003.log
+2026/05/07-20:03:12.876 b7cc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/MANIFEST-000001
+2026/05/07-20:03:12.882 b7cc Recovering log #3
+2026/05/07-20:03:12.882 b7cc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\Sync Data\LevelDB/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Top Sites b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Top Sites
index aeeb9a3..7ef96aa 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Top Sites and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Top Sites differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Web Data b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Web Data
index abc9f00..6bbadb0 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Web Data and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/Web Data differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/favorites_diagnostic.log b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/favorites_diagnostic.log
index a63c840..3f54439 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/favorites_diagnostic.log
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/favorites_diagnostic.log
@@ -26,3 +26,8 @@
2026-05-06 16:31:24.926: [INFO] OnDoneLoading sync enabled: 0
2026-05-06 16:34:07.923: [INFO] OnDoneLoading sync enabled: 0
2026-05-06 16:59:30.809: [INFO] OnDoneLoading sync enabled: 0
+2026-05-07 11:33:26.664: [INFO] OnDoneLoading sync enabled: 0
+2026-05-07 11:51:55.297: [INFO] OnDoneLoading sync enabled: 0
+2026-05-07 11:55:20.733: [INFO] OnDoneLoading sync enabled: 0
+2026-05-07 11:55:55.674: [INFO] OnDoneLoading sync enabled: 0
+2026-05-07 11:56:13.319: [INFO] OnDoneLoading sync enabled: 0
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/000003.log b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/000003.log
index 1f3597f..6cb8c8c 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/000003.log and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/000003.log differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG
index 19b38ed..b4af888 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG
@@ -1,3 +1,3 @@
-2026/05/07-00:59:30.817 f6dc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/MANIFEST-000001
-2026/05/07-00:59:30.817 f6dc Recovering log #3
-2026/05/07-00:59:30.817 f6dc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/000003.log
+2026/05/07-20:24:27.673 1648 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/MANIFEST-000001
+2026/05/07-20:24:27.673 1648 Recovering log #3
+2026/05/07-20:24:27.674 1648 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG.old b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG.old
index b7689e4..ef57d67 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG.old
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/LOG.old
@@ -1,3 +1,3 @@
-2026/05/07-00:34:07.931 f2c0 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/MANIFEST-000001
-2026/05/07-00:34:07.931 f2c0 Recovering log #3
-2026/05/07-00:34:07.932 f2c0 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/000003.log
+2026/05/07-20:03:12.908 b7cc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/MANIFEST-000001
+2026/05/07-20:03:12.908 b7cc Recovering log #3
+2026/05/07-20:03:12.909 b7cc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/000003.log b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/000003.log
index 6ac1db3..a334f05 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/000003.log and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/000003.log differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG
index 1c4f440..7f91035 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG
@@ -1,3 +1,3 @@
-2026/05/07-00:59:30.813 f6dc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/MANIFEST-000001
-2026/05/07-00:59:30.813 f6dc Recovering log #3
-2026/05/07-00:59:30.813 f6dc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/000003.log
+2026/05/07-20:24:27.669 1648 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/MANIFEST-000001
+2026/05/07-20:24:27.670 1648 Recovering log #3
+2026/05/07-20:24:27.670 1648 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG.old b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG.old
index d1d788a..9e20a2e 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG.old
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG.old
@@ -1,3 +1,3 @@
-2026/05/07-00:34:07.927 f2c0 Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/MANIFEST-000001
-2026/05/07-00:34:07.927 f2c0 Recovering log #3
-2026/05/07-00:34:07.927 f2c0 Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/000003.log
+2026/05/07-20:03:12.903 b7cc Reusing MANIFEST E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/MANIFEST-000001
+2026/05/07-20:03:12.904 b7cc Recovering log #3
+2026/05/07-20:03:12.904 b7cc Reusing old log E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Vmianqian.exe.WebView2\EBWebView\Default\shared_proto_db\metadata/000003.log
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GrShaderCache/data_1 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GrShaderCache/data_1
index df44388..fb004e8 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GrShaderCache/data_1 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GrShaderCache/data_1 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GraphiteDawnCache/data_1 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GraphiteDawnCache/data_1
index 1057f04..2896495 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GraphiteDawnCache/data_1 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/GraphiteDawnCache/data_1 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Local State b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Local State
index c057633..568a6e0 100644
--- a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Local State
+++ b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/Local State
@@ -1 +1 @@
-{"accessibility":{"captions":{"common_models_path":"","soda_translation_binary_path":""}},"app_defaults":{"pcmvh":{"2":[{"t":1767420414,"v":"MTcuMTEuMjg5NzMuMjA2"}]}},"autofill":{"ablation_seed":"Clp1ODBY8Cg="},"breadcrumbs":{"enabled":false,"enabled_time":"13422546800746108"},"default_browser":{"browser_name_enum":1},"desktop_session_duration_tracker":{"last_session_end_timestamp":"1778086788"},"domain_actions_config":"H4sIAAAAAAAAAL1abY/bNhL+KwvjPiRFrHWSXnKXQxAEuRxaoEGDXIoe0O0ZI3IsTUxyuCRlSdvkvx9oyxs7lrSmtrgPu2tz55khh6N51R8zIfWSN+gcSZy9+GMG1ioSEIiNn734rVtAubSsSLSzF7OfjWrfNpY9vlfQfkCQ7ezRTLIGMrMXM6/IFJlgPfvyaBT9K0nckMFDcOAqC5spSA2NZI2ZxCloyMXkLW+yiMCpeAXPMwpTkM2KDIV2quAagijDJhPcTGVBhaGAYZM5LtD5qWxyVaGo3CZy8iXUmYApbEpU1GQbksjBsZm6G+EooCM2ogRjUE3lYwKEMprk1Pvh2jr0aIK3qpqs3E3ZTHykykpVU6WCtdl1RWJdorJTmfyTfPnatHWJrtPi749mWyzhzjkZ0DjokkJr4z/jktsuxS2cIA4Ed4DblShug84Tm9mLx18ezQRLFInu8geS+G71A27Em4hOcx0jYEMmoJE8qphTfHfGw8WeY+qomSUZRQZTw4MNP1fhW1soHGgNTo15qxOgL8GhZTJhGmouVylAw/FYmedzAYo2Y0/3CT2vViQmIJ4+++tkUKYF+Ez7s8EGpZt2LoNDYaxfcwn0AUH7TJNw7Hk10Ryy6mwtCNaaTTRcdsW5oBrzrC4h+IhL2KFgS4qTDgWS86QrAicyoLN3BGYDSUcAK6qkE4gSHIiALmVbJYTCpolRUElMkcFfo815CIlogVIMJSLG0opegEdcZ3ooux2GpIghSDsIKtygUZD7jM72mhrcWrBtEy5FY0gyR125VQr71pD5BAkI8zeTcGIOaXZu0VmFTcztE0CcZLVdarmL5CliHHmdoqrripTK09zbdY0mQYRDzRvM8rPt1lWmhlYnPYO+MpywJ9+aUKInSLCTgE0Q7AKOFWSnYWdbr6QgWh7L60/Ib8BSmoB9RJsUsAOtAyf5rXy843BCXzAX6o6KYgfqSY1j1h2WK1IB3ZLNklerpa8piPK8/PjNjsO/tgyOvNCxsgY2dgw/2R8Km5ivv1dA5iM24ZcPP/lYFh2VgGAKroLPDlXWp+RRLjFu34+DVyBGTGIUuwKBOY9Z1Ci8xu32p4KpoZFOxCj4+nqy1HzMhYxj2ckYG0b6DaP4UFMYdUejaElesJOjT0Afg66qffvmfVzYUoSO4vQZIakSn5Gut+BwRQ3Kt+/eHuUCGFax8TR44nPQPlSSeETpo0x05UlkoOFm2/bKPtk/gUm1vj+Tex9mqJ17PgccKPrO57By9+VA5t4cBkrlhMsY6KkmXWeWT9HFHSOBUSxbNCQFG4MixAobbiqHNeaeAvpdD2HAUfTx3fcE94u6p8tHGgpcaigMrdqlwwKbRH+huEZ/1O+IC9l3/efHHFrSxVFhtVsaQggHVHhF/jjrul0dwgV9c+Sr9c0gJbgCj9Oy7coQfZ77WEscdSj3a0MYSyY4PD4DZZZMPPmgtUSDCJCro06xQ0836DIOnchBOJDLTf6NjQsQ5UhqotGAk0cXKqTJdstiNFjtLWEDqorfr65exZ2+fKDl50Y9vNh9axp12Jz+ahB7mJ+rB1dX8ruHF36uHj9bLA7Jj6xhj1g+XSyap4vF1VV2sXz8ZLFo/r5YZIewnTHc0mu5JW3UMdHeDvZ0//3Lxaua5MvI8pDwwAD2pP/Q0PyAVJTh5W7zceFXkqHsvl8cMjiwhj2DyydPnzWXF5fP459D2kMb2BM/0Cip0p9V3PHnxmtQ6uHlRVkVeIS9NYBbKa9IL+uXz58sLrqPj7///uhsX+//Vti7nbB/Rymff4oiH15e/Gf74fLUo2yL5iU2VrGLVcM9G+pPtDQp3VPSxdzPtTfz6MJhDRroBmUKix6ve35tNsfGDjmB+1dzdR0HhuQ9ztGCKwwORuy+SlWixZRmjnAIAaeVthJXaCQ6BzecVFBL9FQYdBPFsinASZNWxMtKrONPwSmou6utHoxDnMdfApWae1YUgNKasF11ebaR7eh9a2T38KUIo4LnNbocwQVaozpfbERy/gmDt1WeBLOOV5QmyTrWnIAwPkCc06WoQpFZoyRzvpjUoZkGe13hcE7T05ztCrKzAVPncmCtz5KHgBaNA1KxAQlJ8yWuQu7gjvSor5vcoBp7feC0d4ngRJkZ2KR5jA7XQslJPmPinHfNG0ryM9G+YzjaxqQo7WwL8YEdFJh82X4jEmavvi2Gs+W+drEo46Cy2r4F9H/qtd7Z3/nz5qItaJ3c2A5V2mC0a+hmCtPinAUXYkBNxfmSbZY/yacAa8esk4EKCxBtiaBCmeJuclAKQ/CirBTOGZ2idYyT5dn3TgqMX7cpQjUUJOYqFg139ed/NIf1PHn9tsuvP7YWd/8/yOFvRY0gejv+lUe3hCI2/dPy9jelY42/vD5KOxzXXSd89mhmIZRLDdvRwW+zSwEO0c2lQ9DoLuO7Y5ez33sV18fbkyq5whBwHp+4QQvpw+o2q9ub8ZHIAa7TIcoCP/IazQe0CgRqNIfl26kua8yX8S2bVae51FGFY21Pcn+HUtJYg74XFVBh4cCWZCSNDJdP0YE0el7tcNvf25UUFrbyJZoiRpTUbUdRhmuDdZLEbZHElWXjwFAqsi5ZoWeNbTWSHfZjwa8VkEpSccR50JpzGh0Z9QJRVLAhnySwusm8rYKh9VaxrkoRaOT2Ldq0TSrSFpwgGBlC90Mtb8Ch4XXiNtEHkMCjbdxTJKvGwpp8AJOxz4I4+zGJL4ekXgOrxO1tLawhn4MZG/Cd4HQVKlCrysgMJIUWcnIKBFgK6TdyxoSxF3dGxdUP1Og9mmIsOfrRCNZkijeg1PG19LxJNzRp2wvv/L3dfT+Iqt9I6eioW12KuHxAvmP42sh+3I7/EoxcfsPiOJB8+R8gjHKStzAAAA==","edge":{"manageability":{"edge_last_active_time":"13422560388863536"},"mitigation_manager":{"renderer_app_container_compatible_count":28},"tab_stabs":{"closed_without_unfreeze_never_unfrozen":0,"closed_without_unfreeze_previously_unfrozen":0,"discard_without_unfreeze_never_unfrozen":0,"discard_without_unfreeze_previously_unfrozen":0},"tab_stats":{"frozen_daily":0,"unfrozen_daily":0}},"edge_ci":{"num_healthy_browsers_since_failure":3},"hardware_acceleration_mode_previous":true,"identity_combined_status":{"aad":1,"ad":1},"legacy":{"profile":{"name":{"migrated":true}}},"local":{"password_hash_data_list":[]},"network_time":{"network_time_mapping":{"local":1.77807320249428e+12,"network":1.778073202e+12,"ticks":1.035677631119e+12,"uncertainty":1458814.0}},"optimization_guide":{"model_execution":{"last_usage_by_feature":{}},"model_store_metadata":{},"on_device":{"last_version":"142.0.3595.80","model_crash_count":0}},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAAmfqVG+oAaR7cyadKoPY3hEAAAAB4AAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAZABnAGUAAAAQZgAAAAEAACAAAACUJ8yZVhcx/HJCgKps4/3vjP9kOoB7XrGJbrlTlCriqgAAAAAOgAAAAAIAACAAAACuBY5dwzItaB1E57ERE2JULAM2t/FVov4ew5KJv1j3mDAAAACACdYYD9f4GRK3bZwNYgwzK+xLsnFuv1g6hgkvkPvFT6voTFkCcnAdBrBhgtRIlMVAAAAAo+KQ0nbQ1dwpPcxKIfD0NCAQ0jQn8v0oaldutJl+duA77ccAnxoko5zQhCdqGyP/vNGwtYI4HzVFiHgH8o7sUg=="},"performance_intervention":{"last_daily_sample":"13422546800841056"},"phoenix":{"user_laf_toggle_state_static":2},"policy":{"last_statistics_update":"13422546800745182"},"profile":{"info_cache":{"Default":{"active_time":1778086770.922771,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_20","background_apps":false,"edge_account_cid":"","edge_account_environment":0,"edge_account_environment_string":"","edge_account_first_name":"","edge_account_last_name":"","edge_account_oid":"","edge_account_sovereignty":0,"edge_account_tenant_id":"","edge_account_type":0,"edge_non_signin_profile_type":1,"edge_profile_can_be_deleted":true,"edge_test_on_premises":false,"edge_wam_aad_for_app_account_type":0,"enterprise_label":"","force_signin_profile_locked":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","hosted_domain":"","is_consented_primary_account":false,"is_ephemeral":false,"is_glic_eligible":false,"is_managed":0,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","metrics_bucket_index":1,"name":"用户配置 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":[],"metrics":{"next_bucket_index":2},"profile_counts_reported":"13422546800693224","profiles_order":["Default"]},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"profiles":{"edge":{"guided_switch_pref":[],"multiple_profiles_with_same_account":false},"edge_sso_info":{"msa_first_profile_key":"Default","msa_sso_algo_state":1},"signin_last_seen_version":"142.0.3595.80","signin_last_updated_time":1778073200.837705},"sentinel_creation_time":"0","session_id_generator_last_value":"1591964451","signin":{"active_accounts_last_emitted":"13422546800687759"},"startup_boost":{"last_browser_open_time":"13422560388886506"},"subresource_filter":{"ruleset_version":{"checksum":0,"content":"","format":0}},"tab_stats":{"discards_expired":0,"discards_external":0,"discards_proactive":0,"discards_urgent":0,"last_daily_sample":"13422546800728661","max_tabs_per_window":1,"reloads_expired":0,"reloads_external":0,"reloads_urgent":0,"total_tab_count_max":3,"window_count_max":3},"telemetry_client":{"cloned_install":{"user_data_dir_id":15283560},"governance":{"last_dma_change_date":"13422546800725446","last_known_cps":0},"host_telclient_path":"QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxNaWNyb3NvZnRcRWRnZVdlYlZpZXdcQXBwbGljYXRpb25cMTQyLjAuMzU5NS44MFx0ZWxjbGllbnQuZGxs","sample_id":32143801},"uninstall_metrics":{"installation_date2":"1778073200"},"updateclientdata":{"apps":{"alpjnmnfbgfkmmpcfpejmmoebdndedno":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"46.0.0.0"},"eeobbhfgfagbclfofmgbdfoicabjdbkn":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.0.0.10"},"fgbafbciocncjfbbonhocjaohoknlaco":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"2026.3.23.1"},"fppmbhmldokgmleojlplaaodlkibgikh":{"cohort":"","cohortname":"","installdate":-1},"jbfaflocpnkhbgcijpkiafdpbjkedane":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"1.0.0.32","pv":"1.0.0.34"},"kpfehajjjbbcifeehjgfgnabifknmdad":{"cohort":"","cohortname":"","installdate":-1},"laoigpblnllgcgjnjnllmfolckpjlhki":{"cohort":"","cohortname":"","installdate":-1},"ndikpojcjlepofdkaaldkinkjbeeebkl":{"cohort":"","cohortname":"","installdate":-1},"oankkpibpaokgecfckkdkgaoafllipag":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"6498.2025.9.4"},"ohckeflnhegojcjlcpbfpciadgikcohk":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"0.0.1.7"},"ojblfafjmiikbkepnnolpgbbhejhlcim":{"cohort":"","cohortname":"","installdate":-1},"pghocgajpebopihickglahgebcmkcekh":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"3.0.0.18"}}},"updateclientlastupdatecheckerror":0,"updateclientlastupdatecheckerrorcategory":0,"updateclientlastupdatecheckerrorextracode1":0,"user_experience_metrics":{"chrome_download_action_count":0,"client_id2":"{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}C:\\Users\\Administrator0s:D223E360-7156-4D75-AEC7-5CD1857B3B42","diagnostics":{"last_data_collection_level_on_launch":1},"limited_entropy_randomization_source":"B1B791164C2972B027A5061971956811","low_entropy_source3":3296,"machine_id":1631866,"payload_counter":1,"pseudo_low_entropy_source":2093,"reporting_enabled":false,"reset_client_id_deterministic":true,"session_id":27,"stability":{"browser_last_live_timestamp":"13422560389002717","exited_cleanly":true,"stats_buildtime":"1762989008","stats_version":"142.0.3595.80-64","system_crash_count":0}},"variations_compressed_seed":"H4sIAAAAAAAAAJVV227jNhD9lYCvFQNRoi520QdHtrPuxtlsnEuL7iKgpbFChCK9JOXECPLvBUXHsdO42/rB0MycM3eNntGomKH+MyoEB2kLJRe8bjWzXMnrZcUsjFYgrUMMQVh2puqRZHMBFeovmDAQoHErxAzsYctYw48WZLlGfRKGLwEaPZWirWD0ZEFLJnzQSWUm8kzVqG91CwHy2jNVXzFdg0V9BFUNd8a6GMh5qWrwoC47bpzhTJVMnIN9VPphUJZgTHEP5YNDVB4xBmZbDQb1/0IH0AZ9fwnQ4yqaMVnN1dMB9sQowSxsQFBNFpo14Mm+FYNBMXqymg2ZZcW5cwPyvZfGuEKuzR6487EpacwFzNbGQrOTouDGHkjrPX7INZRW6fXEgh/siVDeg+/NW763N9GgqrjDMHGhlaN/5kJAdQUCGrB6faiIW5jfcHj8Od9Fm1XlvY/4bz1xqA7+9XpSOOCSuQZb0A70jCRrAPVRec+kBIECtGKidZoxegm2Zliq8n7HGIf+t4vRYDWTpuG22647Je8euYY7yxtQrb1ruBDcQKlkZXZcRc6LS/DLCrTmlX9XzMGaOutACPV45sb3PThQ0Qb66rUDv0Wd8lIroxb2+BbmJ1o9GtDHF1pZNW8Xx9efp8d++hdaLbiAIAxI8ut/IFlmzfGZqmeWaRuEAf0/pEI1SwEWOp5vynbkF2o5Y87c/XNZH2rQWOkStrQtOkCNcXcAjL2WfKF0M+TGaj5v3aJ94saqWrPmcD9rrdpltE1jb4K7a1DBgrXCnjr4R+g9cPvQHHS5uxPb/A7uxRviVK3cRZQl/GxBtpyfLkmhllwoO1UVHG8OdECCgMQZpTFJadRLu4FtLuqYa2MvW/l2WUfN0q4/Nv2zGoCFLlHnbQZ1A9J2F8eBx1pJy0EP2oqDLF2W50q61k0Hk4EQqI+67wYK0O3taF9hyuWidZqwe65bpqtXYQW6e5zGaVIoDfvMQkkL0s5Ar3gJ5l0cmP9xta864bLe17jS9zXb5l4bF3ujfwnQJ2BVN6pnNLpiNeqjb+jma0+RJP4hT2XxefRLZWgk9e8P8/rysl3+Gcbx5GIwVJeypua3b8jFe1ryrpvoFqrgKEyPpmx9FIVRekRon8T9iBydTq+62lpp9bpQlWtmcY4C5F7I1mw03X16/ZJOhj4v97lHF/gSkywhSRpigknQyWEeJVknO8UQ0yjOcxzhFO1/bDfsOE0owQlOPDsmCc0JJjj3ckozQhNMXu0JJSQjOMW9jRzlURjiGFMvExInMcF0Y09zmlHcwyTyYpiSDOc48rnSJM5inOM882IapQlOIkwIRR/vsU86zJI8TTDFOXq/oJuqSJqRGJMQk9DnRbM4JOlbXSTp9fKdugiJeyTBUeLb5oL08jimmODUp56GWY4JjrdStmWnYZ5HmGBfJI3DPMLxxkajjDovEXp5+RsNzHmZpwkAAA==","variations_config_ids":"{\"ECS\":\"P-R-1751560-1-1,P-R-1082570-1-11,P-D-42388-2-6\",\"EdgeConfig\":\"P-R-1736541-5-5,P-R-1315481-1-8,P-R-1647145-1-5,P-R-1541171-6-9,P-R-1528200-3-4,P-R-1113531-4-9,P-R-68474-9-12,P-R-60617-8-21,P-R-45373-8-87,P-R-46265-52-114\",\"EdgeFirstRunConfig\":\"P-R-1075865-4-8\",\"Segmentation\":\"P-R-1716713-10-10,P-R-1473016-1-8,P-R-1159985-1-5,P-R-1113915-25-11,P-R-1098334-1-6,P-R-66078-1-3,P-R-66077-1-5,P-R-60882-1-2,P-R-43082-3-5,P-R-42744-1-2\"}","variations_country":"CN","variations_crash_streak":0,"variations_failed_to_fetch_seed_streak":0,"variations_google_groups":{"Default":[]},"variations_last_fetch_time":"13422546811091448","variations_last_runtime_fetch_time":"13422546811092901","variations_permanent_consistency_country":["142.0.3595.80","CN"],"variations_runtime_compressed_seed":"H4sIAAAAAAAAAG2Q3W7TQBCFXyWa64y0s/9riQtqu0qFBFVDhRDuhRsvxtCsm9gBVZHfHa03TRBwefacmZ3zHSHvw9euvSkGyOBYQZmvK8gquMU7JKNIaYaEtJw1s1yZWceHAiUX1iJHXcGygrJpfdFv6y683YxdH4bLIuYElwoJuXjdpJlEQmFmbaxgOu61SQrNZ5lcLUgrlMj1LJXgUiDHZErGnEDxagprpESDLrmCrHPIHUrn5pOJlNUkkaM8H313CGO39YnE5WjtOFmGAvXpZmGNZsiR2Dy69u3Wh7GOXf9gRtqQQGJILM1JIxjFOqkckXLORhjqpEk4UshVwjrjskJEPOlnrZmxEdZZmfO0ZtbyCDbBEMxyFCdP8siCkFcwwfLfqpAdoeiG+vHJL4pD/bQoQ9sFvyi6ug39MHabIUaaFLn29XjY+wGyL7AdYj7FL+mbcO1981hvfsDDtIRy+zy+/PdTH/5e6P1+Aw/TtISVrxu/nz/O+0MY9y9533jIIH8fO3ysW8iggufvbjD5L2av7tcr0X/6tjJhtxtu1bufJQ2t2bmroD/cu89UvqkApuk3goQSvuoCAAA=","variations_seed_client_version_at_store":"142.0.3595.80","variations_seed_date":"13422546802000000","variations_seed_etag":"\"VQ9o153qnGnCKE+ds42nrJkbgRRupY033IPADoRng4s=\"","variations_seed_milestone":142,"variations_seed_runtime_etag":"\"pj9s7Cw08BUSH3oWhH7nqqsP5KvE1sg7q9Bn6OU9Y1E=\"","variations_seed_runtime_serial_number":"\"pj9s7Cw08BUSH3oWhH7nqqsP5KvE1sg7q9Bn6OU9Y1E=\"","variations_seed_serial_number":"\"VQ9o153qnGnCKE+ds42nrJkbgRRupY033IPADoRng4s=\"","variations_seed_signature":"","variations_sticky_studies":"","was":{"restarted":false}}
\ No newline at end of file
+{"accessibility":{"captions":{"common_models_path":"","soda_translation_binary_path":""}},"app_defaults":{"pcmvh":{"2":[{"t":1767420414,"v":"MTcuMTEuMjg5NzMuMjA2"}]}},"autofill":{"ablation_seed":"Clp1ODBY8Cg="},"breadcrumbs":{"enabled":false,"enabled_time":"13422546800746108"},"default_browser":{"browser_name_enum":1},"desktop_session_duration_tracker":{"last_session_end_timestamp":"1778156672"},"domain_actions_config":"H4sIAAAAAAAAAL2abY/bNhKA/8rCuA9JEWudpJfc5RAEQS6HFmjQIJeiB3R7xogcSxOTHC5JWdI2+e8H+mVjx5JW1Bb3YXdtLp8ZvoyGM0P9MRNSL3mDzpHE2Ys/ZmCtIgGB2PjZi9/2DSiXlhWJdvZi9rNR7dvGssf3CtoPCLKdPZpJ1kBm9mLmFZkiE6xnXx4N0r+SxA0ZPIYDV1nYTCE1NJI1ZhKn0JCLyUPeZJHAqbyC5xmFKWSzIkOhnaq4hiDKsMkEN1NFUGEoYNhkjgt0fqqYXFUoKreJknwJdSZgipgSFTXZhiRycGymjkY4CuiIjSjBGFRT5ZgAoYwmOXV/uLYOPZrgraomL+6mbCY+UmWlqqlawdrsuiKxLlHZqUL+Sb58bdq6RLdfxd8fzbYs4c45GdDY65JCa+M/Y5PbNsUhnBFHivfAbUtUt0Hnic3sxeMvj2aCJYpEd/kDSXy3+gE34k2k01zHAGzIBDSSBxfmnN/P8bixY5o6rsySjCKDqceDDT9X4VtbKBxoDU4Neasz0Jfg0DKZMI2ay1UKaDhOK/M8FlC0GXq6z/rzakViAvH02V8nQ5kW4DPtR8MGpZs2L4N9x9gZIRRXMtMkHHtejca2C56gJiBo/1XNRNurRi+eYK3ZRHtnV4yFasyzuoTgI5cwQsGWFCdNCiTnSTsLTmRAo0cEZgNJUwArqqQZiBIciIAuZVglhMKmqVFQSUzRwV8PqXGERLRAKYYSiaFopBPwiOtM9wXF/UiKGoK0iaDCDRoFuc9otLPV4NaCbZuwKRpDkjnqyq1SxLeGzCdIIMzfTMKMOaTZuUVnFTYxJUiAOMlq9xHpLgBIUePI65Sluq5IqTzNvV3XaBJUONS8wSwfbbeuMjW0OukZ9JXhhDH51oQSPUGCnQRsgmAXcCiPOz92tmlOCtHyUDpw1v0GLKUpOJxokw7sQOvASX4rHy5UnPUvmIvBPP+MqKwfzlt2REcAHmP7sFyRCuiWbJa8Wi19TUGU46LwNzsJ/9oKOHFap2vbM7BT/Gx8KGxiVvBeAZmP2IRfPvzkY/J1kmiCKbgKPrtrhQelxGP+fhK8AjFgQYPsCgTmPGSAg3iN2+FPhamhgXrHIHx9PVlrPuRxhll2Mh4lA1WNQT7UFAa91yAtyQt2cvAJ6BKwz53fvnkfG7Y9wr7H+TNCUiU+I/sKhsMVNSjfvnt7EjpgWMXyVu+Mx9A+VJJ4YNEHhejKk8hAw822uJZ9sn+CkGp9fyH3nkxf0Xi8BOzJEcdLWLn7SiBzbwk9mXXCZvRUbpO2M8unrMUdFw+DLFs0JAUbgyLEhBxuKoc15p4C+l3JocdRdMk9VB4PjbqjlkgaClxqKAyt2qXDAptEf6G4Rn9SHokN2Xfd88ccWtLFSR62a+ojhAMqvCJ/GqTdtvZxQd+c+Gp909sTXIGnUdy2pa9/nvuYepzUQQ9tfYwlExyezoEySybOvNdaokEEyNVJPdqhpxt0GYe9yl4cyOUm/8bGBYhyIDTRaMDJkw0V0mS7ZjF4WB0sYQOqit+vrl7Fkb58oOXnRj282H1rGnVcAv9qEAfMz9WDqyv53cMLP1ePny0Wx91PrOFALJ8uFs3TxeLqKrtYPn6yWDR/XyyyY2xnDLf9tdx2bdRpp4MdHPr99y8Xr2qSL6PI445HBnDo+g8NzQ9IRRle7gYfG34lGcr994tjAUfWcBBw+eTps+by4vJ5/HPc99gGDp0faJRU6c8qjvhz4zUo9fDyoqwKPGFvDeBWyyvSy/rl8yeLi/3Hx99/fzK3r/t/q+zdTtm/o5bPP0WVDy8v/rP9cHnuUbY59hIbq9jFrOGeZfsnWpqUYivpYu7n2pt5dOGwBg10gzJFRIfXHZ/KzbGxfU7g/slfXcdrSfIe52jBFQZ7T+yuxFaixZTaj3AIAadlwhJXaCQ6BzeclH9L9FQYdBPVsinASZOW88tKrONPwSnU3dlWB+MQ5/GXQKXmnhUFoLSa7T67HG1ku/6+NXL/8KUoo4LnNbocwQVaoxqvNpKcf8LgbZUnYdbxitI0WceaEwjjA8TbwJSlUGTWKMmMV5N6NafBXlfYH9N01HL3CdloYOrtH1jrs+SrRovGAalYr4Sk6yiuQu7gjvCoq/jcoBp6SeG81IngRJkZ2KR5jD3XQslJPmPibfKaN5TkZ6J9x+NoeyZFbaMtxAd2UGDyZvuNSLjh9W3RHy13VZdFGe81q+27Rv+n0uyd9Z0/7xq1Ba2T6+ChSrtH3Rd0M4Vp55wFF+KBmsr5km2WP8mngLVj1smgwgJEWyKoUKa4mxyUwhC8KCuFc0anaB3PyXL0vpMC49dtilINBYm5iknDXfX5H81xPk9ev93H1x9bi7v/H8Xwt6oGiM6Kf+XRLaGIRf+0uP1N6VjjL69Pwg7H9b4SPns0sxDKpYbt1cFvs0sBDtHNpUPQ6C7jG2qXs987F65LtidVcoUh4Dw+cb0W0sXqNqvbm+FXuY64/RqiLPAjr9F8QKtAoEZznL6dr2WN+TK+y7Par1zqVYVjbc9if4dS0lCBvpMKqLBwYEsykgbuos/pQBo9r3bc9ve2JUWErXyJpognSuqwoyrDtcE6SeM2SeLKsnFgKJWsS1boWWNbDUSH3Sz4tQJSSUscOQ9ac06DV0adIIoKNuSTFFY3mbdVMLTeLqyrUhQauX1XN22QirQFJwgG7qy7UcsbcGh4nThM9AEk8GAZ95xk1VhYkw9gMvZZEKMfk/guSeo2sEoc3tbCGvI5mKELvjNOV6ECtaqMzEBSaCEnp0CApZC+IyNuGDu5ERlXN6jRezTFUHD0oxGsyRRvQKnTbel48a7vpu2gfO/v7e770an6jZZ9P9q3LkVsPuq+E/jayG5uJ38JRi6/EXF6kHz5H8fjxsodMQAA","edge":{"manageability":{"edge_last_active_time":"13422630272471035"},"mitigation_manager":{"renderer_app_container_compatible_count":35},"tab_stabs":{"closed_without_unfreeze_never_unfrozen":0,"closed_without_unfreeze_previously_unfrozen":0,"discard_without_unfreeze_never_unfrozen":0,"discard_without_unfreeze_previously_unfrozen":0},"tab_stats":{"frozen_daily":0,"unfrozen_daily":0}},"edge_ci":{"num_healthy_browsers_since_failure":3},"hardware_acceleration_mode_previous":true,"identity_combined_status":{"aad":1,"ad":1},"legacy":{"profile":{"name":{"migrated":true}}},"local":{"password_hash_data_list":[]},"network_time":{"network_time_mapping":{"local":1.778153608410786e+12,"network":1.778153608e+12,"ticks":1.11608354764e+12,"uncertainty":1523532.0}},"optimization_guide":{"model_execution":{"last_usage_by_feature":{}},"model_store_metadata":{},"on_device":{"last_version":"142.0.3595.80","model_crash_count":0}},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAAmfqVG+oAaR7cyadKoPY3hEAAAAB4AAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAZABnAGUAAAAQZgAAAAEAACAAAACUJ8yZVhcx/HJCgKps4/3vjP9kOoB7XrGJbrlTlCriqgAAAAAOgAAAAAIAACAAAACuBY5dwzItaB1E57ERE2JULAM2t/FVov4ew5KJv1j3mDAAAACACdYYD9f4GRK3bZwNYgwzK+xLsnFuv1g6hgkvkPvFT6voTFkCcnAdBrBhgtRIlMVAAAAAo+KQ0nbQ1dwpPcxKIfD0NCAQ0jQn8v0oaldutJl+duA77ccAnxoko5zQhCdqGyP/vNGwtYI4HzVFiHgH8o7sUg=="},"performance_intervention":{"last_daily_sample":"13422546800841056"},"phoenix":{"user_laf_toggle_state_static":2},"policy":{"last_statistics_update":"13422546800745182"},"profile":{"info_cache":{"Default":{"active_time":1778156667.801,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_20","background_apps":false,"edge_account_cid":"","edge_account_environment":0,"edge_account_environment_string":"","edge_account_first_name":"","edge_account_last_name":"","edge_account_oid":"","edge_account_sovereignty":0,"edge_account_tenant_id":"","edge_account_type":0,"edge_non_signin_profile_type":1,"edge_profile_can_be_deleted":true,"edge_test_on_premises":false,"edge_wam_aad_for_app_account_type":0,"enterprise_label":"","force_signin_profile_locked":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","hosted_domain":"","is_consented_primary_account":false,"is_ephemeral":false,"is_glic_eligible":false,"is_managed":0,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","metrics_bucket_index":1,"name":"用户配置 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":[],"metrics":{"next_bucket_index":2},"profile_counts_reported":"13422546800693224","profiles_order":["Default"]},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"profiles":{"edge":{"guided_switch_pref":[],"multiple_profiles_with_same_account":false},"edge_sso_info":{"msa_first_profile_key":"Default","msa_sso_algo_state":1},"signin_last_seen_version":"142.0.3595.80","signin_last_updated_time":1778073200.837705},"sentinel_creation_time":"0","session_id_generator_last_value":"1591964822","signin":{"active_accounts_last_emitted":"13422546800687759"},"startup_boost":{"last_browser_open_time":"13422630272502557"},"subresource_filter":{"ruleset_version":{"checksum":0,"content":"","format":0}},"tab_stats":{"discards_expired":0,"discards_external":0,"discards_proactive":0,"discards_urgent":0,"last_daily_sample":"13422546800728661","max_tabs_per_window":1,"reloads_expired":0,"reloads_external":0,"reloads_urgent":0,"total_tab_count_max":3,"window_count_max":3},"telemetry_client":{"cloned_install":{"user_data_dir_id":15283560},"governance":{"last_dma_change_date":"13422546800725446","last_known_cps":0},"host_telclient_path":"QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxNaWNyb3NvZnRcRWRnZVdlYlZpZXdcQXBwbGljYXRpb25cMTQyLjAuMzU5NS44MFx0ZWxjbGllbnQuZGxs","sample_id":32143801},"uninstall_metrics":{"installation_date2":"1778073200"},"updateclientdata":{"apps":{"alpjnmnfbgfkmmpcfpejmmoebdndedno":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"46.0.0.0"},"eeobbhfgfagbclfofmgbdfoicabjdbkn":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.0.0.10"},"fgbafbciocncjfbbonhocjaohoknlaco":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"2026.3.23.1"},"fppmbhmldokgmleojlplaaodlkibgikh":{"cohort":"","cohortname":"","installdate":-1},"jbfaflocpnkhbgcijpkiafdpbjkedane":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"1.0.0.32","pv":"1.0.0.34"},"kpfehajjjbbcifeehjgfgnabifknmdad":{"cohort":"","cohortname":"","installdate":-1},"laoigpblnllgcgjnjnllmfolckpjlhki":{"cohort":"","cohortname":"","installdate":-1},"ndikpojcjlepofdkaaldkinkjbeeebkl":{"cohort":"","cohortname":"","installdate":-1},"oankkpibpaokgecfckkdkgaoafllipag":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"6498.2025.9.4"},"ohckeflnhegojcjlcpbfpciadgikcohk":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"0.0.1.7"},"ojblfafjmiikbkepnnolpgbbhejhlcim":{"cohort":"","cohortname":"","installdate":-1},"pghocgajpebopihickglahgebcmkcekh":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"3.0.0.18"}}},"updateclientlastupdatecheckerror":0,"updateclientlastupdatecheckerrorcategory":0,"updateclientlastupdatecheckerrorextracode1":0,"user_experience_metrics":{"chrome_download_action_count":0,"client_id2":"{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}C:\\Users\\Administrator0s:D223E360-7156-4D75-AEC7-5CD1857B3B42","diagnostics":{"last_data_collection_level_on_launch":1},"limited_entropy_randomization_source":"B1B791164C2972B027A5061971956811","low_entropy_source3":3296,"machine_id":1631866,"payload_counter":1,"pseudo_low_entropy_source":2093,"reporting_enabled":false,"reset_client_id_deterministic":true,"session_id":34,"stability":{"browser_last_live_timestamp":"13422630272620810","exited_cleanly":true,"stats_buildtime":"1762989008","stats_version":"142.0.3595.80-64","system_crash_count":0}},"variations_compressed_seed":"safe_seed_content","variations_config_ids":"{\"ECS\":\"P-R-1751560-1-1,P-R-1082570-1-11,P-D-42388-2-6\",\"EdgeConfig\":\"P-R-1736541-5-5,P-R-1315481-1-8,P-R-1647145-1-5,P-R-1541171-6-9,P-R-1528200-3-4,P-R-1113531-4-9,P-R-68474-9-12,P-R-60617-8-21,P-R-45373-8-87,P-R-46265-52-114\",\"EdgeFirstRunConfig\":\"P-R-1075865-4-8\",\"Segmentation\":\"P-R-1716713-10-10,P-R-1473016-1-8,P-R-1159985-1-5,P-R-1113915-25-11,P-R-1098334-1-6,P-R-66078-1-3,P-R-66077-1-5,P-R-60882-1-2,P-R-43082-3-5,P-R-42744-1-2\"}","variations_country":"CN","variations_crash_streak":0,"variations_failed_to_fetch_seed_streak":1,"variations_google_groups":{"Default":[]},"variations_last_fetch_time":"13422627207194518","variations_last_runtime_fetch_time":"13422627210907574","variations_permanent_consistency_country":["142.0.3595.80","CN"],"variations_runtime_compressed_seed":"H4sIAAAAAAAAAG2Q3W7TQBCF32WuM2JnZn8tcQFOEFSCVm0l/syFiRcT0djg2JVC5HdH621DJbj89uzOzndOUPbdt137Zn2AAk4VbMqbCooKrvAayRkyViEhrRZWno1bOB2sUbN4j4y2glUFm6aN635f77oX23HXd4e/g1QQ1gYJWT9OskojobiFnRdl01yfUSwvmFMrZA1qZLugEdaCjDnUSgVBeQzFO63RYcipkA8BOaAOYVmZyHhLGhn1eenrqRt3+5ibeLK0eGcVMpJart7Edh+7sU5uTzoi60iQFJLKbtqJorR+liEyIfgkbx6YJJBBNrnGpR4vkurIDtYq51M5Z3Ln11Z5z6nILC/KM8pDpjm5E3IFM6z+VYPiBJv9z/H43yR29de7+CrW4zTEAxSfIcZhC1/meQWvY93E4ZCulf3UjcOx7JsIBZTv0ke3dQsFVHBB2/fty86+lfs7u423n75/OMrV/eVH/+NiIqWH5vfUdL8un/HmeQUwz38AkLTY/H8CAAA=","variations_safe_compressed_seed":"H4sIAAAAAAAAAJVV227jNhD9lYCvFQNRoi520QdHtrPuxtlsnEuL7iKgpbFChCK9JOXECPLvBUXHsdO42/rB0MycM3eNntGomKH+MyoEB2kLJRe8bjWzXMnrZcUsjFYgrUMMQVh2puqRZHMBFeovmDAQoHErxAzsYctYw48WZLlGfRKGLwEaPZWirWD0ZEFLJnzQSWUm8kzVqG91CwHy2jNVXzFdg0V9BFUNd8a6GMh5qWrwoC47bpzhTJVMnIN9VPphUJZgTHEP5YNDVB4xBmZbDQb1/0IH0AZ9fwnQ4yqaMVnN1dMB9sQowSxsQFBNFpo14Mm+FYNBMXqymg2ZZcW5cwPyvZfGuEKuzR6487EpacwFzNbGQrOTouDGHkjrPX7INZRW6fXEgh/siVDeg+/NW763N9GgqrjDMHGhlaN/5kJAdQUCGrB6faiIW5jfcHj8Od9Fm1XlvY/4bz1xqA7+9XpSOOCSuQZb0A70jCRrAPVRec+kBIECtGKidZoxegm2Zliq8n7HGIf+t4vRYDWTpuG22647Je8euYY7yxtQrb1ruBDcQKlkZXZcRc6LS/DLCrTmlX9XzMGaOutACPV45sb3PThQ0Qb66rUDv0Wd8lIroxb2+BbmJ1o9GtDHF1pZNW8Xx9efp8d++hdaLbiAIAxI8ut/IFlmzfGZqmeWaRuEAf0/pEI1SwEWOp5vynbkF2o5Y87c/XNZH2rQWOkStrQtOkCNcXcAjL2WfKF0M+TGaj5v3aJ94saqWrPmcD9rrdpltE1jb4K7a1DBgrXCnjr4R+g9cPvQHHS5uxPb/A7uxRviVK3cRZQl/GxBtpyfLkmhllwoO1UVHG8OdECCgMQZpTFJadRLu4FtLuqYa2MvW/l2WUfN0q4/Nv2zGoCFLlHnbQZ1A9J2F8eBx1pJy0EP2oqDLF2W50q61k0Hk4EQqI+67wYK0O3taF9hyuWidZqwe65bpqtXYQW6e5zGaVIoDfvMQkkL0s5Ar3gJ5l0cmP9xta864bLe17jS9zXb5l4bF3ujfwnQJ2BVN6pnNLpiNeqjb+jma0+RJP4hT2XxefRLZWgk9e8P8/rysl3+Gcbx5GIwVJeypua3b8jFe1ryrpvoFqrgKEyPpmx9FIVRekRon8T9iBydTq+62lpp9bpQlWtmcY4C5F7I1mw03X16/ZJOhj4v97lHF/gSkywhSRpigknQyWEeJVknO8UQ0yjOcxzhFO1/bDfsOE0owQlOPDsmCc0JJjj3ckozQhNMXu0JJSQjOMW9jRzlURjiGFMvExInMcF0Y09zmlHcwyTyYpiSDOc48rnSJM5inOM882IapQlOIkwIRR/vsU86zJI8TTDFOXq/oJuqSJqRGJMQk9DnRbM4JOlbXSTp9fKdugiJeyTBUeLb5oL08jimmODUp56GWY4JjrdStmWnYZ5HmGBfJI3DPMLxxkajjDovEXp5+RsNzHmZpwkAAA==","variations_safe_seed_date":"13422546802000000","variations_safe_seed_fetch_time":"13422627207194518","variations_safe_seed_locale":"zh-CN","variations_safe_seed_milestone":142,"variations_safe_seed_permanent_consistency_country":"CN","variations_safe_seed_session_consistency_country":"CN","variations_safe_seed_signature":"","variations_seed_client_version_at_store":"142.0.3595.80","variations_seed_date":"13422627208000000","variations_seed_etag":"\"VQ9o153qnGnCKE+ds42nrJkbgRRupY033IPADoRng4s=\"","variations_seed_milestone":142,"variations_seed_runtime_etag":"\"J1cWgBn6M3vl6ceTZhXy3PvOY8kJu104rdzudnqO/2E=\"","variations_seed_runtime_serial_number":"\"J1cWgBn6M3vl6ceTZhXy3PvOY8kJu104rdzudnqO/2E=\"","variations_seed_serial_number":"\"VQ9o153qnGnCKE+ds42nrJkbgRRupY033IPADoRng4s=\"","variations_seed_signature":"","variations_sticky_studies":"","was":{"restarted":false}}
\ No newline at end of file
diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/ShaderCache/data_1 b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/ShaderCache/data_1
index 11482da..3ffdc8d 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/ShaderCache/data_1 and b/bin/Debug/net10.0-windows/Vmianqian.exe.WebView2/EBWebView/ShaderCache/data_1 differ
diff --git a/bin/Debug/net10.0-windows/Vmianqian.pdb b/bin/Debug/net10.0-windows/Vmianqian.pdb
index a9880d4..6b92fa0 100644
Binary files a/bin/Debug/net10.0-windows/Vmianqian.pdb and b/bin/Debug/net10.0-windows/Vmianqian.pdb differ
diff --git a/bin/Debug/net10.0-windows/appsettings.client.json b/bin/Debug/net10.0-windows/appsettings.client.json
index 760dd87..0ee8e1d 100644
--- a/bin/Debug/net10.0-windows/appsettings.client.json
+++ b/bin/Debug/net10.0-windows/appsettings.client.json
@@ -6,6 +6,9 @@
"SmtpPort": 465,
"NotifyEmail": "1066960883@qq.com",
"EmailAuthCode": "TPPMKSMvCadyzu3m",
+ "AlipayAccount": "19895983967",
+ "AlipayPassword": "Lzq920103!",
+ "AlipayEnableAutoFill": true,
"WechatPath": "C:\\Softwares\\Tencent\\Weixin\\Weixin.exe",
"WechatSid": "AAHhwahUM3etjBpBQ-qeuaAZ9RF_NLJRg-ljztn_3qLcCQ",
"WechatApiVersion": "7.10.2",
diff --git a/bin/Debug/net10.0-windows/pending-orders.client.json b/bin/Debug/net10.0-windows/pending-orders.client.json
index 9abc6e8..ad47dbb 100644
--- a/bin/Debug/net10.0-windows/pending-orders.client.json
+++ b/bin/Debug/net10.0-windows/pending-orders.client.json
@@ -1,16 +1 @@
-[
- {
- "OrderId": "202605070105294312",
- "PayId": "2026050701002863867",
- "Param": "MBSI70BBVRCGHU0K",
- "PayType": 2,
- "Price": 0.1,
- "ReallyPrice": 0.1,
- "TimeOut": 5,
- "State": 1,
- "Date": 1778086829,
- "RegisteredAt": "2026-05-07T01:00:50.9448888+08:00",
- "CompletedAt": "2026-05-07T01:00:51.3503482+08:00",
- "TradeNo": "2026050722001409341411855749"
- }
-]
\ No newline at end of file
+[]
\ No newline at end of file
diff --git a/bin/Inno编译文件.iss b/bin/Inno编译文件.iss
new file mode 100644
index 0000000..9f53abd
--- /dev/null
+++ b/bin/Inno编译文件.iss
@@ -0,0 +1,70 @@
+; --------------------------------------------------------
+; V免签PC监听程序 - Inno Setup 完整脚本
+; 编译环境:.NET 10.0 Windows
+; 打包模式:生成解决方案 (Release)
+; --------------------------------------------------------
+
+#define MyAppName "V免签PC监听程序"
+#define MyAppVersion "0.0.1"
+#define MyAppPublisher "扫地僧"
+#define MyAppURL "https://www.yunzer.cn/"
+#define MyAppExeName "Vmianqian.exe"
+#define MyAppAssocName MyAppName + "文件"
+#define MyAppAssocExt ".exe"
+#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt
+
+[Setup]
+; AppId 保持不变,确保版本覆盖正常
+AppId={{D8540A89-49BC-4843-9CE7-A96496DFB2DB}
+AppName={#MyAppName}
+AppVersion={#MyAppVersion}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+
+; 默认安装路径
+DefaultDirName={autopf}\{#MyAppName}
+UninstallDisplayIcon={app}\{#MyAppExeName}
+
+; --- 核心设置:监听程序必须以管理员权限运行 ---
+PrivilegesRequired=admin
+
+; 架构支持
+ArchitecturesAllowed=x64compatible
+ArchitecturesInstallIn64BitMode=x64compatible
+ChangesAssociations=yes
+DisableProgramGroupPage=yes
+
+; 输出设置
+OutputBaseFilename=V免签监听程序_安装包
+; 请确保此 .ico 文件路径正确
+SetupIconFile=E:\Demo\C\Vmianqian\logo.ico
+SolidCompression=yes
+WizardStyle=modern dynamic
+
+[Languages]
+Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+
+[Files]
+; --- 核心修正:直接指向 Release 生成目录,并打包目录下所有文件 ---
+; recursesubdirs 确保打包子目录(如 runtimes 目录,这对 .NET 程序至关重要)
+Source: "E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
+
+[Registry]
+; 注册表关联
+Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
+Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
+Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
+Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
+
+[Icons]
+; 显式指定图标文件为主程序本身,解决快捷方式图标空白问题
+Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\{#MyAppExeName}"
+Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; IconFilename: "{app}\{#MyAppExeName}"
+
+[Run]
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
\ No newline at end of file
diff --git a/build-upgrade-package.bat b/build-upgrade-package.bat
new file mode 100644
index 0000000..6e79e1a
--- /dev/null
+++ b/build-upgrade-package.bat
@@ -0,0 +1,22 @@
+@echo off
+setlocal
+
+cd /d "%~dp0"
+
+echo.
+echo ========================================
+echo Build upgrade package
+echo ========================================
+echo.
+
+powershell -ExecutionPolicy Bypass -File ".\package-incremental.ps1"
+
+echo.
+if %errorlevel% neq 0 (
+ echo Package build failed.
+) else (
+ echo Package build completed.
+)
+
+echo.
+pause
diff --git a/logo.ico b/logo.ico
new file mode 100644
index 0000000..c57c87c
Binary files /dev/null and b/logo.ico differ
diff --git a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs
index 073af4b..e87d706 100644
--- a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs
+++ b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs
@@ -12,11 +12,11 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Vmianqian")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
-[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6fb40a7689b5db8902ca50394f29517e5bdc4108")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("0.0.3.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.0.3+4a5dd2418b610b8c830d439dca19d71d132d86c7")]
[assembly: System.Reflection.AssemblyProductAttribute("Vmianqian")]
[assembly: System.Reflection.AssemblyTitleAttribute("Vmianqian")]
-[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyVersionAttribute("0.0.3.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
diff --git a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache
index 0d1ebc2..269464b 100644
--- a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache
+++ b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache
@@ -1 +1 @@
-5d9c659649f82a6db3033ce25ce5f2cd30abeb96072a886181b61b685af63a8c
+3d204494fbae9c9a1df67d0bd1dba87fdd9a76e6167861891cb9d29bd6d54027
diff --git a/obj/Debug/net10.0-windows/Vmianqian.Properties.Resources.resources b/obj/Debug/net10.0-windows/Vmianqian.Properties.Resources.resources
new file mode 100644
index 0000000..ff9008c
Binary files /dev/null and b/obj/Debug/net10.0-windows/Vmianqian.Properties.Resources.resources differ
diff --git a/obj/Debug/net10.0-windows/Vmianqian.assets.cache b/obj/Debug/net10.0-windows/Vmianqian.assets.cache
index 4ec8c4e..c309a4d 100644
Binary files a/obj/Debug/net10.0-windows/Vmianqian.assets.cache and b/obj/Debug/net10.0-windows/Vmianqian.assets.cache differ
diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache b/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache
index 14c28a0..47a831a 100644
Binary files a/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache and b/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache differ
diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache b/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache
index ac1d08f..7013e58 100644
--- a/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache
+++ b/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-a200812809a6c12e0e5a805bae74d188c7782b566b9e1e93bf9af5062674a65d
+24dcc0ae9e7bdc30cfe6b63b0849f0d4b1f637666c5ea893cbac6a9564f6e43d
diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt b/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt
index c746bcc..60762a3 100644
--- a/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt
+++ b/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt
@@ -77,3 +77,6 @@ E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Microsoft.Web.WebView2.Wpf.dll
E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Microsoft.Web.WebView2.Core.xml
E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Microsoft.Web.WebView2.WinForms.xml
E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\Microsoft.Web.WebView2.Wpf.xml
+E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\System.Management.dll
+E:\Demo\C\Vmianqian\bin\Debug\net10.0-windows\runtimes\win\lib\net9.0\System.Management.dll
+E:\Demo\C\Vmianqian\obj\Debug\net10.0-windows\Vmianqian.Properties.Resources.resources
diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache b/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache
index 470b591..4cad4d7 100644
Binary files a/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache and b/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache differ
diff --git a/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json b/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json
index 4d3a676..4739dcb 100644
--- a/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json
+++ b/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json
@@ -79,6 +79,22 @@
}
}
},
+ "System.Management/9.0.0": {
+ "runtime": {
+ "lib/net9.0/System.Management.dll": {
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net9.0/System.Management.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ }
+ },
"Titanium.Web.Proxy/3.2.0": {
"dependencies": {
"BrotliSharpLib": "0.3.3",
@@ -143,6 +159,13 @@
"path": "portable.bouncycastle/1.8.8",
"hashPath": "portable.bouncycastle.1.8.8.nupkg.sha512"
},
+ "System.Management/9.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bVh4xAMI5grY5GZoklKcMBLirhC8Lqzp63Ft3zXJacwGAlLyFdF4k0qz4pnKIlO6HyL2Z4zqmHm9UkzEo6FFsA==",
+ "path": "system.management/9.0.0",
+ "hashPath": "system.management.9.0.0.nupkg.sha512"
+ },
"Titanium.Web.Proxy/3.2.0": {
"type": "package",
"serviceable": true,
diff --git a/obj/Debug/net10.0-windows/Vmianqian.dll b/obj/Debug/net10.0-windows/Vmianqian.dll
index 4851cfb..ad54f9b 100644
Binary files a/obj/Debug/net10.0-windows/Vmianqian.dll and b/obj/Debug/net10.0-windows/Vmianqian.dll differ
diff --git a/obj/Debug/net10.0-windows/Vmianqian.pdb b/obj/Debug/net10.0-windows/Vmianqian.pdb
index a9880d4..6b92fa0 100644
Binary files a/obj/Debug/net10.0-windows/Vmianqian.pdb and b/obj/Debug/net10.0-windows/Vmianqian.pdb differ
diff --git a/obj/Debug/net10.0-windows/apphost.exe b/obj/Debug/net10.0-windows/apphost.exe
index ab4d2ff..86e86f0 100644
Binary files a/obj/Debug/net10.0-windows/apphost.exe and b/obj/Debug/net10.0-windows/apphost.exe differ
diff --git a/obj/Debug/net10.0-windows/ref/Vmianqian.dll b/obj/Debug/net10.0-windows/ref/Vmianqian.dll
index 018ee96..d917b15 100644
Binary files a/obj/Debug/net10.0-windows/ref/Vmianqian.dll and b/obj/Debug/net10.0-windows/ref/Vmianqian.dll differ
diff --git a/obj/Debug/net10.0-windows/refint/Vmianqian.dll b/obj/Debug/net10.0-windows/refint/Vmianqian.dll
index 018ee96..d917b15 100644
Binary files a/obj/Debug/net10.0-windows/refint/Vmianqian.dll and b/obj/Debug/net10.0-windows/refint/Vmianqian.dll differ
diff --git a/obj/Release/net10.0-windows/Vmianqian.AssemblyInfo.cs b/obj/Release/net10.0-windows/Vmianqian.AssemblyInfo.cs
index 3066ac8..09dfa77 100644
--- a/obj/Release/net10.0-windows/Vmianqian.AssemblyInfo.cs
+++ b/obj/Release/net10.0-windows/Vmianqian.AssemblyInfo.cs
@@ -13,11 +13,11 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Vmianqian")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
-[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("0.0.3.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.0.3+4a5dd2418b610b8c830d439dca19d71d132d86c7")]
[assembly: System.Reflection.AssemblyProductAttribute("Vmianqian")]
[assembly: System.Reflection.AssemblyTitleAttribute("Vmianqian")]
-[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyVersionAttribute("0.0.3.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
diff --git a/obj/Release/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache b/obj/Release/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache
index b384551..6b84b17 100644
--- a/obj/Release/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache
+++ b/obj/Release/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache
@@ -1 +1 @@
-bb18ffbf4a653410f1f8c3c4ab222800a3c3de5990547926b3c957a15167d80b
+d5cba44d6177ed61740cb20a54afeb6c000c95686a32072f5485dccc9649be8e
diff --git a/obj/Release/net10.0-windows/Vmianqian.Form1.resources b/obj/Release/net10.0-windows/Vmianqian.Form1.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/obj/Release/net10.0-windows/Vmianqian.Form1.resources differ
diff --git a/obj/Release/net10.0-windows/Vmianqian.GlobalUsings.g.cs b/obj/Release/net10.0-windows/Vmianqian.GlobalUsings.g.cs
index 18cabb0..3c55c3d 100644
--- a/obj/Release/net10.0-windows/Vmianqian.GlobalUsings.g.cs
+++ b/obj/Release/net10.0-windows/Vmianqian.GlobalUsings.g.cs
@@ -2,9 +2,7 @@
global using System;
global using System.Collections.Generic;
global using System.Drawing;
-global using System.IO;
global using System.Linq;
-global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
global using System.Windows.Forms;
diff --git a/obj/Release/net10.0-windows/Vmianqian.Properties.Resources.resources b/obj/Release/net10.0-windows/Vmianqian.Properties.Resources.resources
new file mode 100644
index 0000000..ff9008c
Binary files /dev/null and b/obj/Release/net10.0-windows/Vmianqian.Properties.Resources.resources differ
diff --git a/obj/Release/net10.0-windows/Vmianqian.assets.cache b/obj/Release/net10.0-windows/Vmianqian.assets.cache
index b25ef84..d502fc1 100644
Binary files a/obj/Release/net10.0-windows/Vmianqian.assets.cache and b/obj/Release/net10.0-windows/Vmianqian.assets.cache differ
diff --git a/obj/Release/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache b/obj/Release/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache
index 8fee1d4..47a831a 100644
Binary files a/obj/Release/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache and b/obj/Release/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache differ
diff --git a/obj/Release/net10.0-windows/Vmianqian.csproj.BuildWithSkipAnalyzers b/obj/Release/net10.0-windows/Vmianqian.csproj.BuildWithSkipAnalyzers
new file mode 100644
index 0000000..e69de29
diff --git a/obj/Release/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache b/obj/Release/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..639a437
--- /dev/null
+++ b/obj/Release/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+ee9b8c7cf372675afde348f31232259a2c05269eef2b34bbebb838990954ad11
diff --git a/obj/Release/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt b/obj/Release/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..dac8c67
--- /dev/null
+++ b/obj/Release/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt
@@ -0,0 +1,37 @@
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\runtimes\win-x86\native\WebView2Loader.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\runtimes\win-x64\native\WebView2Loader.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\runtimes\win-arm64\native\WebView2Loader.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Vmianqian.exe
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Vmianqian.deps.json
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Vmianqian.runtimeconfig.json
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Vmianqian.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Vmianqian.pdb
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\AntdUI.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\BouncyCastle.Cryptography.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\BrotliSharpLib.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\MailKit.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\MimeKit.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\BouncyCastle.Crypto.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\System.Management.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Titanium.Web.Proxy.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\runtimes\win\lib\net9.0\System.Management.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Microsoft.Web.WebView2.Core.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Microsoft.Web.WebView2.WinForms.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Microsoft.Web.WebView2.Wpf.dll
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Microsoft.Web.WebView2.Core.xml
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Microsoft.Web.WebView2.WinForms.xml
+E:\Demo\C\Vmianqian\bin\Release\net10.0-windows\Microsoft.Web.WebView2.Wpf.xml
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.csproj.AssemblyReference.cache
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.Form1.resources
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.Properties.Resources.resources
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.csproj.GenerateResource.cache
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.GeneratedMSBuildEditorConfig.editorconfig
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.AssemblyInfoInputs.cache
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.AssemblyInfo.cs
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.csproj.CoreCompileInputs.cache
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.csproj.Up2Date
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.dll
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\refint\Vmianqian.dll
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.pdb
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\Vmianqian.genruntimeconfig.cache
+E:\Demo\C\Vmianqian\obj\Release\net10.0-windows\ref\Vmianqian.dll
diff --git a/obj/Release/net10.0-windows/Vmianqian.csproj.GenerateResource.cache b/obj/Release/net10.0-windows/Vmianqian.csproj.GenerateResource.cache
new file mode 100644
index 0000000..33da68f
Binary files /dev/null and b/obj/Release/net10.0-windows/Vmianqian.csproj.GenerateResource.cache differ
diff --git a/obj/Release/net10.0-windows/Vmianqian.csproj.Up2Date b/obj/Release/net10.0-windows/Vmianqian.csproj.Up2Date
new file mode 100644
index 0000000..e69de29
diff --git a/obj/Release/net10.0-windows/Vmianqian.designer.deps.json b/obj/Release/net10.0-windows/Vmianqian.designer.deps.json
new file mode 100644
index 0000000..4739dcb
--- /dev/null
+++ b/obj/Release/net10.0-windows/Vmianqian.designer.deps.json
@@ -0,0 +1,177 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v10.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v10.0": {
+ "AntdUI/2.3.10": {
+ "runtime": {
+ "lib/net10.0-windows7.0/AntdUI.dll": {
+ "assemblyVersion": "2.3.10.0",
+ "fileVersion": "2.3.10.0"
+ }
+ }
+ },
+ "BouncyCastle.Cryptography/2.6.2": {
+ "runtime": {
+ "lib/net6.0/BouncyCastle.Cryptography.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.6.2.46322"
+ }
+ }
+ },
+ "BrotliSharpLib/0.3.3": {
+ "runtime": {
+ "lib/netstandard2.0/BrotliSharpLib.dll": {
+ "assemblyVersion": "0.3.2.0",
+ "fileVersion": "0.3.3.0"
+ }
+ }
+ },
+ "MailKit/4.16.0": {
+ "dependencies": {
+ "MimeKit": "4.16.0"
+ },
+ "runtime": {
+ "lib/net10.0/MailKit.dll": {
+ "assemblyVersion": "4.16.0.0",
+ "fileVersion": "4.16.0.0"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2/1.0.2903.40": {
+ "runtimeTargets": {
+ "runtimes/win-arm64/native/WebView2Loader.dll": {
+ "rid": "win-arm64",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ },
+ "runtimes/win-x64/native/WebView2Loader.dll": {
+ "rid": "win-x64",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ },
+ "runtimes/win-x86/native/WebView2Loader.dll": {
+ "rid": "win-x86",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ },
+ "MimeKit/4.16.0": {
+ "dependencies": {
+ "BouncyCastle.Cryptography": "2.6.2"
+ },
+ "runtime": {
+ "lib/net10.0/MimeKit.dll": {
+ "assemblyVersion": "4.16.0.0",
+ "fileVersion": "4.16.0.0"
+ }
+ }
+ },
+ "Portable.BouncyCastle/1.8.8": {
+ "runtime": {
+ "lib/netstandard2.0/BouncyCastle.Crypto.dll": {
+ "assemblyVersion": "1.8.8.0",
+ "fileVersion": "1.8.8.2"
+ }
+ }
+ },
+ "System.Management/9.0.0": {
+ "runtime": {
+ "lib/net9.0/System.Management.dll": {
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net9.0/System.Management.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ }
+ },
+ "Titanium.Web.Proxy/3.2.0": {
+ "dependencies": {
+ "BrotliSharpLib": "0.3.3",
+ "Portable.BouncyCastle": "1.8.8"
+ },
+ "runtime": {
+ "lib/netstandard2.1/Titanium.Web.Proxy.dll": {
+ "assemblyVersion": "1.0.1.0",
+ "fileVersion": "1.0.1.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "AntdUI/2.3.10": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-twjNYhVIw08ydcQsBC5c7/59WBXVqba4kulN48ejxUz2i37xJU6ukYqUtxEFhiQtVzmu8cmGYAjZ4HM6BOKZwg==",
+ "path": "antdui/2.3.10",
+ "hashPath": "antdui.2.3.10.nupkg.sha512"
+ },
+ "BouncyCastle.Cryptography/2.6.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==",
+ "path": "bouncycastle.cryptography/2.6.2",
+ "hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512"
+ },
+ "BrotliSharpLib/0.3.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/z74VNg6etlQK/N1mSD5Tz2qQUZqc3RMiuv2F8Q/MOfvg4l7a6lDYhQQTPd9s9saSokh1GqUD7JTuunOiQid8w==",
+ "path": "brotlisharplib/0.3.3",
+ "hashPath": "brotlisharplib.0.3.3.nupkg.sha512"
+ },
+ "MailKit/4.16.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-trJ82DOpAmo8i1jO1vNE+dGn4mPRyeYfy4swRcAGgMJhPoI1Kohf4OFJJf0+YIj4iUxgxPn8W+ht7e7KiYzSjg==",
+ "path": "mailkit/4.16.0",
+ "hashPath": "mailkit.4.16.0.nupkg.sha512"
+ },
+ "Microsoft.Web.WebView2/1.0.2903.40": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ==",
+ "path": "microsoft.web.webview2/1.0.2903.40",
+ "hashPath": "microsoft.web.webview2.1.0.2903.40.nupkg.sha512"
+ },
+ "MimeKit/4.16.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X0LFxeM4gPRIhODyY/HYS9b+zRZ7y//v59rFzgS6wLxcPuZThnMtNZHtrr0fjLyRRkg3gqJBtvW36XfUzZ7Djw==",
+ "path": "mimekit/4.16.0",
+ "hashPath": "mimekit.4.16.0.nupkg.sha512"
+ },
+ "Portable.BouncyCastle/1.8.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1rxdf8NfyAxLlqIEciCl/yNhmz1YiLkmp6rrF8p3/NVmyHHzPWLx8djtDvSAwhPLg64BXvsRcM3+5bP1HAUdYg==",
+ "path": "portable.bouncycastle/1.8.8",
+ "hashPath": "portable.bouncycastle.1.8.8.nupkg.sha512"
+ },
+ "System.Management/9.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bVh4xAMI5grY5GZoklKcMBLirhC8Lqzp63Ft3zXJacwGAlLyFdF4k0qz4pnKIlO6HyL2Z4zqmHm9UkzEo6FFsA==",
+ "path": "system.management/9.0.0",
+ "hashPath": "system.management.9.0.0.nupkg.sha512"
+ },
+ "Titanium.Web.Proxy/3.2.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XHchT17Cqr4lX+p4+T4qMPOMfBBvXgIkjy6imy4guNWxLTPKyCaLv/VTiHgk4CwXnXTHlga7KWT1agNCbjwYYg==",
+ "path": "titanium.web.proxy/3.2.0",
+ "hashPath": "titanium.web.proxy.3.2.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/obj/Release/net10.0-windows/Vmianqian.designer.runtimeconfig.json b/obj/Release/net10.0-windows/Vmianqian.designer.runtimeconfig.json
new file mode 100644
index 0000000..932e48d
--- /dev/null
+++ b/obj/Release/net10.0-windows/Vmianqian.designer.runtimeconfig.json
@@ -0,0 +1,26 @@
+{
+ "runtimeOptions": {
+ "tfm": "net10.0",
+ "frameworks": [
+ {
+ "name": "Microsoft.NETCore.App",
+ "version": "10.0.0"
+ },
+ {
+ "name": "Microsoft.WindowsDesktop.App",
+ "version": "10.0.0"
+ }
+ ],
+ "additionalProbingPaths": [
+ "C:\\Users\\Administrator\\.dotnet\\store\\|arch|\\|tfm|",
+ "C:\\Users\\Administrator\\.nuget\\packages",
+ "C:\\Softwares\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
+ "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false,
+ "Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/obj/Release/net10.0-windows/Vmianqian.dll b/obj/Release/net10.0-windows/Vmianqian.dll
new file mode 100644
index 0000000..fdc475f
Binary files /dev/null and b/obj/Release/net10.0-windows/Vmianqian.dll differ
diff --git a/obj/Release/net10.0-windows/Vmianqian.genruntimeconfig.cache b/obj/Release/net10.0-windows/Vmianqian.genruntimeconfig.cache
new file mode 100644
index 0000000..f055a8d
--- /dev/null
+++ b/obj/Release/net10.0-windows/Vmianqian.genruntimeconfig.cache
@@ -0,0 +1 @@
+45a03bf294828a75ec09fc75b1589feef5d0fab1f66f7428d067de13289deee1
diff --git a/obj/Release/net10.0-windows/Vmianqian.pdb b/obj/Release/net10.0-windows/Vmianqian.pdb
new file mode 100644
index 0000000..2046c9e
Binary files /dev/null and b/obj/Release/net10.0-windows/Vmianqian.pdb differ
diff --git a/obj/Release/net10.0-windows/apphost.exe b/obj/Release/net10.0-windows/apphost.exe
new file mode 100644
index 0000000..ecbb447
Binary files /dev/null and b/obj/Release/net10.0-windows/apphost.exe differ
diff --git a/obj/Release/net10.0-windows/ref/Vmianqian.dll b/obj/Release/net10.0-windows/ref/Vmianqian.dll
new file mode 100644
index 0000000..d41b870
Binary files /dev/null and b/obj/Release/net10.0-windows/ref/Vmianqian.dll differ
diff --git a/obj/Release/net10.0-windows/refint/Vmianqian.dll b/obj/Release/net10.0-windows/refint/Vmianqian.dll
new file mode 100644
index 0000000..d41b870
Binary files /dev/null and b/obj/Release/net10.0-windows/refint/Vmianqian.dll differ
diff --git a/obj/Vmianqian.csproj.nuget.dgspec.json b/obj/Vmianqian.csproj.nuget.dgspec.json
index f2dd756..ec9ee3e 100644
--- a/obj/Vmianqian.csproj.nuget.dgspec.json
+++ b/obj/Vmianqian.csproj.nuget.dgspec.json
@@ -5,7 +5,7 @@
},
"projects": {
"E:\\Demo\\C\\Vmianqian\\Vmianqian.csproj": {
- "version": "1.0.0",
+ "version": "0.0.3",
"restore": {
"projectUniqueName": "E:\\Demo\\C\\Vmianqian\\Vmianqian.csproj",
"projectName": "Vmianqian",
@@ -30,8 +30,7 @@
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
- "net10.0-windows": {
- "framework": "net10.0-windows7.0",
+ "net10.0-windows7.0": {
"targetAlias": "net10.0-windows",
"projectReferences": {}
}
@@ -49,8 +48,7 @@
"SdkAnalysisLevel": "10.0.200"
},
"frameworks": {
- "net10.0-windows": {
- "framework": "net10.0-windows7.0",
+ "net10.0-windows7.0": {
"targetAlias": "net10.0-windows",
"dependencies": {
"AntdUI": {
@@ -65,6 +63,10 @@
"target": "Package",
"version": "[1.0.2903.40, )"
},
+ "System.Management": {
+ "target": "Package",
+ "version": "[9.0.0, )"
+ },
"Titanium.Web.Proxy": {
"target": "Package",
"version": "[3.2.0, )"
diff --git a/obj/project.assets.json b/obj/project.assets.json
index 45007ad..3cfad84 100644
--- a/obj/project.assets.json
+++ b/obj/project.assets.json
@@ -109,6 +109,28 @@
}
}
},
+ "System.Management/9.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/net9.0/System.Management.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/System.Management.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/_._": {}
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net9.0/System.Management.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
"Titanium.Web.Proxy/3.2.0": {
"type": "package",
"dependencies": {
@@ -394,6 +416,35 @@
"portable.bouncycastle.nuspec"
]
},
+ "System.Management/9.0.0": {
+ "sha512": "bVh4xAMI5grY5GZoklKcMBLirhC8Lqzp63Ft3zXJacwGAlLyFdF4k0qz4pnKIlO6HyL2Z4zqmHm9UkzEo6FFsA==",
+ "type": "package",
+ "path": "system.management/9.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net8.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Management.targets",
+ "lib/net462/_._",
+ "lib/net8.0/System.Management.dll",
+ "lib/net8.0/System.Management.xml",
+ "lib/net9.0/System.Management.dll",
+ "lib/net9.0/System.Management.xml",
+ "lib/netstandard2.0/System.Management.dll",
+ "lib/netstandard2.0/System.Management.xml",
+ "runtimes/win/lib/net8.0/System.Management.dll",
+ "runtimes/win/lib/net8.0/System.Management.xml",
+ "runtimes/win/lib/net9.0/System.Management.dll",
+ "runtimes/win/lib/net9.0/System.Management.xml",
+ "system.management.9.0.0.nupkg.sha512",
+ "system.management.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
"Titanium.Web.Proxy/3.2.0": {
"sha512": "XHchT17Cqr4lX+p4+T4qMPOMfBBvXgIkjy6imy4guNWxLTPKyCaLv/VTiHgk4CwXnXTHlga7KWT1agNCbjwYYg==",
"type": "package",
@@ -415,6 +466,7 @@
"AntdUI >= 2.3.10",
"MailKit >= 4.16.0",
"Microsoft.Web.WebView2 >= 1.0.2903.40",
+ "System.Management >= 9.0.0",
"Titanium.Web.Proxy >= 3.2.0"
]
},
@@ -423,7 +475,7 @@
"C:\\Softwares\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
- "version": "1.0.0",
+ "version": "0.0.3",
"restore": {
"projectUniqueName": "E:\\Demo\\C\\Vmianqian\\Vmianqian.csproj",
"projectName": "Vmianqian",
@@ -483,6 +535,10 @@
"target": "Package",
"version": "[1.0.2903.40, )"
},
+ "System.Management": {
+ "target": "Package",
+ "version": "[9.0.0, )"
+ },
"Titanium.Web.Proxy": {
"target": "Package",
"version": "[3.2.0, )"
diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache
index 30738bf..3a52f85 100644
--- a/obj/project.nuget.cache
+++ b/obj/project.nuget.cache
@@ -1,6 +1,6 @@
{
"version": 2,
- "dgSpecHash": "bRNLvl20a88=",
+ "dgSpecHash": "E4LxKBtbicw=",
"success": true,
"projectFilePath": "E:\\Demo\\C\\Vmianqian\\Vmianqian.csproj",
"expectedPackageFiles": [
@@ -11,6 +11,7 @@
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.web.webview2\\1.0.2903.40\\microsoft.web.webview2.1.0.2903.40.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\mimekit\\4.16.0\\mimekit.4.16.0.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\portable.bouncycastle\\1.8.8\\portable.bouncycastle.1.8.8.nupkg.sha512",
+ "C:\\Users\\Administrator\\.nuget\\packages\\system.management\\9.0.0\\system.management.9.0.0.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\titanium.web.proxy\\3.2.0\\titanium.web.proxy.3.2.0.nupkg.sha512"
],
"logs": []
diff --git a/package-incremental.ps1 b/package-incremental.ps1
new file mode 100644
index 0000000..cddd951
--- /dev/null
+++ b/package-incremental.ps1
@@ -0,0 +1,149 @@
+param(
+ [string]$ProjectFile = "Vmianqian.csproj",
+ [string]$Configuration = "Release",
+ [string]$Framework = "net10.0-windows",
+ [string]$OutputRoot = "release-packages",
+ [string]$DeleteListFile = "delete-files.txt"
+)
+
+$ErrorActionPreference = "Stop"
+
+function Write-Step {
+ param([string]$Message)
+ Write-Host ""
+ Write-Host "==> $Message" -ForegroundColor Cyan
+}
+
+function Remove-IfExists {
+ param([string]$PathValue)
+ if (Test-Path $PathValue) {
+ Remove-Item -Path $PathValue -Recurse -Force
+ }
+}
+
+function Get-ProjectVersion {
+ param([string]$CsprojPath)
+
+ if (-not (Test-Path $CsprojPath)) {
+ throw "Project file not found: $CsprojPath"
+ }
+
+ $content = Get-Content -Path $CsprojPath -Raw
+
+ $patterns = @(
+ "\s*([^<]+?)\s*",
+ "\s*([^<]+?)\s*",
+ "\s*([^<]+?)\s*",
+ "\s*([^<]+?)\s*"
+ )
+
+ foreach ($pattern in $patterns) {
+ $match = [regex]::Match($content, $pattern)
+ if ($match.Success) {
+ return $match.Groups[1].Value.Trim()
+ }
+ }
+
+ return (Get-Date -Format "yyyy.MM.dd.HHmm")
+}
+
+function Copy-RuntimeFiles {
+ param(
+ [string]$SourceDir,
+ [string]$TargetDir
+ )
+
+ if (-not (Test-Path $SourceDir)) {
+ throw "Build output directory not found: $SourceDir"
+ }
+
+ $resolvedSourceDir = (Resolve-Path $SourceDir).Path.TrimEnd('\', '/')
+ New-Item -ItemType Directory -Path $TargetDir -Force | Out-Null
+
+ $excludeDirectories = @(
+ "Vmianqian.exe.WebView2",
+ "EBWebView"
+ )
+
+ $excludeExtensions = @(
+ ".pdb",
+ ".xml",
+ ".config",
+ ".tmp",
+ ".log"
+ )
+
+ $excludeFileNames = @(
+ "appsettings.Development.json"
+ )
+
+ Get-ChildItem -Path $resolvedSourceDir -Recurse -File | ForEach-Object {
+ $fullName = $_.FullName
+ $name = $_.Name
+ $extension = $_.Extension
+
+ foreach ($dirName in $excludeDirectories) {
+ $marker = [System.IO.Path]::DirectorySeparatorChar + $dirName + [System.IO.Path]::DirectorySeparatorChar
+ if ($fullName.Contains($marker)) {
+ return
+ }
+ }
+
+ if ($excludeExtensions -contains $extension) {
+ return
+ }
+
+ if ($excludeFileNames -contains $name) {
+ return
+ }
+
+ $relativePath = $fullName.Substring($resolvedSourceDir.Length).TrimStart('\', '/')
+ $targetPath = Join-Path $TargetDir $relativePath
+ $targetParent = Split-Path -Parent $targetPath
+
+ if (-not (Test-Path $targetParent)) {
+ New-Item -ItemType Directory -Path $targetParent -Force | Out-Null
+ }
+
+ Copy-Item -Path $fullName -Destination $targetPath -Force
+ }
+}
+
+$projectVersion = Get-ProjectVersion -CsprojPath $ProjectFile
+$projectName = [System.IO.Path]::GetFileNameWithoutExtension($ProjectFile)
+
+$buildOutputDir = Join-Path "bin" (Join-Path $Configuration $Framework)
+$packageVersionDir = Join-Path $OutputRoot $projectVersion
+$packageRootDir = Join-Path $packageVersionDir "incremental"
+$zipFilePath = Join-Path $OutputRoot ("{0}_{1}.zip" -f $projectName, $projectVersion)
+
+Write-Step "Project version: $projectVersion"
+Write-Step "Building project"
+dotnet build $ProjectFile -c $Configuration
+if ($LASTEXITCODE -ne 0) {
+ throw "dotnet build failed"
+}
+
+Write-Step "Cleaning old package output"
+Remove-IfExists -PathValue $packageVersionDir
+Remove-IfExists -PathValue $zipFilePath
+
+Write-Step "Copying runtime files"
+Copy-RuntimeFiles -SourceDir $buildOutputDir -TargetDir $packageRootDir
+
+if (Test-Path $DeleteListFile) {
+ Write-Step "Including delete-files.txt"
+ Copy-Item -Path $DeleteListFile -Destination (Join-Path $packageRootDir "delete-files.txt") -Force
+}
+
+Write-Step "Creating zip package"
+Compress-Archive -Path (Join-Path $packageRootDir '*') -DestinationPath $zipFilePath -Force
+
+Write-Step "Package completed"
+Write-Host "Version: $projectVersion" -ForegroundColor Green
+Write-Host "Incremental folder: $(Resolve-Path $packageRootDir)" -ForegroundColor Green
+Write-Host "Zip package: $(Resolve-Path $zipFilePath)" -ForegroundColor Green
+
+Write-Host ""
+Write-Host "Upload this zip file to your server:" -ForegroundColor Yellow
+Write-Host $zipFilePath -ForegroundColor Yellow
diff --git a/release-packages/0.0.2/incremental/AntdUI.dll b/release-packages/0.0.2/incremental/AntdUI.dll
new file mode 100644
index 0000000..af9fbb7
Binary files /dev/null and b/release-packages/0.0.2/incremental/AntdUI.dll differ
diff --git a/release-packages/0.0.2/incremental/BouncyCastle.Crypto.dll b/release-packages/0.0.2/incremental/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..0a0cb67
Binary files /dev/null and b/release-packages/0.0.2/incremental/BouncyCastle.Crypto.dll differ
diff --git a/release-packages/0.0.2/incremental/BouncyCastle.Cryptography.dll b/release-packages/0.0.2/incremental/BouncyCastle.Cryptography.dll
new file mode 100644
index 0000000..e8d3222
Binary files /dev/null and b/release-packages/0.0.2/incremental/BouncyCastle.Cryptography.dll differ
diff --git a/release-packages/0.0.2/incremental/BrotliSharpLib.dll b/release-packages/0.0.2/incremental/BrotliSharpLib.dll
new file mode 100644
index 0000000..853c485
Binary files /dev/null and b/release-packages/0.0.2/incremental/BrotliSharpLib.dll differ
diff --git a/release-packages/0.0.2/incremental/MailKit.dll b/release-packages/0.0.2/incremental/MailKit.dll
new file mode 100644
index 0000000..02212c3
Binary files /dev/null and b/release-packages/0.0.2/incremental/MailKit.dll differ
diff --git a/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.Core.dll b/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.Core.dll
new file mode 100644
index 0000000..4a27877
Binary files /dev/null and b/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.Core.dll differ
diff --git a/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.WinForms.dll b/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.WinForms.dll
new file mode 100644
index 0000000..b2d08ad
Binary files /dev/null and b/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.WinForms.dll differ
diff --git a/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.Wpf.dll b/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.Wpf.dll
new file mode 100644
index 0000000..ed79cd9
Binary files /dev/null and b/release-packages/0.0.2/incremental/Microsoft.Web.WebView2.Wpf.dll differ
diff --git a/release-packages/0.0.2/incremental/MimeKit.dll b/release-packages/0.0.2/incremental/MimeKit.dll
new file mode 100644
index 0000000..da00220
Binary files /dev/null and b/release-packages/0.0.2/incremental/MimeKit.dll differ
diff --git a/release-packages/0.0.2/incremental/System.Management.dll b/release-packages/0.0.2/incremental/System.Management.dll
new file mode 100644
index 0000000..4131b2c
Binary files /dev/null and b/release-packages/0.0.2/incremental/System.Management.dll differ
diff --git a/release-packages/0.0.2/incremental/Titanium.Web.Proxy.dll b/release-packages/0.0.2/incremental/Titanium.Web.Proxy.dll
new file mode 100644
index 0000000..adcc007
Binary files /dev/null and b/release-packages/0.0.2/incremental/Titanium.Web.Proxy.dll differ
diff --git a/release-packages/0.0.2/incremental/Vmianqian.deps.json b/release-packages/0.0.2/incremental/Vmianqian.deps.json
new file mode 100644
index 0000000..5a51752
--- /dev/null
+++ b/release-packages/0.0.2/incremental/Vmianqian.deps.json
@@ -0,0 +1,236 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v10.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v10.0": {
+ "Vmianqian/0.0.2": {
+ "dependencies": {
+ "AntdUI": "2.3.10",
+ "MailKit": "4.16.0",
+ "Microsoft.Web.WebView2": "1.0.2903.40",
+ "System.Management": "9.0.0",
+ "Titanium.Web.Proxy": "3.2.0",
+ "Microsoft.Web.WebView2.Core": "1.0.2903.40",
+ "Microsoft.Web.WebView2.WinForms": "1.0.2903.40",
+ "Microsoft.Web.WebView2.Wpf": "1.0.2903.40"
+ },
+ "runtime": {
+ "Vmianqian.dll": {}
+ }
+ },
+ "AntdUI/2.3.10": {
+ "runtime": {
+ "lib/net10.0-windows7.0/AntdUI.dll": {
+ "assemblyVersion": "2.3.10.0",
+ "fileVersion": "2.3.10.0"
+ }
+ }
+ },
+ "BouncyCastle.Cryptography/2.6.2": {
+ "runtime": {
+ "lib/net6.0/BouncyCastle.Cryptography.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.6.2.46322"
+ }
+ }
+ },
+ "BrotliSharpLib/0.3.3": {
+ "runtime": {
+ "lib/netstandard2.0/BrotliSharpLib.dll": {
+ "assemblyVersion": "0.3.2.0",
+ "fileVersion": "0.3.3.0"
+ }
+ }
+ },
+ "MailKit/4.16.0": {
+ "dependencies": {
+ "MimeKit": "4.16.0"
+ },
+ "runtime": {
+ "lib/net10.0/MailKit.dll": {
+ "assemblyVersion": "4.16.0.0",
+ "fileVersion": "4.16.0.0"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2/1.0.2903.40": {
+ "runtimeTargets": {
+ "runtimes/win-arm64/native/WebView2Loader.dll": {
+ "rid": "win-arm64",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ },
+ "runtimes/win-x64/native/WebView2Loader.dll": {
+ "rid": "win-x64",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ },
+ "runtimes/win-x86/native/WebView2Loader.dll": {
+ "rid": "win-x86",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ },
+ "MimeKit/4.16.0": {
+ "dependencies": {
+ "BouncyCastle.Cryptography": "2.6.2"
+ },
+ "runtime": {
+ "lib/net10.0/MimeKit.dll": {
+ "assemblyVersion": "4.16.0.0",
+ "fileVersion": "4.16.0.0"
+ }
+ }
+ },
+ "Portable.BouncyCastle/1.8.8": {
+ "runtime": {
+ "lib/netstandard2.0/BouncyCastle.Crypto.dll": {
+ "assemblyVersion": "1.8.8.0",
+ "fileVersion": "1.8.8.2"
+ }
+ }
+ },
+ "System.Management/9.0.0": {
+ "runtime": {
+ "lib/net9.0/System.Management.dll": {
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net9.0/System.Management.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ }
+ },
+ "Titanium.Web.Proxy/3.2.0": {
+ "dependencies": {
+ "BrotliSharpLib": "0.3.3",
+ "Portable.BouncyCastle": "1.8.8"
+ },
+ "runtime": {
+ "lib/netstandard2.1/Titanium.Web.Proxy.dll": {
+ "assemblyVersion": "1.0.1.0",
+ "fileVersion": "1.0.1.0"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2.Core/1.0.2903.40": {
+ "runtime": {
+ "Microsoft.Web.WebView2.Core.dll": {
+ "assemblyVersion": "1.0.2903.40",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2.WinForms/1.0.2903.40": {
+ "runtime": {
+ "Microsoft.Web.WebView2.WinForms.dll": {
+ "assemblyVersion": "1.0.2903.40",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2.Wpf/1.0.2903.40": {
+ "runtime": {
+ "Microsoft.Web.WebView2.Wpf.dll": {
+ "assemblyVersion": "1.0.2903.40",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Vmianqian/0.0.2": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "AntdUI/2.3.10": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-twjNYhVIw08ydcQsBC5c7/59WBXVqba4kulN48ejxUz2i37xJU6ukYqUtxEFhiQtVzmu8cmGYAjZ4HM6BOKZwg==",
+ "path": "antdui/2.3.10",
+ "hashPath": "antdui.2.3.10.nupkg.sha512"
+ },
+ "BouncyCastle.Cryptography/2.6.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==",
+ "path": "bouncycastle.cryptography/2.6.2",
+ "hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512"
+ },
+ "BrotliSharpLib/0.3.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/z74VNg6etlQK/N1mSD5Tz2qQUZqc3RMiuv2F8Q/MOfvg4l7a6lDYhQQTPd9s9saSokh1GqUD7JTuunOiQid8w==",
+ "path": "brotlisharplib/0.3.3",
+ "hashPath": "brotlisharplib.0.3.3.nupkg.sha512"
+ },
+ "MailKit/4.16.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-trJ82DOpAmo8i1jO1vNE+dGn4mPRyeYfy4swRcAGgMJhPoI1Kohf4OFJJf0+YIj4iUxgxPn8W+ht7e7KiYzSjg==",
+ "path": "mailkit/4.16.0",
+ "hashPath": "mailkit.4.16.0.nupkg.sha512"
+ },
+ "Microsoft.Web.WebView2/1.0.2903.40": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ==",
+ "path": "microsoft.web.webview2/1.0.2903.40",
+ "hashPath": "microsoft.web.webview2.1.0.2903.40.nupkg.sha512"
+ },
+ "MimeKit/4.16.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X0LFxeM4gPRIhODyY/HYS9b+zRZ7y//v59rFzgS6wLxcPuZThnMtNZHtrr0fjLyRRkg3gqJBtvW36XfUzZ7Djw==",
+ "path": "mimekit/4.16.0",
+ "hashPath": "mimekit.4.16.0.nupkg.sha512"
+ },
+ "Portable.BouncyCastle/1.8.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1rxdf8NfyAxLlqIEciCl/yNhmz1YiLkmp6rrF8p3/NVmyHHzPWLx8djtDvSAwhPLg64BXvsRcM3+5bP1HAUdYg==",
+ "path": "portable.bouncycastle/1.8.8",
+ "hashPath": "portable.bouncycastle.1.8.8.nupkg.sha512"
+ },
+ "System.Management/9.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bVh4xAMI5grY5GZoklKcMBLirhC8Lqzp63Ft3zXJacwGAlLyFdF4k0qz4pnKIlO6HyL2Z4zqmHm9UkzEo6FFsA==",
+ "path": "system.management/9.0.0",
+ "hashPath": "system.management.9.0.0.nupkg.sha512"
+ },
+ "Titanium.Web.Proxy/3.2.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XHchT17Cqr4lX+p4+T4qMPOMfBBvXgIkjy6imy4guNWxLTPKyCaLv/VTiHgk4CwXnXTHlga7KWT1agNCbjwYYg==",
+ "path": "titanium.web.proxy/3.2.0",
+ "hashPath": "titanium.web.proxy.3.2.0.nupkg.sha512"
+ },
+ "Microsoft.Web.WebView2.Core/1.0.2903.40": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Web.WebView2.WinForms/1.0.2903.40": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Web.WebView2.Wpf/1.0.2903.40": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/release-packages/0.0.2/incremental/Vmianqian.dll b/release-packages/0.0.2/incremental/Vmianqian.dll
new file mode 100644
index 0000000..588b55e
Binary files /dev/null and b/release-packages/0.0.2/incremental/Vmianqian.dll differ
diff --git a/release-packages/0.0.2/incremental/Vmianqian.exe b/release-packages/0.0.2/incremental/Vmianqian.exe
new file mode 100644
index 0000000..86e86f0
Binary files /dev/null and b/release-packages/0.0.2/incremental/Vmianqian.exe differ
diff --git a/release-packages/0.0.2/incremental/Vmianqian.runtimeconfig.json b/release-packages/0.0.2/incremental/Vmianqian.runtimeconfig.json
new file mode 100644
index 0000000..e344539
--- /dev/null
+++ b/release-packages/0.0.2/incremental/Vmianqian.runtimeconfig.json
@@ -0,0 +1,20 @@
+{
+ "runtimeOptions": {
+ "tfm": "net10.0",
+ "frameworks": [
+ {
+ "name": "Microsoft.NETCore.App",
+ "version": "10.0.0"
+ },
+ {
+ "name": "Microsoft.WindowsDesktop.App",
+ "version": "10.0.0"
+ }
+ ],
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
+ "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/release-packages/0.0.2/incremental/runtimes/win-arm64/native/WebView2Loader.dll b/release-packages/0.0.2/incremental/runtimes/win-arm64/native/WebView2Loader.dll
new file mode 100644
index 0000000..ff13a17
Binary files /dev/null and b/release-packages/0.0.2/incremental/runtimes/win-arm64/native/WebView2Loader.dll differ
diff --git a/release-packages/0.0.2/incremental/runtimes/win-x64/native/WebView2Loader.dll b/release-packages/0.0.2/incremental/runtimes/win-x64/native/WebView2Loader.dll
new file mode 100644
index 0000000..983ee32
Binary files /dev/null and b/release-packages/0.0.2/incremental/runtimes/win-x64/native/WebView2Loader.dll differ
diff --git a/release-packages/0.0.2/incremental/runtimes/win-x86/native/WebView2Loader.dll b/release-packages/0.0.2/incremental/runtimes/win-x86/native/WebView2Loader.dll
new file mode 100644
index 0000000..a8565ba
Binary files /dev/null and b/release-packages/0.0.2/incremental/runtimes/win-x86/native/WebView2Loader.dll differ
diff --git a/release-packages/0.0.2/incremental/runtimes/win/lib/net9.0/System.Management.dll b/release-packages/0.0.2/incremental/runtimes/win/lib/net9.0/System.Management.dll
new file mode 100644
index 0000000..961753e
Binary files /dev/null and b/release-packages/0.0.2/incremental/runtimes/win/lib/net9.0/System.Management.dll differ
diff --git a/release-packages/0.0.3/incremental/AntdUI.dll b/release-packages/0.0.3/incremental/AntdUI.dll
new file mode 100644
index 0000000..af9fbb7
Binary files /dev/null and b/release-packages/0.0.3/incremental/AntdUI.dll differ
diff --git a/release-packages/0.0.3/incremental/BouncyCastle.Crypto.dll b/release-packages/0.0.3/incremental/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..0a0cb67
Binary files /dev/null and b/release-packages/0.0.3/incremental/BouncyCastle.Crypto.dll differ
diff --git a/release-packages/0.0.3/incremental/BouncyCastle.Cryptography.dll b/release-packages/0.0.3/incremental/BouncyCastle.Cryptography.dll
new file mode 100644
index 0000000..e8d3222
Binary files /dev/null and b/release-packages/0.0.3/incremental/BouncyCastle.Cryptography.dll differ
diff --git a/release-packages/0.0.3/incremental/BrotliSharpLib.dll b/release-packages/0.0.3/incremental/BrotliSharpLib.dll
new file mode 100644
index 0000000..853c485
Binary files /dev/null and b/release-packages/0.0.3/incremental/BrotliSharpLib.dll differ
diff --git a/release-packages/0.0.3/incremental/MailKit.dll b/release-packages/0.0.3/incremental/MailKit.dll
new file mode 100644
index 0000000..02212c3
Binary files /dev/null and b/release-packages/0.0.3/incremental/MailKit.dll differ
diff --git a/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.Core.dll b/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.Core.dll
new file mode 100644
index 0000000..4a27877
Binary files /dev/null and b/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.Core.dll differ
diff --git a/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.WinForms.dll b/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.WinForms.dll
new file mode 100644
index 0000000..b2d08ad
Binary files /dev/null and b/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.WinForms.dll differ
diff --git a/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.Wpf.dll b/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.Wpf.dll
new file mode 100644
index 0000000..ed79cd9
Binary files /dev/null and b/release-packages/0.0.3/incremental/Microsoft.Web.WebView2.Wpf.dll differ
diff --git a/release-packages/0.0.3/incremental/MimeKit.dll b/release-packages/0.0.3/incremental/MimeKit.dll
new file mode 100644
index 0000000..da00220
Binary files /dev/null and b/release-packages/0.0.3/incremental/MimeKit.dll differ
diff --git a/release-packages/0.0.3/incremental/System.Management.dll b/release-packages/0.0.3/incremental/System.Management.dll
new file mode 100644
index 0000000..4131b2c
Binary files /dev/null and b/release-packages/0.0.3/incremental/System.Management.dll differ
diff --git a/release-packages/0.0.3/incremental/Titanium.Web.Proxy.dll b/release-packages/0.0.3/incremental/Titanium.Web.Proxy.dll
new file mode 100644
index 0000000..adcc007
Binary files /dev/null and b/release-packages/0.0.3/incremental/Titanium.Web.Proxy.dll differ
diff --git a/release-packages/0.0.3/incremental/Vmianqian.deps.json b/release-packages/0.0.3/incremental/Vmianqian.deps.json
new file mode 100644
index 0000000..8cbf469
--- /dev/null
+++ b/release-packages/0.0.3/incremental/Vmianqian.deps.json
@@ -0,0 +1,236 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v10.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v10.0": {
+ "Vmianqian/0.0.3": {
+ "dependencies": {
+ "AntdUI": "2.3.10",
+ "MailKit": "4.16.0",
+ "Microsoft.Web.WebView2": "1.0.2903.40",
+ "System.Management": "9.0.0",
+ "Titanium.Web.Proxy": "3.2.0",
+ "Microsoft.Web.WebView2.Core": "1.0.2903.40",
+ "Microsoft.Web.WebView2.WinForms": "1.0.2903.40",
+ "Microsoft.Web.WebView2.Wpf": "1.0.2903.40"
+ },
+ "runtime": {
+ "Vmianqian.dll": {}
+ }
+ },
+ "AntdUI/2.3.10": {
+ "runtime": {
+ "lib/net10.0-windows7.0/AntdUI.dll": {
+ "assemblyVersion": "2.3.10.0",
+ "fileVersion": "2.3.10.0"
+ }
+ }
+ },
+ "BouncyCastle.Cryptography/2.6.2": {
+ "runtime": {
+ "lib/net6.0/BouncyCastle.Cryptography.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.6.2.46322"
+ }
+ }
+ },
+ "BrotliSharpLib/0.3.3": {
+ "runtime": {
+ "lib/netstandard2.0/BrotliSharpLib.dll": {
+ "assemblyVersion": "0.3.2.0",
+ "fileVersion": "0.3.3.0"
+ }
+ }
+ },
+ "MailKit/4.16.0": {
+ "dependencies": {
+ "MimeKit": "4.16.0"
+ },
+ "runtime": {
+ "lib/net10.0/MailKit.dll": {
+ "assemblyVersion": "4.16.0.0",
+ "fileVersion": "4.16.0.0"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2/1.0.2903.40": {
+ "runtimeTargets": {
+ "runtimes/win-arm64/native/WebView2Loader.dll": {
+ "rid": "win-arm64",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ },
+ "runtimes/win-x64/native/WebView2Loader.dll": {
+ "rid": "win-x64",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ },
+ "runtimes/win-x86/native/WebView2Loader.dll": {
+ "rid": "win-x86",
+ "assetType": "native",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ },
+ "MimeKit/4.16.0": {
+ "dependencies": {
+ "BouncyCastle.Cryptography": "2.6.2"
+ },
+ "runtime": {
+ "lib/net10.0/MimeKit.dll": {
+ "assemblyVersion": "4.16.0.0",
+ "fileVersion": "4.16.0.0"
+ }
+ }
+ },
+ "Portable.BouncyCastle/1.8.8": {
+ "runtime": {
+ "lib/netstandard2.0/BouncyCastle.Crypto.dll": {
+ "assemblyVersion": "1.8.8.0",
+ "fileVersion": "1.8.8.2"
+ }
+ }
+ },
+ "System.Management/9.0.0": {
+ "runtime": {
+ "lib/net9.0/System.Management.dll": {
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net9.0/System.Management.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.52809"
+ }
+ }
+ },
+ "Titanium.Web.Proxy/3.2.0": {
+ "dependencies": {
+ "BrotliSharpLib": "0.3.3",
+ "Portable.BouncyCastle": "1.8.8"
+ },
+ "runtime": {
+ "lib/netstandard2.1/Titanium.Web.Proxy.dll": {
+ "assemblyVersion": "1.0.1.0",
+ "fileVersion": "1.0.1.0"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2.Core/1.0.2903.40": {
+ "runtime": {
+ "Microsoft.Web.WebView2.Core.dll": {
+ "assemblyVersion": "1.0.2903.40",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2.WinForms/1.0.2903.40": {
+ "runtime": {
+ "Microsoft.Web.WebView2.WinForms.dll": {
+ "assemblyVersion": "1.0.2903.40",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ },
+ "Microsoft.Web.WebView2.Wpf/1.0.2903.40": {
+ "runtime": {
+ "Microsoft.Web.WebView2.Wpf.dll": {
+ "assemblyVersion": "1.0.2903.40",
+ "fileVersion": "1.0.2903.40"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Vmianqian/0.0.3": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "AntdUI/2.3.10": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-twjNYhVIw08ydcQsBC5c7/59WBXVqba4kulN48ejxUz2i37xJU6ukYqUtxEFhiQtVzmu8cmGYAjZ4HM6BOKZwg==",
+ "path": "antdui/2.3.10",
+ "hashPath": "antdui.2.3.10.nupkg.sha512"
+ },
+ "BouncyCastle.Cryptography/2.6.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==",
+ "path": "bouncycastle.cryptography/2.6.2",
+ "hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512"
+ },
+ "BrotliSharpLib/0.3.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/z74VNg6etlQK/N1mSD5Tz2qQUZqc3RMiuv2F8Q/MOfvg4l7a6lDYhQQTPd9s9saSokh1GqUD7JTuunOiQid8w==",
+ "path": "brotlisharplib/0.3.3",
+ "hashPath": "brotlisharplib.0.3.3.nupkg.sha512"
+ },
+ "MailKit/4.16.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-trJ82DOpAmo8i1jO1vNE+dGn4mPRyeYfy4swRcAGgMJhPoI1Kohf4OFJJf0+YIj4iUxgxPn8W+ht7e7KiYzSjg==",
+ "path": "mailkit/4.16.0",
+ "hashPath": "mailkit.4.16.0.nupkg.sha512"
+ },
+ "Microsoft.Web.WebView2/1.0.2903.40": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ==",
+ "path": "microsoft.web.webview2/1.0.2903.40",
+ "hashPath": "microsoft.web.webview2.1.0.2903.40.nupkg.sha512"
+ },
+ "MimeKit/4.16.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X0LFxeM4gPRIhODyY/HYS9b+zRZ7y//v59rFzgS6wLxcPuZThnMtNZHtrr0fjLyRRkg3gqJBtvW36XfUzZ7Djw==",
+ "path": "mimekit/4.16.0",
+ "hashPath": "mimekit.4.16.0.nupkg.sha512"
+ },
+ "Portable.BouncyCastle/1.8.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1rxdf8NfyAxLlqIEciCl/yNhmz1YiLkmp6rrF8p3/NVmyHHzPWLx8djtDvSAwhPLg64BXvsRcM3+5bP1HAUdYg==",
+ "path": "portable.bouncycastle/1.8.8",
+ "hashPath": "portable.bouncycastle.1.8.8.nupkg.sha512"
+ },
+ "System.Management/9.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bVh4xAMI5grY5GZoklKcMBLirhC8Lqzp63Ft3zXJacwGAlLyFdF4k0qz4pnKIlO6HyL2Z4zqmHm9UkzEo6FFsA==",
+ "path": "system.management/9.0.0",
+ "hashPath": "system.management.9.0.0.nupkg.sha512"
+ },
+ "Titanium.Web.Proxy/3.2.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XHchT17Cqr4lX+p4+T4qMPOMfBBvXgIkjy6imy4guNWxLTPKyCaLv/VTiHgk4CwXnXTHlga7KWT1agNCbjwYYg==",
+ "path": "titanium.web.proxy/3.2.0",
+ "hashPath": "titanium.web.proxy.3.2.0.nupkg.sha512"
+ },
+ "Microsoft.Web.WebView2.Core/1.0.2903.40": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Web.WebView2.WinForms/1.0.2903.40": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Web.WebView2.Wpf/1.0.2903.40": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/release-packages/0.0.3/incremental/Vmianqian.dll b/release-packages/0.0.3/incremental/Vmianqian.dll
new file mode 100644
index 0000000..fdc475f
Binary files /dev/null and b/release-packages/0.0.3/incremental/Vmianqian.dll differ
diff --git a/release-packages/0.0.3/incremental/Vmianqian.exe b/release-packages/0.0.3/incremental/Vmianqian.exe
new file mode 100644
index 0000000..ecbb447
Binary files /dev/null and b/release-packages/0.0.3/incremental/Vmianqian.exe differ
diff --git a/release-packages/0.0.3/incremental/Vmianqian.runtimeconfig.json b/release-packages/0.0.3/incremental/Vmianqian.runtimeconfig.json
new file mode 100644
index 0000000..e344539
--- /dev/null
+++ b/release-packages/0.0.3/incremental/Vmianqian.runtimeconfig.json
@@ -0,0 +1,20 @@
+{
+ "runtimeOptions": {
+ "tfm": "net10.0",
+ "frameworks": [
+ {
+ "name": "Microsoft.NETCore.App",
+ "version": "10.0.0"
+ },
+ {
+ "name": "Microsoft.WindowsDesktop.App",
+ "version": "10.0.0"
+ }
+ ],
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
+ "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/release-packages/0.0.3/incremental/runtimes/win-arm64/native/WebView2Loader.dll b/release-packages/0.0.3/incremental/runtimes/win-arm64/native/WebView2Loader.dll
new file mode 100644
index 0000000..ff13a17
Binary files /dev/null and b/release-packages/0.0.3/incremental/runtimes/win-arm64/native/WebView2Loader.dll differ
diff --git a/release-packages/0.0.3/incremental/runtimes/win-x64/native/WebView2Loader.dll b/release-packages/0.0.3/incremental/runtimes/win-x64/native/WebView2Loader.dll
new file mode 100644
index 0000000..983ee32
Binary files /dev/null and b/release-packages/0.0.3/incremental/runtimes/win-x64/native/WebView2Loader.dll differ
diff --git a/release-packages/0.0.3/incremental/runtimes/win-x86/native/WebView2Loader.dll b/release-packages/0.0.3/incremental/runtimes/win-x86/native/WebView2Loader.dll
new file mode 100644
index 0000000..a8565ba
Binary files /dev/null and b/release-packages/0.0.3/incremental/runtimes/win-x86/native/WebView2Loader.dll differ
diff --git a/release-packages/0.0.3/incremental/runtimes/win/lib/net9.0/System.Management.dll b/release-packages/0.0.3/incremental/runtimes/win/lib/net9.0/System.Management.dll
new file mode 100644
index 0000000..961753e
Binary files /dev/null and b/release-packages/0.0.3/incremental/runtimes/win/lib/net9.0/System.Management.dll differ
diff --git a/release-packages/Vmianqian_0.0.2.zip b/release-packages/Vmianqian_0.0.2.zip
new file mode 100644
index 0000000..5cd600a
Binary files /dev/null and b/release-packages/Vmianqian_0.0.2.zip differ
diff --git a/release-packages/Vmianqian_0.0.3.zip b/release-packages/Vmianqian_0.0.3.zip
new file mode 100644
index 0000000..13bf12b
Binary files /dev/null and b/release-packages/Vmianqian_0.0.3.zip differ