<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>热点新闻分析</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js" integrity="sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp/gU33kqBtgNS4tSPHuGibyoeqMV/TJlSKda6FXzoEyYGjTe+vXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style>
* { box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
margin: 0;
padding: 16px;
background: #fafafa;
color: #333;
line-height: 1.5;
}
.container {
max-width: 600px;
margin: 0 auto;
background: white;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}
.header {
background: linear-gradient(135deg, #7a72ff 0%, #3aafed 100%);
color: #fff;
padding: 32px 24px;
text-align: center;
position: relative;
}
.save-buttons {
position: absolute;
top: 16px;
right: 16px;
display: flex;
gap: 8px;
}
.save-btn {
background: rgba(255, 255, 255, 0.2);
border: 1px solid rgba(255, 255, 255, 0.3);
color: white;
padding: 8px 16px;
border-radius: 6px;
cursor: pointer;
font-size: 13px;
font-weight: 500;
transition: all 0.2s ease;
backdrop-filter: blur(10px);
white-space: nowrap;
}
.save-btn:hover {
background: rgba(255, 255, 255, 0.3);
border-color: rgba(255, 255, 255, 0.5);
transform: translateY(-1px);
}
.save-btn:active {
transform: translateY(0);
}
.save-btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.header-title {
font-size: 22px;
font-weight: 700;
margin: 0 0 20px 0;
}
.header-info {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
font-size: 14px;
opacity: 0.95;
}
.info-item {
text-align: center;
}
.info-label {
display: block;
font-size: 12px;
opacity: 0.8;
margin-bottom: 4px;
}
.info-value {
font-weight: 600;
font-size: 16px;
}
.content {
padding: 24px;
}
.word-group {
margin-bottom: 40px;
}
.word-group:first-child {
margin-top: 0;
}
.word-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
padding-bottom: 8px;
border-bottom: 1px solid #f0f0f0;
}
.word-info {
display: flex;
align-items: center;
gap: 12px;
}
.word-name {
font-size: 17px;
font-weight: 600;
color: #1a1a1a;
}
.word-count {
color: #666;
font-size: 13px;
font-weight: 500;
}
.word-count.hot { color: #dc2626; font-weight: 600; }
.word-count.warm { color: #ea580c; font-weight: 600; }
.word-index {
color: #999;
font-size: 12px;
}
.news-item {
margin-bottom: 20px;
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
position: relative;
display: flex;
gap: 12px;
align-items: center;
}
.news-item:last-child {
border-bottom: none;
}
.news-item.new::after {
content: "NEW";
position: absolute;
top: 12px;
right: 0;
background: #fbbf24;
color: #92400e;
font-size: 9px;
font-weight: 700;
padding: 3px 6px;
border-radius: 4px;
letter-spacing: 0.5px;
}
.news-number {
color: #999;
font-size: 13px;
font-weight: 600;
min-width: 20px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-start;
margin-top: 8px;
}
.news-content {
flex: 1;
min-width: 0;
padding-right: 40px;
}
.news-item.new .news-content {
padding-right: 50px;
}
.news-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 8px;
flex-wrap: wrap;
}
.source-name {
color: #666;
font-size: 12px;
font-weight: 500;
}
.rank-num {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 2px 6px;
border-radius: 10px;
min-width: 18px;
text-align: center;
}
.rank-num.top { background: #dc2626; }
.rank-num.high { background: #ea580c; }
.time-info {
color: #999;
font-size: 11px;
}
.count-info {
color: #059669;
font-size: 11px;
font-weight: 500;
}
.news-title {
font-size: 15px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.news-link {
color: #2563eb;
text-decoration: none;
}
.news-link:hover {
text-decoration: underline;
}
.news-link:visited {
color: #7c3aed;
}
.topic-trend-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.topic-trend-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.viral-topic-item {
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
}
.viral-topic-item:last-child {
border-bottom: none;
}
.viral-topic-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 12px;
}
.viral-topic-keyword {
font-size: 16px;
font-weight: 600;
}
.topic-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.topic-item:last-child {
border-bottom: none;
}
.viral-topic-stats {
font-size: 12px;
color: #666;
}
.viral-topic-stats .new { color: #dc2626; font-weight: bold; }
.viral-topic-stats .up { color: #f59e0b; font-weight: bold; }
.viral-topic-stats .level-high { color: #dc2626; font-weight: bold; }
.viral-topic-stats .level-mid { color: #f59e0b; font-weight: bold; }
.viral-sample-titles {
list-style: none;
padding-left: 16px;
margin: 0;
font-size: 13px;
}
.viral-sample-titles li {
color: #666;
padding: 4px 0;
position: relative;
}
.viral-sample-titles li::before { content: '▪'; position: absolute; left: -14px; color: #ccc; }
.new-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.new-section-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.new-source-group {
margin-bottom: 24px;
}
.new-source-title {
color: #666;
font-size: 13px;
font-weight: 500;
margin: 0 0 12px 0;
padding-bottom: 6px;
border-bottom: 1px solid #f5f5f5;
}
.new-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.new-item:last-child {
border-bottom: none;
}
.new-item-number {
color: #999;
font-size: 12px;
font-weight: 600;
min-width: 18px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.new-item-rank {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 3px 6px;
border-radius: 8px;
min-width: 20px;
text-align: center;
flex-shrink: 0;
}
.new-item-rank.top { background: #dc2626; }
.new-item-rank.high { background: #ea580c; }
.new-item-content {
flex: 1;
min-width: 0;
}
.new-item-title {
font-size: 14px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.error-section {
background: #fef2f2;
border: 1px solid #fecaca;
border-radius: 8px;
padding: 16px;
margin-bottom: 24px;
}
.error-title {
color: #dc2626;
font-size: 14px;
font-weight: 600;
margin: 0 0 8px 0;
}
.error-list {
list-style: none;
padding: 0;
margin: 0;
}
.error-item {
color: #991b1b;
font-size: 13px;
padding: 2px 0;
font-family: 'SF Mono', Consolas, monospace;
}
.footer {
margin-top: 32px;
padding: 20px 24px;
background: #f8f9fa;
border-top: 1px solid #e5e7eb;
text-align: center;
}
.footer-content {
font-size: 13px;
color: #6b7280;
line-height: 1.6;
}
.footer-link {
color: #4f46e5;
text-decoration: none;
font-weight: 500;
transition: color 0.2s ease;
}
.footer-link:hover {
color: #7c3aed;
text-decoration: underline;
}
.project-name {
font-weight: 600;
color: #374151;
}
@media (max-width: 480px) {
body { padding: 12px; }
.header { padding: 24px 20px; }
.content { padding: 20px; }
.footer { padding: 16px 20px; }
.header-info { grid-template-columns: 1fr; gap: 12px; }
.news-header { gap: 6px; }
.news-content { padding-right: 45px; }
.news-item { gap: 8px; }
.new-item { gap: 8px; }
.news-number { width: 20px; height: 20px; font-size: 12px; }
.save-buttons {
position: static;
margin-bottom: 16px;
display: flex;
gap: 8px;
justify-content: center;
flex-direction: column;
width: 100%;
}
.save-btn {
width: 100%;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="save-buttons">
<button class="save-btn" onclick="saveAsImage()">保存为图片</button>
<button class="save-btn" onclick="saveAsMultipleImages()">分段保存</button>
</div>
<div class="header-title">热点新闻分析</div>
<div class="header-info">
<div class="info-item">
<span class="info-label">报告类型</span>
<span class="info-value">实时分析</span>
</div>
<div class="info-item">
<span class="info-label">新闻总数</span>
<span class="info-value">131 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">6 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-04 09:30</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">ai 人工智能</div>
<div class="word-count ">3 条</div>
</div>
<div class="word-index">1/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num top">2</span><span class="time-info">09时30分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3764882" target="_blank" class="news-link">美股爆发AI恐慌!Anthropic新工具掀软件股抛售,路透盘中跌超20%</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num top">2</span><span class="time-info">09时30分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2279710" target="_blank" class="news-link">美股收盘:三大指数集体收跌 “AI抢饭碗”引发软件股抛售</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">3</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">12</span><span class="time-info">09时30分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E7%BE%8E%E8%82%A1%E7%88%86%E5%8F%91AI%E6%81%90%E6%85%8C%E6%80%A7%E6%8A%9B%E5%94%AE" target="_blank" class="news-link">美股爆发AI恐慌性抛售</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">英伟达 NVIDIA 黄仁勋</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">2/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">8</span><span class="time-info">09时30分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2279758" target="_blank" class="news-link">美国政府本轮“停摆”结束 英伟达据称将投OpenAI 200亿 | 环球市场</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谐波器 机器人</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">3/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">6</span><span class="time-info">09时30分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2279679" target="_blank" class="news-link">半导体设备&机器人明星股绩后再创新高 财报全面碾压预期</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">航天 飞船</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">4/4</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">9</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2279609" target="_blank" class="news-link">将37颗卫星送上太空的航天界“拼多多” 要IPO</a>
</div>
</div>
</div>
</div>
<div class="topic-trend-section">
<div class="topic-trend-title">🔥 异常热度话题</div>
<p style='color: #666; font-size: 14px;'>今日暂未检测到异常热度话题。</p></div>
<div class="topic-trend-section">
<div class="topic-trend-title">✨ 关注话题趋势</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">AMD</div>
<div class="word-count">2 条提及 <span style="color: #059669;">(↓100.00%)</span></div>
</div>
</div>
<div class="news-item">
<div class="news-content" style="padding-right: 0;">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAANJZJREFUeJzt3XmcHHWd//HXp3uukIMwhCPcAVwIGC5BjjaoC8oh2GFFBFcXFWXxWHENggesgO6y3IcICEbkMlGDVououC64YDh+IIpAgqIkQLixgJxz9vf3x7c66RlmMkd1d1V3v5+PRz9m+jvV3d9693TVt6u+32+Zcw4RERERqZxM0hUQERERaTRqYImIiIhUmBpYIiIiIhWmBpaIiIhIhamBJSIiIlJhamCJiIiIVJgaWCIiIiIVpgaWiIiISIWpgSUiIiJSYWpgiYiIiFSYGlgiIiIiFaYGloiIiEiFqYElIiIiUmEN28Ayb4qZWdJ1ERERkebSknQFqmgy8AawMbCiGi9QKBQywExgST6fL1bjNRqZ8otH+cWj/OJRfvEpw3jSnl9NjmCZ2cFmdpuZPW9mzszmjOIx7zKzh82s28z+amYfq35Nx6wN+Hz0U8ZO+cWj/MYpF4TZK93+h97vtrn8Srf/obkgzCZdp3qi/CpGn+F4Up1frU4RTgQeAT47moXNbAZwO3AXsBdwGfBdMzusSvUTkSaRC8J/Apatoe2Ou5lxyBra7gCWReUyAuUnMjo1aWA5537pnDvTOffTUT7kFGCpc26uc26Jc+5KYCHw79WrpYg0uqgRsBDYetCftgYWqpGwYcpPZPTS2gfrQOA3g8ruwB/JShMHvBD9lLFTfvEovzGITmNdHt0dPPjF8DlelQvCF4HU9edIgQxwdfT7cPldlgvCwqI5nf01rVn90mc4nlTnZ87Vtl5m5oBjnHPBBpb5C3C9c+68srIj8acNN3LOrR3iMe1Ae1nRZGD57NmzN587d+7KqKw/n8/3FgqFVqC8z0BfPp/vKxQK7QzccAxX3pPP54uFQqFjUDV68G90+6Dy7ujxA84T5/P5rqiTXnm5y+fz3YVCoYWBDeDhyrVOWiet0yjW6Uq3/z9Gp7Okijai57DP2QN3o/89rVMDrBMxpPUI1nh8Bfj64MKTTjrpfKA3ursIuBE4AciVLfZz4Db8qcndyspvAn4XPff0svIrgMeBC4DtgZfwb/I5QMj6b8klpwKdg+rXFZXPxHfSK3kBOBs4APhoWfni6HmPAI4qK6/0Op0PlP8TV3OdnigUCg8CmwJHNsg61fJ9mgBsgf//O7tB1qlq79O+PHf63cxgFF5vo8+yFNdthPvIdveS7Wqnb2KG4rrtZi/ZtX1kezronWS4dTuQblpWF8n0TaB3Crh1O4ouWlc5KPry9dbSusIg00HvpPWl5tbSuiJDsaWdvomlUof1d9G6qoX+tlb6J5TKi2T6umlZ3Up/Rwv963Y4/WR6emhZ20bfhDjr1EVLnyMzeaTw9uW504EPoP+90azT0az/DP+uQdaplu/TN4G3AMcz8ChWJddp3NLawHoR/09XbgtgxVBHryLnAZeU3Z8MLJ83b94Z5Uewop/zgR+VLdsX/byGQa3psuce0JqOfp4FXAx8Cd9iLrWmTx1Ut+5onQaXAywZVF76J7kfeGiI8l8C/1NWXul1OmNQ/aq5Tm3AhcAX8aeAS+p5nWr5PrWz/v9vZYOsE4PKK7ZOD7H1BcAhQzxmsDNaKD7SRv+6PqoO6+8l299OX2umrMHksP4+sv1t9A8o7yXbWwTXTt+Ab9C+3Fw7/QPKu2npyeCsnf7W8vK1tL6pvIi5Llp7Wyhm2+nPri8vum5aerODynug2AN9LRRb4qxTFy174N/TDXqIrS84gOWlI1j639vwOt3N+s/wmqi83teplu+TAWeyfh9cUsl1Gre0niI8HzjSOTerrOwHQKdz7vBRvs4UonmwnHPVmgerA9/CPTWfz3dV4zUamfKLR/mNTdQH62ne3EG7xAEv448qqA/Wm2XwRx025819sEqeBWaoD9bo6DMcT9rzq9U8WJPMbC8z2ysqmhHd3y76+3lmdmPZQ64BdjSzC8xsVzP7DHAccGkt6isijSfa6f9xmD+XvmlehBpXwyni84Hhv91/X40rEa9W82DtC/whuoE/lfcH4Nzo/nRgu9LCzrmlwPuA9+Dnz5oLfNI5l7YOqg5/njaVIxjqgPKLR/mNQS4ID8FvV+DNV3d4GTgdP/eeDO8ufE4vDyovnd76VC4IN6ltleqaPsPxpDq/mp8irJVanCIUkfqQC8KpwKPANvj+fucAs4BpwKv4L3w6cjV6GWBv1ue3BLgF2BZYuGhO5wcTrJtIKqiBFUM0rPMI4Jf5fL5vpOVlIOUXj/IbvVwQ3ogfIfQC8AnglQ56s4fz5EG/4i33dtGq01pjNER+bwW+h298fXjRnM75ydYw/fQZjift+dXqFGGjasEPSU3raMy0U37xKL9RyAXhB/CNqyK+e8IrAB30Zbdk1ewO+nQdvXEYIr/HgOuj36/KBeH0YR4q6+kzHE+q81MDS0QaVi4ItwS+E939KfB/CVanGVwH/AWYCtyUC8LhRhuKNDw1sESkIUU79+vwE9kuBb6N+llVWx/wNfzkzocAn0m2OiLJUQMrnn78TLXqvzE+yi8e5bdhn8CfPujFT2g7oC9mD9nia3Q80kNWja5x2EB+S4Ero98vzAXhTjWuWj3RZzieVOenTu4i0nByQbgjfoqXScAN+B1+Y27s0snwp2b3AR4EDtT8WNJsUtkxrF5EF7A8AZifz+d7R1peBlJ+8Si/oUUztn8f37h6HJjHEI2rjehpOZonDruNXe9YQ1vqRiCl3Qj5OeA/8JdH2Q9/bblv1rqOaafPcDxpz0+nCOPJ4i9gqVFI46P84lF+Q/siMBtYi78g+5qhFmqjP7MJXXuWX59PRm8U+b2Izx/g67kg3Ks2Nasr+gzHk+r8tGERkYaRC8JZrD9S8j38ESxJzs/xFzRuAebngrA94fqI1IwaWCLSEHJB2AbcBLTh+/3ckmyNJPIN4HVgV+C8ZKsiUjtqYMXTh/+Gpv4b46P84lF+A50N7IkfLXgh0LOhhbto6X+RSfd00aLO1+MwhvxewzeyAL6QC8KDq1y1eqLPcDypzk+jCEWk7uWC8CDgHvyXxvOBHydbIxnC2fhpM54Fdl80p3NlstURqS6NIoyhUCi0A6cA1+Tz+e6k61NvlF88ys/LBeEk4EZ84+q3+BnbRzSFrtY8Sz5QYOatK+hI3QiktBtHfhfiRxRuC3wL+Fg161cP9BmOJ+356RRhPAbsFv2UsVN+8Sg/70JgJ/w1Bi9hlKcLMjibSO+OGVyz5zcu48hvNX7qBgecmAvC91evdnVDn+F4Up2fGlgiUrdyQXgE/hsswBXA8wlWR0b2e2B+9Pu8XBBOS7IyItWkBpaI1KVcEG6Kn0QU4Hbg1wlWR0bvSmAZMA3fyErl0QeRuNTAiqcPPyw8lSMY6oDyi6fZ8/s2MB3fafpyxng9si5a+peyyS80inB8YuTXA5yJf7/eD/xLxStXP5r9MxxXqvPTKEIRqTu5IDwef6qpHzgNP4JQ6stJwKeBlcBui+Z0Lk+4PiIVpQZWDNEIhq8A56VxBEPaKb94mjW/XBBuDTwGTMVf6+4ioDjW55lCV+uxPP7xhex+vUYRjl0F8ssC1+M7Kd8NvHvRnM4xv4/1rFk/w5WS9vx0ijAew5+iUB+C8VF+8TRdflF/ne/hG1dPAlcxjsYV+FFwbfRP0yjC8alAfv34U4XdwMHAqRWrXP1ous9whaU6PzWwRKSefBp4L74fz4XAqmSrIzE9A1wW/f5fuSDcJcG6iFSUGlgiUhdyQfgW/OlA8B1b/5BgdaRyFgL/D+gAFuSCUBNgS0NQAyueHvzcOxu85pkMS/nF0zT5RTvdG4EJwJ+A7+MnrBy3VbT1PsoWC1bRpv5X41DB/Bz+MjqrgL2Ar8d8vnrSNJ/hKkl1furkLiKplwvCrwHfxM8G/q/AE8nWSKrgcPx73AcctGhO54MJ10ckFjWwYigUCh34C8uekc/nu6rxGo1M+cXTLPnlgnBv/CmkFnx/nZsr8bxTWdt2HI99/ke89YrXmZDKb8BpVqX8zgcOAf4K7LFoTufaCj1vKjXLZ7ha0p6fThHG15F0Beqc8ounofPLBWEHvkHVAtwH/LCSz5/BtVXy+ZpNFfL7LyAEdmZ9f7tG19Cf4RpIbX5qYIlImn0TP0/Sa/gdrvpLNbY38P2xAD6TC8JDEqyLSCxqYIlIKuWC8J3AF6O7VwFPJ1gdqZ17gZ9Gv9+YC8KNk6yMyHipgRVPD3AOKR3BUAeUXzwNm18uCKcAN+AnEPwNcFulX2MVbb13s/21GkU4PlXO7xLgeWAr4OoqPH9aNOxnuEZSnZ8aWPE4fH+BxhwpUH3KL55Gzu9SYHvgJfzOtuIXcy1i7nmmrChijZhf1VU5v7XAWfhZ+k/IBeEHq/AaadDIn+FaSHV+amDF0w5cHv2UsVN+8TRkfrkgfD/wCfxG81Lg5Wq8zhS6247n0dOm0K2O7uNQg/wewU8oC3BNLgg3r9LrJKkhP8M1lOr81MASkdTIBeFmwHXR3Z8BdyVYHUneNcDfgE7ghuhalCJ1QQ0sEUmFaOf5HWBzfIf2K/EXBJbm1Qt8DX+K+HDgk8lWR2T01MASkbT4F+AY/M70IvzUDCJ/ZX1H90tzQbhDgnURGTU1sOLpBk6NfsrYKb94Gia/XBBuj7+mGPjJRO+v9muuoL1nAbMuWkF7KkcgpV2N87sJfw3KicD8XBA2yr6rYT7DCUl1fo3yT5oUw/cNUL+A8VF+8TREftHO8npgCv4ag9dSg1FBGZxtxYopGVxd55eUGudXxI8q7AIOAL5Ug9eshYb4DCco1fmpgRVPG/7K7xqFND7KL55Gye/zwLvxO88L8Bd0rrpJ9LQezNMnT6KntRav12gSyO851l8+59xcEL61Rq9bTY3yGU5KqvNTA0tEEpMLwt2A/47ufh9/GkhkOAGwCL9DnZ8LwlTuWEVADSwRSUguCFuBG/Fz2DzM+jmPRDbkXGAF8Fb8tSpFUkkNrPi6kq5AnVN+8dRzfmcCbwNW4k8N1ryjahFTB/cYEsrv78B/Rr/PzQXhQQnUoZLq+TOcBqnNz5xL5QzzsZnZFPyV2Td2zq1Iuj4isl4uCN+Ov6hvFt+vZkGyNZI69A3gCGApMGvRnM6a9N0TGa2WpCtQzwqFQgaYCSzJ5/PFpOtTb5RfPPWaXy4IN8KfDswC9wC3JlGPFvptf5bPeIBtlvaRbcxvmlWUgvzOB/YDZgCXAZ9KoA6x1OtnOC3Snp9OEcbThh8BpY6W46P84qnX/P4b+Af8qZ5L8LN119wkelpn8dLxGkU4PinIbxXwH9Hvn8wF4ZEJ1SOOev0Mp0Wq81MDS0RqJheEhwL/Ft39FvBsgtWR+vf/gB9Fv38vF4SbJFkZkXJqYIlITeSCcCp+QlGAX0U3kbiuwDfUt2D9hcJFEqcGVjwOeIEazDrdoJRfPPWW37eAbYDn8X1m+pKsTBFzPWRfLWL1kl+qpCi/LvyI1CLwgVwQfjjh+oxFvX2G0ybV+WkUoYhUXS4IjwV+jN8Jng78NtEKSSM6Bfgkfru/26I5nc8nXB9pcmpgxVAoFFrw18W6P5/PJ/ptvB4pv3jqJb9cEE4HHgU2BRbi57xKfMRPB73Zd7Js1v+xw6NdtPYnXZ96k8L8WoAbgF2AO4FDF83pTPUOrl4+w2mV9vxqeorQzD5rZsvMrMvMHjCzt29g2Y+ZmRt0S9uEYi3AR9F0F+Ol/OJJfX65IDR8v5hNgaeAq0hB4wqgg77sDF47soO+bNJ1qUcpzK8P+Bp+VOo/Ap9NtjqjkvrPcMqlOr+aNbDM7EP4IdnnAPsAjwB3mNnmG3jYCmB62W37atdTRCrqk8D78Du9i/CfaZFqWYbv6wdwQS4Id06wLtLkankE64vAdc65651zi/Hny9cAn9jAY5xz7sWy20s1qamIxJYLwh2BS6O7twAPJlgdaR7z8de2nIC/IHRajrBJk6nJYTUza8Nfc+y8UplzrmhmvwEO3MBDJ5nZ0/iG4MPAV51zjw/zGu34i8aWTAaYPXt2e6FQ6IjK+vP5fG+hUGjFzyJd0pfP5/sKhUI7YKMo74lmjW0D/gK0FQoFgB78aIbyeoC/xpoxaDK0fD7fFc1EW17u8vl8d3RuuWUU5RVdp7Ks1pVXcZ1agcVAZtDr1vM61fJ9Kv//S9U6XeBmO3A3gU003OJJdN/cSzbTRWv/FLpaM7h167SKtt4+sm4qawfUcRVtvUXMTaF7QPkK2nsyOBs8weXrTOhpoX9AeRFzK+jo7aA3W34qq4i5IuZW07J0YtnyPWSLa2jr24ieljb6130B7aKlf6i6D1ee1DoNVV6tdZpIT+saWp42HBmKpGmdOug9t4uWH4Dtm6X49UKhcG5KtxHln2Ft98a+TuD3IaV9cMXXaYjXG7Vanbechg938BGol4Bdh3nMn/FHt/4EbAycBtxrZrs755YPsfxXgK8PLjzppJPOZ/1M0YuAG4ETgFzZYj8HbsMfVdutrPwm4HfRc08vK78CeBx/LawO4MKo/BwgBC4fVI1Tgc5B9euKymfiZ6IteQE4G99x76Nl5Yuj5z0COKqsvNLrdH60TiVVXad8Pn95oVA4upHWidq/TxemcJ1mgh2UpdifZ/FLm7PmM0vZ5Bd38JY/HsvjH2+jf1pp4UfZYsEitn/qOB77fAa3bsN3N9tf+zxTVhzPo6eVr9ACZl20FSumHMzTJ5fKiljPtex30f4snzGLl44vlfeQffV7vO3ad7Js1gxeWzfT92pan7qJvRespGP50fz51FL5a3Q88kP2uP1onjhsE7r2LJW/yKR7Ana7J8+SD0ykd8dSeRrX6XCePGhLVs2u1TpNZ+UUh6VqnT7IY+/4C9MWP8C2+xaxM3/ntlua93OwpXUbcSHa7o13nb5T5XUat1R2DANwzt0H3Fe6b2b3AkuAfwXOGuIh5+H7eJVMBpbPmzfvjLlz566MykojXeazfvZfWD8fzzUMak2XPfeA1nT086vAYcAd0XOXviGcykDdwItDlBOtU3l5adTL/cBDQ5T/EvifsvJKr9MZg+pXzXXKRI2rX9M461TL9ynL+v+/tWlZp8vdATPxowUBd+2d7HQT+KMLAAvZ/frBR0YAfsRbryivXOlozwJmXVRevoL2nlVM+/vzTBlQDvAA2yx9nM3XlZfmaPo/dnj0AbZZXF7eQW/WcJmfMPPSnqhuPWSLALex6x1t9K9b11LdC8y8dfDRnjStE8CveMu9HfQ9UCqv1jq10Zd9B08f8DQbv76Wtr60rZPhfmK48x02+162OyMXhD843VK3jbiT9Z/hUl203Rv9OvUDh+O7IJWPZK3kOo1bTaZpiE4RrgGOdc4FZeU3AFOdc/lRPs+PgT7n3AmjWLYW0zR04Fu4p+bz+bSNcEw95RdPGvPLBWE7/vIle0Q/v8D6jWOqTGVt2/E8etoCZl30OhNSWcc0q5P8puIb+1OByxfN6fxCkpUZLI2f4XqS9vxq0sndOdcD/B44pFRmZpno/n3DPa6cmWWBWfjDeSKSTmfjG1dv4E97pHXHK83hdeDc6PfP54LwXclVRZpNLUcRXgJ8ysxONLOZwNXARKJrk5nZjWa2rhO8mf2Hmb3XzHY0s32Am/HTNHy3hnUWkVHKBWEOP0s7+M/30gSrI1JyN76/jwE35oJwcsL1kSZRsz5Yzrkfmtlm+G8TWwJ/BA4vm3phOwZOQLgJfoLCLYHX8EfADoqmeEiLfnwnvjTMYlyPlF88qckvF4ST8J1ZM8BdQJBohUahh2zxNToeKfXnkbGps/wuAt4ObAtcCZyYbHXWSc1nuE6lOj9dKkdEYssF4TX4ASiv4Ef/6lS+pM0++BFnBsxZNKezMMLyIrGogRVDNLfHCcD8fD7fO9LyMpDyiyct+eWC8Ejg9ujumcCvkqrLWGxET8vRPHHYbex6xxraUncds7Sr0/z+Hfhn4FX8BaFfSbIyafkM16u051fTaxE2oCx+bg/NFDw+yi+exPPLBeGmwLzo7m0MHKKdam30Zzaha8/yiSpl9Oo0v2/jL6czDfhedK3MJCX+Ga5zqc6vnj4YIpIi0c7panw/yWfx14BLZV8IkUgP/oLQ/fgJMdPSF0sakBpYIjJeJwAfxO+sLsbPEi2Sdn8Gro1+vyIXhNsmWRlpXGpgxdOHn/K/XvofpI3yiyex/HJBuA3+dAvAj4F7a12HuLpo6X+RSfeUZv+Wsanz/L6Pv/TKZOCWXBAmtS/UNjCeVOenTu4iMibRzuhXwHuAJ4FPAasSrZTI2G0LLMBf/Pi0RXM6L064PtJg1MCKIbri9ynANXGvut2MlF88SeWXC8LP4ucS6gE+C/yhVq9dSVPoas2z5AMFZt66go7UjUBKuwbJ71jgy/hr1+29aE7nklq+uLaB8aQ9P50ijMfwVwJPeiRKvVJ+8dQ8v1wQ/gP+EjjgJxaty8YVQAZnE+ndsfyCxjJ6DZLfQvw1M9uB+bkgbK3x62sbGE+q81MDS0RGJReELcBNwATgEeCGZGskUhFfx5/i3hN/LU2RilADS0RG68v4y42sxh/FWptsdUQq4hWgdB3cM3JB+PYkKyONQw2sePrw3+hTOYKhDii/eGqWXy4I34b/pg9+iPsT1X7NauuipX8pm/yiTkfBJa7B8rsD+F/8hJW35IJwQo1eV9vAeFKdnzq5i8gGRTub3wMz8dMxzAXqtVOzyHA2Bn4EbApcvWhO52cSro/UOR3BiqFQKLQXCoWzo5EMMkbKL54a5vdNfOPqNeAiGqRxNYWu1k/w+5On0FXrjs0NoQHzewM4J/r907kgPLTaL6htYDxpz08NrHgMmE5KRzDUAeUXT9XzywXhu/AXyAU/NcMz1XqtWsvgrI3+aXU+Ci4xDZrfvcBPot9vzAXh1Cq/nraB8aQ6PzWwRGRIuSCcgh8paMCvgduTrZFITVwKPI/fcV+TcF2kjqmBJSLDuQzYDngx+j2VHUlFKmwtcCZQBD6UC8LjEq6P1Ck1sOLpAa6IfsrYKb94qpZfLgjzwMcBh/9G/3KlXyNpq2jrfZQtFqyirSH6lNVag+f3J/xEugDX5IJwyyq9jraB8aQ6P40iFJEBckG4OfAYsBkQ4OcIaoSh+CJj0QLcDOyMn8bhiEVzOhtzhylVoSNYMRQKhY5CoXB5oVDoSLou9Uj5xVON/HJBaPh5rjYDluE7tjdk42oqa9tO5sHTprK2Lem61KMmyK8Pf6qwDzgMOLnSL6BtYDxpz08NrPhS+cbWEeUXT6XzOxHI43cqFwOvV/j5UyWDa9TGQU00QX5/Ba6Kfr8kF4QzqvAa2gbGk9r81MASEQByQbg9vj8DwALg/gSrI5IWN+OvvbkR/oLQ2YTrI3VCDSwRIReEGeD7wGRgCf40ofqbiPjRhP+BH124P3B6stWReqEGVjw9+Jl/UzmCoQ4ov3gqmd+pwLvwO5ELgDUVeM5UW0Vb791sf22DjoKruibL7zn8KXOAc3JBOKtCz6ttYDypzk8NrHgcEKJv+uOl/OKpSH65INwdP1IQ/FGsR+NVqz4UMfc8U1YUMf3/jUMT5hcAi4BWYEEuCCvR/0zbwHhSnZ8aWPG0A5dHP2XslF88sfOLdhI3Rc/xe3x/k6Ywhe6243n0tCl0N3pH7apo0vzOBVYAuwH/WYHn0zYwnlTnpwaWSHM7E9gbv9O4EOhOtjoiqfZ3/MXPAb6YC8JckpWRdFMDS6RJ5YJwf+Cr0d3v4Ieki8iG3Qn8Er//vDkXhBMTro+klBpYIk0oF4Qb4U8NZoG7gVuTrZFIXTkfeAXYAX+KSuRN1MCKpxs/+kqnVcZH+cUTJ7/zgbfgT3lcQhNeyHkF7T0LmHXRCtpTOQIp7Zo8v1X4qRsATsoF4ZHjfB5tA+NJdX5qYMVjQGf0U8ZO+cUzrvxyQfge4HPR3SuA5RWuV13I4GwrVkzJ4PT/Nw7KjweBH0a/X58Lws5xPIe2gfGkOj81sOJpA74e/ZSxU37xjDm/XBBuAlwf3f0l/iK2TWkSPa0H8/TJk+hpTbou9Uj5AfAt4Blgc+C6cTxe28B4Up2fGlgizeVKYGv8xImX04SnBkUqqAs/ErcI/FMuCD+ScH0kRdTAEmkSuSA8DvgwfmdwCfBqsjUSaQiLgXnR71fmgnDrJCsj6aEGVnxdSVegzim/eEaVXy4IpwNXR3dvBe6pWo3qSBFrxg7aFaP81pkHPAFsDNyUC8Kx9AnSNjCe1OZnzqVyhvnYzGwK8AawsXNuRdL1EUlKtLG/HTgC+BvwKfzEoiJSOTsAP8D3Bzp10ZzOK5KtjiRNDawYCoVCBpgJLMnn88VqvEYjU37xjDa/XBCejJ9ItAc/pPnB2tQw3Vrot/1ZPuMBtlnaR7YxN4RVpPyGdAIwF3/R9D0Xzel8ckMLaxsYT9rz0ynCeNqAz5PSEQx1QPnFM2J+uSDcCd/fCuAW4KEa1KsuTKKndRYvHd/ko+DGTfkNaQH+mp4T8BeEbhlheW0D40l1fmpgiTSoXBBmgRuBicBjwPdI6VXnRRqEw08bsAbYB/hastWRJKmBJdK4TgMOwm/sL8SfthCR6noRf6UEgDNzQbhPkpWR5KiBFY8DXkBHBcZL+cUzbH65INwT+EZ0dx7weA3rVReKmOsh+2oR0//fOCi/Dbod+C3QAszPBWHHMMtpGxhPqvNTJ3eRBpMLwnZ8R/ZZwAPAv+M7uItI7UwFFkY/r1g0p/PURGsjNacGVgyFQqEFOAC4P5/Pa0bsMVJ+8QyXXy4I/xs4A3gdPyXD0kQqmHId9GbfybJZ/8cOj3bR2p90feqN8huV2cCl+CMshyya03lX+R+1DYwn7fnpFGE8LcBHo58ydsovnjfllwvCdwCnR3evQo2rYXXQl53Ba0d20JdNui71SPmNyj3Az/AXI74xF4RTBv1d28B4Up2fGlgiDSIXhJPxowYNuBO/YReRZF2M7/i+DfDthOsiNaQGlkjjuBiYAbyMPy2RukPmIk1oNXAW/jThR3JBeEzC9ZEaUQMrHoe/0GdjdmSrPuUXz7r8ckH4Pnx/K4DL8CNrZAOKmFtN61MaBTc+ym9M/oCf6BfgulwQbhb9rm1gPKnOT53cxymaxHE2MB2/M7tn0ZxOdfQcJeUXz6D81uAvhbMFcBvwTUBZiqRLG76RNQM/jUMebQPHrR72ITU9gmVmnzWzZWbWZWYPmNnbR1j+g2b2RLT8o2Z2ZK3quiG5IPwnYBlwF/7inncBy6JyGYHyi2eI/AJ84+pV4FuocTUqHfRm57B4dge96qQ9DspvzHqAM/Gn7t8HvIK2geNSL/uQmjWwzOxD+GuinYO/hMAjwB1mtvkwyx8EzMdPkrg3ficSmNlba1LhYURv4EJg60F/2hpYmLY3OG2UXzwbyA9gGrBnbWtUvzroy27JqtkaBTc+ym9c/gz8Jvp9k0F/0zZwFOppH1LLI1hfBK5zzl3vnFsMnII/tfGJYZY/FfiVc+5C59wS59xZwMPA52pT3TeLDkleHt21QX8u3b8sWk4GUX7xjJAf+H4Ip6G+lSJplcEfYBiKtoEjqLd9SE3mjjCzNuBtwHmlMudc0cx+Axw4zMMOxB/xKncHMGeY12gH2suKJgPMnj27vVAolC5T0J/P53sLhUIrUP4G9OXz+b5CodDOwDdtQPlG7H/wGtq22dCqAtuC+9M7gr+v6/flog54NugfwmEO3IBy3yNuXOVW/uT+NY2xlhtuUB2Hq/u41mkK2KjyywXhG3WyTrV8n0aT3xZt9O23Eb1/AFhBe08GZ5PoaS1f8HUm9LTQP6C8iLkVdPR20JstPyoxXHkP2eIa2vo2oqeljf51jbouWvq7aO2fQldrpiz74cpX0dbbR9ZNZW1beR1X0dZbxNwUugeUV2qd/G/OJpU9f72vUy3fJ5+by2QpWoYijbBO1X6f1tC6dw8tQ561ibxpH6Lt3oDyjUezDzHc7EKhcDe+39s6+Xy+q1AoZAaVu3w+3x1NWtoyuHwDrzWiWk3ONQ3foHlpUPlLwK7DPGbLYZbfcpjlv4K/ivkAJ5100vlAb3R3EX6eoBOAXNliP8d3Dj4F2K2s/Cbgd9FzT9+X53a6mxnDvHw5222ooQNDDyewVJW7IQ+MDD9EY6yvOTq220jPk6Z1SqZ8eHvz/L/uxisvAPyIWddNY/Xkf+Sp40t/L2I9N7DPd3fn5W334fmjS+XdtLz2A/ac/zaen/kPvPruUvlK2p9dyFtvm83T+23DG/uVyl9l4pLb2PWuQ3jq3dNYPbNUvpyNH/wfdn7wvfz16Ml0b1sq/wvT7lrE9kuO4s8ntNO37vTIw2x12yNMfzbPkk9mcOs2fHey44JXmbjyGBaXRkdSyXW6jV1/sYbWzHv521dLO5l6X6davk8GlsFN34S1u3bR+kYjrFO136fFbDb9AbZjZEPtQ7TdG+0+pJX+7fBthfI2QRf+zNhM4PNl5S8AZ+NnhP9oWfli1h8tG5eajCI0s62A54CDnHP3lZVfALzTObf/EI/pAU50zs0vK/sM8HXn3BZDLD/UEazls2fP3nzu3Lkro7JYR7CudPsfvIa2O0Za3wzFa7K4v5Xu95LpM6CF4oAGbS/ZPsMNKHfg+sj2ZyhmsrjMSOVFrNhPppilmMmUlfdjxSKZYgv92fJvFMOV95Hpcxit9A+ooy+H1jfVfezrZBTf4sh8ZqT8jOJVjsyT9bBOtXyf+rGdimROGSm/dnqP34LV9wM8z+TuVoq2GasHfJN7hqndE+gdUN6PuefYuGcT1mYn090yUvkaWvtfZWLfNFa3bFTW0Xkl7X2vMaF/a95oy5Z9ix6u/BUm9qyl1W3H6+WfX15hYk8vGbcVKweUa520TvW6Ti8x8YBuWhcwgvJ9SLNv98rXKUNxl9FsAw337i/Z7xI/glWrBlYbvr/Vsc65oKz8BmCqcy4/xGOeAS5xzl1WVnYOMMc5N2JH3mpM0xCd112G70w3VFPaAcuBGWkbLpoGyi8e5VdZ0RetE4D5+Xy+d6TlZSDlN3b6DMdTb/nVpDOsc64H+D1wSKnMzDLR/fuGedh95ctH3rOB5asuesNOje4ObpmW7n8hDW9sGim/eJRfxWXxXQVS0SG2Dim/MdJnOJ56y6+Wo40uAT5lZiea2UzgamAicD2Amd1oZueVLX85cLiZzTWzXc3sbGBf4Moa1vlNFs3p/AlwLP6UZ7nlwLHR32UYyi8e5SdS3/QZjqee8qvpTO5m9jngS/jOZ38EPu+ceyD622+BZc65j5Ut/0H8rNQ7AE8CpzvnfjHK1yqdItwGWDnC4mM2YdtdMnvOvfpd+3e6Ux8I7fJHLv70b9c+++dipV+nUSm/eJRffLNnz24/6aSTzp83b94Z99xzT6y+Fs1I+cWjz3A8Nc5vpRtHY6mRL5WzNb5FKyIiIjJe4+rL3cgNLAO2ogpHr8pMxjfiqnKUrAkov3iUXzzKLx7lF58yjKdW+Y3rCFat5sGquSiMwedoK8rWT4W2shoXlG50yi8e5ReP8otH+cWnDONJe366pIaIiIhIhamBJSIiIlJhamDF0w2cE/2UsVN+8Si/eJRfPMovPmUYT6rza9hO7iIiIiJJ0REsERERkQpTA0tERESkwtTAEhEREakwNbBEREREKkwNLKk7Vja7nIiIyFiZWdXbP2pg1YiZHWVmB5nZxknXpR5F+eXMbPJ4LlkgYGY7JV2HemZm05OuQz0zs32V4fiZ2WHah8RjZnPN7BwA51zVL6ytBlaVmdmhZrYUOA+4CbjVzD4e/U35j8DMDjazZcBlwE+AgpkdF/1N+Y2CmR1iZk8AV5nZDlGZjgKOkpm9J8rvbDObFpUpv1Eys6Oj/G4EHjKzq81sq6TrVS/M7P1m9jfgYuBW4Edm9o6Eq1V3zGx/4ELg/WZ2WFRW1X2IdlBVFO3MzgKuA/YD8sBDwBVmtnctWtD1zMzagX8HfgHshc/vGXx+s5xzRe3oNszMjgcuAV4GOoH3w7prdcoGmFnGzD4GXAqsBd4BHAjKbzTMrN3Mvgp8C7gGOAY4Hfhnov9DGZ6ZdZjZucBV+AwPBj4AbA/sk2Td6tQ/AE8DTwInmllbtfchamBVQVmr+G3AbsANzrku59xjwM+BicAlZtawF9uOo+wffgfgKOAW59wq59z9wLnAw8D1oB3dcMoyfBW4AzgO+CtwuJm9bdAyMrQsfoboW4FDgVXACWa2PSi/Udgc3yD9qnPuMuBJ59wt+C9MR4AyHMFE/Of3k865y5xzoXPuXuAl4LVkq1Y/yv7HtgIuAu7EN7ZOhOruQ9TAqiAzmwwDzu1uAfwZmFy22Erg98BsojdYp7o8M9sWBvzD9wFPAVuXlnHOPQX8J7C7mf1z9DjlFxkiw0XA2c65F4Er8f+Tx5hZi3POaQc3UHn/FudcL/A/wAXOub/jG/cHA4eaWUaN+zcblN+z+G4RPxm02MvAimgZZVhmUH5/x2f367K/n4b/0n6gmX3IzLasfS3TbYg+atno53RgE+Bm4G/AkWY2ycx2qVZdtGOqgKiPxm+A+WZ2uZkdEP3pXmAa8BUz28vMjgAKwF34/gifhtp0tkszM3uvmd0HLDSz283sX6I/9eE3xvuY2cSyhzyC33CfBsoPhszwo9Gfepxza6IGwSLgt8A7gfeAdnAl0We4lN9FZrZf9KfQObc6yu924AHgw8CsxCqbQkPktz+Ac+5HzrmuqCFfaszvC/wlqbqm0Qb+/56LTmNlo33Ml4ErgA789u/qhKqcOkNkuG/0p9I2bmvgb865VfgzIG/BHyG8adD+pWLUwIrBzCab2VXAfOD+6JYD/tvMpjnn/ojvVLcTvmG1ELjeOXc6vpGwxsymJFL5FDCzjc3s+8APgF/i+wqFwDfMbDPn3NPAffjGwP6lx0UfkHuBPmvykXEbyPCbZrapc65/0EO+hf9Glzezzug5stHPptweRIMmfog/WnUnvgH6YzPbqazxXsrma/jTC0eZ2UbR45syt5Jh8vth6bNpZua8fvOjCLcDfppYhVNmhP8/FzXu+/H9UXd2zn3DOfcJfL+2ncoaEk1rmAwXmtmOZdvAfmCpmW0OzAV2AV4Ezip9iap4xZxzuo3zhu+0eSdwUFnZ4fiG1iHRfQNagf0HPfYS4PGk1yHh/N6JbxTsVVb2PuCPwA7R/U5gMX5jsn3Zcifh+yFMS3o9UpzhNkQXdI/KM9HPLwAP4jsb7wJcC0xJel0Syi+DP2Xw3bKyHaPP9b1Ae1l5Nvp5Af4L0sHATOAbwKSk1yXt+UV/OwR4DJgQ3d8MP3ilLel1qYf8or+3RD8/iT/VunPS65HiDO8D2vD92f6KP93aBfwY30Xn18BV1apbU3/zqoA+/KHGh8pav4/hR7ytju5nnHO9zrkHSg8ys62BvfGHepvZvcAZ+MxKDgCWApuY2ZbOuRB/FHA/4L/MbCsz2xR/pPBnRH05mtiGMtwM30Ad3Jn428Dr+A6fj+OPyFgz9sdy/gjVHsArZWVPAf8G7Al8AtblVzrVcBb+FM08fH571LDKqTKG/FqjP78Hn1mvmZ2J77D9HtafPmwqY8gvU/b3vujo84H4riZP1bLOaTNChnsAJzvnVgP3AJsCxzjnPuicuwH/RfTgqh0FTLr1WY83oqMCQOsQf9sT31KeMai8BX+a60v4Dnb3ANslvS5puQE7479trMR/81iMHy3YHv39OPyG5AngOfzggb2SrneabsNk+BAwsWyZicCnomUeBt6VdL0TzqwdP43Kr0o5lX2+LwSeGbT8JODj+GkbHgLenfQ61Et++CP59wC/ibaRS4HDkl6HOspvGv7L08ei/O4Ddkt6HZK+jZDhRaUMganA5Oj30tH8HYCZ1aqbjmCNg4veGedHGQ22C75j9rJB5Rl86/k44HLn3Gzn3DPVrGed2Qx/2HZn/Bw5h+I7JZ4FvrMscBB+53aKc24X5/u4yXpDZbgtfu6hki2A7+BHFu7jnPttrSuZJs65bvzRvyn40/vlbgQmmFm+rGwW8F3gTOfcvs65u2pT03QaY35b4b9k7gF82zk3wzl3R80qm0JjzG8L4Iv4L+nfcs4d6JxbXLPKptQIGd5AlKFz7nXn3MroMcXo5zLn3JJq1U3zMI2g1EFzUFnWvbnzcMmHgEdKj4mmbljlnOsxs/8FfuWaaNTbaPNzzt2H/0ZWssrMfk/ZhHrOTzXwYjXrm0YVyHC/6DEZ59xTZta6gf/fhmJmWznnnh+iPIv/rlTEN0qPwU9f8YBzbnm02Cp8P7+O0uOcc/eZn6BQ+Y0+vwn4hZ82s5OABcN8OW04Fc7vcfMTjy5plv8/qPxnuJZ0BGsIZvYBM/uzmc10buBcQWUjOjCzY0vDkc3P+jwVvzNbGJXNxR/N+jD4lnYzNK7Gm9+g59gZP1Hh92pZ97SoRoZl39oafuNsZieY2UP4S1PdbmZHReUtpfycH/5+NL5v1ZX4I3/lR/vao9uy8udWfmPOb2mpwDl3UzM0rqqY32PN8P8H1f0M10y1zj3W4w3fv+Ic/HT63cDtwyz3VvwEjq/gO8yVynfHTyL6aeBPwPPAsUmvVx3ltxH+MPhRUX4BsGXS66UM6+eG79Q/D99P79/wp5R/jO/U31K23J5RfsvxowEz+NGVr+NHFp2L7+f3M2CTpNdL+dXHTfkpwwHrknSYabrhJx77DnAycCR+lODR0d9KneY68ZM1Xjl4xwWcAhSBNcA5Sa9PPeWHP3/+UeB/8Y2GryW9Psqw/m6snyZl37KybfATW340ur8lfsDEt4f4DL8LP7r318CXk14f5VdfN+WnDAfUJekwk77hh7pOL7v/NvxEjIZvRf+17G+lkQdDzr2En1foHJpoTpwK57c78JFmyk8ZVjY//IVwP0LZCF/8adJngcPLyjZ4VI9ozqtmuCk/5Zf0rVEzTDzYBN/QQ6IW8LLojfsuZRO2RTu33fGzYn9pQ28Y648stFSzzmm6VTK/Zr0pw4rmtxw/Ge0ug5bJRhvsZ4F9kq5zmm7KT/klfWv0DBOvQEJv6rb40Vbn4i9jcyx+bqpbGThbeAb4Kn7OoM4hnsdqUd+03ZSfMkz6NkJ+O0TLlGa8PoYmv2qC8lN+abs1Q4bNOopwV3wHuRucc39zzi3Ezy0yDfhKaSHnR119H3gGuBjAzPY2s9lDDZ1vIsovPmUYz4by+zL4Ga+jZd+PnxQUADPbMpo+pZkpv3iUX3wNn2GzNrA6gSX4Q48lBeAOYLaZvbNU6Pz8G2cDHzGzn+BHCR5Ek17aIaL84lOG8YwqPzObhJ/c8rZoKpX/xI/uParG9U0b5ReP8ouv4TNs1gbW48Bu+BY0sG5um1/gz/PmS+VmNgE/O3sWmI6/NMb5rgnms9oA5RefMoxnpPzmRMWb4SdU3gPf1+Of8Bdin1/LyqaQ8otH+cXX+BkmfY4yqRv+Tfwtg0Zb4S9PEOAbn5OBC/DXHftU0nVO0035KcOkbyPlF/1+In7qlBeAzyVd5zTdlJ/yS/rW6Bk26xEs8P1ccvjTLm1l5c8Auzvnis5ft2iBc26Cc+66RGqZXsovPmUYzwbzi35/GPiic266c+7KWlcw5ZRfPMovvobOsGmvReice8TMzsdfTLjXzBbgjxjsC9xcttzDCVUx1ZRffMownhHyuyVa5lHg0eRqmV7KLx7lF1+jZ1iav6lpmdm38UNAn8HPDrsa+KDTVcpHRfnFpwzjUX7xKL94lF98jZqhGlhmHcBMYB+g2zl38wgPkTLKLz5lGI/yi0f5xaP84mvUDJu+gSUiIiJSac3cyV1ERESkKtTAEhEREakwNbBEREREKkwNLBEREZEKUwNLREREpMLUwBIRERGpMDWwRERERCpMDSwRERGRClMDS0RERKTC1MASERERqTA1sEREREQqTA0sERERkQpTA0tERESkwtTAEhEREakwNbBEREREKkwNLBEREZEKUwNLREREpMLUwBIRERGpsP8P9RRqiCaUpsAAAAAASUVORK5CYII=" alt="AMD 趋势图" style="width: 100%; height: auto;" />
</div>
</div>
</div></div>
</div>
<div class="footer">
<div class="footer-content">
</div>
</div>
</div>
<script>
async function saveAsImage() {
const button = event.target;
const originalText = button.textContent;
try {
button.textContent = '生成中...';
button.disabled = true;
window.scrollTo(0, 0);
// 等待页面稳定
await new Promise(resolve => setTimeout(resolve, 200));
// 截图前隐藏按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 再次等待确保按钮完全隐藏
await new Promise(resolve => setTimeout(resolve, 100));
const container = document.querySelector('.container');
const canvas = await html2canvas(container, {
backgroundColor: '#ffffff',
scale: 1.5,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
removeContainer: false,
foreignObjectRendering: false,
logging: false,
width: container.offsetWidth,
height: container.offsetHeight,
x: 0,
y: 0,
scrollX: 0,
scrollY: 0,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
buttons.style.visibility = 'visible';
const link = document.createElement('a');
const now = new Date();
const filename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}.png`;
link.download = filename;
link.href = canvas.toDataURL('image/png', 1.0);
// 触发下载
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
button.textContent = '保存成功!';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
async function saveAsMultipleImages() {
const button = event.target;
const originalText = button.textContent;
const container = document.querySelector('.container');
const scale = 1.5;
const maxHeight = 5000 / scale;
try {
button.textContent = '分析中...';
button.disabled = true;
// 获取所有可能的分割元素
const newsItems = Array.from(container.querySelectorAll('.news-item'));
const wordGroups = Array.from(container.querySelectorAll('.word-group'));
const newSection = container.querySelector('.new-section');
const errorSection = container.querySelector('.error-section');
const header = container.querySelector('.header');
const footer = container.querySelector('.footer');
// 计算元素位置和高度
const containerRect = container.getBoundingClientRect();
const elements = [];
// 添加header作为必须包含的元素
elements.push({
type: 'header',
element: header,
top: 0,
bottom: header.offsetHeight,
height: header.offsetHeight
});
// 添加错误信息(如果存在)
if (errorSection) {
const rect = errorSection.getBoundingClientRect();
elements.push({
type: 'error',
element: errorSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 按word-group分组处理news-item
wordGroups.forEach(group => {
const groupRect = group.getBoundingClientRect();
const groupNewsItems = group.querySelectorAll('.news-item');
// 添加word-group的header部分
const wordHeader = group.querySelector('.word-header');
if (wordHeader) {
const headerRect = wordHeader.getBoundingClientRect();
elements.push({
type: 'word-header',
element: wordHeader,
parent: group,
top: groupRect.top - containerRect.top,
bottom: headerRect.bottom - containerRect.top,
height: headerRect.height
});
}
// 添加每个news-item
groupNewsItems.forEach(item => {
const rect = item.getBoundingClientRect();
elements.push({
type: 'news-item',
element: item,
parent: group,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
});
});
// 添加新增新闻部分
if (newSection) {
const rect = newSection.getBoundingClientRect();
elements.push({
type: 'new-section',
element: newSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 添加footer
const footerRect = footer.getBoundingClientRect();
elements.push({
type: 'footer',
element: footer,
top: footerRect.top - containerRect.top,
bottom: footerRect.bottom - containerRect.top,
height: footer.offsetHeight
});
// 计算分割点
const segments = [];
let currentSegment = { start: 0, end: 0, height: 0, includeHeader: true };
let headerHeight = header.offsetHeight;
currentSegment.height = headerHeight;
for (let i = 1; i < elements.length; i++) {
const element = elements[i];
const potentialHeight = element.bottom - currentSegment.start;
// 检查是否需要创建新分段
if (potentialHeight > maxHeight && currentSegment.height > headerHeight) {
// 在前一个元素结束处分割
currentSegment.end = elements[i - 1].bottom;
segments.push(currentSegment);
// 开始新分段
currentSegment = {
start: currentSegment.end,
end: 0,
height: element.bottom - currentSegment.end,
includeHeader: false
};
} else {
currentSegment.height = potentialHeight;
currentSegment.end = element.bottom;
}
}
// 添加最后一个分段
if (currentSegment.height > 0) {
currentSegment.end = container.offsetHeight;
segments.push(currentSegment);
}
button.textContent = `生成中 (0/${segments.length})...`;
// 隐藏保存按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 为每个分段生成图片
const images = [];
for (let i = 0; i < segments.length; i++) {
const segment = segments[i];
button.textContent = `生成中 (${i + 1}/${segments.length})...`;
// 创建临时容器用于截图
const tempContainer = document.createElement('div');
tempContainer.style.cssText = `
position: absolute;
left: -9999px;
top: 0;
width: ${container.offsetWidth}px;
background: white;
`;
tempContainer.className = 'container';
// 克隆容器内容
const clonedContainer = container.cloneNode(true);
// 移除克隆内容中的保存按钮
const clonedButtons = clonedContainer.querySelector('.save-buttons');
if (clonedButtons) {
clonedButtons.style.display = 'none';
}
tempContainer.appendChild(clonedContainer);
document.body.appendChild(tempContainer);
// 等待DOM更新
await new Promise(resolve => setTimeout(resolve, 100));
// 使用html2canvas截取特定区域
const canvas = await html2canvas(clonedContainer, {
backgroundColor: '#ffffff',
scale: scale,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
logging: false,
width: container.offsetWidth,
height: segment.end - segment.start,
x: 0,
y: segment.start,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
images.push(canvas.toDataURL('image/png', 1.0));
// 清理临时容器
document.body.removeChild(tempContainer);
}
// 恢复按钮显示
buttons.style.visibility = 'visible';
// 下载所有图片
const now = new Date();
const baseFilename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}`;
for (let i = 0; i < images.length; i++) {
const link = document.createElement('a');
link.download = `${baseFilename}_part${i + 1}.png`;
link.href = images[i];
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// 延迟一下避免浏览器阻止多个下载
await new Promise(resolve => setTimeout(resolve, 100));
}
button.textContent = `已保存 ${segments.length} 张图片!`;
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
console.error('分段保存失败:', error);
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
document.addEventListener('DOMContentLoaded', function() {
window.scrollTo(0, 0);
});
</script>
</body>
</html>