舊截圖右下角缺了一塊。
不是裁切。原文件從損壞存儲盤裡恢復時,有一段數據已經無法讀取,灰白色條紋從畫面邊緣伸進來,剛好蓋住選手姓名的最後一個字。
唐梨沒有用修復工具把它補齊。
缺失就是原件的一部分。用相鄰像素猜回姓名,哪怕猜得對,也會把一項可以說明的損壞變成一次人為修改。
「這張圖屬於唐嶼。」她說,「三年前,他被永久禁賽前那場比賽。」
投影上的賽事不是冠軍賽,只是一場全國晉級資格賽。唐嶼所在的隊伍在第二次協議上傳前落後,選手端突然出現連續六次相同的交互輸入,間隔低於設備允許閾值。完整性系統將它判成自動化輸入,比賽當場暫停。
六次輸入指向同一枚脈衝。伺服器只接受了第一次,後五次被判無效,唐嶼卻借第一次交互搶在對手前完成資源拾取,隊伍隨後拿到第二上傳。異常沒有替他完成操作,卻確實發生在足以改變局面的時刻。
公開錄像能證明拾取和賽果,設備日誌能證明六次輸入。兩份材料都不能單獨回答,第一下是唐嶼正常按鍵,還是整串自動指令的一部分。
唐嶼沒有否認數據出現。
他的註冊適配器經過私人維修,控制板序列與賽季初登記不一致,也沒有補做完整認證。賽後檢測無法排除宏指令,異常輸入又發生在資源爭奪窗口,足以影響場上位置。
維修本身不違反規則,未經補充登記使用才違反。唐嶼承認自己為了趕註冊窗口沿用了舊設備證書,也承認沒有把控制板更換寫進賽前申報。即使宏指令最後不能成立,這兩項設備責任也不會消失。
處分決定把三項事實接成一條因果:設備未經完整登記,設備產生非人類輸入,選手使用設備獲取比賽優勢。
「他有沒有使用自動化?」秦越問。
「他說沒有。」唐梨回答,「我沒有能獨立證明他這句話的設備原件。」
她沒有把哥哥的否認當成第四項事實。
當年的適配器由賽事方鏡像後歸還俱樂部。俱樂部在禁賽後解散,設備隨倉庫搬遷受潮,控制板與本地存儲都損壞了。唐嶼後來恢復出部分文件,只剩截圖、校時回執和一段不完整輸入日誌,無法重新做同條件硬體檢測。
因此不能把「設備後來壞了」寫成有人毀掉證據。它同樣可能只是一個解散俱樂部沒有妥善保管舊物的後果。
這也是舊案一直沒有重新進入聽證的原因。
「永久禁賽依據里有主觀作弊嗎?」周硯問。
「決定書寫的是多項設備違規疊加、異常直接影響比賽,以及拒絕提交完整維修來源。」
「他為什麼不交?」
「維修板來自一名退役設備員,裡面混著其他客戶的控制參數。唐嶼不願把整塊存儲交出去,只同意提交自己的分區。紀律部認為無法驗證分區是否完整。」
這不是一句能讓雙方都清白的解釋。唐嶼保護了其他人的資料,也讓自己的設備來源無法完整核驗;聯盟不能因為他聲稱有客戶隱私就忽略缺失,唐嶼也不能因為拒絕全盤提交就被默認承認宏指令。
最後承擔全部不確定性的,是他的職業資格。
唐梨把截圖的時間欄放大。
黃色完整性任務創建於暫停前二十七秒。
異常輸入首次出現在二十七秒之後。兩項時間都顯示在同一張選手端故障記錄里,旁邊還有當場設備時鐘與賽務標準鐘的校準回執。
「他當時就提過任務早於輸入。」唐梨說,「調查答覆是任務可能預建,只有檢測到異常後才綁定具體設備。」
十八歲的唐梨在旁聽席上把這句話抄了三遍。她第一次問的是「既然可能預建,為什麼任務里已經有哥哥的設備號」,得到的答覆是設備號可能在導出時補寫;第二次問補寫有沒有更新時間,調查人員說不屬於選手可見欄位。
更新不易,記得分享101看書網
第三次,她沒能開口。主持人轉去詢問私人維修來源,整個聽證從時間順序變成唐嶼為什麼保留一塊混有客戶數據的舊控制板。
問題沒有被回答,也沒有被判定不存在。它只是被一項更容易成立的設備違規排到了後面。
「綁定時間呢?」顧沉舟問。
「沒有開放。後來設備壞了,俱樂部也沒保住伺服器申請回執。」
如今他們面對的回答幾乎相同。顧沉舟的十四秒可以被解釋為任務預建,十一分鐘可以被解釋為席位預分配;只要原始隊列不開放,所有提前出現的欄位都能被放進另一個尚未驗證的流程。
相似不等於同一機制。
唐梨先把這一句寫進會議記錄,才繼續講私人資料。
舊截圖不是從聯盟檔案取得,而是唐嶼自己的損壞存儲盤。恢復過程由他完成,沒有獨立第三方在場。文件封裝時間、壞塊分布和紙質校時回執可以相互對照,卻不能排除他在設備損壞前修改過內容。
唐嶼給妹妹存儲片時,只授權她「留著核時間」,沒有同意公開姓名,也沒有同意把整個維修盤交給任何俱樂部。他當時說,若有一天出現第二張同樣提前的任務,先查兩份東西是否真的來自同一條鏈,別把相似當成答案。
更麻煩的是,存儲盤裡還有他禁賽後替人恢復設備的工作目錄。客戶包括退役選手、場館外包商和普通玩家。有些人只授權修復,沒有授權把設備編號交給職業聯盟。
若曜石提交整盤鏡像,其他人的資料會一起進入調查;若只提交截圖分區,聯盟可能重複唐嶼當年的質疑:誰能證明他沒有挑選有利部分?
「所以我一直只留副本,不把它接進戰隊檔案。」唐梨說,「我有哥哥允許保管的權限,沒有代替所有客戶公開的權限。」
許燃問:「唐嶼知道你今天要給我們看?」
唐梨停了一下:「不知道。」
會議室里沒有人立刻接話。
「我遮了姓名和客戶欄位,使用離線投影,沒有複製。」她說,「這些限制能降低風險,不能替代他的同意。今天展示到任務編號已經越過了我原來承諾的範圍。」
許燃問:「你準備怎麼告訴他?」
「先說我做了什麼,再說為什麼。不能先問他願不願意幫曜石,等他說願意以後才告訴他我已經把圖放出來。」
「他如果不同意呢?」
「關閉舊圖,只保留今天已經形成的訪問記錄。你們知道存在同類材料,但不能再用內容。」
已經發生的越界不會因為撤回投影消失。唐梨能做的是停止擴大,而不是把停止包裝成從未發生。
承認這句話,比解釋自己為什麼隱瞞截圖更難。前一項選擇至少還能說成保護哥哥;現在她為了讓全隊理解十四秒,將哥哥沒有授權的舊圖擺在了桌上。
周硯問:「需要現在關閉嗎?」
選擇權第一次被明確交還給她。
唐梨看著右下角那段缺失。她可以立刻關掉,已經說出口的內容不會消失;也可以繼續,讓林知微只核不涉及私人正文的編號欄位。
「保留任務編號頁。」她說,「其他頁面關閉。會後我聯繫唐嶼,告訴他我已經展示到哪裡,由他決定是否繼續授權。」
林知微照做。她沒有趁畫面還開著多讀取一個欄位,只將兩張截圖上公開可見的任務編號抄入離線比較表。
韓岑把媒體發布文件夾從共享屏幕關閉:「在授權前,不對外提第二起舊案。也不拿『還有其他受害者』當施壓口徑。」
許燃說:「能不能先說,如果是真的,我們幫他翻案?」
沒人回答這句最快的承諾。
許燃自己先改口:「當我沒說。先問他願不願意把案子交進來。」
唐梨沒有因為這句收回而失望。把「我們一定幫你」留在嘴邊很容易,承擔一次舊案重查可能帶來的設備問詢、客戶投訴和第二次輿論定罪,才是真正需要全隊表決的部分。
顧沉舟看著唐梨:「我不能答應替唐嶼翻案。我連顧臨川的案子都還沒有查完。」
話很直,唐梨反而鬆了一點。
「我能答應的是,」顧沉舟繼續說,「如果使用這份材料,就同時寫明設備損壞、維修來源不完整、私人客戶資料和他未授權公開的風險。不能只拿提前二十七秒。」
「也不能因為這些風險不利,就假裝時間沒有提前。」唐梨說。
「對。」
秦越問:「誰決定登記姓名?」
「唐嶼。」唐梨回答。
「誰決定隊伍要不要承擔調查風險?」
「全隊。但在他同意以前,只登記存在一份來源受限的同類材料,不登記姓名。」
周硯把這兩層寫成不同權限。第一層由唐梨作為持有人登記:舊案時間截圖一份、原設備損壞、授權範圍待確認。第二層只有在唐嶼明確同意後才會生成:姓名、處分編號、維修來源與可提交副本。
顧沉舟在登記表後加上反證項:唐嶼承認適配器未補登記;異常輸入確實被伺服器記錄;原硬體已無法複測。以後若隊伍使用二十七秒截圖,這三項不能從摘要里消失。
「你不用因為和顧臨川的案子像,就把兩份都背在自己身上。」唐梨說。
「我沒有背。」顧沉舟回答,「我是在防止我們只挑像的部分。」
沒有人以多數票越過第二層。
林知微已經完成第一輪編號對照。
兩張任務號的日期、賽事和設備段都不同,末尾校驗位也不同。只有中間一段隊列欄位完全一致。她沒有憑格式猜含義,而是調出星聯公開的舊版接口兼容表,逐項核對欄位位置。
兼容表只能解釋編號結構,不包含任何選手數據。林知微先用兩份公開示例確認中段確實代表入口隊列,再讓唐梨覆核抄錄字符。她沒有調用紫色診斷層,也沒有使用那套暫不公開的離線參考庫。
「這個欄位代表完整性任務進入的審核隊列。」她說。
唐梨問:「相同隊列能證明什麼?」
「能證明兩項任務至少經過同一類舊審核入口。不能證明同一人創建,不能證明提前時間來自同一錯誤,也不能證明任務內容相同。」
「現在還在用嗎?」
林知微把兼容表向下翻。對應隊列的狀態在兩年前版本更新時改為停止接收新任務,舊記錄只保留查詢與遷移功能。
當前這場的任務明明是新生成的,編號卻仍引用那段隊列欄位。可能是歷史記錄遷移保留了原編號,可能是某個舊檢查流程仍在後台調用,也可能只是接口把來源隊列與當前處理隊列寫在一起。
停止接收新任務,不等於隊列數據被刪除。舊任務可以遷移,歷史模板可以被新系統引用,兼容接口也可能繼續沿用欄位。隊列狀態本身不能證明有人故意重啟一套被廢棄的判罰流程。
答案仍需要原始任務鏈。
可唐梨第一次有了一項不依賴哥哥口頭解釋的交叉點。相隔三年的兩張截圖,設備不同、比賽不同、持有人不同,編號中段卻指向同一個已經退出新任務流程的入口。
林知微將兩行編號並排鎖定,保留全部限制說明。
「它們來自同一條已經停用的完整性審核隊列。」