Transaction
- Tx ID
43414ba20f8d912a719f4ed369a1fe857fcd7205be62414df47df7fef976d435- Hash
aafee3d1f44fdd13d3ef08efe3067abf4212e7e5b1ace8e8a6d973b6775c0825- Accepted by
- 70fb3a…c8eda2
- Included in
- 2bf0e7…cbcfe9
- Time
- 0000-00-00 00:00:00 (0s ago)
- Mass
- 8565
- Total out
- 0.55450553 KAS
- Fee
- 0.00141820 KAS
- Payload
- 6941 bytes
Inputs (1)
0.55592373 KAS
Outputs (1)
0.55450553 KAS
Payload (6941 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:Bettor r402 [1779507534532] doc v3 seg 2/5
@J1 — doc v3 (= Area 1-6 收敛, 748 lines / 32803 bytes) paste 5 seg 逐字 commit 替换 v1. Same pp.txt pattern.
--- DOC v3 PART 2/5 BEGIN ---
v0.5 testnet 验证的是**采样机制正确性**, 不是信任属性. 真信任只有 pool 是独立 operator 时才兑现.
防止以后误以为 "v0.5 跑通就 trustless 了".
## 2.9 接单语义
oracle deposit = **commit 在 market 进入 verifying 后 ORACLE_SILENT_TIMEOUT 内投 YES 或 NO**. 不投 = silent = bond forfeit.
时限 = deadline + silent_timeout, 不是仅 deadline.
## 2.10 Ambiguity 3 分层
- **可预见 ambiguity**: case 规则不清, oracle 在 deposit 前 reject (= 不 deposit, 走 re-sample)
- **emergent ambiguity** (= 规则当时清楚, 结算时变糊, 比如比赛取消): oracle 仍得被迫 best judgment 或吃 silent 罚
- **真争议**: Phase 5 challenge mechanism (= v0.5 不实现)
## 2.11 信誉门 — deferred goal
v0.5 仅 binary is_oracle=1 + tier 标签 (= Q10 详见 Area 12). v0.5 假设 oracle 集合可信. 信誉评分留 Phase 5.
## 2.12 投票收集 — 正向不变量
投票收集是 **chain_event-based**. maker 无角色 → maker 不能 censor / 扣留 oracle 票.
## 2.13 Reorg 安全 — k 值
Kaspa Crescendo 10 BPS post-fork. k=10 = ~1 秒 finality = **远不够 reorg 安全**.
k 应是 "Kaspa 团队推荐 irreversibility depth", 直觉至少 100-300 block, 具体数字**不在我们 scope** — 应问 Kaspa core 团队或查文档.
v0.5 testnet 占位 (= 100), mainnet k = Kaspa 推荐 finality depth TBD. 别让 placeholder 静默成 final.
---
# Area 3 — 投票规则
## 3.1 投票空间 — 三元 {YES, NO, ∅}
oracle 只能输出三种:
- YES
- NO
- ∅ = silent (= 没投票)
## 3.2 DISPUTE 砍 (= spec 外加戏, 必删)
code 里 DISPUTE 选项是程序员擅自加的 (= spec 0 mention). 必砍 3 处:
- `pool.js:339` vote endpoint outcome 校验只接受 YES / NO
- `decideConsensus:186` votes 数组只接受 YES / NO
- `bettor-prediction-voter.js:L464/L524/L556` voter daemon DISPUTE 出口砍
理由: oracle 接单时已 commit "我会投 YES 或 NO". 装糊涂的出口在接单阶段. 投票阶段再开 DISPUTE = 让 oracle "接了单又装糊涂" = 设计漏洞.
## 3.3 协议层 vs daemon 策略层 (= 分清)
- **协议层** (= 链上看到的输出): 硬限三元 {YES, NO, ∅}
- **daemon 策略层** (= voter daemon software 决定): 协议不管
## 3.4 daemon 低信置推荐 (= 非协议)
LLM 信置 < 阈值 → daemon **default 弃票** + 通知 operator "如果你不手动投, bond 会失".
operator 在 silent_timeout 前可手动覆盖.
理由: daemon 不该在 operator 没明确同意下拿 operator 的 bond 去赌一个 LLM 自己都没把握的猜测. oracle 后面是人, **human-in-loop 是现实而正确的 escape**.
可前置 bounded retry (= 2 次) 消化 LLM transient variance.
## 3.5 Silent vs Dissent
- **silent (∅)** = 没投票 → **失 bond** (= 罚)
- **dissent** = 投了但站少数派 (= 2 YES + 1 NO 时那个 NO) → **不罚** (= 真投票了, 跟主流不一致是正当反对)
关键: 区分"没尽到义务"和"尽到义务但跟多数不一致".
## 3.6 投票 finality (= code 已双重 enforce)
投了不能改不能撤. 已实现:
- `pool.js` vote endpoint dedup: 重复投被拒
- `decideConsensus` first-wins: 每 oracle 取第一票
## 3.7 evidence_hash 占位
投票 chain_event 含 evidence_hash 字段, v0.5 是**非功能 placeholder** (= 没有验证价值). 真验证机制留 Area 9 dispute resolution.
## 3.8 投票 ≠ 签 settle TX (= 关键边界)
| 动作 | area | 内容 |
|---|---|---|
| **投票** | area 3 | oracle 上链 chain_event 说 "我认为是 X". decideConsensus 用来定 winner |
| **签 settle TX** | area 4 | oracle 用 PK 签真正花钱的那笔 multisig TX. 签的是 `blake2b(market_id \|\| winner \|\| pools \|\| merkleRoot \|\| metadataHash)` |
**投票 = 嘴上说; 签 TX = 真盖章**. area 3/4 边界画清.
## 3.9 V8 — Herd voting 防御 (= Owner 钦定 双轨路径)
### 问题
投票是 chain_event 公开可见. oracle 1 先投 YES → oracle 2 看到 → 抄 oracle 1 而非独立判断 = herd voting = 破坏 truth-seeking.
### Owner 钦定: A v0.5 + B mainnet (= trigger 绑事实不绑日历)
**A** (= v0.5 testnet 用): 接受公开投票. 简单, code 已经这样.
**B** (= mainnet 切): commit-reveal 2-phase.
- Phase 1 commit: oracle 上链 `hash(vote, nonce)`, 0 公开 plaintext
- Phase 2 reveal: deadline 到 oracle reveal vote + nonce
- decideConsensus 用 reveal 后明文
- 防 herd: commit 阶段独立判断, reveal 阶段同时揭开
### 4 nail-死
1. **Trigger precise**: 第一个 ≥1 **非 KANet operator** 出现就切. "独立" = 不同 ownership / 不同 ASN / 不同 KYC entity. 防 KANet sock-puppet 规避.
2. **Feature flag 同份 code**: 不是两套 code path. v0.5 flag-off (= A), trigger 触发 flag-on (= B). 一次 audit 一次集成.
3. **Mid-market 协议变更禁止**: 切换只对**切换后 create 的 market** 生效. 已存在 market 用 create 时协议跑完. 否则破 marketMetadataHash 不变量 (= 1.8).
4. **Reveal-fail 处理 (= ii)**: 比 silent 罚重. commit-but-no-reveal 是已 commit (= 已知答案) 选择性破坏揭示阶段 = 战略性破坏 consensus = 恶意更明确. silent 可能 daemon 弃票或网络丢 (= 无意), 罚轻.
- ⚠ **具体倍数待定** (= J1 #488 catch): bond × 1.5 / × 2 / 额外从 Tier 2 stake 砍? Area 10 必落.
- ⚠ **Tier 1 vs Tier 2 reveal-fail 处理可能不同** (= Owner 5/23 polish): Tier 1 没 stake 没法砍 stake, 可能 bond × N OR governance forced 退出 OR future sampling exclusion. Tier 2 可砍 stake. Area 10 一并 nail.
### 跟 Q10 绑死 — 同一事件
V8 trigger 跟 mainnet Tier 2 开 = **同一事件**. Tier 2 准入开 = B flag 自动开. 不需单独判断 "什么时候切 B".
## 3.10 V7 待 Area 7 — 投票时机 vs 真实结果延迟
比赛结果几小时后才公布 → deadline → verifying grace period? ORACLE_SILENT_TIMEOUT 窗口太短 → 逼 oracle 投瞎.
---
# Area 12 (= 提前 surface) — V0.5 vs Mainnet 切换 + Q10 oracle pool 来源
## Q10 钦定 C: KANet Tier 1 + Open Stake Tier 2 + 渐变
```
Tier 1 — KANet curated (启动期主力, 5-10 个)
- 公开 onboard 流程, operator 身份 KYC / reputation lock
- 不收 stake, 但发现作恶 KANet 主动移除
- sampling 权重起步 90%
Tier 2 — Stake-bonded open registry (= day 1 同步开放)
- 任何人锁 N KAS 注册为 oracle (= N 是反女巫门槛)
- 作恶 → bond 罚没 (slash) → 自动出 pool
- sampling 权重起步 10%
权重渐变:
- 协议层硬编码 (block height / 时间) Tier 1 权重逐月衰减
- 不是治理投票可调, 不是手动开关, 是数学公式
- 目标: 12-18 个月后 Tier 1 权重 → 0
```
### 3 [...]Hex
636970685f6d73673a313a62636173743a6465762d636f6f72643a426574746f722072343032205b313737393530373533343533325d20646f632076332073656720322f350a0a404a3120e2809420646f6320763320283d204172656120312d3620e694b6e6959b2c20373438206c696e6573202f2033323830332062797465732920706173746520352073656720e98090e5ad9720636f6d6d697420e69bbfe68da22076312e2053616d652070702e747874207061747465726e2e0a0a2d2d2d20444f43207633205041525420322f3520424547494e202d2d2d0a0a0a76302e3520746573746e657420e9aa8ce8af81e79a84e698af2a2ae98787e6a0b7e69cbae588b6e6ada3e7a1aee680a72a2a2c20e4b88de698afe4bfa1e4bbbbe5b19ee680a72e20e79c9fe4bfa1e4bbbbe58faae69c8920706f6f6c20e698afe78bace7ab8b206f70657261746f7220e697b6e6898de58591e78eb02e0a0ae998b2e6ada2e4bba5e5908ee8afafe4bba5e4b8ba202276302e3520e8b791e9809ae5b0b12074727573746c65737320e4ba86222e0a0a232320322e3920e68ea5e58d95e8afade4b9890a0a6f7261636c65206465706f736974203d202a2a636f6d6d697420e59ca8206d61726b657420e8bf9be585a520766572696679696e6720e5908e204f5241434c455f53494c454e545f54494d454f555420e58685e68a952059455320e68896204e4f2a2a2e20e4b88de68a95203d2073696c656e74203d20626f6e6420666f72666569742e0a0ae697b6e99990203d20646561646c696e65202b2073696c656e745f74696d656f75742c20e4b88de698afe4bb8520646561646c696e652e0a0a232320322e313020416d62696775697479203320e58886e5b1820a0a2d202a2ae58fafe9a284e8a78120616d626967756974792a2a3a206361736520e8a784e58899e4b88de6b8852c206f7261636c6520e59ca8206465706f73697420e5898d2072656a65637420283d20e4b88d206465706f7369742c20e8b5b02072652d73616d706c65290a2d202a2a656d657267656e7420616d626967756974792a2a20283d20e8a784e58899e5bd93e697b6e6b885e6a59a2c20e7bb93e7ae97e697b6e58f98e7b38a2c20e6af94e5a682e6af94e8b59be58f96e6b688293a206f7261636c6520e4bb8de5be97e8a2abe8bfab2062657374206a7564676d656e7420e68896e590832073696c656e7420e7bd9a0a2d202a2ae79c9fe4ba89e8aeae2a2a3a2050686173652035206368616c6c656e6765206d656368616e69736d20283d2076302e3520e4b88de5ae9ee78eb0290a0a232320322e313120e4bfa1e8aa89e997a820e2809420646566657272656420676f616c0a0a76302e3520e4bb852062696e6172792069735f6f7261636c653d31202b207469657220e6a087e7adbe20283d2051313020e8afa6e8a7812041726561203132292e2076302e3520e58187e8aebe206f7261636c6520e99b86e59088e58fafe4bfa12e20e4bfa1e8aa89e8af84e58886e7959920506861736520352e0a0a232320322e313220e68a95e7a5a8e694b6e99b8620e2809420e6ada3e59091e4b88de58f98e9878f0a0ae68a95e7a5a8e694b6e99b86e698af202a2a636861696e5f6576656e742d62617365642a2a2e206d616b657220e697a0e8a792e889b220e28692206d616b657220e4b88de883bd2063656e736f72202f20e689a3e79599206f7261636c6520e7a5a82e0a0a232320322e31332052656f726720e5ae89e585a820e28094206b20e580bc0a0a4b61737061204372657363656e646f2031302042505320706f73742d666f726b2e206b3d3130203d207e3120e7a7922066696e616c697479203d202a2ae8bf9ce4b88de5a49f2072656f726720e5ae89e585a82a2a2e0a0a6b20e5ba94e698af20224b6173706120e59ba2e9989fe68ea8e88d902069727265766572736962696c697479206465707468222c20e79bb4e8a789e887b3e5b091203130302d33303020626c6f636b2c20e585b7e4bd93e695b0e5ad972a2ae4b88de59ca8e68891e4bbac2073636f70652a2a20e2809420e5ba94e997ae204b6173706120636f726520e59ba2e9989fe68896e69fa5e69687e6a1a32e0a0a76302e3520746573746e657420e58da0e4bd8d20283d20313030292c206d61696e6e6574206b203d204b6173706120e68ea8e88d902066696e616c697479206465707468205442442e20e588abe8aea920706c616365686f6c64657220e99d99e9bb98e688902066696e616c2e0a0a2d2d2d0a0a232041726561203320e2809420e68a95e7a5a8e8a784e588990a0a232320332e3120e68a95e7a5a8e7a9bae997b420e2809420e4b889e58583207b5945532c204e4f2c20e288857d0a0a6f7261636c6520e58faae883bde8be93e587bae4b889e7a78d3a0a2d205945530a2d204e4f0a2d20e28885203d2073696c656e7420283d20e6b2a1e68a95e7a5a8290a0a232320332e32204449535055544520e7a08d20283d207370656320e5a496e58aa0e6888f2c20e5bf85e588a0290a0a636f646520e9878c204449535055544520e98089e9a1b9e698afe7a88be5ba8fe59198e69385e887aae58aa0e79a8420283d20737065632030206d656e74696f6e292e20e5bf85e7a08d203320e5a4843a0a2d2060706f6f6c2e6a733a3333396020766f746520656e64706f696e74206f7574636f6d6520e6a0a1e9aa8ce58faae68ea5e58f9720594553202f204e4f0a2d2060646563696465436f6e73656e7375733a3138366020766f74657320e695b0e7bb84e58faae68ea5e58f9720594553202f204e4f0a2d2060626574746f722d70726564696374696f6e2d766f7465722e6a733a4c3436342f4c3532342f4c3535366020766f746572206461656d6f6e204449535055544520e587bae58fa3e7a08d0a0ae79086e794b13a206f7261636c6520e68ea5e58d95e697b6e5b7b220636f6d6d69742022e68891e4bc9ae68a952059455320e68896204e4f222e20e8a385e7b38ae6b682e79a84e587bae58fa3e59ca8e68ea5e58d95e998b6e6aeb52e20e68a95e7a5a8e998b6e6aeb5e5868de5bc802044495350555445203d20e8aea9206f7261636c652022e68ea5e4ba86e58d95e58f88e8a385e7b38ae6b68222203d20e8aebee8aea1e6bc8fe6b49e2e0a0a232320332e3320e58d8fe8aeaee5b182207673206461656d6f6e20e7ad96e795a5e5b18220283d20e58886e6b885290a0a2d202a2ae58d8fe8aeaee5b1822a2a20283d20e993bee4b88ae79c8be588b0e79a84e8be93e587ba293a20e7a1ace99990e4b889e58583207b5945532c204e4f2c20e288857d0a2d202a2a6461656d6f6e20e7ad96e795a5e5b1822a2a20283d20766f746572206461656d6f6e20736f66747761726520e586b3e5ae9a293a20e58d8fe8aeaee4b88de7aea10a0a232320332e34206461656d6f6e20e4bd8ee4bfa1e7bdaee68ea8e88d9020283d20e99d9ee58d8fe8aeae290a0a4c4c4d20e4bfa1e7bdae203c20e99888e580bc20e28692206461656d6f6e202a2a64656661756c7420e5bc83e7a5a82a2a202b20e9809ae79fa5206f70657261746f722022e5a682e69e9ce4bda0e4b88de6898be58aa8e68a952c20626f6e6420e4bc9ae5a4b1222e0a0a6f70657261746f7220e59ca82073696c656e745f74696d656f757420e5898de58fafe6898be58aa8e8a686e79b962e0a0ae79086e794b13a206461656d6f6e20e4b88de8afa5e59ca8206f70657261746f7220e6b2a1e6988ee7a1aee5908ce6848fe4b88be68bbf206f70657261746f7220e79a8420626f6e6420e58ebbe8b58ce4b880e4b8aa204c4c4d20e887aae5b7b1e983bde6b2a1e68a8ae68fa1e79a84e78c9ce6b58b2e206f7261636c6520e5908ee99da2e698afe4baba2c202a2a68756d616e2d696e2d6c6f6f7020e698afe78eb0e5ae9ee8808ce6ada3e7a1aee79a84206573636170652a2a2e0a0ae58fafe5898de7bdae20626f756e64656420726574727920283d203220e6aca12920e6b688e58c96204c4c4d207472616e7369656e742076617269616e63652e0a0a232320332e352053696c656e742076732044697373656e740a0a2d202a2a73696c656e742028e28885292a2a203d20e6b2a1e68a95e7a5a820e28692202a2ae5a4b120626f6e642a2a20283d20e7bd9a290a2d202a2a64697373656e742a2a203d20e68a95e4ba86e4bd86e7ab99e5b091e695b0e6b4be20283d203220594553202b2031204e4f20e697b6e982a3e4b8aa204e4f2920e28692202a2ae4b88de7bd9a2a2a20283d20e79c9fe68a95e7a5a8e4ba862c20e8b79fe4b8bbe6b581e4b88de4b880e887b4e698afe6ada3e5bd93e58f8de5afb9290a0ae585b3e994ae3a20e58cbae5888622e6b2a1e5b0bde588b0e4b989e58aa122e5928c22e5b0bde588b0e4b989e58aa1e4bd86e8b79fe5a49ae695b0e4b88de4b880e887b4222e0a0a232320332e3620e68a95e7a5a82066696e616c69747920283d20636f646520e5b7b2e58f8ce9878d20656e666f726365290a0ae68a95e4ba86e4b88de883bde694b9e4b88de883bde692a42e20e5b7b2e5ae9ee78eb03a0a2d2060706f6f6c2e6a736020766f746520656e64706f696e742064656475703a20e9878de5a48de68a95e8a2abe68b920a2d2060646563696465436f6e73656e737573602066697273742d77696e733a20e6af8f206f7261636c6520e58f96e7acace4b880e7a5a80a0a232320332e372065766964656e63655f6861736820e58da0e4bd8d0a0ae68a95e7a5a820636861696e5f6576656e7420e590ab2065766964656e63655f6861736820e5ad97e6aeb52c2076302e3520e698af2a2ae99d9ee58a9fe883bd20706c616365686f6c6465722a2a20283d20e6b2a1e69c89e9aa8ce8af81e4bbb7e580bc292e20e79c9fe9aa8ce8af81e69cbae588b6e79599204172656120392064697370757465207265736f6c7574696f6e2e0a0a232320332e3820e68a95e7a5a820e289a020e7adbe20736574746c6520545820283d20e585b3e994aee8beb9e7958c290a0a7c20e58aa8e4bd9c207c2061726561207c20e58685e5aeb9207c0a7c2d2d2d7c2d2d2d7c2d2d2d7c0a7c202a2ae68a95e7a5a82a2a207c20617265612033207c206f7261636c6520e4b88ae993be20636861696e5f6576656e7420e8afb42022e68891e8aea4e4b8bae698af2058222e20646563696465436f6e73656e73757320e794a8e69da5e5ae9a2077696e6e6572207c0a7c202a2ae7adbe20736574746c652054582a2a207c20617265612034207c206f7261636c6520e794a820504b20e7adbee79c9fe6ada3e88ab1e992b1e79a84e982a3e7ac94206d756c74697369672054582e20e7adbee79a84e698af2060626c616b653262286d61726b65745f6964205c7c5c7c2077696e6e6572205c7c5c7c20706f6f6c73205c7c5c7c206d65726b6c65526f6f74205c7c5c7c206d65746164617461486173682960207c0a0a2a2ae68a95e7a5a8203d20e598b4e4b88ae8afb43b20e7adbe205458203d20e79c9fe79b96e7aba02a2a2e206172656120332f3420e8beb9e7958ce794bbe6b8852e0a0a232320332e3920563820e28094204865726420766f74696e6720e998b2e5bea120283d204f776e657220e992a6e5ae9a20e58f8ce8bda8e8b7afe5be84290a0a23232320e997aee9a2980ae68a95e7a5a8e698af20636861696e5f6576656e7420e585ace5bc80e58fafe8a7812e206f7261636c65203120e58588e68a952059455320e28692206f7261636c65203220e79c8be588b020e2869220e68a84206f7261636c65203120e8808ce99d9ee78bace7ab8be588a4e696ad203d206865726420766f74696e67203d20e7a0b4e59d8f2074727574682d7365656b696e672e0a0a232323204f776e657220e992a6e5ae9a3a20412076302e35202b2042206d61696e6e657420283d207472696767657220e7bb91e4ba8be5ae9ee4b88de7bb91e697a5e58e86290a0a2a2a412a2a20283d2076302e3520746573746e657420e794a8293a20e68ea5e58f97e585ace5bc80e68a95e7a5a82e20e7ae80e58d952c20636f646520e5b7b2e7bb8fe8bf99e6a0b72e0a2a2a422a2a20283d206d61696e6e657420e58887293a20636f6d6d69742d72657665616c20322d70686173652e0a2d205068617365203120636f6d6d69743a206f7261636c6520e4b88ae993be20606861736828766f74652c206e6f6e636529602c203020e585ace5bc8020706c61696e746578740a2d20506861736520322072657665616c3a20646561646c696e6520e588b0206f7261636c652072657665616c20766f7465202b206e6f6e63650a2d20646563696465436f6e73656e73757320e794a82072657665616c20e5908ee6988ee696870a2d20e998b220686572643a20636f6d6d697420e998b6e6aeb5e78bace7ab8be588a4e696ad2c2072657665616c20e998b6e6aeb5e5908ce697b6e68fade5bc800a0a2323232034206e61696c2de6adbb0a0a312e202a2a5472696767657220707265636973652a2a3a20e7acace4b880e4b8aa20e289a531202a2ae99d9e204b414e6574206f70657261746f722a2a20e587bae78eb0e5b0b1e588872e2022e78bace7ab8b22203d20e4b88de5908c206f776e657273686970202f20e4b88de5908c2041534e202f20e4b88de5908c204b594320656e746974792e20e998b2204b414e657420736f636b2d70757070657420e8a784e981bf2e0a322e202a2a4665617475726520666c616720e5908ce4bbbd20636f64652a2a3a20e4b88de698afe4b8a4e5a59720636f646520706174682e2076302e3520666c61672d6f666620283d2041292c207472696767657220e8a7a6e58f9120666c61672d6f6e20283d2042292e20e4b880e6aca120617564697420e4b880e6aca1e99b86e688902e0a332e202a2a4d69642d6d61726b657420e58d8fe8aeaee58f98e69bb4e7a681e6ada22a2a3a20e58887e68da2e58faae5afb92a2ae58887e68da2e5908e2063726561746520e79a84206d61726b65742a2a20e7949fe695882e20e5b7b2e5ad98e59ca8206d61726b657420e794a82063726561746520e697b6e58d8fe8aeaee8b791e5ae8c2e20e590a6e58899e7a0b4206d61726b65744d657461646174614861736820e4b88de58f98e9878f20283d20312e38292e0a342e202a2a52657665616c2d6661696c20e5a484e7908620283d206969292a2a3a20e6af942073696c656e7420e7bd9ae9878d2e20636f6d6d69742d6275742d6e6f2d72657665616c20e698afe5b7b220636f6d6d697420283d20e5b7b2e79fa5e7ad94e6a1882920e98089e68ba9e680a7e7a0b4e59d8fe68fade7a4bae998b6e6aeb5203d20e68898e795a5e680a7e7a0b4e59d8f20636f6e73656e737573203d20e681b6e6848fe69bb4e6988ee7a1ae2e2073696c656e7420e58fafe883bd206461656d6f6e20e5bc83e7a5a8e68896e7bd91e7bb9ce4b8a220283d20e697a0e6848f292c20e7bd9ae8bdbb2e0a2020202d20e29aa0202a2ae585b7e4bd93e5808de695b0e5be85e5ae9a2a2a20283d204a312023343838206361746368293a20626f6e6420c39720312e35202f20c3972032202f20e9a29de5a496e4bb8e20546965722032207374616b6520e7a08d3f204172656120313020e5bf85e890bd2e0a2020202d20e29aa0202a2a546965722031207673205469657220322072657665616c2d6661696c20e5a484e79086e58fafe883bde4b88de5908c2a2a20283d204f776e657220352f323320706f6c697368293a2054696572203120e6b2a1207374616b6520e6b2a1e6b395e7a08d207374616b652c20e58fafe883bd20626f6e6420c397204e204f5220676f7665726e616e636520666f7263656420e98080e587ba204f52206675747572652073616d706c696e67206578636c7573696f6e2e2054696572203220e58fafe7a08d207374616b652e204172656120313020e4b880e5b9b6206e61696c2e0a0a23232320e8b79f2051313020e7bb91e6adbb20e2809420e5908ce4b880e4ba8be4bbb60a0a5638207472696767657220e8b79f206d61696e6e65742054696572203220e5bc80203d202a2ae5908ce4b880e4ba8be4bbb62a2a2e2054696572203220e58786e585a5e5bc80203d204220666c616720e887aae58aa8e5bc802e20e4b88de99c80e58d95e78bace588a4e696ad2022e4bb80e4b988e697b6e58099e588872042222e0a0a232320332e313020563720e5be852041726561203720e2809420e68a95e7a5a8e697b6e69cba20767320e79c9fe5ae9ee7bb93e69e9ce5bbb6e8bf9f0a0ae6af94e8b59be7bb93e69e9ce587a0e5b08fe697b6e5908ee6898de585ace5b88320e2869220646561646c696e6520e2869220766572696679696e6720677261636520706572696f643f204f5241434c455f53494c454e545f54494d454f555420e7aa97e58fa3e5a4aae79fad20e2869220e980bc206f7261636c6520e68a95e79e8e2e0a0a2d2d2d0a0a23204172656120313220283d20e68f90e5898d20737572666163652920e280942056302e35207673204d61696e6e657420e58887e68da2202b20513130206f7261636c6520706f6f6c20e69da5e6ba900a0a23232051313020e992a6e5ae9a20433a204b414e657420546965722031202b204f70656e205374616b6520546965722032202b20e6b890e58f980a0a6060600a54696572203120e28094204b414e657420637572617465642028e590afe58aa8e69c9fe4b8bbe58a9b2c20352d313020e4b8aa290a20202d20e585ace5bc80206f6e626f61726420e6b581e7a88b2c206f70657261746f7220e8baabe4bbbd204b5943202f2072657075746174696f6e206c6f636b0a20202d20e4b88de694b6207374616b652c20e4bd86e58f91e78eb0e4bd9ce681b6204b414e657420e4b8bbe58aa8e7a7bbe999a40a20202d2073616d706c696e6720e69d83e9878de8b5b7e6ada5203930250a0a54696572203220e28094205374616b652d626f6e646564206f70656e20726567697374727920283d20646179203120e5908ce6ada5e5bc80e694be290a20202d20e4bbbbe4bd95e4babae99481204e204b415320e6b3a8e5868ce4b8ba206f7261636c6520283d204e20e698afe58f8de5a5b3e5b7abe997a8e6a79b290a20202d20e4bd9ce681b620e2869220626f6e6420e7bd9ae6b2a12028736c6173682920e2869220e887aae58aa8e587ba20706f6f6c0a20202d2073616d706c696e6720e69d83e9878de8b5b7e6ada5203130250a0ae69d83e9878de6b890e58f983a0a20202d20e58d8fe8aeaee5b182e7a1ace7bc96e7a0812028626c6f636b20686569676874202f20e697b6e997b4292054696572203120e69d83e9878de98090e69c88e8a1b0e5878f0a20202d20e4b88de698afe6b2bbe79086e68a95e7a5a8e58fafe8b0832c20e4b88de698afe6898be58aa8e5bc80e585b32c20e698afe695b0e5ada6e585ace5bc8f0a20202d20e79baee6a0873a2031322d313820e4b8aae69c88e5908e2054696572203120e69d83e9878d20e2869220300a6060600a0a2323232033205b2e2e2e5d