张慧宁留下的文件没有密码栏。
陈序点开它,屏幕只显示一块灰色方格。没有“输入密码”,没有错误次数,也没有文件格式。四点五兆资料像一扇嵌进墙里的门,连锁孔都被藏住。
建立时间仍停在两天前。那时张慧宁已经从住址、工作档案和儿子的紧急联系人里消失。
阿米尔躺在检查床上,看了几次那个名字。“她是谁?”
“这部手机原本的主人?”护士问。
“不是。”陈序说,“这部手机一直是他的。”
护士没有继续问。她替阿米尔换好固定带,又提醒他们十分钟后必须离开观察区。她走出门时,推车轮子在同一块地砖上响了两次,中间隔着不自然的半秒。
林未央看向走廊。第三张照片里出现过的女人没有回来。
陈序先复制文件。手机拒绝把它发送到附近设备,理由是来源订单已失效。接上数据线,电脑只能看见外送程序占用四点七兆,却看不见那个四点五兆资料包。
它不是普通隐藏文件。它被包在一项已经不存在的订单关系里。只有程序承认那宗订单时,资料才存在。
“把时间调回五点四十二分?”林未央问。
“装置时间会变,服务器关系不会。”
“那就不要碰时间。碰关系。”
她把阿米尔的手机放回床边,重新打开已完成订单。页面写着他主动接受绕行。林未央按下“对此路线提出异议”。程序要求选择受影响对象。列表里只有阿米尔。
陈序取出黑色腕带。它已经停止显示百分之一百,屏幕只剩体验编号。两项记录共享同一串决策序列,中间都有一个5。
他把体验编号填进受影响对象栏。
页面没有说编号无效。它停了五秒,随后多出一个没有文字的选项。
林未央按下去。
灰色方格裂开一条细线。
不是解密。文件仍然无法读取,但储存页面第一次显示出内部结构:九个资料段,八段有编号,中间一段只有5。每段大小不同,排列顺序却不是一至九,而是四、九、二、三、5、七、八、一、六。
陈序把次序抄下。数字与无名公寓电梯里的位置相同。九个位置,不是九层。
屏幕右上角跳出一则新通知。
发件人:0。
内容只有一句:不要上传完整文件。天衡会在第五个资料块认出它。
通知没有经过外送程序。阿米尔的手机仍在飞行模式。
陈序查看接收路径。空白。通知出现后,没有写入系统消息记录,锁屏上却留下一个红点。
“张慧宁?”林未央问。
“她如果能直接解开,不需要把文件交给我们。”
第二则通知出现。
把第5段前后的各三十二位发给我。不要发姓名,不要发装置编号。
这一次末尾多了一个字母:G。
陈序没有照做。他先让林未央拍下通知,再把文件的九段大小逐一写在纸上。中间段最小,只有五十二字节,像一枚连接两边的标签。
“他知道文件结构。”林未央说。
“也知道天衡怎样识别它。”
“所以可能是陷阱。”
十分钟到了。护士回来时,手机屏幕自动暗下。等她离开,陈序发现灰色方格已经恢复完整,九段结构不再显示。只有纸上还保留那组次序。
阿米尔用右手撑起身体。“文件你们可以拿走吗?”
“拿不走。”陈序说。
“那我关机?”
陈序看着他固定起来的左腕。这个人已经因为自己的安全路线骨折。让他继续带着一份天衡会寻找的文件,不是保护证人,是把第二次风险留在同一个低权重节点上。
“手机暂时给我。”陈序说,“我会赔你一部,也会把今晚不能接单的收入补给你。”
“你有钱?”
“没有很多。”
阿米尔把解锁码写在医药收据背面。“那你不要忘记。”
陈序没有说系统会记得。他把收据折好,放进黑纸本。
他们离开急诊点,在对街一间二十四小时洗衣店坐下。滚筒机把湿衣服反复抬起、摔落。每转一圈,玻璃门里的倒影便慢一点,像那一秒还没有决定要跟上哪个人。
陈序使用店内投币终端,把第五段前后的字符手工输入一则匿名文字贴。没有文件、姓名或装置编号。按下发布前,他把内容读给林未央听。
“如果对方用这段定位文件呢?”她问。
“可以定位到一项已经碰过我的决策。”
“也就是定位到你。”
“他在通知里已经叫我收件人。”
陈序按下发布。
匿名贴存在了十一秒。第十二秒,页面显示内容违反基础设施资料政策,自动删除。
打印机却在身后启动。
没有人投币。机器吐出一张薄纸,上面只有九行字符。每一行都缺一部分,缺口的位置连起来,刚好是一条5的形状。
最下面写着:你们发来的不是密钥,是门轴。
林未央把纸从出口抽走。纸还是温的。
第三则通知落到阿米尔手机上。
现在把第1、6、8段各取第五组。其余不要动。
他们照次序抄出字符。每输入一组,文件中的一个资料段便短暂变成可读文字,随后重新锁上。林未央用相机连拍,陈序在纸上记录。两种记录都不完整,却留下不同的缺口。
第一段是一张天衡内部事件表。
主事件:工程车制动失效。预测伤者:二十二。保护等级:城市示范。
承接分配:七个区域,三十六个低权重节点。
结果不是把二十二个人换成另外二十二个人受伤。多数节点只收到很小的偏移:一条巷子积水提早二十分钟,一座旧楼电压升高,一辆救护车晚到两分钟,一名骑手被改道四百八十米。每一项单独看都像日常误差。
叠在同一段时间里,它们才拥有一场事故的形状。
第二个解开的资料段没有天衡标志。页首是张慧宁的私人注释。
她把这种现象叫作“回波”。
强行推高一条路径的成功率,不会凭空删除其他可能。系统必须让城市仍然连贯,于是被压住的压力沿着关系较弱、注意力较低的地方返回。它不是惩罚,也不是一命换一命。它更像人在封住一扇漏水的门后,看见水从七道较细的墙缝渗出来。
陈序想起发布会上的掌声。所有人都看见主路的门被关上。没有人看见北侧七个地点同时变湿。
屏幕上,第三个资料段亮起。它只有一张结构图。
源事件在左,承接节点在右。两者之间没有箭头,只有一个放大的5。
5下方的天衡内部名称是:转位阀。
“它不是风险类型。”林未央说。
“也不是结果。”
它承接前一段事件,把影响送入下一层关系。天衡不需要指定某个人受伤,只需不断插入5,把压力从高可见区域转往较低权重的人、地点或时间。一次转移不足以隐藏事故,就再转一次。
陈序在三十六个节点序列里找出十一个5。它们出现的位置不同,作用却一致:前一段的风险到这里不再继续原路,而是换一个对象。
节点表没有完整姓名,只有被缩短的身份尾码。陈序仍从时间和地点认出其中几项。学校站牌的行人灯在五点十二分提前结束,两个孩子被老师拉回路边;无名公寓的旧电梯停了七分钟,一名需要定时服药的老妇错过巴士;北环线一处排水泵延迟启动,积水尚未漫进车道。
没有一项足以登上新闻。甚至没有一项能够单独证明与工程车有关。它们有的落在人身上,有的落在时间里,有的只把一次原本不会发生的选择推近半步。
林未央把三十六个节点按时间重新排开。最早一项发生在天衡修改巴士路线之前十二秒,最后一项则预计在晚上九点后才出现。回波不是事故发生后的反弹。系统在决定主路径必须安全的那一刻,便开始为压力寻找出口。
“如果我们阻止其中一个呢?”她问。
陈序看着表里仍未发生的灰色节点。“那只能证明人可以改变自己的那一段。不能保证压力不会再被转走。”
“所以救一个人,也可能把它送给下一个?”
“如果我们仍让系统替所有人选择,可能会。”
这是文件里最不舒服的部分。答案不是停止救人,而是每救一个人,都必须知道自己关上的门通往哪里。
0负责让关系暂时看不见。
5负责让关系去到别处。
天衡把两者写进看似普通的订单号、路线编号和事件缓存,使转移成为资料清理的一部分。屏幕上没有任何人需要决定谁应该承担。决定已经藏在排序里。
“这能证明他们故意伤害阿米尔吗?”林未央问。
“不能。”陈序说,“它证明他们设计了一套知道压力会转移的系统。”
“差别在哪里?”
“法律上很大。对阿米尔没有。”
匿名发件人沉默了四分钟。洗衣机进入脱水,整排机身同时轻颤。陈序把已解开的内容分成三份:林未央保留照片,他留纸本,阿米尔手机只保留仍加密的原文件。
第四则通知终于出现。
张慧宁只解到这里。后面不是密码问题,是有人把第五段的关系拿走了。
陈序回复:你是谁?
对方先发来一组天衡旧员工编号,又立刻撤回。陈序只看清前四位。林未央已经写下。
编号属于早期模型部门。员工状态:离职。姓名栏在他们查询时空了三次,第四次才稳定成两个字。
顾烬。
前天衡模型工程师。离职原因没有记录。其参与项目列表中,“景门筛选”只存在不到一秒,随后页面提示从未有过这个项目。
顾烬发来地址。茨场旧街,一间咖啡店,晚上七点四十分。
附言:不要走推荐路线。不要同时到。先到的人点两杯黑咖啡。
“他为什么不直接把剩下部分解开?”林未央问。
“也许他不能。”
“或不想让我们在见到他以前知道。”
他们分开离开洗衣店。林未央先走,没有手机导航;陈序晚七分钟,沿巴士站牌背面手写的巷道名称前进。雨停了,店屋檐口仍不断滴水。傍晚人群把旧街切成许多移动的小路,每一条都比地图建议的路线慢。
七点三十七分,陈序抵达咖啡店。
林未央还没到。最里面的四人桌上却已经放着两杯黑咖啡。一杯完整,另一杯少了一口。杯旁没有手机、纸张或糖包。椅背挂着一滴尚未滑落的雨水。
陈序没有坐。他问柜台是谁点的。店员看向桌面,皱了皱眉。
“没有人。那边今晚一直空着。”
“咖啡是谁送过去的?”
店员低头查订单。屏幕显示七点三十五分完成,取餐人姓名为空,付款方式为空。下一秒,那一行从记录里消失。
林未央在七点四十分进门。她先看陈序,再看两只杯子。
少了一口的那杯仍在冒热气。
阿米尔的手机同时收到顾烬最后一则通知。
我到了。
第二行隔了三秒才出现。
刚才还在。
正在读取留言…