Guest User

Untitled

a guest
Feb 15th, 2017
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.             loadAssets(["i/g/icon_shop.svg", "i/g/coin.svg", "i/g/s/icon_frvr.svg", "i/g/crown.svg", "i/g/icon_share.svg", "i/g/finger.svg", "i/g/s/sidebar.svg", "i/g/glow.svg", "i/g/icon_sound.svg", "i/g/helper.svg", "i/g/s/icon_tumblr.svg", "i/g/icon_credits.svg", "i/g/s/sliderslider.svg", "i/g/icon_download.svg", "i/g/shopbtn.svg", "i/g/icon_feedback.svg", "i/g/s/icon_facebook.svg", "i/g/icon_frvr.svg", "i/g/s/icon_gplus.svg", "i/g/icon_legal.svg", "i/g/s/menutile.svg", "i/g/icon_music.svg", "i/g/s/sliderbg.svg", "i/g/icon_new.svg", "i/g/star.svg", "i/g/tile.svg", "i/g/btnoutline.png", "i/g/shadow.png"], ["6nml5l5l5l5onm///////////l/o", "ywt88Fn2ot88Fn2o69pEnmlllqoPt88F9nm///////////l/qoP", "yw9pEnmllllllllllllllllllllllllqP", "6nmllllllon2on2on2o", "yw9pEnmlllllP6nmlllllllllo", "t88888888Fnm2lllot88Fnml2lll2lo6nm////o6nm2/2o", "yw9pEnm/l/l/l/lqP6n2o6nm/l/l/l/lot88Fnmlllo", "D888Fnm////////////////////o", "yw6nm///////////////q9opEnm//P9nm//P9nm//P", "ywt88Fnm/l/l/l/l/l/lo6n2on2q9opEnm//Pnm////onm////o", "6nm///////ll//////lllll///////l/lmo", "yw6nmlllmlllmlllmlllmlllmlllmlllmlllmlllmlllmlllo9pEnmlllllllllllllllllllllllqP", "ywt88F9t88GEnm/l/l/l/lqoP", "yw9pEnm///////l///P6nmlllllllllllllo", "D88Fnm////m////ot88Fnm////m////ot88Fnm////ml/llllo6nmll/lllo", "yw9pEnm//ll///qP6nm////mllllonml////l////llm////o", "6nml/l/llllll//ll/llllll/l/o", "yw9pEnmllllllllllllllllllllllllqP", "fnnml/l/l/lC6nm////l////////m//m////mo6rfnnmlllC6nmllllllllllllmor", "yw9pEn2qP6nml////l////llm////o", "6nm2l2l2l2lm2l2l2l2lm2l2l2l2lm2l2l2l2lm2l2l2l2lm2l2l2l2lm2l2l2l2lonm2l2l2l2lo", "6nm//////////////////o", "ywt88888F9pEnm/l/l/l/lqoPp9nmlPp9nmlPp9nmlPp9nmlP", "yw9pEn2qP9nmlP9nmlP", "yw69pEnmlllllllllqoP69nmlllllllllqoP", "ywt88Fnm//////////////////////////////o6fnnm//////////////////////////////q9CpEnmP9nmP9nmP9nmP9nmP9nmP9nmP4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllor6nm//////////////////////////////o6fnnm//////////////////////////////qCp9EnmP9nmP9nmP9nmP9nmP9nmP9nmP4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllo4t88FfnmlllCfAnml5l5l5l5orrbnmllllor"], ["(y(y~<><><>hulS@lSTmS@lSTmS@lSTmS@lSTm(tSTm(tSTm(thul(thul(thul(thulS@lhulS@lhulS@lUZmK+lUZmZ#lMVmV&l(rV&lnRmV&lfNm@+lfNm@+lfNm@+lDJmV&lMHmV&lTFmW&l+Am@+l+Am@+l+Am@+lo.lU&ly-lV&l5&lW&lZ/l@+lZ/l@+lZ/l@+lj7lS&l25lV&l/3lZ&ljzl@+ljzl@+ljzl@+lMvld&lXtlV&l0rlP&lfolf#lfolK+lfolc5l!zl&ul!zl&ulqNm&ulqNm&ulUZmZ5lUZmK+l", ")M)M(yyll(yyTn__<>)$_Gml~_)$)L_Gml(y(yAcm_dtl~(y(H(y)F_~<<<$),~~<2<V(k(y(y(r_dtl~~<;<>)9(K~)0)K(5dply;lKlmA8mKlmA8m46my;l46mZdm!,lZdmoVmUll~<><><>~~<><>)^(KC&mEPmC&mGTm!9moVmp7moVmV5moVmG0mERmG0mERmG0mERmsumoVmQsmoVm9pmoVmTkmERmTkmERmTkmERm7emnVmfcmoVmCamoVmiUmERmiUmERmiUmERmrPmkVmbNmoVmALmsVmlFmERmlFmERmlFmERmGAmyVm2:loVm2,lfVms$lNTms$lEPms$lEJm(h/,l(h/,lT0m/,lT0m#,lA&mAJmA&mEPm", "(y(y(K~<><><>(C3Tm.7liVm:6lVXmC/lpXmO*lFamd*l2Ym!;l1Vm8FmxMm&MmBEmVMm@&l+EmV+lgImK1ldMmJrlqJmvnl1:l3ol1:lnrlr+l.vl$/l3yl/+lf6lq/lM/lG$lI$l!-lcEmG6lUNm33l#Nmn7l3Tm.7l", "(,(y~<><><>Uxm/3lUZmvAmtImrslC&l#Am.ql53l(M(y(6(yxrlm2lxrl_dtl~xwmm2lxrl_dtl~xIm/rlxrl_dtl~", "(y(y(K~<><><>(EuAmG5lZRmG5lZRmHamZwlHamZwlG5lV!lG5l~<><><>fEmdulC,l_w8ldulh/lOxlS&ldtlS&lHEm8:lHEm8:ldtluBmOxlfEmdul", "[<>0.Uv&;qnzrkYp__<;){)p_Ell_<;){)pGllYll_<;){)pillsll_<;){)p6ll+ll_<;){)pCmlEml_<;){)pOmlQml_<;){)pWml~~<;){)pw:nI7l)NGWn,KnkjlYfl~exuEksjvuVos8GwGrpw.u4,qRQs-sp______~~___mtumss.mmN&oUTnAVnUUn(Cmjl_8Kwvip8GwGrpr:nG7lGWnZWn,KnjjlZfl~exuEks~<;<u<fooo-9m#loOsmPqnk/liJnk/l2zmk/lK9lb8njHm)68cm;bo4snqsoY5nGno*-nrhoRroyEnpoo-9m~<7<7<7Irn:/n8soG!nymm+gl-fl~jAojVo4qoXEnqooK+mGto,/n@mm/il9gl~", "=d(!(K~<)<)<)(DyXn*GmyXnKcmjGnZtmS8mZtm6DmZtmp5lZtmZolKcmZol*GmZolhCmZolQ4lp5lAnl6DmAnlS8mAnljGnAnlyXnQ4lyXnhCmyXn*Gm~<><><>/&nD@lc;l_dtl~~()<q)M=D*Em=DKam8Aq(9r2p(9I;o(9$zo(9)>Kam)>*Em)>hAm)>Q2l$zo_I;o_r2p_8Aq_=DQ2l=DhAm=D*Em=Dy1l=dy1l______~____oll=D_=d_=d(Z=D(Z", ")<)<y@mw.m_y@mw.mN.m__<)<+(hGmlBml_<.<.<PGml~_<><><>_SXovVmSXovVmD,nxsmd:nr7m2@nm@m9hoIOn9hoIOn9hoIOnv:n7Rn4#nRfn#6nzsn0Co-@n0Co-@n0Co-@nYunZ3n!gnN+ncTnB-n6Qn+eo6Qn+eo6Qn+eoqDnz.nx/mW-n3wm*$nZYmDUoZYmDUoZYmDUo+fmu7nNVm*wnmKmQmnIzlxunIzlxunIzlxunIEmrXn6BmwInh@l2*moolN2moolN2moolN2mTCmL0mKJm1mmCQmTZmx.lb*lx.lb*lx.lb*lsbm$MmEpmDGmo2mQ@lq5mhllq5mhllq5mhllE:m7.l;LnN@l&anqBmBynSwlBynSwlBynSwlHpnaJm5znDUmg+n4emSXovVmSXovVm", "(y(y~<><><>-:l1.l-:l*Cm.:lIJm&:lXPm&:lTQmS;l6Rms.l:Rmu,lFSmt-l/Rm,*lRRmA$lpOmV/luLmj8l8Imu5l.Fmu5l.Fmv1l.FmQzl.Fm6wlDGm(H@Fmirl*Fmaql.EmVqlTCmPqlE;lPql/*lVqlw!l(ET+ljrlI9l5tlC9lwwl-8lnzlE9ld2lE9lu5lE9lu5lE9lF8lt6lq+lI4lD#lq1lo&lEzlM*lgyl2*l0xlg-lPxl!,lQwl*:lbxl*:lJzl,:l@5l-:l!!l-:l1.l(K~<><><>(DGQmszlGQmszlMWmB+lMWm1.lMWmzGmGQm:RmGQm:Rm(KBKmT6lBKmT6lMOma#lMOm..lMOm4DmBKmgLmBKmgLm(KwDm6/lwDm6/lMGmG*lMGmI:lMGmSBmwDm*FmwDm*Fm", ")0)&z7lS-lvznN9nSll~)*<5<GJml~(,)z)FY&mbPo;8mCTosymBToSsmaPo$xlOynorlmun(BmlnYmlNenRmlCZmQml0Rmfrl0Im5xlCFm@rmEolZymdkl28mdklF&mFolh9nRFm6&n&Im;:n*Rm@:nSZmG;ndenH;n2ln&&n2unp9ndynY&mbPo~(z(z(z/qmm5mNul_dtl~NVnm5mNul_dtl~(K~(z(z(z(F(#)I(#)I(#)Y(>)Y)G)Y)G)I)G)I(#ANnnymANnB0m&NnB0m)IB0mIQnnymARn(#ARn+umARnZtmIQnZtm)IZtm&Nn+umANn(#ANn)GANnOOnANnzPn&NnzPn)IzPnIQnOOnARn)GARnlKnARnAJnIQnAJn)IAJn&NnlKnANn)GANn", "(y(y~<><><>6NmtUm6Nm&Um0NmDVmgNmMVmDJmUXmiEmWYms@lEYms.l*Xm2*lYXmF$l/Vm-!lOVm&/ldUm:+lhTmW9l7Rmj8l5PmV8lhNmQ8lbMmL8lWLmL8lQKmK8l-DmL8lv:lL8l(WL8lz#l:1lz#l.1lm#l,1lb#l,1lQ#l,1l9+l,1lf8l,1lA6l,1l35l@1lt5lU2ll5lP8lf3l0/lQzl;!lJtlE#lzslL#lTslR#l9rlW#lcrlb#l,qlg#lkqlh;lkqlh;l64l#Lm64l#Lmz#lm;lz#lj;l+#li;l,#li;lE$lj;ld.lh;l2Bmk;lEHml;lRImu;ldJm3;lpKm&;l,Lmv@l@Mm+Am2NmsCm8OmnEmCPmnGm+Om;ImsOmOLm0NmTNmgMmeNmZMmpNmSMm5NmJMm5NmmMm5NmPPm4Nm*Rm6NmtUm6NmtUm6NmtUm", "(y(y~<><><>Grl#*lfWm#*lfWms.lGrls.lGrlXEmfWmXEmfWmEHmGrlEHmGrl;OmfWm;OmfWm2RmGrl2RmGrlo/lXImo/lXImT$lGrlT$lhOmo/ldWmo/ldWmT$ldOmT$lGrlP@l#wlP@l#wl-BmGrl-Bm;2lP@ldWmP@ldWm-Bm;2l-BmGrlwJm6*lwJm6*ldMmGrldMm#@lwJmfWmwJmfWmdMm#@ldMmoMmXUmfWmXUmfWmEXmoMmEXmGrlXUmfGmXUmfGmEXmIrlEXm(K~<><><>AmlWImYtlLJm/slEKm/ulNKmdxlfLmjxl4KmM0lVJmr3l+EmE7lsAm46lN,lL3ld&l$4l#+l$6l,5ll5lR4l(L64l(LL6lyulY8lZvlx9l8uld#lNvl0&lfwlK-lUyl(djslGFmZrlZFmPtl", "=U)I)0(H)0BDn_~)U<!)e~~(:<t(^(K)0(G)0aEn_~(2)-(9~~(2)x(9(C=KK.m=K$@mZYq(}uUq(}3zl(}Bwl(}(G$@m(GK.m(GL1l(GdxlBwl(H3zl(HuUq(HZYq(H=Kdxl=KL1l=KK.m", "(y(y(K~<><><>(Ce+lNHme+lNHmi0lNHm0vlNHmaslNHmbolJDmbol*,lbolz/l6wl(S6wl(S6wl(Sqvla1l/3la1l/3la1ld9l*0ld9lX4ld9l@6li8lYtlmAmYtlqPmYtlqPmt4lqPmt4lqPmX+lqPmX+l!Zmh/l!Zmp:l!ZmxGm1TmEHmVQmNHmiNmWHm;EmNHm;EmNHm~<><><>QCmqOmeAm3Mme:l3Pme:lc*l+-lc*l+-l3Pm+$l3Mm(VqOmV-l/SmV-l!SmI.l(s,:l!Sm,:l!SmQCmqOm", ")o)obxmQwm_bxmQwmGqmRml~___Yml_____&2nhwm72njRnYQn90nMxm90nCGm90ntrlNSn8rlGxm@rljFm(f(FZxm(FMSn(F)mrEm&2nlwm:wmyxlqImoxl0yl;GmlylMvmWylhNnUImLvn*wmRvnNOnWvnuvnSOn*vnIxmRwnOImGPn+xl.wmyxl;Lnqmn(lp5l_~(k(k(kYml~)y)y)y)jhwm#ynUPnZOn/wnVxm/wnXIm/wn4vl*Pn,vlExmJwlpHm4FmsvljxmsvlIQnsvlIzn0Gm)jiwmGxmb1l2KmQ1lj2lCJmW2lQvmI2lfLnhKmnrnCxmprnWMnxrnGsnQMnbsnGxmvsnTKmKNnp1lIxmf1l6Lm*7l#Jnlkn_~<><><>Yml~<I<I<IXwm8xlLOn,xlGvnGIm6un2wmkunrNnTNnfunUwmZun*HmUunMyl0Onbyl2wmpyl8ImPImyxlWwm8xlr!mq.l4Mmfxm*dmU$mpvmpInI#m9ZnI#m4.mIpmEwmq!mRbmq!mq.l~___$!mq.l$!mPbmfpmCwmSym44m.5mb!mf#m2.mf#m9ZnENmjxm!!mu.l", "(y(y(K~<><><>(D9Ym2!l9YmsCmfLmANm#-lANmv*lANme&l.MmO$l+Mmd3l1Wmb3lHKmMulJGm,nll;l,nl2!l,nl#zlZ1lhpl#-lhplfLmhpl9Ym#zl9Ym2!l~<><><>27l4Am27lX@l28lU;lG+lU;ln/lU;lh!lX@lh!l4Amh!lLCmn/lRDmG+lRDmz8lRDm27lLCm27l4Am28lC,lM8l+ylA!l+ylh/lC,l28lC,lY:lL,lS:lI-lA:l.$l2:ls!l2@lO+lnBmF8lnCmm6lnCm14lnCmy2lSBmX1l2;lU1lV:lU1lz,l41lz-lm2l2*l@zlD,lCzlY:ldylh@ldylDEmdylJGmR1lJGmU4lJGm@6ltEm.8lzCmR/l-AmX#lVAmF&leAmI-lhAmL,lY:lL,lh.l4Amh.lU@lh:lR;l/;lR;lSAmR;lPBmU@lPBm4AmPBmLCmVAmRDm8;lRDme:lRDmh.lLCmh.l4Am", "(y(y~<><><>cXm+mlXql+mldol+ml/mldol/mlXql/mlbXm/mlVZmdol/amXql/aml:l/aml:lhCmV!lhCmV!l,&ll:l,&ll:l-8ll:l60ljCmawl2JmawlPNmawlOQmtwlERm2wlERmR5lCMmR5lGImR5lXHmI7lXHm!9lXHm,&l3Qm,&lmPmhCmXHmhCmXHm/amcXm/amWZm/am/amVZm/ambXm/amXql/amdolWZm+mlcXm+ml", "(y(y(K~<><><>(C3Tm.7liVm:6lVXmC/lpXmO*lFamd*l2Ym!;l1Vm8FmxMm&MmBEmVMm@&l+EmV+lgImK1ldMmJrlqJmvnl1:l3ol1:lnrlr+l.vl$/l3yl/+lf6lq/lM/lG$lI$l!-lcEmG6lUNm33l#Nmn7l3Tm.7l", "(y(y6ml@Wm6$l@WmK*l@WmI:l-XmI:lOWmI:l.qlI:l0qlX!l9ql0/l9qlonl9qlVml9ql6ml4rl6ml-sl6ml@Wm~<><><>G,l4CmP*lPAmh#l4;ld/lh.lm8lR*lC!lu#lR$ld/lC.ls6lv,lhxlx!lxtl7#lxtlR*lKulO-lrtlk;lErl/$lErlu7lYqlG1l2rl2ulKtl6plGzldql25lErl6!l.xlh*li4lt&lx3l2,l03lq:l75lVAm0zliAm@ql2Bm.nl/Hm2klWOm*olrTmJvllVmE1lZXmy8l8Wm-#lXTmT.l7PmS@lbImE,l2Cmj5l##lKwl##lAsljtl62ljtl0/ljtl-&l##lj5l##lm$lfPmf/l0Um42lKUm;xl;Rm9slwPmoqlhIm;vl/Em9zlUCmA6lEBm#9l6Dmp#ldGmU-l2Kmm$lfPmm$lfPm~___tFmYtl@amYtl@amlZmtFmlZm~<><><>NSmk1lNSm-sl*Nm-sl*Nmi1lZFmi1lZFm45l&Nm45l&NmV$lMSmV$lMSm45l0am45l0amk1lMSmk1lNSmk1l", "(y(y(K~<><><>(DP,lh,lR$l_dtl~~<><><>T*lXDmM*lECm#&lj@l3*lv.lK.l4*lW;lQ$ll@lZ!ll@lN+ll@l37l::lH6l,-lE6lP*lE6lV$lv6lG#lo7l,/lm4ln#lb3lT*lt2l8,lt2lYBmt2l9DmA6l9Dmx9l9Dm*!l@BmU&lz@lA,lr:ll:l8.lu@l..lECmA:lXDmT*lXDmP&lCKmP&lTIme*lAHmG,lAHm5.lAHm*:lTIm*:lCKm*:l1Lm8.lANmC,lANma*lANmP&l1LmP&lCKm", ")w(u~<><><>(O(K(M(K(C_Inl_(G(M(G(K(CInlPpl_(E(E(G(E(CPplWrl_(M(C(M(E(C*il__(O(K(O(a(M(a(C_Inl_(G(c(G(a(CInlPpl_(E(U(G(U(CPplWrl_(M(S(M(U(C*il__(O(a(O(q(M(q(C_Inl_(G(s(G(q(CInlPpl_(E(k(G(k(CPplWrl_(M(i(M(k(C*il__(O(q(/(K(9(K(C_Inl_(W(M(W(K(CInlPpl_(U(E(W(E(CPplWrl_(9(C(9(E(C*il__(/(K(/(a(9(a(C_Inl_(W(c(W(a(CInlPpl_(U(U(W(U(CPplWrl_(9(S(9(U(C*il__(/(a(/(q(9(q(C_Inl_(W(s(W(q(CInlPpl_(U(k(W(k(CPplWrl_(9(i(9(k(C*il__(/(q,sn/Qm)d8Om9nlEmlLol_T:mKwlU@mPul9nlLolSql_RBnOolUDnPql9nl#hl:jl_*wn&Im#un,Km9nl:jlEml_,sn/Qm*wnMsl#unPul9nl:jlEml_PFn/QmUDn8Om9nlEmlLol_U:m#MmU@m,Km9nlLolSql_:onOol)dPql9nl#hl:jl_*wnMsl", "(y(y~<><><>G/l#mlo;l6ql5Fm:rlQPmgtl5Vmhul+VmWul/Vm+0l$VmY#l(t+Cm8VmYPm0VmAXm4OmtcmNHmibmyDm-am(ddZmt@l1Vmv;lYSm#@lGPmtCmgNmbGmKLmjKmULm0PmCJm0PmoFmIQmX@l7Pms-l0Pmb*lbPm9$l@MmN$l/FmV!lp;l:+ld#lQ9ld#l!*lo#lBBmb#lNImM#lLQm75l0Vm:xl;Tm0ulTTmvrlqRmgrlMOmUrlvLmQsl$HmCulsGm4xl.DmY2ltEm37lQCm37le*lz7la4l/7lYul$7lorl37l/ol37l;llQ8l;llt+l#mlG/l#ml", "^,(=ycs(=ycs~_~<><><>Fll~<w<w<wwll~<w<w<wVml~<w<w<w~~)?)?)?(K~(;(;(;(C^,7tl^,4pl3Qz~ENz~Qvl~orl~~4pl~7tl~-5m~:9morl(=Qvl(=ENz(=3Qz(=^,:9m^,-5m^,7tl~)`)`)`(K<[(C<[(<~<;<;<;(K<^(C<^(<~)`)`)`(K?((C?((<~<;<;<;(K?<(C?<(<", "(y(y(K~<><><>(DP,lh,lR$l_dtl~(KX,lm2lX,l9Km(KHLmM,lt2lM,l", "=I)q~<><><>(K~<,<J_(H(*ywlTCnkXmS5nkfmiRnT,m!anByn(*MYnlDmByn&MmT,mIwlkfmGcmkXm~<,<J_(K<cywlshpkXmrNqkfm7wpT,mO6pByn<cMYn+ioBynRsoT,mhEokfmf7okXm", "=Q)&wQpDmlwQp6So_~<><><>~~<2<2<2viqr$mviqsEnniqtRnziquen5iqJknMgqeonAdqcsnQYqcyn4RqS2nPLqK6ngBq,/nX$pL-n24pWAoJypoEo3qpnHoFkpyLo.fpTOo;bp9QoPXpGSogTpGToWPp/SomLpZSokEpcRoZ@o1Mob*o5JoZ$o5Iog!ocHoY+obGoS8obFoY6oDEoY4o$Co+uoe:nolor$n1boz9n6YoB6nkTo.5nmQoY2nhJo9znkFo/tnnBoOonl@nXlnr;nphns;nwdn2;nREn4;n+1mt;ngcmq;n&VmJBotQmMFo,Lm+Io2HmHNoTEmLSolBmFZo2:lIgoH-l)]v!liqoE+l6uoW8l6yoA6lW5oU2l2/odylQ,otulOBpKrlXHp!nlEOpVml;Rpcll5VpWnlrZpQolBepVplohpGslalpMuleqp*wlfvp+zle0p42l26pj6l,!pc+lT.pI$l&@pT*lvDqR,l<^T:lpLqp@l9Pq4Bm;TqJEm*Yq,GmXhq@RmmiqTXm+iquYmviqIamviqpbmviqpomviqq1mviqr$m~___viqv$mviqwEnniqxRnziqyen5iqNknMgqionAdqfsnQYqgyn4RqW2nPLqO6ngBq@/nX$pP-n24paAoJypsEo3qprHoFkp2Lo.fpWOo;bp!QoPXpKSogTpKToWPp&SomLpdSokEpfRoZ@o5Mob*o9JoZ$o9Iog!ofHoY+ofGoS8ofFoY6oHEoY4o,Co+uoi:nolov$n1bo39n6YoF6njToA6nmQoc2nhJo#znkFo$tnnBoRonl@nblnr;nthns;n0dn2;nVEn4;n$1mt;nkcmq;n.VmJBoxQmMFo@Lm+Io6HmHNoWEmKSopBmFZo6:lIgoK-l)]z!liqoI+l6uoZ8l6yoE6lj5oR2lo/ooylQ,oxulOBpOrlXHp*nlEOp(B;Rpgll5VpanlrZpUolAepZplohpKslalpQuleqp:wlfvp$zle0p82l26pm6l,!pg+lT.pM$l&@pX*lvDqV,l<^X:lpLqt@l9Pq7Bm;TqNEm*Yq@GmXhqDSmmiqWXm+iq(vviqMamviqtbmviqtomviqu1mviqv$m(K~)J)J)KJ1l92n5dm(Kaeptdl(Kh:oBYl(K9.nTNm(KYSpOdo(KBEpSlo(KCnq.#l=Q)&1SosXn1SoC$m__<><><>_~~<s<s<s__=Q_=Q)&_)&UmlVklyllMmlvLlB:l''%'%'%'%%%%%%'%'%'%''''''<x*plp$nhkmIxn-ImrTpdOl<x*pl=Q)&aopgglaop@Ol__<><><>_~~<s<s<s__=Q_=Q)&_)&MmlzllZklMml3YmF;j''%'%'%'%%%%%%'%'%'%''''''jxqIhm1GpHnl+Lp$Vlt2q*PmjxqIhm=Q)&Wfkk5kWfkikk__<)<)<)_~~)+)+)+__=Q_=Q)&_)&!jlyllakl!jltjom3n''%'%'%'%%%%%%'%'%'%''''''-;oaVoLqqJcnJ0qwun&Ip#no-;oaVo=Q)&;dlhqn;dlwSn__<><><>_~~)+)+)+__=Q_=Q)&_)&!jlZklzll!jl1tnnop''%'%'%'%%%%%%'%'%'%''''''K.nVZn*mpXTorbpRoo97nPunK.nVZn=Q)&&DmUVo&DmXBo__<><><>_~~<Y<Y<Y__=Q_=Q)&_)&_yjl~_oblnqn''%'%'%'%%%%%%'%'%'%''''''4LoXHm7Lo8*n/$n9*n7$nXHm4LoXHm=Q)&BomA9jBomYlj__<><><>_~~<Z<Z<Z__=Q_=Q)&_)&_~yjl_HroK,l''%'%'%'%%%%%%'%'%'%''''''MTqZ$nITq+Em6qq9Em+qqY$nMTqZ$n~<><><>v;nr$mv;nsEnn;ntRnz;nuen5;nJknM.neonA*ncsnQ/ncyn44nS2nPynK6ngon,/nXenL-n2UnWAoJOnoEo3GnnHoGAnyLo.,mTOo;$m9QoP+mGSog6mGToW2m/SomymZSokrmcRoZmm1Mobgm5JoZem5IogcmcHoYambGoSYmbFoYWmDEoYUm$Co+Kme:noBmr$n1$lz9n6/lB6nj6l.5nm3lY2nhwl9znksl/tnmolOonlmlXlnrllphnsllwdn2llREn4ll+1msllgcmpll&VmIoltQmMsl,Lm+vl2HmH0lSEmK5llBmF!l2:lH.lG-lyCmv!liGmE+l6KmW8l5OmA6lVVmU2l2bmcylQimtulOomKrlWum!nlE1mVml;4mcll48mWnlr!mQolA-mVpln:mGslaBnMuleGn*wlfLn+zldQn42l2Wni6l,cnc+lSjnI$l$mnT*luqnR,lZunT:loynp@l82n4Bm;6nJEm*/n,GmX:n@Rmm;nSXm+;nuYmv;nIamv;npbmv;npomv;nq1mv;nr$m~___v;nv$mv;nwEnn;nxRnz;nyen5;nNknM.nionA*nfsnQ/ngyn44nW2nPynO6ngon@/nXenP-n2UnaAoJOnsEo3GnrHoFAn2Lo,,mWOo;$m!QoP+mKSog6mKToW2m&SomymdSokrmfRoZmm5Moagm9JoZem9IofcmfHoYamfGoSYmfFoYWmHEoYUm,Co+Kmi:noBmv$n1$l39n6/lF6nj6lA6nm3lc2nhwl#znksl$tnmolRonlmlblnqllthnsll0dn2llVEn4ll$1msllkcmpll.VmIolxQmMsl@Lm+vl6HmH0lWEmK5lpBmE!l6:lH.lK-lyCmz!liGmI+l6KmZ8l5OmE6liVmR2lobmoylQimxulOomOrlWum*nlE1m(B:4mgll48manlr!mUolA-mZpln:mKslaBnQuleGn:wlfLn$zldQn82l2Wnm6l,cng+lSjnM$lvnn4*l8mnO*lYunX:loynt@l82n7Bm;6nNEm*/n@GmX:nDSmm;nWXm9;n(vv;nMamv;ntbmv;ntomv;nu1mv;nv$m~)J)J)K(KJ1l9Sl5dm(Ka-mtdl(KhkmBYl(K9jlTNm(KY5mOdo(KBrmSlo(KCDo.#l=Q)&F:lvEmF:l;5l__<><><>_~~(y(y(y__=Q_=Q)&_)&MmlaklyllMml/ilG6l''%'%'%'%%%%%%'%'%'%''''''9,mSrlsbljkmcQl.Rmt7m2Yl9,mSrl=Q)&bknZ2mbknzhm__<><><>_~~(y(y(y__=Q_=Q)&_)&MmlzllZklMml3YmF;j''%'%'%'%%%%%%'%'%'%''''''gSoXnmyymWtl73mbYlqXodSmgSoXnm=Q)&#omL;l#omJ0l__<><><>_~~)J)J)K__=Q_=Q)&_)&!jlyllakl!jltjom3n''%'%'%'%%%%%%'%'%'%''''''eomsWovIobdntSo#vncymIpoeomsWo=Q)&NqnVSmNqnY;l__<><><>_~~)J)J)K__=Q_=Q)&_)&!jlZklzll!jl1tnnop''%'%'%'%%%%%%'%'%'%''''''fflAdnO@mCXoH!mRooZVlPunfflAdn=Q)&$Nm4+l$Nm7ql__<><><>_~~(,(,(,__=Q_=Q)&_)&_yjl~_oblnqn''%'%'%'%%%%%%'%'%'%''''''R1ld:lU1l$6nYhl&6nUhld:lR1ld:l=Q)&,nm5Um,nmq@l__<><><>_~~<Z<Z<Z__=Q_=Q)&_)&_~yjl_HroK,l''%'%'%'%%%%%%'%'%'%''''''e7nZ$na7n+EmoFo9EmsFoY$ne7nZ$n", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATkAAACHCAMAAABaiN5yAAAC8VBMVEXz8/P09PTw8PDu7u7w8PDw8PDw8PDw8PDx8fHy8vLz8/Pz8/Pz8/Pw8PDv7+/v7+/w8PDw8PDx8fHx8fHx8fHy8vLx8fHy8vLv7+/v7+/x8fHw8PDx8fHx8fHx8fHy8vLy8vLv7+/v7+/w8PDw8PDw8PDw8PDx8fHx8fHx8fHw8PDy8vLv7+/w8PDx8fHw8PDw8PDx8fHx8fHx8fHx8fHw8PDw8PDw8PDw8PDx8fHw8PDx8fHx8fHx8fHx8fHw8PDw8PDw8PDw8PDx8fHw8PDx8fHx8fHw8PDw8PDw8PDw8PDw8PDx8fHx8fHx8fHx8fHx8fHx8fHw8PDw8PDw8PDw8PDw8PDx8fHx8fHx8fHx8fHw8PDw8PDw8PDw8PDx8fHx8fHx8fHx8fHx8fHw8PDw8PDw8PDw8PDw8PDx8fHx8fHx8fHx8fHx8fHw8PDw8PDw8PDw8PDx8fHx8fHx8fHx8fHw8PDw8PDx8fFHcEz19fXt7e3v7+/w8PDw8PDw8PDx8fHw8PDx8fHw8PDx8fHx8fHw8PDw8PDw8PDw8PDw8PDw8PDw8PDx8fHw8PDx8fHw8PDx8fHw8PDw8PDt7e3v7+/////s7Oz////x8fHy8vLy8vL09PTz8/Ps7Ozy8vLy8vLz8/P09PT09PT29vbz8/P19fX09PT39/f09PTy8vL19fX29vb19fX29vb39/f39/f29vb39/f4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj5+fn4+Pj6+vr6+vr7+/v8/Pz8/Pz9/f39/f3+/v7////////u7u7Z2dnY2Nja2trb29vb29vc3Nzd3d3d3d3e3t7e3t7f39/g4ODf39/h4eHi4uLi4uLj4+Pk5OTk5OTl5eXp6enl5eXn5+fm5ubn5+fn5+fn5+fn5+ff39/q6uro6Ojn5+fn5+fs7Ozp6eno6Ojp6enp6eno6Ojp6enq6urr6+vs7Ozs7Ozt7e3t7e3t7e3v7+/v7+/w8PDv7+/v7+/w8PDtnQSOAAAA+nRSTlMWGBseICIjJCYoKSssLjAxMzQ2OTo8PT5BQ0VISUtNTlBRU1VXWVpcXmBiY2VnaWpsbnBxdHd4eXt8foGDhYiJi42Pk5aWmZyen6Gjpaaoqqutr7CztLa4ubu+wcXGyMrMztDR09XW2Nvc3uDi4+Xn6evu8PP19vz/ABsdISVER1ZmdX+ChpHD6uz3+f5iorzZzfttCwMFEQj9//Xb/w2l/O//eKT1//sjrJr+//K2V//05CV5/0yWE/+ptP///7T/tP//tP//tP+0////tP+0//+0/7T///+0/6aWTP95V7j/CPb/5KMs8az/l/va////yv/826n/8snLNGL2lAAABSBJREFUeAHt2wOQXFkUh/Hvf2eyKi1mqnrWtm0rto3RMk7Wtu3YKKxt2/ZubDu96ddv5o1W4b2p8/WgVfrVOe0WEkKZUHkkR/41kn+ophBUuaLI/id7BCEQkvCrZfNnTZv0cy+qJ3ERulH9b1bfW5QJhxOSHFLho4WPSRKuwzDFNR+vqAZPOKnOs7Wfrf2chDv9JZxQEk64WG7/rxIzhxJmKEBMybqRL03Hw+Zsd133muRuvGiV3E2u8sw5pEhuAMrUYVjE0G2ApEROUu1nFZWViwxfroR35AcokRNy7POdSGYulZUT5KMZ+NnveyytJqf+iuTimZPIqjlE0aOVZkgUDmgxLj5RNnPPoYRFkiI5h7IlM4cO+awGudQUIRBCeWLTCeRPx8MmPFlSfeYSOUcEpPJtLSNItrVs8ho8GWHWfu7s5yJlVd/WqCM/SLY1vs4+3yGBk6gmF9Hho13644YTKE/38ScetoN65aV22SEXr5o1/PxE7iI8bqfJ35wqPErXtvFfLu7e0+rgUen500ORg8FXC39aMW96MHLsoZX4U87lbYORg1c75+BNuV37hCPHUxfWwpteOuqPcOTYN40/6euA5NhvJd6U07FPQHJ7rNwCb1r5VUByDL4Vb5I+C0iOg1fgTbmfhCR37wDhS5o0ISA5jvDpTuL9kOSOFN40/6uQ5HYqSONL7p2Q5DjC4U05QckdJ7xpaVByJ6TxpnRQcneNxZtcUHInCW9SUHI77GYzt5qdbHKr2Wl2D2FyJudFJmdyJmdyJnc63rTS5P4pkzO5MzbyZ/wmZ3ImZ3JnmZzJmZwHmZzJ+Vhte8ZvciYXQiZnciYXUHXsUYnJmZzJmZzJmZzJmZzJmZzJmZzJmZzJmZzJmdwGqx7edEdYcvVt5kzO5LzI5EzO5EzO5BqanMmZnAeZnMn5WOON/LNMJmdyJmdyTeybwSZncoHU1B7PmZzJBVJzkzO59VxLeyRscibnQSZncj7Wyu5bTW4918bkTG49187uIUxuPdfeXtk0ufVcB7uHWL22P9XkVq8dTW41y22HN7mg5LrKZm71KkzbzK1excKb9gxJrlTCl3RvSHJFtfAmd09IcsW5eNOyhwOSu2BpDr6UO25CQHLdhTfpdsKRG/g53uQKeocjt0dD4U3TBxKOXOd8vGn+zn3DkSvcCn8683SCkXviDeFNGv5HMHIvPyu8afH2fQhEbrszU/iT9m1HIHKDfvgMfzrg6IaEIXfPlE/xqAOPakgIcqWnHNr9EDxKe7UlTvfxJx62g3rmpXYZnMarul91d4IoxEU3ctHN6nuL9BN7Sjgh4SQVPlr4mEQOisIJFx9DTlIdnlW203kpvhBpNG1c9phw4gD46lFUjOSEtA/fSkIOhITgOi7DQR5iUyZckYt/XfZRowlUkut/U+bXCUkuNiM6StEqOZyq1m2ApAZPOEmq/RxZuZdwIjr2cuIr6cgPBIpJycp9hwROAik1BYEE+QI2nQD50/GuCU+WQJIyE3fRjRm5vrc45MDhhByKZk5xHYbFGi3GVZU7+zlJIlaJcyhbIoei4uPxf5RSRk4g8hGZkfNQ7vc9llIpSf0zcmKVnCRHsoskcji1Hy6JwgEqq8GTwtV5NpJzVJWrPHP7f5XI4SiXQxSUuQmUl5UTfjXni4+6UyWBIzNzN6tcjiyfI76diwlw8Z5GxTOXkUu2NT72csIWyaFYLtlWUSanlJgiEMrKMR3hS8vmz5o26edeVO8vFbh2SRYORyIAAAAASUVORK5CYII=", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACjCAMAAABBoSd9AAADAFBMVEVHcEz///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9l4+88AAAA/3RSTlMABgX8BAP9Af4CCPoLB/j79RUQ+Qkc8QrfJA/ADQ7MDHvW60TstPenEeX2ixSaNxP0bfJfOOYtFhLzG1EZGPAaLiPv7lIgKyJeH+rnJioh4uNBMRfp7R1sLDonNC8oNR5DJUmKKdzU5DNC6FDd2Nlb0NuZmKzJvnnTNkul4N7KpNXXTeG3P7NAMFmDxl0+PdqmfrtqzkhiZk7RMlaIxJfLr6GFrs/SRUw8x5KeqnOGaHK2ZVR6dms5wpFjU7iwT8WPo1xnSr/NgYmQtXTBV3FYlbJ4ubG9jYe8b1WAyHBGZJ2blHe6R1qfbsOck5Zhonxpq3WthKk7joJ9YKCof4wFO/FiAAAfBElEQVR4AczUhW4DMRAE0DBzfLJi2TqxwhHWFygzMzP3U/LZHe+lXGFwwvw0exvPgBL+imdSEv4nk6OKfmX8tk9QMBiMBgOUoHn06Ruby0XB5EO8iLmFDnFpY2NRUYaUTMYoyaThATcmGk0RbZEKJsYY54kE55wx6IwNtNHPk1iBICbojcVAsm0plRJCKSWlnTA6nxe0wChLc5cwGEVZ6IolbKlErug0qpSGU8zlFHAMvWGieOOIdtRl0QxjDCwFVFUfTndmKZ3pQ51tFIWS6C0G2sdER3PMU1uMJ6QoOlk9PWvdri/vrCI7y+u3Vqujs05RSJszau1TNvx/CDNEnrBFrqE7s9b6TuF+6/ppG3m63rov7KyfzE5rJyekO9DhL2hvFXHMJ3us6db6zvzF09lc9+DtEnk76M5NbV/A1prW1aLAInyWhgxNBRdUmKIZItqylue3ts+67+yZZVRfWbLF1/hMOoIMNO4OIUAghiXB3d3d3d3dnXhw17gHd3fibkjck/fqHOC+phdteTDK/Rz5rdq7dtX/lH3AGYPylJiYuJiYVAMDfqP4HSrK+2QoJHeC2aBqKD2gCzDb2gUX8vz3YHmoFmAZyhrbBxikOLDezGkNLCsLDLS8yaqRYsBvb6xvCGhigEYPVoPYXaNYI7CACzxPtotUnEIBYRkJp2qUWkY6XZjuG0hIGOibvuAU2VqqkXrGKF4WoSGvLXbBEtrqc0EvYhXpufh2SprJKasY2wunOjwIdJoeaN6ee6sxLy/vVu7H5IRpp7Ic8xRhhCZntkecdBfugtXuT6IXoVyQpwhrm5akrqqF9V6jM6nmOfkXBpJz87IEb9TX9PT01N94fLrlvHzCiXxL81RhI2MVCzndPVqgJ25QKNoq9uei56FcyFwQXDvFENYOe/4UwDrhNpt3+sZLv/kvHe8TExM7vsz7vezXa5ltPnTZkjXljP1eFQtV3QWrARqa7kAGbKtnrt+BuRjpaLYhc1Gb7DgYkGpueXnaLbfucY1fRuKE1buuc5WVlV3vrA4nfvHrmXqe6zZ92dK8nN9+rzW1jK4Y6AldsGG1rPaXJXP9DqtIs4tPS9Jsn7KsZsBbjQeRUK26qZdM12q/nhv0unP70adPj27f8Ro893WiY/7UVB1Ce6BRzh8PDQqxxoetBmirkGrLIwICVUtMV85CZa+9QUxpoPTAxzy9HqaOw+PPvKrmgj5Xe8NX/TmooMrr2fjh90w1gi2zCdJlN+POGBnLKiM9+XB0bPj/F42YP0hFSC5QUYbaeu9B/lTzVtFD8o2ne/zed16dufMpvbpolL1h5OLFkeju0ePV6QV3Zro6O5he6uVt7xMNZIUGXdATogNZ7XfElPpWEf+Cdi48FulRcu2B5NLXhISwvHxI/vzper+Ow1dnbjd9LoqNzvTtfXLkypUjR876TkbHFr0Juw1o70/WCN6S73OCBuW332FCrUAhRgpoG5HV4B9GTQDfN1ULBSpaIugBS1JBDgLV1EADtWJuVr/ftYmrg0+b3hxnv+97NsmHIbvY3b04m8En6Unb/e5L1WG3B6Fqw/2nzzefyM9xKA/QxFaDVMMbEay4RHZ8k7kgUCEitkGgqlqoGBudiSktu5DwsW7q3ofC8cE7BZ+Pd2e2HfFpd/cPj3BxdXWJCPd3b/e5QpvZcOnN3NPB8cKM4RvPPz48EfkgxsA0Hqxmhgco6LkJ0AirfUsvMtIvRIQFRIRwirml04D8Lb2e+USrc16fOF/F3m+74pNdEu7q4UwVHBUVTOXs4crsnw1o92NfcRZ4VvImMvUINoLVWmEWHNxhYgFTinQbio7f3p+YC8+fxYgAFcFc8ablDqBiM5jrJKh4tCrIe+ii75XQ4hJmD+dgNTsRJfhE7NSjQjxc/ItDr7SNxL4Kqjp6DqxWf/p88qF8SLWAeH0THB1cC9Hx66cUgfWn3yHTo+VGa4+ZqrJsvKlB3M1ICNTnN4a/TLybuT33ArCe+GT7u3hQqXErabPo4I9FW0lEncoG0HyOtF0cegFoV2uv+fVnnXcDq2lgPeUU9mghNDTaf/enXzkKAGvJXKgXsbmUrSG54pC5Zlse3/tS+/XunabqSw1jCCsCsEQcWXSk9lMKwUe5X0qHzVFEPdjGpaTd58lYA3QBWK02496NutyHFyDVDIz2qijL6YLVoD+JrQMV7ddy4eUGVkE0f/jLWVvBXI2CPUyJvM88Cz4XdWf2JrWXMKctYElQCu0mwd9uxAZoalQezCXtFb2Z3cc/F3g+43093/M4b/sh0cDSGLAapBoFpBr6WYC3jl90GnY92pxxosL8UVBV1sfzJ3/a7TyKiMNgrjDv2JG2I6Hu4WnOUdyAtZ9ytwAPDwfH5s2bOXhIBHYLSUDVuNWc08LdQ6/QjsR6Bz3y6pq4drLmdC6a7Q5vAzRhIVKQxFsHaoLF9vylemHTo6AXwyoagbkCL7jNtkzdywAVn4ZVX4r2fRIK5rKJslNSlAIsEmAi/w5/5OQAJ0ApoaPoaBfl7OKfHXrFN3r0Bej5Dus5C9FRqvHW1FgFTSnSbWR0kLc/T4Zt/yfgwuXCQQ/zByKiNFC0b3ve1MsPr3nvbi14c6lh8uyCudSVtKFaAiQ8iGrLH/C3Zct35JuhbEL7dRSV1KM8IiA7zk5GQ6ptvfu1MOPU45bZh6JloCfeOiA6INQIMkD7GXuB6yEjSCXNIOg1+csdLEX7km/p1YC5Kj0LOF8hcx0rQVgi2mxSQgICHJvJtyCqP+MPs0HVEBoboFF5RJQwVJzN7C76XLC10ur9h5eCefJ9ojClYBQoy5mBnrg9l4z2E0MIZ+pGOpQRMhZIRY2bZZBcz+sXzJX+KnaENukYmCtEjVubRYpSSABXC1P9FX+YDVdNYDflfmS1ELAaQ1IbWC0doqOzw68+63zzdP4D1J/WFjIo1Og3IqMRZCv6C+oFK70WBTI9rKiBTn0fWx6fyigEczWBucaeXC+2XTCXzn4hARIOcnIQkcBaQtsCZkNFk5BCVrNxsS2G6IgerW66g6Lj1I26jwmwdaTyQ9FUKTAZyo2VfYa4oF5gLy5S2LoM99qfiXuQf6gZqfjeqnJrAWdR9+TZJAasopIiG3iehwPKhWRcwPof+BbQFovGsWg1NSobrOdkw/HPc3eeWSXOvxS8BaMAF81EDnqADEYUTChEtmK94E0JbL8TJpC1MVqdpR/mPu/36+i8evQRqHi/t4JhQUVHtoVWJKqFoIgPof3hz4toSE9tEfWQNOYDDEm999mLOB95oinVn4XylhWGlDW1guROWCE3bPjdCkmL64VWHKiXpAK1rKZwCpRLPk/wVEbtu5mnYd5DI76QXLYuCItFSkIAmwuKBVgE1zI0wmoCElIs2mA1V2b3Ywupdnvm6kTGvakW+UOXH8QIa6pYyCCyjagDENmPCoYX6I30EPYKFsAVl3N5YBbKhVV8czx67Mh1SC7nYDsUqOB53IsIawUuQlDcn5BqgOZoF+zsClY74ht9CekJW0d91myCqKXGmYOyygqSsKZtxEs3oPy4I2EMMZLxiZvtUzkoHAcyntd7+QHKVRX0ih1UbD8A8wdFBFbxZ8qFv+VWAz11tEXswGoH2q+fzUR6Hr0KTaB33k0ak1mYgc/okM0I/xNcqCEZafjEdPepaAprWEq73Xp8r6MTylUNWwSaP64haiLaoOJuEh4OwFrBXcu+pf7EegIa6AlWcw13P3bEdyT2RdOdSquO4anG5gutGgYHVfbpivHRMIKYy8mACzry7yCkFoWcCejYeiG5Zepk4vggRFfD5JPr2bagIjbXooqYakWsZWiYDUUHoCE9uaNAz2y0dRznfDQz/pqpv07+RKDGmXgTOQrxbTQQZygzloFB4n9PR0a6R9XQmB90bG6pZyp85zVXPTpCi1S0CUbJJQE7xGK1CKxfRgM9UdXQbGdRsguGXQ22jvtDL+Y8r9bO19QlX7CM4zc2Ud2zkwvExP7/gZJoQjLSbBNXsNA3TckRdWvsn6/t2trkzT75xMedOS1EXQSSC49FPBV/RsQV+xMEBasBGpsirJFpzKDnZLd309au2g/1ec2iOTEBO5QVkJhEyQglUcG4SCnkrDUNWC8nnJ9iAq6wVw2+V46VoKDXJlT8Gc//bBeQg54wClB0oK0DhlRDUdidcxPzN249dCp9e1BFDpdsORjKsA0baXaJKSjv5Y8L7JvVG3591TPsVXRbRba/K+yCWEU8Fn8TF0FG6AloOooidiFptu0VbdFFYVu7CocFz/cFavAbG8qI85Ft3EBouWh9mEVcpHvkVOzLb16QzzrVMe7ZVARcxeEeVBBd+yVgLKJqbQEqQsbfhgZ/eTE6UNE8mN19ehHZeMepLHnpnFR72X2oZH//wWDC4brhe3o+LTNlY2GHyITG+gyrmQLvhrbr7sweUSJ4XHOgchEJ8Vs/omo4OiTQ/IRM86GN9p6bscrob3wY6SBsDC5DjYlDlgCD0CcjlVS1tk/Nkd6uN1x4rqqa3beiOMJZTQm2m5V78VuqhtF2w6qmpOYc4V7R1l39qLLWT/DjhZxUIxU5ST4yxg2/+yEYTElGrp0U1PoBcWV9jTVfeL3CLt0/wmBroybCggcQ+fJe/FY03J/IaftZRNRswtuvTI4GeX39Ut84UKbBv4OaAmsJ9sdgwIV7cpe4gmH821LR5NPDhZVVLxpoQ0vSoqBeQshd31iulfsTnCYkxaIUleZ/rDf6xaPKwuHTyaKlBvHKCuLb6HFf4pJhi23aSM+3RwYpOZ079QEKNjqZ5O5CJQI6Atd33/3527mWOw3YcKbBiBKhcnGvGBsN8uTNuJF7qDXG3lpGko9mI8rYRbC/gcUYyXZSyOmbapQl5PUkdt2ubjgLQqprS0mQ8JDD6rwy1bfq+R05D4mElLa6jS3D2Ybq212JL/MSIh1MZeUoSLHJ/kaAIYtp6VLvOMPqlJzlNzE4dzwTChasxCaxm2MVueBbIuPYLcGmFOzinpR5fG5wwi8r2YlVeK+FrhYX499/CLYJwMQhLAxuSm8XZLLyChry9fH3UNMGg20G2xOmXy0yUJNECErmUeLjOxTkZTUvuF36poGxspk4gG1CYJgLgYH3ZUw0yx+cmJ3KePf0TffZ9nBnOxaJ3Tx4k1g1LvgW5jo5j4AEC3dIRPvZhjdP32VMnT+RU65pqCC+iw6BARkuGDQl/TYx5P3Wvlv1HV1VLy4eKXYJFtGhFEBxj7lWmQxKRqkjEuxafOTii6qujvpbfa2pB01kxHBb/nEZmKSqilFMWULLy8TKgqL7SQfSkJKwTaw2FyYDMB7QUi3tQNL9ooJnr8H9ZTFGKqqSy8D+BAOJhg8GpZFG5MO6U4V3545PXi/xUFfcD9aH6bj6YJAZYP/9imCy65PH5+4Wnqp7GKmBs5/m+w0QZATYRgDbJ2uqke/2/N7ETNOlMR9/myUwwvmr6f9FMBt/n7FLTYO195675WuYwhyHIPsRGOmeffoBDpebs4YPHw0b9Q21Rd4XQGDAtcrfAhi4387ZNtR3NGxmYjir+bJDgP5KYDspAMzcKfm03+Gj6bEAFsKtKCEAYbE2YBAYAhKK3CEAFhvk1QlBtgBG+mMwMlIK6h385k7yeic7vdJj246Fh3CzQVOuvvcJ9wtQsnGHhB9ri0336jx5Wt7JnF9/H8VOMgIMTyQMps/PKgpgVp7p7LQMzFQARgJgiGv1yVBeABgVMwNtbLpn50m9RTDSlcB2YDAmK0/OBTCWtQZjwWDs6Z5WACZqDosPAoNhuQIYTKR/OBjnrwTj3boAJsL2jwNjAjDWnwTbK8wq/e8CRv4PAdvKuw72nwMmuH0dbB1sHWwdbB1sHWwdbB1sHWwdbO032HWwf93flaL/CmD/+m8X//qvPf+09zEE5kSArfA+Rrwo0h4LB4/9c18Ul7/Byp8+id5g20LDQ+z+UW+w6UcP+50m3mB/xau14lq/WisuvlofPfwzr9bonT9g6Z1/FL3z28E7/1qCwTu/HXrnH22amVjxnZ+4jMABItKt7lTt4D/6MjJYu/JlBN+S+CThZBMHt6Se188KXmVWLN2S1gps6ZZUkfkK3ZJaEsrifnxLIq5vJgdTAgca69+fw9c31yhHNiES1JZrcn0DMDbHKHR98646976mcSAwZfn1jbhXiikYapZbHsrt/wL3Srg8R0DCSgis7b2SKoKhF90rv8BR3BLdK8X+716JyDCYFr7wXvgoOM8LF15oS5s1v/Cq2diGtg2le/HOP/54AV94tRDYsps4HdzELWCKo5v4YXA/mMw1WAkilriJryIXFIwD4lUp2PVAxeTxpv9t5iyA4s6WLl5Pvmffs7hgcUU2gbgnE8KLe4ITD5CNS+Hubou7xpEYDgsvisTd3d2t3ume4Wb/qYlRhN1bOqWnbvft/lfN+Z2DcZivgxT/iatK/hOHiwCjH/8LWrrSP6loMvdd6s4LJvOVoZgN7CKA9aJHy5GYYs67b7k/2piP3sejxLSQugjYd4FBRg4aD2qyEK7lWVxZ9w6jBpAy4TVqEN8FdP17wEi+sLNrDwWvfP/uXEHsXPguJkp9FxDGz3KIuenU5+cHGexYt+XOjdXuVerwEYzrMHIADDSfd43Vw0kGc4PVpBWwXRStfnNny7pZBrLz6H1zqVOFJiw1WT9a41Nca3M3nzm+0u5oaCmMBJNg0epNPrv6e2ikutjb829yHU1e0j7c7+ShYK3jZzZXwA+i3Rct1h8tVieMr4ybjP4VD4wofH2TruzRfri0fnSYPK4TuY6UmITrb9T6AbqsJrdeCp9Wzuobd060u3kvb24A5v7AJk0hTGLTom0JhyL8YxZR1yNhh0oof+IO29GP8GmNZYvpL0zo9ZZFumBtGzqywzg4T9Mdq4pSnRJ6ntkcuSzKYqc3Kqkp/GPCcce1xB43DrxWqBt2xbdMyy6paJdjtMsC++7TOw1tSY47XNq/6BHUx3GHtQ3fKaEbLclBSb42x11Hiu209j09vEOXLkwfLq3+dY47iUcRruHRRiZ6U2xrf7q5LiX/kl1qkcrZNOcg+8lsbmMXmShoPYoonLrjFrVe4Ry+pupIUvDt/C3bbhb4ZFruhEdxsOLCPnZ1qqH9YWd+nmG9LPLcg7gNt+2S3GGCXbh0yaTuMJuintRq9XV1KmSN7MSG8IWwwhYVB1+8E/egJnLZoIysxRPw9dpNviilwn7Hhub/jO9r4zFX5l+RHXIi/xL8psdK1aNdVsCeC8aH/aYfDPzf6LNjtylbdInWgBk81e7ShriQzRX+hZVe2sPH04Vp8JuEMKGMRxl12URTbz1L2zyDrQdenSCHrmfoLtjSlzLnwygG1/NPX3lpH5yJJKslmZoZvVkDJ/hquGDjQg6EGZy2tdTzNhUXJiopaklO2CGw6MYYQpnuw+wHKWUJb96C9Yl3TCMLOB4BtRrqKd7n171FQZBM78MECbi4oqPPkleVbXm1OUz3dKaF4dT5I2Yq9Vqz2RqfGE01B5uDMtgJZf6R59b59gSGtLrzVRXUk6EtMs3z+5QO3M8PVHL+/QBZY6npUUU/ldD9T5wuXn7vu62mwiAv0+L5Yv025oM1McOk7nTh52cb+GDzOfqLDS0rC3/OBecWt2/VGzCUJ4G5pf+ocILX+fk/W1CWJfgMNBdk2aOKoFpO5hTjuvLjzhy+meufZwtds2GBbdINUJeY+soIiGGjx8/GnVUCGNmxud1TYrceHTry31K29LtRPfl9fm5/ireoGBFDR+EtunEVwQEd2mR3EUjoqwPEGVRaGi7uazR6IEA4fFdIL0wwIygmsSxAkvRjdnpFWFfrbj13+Awu7UbX1M6hKn54nwxBdAAEwfuzTtpn3iKPCPakA9LjKgJ/WJW/F2Tjw3u11uAfpoJTJV1yZgRXpIyygbK2BEu1mQDKJgMgeMEORri0mIndtX63HOHCVOutqKfk0iQuYUkVCQDCW0QVNyVrETu4edaFn0+7ZjDLgvvSIUQVQ/9jYWIxIWCD8LKZI0wZIy6pNoi8+Ri4rsCldoPFIy6pjmiRDlxRxDqOBVwScywYEWfj1+ItOt2+DLD3yqlIXVwXw3kjzIfxff1NGZckuBHcGRFTmBpGfUFyZbjKmEFlNNbpkScYIABmtAqssNoVXmdlJBeuS+AYGPTOgvxJKEPTZ4cxBArScrYR5kQT1vVpkotepkKZJlB1pEaYPcelgVSnes7LX4n3qeBtVkh5G2XsW5dfNBezNSBA38hh41m5/rElEZaBNiYTFISZBulSBqZKlMFBD7gfOBehqAEdK2W1uop6XgIVnoN6Eltpj1ZDPZkz41fAR8jqMaClGBG7z8Yfcy/eVH778vun766cAvgmy8xAskNfAsf7EWLJxCzr+hyO+jtOTCFKlslwr/NRMp97W2sA7x6/S6Oj6NgtR5B5S9wWWWGqDfiBb420sSoFj8dVXDSJeDxH8D6HiN96ceIMqPGflhW6XptiaOyNwAlC7duqKmMFlfQZltM/mEjtx4ilt00WgbJgGQmUBT8VDAobLGMaf3V8IIKwQlmUvOfrsLKFaYl+aK4nUoLRMsuM0kPQ9ZpNgZbhvv74RVZWpPKApweUOnqE6ewYPYQiWMf65zI3iFbr+qQz0Z9oNQfaUiTt39DGh1q+Nw1Uai4G8WhyMfP5ACS7P94iokMWC1wcjL1geL8qxwjK1ED6c0aJCYhGxEj4vK44tZ1J//vPit3lvCxabRykAXqGNhxCi1tC1jgA2aBkJVTlqYp7tTLX8wGImaDYELCoRC9irKKMXMevSX6SXxohoANRT36f12jePjy3bg/h63arj4Kqp3rKpc0YObQ3n6EjWZbbEqoiviLQXBsT9sWdQRVpolIVgTyPMGeEnbqexj3aHufrIlS401ppyHNwxhjNZpq3BBwopUnsxZayW+2Jr47E5Wg1t8l9rMZ2GjUDZ1SnsVZ9SBZPrqudn3R9g/2zp91mGhHWCHHQRh4BpeYgX0JA4v/3JVnSenKIlzxFBTvKFPM2sONca0y1XoyoIiIhFR9EfpCGXeA2ufs4K5xx3RdNao2nuFx9vcrV/Uld36y8M+8pNRcGPRI5tGOA7XIEUlveQb8TVfy2JC+qp5wYn6ng/rnVIgnq7XlH6/4zBuwxO1yCFjjYu02a5ObWekGQC4q4vurk/qRn5Zewf15Rc/kUZmYAjMVEHcOZNG3/Ts0lqvjtoSXyjBdqNdSTM14UMRyHCYO+WL7pqPsxPNDw9IUuS4NwlrosTA9P9Ks65n7okRNGBHj6bObpI6YoeHo0V/+PYrbqFTPG75NSCXh0cJ4KWg3g+IF2L/fmI1vi0dGcUJX4s4m706Jxlocnno1XCXWnnl+F/YPwklyDWOtKVBHNRQkEornQXdIyfks5OVOFHgHXswWz43oeHSsH1b6mwAQsULyCTUmdjxxT2RXvt379+tJbKseO7C9+FHwDa/Hpg8f4ivCRVXb0MFxMzUVVRM4chVhRpoooYz2Tl0Q4DkccYXRwfknt64pe29s97Zm/6uL9rquLPXOKrl69GlqU41m8+m35xVWQFYK1iOZyPe+BBCusa/PBnEimCMipz20pm7eUZkdZIeYYHd7yqXYdKUfbX/nOK7t86Y1T102rU3FWb+rq9EbrYNm8p6+201qknBfsn9kc1gBZDZReJXmfqKcYHdhSltRqSJq48upl3Is7CVoXbyTj3LiolXDnxV7fkMM1GKiUjBOgt5iai5IaFMk4DZLHJ97n7+taDfVEq5kYy1Md/C+EnUMIU8re9/s2XMbZsO/4vJQ97bbX7LjgX43UjQC9uv2Ddc1V/J3IpGy4BDkaHaoYHZQ9hkg0TDXa7QVbe2VfaReyxzcFx3dPSLsrm28+LDCoHWSL9CUzE32OaBBV5M/BBpAlKShtKZ5qQwZSchUWKB6o9enruhe2zjqVfWA7DgLIej3Mfb3stDUySgxtkOwywrwF51Xhtj7kyTV8SiGmGqTxAsUH0VQzQ4+Oc11lsdcN7l2I3IqDyDbdZdUy17mYEGZTZyN2ibNT1L5bbuFH0XvdeHS0kUtDmFyU7HS1z/Vly5b5VJ+Wldhes2BZ89sgnWSaIhPtd58fqA3xPimqQ0jrO9VML8vDEqGAma5RUa6ZlRHnLbyy9DAhSBY1l5pIHRMDtWEPhPEu4E81RUhai4ltjPSHQxtiFL2m4HgFZBnqmcUM1zfFU8RaFFXkOQ9h3zMEFg9UkdOJcEB8rLUx1afgSTMzGxszM4qehKoxGFy4raaqYtB/n9tS/oGL3a6JUMyZo8dQVKc+H4R1QpX5wDpZ37WISnLJ6qQhO6rJtMEDZ1K46QgcijedCVX9dPgjgooo/bhplCDRv3FBm/bXadIPcbAD+VAgbBOoUuTBSvdPIyXoYqpx+Koqcub66+hoNsHR1EGELlRBFnKRxVdEY8b7ioI2x2CDOLW2fNQQ66vBicjysDjqrsaP2uaK0mDjjGY+rSCK7wqqxG39GrHWdG1UU5FrDVGkij+5JM3V+LcmgsClUeCNf1vSVyCNTocm/onzKye7S8Pm+fzmkvB/SwH94jS8pv8BJNsm9IJlgp8AAAAASUVORK5CYII="]);
  2.             if (console.timeStamp) console.timeStamp('FRVR Page Load Done');
  3.             ! function() {
  4.                 function e() {
  5.                     var e = {};
  6.                     return e.WEBGL_RENDERER = 0, e.CANVAS_RENDERER = 1, e.VERSION = "v2.2.3FRVR", e.blendModes = {
  7.                         NORMAL: 0,
  8.                         ADD: 1,
  9.                         MULTIPLY: 2,
  10.                         SCREEN: 3,
  11.                         OVERLAY: 4,
  12.                         DARKEN: 5,
  13.                         LIGHTEN: 6,
  14.                         COLOR_DODGE: 7,
  15.                         COLOR_BURN: 8,
  16.                         HARD_LIGHT: 9,
  17.                         SOFT_LIGHT: 10,
  18.                         DIFFERENCE: 11,
  19.                         EXCLUSION: 12,
  20.                         HUE: 13,
  21.                         SATURATION: 14,
  22.                         COLOR: 15,
  23.                         LUMINOSITY: 16
  24.                     }, e.scaleModes = {
  25.                         DEFAULT: 0,
  26.                         LINEAR: 0,
  27.                         NEAREST: 1
  28.                     }, e._UID = 0, "undefined" != typeof Float32Array ? (e.Float32Array = Float32Array, e.Uint16Array = Uint16Array, e.Uint32Array = Uint32Array, e.ArrayBuffer = ArrayBuffer) : (e.Float32Array = Array, e.Uint16Array = Array), e.INTERACTION_FREQUENCY = 30, e.AUTO_PREVENT_DEFAULT = !0, e.PI_2 = 2 * Math.PI, e.RAD_TO_DEG = 180 / Math.PI, e.DEG_TO_RAD = Math.PI / 180, e.defaultRenderOptions = {
  29.                         view: null,
  30.                         transparent: !1,
  31.                         antialias: !1,
  32.                         preserveDrawingBuffer: !1,
  33.                         clearBeforeRender: !0,
  34.                         autoResize: !1
  35.                     }, e.Point = function(e, t) {
  36.                         this.x = e || 0, this.y = t || 0
  37.                     }, e.Point.prototype.clone = function() {
  38.                         return new e.Point(this.x, this.y)
  39.                     }, e.Point.prototype.set = function(e, t) {
  40.                         this.x = e || 0, this.y = t || (0 !== t ? this.x : 0)
  41.                     }, e.Point.prototype.constructor = e.Point, e.Rectangle = function(e, t, i, n) {
  42.                         this.x = e || 0, this.y = t || 0, this.width = i || 0, this.height = n || 0
  43.                     }, e.Rectangle.prototype.clone = function() {
  44.                         return new e.Rectangle(this.x, this.y, this.width, this.height)
  45.                     }, e.Rectangle.prototype.contains = function(e, t) {
  46.                         if (this.width <= 0 || this.height <= 0) return !1;
  47.                         var i = this.x;
  48.                         if (e >= i && e <= i + this.width) {
  49.                             var n = this.y;
  50.                             if (t >= n && t <= n + this.height) return !0
  51.                         }
  52.                         return !1
  53.                     }, e.Rectangle.prototype.constructor = e.Rectangle, e.EmptyRectangle = new e.Rectangle(0, 0, 0, 0), e.Polygon = function(t) {
  54.                         if (t instanceof Array || (t = Array.prototype.slice.call(arguments)), t[0] instanceof e.Point) {
  55.                             for (var i = [], n = 0, r = t.length; n < r; n++) i.push(t[n].x, t[n].y);
  56.                             t = i
  57.                         }
  58.                         this.closed = !0, this.points = t
  59.                     }, e.Polygon.prototype.clone = function() {
  60.                         var t = this.points.slice();
  61.                         return new e.Polygon(t)
  62.                     }, e.Polygon.prototype.contains = function(e, t) {
  63.                         for (var i = !1, n = this.points.length / 2, r = 0, o = n - 1; r < n; o = r++) {
  64.                             var a = this.points[2 * r],
  65.                                 s = this.points[2 * r + 1],
  66.                                 h = this.points[2 * o],
  67.                                 l = this.points[2 * o + 1];
  68.                             s > t != l > t && e < (h - a) * (t - s) / (l - s) + a && (i = !i)
  69.                         }
  70.                         return i
  71.                     }, e.Polygon.prototype.constructor = e.Polygon, e.Circle = function(e, t, i) {
  72.                         this.x = e || 0, this.y = t || 0, this.radius = i || 0
  73.                     }, e.Circle.prototype.clone = function() {
  74.                         return new e.Circle(this.x, this.y, this.radius)
  75.                     }, e.Circle.prototype.contains = function(e, t) {
  76.                         if (this.radius <= 0) return !1;
  77.                         var i = this.x - e,
  78.                             n = this.y - t,
  79.                             r = this.radius * this.radius;
  80.                         return i *= i, n *= n, i + n <= r
  81.                     }, e.Circle.prototype.getBounds = function() {
  82.                         return new e.Rectangle(this.x - this.radius, this.y - this.radius, 2 * this.radius, 2 * this.radius)
  83.                     }, e.Circle.prototype.constructor = e.Circle, e.Ellipse = function(e, t, i, n) {
  84.                         this.x = e || 0, this.y = t || 0, this.width = i || 0, this.height = n || 0
  85.                     }, e.Ellipse.prototype.clone = function() {
  86.                         return new e.Ellipse(this.x, this.y, this.width, this.height)
  87.                     }, e.Ellipse.prototype.contains = function(e, t) {
  88.                         if (this.width <= 0 || this.height <= 0) return !1;
  89.                         var i = (e - this.x) / this.width,
  90.                             n = (t - this.y) / this.height;
  91.                         return i *= i, n *= n, i + n <= 1
  92.                     }, e.Ellipse.prototype.getBounds = function() {
  93.                         return new e.Rectangle(this.x - this.width, this.y - this.height, this.width, this.height)
  94.                     }, e.Ellipse.prototype.constructor = e.Ellipse, e.RoundedRectangle = function(e, t, i, n, r) {
  95.                         this.x = e || 0, this.y = t || 0, this.width = i || 0, this.height = n || 0, this.radius = r || 20
  96.                     }, e.RoundedRectangle.prototype.clone = function() {
  97.                         return new e.RoundedRectangle(this.x, this.y, this.width, this.height, this.radius)
  98.                     }, e.RoundedRectangle.prototype.contains = function(e, t) {
  99.                         if (this.width <= 0 || this.height <= 0) return !1;
  100.                         var i = this.x;
  101.                         if (e >= i && e <= i + this.width) {
  102.                             var n = this.y;
  103.                             if (t >= n && t <= n + this.height) return !0
  104.                         }
  105.                         return !1
  106.                     }, e.RoundedRectangle.prototype.constructor = e.RoundedRectangle, e.Matrix = function() {
  107.                         this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0
  108.                     }, e.Matrix.prototype.fromArray = function(e) {
  109.                         this.a = e[0], this.b = e[1], this.c = e[3], this.d = e[4], this.tx = e[2], this.ty = e[5]
  110.                     }, e.Matrix.prototype.toArray = function(t) {
  111.                         this.array || (this.array = new e.Float32Array(9));
  112.                         var i = this.array;
  113.                         return t ? (i[0] = this.a, i[1] = this.b, i[2] = 0, i[3] = this.c, i[4] = this.d, i[5] = 0, i[6] = this.tx, i[7] = this.ty, i[8] = 1) : (i[0] = this.a, i[1] = this.c, i[2] = this.tx, i[3] = this.b, i[4] = this.d, i[5] = this.ty, i[6] = 0, i[7] = 0, i[8] = 1), i
  114.                     }, e.Matrix.prototype.apply = function(t, i) {
  115.                         return i = i || new e.Point, i.x = this.a * t.x + this.c * t.y + this.tx, i.y = this.b * t.x + this.d * t.y + this.ty, i
  116.                     }, e.Matrix.prototype.applyInverse = function(t, i) {
  117.                         i = i || new e.Point;
  118.                         var n = 1 / (this.a * this.d + this.c * -this.b);
  119.                         return i.x = this.d * n * t.x + -this.c * n * t.y + (this.ty * this.c - this.tx * this.d) * n, i.y = this.a * n * t.y + -this.b * n * t.x + (-this.ty * this.a + this.tx * this.b) * n, i
  120.                     }, e.Matrix.prototype.translate = function(e, t) {
  121.                         return this.tx += e, this.ty += t, this
  122.                     }, e.Matrix.prototype.scale = function(e, t) {
  123.                         return this.a *= e, this.d *= t, this.c *= e, this.b *= t, this.tx *= e, this.ty *= t, this
  124.                     }, e.Matrix.prototype.rotate = function(e) {
  125.                         var t = Math.cos(e),
  126.                             i = Math.sin(e),
  127.                             n = this.a,
  128.                             r = this.c,
  129.                             o = this.tx;
  130.                         return this.a = n * t - this.b * i, this.b = n * i + this.b * t, this.c = r * t - this.d * i, this.d = r * i + this.d * t, this.tx = o * t - this.ty * i, this.ty = o * i + this.ty * t, this
  131.                     }, e.Matrix.prototype.append = function(e) {
  132.                         var t = this.a,
  133.                             i = this.b,
  134.                             n = this.c,
  135.                             r = this.d;
  136.                         return this.a = e.a * t + e.b * n, this.b = e.a * i + e.b * r, this.c = e.c * t + e.d * n, this.d = e.c * i + e.d * r, this.tx = e.tx * t + e.ty * n + this.tx, this.ty = e.tx * i + e.ty * r + this.ty, this
  137.                     }, e.Matrix.prototype.identity = function() {
  138.                         return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this
  139.                     }, e.identityMatrix = new e.Matrix, e.DisplayObject = function() {
  140.                         this.position = new e.Point, this.scale = new e.Point(1, 1), this.pivot = new e.Point(0, 0), this.rotation = 0, this.alpha = 1, this.visible = !0, this.hitArea = null, this.buttonMode = !1, this.renderable = !1, this.parent = null, this.stage = null, this.worldAlpha = 1, this._interactive = !1, this.defaultCursor = "pointer", this.worldTransform = new e.Matrix, this._sr = 0, this._cr = 1, this.filterArea = null, this._bounds = new e.Rectangle(0, 0, 1, 1), this._currentBounds = null, this._mask = null, this._cacheIsDirty = !1
  141.                     }, e.DisplayObject.prototype.constructor = e.DisplayObject, Object.defineProperty(e.DisplayObject.prototype, "interactive", {
  142.                         get: function() {
  143.                             return this._interactive
  144.                         },
  145.                         set: function(e) {
  146.                             this._interactive = e, this.stage && (this.stage.dirty = !0)
  147.                         }
  148.                     }), Object.defineProperty(e.DisplayObject.prototype, "worldVisible", {
  149.                         get: function() {
  150.                             var e = this;
  151.                             do {
  152.                                 if (!e.visible) return !1;
  153.                                 e = e.parent
  154.                             } while (e);
  155.                             return !0
  156.                         }
  157.                     }), Object.defineProperty(e.DisplayObject.prototype, "mask", {
  158.                         get: function() {
  159.                             return this._mask
  160.                         },
  161.                         set: function(e) {
  162.                             this._mask && (this._mask.isMask = !1), this._mask = e, this._mask && (this._mask.isMask = !0)
  163.                         }
  164.                     }), Object.defineProperty(e.DisplayObject.prototype, "filters", {
  165.                         get: function() {
  166.                             return this._filters
  167.                         },
  168.                         set: function(e) {
  169.                             if (e) {
  170.                                 for (var t = [], i = 0; i < e.length; i++)
  171.                                     for (var n = e[i].passes, r = 0; r < n.length; r++) t.push(n[r]);
  172.                                 this._filterBlock = {
  173.                                     target: this,
  174.                                     filterPasses: t
  175.                                 }
  176.                             }
  177.                             this._filters = e
  178.                         }
  179.                     }), e.DisplayObject.prototype.updateTransform = function() {
  180.                         var t, i, n, r, o, a, s = this.parent.worldTransform,
  181.                             h = this.worldTransform;
  182.                         this.rotation % e.PI_2 ? (this.rotation !== this.rotationCache && (this.rotationCache = this.rotation, this._sr = Math.sin(this.rotation), this._cr = Math.cos(this.rotation)), t = this._cr * this.scale.x, i = this._sr * this.scale.x, n = -this._sr * this.scale.y, r = this._cr * this.scale.y, o = this.position.x, a = this.position.y, (this.pivot.x || this.pivot.y) && (o -= this.pivot.x * t + this.pivot.y * n, a -= this.pivot.x * i + this.pivot.y * r), h.a = t * s.a + i * s.c, h.b = t * s.b + i * s.d, h.c = n * s.a + r * s.c, h.d = n * s.b + r * s.d, h.tx = o * s.a + a * s.c + s.tx, h.ty = o * s.b + a * s.d + s.ty) : (t = this.scale.x, r = this.scale.y, o = this.position.x - this.pivot.x * t, a = this.position.y - this.pivot.y * r, h.a = t * s.a, h.b = t * s.b, h.c = r * s.c, h.d = r * s.d, h.tx = o * s.a + a * s.c + s.tx, h.ty = o * s.b + a * s.d + s.ty), this.worldAlpha = this.alpha * this.parent.worldAlpha
  183.                     }, e.DisplayObject.prototype.displayObjectUpdateTransform = e.DisplayObject.prototype.updateTransform, e.DisplayObject.prototype.getBounds = function(t) {
  184.                         return t = t, e.EmptyRectangle
  185.                     }, e.DisplayObject.prototype.getLocalBounds = function() {
  186.                         return this.getBounds(e.identityMatrix)
  187.                     }, e.DisplayObject.prototype.setStageReference = function(e) {
  188.                         this.stage = e, this._interactive && (this.stage.dirty = !0)
  189.                     }, e.DisplayObject.prototype.toGlobal = function(e) {
  190.                         return this.displayObjectUpdateTransform(), this.worldTransform.apply(e)
  191.                     }, e.DisplayObject.prototype.toLocal = function(e, t) {
  192.                         return t && (e = t.toGlobal(e)), this.displayObjectUpdateTransform(), this.worldTransform.applyInverse(e)
  193.                     }, e.DisplayObject.prototype._renderWebGL = function(e) {}, e.DisplayObject.prototype._renderCanvas = function(e) {}, e.DisplayObject._tempMatrix = new e.Matrix, Object.defineProperty(e.DisplayObject.prototype, "x", {
  194.                         get: function() {
  195.                             return this.position.x
  196.                         },
  197.                         set: function(e) {
  198.                             this.position.x = e
  199.                         }
  200.                     }), Object.defineProperty(e.DisplayObject.prototype, "y", {
  201.                         get: function() {
  202.                             return this.position.y
  203.                         },
  204.                         set: function(e) {
  205.                             this.position.y = e
  206.                         }
  207.                     }), e.DisplayObjectContainer = function() {
  208.                         e.DisplayObject.call(this), this.children = []
  209.                     }, e.DisplayObjectContainer.prototype = Object.create(e.DisplayObject.prototype), e.DisplayObjectContainer.prototype.constructor = e.DisplayObjectContainer, Object.defineProperty(e.DisplayObjectContainer.prototype, "width", {
  210.                         get: function() {
  211.                             return this.scale.x * this.getLocalBounds().width
  212.                         },
  213.                         set: function(e) {
  214.                             var t = this.getLocalBounds().width;
  215.                             0 !== t ? this.scale.x = e / t : this.scale.x = 1, this._width = e
  216.                         }
  217.                     }), Object.defineProperty(e.DisplayObjectContainer.prototype, "height", {
  218.                         get: function() {
  219.                             return this.scale.y * this.getLocalBounds().height
  220.                         },
  221.                         set: function(e) {
  222.                             var t = this.getLocalBounds().height;
  223.                             0 !== t ? this.scale.y = e / t : this.scale.y = 1, this._height = e
  224.                         }
  225.                     }), e.DisplayObjectContainer.prototype.addChild = function(e) {
  226.                         return window.dirtyOnce = !0, this.addChildAt(e, this.children.length)
  227.                     }, e.DisplayObjectContainer.prototype.addChildAt = function(e, t) {
  228.                         if (t >= 0 && t <= this.children.length) return window.dirtyOnce = !0, window.Host && Host.Localize.UpdateChildren(e), e.parent && e.parent.removeChild(e), e.parent = this, this.children.splice(t, 0, e), this.stage && e.setStageReference(this.stage), e;
  229.                         throw new Error(e + "addChildAt: The index " + t + " supplied is out of bounds " + this.children.length)
  230.                     }, e.DisplayObjectContainer.prototype.getChildIndex = function(e) {
  231.                         var t = this.children.indexOf(e);
  232.                         if (t === -1) throw new Error("The supplied DisplayObject must be a child of the caller");
  233.                         return t
  234.                     }, e.DisplayObjectContainer.prototype.setChildIndex = function(e, t) {
  235.                         if (t < 0 || t >= this.children.length) throw new Error("The supplied index is out of bounds");
  236.                         window.dirtyOnce = !0;
  237.                         var i = this.getChildIndex(e);
  238.                         this.children.splice(i, 1), this.children.splice(t, 0, e)
  239.                     }, e.DisplayObjectContainer.prototype.getChildAt = function(e) {
  240.                         if (e < 0 || e >= this.children.length) throw new Error("getChildAt: Supplied index " + e + " does not exist in the child list, or the supplied DisplayObject must be a child of the caller");
  241.                         return this.children[e]
  242.                     }, e.DisplayObjectContainer.prototype.removeChild = function(e) {
  243.                         var t = this.children.indexOf(e);
  244.                         if (t !== -1) return this.removeChildAt(t)
  245.                     }, e.DisplayObjectContainer.prototype.removeChildAt = function(e) {
  246.                         var t = this.getChildAt(e);
  247.                         return this.stage && t.removeStageReference(), window.dirtyOnce = !0, t.parent = void 0, this.children.splice(e, 1), t
  248.                     }, e.DisplayObjectContainer.prototype.updateTransform = function() {
  249.                         if (this.visible) {
  250.                             this.displayObjectUpdateTransform();
  251.                             for (var e = 0, t = this.children.length; e < t; e++) this.children[e].updateTransform()
  252.                         }
  253.                     }, e.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = e.DisplayObjectContainer.prototype.updateTransform, e.DisplayObjectContainer.prototype.getBounds = function() {
  254.                         if (0 === this.children.length) return e.EmptyRectangle;
  255.                         for (var t, i, n, r = 1 / 0, o = 1 / 0, a = -(1 / 0), s = -(1 / 0), h = !1, l = 0, c = this.children.length; l < c; l++) {
  256.                             this.children[l].visible && (h = !0, t = this.children[l].getBounds(), r = r < t.x ? r : t.x, o = o < t.y ? o : t.y, i = t.width + t.x, n = t.height + t.y, a = a > i ? a : i, s = s > n ? s : n)
  257.                         }
  258.                         if (!h) return e.EmptyRectangle;
  259.                         var d = this._bounds;
  260.                         return d.x = r, d.y = o, d.width = a - r, d.height = s - o, d
  261.                     }, e.DisplayObjectContainer.prototype.getLocalBounds = function() {
  262.                         var t = this.worldTransform;
  263.                         this.worldTransform = e.identityMatrix;
  264.                         for (var i = 0, n = this.children.length; i < n; i++) this.children[i].updateTransform();
  265.                         var r = this.getBounds();
  266.                         return this.worldTransform = t, r
  267.                     }, e.DisplayObjectContainer.prototype.setStageReference = function(e) {
  268.                         this.stage = e, this._interactive && (this.stage.dirty = !0);
  269.                         for (var t = 0, i = this.children.length; t < i; t++) {
  270.                             this.children[t].setStageReference(e)
  271.                         }
  272.                     }, e.DisplayObjectContainer.prototype.removeStageReference = function() {
  273.                         for (var e = 0, t = this.children.length; e < t; e++) {
  274.                             this.children[e].removeStageReference()
  275.                         }
  276.                         this._interactive && (this.stage.dirty = !0), this.stage = null
  277.                     }, e.DisplayObjectContainer.prototype._renderWebGL = function(e) {
  278.                         if (this.visible && !(this.alpha <= 0)) {
  279.                             var t, i;
  280.                             if (this._mask || this._filters) {
  281.                                 for (this._mask && (e.spriteBatch.stop(), e.maskManager.pushMask(this.mask, e), e.spriteBatch.start()), t = 0, i = this.children.length; t < i; t++) this.children[t]._renderWebGL(e);
  282.                                 e.spriteBatch.stop(), this._mask && e.maskManager.popMask(this._mask, e), e.spriteBatch.start()
  283.                             } else
  284.                                 for (t = 0, i = this.children.length; t < i; t++) this.children[t]._renderWebGL(e)
  285.                         }
  286.                     }, e.DisplayObjectContainer.prototype._renderCanvas = function(e) {
  287.                         if (this.visible !== !1 && 0 !== this.alpha) {
  288.                             this._mask && e.maskManager.pushMask(this._mask, e);
  289.                             for (var t = 0, i = this.children.length; t < i; t++) {
  290.                                 this.children[t]._renderCanvas(e)
  291.                             }
  292.                             this._mask && e.maskManager.popMask(e)
  293.                         }
  294.                     }, e.Sprite = function(t) {
  295.                         e.DisplayObjectContainer.call(this), this.anchor = new e.Point, this.texture = t || e.Texture.emptyTexture, this._width = 0, this._height = 0, this.tint = 16777215, this.blendMode = e.blendModes.NORMAL, this.shader = null, this.texture.baseTexture.hasLoaded ? this.onTextureUpdate() : this.texture.onPixi("update", this.onTextureUpdate.bind(this)), this.renderable = !0
  296.                     }, e.Sprite.prototype = Object.create(e.DisplayObjectContainer.prototype), e.Sprite.prototype.constructor = e.Sprite, Object.defineProperty(e.Sprite.prototype, "width", {
  297.                         get: function() {
  298.                             return this.scale.x * this.texture.frame.width
  299.                         },
  300.                         set: function(e) {
  301.                             this.scale.x = e / this.texture.frame.width, this._width = e
  302.                         }
  303.                     }), Object.defineProperty(e.Sprite.prototype, "height", {
  304.                         get: function() {
  305.                             return this.scale.y * this.texture.frame.height
  306.                         },
  307.                         set: function(e) {
  308.                             this.scale.y = e / this.texture.frame.height, this._height = e
  309.                         }
  310.                     }), e.Sprite.prototype.setTexture = function(e) {
  311.                         this.texture = e, this.cachedTint = 16777215
  312.                     }, e.Sprite.prototype.onTextureUpdate = function() {
  313.                         this._width && (this.scale.x = this._width / this.texture.frame.width), this._height && (this.scale.y = this._height / this.texture.frame.height)
  314.                     }, e.Sprite.prototype.getBounds = function(e) {
  315.                         var t = this.texture.frame.width,
  316.                             i = this.texture.frame.height,
  317.                             n = t * (1 - this.anchor.x),
  318.                             r = t * -this.anchor.x,
  319.                             o = i * (1 - this.anchor.y),
  320.                             a = i * -this.anchor.y,
  321.                             s = e || this.worldTransform,
  322.                             h = s.a,
  323.                             l = s.b,
  324.                             c = s.c,
  325.                             d = s.d,
  326.                             u = s.tx,
  327.                             f = s.ty,
  328.                             p = -(1 / 0),
  329.                             g = -(1 / 0),
  330.                             v = 1 / 0,
  331.                             m = 1 / 0;
  332.                         if (0 === l && 0 === c) h < 0 && (h *= -1), d < 0 && (d *= -1), v = h * r + u, p = h * n + u, m = d * a + f, g = d * o + f;
  333.                         else {
  334.                             var x = h * r + c * a + u,
  335.                                 w = d * a + l * r + f,
  336.                                 y = h * n + c * a + u,
  337.                                 b = d * a + l * n + f,
  338.                                 T = h * n + c * o + u,
  339.                                 C = d * o + l * n + f,
  340.                                 S = h * r + c * o + u,
  341.                                 M = d * o + l * r + f;
  342.                             v = x < v ? x : v, v = y < v ? y : v, v = T < v ? T : v, v = S < v ? S : v, m = w < m ? w : m, m = b < m ? b : m, m = C < m ? C : m, m = M < m ? M : m, p = x > p ? x : p, p = y > p ? y : p, p = T > p ? T : p, p = S > p ? S : p, g = w > g ? w : g, g = b > g ? b : g, g = C > g ? C : g, g = M > g ? M : g
  343.                         }
  344.                         var R = this._bounds;
  345.                         return R.x = v, R.width = p - v, R.y = m, R.height = g - m, this._currentBounds = R, R
  346.                     }, e.Sprite.prototype._renderWebGL = function(e) {
  347.                         if (this.visible && !(this.alpha <= 0)) {
  348.                             var t, i;
  349.                             if (this._mask || this._filters) {
  350.                                 var n = e.spriteBatch;
  351.                                 for (this._filters && (n.flush(), e.filterManager.pushFilter(this._filterBlock)), this._mask && (n.stop(), e.maskManager.pushMask(this.mask, e), n.start()), n.render(this), t = 0, i = this.children.length; t < i; t++) this.children[t]._renderWebGL(e);
  352.                                 n.stop(), this._mask && e.maskManager.popMask(this._mask, e), this._filters && e.filterManager.popFilter(), n.start()
  353.                             } else
  354.                                 for (e.spriteBatch.render(this), t = 0, i = this.children.length; t < i; t++) this.children[t]._renderWebGL(e)
  355.                         }
  356.                     }, e.Sprite.prototype._renderCanvas = function(t) {
  357.                         if (!(this.visible === !1 || 0 === this.alpha || this.texture.crop.width <= 0 || this.texture.crop.height <= 0)) {
  358.                             if (this.blendMode !== t.currentBlendMode && (t.currentBlendMode = this.blendMode, t.context.globalCompositeOperation = e.blendModesCanvas[t.currentBlendMode]), this._mask && t.maskManager.pushMask(this._mask, t), this.texture.valid) {
  359.                                 t.context.globalAlpha = this.worldAlpha, t.smoothProperty && t.scaleMode !== this.texture.baseTexture.scaleMode && (t.scaleMode = this.texture.baseTexture.scaleMode, t.context[t.smoothProperty] = t.scaleMode === e.scaleModes.LINEAR);
  360.                                 var i = this.texture.trim ? this.texture.trim.x - this.anchor.x * this.texture.trim.width : this.anchor.x * -this.texture.frame.width,
  361.                                     n = this.texture.trim ? this.texture.trim.y - this.anchor.y * this.texture.trim.height : this.anchor.y * -this.texture.frame.height;
  362.                                 t.context.setTransform(this.worldTransform.a, this.worldTransform.b, this.worldTransform.c, this.worldTransform.d, 0 | this.worldTransform.tx, 0 | this.worldTransform.ty), i = 0 | i, n = 0 | n, 16777215 !== this.tint ? (this.cachedTint !== this.tint && (this.cachedTint = this.tint, this.tintedTexture = e.CanvasTinter.getTintedTexture(this, this.tint)), t.context.drawImage(this.tintedTexture, 0, 0, this.texture.crop.width, this.texture.crop.height, i, n, this.texture.crop.width, this.texture.crop.height)) : t.context.drawImage(this.texture.baseTexture.source, this.texture.crop.x, this.texture.crop.y, this.texture.crop.width, this.texture.crop.height, i, n, this.texture.crop.width, this.texture.crop.height)
  363.                             }
  364.                             for (var r = 0, o = this.children.length; r < o; r++) this.children[r]._renderCanvas(t);
  365.                             this._mask && t.maskManager.popMask(t)
  366.                         }
  367.                     }, e.Sprite.fromFrame = function(t) {
  368.                         var i = e.TextureCache[t];
  369.                         if (!i) throw new Error('The frameId "' + t + '" does not exist in the texture cache' + this);
  370.                         return new e.Sprite(i)
  371.                     }, e.Sprite.fromImage = function(t, i, n) {
  372.                         var r = e.Texture.fromImage(t, i, n);
  373.                         return new e.Sprite(r)
  374.                     }, e.SpriteBatch = function() {
  375.                         e.DisplayObjectContainer.call(this), this.ready = !1
  376.                     }, e.SpriteBatch.prototype = Object.create(e.DisplayObjectContainer.prototype), e.SpriteBatch.prototype.constructor = e.SpriteBatch, e.SpriteBatch.prototype.initWebGL = function(t) {
  377.                         this.fastSpriteBatch = new e.WebGLFastSpriteBatch(t), this.ready = !0
  378.                     }, e.SpriteBatch.prototype.updateTransform = function() {
  379.                         this.displayObjectUpdateTransform()
  380.                     }, e.SpriteBatch.prototype._renderWebGL = function(e) {
  381.                         !this.visible || this.alpha <= 0 || !this.children.length || (this.ready || this.initWebGL(e.gl), e.spriteBatch.stop(), e.shaderManager.setShader(e.shaderManager.fastShader), this.fastSpriteBatch.begin(this, e), this.fastSpriteBatch.render(this), e.spriteBatch.start())
  382.                     }, e.SpriteBatch.prototype._renderCanvas = function(e) {
  383.                         if (this.visible && !(this.alpha <= 0) && this.children.length) {
  384.                             var t = e.context;
  385.                             t.globalAlpha = this.worldAlpha, this.displayObjectUpdateTransform();
  386.                             for (var i = this.worldTransform, n = !0, r = 0; r < this.children.length; r++) {
  387.                                 var o = this.children[r];
  388.                                 if (o.visible) {
  389.                                     var a = o.texture,
  390.                                         s = a.frame;
  391.                                     if (t.globalAlpha = this.worldAlpha * o.alpha, o.rotation % (2 * Math.PI) === 0) n && (t.setTransform(i.a, i.b, i.c, i.d, i.tx, i.ty), n = !1), t.drawImage(a.baseTexture.source, s.x, s.y, s.width, s.height, o.anchor.x * (-s.width * o.scale.x) + o.position.x + .5 | 0, o.anchor.y * (-s.height * o.scale.y) + o.position.y + .5 | 0, s.width * o.scale.x, s.height * o.scale.y);
  392.                                     else {
  393.                                         n || (n = !0), o.displayObjectUpdateTransform();
  394.                                         var h = o.worldTransform;
  395.                                         t.setTransform(h.a, h.b, h.c, h.d, 0 | h.tx, 0 | h.ty), t.drawImage(a.baseTexture.source, s.x, s.y, s.width, s.height, o.anchor.x * -s.width + .5 | 0, o.anchor.y * -s.height + .5 | 0, s.width, s.height)
  396.                                     }
  397.                                 }
  398.                             }
  399.                         }
  400.                     }, e.Text = function(t, i) {
  401.                         this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), e.Sprite.call(this, e.Texture.fromCanvas(this.canvas)), this.setText(t), this.setStyle(i)
  402.                     }, e.Text.prototype = Object.create(e.Sprite.prototype), e.Text.prototype.constructor = e.Text, Object.defineProperty(e.Text.prototype, "width", {
  403.                         get: function() {
  404.                             return this.dirty && (this.updateText(), this.dirty = !1), this.scale.x * this.texture.frame.width
  405.                         },
  406.                         set: function(e) {
  407.                             this.scale.x = e / this.texture.frame.width, this._width = e
  408.                         }
  409.                     }), Object.defineProperty(e.Text.prototype, "height", {
  410.                         get: function() {
  411.                             return this.dirty && (this.updateText(), this.dirty = !1), this.scale.y * this.texture.frame.height
  412.                         },
  413.                         set: function(e) {
  414.                             this.scale.y = e / this.texture.frame.height, this._height = e
  415.                         }
  416.                     }), e.Text.prototype.setStyle = function(e) {
  417.                         e = e || {}, e.font = e.font || "bold 20pt Arial", e.fill = e.fill || "black", e.align = e.align || "left", e.stroke = e.stroke || "black", e.strokeThickness = e.strokeThickness || 0, e.wordWrap = e.wordWrap || !1, e.wordWrapWidth = e.wordWrapWidth || 100, e.dropShadow = e.dropShadow || !1, e.dropShadowAngle = e.dropShadowAngle || Math.PI / 6, e.dropShadowDistance = e.dropShadowDistance || 4, e.dropShadowColor = e.dropShadowColor || "black", this.style = e, this.dirty = !0
  418.                     }, e.Text.prototype.setText = function(e) {
  419.                         this.text != e.toString() && (this.text = e.toString() || " ", this.dirty = !0, window.dirtyOnce = !0)
  420.                     }, e.Text.prototype.updateText = function() {
  421.                         this.context.font = this.style._font || this.style.font;
  422.                         var e = this.text.toString();
  423.                         this.style.wordWrap && (e = this.wordWrap(this.text));
  424.                         for (var t = e ? e.split(/(?:\r\n|\r|\n)/) : [], i = [], n = 0, r = this.determineFontProperties(this.style._font || this.style.font), o = 0; o < t.length; o++) {
  425.                             var a = this.context.measureText(t[o]).width;
  426.                             i[o] = a, n = Math.max(n, a)
  427.                         }
  428.                         var s = n + this.style.strokeThickness;
  429.                         this.style.dropShadow && (s += this.style.dropShadowDistance), this.canvas.width = s + this.context.lineWidth;
  430.                         var h = r.fontSize + this.style.strokeThickness,
  431.                             l = h * t.length;
  432.                         this.style.dropShadow && (l += this.style.dropShadowDistance), this.canvas.height = l, this.context.scale(1, 1), this.context.font = this.style._font || this.style.font, this.context.strokeStyle = this.style.stroke, this.context.lineWidth = this.style.strokeThickness, this.context.textBaseline = "alphabetic";
  433.                         var c, d;
  434.                         if (this.style.dropShadow) {
  435.                             this.context.fillStyle = this.style.dropShadowColor;
  436.                             var u = Math.sin(this.style.dropShadowAngle) * this.style.dropShadowDistance,
  437.                                 f = Math.cos(this.style.dropShadowAngle) * this.style.dropShadowDistance;
  438.                             for (o = 0; o < t.length; o++) c = this.style.strokeThickness / 2, d = this.style.strokeThickness / 2 + o * h + r.ascent, "right" === this.style.align ? c += n - i[o] : "center" === this.style.align && (c += (n - i[o]) / 2), this.style.fill && this.context.fillText(t[o], c + u, d + f)
  439.                         }
  440.                         for (this.context.fillStyle = this.style.fill, o = 0; o < t.length; o++) c = this.style.strokeThickness / 2, d = this.style.strokeThickness / 2 + o * h + r.ascent, "right" === this.style.align ? c += n - i[o] : "center" === this.style.align && (c += (n - i[o]) / 2), this.style.stroke && this.style.strokeThickness && this.context.strokeText(t[o], c, d), this.style.fill && this.context.fillText(t[o], c, d);
  441.                         this.updateTexture()
  442.                     }, e.Text.prototype.updateTexture = function() {
  443.                         this.texture.baseTexture.width = this.canvas.width, this.texture.baseTexture.height = this.canvas.height, this.texture.crop.width = this.texture.frame.width = this.canvas.width, this.texture.crop.height = this.texture.frame.height = this.canvas.height, this._width = this.canvas.width, this._height = this.canvas.height, this.texture.baseTexture.dirty()
  444.                     }, e.Text.prototype._renderWebGL = function(t) {
  445.                         this.dirty && (this.updateText(), this.dirty = !1), e.Sprite.prototype._renderWebGL.call(this, t)
  446.                     }, e.Text.prototype._renderCanvas = function(t) {
  447.                         this.dirty && (this.updateText(), this.dirty = !1), e.Sprite.prototype._renderCanvas.call(this, t)
  448.                     }, e.Text.prototype.determineFontProperties = function(t) {
  449.                         var i = e.Text.fontPropertiesCache[t];
  450.                         if (!i) {
  451.                             i = {};
  452.                             var n = e.Text.fontPropertiesCanvas,
  453.                                 r = e.Text.fontPropertiesContext;
  454.                             r.font = t;
  455.                             var o = Math.ceil(r.measureText("|MÉq").width),
  456.                                 a = Math.ceil(r.measureText("M").width),
  457.                                 s = 2 * a;
  458.                             a = 1.4 * a | 0, n.width = o, n.height = s, r.fillStyle = "#ffffff", r.fillRect(0, 0, o, s), r.font = t, r.textBaseline = "alphabetic", r.fillStyle = "#888888", r.fillText("|MÉq", 0, a);
  459.                             var h, l, c = r.getImageData(0, 0, o, s).data,
  460.                                 d = c.length,
  461.                                 u = 4 * o,
  462.                                 f = 0,
  463.                                 p = !1;
  464.                             for (h = 0; h < a; h++) {
  465.                                 for (l = 0; l < u; l += 4)
  466.                                     if (255 !== c[f + l]) {
  467.                                         p = !0;
  468.                                         break
  469.                                     }
  470.                                 if (p) break;
  471.                                 f += u
  472.                             }
  473.                             for (i.ascent = a - h, f = d - u, p = !1, h = s; h > a; h--) {
  474.                                 for (l = 0; l < u; l += 4)
  475.                                     if (255 !== c[f + l]) {
  476.                                         p = !0;
  477.                                         break
  478.                                     }
  479.                                 if (p) break;
  480.                                 f -= u
  481.                             }
  482.                             i.descent = h - a, i.fontSize = i.ascent + i.descent, e.Text.fontPropertiesCache[t] = i
  483.                         }
  484.                         return i
  485.                     }, e.Text.prototype.wordWrap = function(e) {
  486.                         for (var t = "", i = e.split("\n"), n = 0; n < i.length; n++) {
  487.                             for (var r = this.style.wordWrapWidth, o = i[n].split(" "), a = 0; a < o.length; a++) {
  488.                                 var s = this.context.measureText(o[a]).width,
  489.                                     h = s + this.context.measureText(" ").width;
  490.                                 0 === a || h > r ? (a > 0 && (t += "\n"), t += o[a], r = this.style.wordWrapWidth - s) : (r -= h, t += " " + o[a])
  491.                             }
  492.                             n < i.length - 1 && (t += "\n")
  493.                         }
  494.                         return t
  495.                     }, e.Text.prototype.getBounds = function(t) {
  496.                         return this.dirty && (this.updateText(), this.dirty = !1), e.Sprite.prototype.getBounds.call(this, t)
  497.                     }, e.Text.prototype.destroy = function(e) {
  498.                         this.context = null, this.canvas = null, this.texture.destroy(void 0 === e || e)
  499.                     }, e.Text.fontPropertiesCache = {}, e.Text.fontPropertiesCanvas = document.createElement("canvas"), e.Text.fontPropertiesContext = e.Text.fontPropertiesCanvas.getContext("2d"), e.InteractionData = function() {
  500.                         this.global = new e.Point, this.target = null, this.originalEvent = null
  501.                     }, e.InteractionData.prototype.getLocalPosition = function(t, i) {
  502.                         var n = t.worldTransform,
  503.                             r = this.global,
  504.                             o = n.a,
  505.                             a = n.c,
  506.                             s = n.tx,
  507.                             h = n.b,
  508.                             l = n.d,
  509.                             c = n.ty,
  510.                             d = 1 / (o * l + a * -h);
  511.                         return i = i || new e.Point, i.x = l * d * r.x + -a * d * r.y + (c * a - s * l) * d, i.y = o * d * r.y + -h * d * r.x + (-c * o + s * h) * d, i
  512.                     }, e.InteractionData.prototype.constructor = e.InteractionData, e.InteractionManager = function(t) {
  513.                         this.stage = t, this.mouse = new e.InteractionData, this.touches = {}, this.tempPoint = new e.Point, this.mouseoverEnabled = !0, this.pool = [], this.interactiveItems = [], this.interactionDOMElement = null, this.onMouseMove = this.onMouseMove.bind(this), this.onMouseDown = this.onMouseDown.bind(this), this.onMouseOut = this.onMouseOut.bind(this), this.onMouseUp = this.onMouseUp.bind(this), this.onTouchStart = this.onTouchStart.bind(this), this.onTouchEnd = this.onTouchEnd.bind(this), this.onTouchMove = this.onTouchMove.bind(this), this.last = 0, this.currentCursorStyle = "inherit", this.mouseOut = !1, this._tempPoint = new e.Point
  514.                     }, e.InteractionManager.prototype.constructor = e.InteractionManager, e.InteractionManager.prototype.collectInteractiveSprite = function(e, t) {
  515.                         for (var i = e.children, n = i.length, r = n - 1; r >= 0; r--) {
  516.                             var o = i[r];
  517.                             o._interactive ? (t.interactiveChildren = !0, this.interactiveItems.push(o), o.children.length > 0 && this.collectInteractiveSprite(o, o)) : (o.__iParent = null, o.children.length > 0 && this.collectInteractiveSprite(o, t))
  518.                         }
  519.                     }, e.InteractionManager.prototype.setTarget = function(e) {
  520.                         this.target = e, null === this.interactionDOMElement && this.setTargetDomElement(e.view)
  521.                     }, e.InteractionManager.prototype.setTargetDomElement = function(e) {
  522.                         this.removeEvents(), window.navigator.msPointerEnabled && (e.style["-ms-content-zooming"] = "none", e.style["-ms-touch-action"] = "none"), this.interactionDOMElement = e, e.addEventListener("mousemove", this.onMouseMove, !0), e.addEventListener("mousedown", this.onMouseDown, !0), e.addEventListener("mouseout", this.onMouseOut, !0), e.addEventListener("touchstart", this.onTouchStart, !0), e.addEventListener("touchend", this.onTouchEnd, !0), e.addEventListener("touchmove", this.onTouchMove, !0), window.addEventListener("mouseup", this.onMouseUp, !0)
  523.                     }, e.InteractionManager.prototype.removeEvents = function() {
  524.                         this.interactionDOMElement && (this.interactionDOMElement.style["-ms-content-zooming"] = "", this.interactionDOMElement.style["-ms-touch-action"] = "", this.interactionDOMElement.removeEventListener("mousemove", this.onMouseMove, !0), this.interactionDOMElement.removeEventListener("mousedown", this.onMouseDown, !0), this.interactionDOMElement.removeEventListener("mouseout", this.onMouseOut, !0), this.interactionDOMElement.removeEventListener("touchstart", this.onTouchStart, !0), this.interactionDOMElement.removeEventListener("touchend", this.onTouchEnd, !0), this.interactionDOMElement.removeEventListener("touchmove", this.onTouchMove, !0), this.interactionDOMElement = null, window.removeEventListener("mouseup", this.onMouseUp, !0))
  525.                     }, e.InteractionManager.prototype.update = function() {
  526.                         if (this.target) {
  527.                             var t = Date.now(),
  528.                                 i = t - this.last;
  529.                             if (i = i * e.INTERACTION_FREQUENCY / 1e3, !(i < 1)) {
  530.                                 this.last = t;
  531.                                 var n = 0;
  532.                                 this.dirty && this.rebuildInteractiveGraph();
  533.                                 var r = this.interactiveItems.length,
  534.                                     o = "inherit",
  535.                                     s = !1;
  536.                                 for (n = 0; n < r; n++) {
  537.                                     var h = this.interactiveItems[n];
  538.                                     h.__hit = this.hitTest(h, this.mouse), this.mouse.target = h, h.__hit && !s ? (h.buttonMode && (o = h.defaultCursor), h.interactiveChildren || (s = !0), h.__isOver || (h.mouseover && h.mouseover(this.mouse), h.__isOver = !0)) : h.__isOver && (h.mouseout && h.mouseout(this.mouse), h.__isOver = !1)
  539.                                 }
  540.                                 this.currentCursorStyle === o || a.ignoreCursorChanges || (this.currentCursorStyle = o, this.interactionDOMElement.style.cursor = o)
  541.                             }
  542.                         }
  543.                     }, e.InteractionManager.prototype.rebuildInteractiveGraph = function() {
  544.                         this.dirty = !1;
  545.                         for (var e = this.interactiveItems.length, t = 0; t < e; t++) this.interactiveItems[t].interactiveChildren = !1;
  546.                         this.interactiveItems = [], this.stage.interactive && this.interactiveItems.push(this.stage), this.collectInteractiveSprite(this.stage, this.stage)
  547.                     }, e.InteractionManager.prototype.onMouseMove = function(e) {
  548.                         this.dirty && this.rebuildInteractiveGraph(), this.mouse.originalEvent = e;
  549.                         var t = this.interactionDOMElement.getBoundingClientRect();
  550.                         this.mouse.global.x = (e.clientX - t.left) * (this.target.width / t.width), this.mouse.global.y = (e.clientY - t.top) * (this.target.height / t.height);
  551.                         for (var i = this.interactiveItems.length, n = 0; n < i; n++) {
  552.                             var r = this.interactiveItems[n];
  553.                             r.mousemove && r.mousemove(this.mouse)
  554.                         }
  555.                     }, e.InteractionManager.prototype.onMouseDown = function(t) {
  556.                         this.dirty && this.rebuildInteractiveGraph(), this.mouse.originalEvent = t, e.AUTO_PREVENT_DEFAULT && this.mouse.originalEvent && this.mouse.originalEvent.preventDefault();
  557.                         for (var i = this.interactiveItems.length, n = this.mouse.originalEvent, r = 2 === n.button || 3 === n.which, o = r ? "rightdown" : "mousedown", a = r ? "rightclick" : "click", s = r ? "__rightIsDown" : "__mouseIsDown", h = r ? "__isRightDown" : "__isDown", l = 0; l < i; l++) {
  558.                             var c = this.interactiveItems[l];
  559.                             if ((c[o] || c[a]) && (c[s] = !0, c.__hit = this.hitTest(c, this.mouse), c.__hit && (c[o] && c[o](this.mouse), c[h] = !0, !c.interactiveChildren))) break
  560.                         }
  561.                     }, e.InteractionManager.prototype.onMouseOut = function(e) {
  562.                         this.dirty && this.rebuildInteractiveGraph(), this.mouse.originalEvent = e;
  563.                         var t = this.interactiveItems.length;
  564.                         this.interactionDOMElement.style.cursor = "inherit";
  565.                         for (var i = 0; i < t; i++) {
  566.                             var n = this.interactiveItems[i];
  567.                             n.__isOver && (this.mouse.target = n, n.mouseout && n.mouseout(this.mouse), n.__isOver = !1)
  568.                         }
  569.                         this.mouseOut = !0, this.mouse.global.x = -1e4, this.mouse.global.y = -1e4
  570.                     }, e.InteractionManager.prototype.onMouseUp = function(e) {
  571.                         this.dirty && this.rebuildInteractiveGraph(), this.mouse.originalEvent = e;
  572.                         for (var t = this.interactiveItems.length, i = !1, n = this.mouse.originalEvent, r = 2 === n.button || 3 === n.which, o = r ? "rightup" : "mouseup", a = r ? "rightclick" : "click", s = r ? "rightupoutside" : "mouseupoutside", h = r ? "__isRightDown" : "__isDown", l = 0; l < t; l++) {
  573.                             var c = this.interactiveItems[l];
  574.                             (c[a] || c[o] || c[s]) && (c.__hit = this.hitTest(c, this.mouse), c.__hit && !i ? (c[o] && c[o](this.mouse), c[h] && c[a] && c[a](this.mouse), c.interactiveChildren || (i = !0)) : c[h] && c[s] && c[s](this.mouse), c[h] = !1)
  575.                         }
  576.                     }, e.InteractionManager.prototype.hitTest = function(t, i) {
  577.                         var n = i.global;
  578.                         if (!t.worldVisible) return !1;
  579.                         t.worldTransform.applyInverse(n, this._tempPoint);
  580.                         var r, o = this._tempPoint.x,
  581.                             a = this._tempPoint.y;
  582.                         if (i.target = t, t.hitArea && t.hitArea.contains) return t.hitArea.contains(o, a);
  583.                         if (t instanceof e.Sprite) {
  584.                             var s, h = t.texture.frame.width,
  585.                                 l = t.texture.frame.height,
  586.                                 c = -h * t.anchor.x;
  587.                             if (o > c && o < c + h && (s = -l * t.anchor.y, a > s && a < s + l)) return !0
  588.                         } else if (t instanceof e.Graphics) {
  589.                             var d = t.graphicsData;
  590.                             for (r = 0; r < d.length; r++) {
  591.                                 var u = d[r];
  592.                                 if (u.fill && u.shape && u.shape.contains(o, a)) return !0
  593.                             }
  594.                         }
  595.                         var f = t.children.length;
  596.                         for (r = 0; r < f; r++) {
  597.                             var p = t.children[r];
  598.                             if (this.hitTest(p, i)) return i.target = t, !0
  599.                         }
  600.                         return !1
  601.                     }, e.InteractionManager.prototype.onTouchMove = function(e) {
  602.                         this.dirty && this.rebuildInteractiveGraph();
  603.                         var t, i = this.interactionDOMElement.getBoundingClientRect(),
  604.                             n = e.changedTouches,
  605.                             r = 0;
  606.                         for (r = 0; r < n.length; r++) {
  607.                             var o = n[r];
  608.                             t = this.touches[o.identifier], t.originalEvent = e, t.global.x = (o.clientX - i.left) * (this.target.width / i.width), t.global.y = (o.clientY - i.top) * (this.target.height / i.height);
  609.                             for (var a = 0; a < this.interactiveItems.length; a++) {
  610.                                 var s = this.interactiveItems[a];
  611.                                 s.touchmove && s.__touchData && s.__touchData[o.identifier] && s.touchmove(t)
  612.                             }
  613.                         }
  614.                         e.preventDefault()
  615.                     }, e.InteractionManager.prototype.onTouchStart = function(t) {
  616.                         this.dirty && this.rebuildInteractiveGraph();
  617.                         var i = this.interactionDOMElement.getBoundingClientRect();
  618.                         e.AUTO_PREVENT_DEFAULT && t.preventDefault();
  619.                         for (var n = t.changedTouches, r = 0; r < n.length; r++) {
  620.                             var o = n[r],
  621.                                 a = this.pool.pop();
  622.                             a || (a = new e.InteractionData), a.originalEvent = t, this.touches[o.identifier] = a, a.global.x = (o.clientX - i.left) * (this.target.width / i.width), a.global.y = (o.clientY - i.top) * (this.target.height / i.height);
  623.                             for (var s = this.interactiveItems.length, h = 0; h < s; h++) {
  624.                                 var l = this.interactiveItems[h];
  625.                                 if ((l.touchstart || l.tap) && (l.__hit = this.hitTest(l, a), l.__hit && (l.touchstart && l.touchstart(a), l.__isDown = !0, l.__touchData = l.__touchData || {}, l.__touchData[o.identifier] = a, !l.interactiveChildren))) break
  626.                             }
  627.                         }
  628.                     }, e.InteractionManager.prototype.onTouchEnd = function(e) {
  629.                         this.dirty && this.rebuildInteractiveGraph();
  630.                         for (var t = this.interactionDOMElement.getBoundingClientRect(), i = e.changedTouches, n = 0; n < i.length; n++) {
  631.                             var r = i[n],
  632.                                 o = this.touches[r.identifier],
  633.                                 a = !1;
  634.                             o.global.x = (r.clientX - t.left) * (this.target.width / t.width),
  635.                                 o.global.y = (r.clientY - t.top) * (this.target.height / t.height);
  636.                             for (var s = this.interactiveItems.length, h = 0; h < s; h++) {
  637.                                 var l = this.interactiveItems[h];
  638.                                 l.__touchData && l.__touchData[r.identifier] && (l.__hit = this.hitTest(l, l.__touchData[r.identifier]), o.originalEvent = e, (l.touchend || l.tap) && (l.__hit && !a ? (l.touchend && l.touchend(o), l.__isDown && l.tap && l.tap(o), l.interactiveChildren || (a = !0)) : l.__isDown && l.touchendoutside && l.touchendoutside(o), l.__isDown = !1), l.__touchData[r.identifier] = null)
  639.                             }
  640.                             this.pool.push(o), this.touches[r.identifier] = null
  641.                         }
  642.                     }, e.Stage = function(t) {
  643.                         e.DisplayObjectContainer.call(this), this.worldTransform = new e.Matrix, this.interactive = !0, this.interactionManager = new e.InteractionManager(this), this.dirty = !0, this.stage = this, this.stage.hitArea = new e.Rectangle(0, 0, 1e5, 1e5), this.setBackgroundColor(t)
  644.                     }, e.Stage.prototype = Object.create(e.DisplayObjectContainer.prototype), e.Stage.prototype.constructor = e.Stage, e.Stage.prototype.updateTransform = function() {
  645.                         this.worldAlpha = 1;
  646.                         for (var e = 0, t = this.children.length; e < t; e++) this.children[e].updateTransform();
  647.                         this.dirty && (this.dirty = !1, this.interactionManager.dirty = !0), this.interactive && this.interactionManager.update()
  648.                     }, e.Stage.prototype.setBackgroundColor = function(t) {
  649.                         this.backgroundColor = t || 0, this.backgroundColorSplit = e.hex2rgb(this.backgroundColor);
  650.                         var i = this.backgroundColor.toString(16);
  651.                         i = "000000".substr(0, 6 - i.length) + i, this.backgroundColorString = "#" + i
  652.                     }, e.Stage.prototype.getMousePosition = function() {
  653.                         return this.interactionManager.mouse.global
  654.                     }, e.hex2rgb = function(e) {
  655.                         return [(e >> 16 & 255) / 255, (e >> 8 & 255) / 255, (255 & e) / 255]
  656.                     }, e.rgb2hex = function(e) {
  657.                         return (255 * e[0] << 16) + (255 * e[1] << 8) + 255 * e[2]
  658.                     }, "function" != typeof Function.prototype.bind && (Function.prototype.bind = function() {
  659.                         return function(e) {
  660.                             function t() {
  661.                                 for (var n = arguments.length, o = new Array(n); n--;) o[n] = arguments[n];
  662.                                 return o = r.concat(o), i.apply(this instanceof t ? this : e, o)
  663.                             }
  664.                             var i = this,
  665.                                 n = arguments.length - 1,
  666.                                 r = [];
  667.                             if (n > 0)
  668.                                 for (r.length = n; n--;) r[n] = arguments[n + 1];
  669.                             if ("function" != typeof i) throw new TypeError;
  670.                             return t.prototype = function e(t) {
  671.                                 if (t && (e.prototype = t), !(this instanceof e)) return new e
  672.                             }(i.prototype), t
  673.                         }
  674.                     }()), e.canUseNewCanvasBlendModes = function() {
  675.                         if ("undefined" == typeof document) return !1;
  676.                         var e = document.createElement("canvas");
  677.                         e.width = 1, e.height = 1;
  678.                         var t = e.getContext("2d");
  679.                         return t.fillStyle = "#000", t.fillRect(0, 0, 1, 1), t.globalCompositeOperation = "multiply", t.fillStyle = "#fff", t.fillRect(0, 0, 1, 1), 0 === t.getImageData(0, 0, 1, 1).data[0]
  680.                     }, e.getNextPowerOfTwo = function(e) {
  681.                         if (e > 0 && 0 === (e & e - 1)) return e;
  682.                         for (var t = 1; t < e;) t <<= 1;
  683.                         return t
  684.                     }, e.isPowerOfTwo = function(e, t) {
  685.                         return e > 0 && 0 === (e & e - 1) && t > 0 && 0 === (t & t - 1)
  686.                     }, e.PolyK = {}, e.PolyK.Triangulate = function(t) {
  687.                         var i = !0,
  688.                             n = t.length >> 1;
  689.                         if (n < 3) return [];
  690.                         for (var r = [], o = [], a = 0; a < n; a++) o.push(a);
  691.                         a = 0;
  692.                         for (var s = n; s > 3;) {
  693.                             var h = o[(a + 0) % s],
  694.                                 l = o[(a + 1) % s],
  695.                                 c = o[(a + 2) % s],
  696.                                 d = t[2 * h],
  697.                                 u = t[2 * h + 1],
  698.                                 f = t[2 * l],
  699.                                 p = t[2 * l + 1],
  700.                                 g = t[2 * c],
  701.                                 v = t[2 * c + 1],
  702.                                 m = !1;
  703.                             if (e.PolyK._convex(d, u, f, p, g, v, i)) {
  704.                                 m = !0;
  705.                                 for (var x = 0; x < s; x++) {
  706.                                     var w = o[x];
  707.                                     if (w !== h && w !== l && w !== c && e.PolyK._PointInTriangle(t[2 * w], t[2 * w + 1], d, u, f, p, g, v)) {
  708.                                         m = !1;
  709.                                         break
  710.                                     }
  711.                                 }
  712.                             }
  713.                             if (m) r.push(h, l, c), o.splice((a + 1) % s, 1), s--, a = 0;
  714.                             else if (a++ > 3 * s) {
  715.                                 if (!i) return null;
  716.                                 for (r = [], o = [], a = 0; a < n; a++) o.push(a);
  717.                                 a = 0, s = n, i = !1
  718.                             }
  719.                         }
  720.                         return r.push(o[0], o[1], o[2]), r
  721.                     }, e.PolyK._PointInTriangle = function(e, t, i, n, r, o, a, s) {
  722.                         var h = a - i,
  723.                             l = s - n,
  724.                             c = r - i,
  725.                             d = o - n,
  726.                             u = e - i,
  727.                             f = t - n,
  728.                             p = h * h + l * l,
  729.                             g = h * c + l * d,
  730.                             v = h * u + l * f,
  731.                             m = c * c + d * d,
  732.                             x = c * u + d * f,
  733.                             w = 1 / (p * m - g * g),
  734.                             y = (m * v - g * x) * w,
  735.                             b = (p * x - g * v) * w;
  736.                         return y >= 0 && b >= 0 && y + b < 1
  737.                     }, e.PolyK._convex = function(e, t, i, n, r, o, a) {
  738.                         return (t - n) * (r - i) + (i - e) * (o - n) >= 0 === a
  739.                     }, e.EventTarget = {
  740.                         call: function(t) {
  741.                             t && (t = t.prototype || t, e.EventTarget.mixin(t))
  742.                         },
  743.                         mixin: function(t) {
  744.                             t.listeners = function(e) {
  745.                                 return this._listeners = this._listeners || {}, this._listeners[e] ? this._listeners[e].slice() : []
  746.                             }, t.emitPixi = t.dispatchEvent = function(t, i) {
  747.                                 if (this._listeners = this._listeners || {}, "object" == typeof t && (i = t, t = t.type), i && i.__isEventObject === !0 || (i = new e.Event(this, t, i)), this._listeners && this._listeners[t]) {
  748.                                     var n, r = this._listeners[t].slice(0),
  749.                                         o = r.length,
  750.                                         a = r[0];
  751.                                     for (n = 0; n < o; a = r[++n])
  752.                                         if (a.call(this, i), i.stoppedImmediate) return this;
  753.                                     if (i.stopped) return this
  754.                                 }
  755.                                 return this.parent && this.parent.emit && this.parent.emit.call(this.parent, t, i), this
  756.                             }, t.onPixi = t.addEventListener = function(e, t) {
  757.                                 return this._listeners = this._listeners || {}, (this._listeners[e] = this._listeners[e] || []).push(t), this
  758.                             }, t.oncePixi = function(e, t) {
  759.                                 function i() {
  760.                                     t.apply(n.offPixi(e, i), arguments)
  761.                                 }
  762.                                 this._listeners = this._listeners || {};
  763.                                 var n = this;
  764.                                 return i._originalHandler = t, this.onPixi(e, i)
  765.                             }, t.offPixi = t.removeEventListener = function(e, t) {
  766.                                 if (this._listeners = this._listeners || {}, !this._listeners[e]) return this;
  767.                                 for (var i = this._listeners[e], n = t ? i.length : 0; n-- > 0;) i[n] !== t && i[n]._originalHandler !== t || i.splice(n, 1);
  768.                                 return 0 === i.length && delete this._listeners[e], this
  769.                             }, t.removeAllListeners = function(e) {
  770.                                 return this._listeners = this._listeners || {}, this._listeners[e] ? (delete this._listeners[e], this) : this
  771.                             }
  772.                         }
  773.                     }, e.Event = function(e, t, i) {
  774.                         this.__isEventObject = !0, this.stopped = !1, this.stoppedImmediate = !1, this.target = e, this.type = t, this.data = i, this.content = i, this.timeStamp = Date.now()
  775.                     }, e.Event.prototype.stopPropagation = function() {
  776.                         this.stopped = !0
  777.                     }, e.Event.prototype.stopImmediatePropagation = function() {
  778.                         this.stoppedImmediate = !0
  779.                     }, e.autoDetectRenderer = function(t, i, n) {
  780.                         return t || (t = 800), i || (i = 600),
  781.                             function() {
  782.                                 try {
  783.                                     var e = document.createElement("canvas");
  784.                                     return !!window.WebGLRenderingContext && e.getContext("webgl")
  785.                                 } catch (e) {
  786.                                     return !1
  787.                                 }
  788.                             }() ? new e.WebGLRenderer(t, i, n) : new e.CanvasRenderer(t, i, n)
  789.                     }, e.autoDetectRecommendedRenderer = function(t, i, n) {
  790.                         t || (t = 800), i || (i = 600);
  791.                         var r = function() {
  792.                             try {
  793.                                 var e = document.createElement("canvas");
  794.                                 return !!window.WebGLRenderingContext && (e.getContext("webgl") || e.getContext("experimental-webgl"))
  795.                             } catch (e) {
  796.                                 return !1
  797.                             }
  798.                         }();
  799.                         /Android/i.test(navigator.userAgent);
  800.                         return r && !android ? new e.WebGLRenderer(t, i, n) : new e.CanvasRenderer(t, i, n)
  801.                     }, e.initDefaultShaders = function() {}, e.CompileVertexShader = function(t, i) {
  802.                         return e._CompileShader(t, i, t.VERTEX_SHADER)
  803.                     }, e.CompileFragmentShader = function(t, i) {
  804.                         return e._CompileShader(t, i, t.FRAGMENT_SHADER)
  805.                     }, e._CompileShader = function(e, t, i) {
  806.                         var n = t.join("\n"),
  807.                             r = e.createShader(i);
  808.                         return e.shaderSource(r, n), e.compileShader(r), e.getShaderParameter(r, e.COMPILE_STATUS) ? r : (window.console.log(e.getShaderInfoLog(r)), null)
  809.                     }, e.compileProgram = function(t, i, n) {
  810.                         var r = e.CompileFragmentShader(t, n),
  811.                             o = e.CompileVertexShader(t, i),
  812.                             a = t.createProgram();
  813.                         return t.attachShader(a, o), t.attachShader(a, r), t.linkProgram(a), t.getProgramParameter(a, t.LINK_STATUS) || window.console.log("Could not initialise shaders"), a
  814.                     }, e.PixiShader = function(t) {
  815.                         this._UID = e._UID++, this.gl = t, this.program = null, this.fragmentSrc = ["precision lowp float;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "uniform sampler2D uSampler;", "void main(void) {", "   gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;", "}"], this.textureCount = 0, this.firstRun = !0, this.dirty = !0, this.attributes = [], this.init()
  816.                     }, e.PixiShader.prototype.constructor = e.PixiShader, e.PixiShader.prototype.init = function() {
  817.                         var t = this.gl,
  818.                             i = e.compileProgram(t, this.vertexSrc || e.PixiShader.defaultVertexSrc, this.fragmentSrc);
  819.                         t.useProgram(i), this.uSampler = t.getUniformLocation(i, "uSampler"), this.projectionVector = t.getUniformLocation(i, "projectionVector"), this.offsetVector = t.getUniformLocation(i, "offsetVector"), this.dimensions = t.getUniformLocation(i, "dimensions"), this.aVertexPosition = t.getAttribLocation(i, "aVertexPosition"), this.aTextureCoord = t.getAttribLocation(i, "aTextureCoord"), this.colorAttribute = t.getAttribLocation(i, "aColor"), this.colorAttribute === -1 && (this.colorAttribute = 2), this.attributes = [this.aVertexPosition, this.aTextureCoord, this.colorAttribute];
  820.                         for (var n in this.uniforms) this.uniforms[n].uniformLocation = t.getUniformLocation(i, n);
  821.                         this.initUniforms(), this.program = i
  822.                     }, e.PixiShader.prototype.initUniforms = function() {
  823.                         this.textureCount = 1;
  824.                         var e, t = this.gl;
  825.                         for (var i in this.uniforms) {
  826.                             e = this.uniforms[i];
  827.                             var n = e.type;
  828.                             "sampler2D" === n ? (e._init = !1, null !== e.value && this.initSampler2D(e)) : "mat2" === n || "mat3" === n || "mat4" === n ? (e.glMatrix = !0, e.glValueLength = 1, "mat2" === n ? e.glFunc = t.uniformMatrix2fv : "mat3" === n ? e.glFunc = t.uniformMatrix3fv : "mat4" === n && (e.glFunc = t.uniformMatrix4fv)) : (e.glFunc = t["uniform" + n], "2f" === n || "2i" === n ? e.glValueLength = 2 : "3f" === n || "3i" === n ? e.glValueLength = 3 : "4f" === n || "4i" === n ? e.glValueLength = 4 : e.glValueLength = 1)
  829.                         }
  830.                     }, e.PixiShader.prototype.initSampler2D = function(e) {
  831.                         if (e.value && e.value.baseTexture && e.value.baseTexture.hasLoaded) {
  832.                             var t = this.gl;
  833.                             if (t.activeTexture(t["TEXTURE" + this.textureCount]), t.bindTexture(t.TEXTURE_2D, e.value.baseTexture._glTextures[t.id]), e.textureData) {
  834.                                 var i = e.textureData,
  835.                                     n = i.magFilter ? i.magFilter : t.LINEAR,
  836.                                     r = i.minFilter ? i.minFilter : t.LINEAR,
  837.                                     o = i.wrapS ? i.wrapS : t.CLAMP_TO_EDGE,
  838.                                     a = i.wrapT ? i.wrapT : t.CLAMP_TO_EDGE,
  839.                                     s = i.luminance ? t.LUMINANCE : t.RGBA;
  840.                                 if (i.repeat && (o = t.REPEAT, a = t.REPEAT), t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL, !!i.flipY), i.width) {
  841.                                     var h = i.width ? i.width : 512,
  842.                                         l = i.height ? i.height : 2,
  843.                                         c = i.border ? i.border : 0;
  844.                                     t.texImage2D(t.TEXTURE_2D, 0, s, h, l, c, s, t.UNSIGNED_BYTE, null)
  845.                                 } else t.texImage2D(t.TEXTURE_2D, 0, s, t.RGBA, t.UNSIGNED_BYTE, e.value.baseTexture.source);
  846.                                 t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, n), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, r), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, o), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, a)
  847.                             }
  848.                             t.uniform1i(e.uniformLocation, this.textureCount), e._init = !0, this.textureCount++
  849.                         }
  850.                     }, e.PixiShader.prototype.syncUniforms = function() {
  851.                         this.textureCount = 1;
  852.                         var t, i = this.gl;
  853.                         for (var n in this.uniforms) t = this.uniforms[n], 1 === t.glValueLength ? t.glMatrix === !0 ? t.glFunc.call(i, t.uniformLocation, t.transpose, t.value) : t.glFunc.call(i, t.uniformLocation, t.value) : 2 === t.glValueLength ? t.glFunc.call(i, t.uniformLocation, t.value.x, t.value.y) : 3 === t.glValueLength ? t.glFunc.call(i, t.uniformLocation, t.value.x, t.value.y, t.value.z) : 4 === t.glValueLength ? t.glFunc.call(i, t.uniformLocation, t.value.x, t.value.y, t.value.z, t.value.w) : "sampler2D" === t.type && (t._init ? (i.activeTexture(i["TEXTURE" + this.textureCount]), t.value.baseTexture._dirty[i.id] ? e.instances[i.id].updateTexture(t.value.baseTexture) : i.bindTexture(i.TEXTURE_2D, t.value.baseTexture._glTextures[i.id]), i.uniform1i(t.uniformLocation, this.textureCount), this.textureCount++) : this.initSampler2D(t))
  854.                     }, e.PixiShader.prototype.destroy = function() {
  855.                         this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null
  856.                     }, e.PixiShader.defaultVertexSrc = ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "attribute vec4 aColor;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "const vec2 center = vec2(-1.0, 1.0);", "void main(void) {", "   gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);", "   vTextureCoord = aTextureCoord;", "   vColor = vec4(aColor.rgb * aColor.a, aColor.a);", "}"], e.PixiFastShader = function(t) {
  857.                         this._UID = e._UID++, this.gl = t, this.program = null, this.fragmentSrc = ["precision lowp float;", "varying vec2 vTextureCoord;", "varying float vColor;", "uniform sampler2D uSampler;", "void main(void) {", "   gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;", "}"], this.vertexSrc = ["attribute vec2 aVertexPosition;", "attribute vec2 aPositionCoord;", "attribute vec2 aScale;", "attribute float aRotation;", "attribute vec2 aTextureCoord;", "attribute float aColor;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "uniform mat3 uMatrix;", "varying vec2 vTextureCoord;", "varying float vColor;", "const vec2 center = vec2(-1.0, 1.0);", "void main(void) {", "   vec2 v;", "   vec2 sv = aVertexPosition * aScale;", "   v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);", "   v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);", "   v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;", "   gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);", "   vTextureCoord = aTextureCoord;", "   vColor = aColor;", "}"], this.textureCount = 0, this.init()
  858.                     }, e.PixiFastShader.prototype.constructor = e.PixiFastShader, e.PixiFastShader.prototype.init = function() {
  859.                         var t = this.gl,
  860.                             i = e.compileProgram(t, this.vertexSrc, this.fragmentSrc);
  861.                         t.useProgram(i), this.uSampler = t.getUniformLocation(i, "uSampler"), this.projectionVector = t.getUniformLocation(i, "projectionVector"), this.offsetVector = t.getUniformLocation(i, "offsetVector"), this.dimensions = t.getUniformLocation(i, "dimensions"), this.uMatrix = t.getUniformLocation(i, "uMatrix"), this.aVertexPosition = t.getAttribLocation(i, "aVertexPosition"), this.aPositionCoord = t.getAttribLocation(i, "aPositionCoord"), this.aScale = t.getAttribLocation(i, "aScale"), this.aRotation = t.getAttribLocation(i, "aRotation"), this.aTextureCoord = t.getAttribLocation(i, "aTextureCoord"), this.colorAttribute = t.getAttribLocation(i, "aColor"), this.colorAttribute === -1 && (this.colorAttribute = 2), this.attributes = [this.aVertexPosition, this.aPositionCoord, this.aScale, this.aRotation, this.aTextureCoord, this.colorAttribute], this.program = i
  862.                     }, e.PixiFastShader.prototype.destroy = function() {
  863.                         this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null
  864.                     }, e.PrimitiveShader = function(t) {
  865.                         this._UID = e._UID++, this.gl = t, this.program = null, this.fragmentSrc = ["precision mediump float;", "varying vec4 vColor;", "void main(void) {", "   gl_FragColor = vColor;", "}"], this.vertexSrc = ["attribute vec2 aVertexPosition;", "attribute vec4 aColor;", "uniform mat3 translationMatrix;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "uniform float alpha;", "uniform float flipY;", "uniform vec3 tint;", "varying vec4 vColor;", "void main(void) {", "   vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);", "   v -= offsetVector.xyx;", "   gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);", "   vColor = aColor * vec4(tint * alpha, alpha);", "}"], this.init()
  866.                     }, e.PrimitiveShader.prototype.constructor = e.PrimitiveShader, e.PrimitiveShader.prototype.init = function() {
  867.                         var t = this.gl,
  868.                             i = e.compileProgram(t, this.vertexSrc, this.fragmentSrc);
  869.                         t.useProgram(i), this.projectionVector = t.getUniformLocation(i, "projectionVector"), this.offsetVector = t.getUniformLocation(i, "offsetVector"), this.tintColor = t.getUniformLocation(i, "tint"), this.flipY = t.getUniformLocation(i, "flipY"), this.aVertexPosition = t.getAttribLocation(i, "aVertexPosition"), this.colorAttribute = t.getAttribLocation(i, "aColor"), this.attributes = [this.aVertexPosition, this.colorAttribute], this.translationMatrix = t.getUniformLocation(i, "translationMatrix"), this.alpha = t.getUniformLocation(i, "alpha"), this.program = i
  870.                     }, e.PrimitiveShader.prototype.destroy = function() {
  871.                         this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null
  872.                     }, e.ComplexPrimitiveShader = function(t) {
  873.                         this._UID = e._UID++, this.gl = t, this.program = null, this.fragmentSrc = ["precision mediump float;", "varying vec4 vColor;", "void main(void) {", "   gl_FragColor = vColor;", "}"], this.vertexSrc = ["attribute vec2 aVertexPosition;", "uniform mat3 translationMatrix;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "uniform vec3 tint;", "uniform float alpha;", "uniform vec3 color;", "uniform float flipY;", "varying vec4 vColor;", "void main(void) {", "   vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);", "   v -= offsetVector.xyx;", "   gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);", "   vColor = vec4(color * alpha * tint, alpha);", "}"], this.init()
  874.                     }, e.ComplexPrimitiveShader.prototype.constructor = e.ComplexPrimitiveShader, e.ComplexPrimitiveShader.prototype.init = function() {
  875.                         var t = this.gl,
  876.                             i = e.compileProgram(t, this.vertexSrc, this.fragmentSrc);
  877.                         t.useProgram(i), this.projectionVector = t.getUniformLocation(i, "projectionVector"), this.offsetVector = t.getUniformLocation(i, "offsetVector"), this.tintColor = t.getUniformLocation(i, "tint"), this.color = t.getUniformLocation(i, "color"), this.flipY = t.getUniformLocation(i, "flipY"), this.aVertexPosition = t.getAttribLocation(i, "aVertexPosition"), this.attributes = [this.aVertexPosition, this.colorAttribute], this.translationMatrix = t.getUniformLocation(i, "translationMatrix"), this.alpha = t.getUniformLocation(i, "alpha"), this.program = i
  878.                     }, e.ComplexPrimitiveShader.prototype.destroy = function() {
  879.                         this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attribute = null
  880.                     }, e.WebGLGraphics = function() {}, e.WebGLGraphics.renderGraphics = function(t, i) {
  881.                         var n, r = i.gl,
  882.                             o = i.projection,
  883.                             a = i.offset,
  884.                             s = i.shaderManager.primitiveShader;
  885.                         t.dirty && e.WebGLGraphics.updateGraphics(t, r);
  886.                         for (var h = t._webGL[r.id], l = 0; l < h.data.length; l++) 1 === h.data[l].mode ? (n = h.data[l], i.stencilManager.pushStencil(t, n, i), r.drawElements(r.TRIANGLE_FAN, 4, r.UNSIGNED_SHORT, 2 * (n.indices.length - 4)), i.stencilManager.popStencil(t, n, i)) : (n = h.data[l], i.shaderManager.setShader(s), s = i.shaderManager.primitiveShader, r.uniformMatrix3fv(s.translationMatrix, !1, t.worldTransform.toArray(!0)), r.uniform1f(s.flipY, 1), r.uniform2f(s.projectionVector, o.x, -o.y), r.uniform2f(s.offsetVector, -a.x, -a.y), r.uniform3fv(s.tintColor, e.hex2rgb(t.tint)), r.uniform1f(s.alpha, t.worldAlpha), r.bindBuffer(r.ARRAY_BUFFER, n.buffer), r.vertexAttribPointer(s.aVertexPosition, 2, r.FLOAT, !1, 24, 0), r.vertexAttribPointer(s.colorAttribute, 4, r.FLOAT, !1, 24, 8), r.bindBuffer(r.ELEMENT_ARRAY_BUFFER, n.indexBuffer), r.drawElements(r.TRIANGLE_STRIP, n.indices.length, r.UNSIGNED_SHORT, 0))
  887.                     }, e.WebGLGraphics.updateGraphics = function(t, i) {
  888.                         var n = t._webGL[i.id];
  889.                         n || (n = t._webGL[i.id] = {
  890.                             lastIndex: 0,
  891.                             data: [],
  892.                             gl: i
  893.                         }), t.dirty = !1;
  894.                         var r;
  895.                         if (t.clearDirty) {
  896.                             for (t.clearDirty = !1, r = 0; r < n.data.length; r++) {
  897.                                 var o = n.data[r];
  898.                                 o.reset(), e.WebGLGraphics.graphicsDataPool.push(o)
  899.                             }
  900.                             n.data = [], n.lastIndex = 0
  901.                         }
  902.                         var a;
  903.                         for (r = n.lastIndex; r < t.graphicsData.length; r++) {
  904.                             var s = t.graphicsData[r];
  905.                             if (s.type === e.Graphics.POLY) {
  906.                                 if (s.points = s.shape.points.slice(), s.shape.closed && (s.points[0] === s.points[s.points.length - 2] && s.points[1] === s.points[s.points.length - 1] || s.points.push(s.points[0], s.points[1])), s.fill && s.points.length >= 6)
  907.                                     if (s.points.length < 12) {
  908.                                         a = e.WebGLGraphics.switchMode(n, 0);
  909.                                         var h = e.WebGLGraphics.buildPoly(s, a);
  910.                                         h || (a = e.WebGLGraphics.switchMode(n, 1), e.WebGLGraphics.buildComplexPoly(s, a))
  911.                                     } else a = e.WebGLGraphics.switchMode(n, 1), e.WebGLGraphics.buildComplexPoly(s, a);
  912.                                 s.lineWidth > 0 && (a = e.WebGLGraphics.switchMode(n, 0), e.WebGLGraphics.buildLine(s, a))
  913.                             } else a = e.WebGLGraphics.switchMode(n, 0), s.type === e.Graphics.RECT ? e.WebGLGraphics.buildRectangle(s, a) : s.type === e.Graphics.CIRC || s.type === e.Graphics.ELIP ? e.WebGLGraphics.buildCircle(s, a) : s.type === e.Graphics.RREC && e.WebGLGraphics.buildRoundedRectangle(s, a);
  914.                             n.lastIndex++
  915.                         }
  916.                         for (r = 0; r < n.data.length; r++) a = n.data[r], a.dirty && a.upload()
  917.                     }, e.WebGLGraphics.switchMode = function(t, i) {
  918.                         var n;
  919.                         return t.data.length ? (n = t.data[t.data.length - 1], n.mode === i && 1 !== i || (n = e.WebGLGraphics.graphicsDataPool.pop() || new e.WebGLGraphicsData(t.gl), n.mode = i, t.data.push(n))) : (n = e.WebGLGraphics.graphicsDataPool.pop() || new e.WebGLGraphicsData(t.gl), n.mode = i, t.data.push(n)), n.dirty = !0, n
  920.                     }, e.WebGLGraphics.buildRectangle = function(t, i) {
  921.                         var n = t.shape,
  922.                             r = n.x,
  923.                             o = n.y,
  924.                             a = n.width,
  925.                             s = n.height;
  926.                         if (t.fill) {
  927.                             var h = e.hex2rgb(t.fillColor),
  928.                                 l = t.fillAlpha,
  929.                                 c = h[0] * l,
  930.                                 d = h[1] * l,
  931.                                 u = h[2] * l,
  932.                                 f = i.points,
  933.                                 p = i.indices,
  934.                                 g = f.length / 6;
  935.                             f.push(r, o), f.push(c, d, u, l), f.push(r + a, o), f.push(c, d, u, l), f.push(r, o + s), f.push(c, d, u, l), f.push(r + a, o + s), f.push(c, d, u, l), p.push(g, g, g + 1, g + 2, g + 3, g + 3)
  936.                         }
  937.                         if (t.lineWidth) {
  938.                             var v = t.points;
  939.                             t.points = [r, o, r + a, o, r + a, o + s, r, o + s, r, o], e.WebGLGraphics.buildLine(t, i), t.points = v
  940.                         }
  941.                     }, e.WebGLGraphics.buildRoundedRectangle = function(t, i) {
  942.                         var n = t.shape,
  943.                             r = n.x,
  944.                             o = n.y,
  945.                             a = n.width,
  946.                             s = n.height,
  947.                             h = n.radius,
  948.                             l = [];
  949.                         if (l.push(r, o + h), l = l.concat(e.WebGLGraphics.quadraticBezierCurve(r, o + s - h, r, o + s, r + h, o + s)), l = l.concat(e.WebGLGraphics.quadraticBezierCurve(r + a - h, o + s, r + a, o + s, r + a, o + s - h)), l = l.concat(e.WebGLGraphics.quadraticBezierCurve(r + a, o + h, r + a, o, r + a - h, o)), l = l.concat(e.WebGLGraphics.quadraticBezierCurve(r + h, o, r, o, r, o + h)), t.fill) {
  950.                             var c = e.hex2rgb(t.fillColor),
  951.                                 d = t.fillAlpha,
  952.                                 u = c[0] * d,
  953.                                 f = c[1] * d,
  954.                                 p = c[2] * d,
  955.                                 g = i.points,
  956.                                 v = i.indices,
  957.                                 m = g.length / 6,
  958.                                 x = e.PolyK.Triangulate(l);
  959.                             if (!x) return t.shape.height++, e.WebGLGraphics.buildRoundedRectangle(t, i), void console.log("SOLVED PIXI RECT ISSUE LIKE CRAP");
  960.                             var w = 0;
  961.                             for (w = 0; w < x.length; w += 3) v.push(x[w] + m), v.push(x[w] + m), v.push(x[w + 1] + m), v.push(x[w + 2] + m), v.push(x[w + 2] + m);
  962.                             for (w = 0; w < l.length; w++) g.push(l[w], l[++w], u, f, p, d)
  963.                         }
  964.                         if (t.lineWidth) {
  965.                             var y = t.points;
  966.                             t.points = l, e.WebGLGraphics.buildLine(t, i), t.points = y
  967.                         }
  968.                     }, e.WebGLGraphics.quadraticBezierCurve = function(e, t, i, n, r, o) {
  969.                         function a(e, t, i) {
  970.                             return e + (t - e) * i
  971.                         }
  972.                         for (var s, h, l, c, d, u, f = 20, p = [], g = 0, v = 0; v <= f; v++) g = v / f, s = a(e, i, g), h = a(t, n, g), l = a(i, r, g), c = a(n, o, g), d = a(s, l, g), u = a(h, c, g), p.push(d, u);
  973.                         return p
  974.                     }, e.WebGLGraphics.buildCircle = function(t, i) {
  975.                         var n, r, o = t.shape,
  976.                             a = o.x,
  977.                             s = o.y;
  978.                         t.type === e.Graphics.CIRC ? (n = o.radius, r = o.radius) : (n = o.width, r = o.height);
  979.                         var h = 40,
  980.                             l = 2 * Math.PI / h,
  981.                             c = 0;
  982.                         if (t.fill) {
  983.                             var d = e.hex2rgb(t.fillColor),
  984.                                 u = t.fillAlpha,
  985.                                 f = d[0] * u,
  986.                                 p = d[1] * u,
  987.                                 g = d[2] * u,
  988.                                 v = i.points,
  989.                                 m = i.indices,
  990.                                 x = v.length / 6;
  991.                             for (m.push(x), c = 0; c < h + 1; c++) v.push(a, s, f, p, g, u), v.push(a + Math.sin(l * c) * n, s + Math.cos(l * c) * r, f, p, g, u), m.push(x++, x++);
  992.                             m.push(x - 1)
  993.                         }
  994.                         if (t.lineWidth) {
  995.                             var w = t.points;
  996.                             for (t.points = [], c = 0; c < h + 1; c++) t.points.push(a + Math.sin(l * c) * n, s + Math.cos(l * c) * r);
  997.                             e.WebGLGraphics.buildLine(t, i), t.points = w
  998.                         }
  999.                     }, e.WebGLGraphics.buildLine = function(t, i) {
  1000.                         var n = 0,
  1001.                             r = t.points;
  1002.                         if (0 !== r.length) {
  1003.                             if (t.lineWidth % 2)
  1004.                                 for (n = 0; n < r.length; n++) r[n] += .5;
  1005.                             var o = new e.Point(r[0], r[1]),
  1006.                                 a = new e.Point(r[r.length - 2], r[r.length - 1]);
  1007.                             if (o.x === a.x && o.y === a.y) {
  1008.                                 r = r.slice(), r.pop(), r.pop(), a = new e.Point(r[r.length - 2], r[r.length - 1]);
  1009.                                 var s = a.x + .5 * (o.x - a.x),
  1010.                                     h = a.y + .5 * (o.y - a.y);
  1011.                                 r.unshift(s, h), r.push(s, h)
  1012.                             }
  1013.                             var l, c, d, u, f, p, g, v, m, x, w, y, b, T, C, S, M, R, _, E, L, A, P, B = i.points,
  1014.                                 I = i.indices,
  1015.                                 F = r.length / 2,
  1016.                                 k = r.length,
  1017.                                 O = B.length / 6,
  1018.                                 G = t.lineWidth / 2,
  1019.                                 D = e.hex2rgb(t.lineColor),
  1020.                                 U = t.lineAlpha,
  1021.                                 H = D[0] * U,
  1022.                                 z = D[1] * U,
  1023.                                 W = D[2] * U;
  1024.                             for (d = r[0], u = r[1], f = r[2], p = r[3], m = -(u - p), x = d - f, P = Math.sqrt(m * m + x * x), m /= P, x /= P, m *= G, x *= G, B.push(d - m, u - x, H, z, W, U), B.push(d + m, u + x, H, z, W, U), n = 1; n < F - 1; n++) d = r[2 * (n - 1)], u = r[2 * (n - 1) + 1], f = r[2 * n], p = r[2 * n + 1], g = r[2 * (n + 1)], v = r[2 * (n + 1) + 1], m = -(u - p), x = d - f, P = Math.sqrt(m * m + x * x), m /= P, x /= P, m *= G, x *= G, w = -(p - v), y = f - g, P = Math.sqrt(w * w + y * y), w /= P, y /= P, w *= G, y *= G, C = -x + u - (-x + p), S = -m + f - (-m + d), M = (-m + d) * (-x + p) - (-m + f) * (-x + u), R = -y + v - (-y + p), _ = -w + f - (-w + g), E = (-w + g) * (-y + p) - (-w + f) * (-y + v), L = C * _ - R * S, Math.abs(L) < .1 ? (L += 10.1, B.push(f - m, p - x, H, z, W, U), B.push(f + m, p + x, H, z, W, U)) : (l = (S * E - _ * M) / L, c = (R * M - C * E) / L, A = (l - f) * (l - f) + (c - p) + (c - p), A > 19600 ? (b = m - w, T = x - y, P = Math.sqrt(b * b + T * T), b /= P, T /= P, b *= G, T *= G, B.push(f - b, p - T), B.push(H, z, W, U), B.push(f + b, p + T), B.push(H, z, W, U), B.push(f - b, p - T), B.push(H, z, W, U), k++) : (B.push(l, c), B.push(H, z, W, U), B.push(f - (l - f), p - (c - p)), B.push(H, z, W, U)));
  1025.                             for (d = r[2 * (F - 2)], u = r[2 * (F - 2) + 1], f = r[2 * (F - 1)], p = r[2 * (F - 1) + 1], m = -(u - p), x = d - f, P = Math.sqrt(m * m + x * x), m /= P, x /= P, m *= G, x *= G, B.push(f - m, p - x), B.push(H, z, W, U), B.push(f + m, p + x), B.push(H, z, W, U), I.push(O), n = 0; n < k; n++) I.push(O++);
  1026.                             I.push(O - 1)
  1027.                         }
  1028.                     }, e.WebGLGraphics.buildComplexPoly = function(t, i) {
  1029.                         var n = t.points.slice();
  1030.                         if (!(n.length < 6)) {
  1031.                             var r = i.indices;
  1032.                             i.points = n, i.alpha = t.fillAlpha, i.color = e.hex2rgb(t.fillColor);
  1033.                             for (var o, a, s = 1 / 0, h = -(1 / 0), l = 1 / 0, c = -(1 / 0), d = 0; d < n.length; d += 2) o = n[d], a = n[d + 1], s = o < s ? o : s, h = o > h ? o : h, l = a < l ? a : l, c = a > c ? a : c;
  1034.                             n.push(s, l, h, l, h, c, s, c);
  1035.                             var u = n.length / 2;
  1036.                             for (d = 0; d < u; d++) r.push(d)
  1037.                         }
  1038.                     }, e.WebGLGraphics.buildPoly = function(t, i) {
  1039.                         var n = t.points;
  1040.                         if (!(n.length < 6)) {
  1041.                             var r = i.points,
  1042.                                 o = i.indices,
  1043.                                 a = n.length / 2,
  1044.                                 s = e.hex2rgb(t.fillColor),
  1045.                                 h = t.fillAlpha,
  1046.                                 l = s[0] * h,
  1047.                                 c = s[1] * h,
  1048.                                 d = s[2] * h,
  1049.                                 u = e.PolyK.Triangulate(n);
  1050.                             if (!u) return !1;
  1051.                             var f = r.length / 6,
  1052.                                 p = 0;
  1053.                             for (p = 0; p < u.length; p += 3) o.push(u[p] + f), o.push(u[p] + f), o.push(u[p + 1] + f), o.push(u[p + 2] + f), o.push(u[p + 2] + f);
  1054.                             for (p = 0; p < a; p++) r.push(n[2 * p], n[2 * p + 1], l, c, d, h);
  1055.                             return !0
  1056.                         }
  1057.                     }, e.WebGLGraphics.graphicsDataPool = [], e.WebGLGraphicsData = function(e) {
  1058.                         this.gl = e, this.color = [0, 0, 0], this.points = [], this.indices = [], this.buffer = e.createBuffer(), this.indexBuffer = e.createBuffer(), this.mode = 1, this.alpha = 1, this.dirty = !0
  1059.                     }, e.WebGLGraphicsData.prototype.reset = function() {
  1060.                         this.points = [], this.indices = []
  1061.                     }, e.WebGLGraphicsData.prototype.upload = function() {
  1062.                         var t = this.gl;
  1063.                         this.glPoints = new e.Float32Array(this.points), t.bindBuffer(t.ARRAY_BUFFER, this.buffer), t.bufferData(t.ARRAY_BUFFER, this.glPoints, t.STATIC_DRAW), this.glIndicies = new e.Uint16Array(this.indices), t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer), t.bufferData(t.ELEMENT_ARRAY_BUFFER, this.glIndicies, t.STATIC_DRAW), this.dirty = !1
  1064.                     }, e.glContexts = [], e.instances = [], e.WebGLRenderer = function(t, i, n) {
  1065.                         if (n)
  1066.                             for (var r in e.defaultRenderOptions) "undefined" == typeof n[r] && (n[r] = e.defaultRenderOptions[r]);
  1067.                         else n = e.defaultRenderOptions;
  1068.                         e.defaultRenderer || (e.defaultRenderer = this), this.type = e.WEBGL_RENDERER, this.transparent = n.transparent, this.autoResize = n.autoResize || !1, this.preserveDrawingBuffer = n.preserveDrawingBuffer, this.clearBeforeRender = n.clearBeforeRender, this.width = t || 800, this.height = i || 600, this.view = n.view || document.createElement("canvas"), this.contextLostBound = this.handleContextLost.bind(this), this.contextRestoredBound = this.handleContextRestored.bind(this), this.view.addEventListener("webglcontextlost", this.contextLostBound, !1), this.view.addEventListener("webglcontextrestored", this.contextRestoredBound, !1), this._contextOptions = {
  1069.                             alpha: this.transparent,
  1070.                             antialias: n.antialias,
  1071.                             premultipliedAlpha: this.transparent && "notMultiplied" !== this.transparent,
  1072.                             stencil: !0,
  1073.                             preserveDrawingBuffer: n.preserveDrawingBuffer
  1074.                         }, this.projection = new e.Point, this.offset = new e.Point(0, 0), this.shaderManager = new e.WebGLShaderManager, this.spriteBatch = new e.WebGLSpriteBatch, this.maskManager = new e.WebGLMaskManager, this.filterManager = new e.WebGLFilterManager, this.stencilManager = new e.WebGLStencilManager, this.blendModeManager = new e.WebGLBlendModeManager, this.renderSession = {}, this.renderSession.gl = this.gl, this.renderSession.drawCount = 0, this.renderSession.shaderManager = this.shaderManager, this.renderSession.maskManager = this.maskManager, this.renderSession.filterManager = this.filterManager, this.renderSession.blendModeManager = this.blendModeManager, this.renderSession.spriteBatch = this.spriteBatch, this.renderSession.stencilManager = this.stencilManager, this.renderSession.renderer = this, this.initContext(), this.mapBlendModes()
  1075.                     }, e.WebGLRenderer.prototype.constructor = e.WebGLRenderer, e.WebGLRenderer.prototype.initContext = function() {
  1076.                         var t = this.view.getContext("webgl", this._contextOptions) || this.view.getContext("experimental-webgl", this._contextOptions);
  1077.                         if (this.gl = t, !t) throw new Error("This browser does not support webGL. Try using the canvas renderer");
  1078.                         this.glContextId = t.id = e.WebGLRenderer.glContextId++, e.glContexts[this.glContextId] = t, e.instances[this.glContextId] = this, t.disable(t.DEPTH_TEST), t.disable(t.CULL_FACE), t.enable(t.BLEND), this.shaderManager.setContext(t), this.spriteBatch.setContext(t), this.maskManager.setContext(t), this.filterManager.setContext(t), this.blendModeManager.setContext(t), this.stencilManager.setContext(t), this.renderSession.gl = this.gl, this.resize(this.width, this.height)
  1079.                     }, e.WebGLRenderer.prototype.render = function(e) {
  1080.                         if (!this.contextLost) {
  1081.                             this.__stage !== e && (e.interactive && e.interactionManager.removeEvents(), this.__stage = e), e.updateTransform();
  1082.                             var t = this.gl;
  1083.                             e._interactiveEventsAdded || (e._interactiveEventsAdded = !0, e.interactionManager.setTarget(this)), t.viewport(0, 0, this.width, this.height), t.bindFramebuffer(t.FRAMEBUFFER, null), t.clearColor(e.backgroundColorSplit[0], e.backgroundColorSplit[1], e.backgroundColorSplit[2], 1), t.clear(t.COLOR_BUFFER_BIT), this.renderDisplayObject(e, this.projection)
  1084.                         }
  1085.                     }, e.WebGLRenderer.prototype.renderDisplayObject = function(t, i, n) {
  1086.                         this.renderSession.blendModeManager.setBlendMode(e.blendModes.NORMAL), this.renderSession.drawCount = 0, this.renderSession.flipY = n ? -1 : 1, this.renderSession.projection = i, this.renderSession.offset = this.offset, this.spriteBatch.begin(this.renderSession), this.filterManager.begin(this.renderSession, n), t._renderWebGL(this.renderSession), this.spriteBatch.end()
  1087.                     }, e.WebGLRenderer.prototype.resize = function(e, t) {
  1088.                         this.width = e, this.height = t, this.view.width = this.width, this.view.height = this.height, this.gl.viewport(0, 0, this.width, this.height), this.projection.x = this.width / 2, this.projection.y = -this.height / 2
  1089.                     }, e.WebGLRenderer.prototype.updateTexture = function(t) {
  1090.                         if (t.hasLoaded) {
  1091.                             var i = this.gl;
  1092.                             return t._glTextures[i.id] || (t._glTextures[i.id] = i.createTexture()), i.bindTexture(i.TEXTURE_2D, t._glTextures[i.id]), i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t.premultipliedAlpha), t.source.getContext ? i.texImage2D(i.TEXTURE_2D, 0, i.RGBA, i.RGBA, i.UNSIGNED_BYTE, t.source.getContext("2d").getImageData(0, 0, t.source.width, t.source.height)) : i.texImage2D(i.TEXTURE_2D, 0, i.RGBA, i.RGBA, i.UNSIGNED_BYTE, t.source), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_MAG_FILTER, t.scaleMode === e.scaleModes.LINEAR ? i.LINEAR : i.NEAREST), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_MIN_FILTER, t.scaleMode === e.scaleModes.LINEAR ? i.LINEAR : i.NEAREST), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_WRAP_S, i.CLAMP_TO_EDGE), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_WRAP_T, i.CLAMP_TO_EDGE), t._dirty[i.id] = !1, t._glTextures[i.id]
  1093.                         }
  1094.                     }, e.WebGLRenderer.prototype.handleContextLost = function(e) {
  1095.                         e.preventDefault(), this.contextLost = !0
  1096.                     }, e.WebGLRenderer.prototype.handleContextRestored = function() {
  1097.                         this.initContext();
  1098.                         for (var t in e.TextureCache) {
  1099.                             e.TextureCache[t].baseTexture._glTextures = []
  1100.                         }
  1101.                         this.contextLost = !1
  1102.                     }, e.WebGLRenderer.prototype.destroy = function() {
  1103.                         this.view.removeEventListener("webglcontextlost", this.contextLostBound), this.view.removeEventListener("webglcontextrestored", this.contextRestoredBound), e.glContexts[this.glContextId] = null, this.projection = null, this.offset = null, this.shaderManager.destroy(), this.spriteBatch.destroy(), this.maskManager.destroy(), this.filterManager.destroy(), this.shaderManager = null, this.spriteBatch = null, this.maskManager = null, this.filterManager = null, this.gl = null, this.renderSession = null
  1104.                     }, e.WebGLRenderer.prototype.mapBlendModes = function() {
  1105.                         var t = this.gl;
  1106.                         e.blendModesWebGL || (e.blendModesWebGL = [], e.blendModesWebGL[e.blendModes.NORMAL] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.ADD] = [t.SRC_ALPHA, t.DST_ALPHA], e.blendModesWebGL[e.blendModes.MULTIPLY] = [t.DST_COLOR, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.SCREEN] = [t.SRC_ALPHA, t.ONE], e.blendModesWebGL[e.blendModes.OVERLAY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.DARKEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.LIGHTEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.COLOR_DODGE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.COLOR_BURN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.HARD_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.SOFT_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.DIFFERENCE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.EXCLUSION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.HUE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.SATURATION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.COLOR] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e.blendModesWebGL[e.blendModes.LUMINOSITY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA])
  1107.                     }, e.WebGLRenderer.glContextId = 0, e.WebGLBlendModeManager = function() {
  1108.                         this.currentBlendMode = 99999
  1109.                     }, e.WebGLBlendModeManager.prototype.constructor = e.WebGLBlendModeManager, e.WebGLBlendModeManager.prototype.setContext = function(e) {
  1110.                         this.gl = e
  1111.                     }, e.WebGLBlendModeManager.prototype.setBlendMode = function(t) {
  1112.                         if (this.currentBlendMode === t) return !1;
  1113.                         this.currentBlendMode = t;
  1114.                         var i = e.blendModesWebGL[this.currentBlendMode];
  1115.                         return this.gl.blendFunc(i[0], i[1]), !0
  1116.                     }, e.WebGLBlendModeManager.prototype.destroy = function() {
  1117.                         this.gl = null
  1118.                     }, e.WebGLMaskManager = function() {}, e.WebGLMaskManager.prototype.constructor = e.WebGLMaskManager, e.WebGLMaskManager.prototype.setContext = function(e) {
  1119.                         this.gl = e
  1120.                     }, e.WebGLMaskManager.prototype.pushMask = function(t, i) {
  1121.                         var n = i.gl;
  1122.                         t.dirty && e.WebGLGraphics.updateGraphics(t, n), t._webGL[n.id].data.length && i.stencilManager.pushStencil(t, t._webGL[n.id].data[0], i)
  1123.                     }, e.WebGLMaskManager.prototype.popMask = function(e, t) {
  1124.                         var i = this.gl;
  1125.                         t.stencilManager.popStencil(e, e._webGL[i.id].data[0], t)
  1126.                     }, e.WebGLMaskManager.prototype.destroy = function() {
  1127.                         this.gl = null
  1128.                     }, e.WebGLStencilManager = function() {
  1129.                         this.stencilStack = [], this.reverse = !0, this.count = 0
  1130.                     }, e.WebGLStencilManager.prototype.setContext = function(e) {
  1131.                         this.gl = e
  1132.                     }, e.WebGLStencilManager.prototype.pushStencil = function(e, t, i) {
  1133.                         var n = this.gl;
  1134.                         this.bindGraphics(e, t, i), 0 === this.stencilStack.length && (n.enable(n.STENCIL_TEST),
  1135.                             n.clear(n.STENCIL_BUFFER_BIT), this.reverse = !0, this.count = 0), this.stencilStack.push(t);
  1136.                         var r = this.count;
  1137.                         n.colorMask(!1, !1, !1, !1), n.stencilFunc(n.ALWAYS, 0, 255), n.stencilOp(n.KEEP, n.KEEP, n.INVERT), 1 === t.mode ? (n.drawElements(n.TRIANGLE_FAN, t.indices.length - 4, n.UNSIGNED_SHORT, 0), this.reverse ? (n.stencilFunc(n.EQUAL, 255 - r, 255), n.stencilOp(n.KEEP, n.KEEP, n.DECR)) : (n.stencilFunc(n.EQUAL, r, 255), n.stencilOp(n.KEEP, n.KEEP, n.INCR)), n.drawElements(n.TRIANGLE_FAN, 4, n.UNSIGNED_SHORT, 2 * (t.indices.length - 4)), this.reverse ? n.stencilFunc(n.EQUAL, 255 - (r + 1), 255) : n.stencilFunc(n.EQUAL, r + 1, 255), this.reverse = !this.reverse) : (this.reverse ? (n.stencilFunc(n.EQUAL, r, 255), n.stencilOp(n.KEEP, n.KEEP, n.INCR)) : (n.stencilFunc(n.EQUAL, 255 - r, 255), n.stencilOp(n.KEEP, n.KEEP, n.DECR)), n.drawElements(n.TRIANGLE_STRIP, t.indices.length, n.UNSIGNED_SHORT, 0), this.reverse ? n.stencilFunc(n.EQUAL, r + 1, 255) : n.stencilFunc(n.EQUAL, 255 - (r + 1), 255)), n.colorMask(!0, !0, !0, !0), n.stencilOp(n.KEEP, n.KEEP, n.KEEP), this.count++
  1138.                     }, e.WebGLStencilManager.prototype.bindGraphics = function(t, i, n) {
  1139.                         this._currentGraphics = t;
  1140.                         var r, o = this.gl,
  1141.                             a = n.projection,
  1142.                             s = n.offset;
  1143.                         1 === i.mode ? (r = n.shaderManager.complexPrimitiveShader, n.shaderManager.setShader(r), o.uniform1f(r.flipY, n.flipY), o.uniformMatrix3fv(r.translationMatrix, !1, t.worldTransform.toArray(!0)), o.uniform2f(r.projectionVector, a.x, -a.y), o.uniform2f(r.offsetVector, -s.x, -s.y), o.uniform3fv(r.tintColor, e.hex2rgb(t.tint)), o.uniform3fv(r.color, i.color), o.uniform1f(r.alpha, t.worldAlpha * i.alpha), o.bindBuffer(o.ARRAY_BUFFER, i.buffer), o.vertexAttribPointer(r.aVertexPosition, 2, o.FLOAT, !1, 8, 0), o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, i.indexBuffer)) : (r = n.shaderManager.primitiveShader, n.shaderManager.setShader(r), o.uniformMatrix3fv(r.translationMatrix, !1, t.worldTransform.toArray(!0)), o.uniform1f(r.flipY, n.flipY), o.uniform2f(r.projectionVector, a.x, -a.y), o.uniform2f(r.offsetVector, -s.x, -s.y), o.uniform3fv(r.tintColor, e.hex2rgb(t.tint)), o.uniform1f(r.alpha, t.worldAlpha), o.bindBuffer(o.ARRAY_BUFFER, i.buffer), o.vertexAttribPointer(r.aVertexPosition, 2, o.FLOAT, !1, 24, 0), o.vertexAttribPointer(r.colorAttribute, 4, o.FLOAT, !1, 24, 8), o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, i.indexBuffer))
  1144.                     }, e.WebGLStencilManager.prototype.popStencil = function(e, t, i) {
  1145.                         var n = this.gl;
  1146.                         if (this.stencilStack.pop(), this.count--, 0 === this.stencilStack.length) n.disable(n.STENCIL_TEST);
  1147.                         else {
  1148.                             var r = this.count;
  1149.                             this.bindGraphics(e, t, i), n.colorMask(!1, !1, !1, !1), 1 === t.mode ? (this.reverse = !this.reverse, this.reverse ? (n.stencilFunc(n.EQUAL, 255 - (r + 1), 255), n.stencilOp(n.KEEP, n.KEEP, n.INCR)) : (n.stencilFunc(n.EQUAL, r + 1, 255), n.stencilOp(n.KEEP, n.KEEP, n.DECR)), n.drawElements(n.TRIANGLE_FAN, 4, n.UNSIGNED_SHORT, 2 * (t.indices.length - 4)), n.stencilFunc(n.ALWAYS, 0, 255), n.stencilOp(n.KEEP, n.KEEP, n.INVERT), n.drawElements(n.TRIANGLE_FAN, t.indices.length - 4, n.UNSIGNED_SHORT, 0), this.reverse ? n.stencilFunc(n.EQUAL, r, 255) : n.stencilFunc(n.EQUAL, 255 - r, 255)) : (this.reverse ? (n.stencilFunc(n.EQUAL, r + 1, 255), n.stencilOp(n.KEEP, n.KEEP, n.DECR)) : (n.stencilFunc(n.EQUAL, 255 - (r + 1), 255), n.stencilOp(n.KEEP, n.KEEP, n.INCR)), n.drawElements(n.TRIANGLE_STRIP, t.indices.length, n.UNSIGNED_SHORT, 0), this.reverse ? n.stencilFunc(n.EQUAL, r, 255) : n.stencilFunc(n.EQUAL, 255 - r, 255)), n.colorMask(!0, !0, !0, !0), n.stencilOp(n.KEEP, n.KEEP, n.KEEP)
  1150.                         }
  1151.                     }, e.WebGLStencilManager.prototype.destroy = function() {
  1152.                         this.stencilStack = null, this.gl = null
  1153.                     }, e.WebGLShaderManager = function() {
  1154.                         this.maxAttibs = 10, this.attribState = [], this.tempAttribState = [];
  1155.                         for (var e = 0; e < this.maxAttibs; e++) this.attribState[e] = !1;
  1156.                         this.stack = []
  1157.                     }, e.WebGLShaderManager.prototype.constructor = e.WebGLShaderManager, e.WebGLShaderManager.prototype.setContext = function(t) {
  1158.                         this.gl = t, this.primitiveShader = new e.PrimitiveShader(t), this.complexPrimitiveShader = new e.ComplexPrimitiveShader(t), this.defaultShader = new e.PixiShader(t), this.fastShader = new e.PixiFastShader(t), this.setShader(this.defaultShader)
  1159.                     }, e.WebGLShaderManager.prototype.setAttribs = function(e) {
  1160.                         var t;
  1161.                         for (t = 0; t < this.tempAttribState.length; t++) this.tempAttribState[t] = !1;
  1162.                         for (t = 0; t < e.length; t++) {
  1163.                             var i = e[t];
  1164.                             this.tempAttribState[i] = !0
  1165.                         }
  1166.                         var n = this.gl;
  1167.                         for (t = 0; t < this.attribState.length; t++) this.attribState[t] !== this.tempAttribState[t] && (this.attribState[t] = this.tempAttribState[t], this.tempAttribState[t] ? n.enableVertexAttribArray(t) : n.disableVertexAttribArray(t))
  1168.                     }, e.WebGLShaderManager.prototype.setShader = function(e) {
  1169.                         return this._currentId !== e._UID && (this._currentId = e._UID, this.currentShader = e, this.gl.useProgram(e.program), this.setAttribs(e.attributes), !0)
  1170.                     }, e.WebGLShaderManager.prototype.destroy = function() {
  1171.                         this.attribState = null, this.tempAttribState = null, this.primitiveShader.destroy(), this.complexPrimitiveShader.destroy(), this.defaultShader.destroy(), this.fastShader.destroy(), this.gl = null
  1172.                     }, e.WebGLSpriteBatch = function() {
  1173.                         this.vertSize = 5, this.size = 2e3;
  1174.                         var t = 4 * this.size * 4 * this.vertSize,
  1175.                             i = 6 * this.size;
  1176.                         this.vertices = new e.ArrayBuffer(t), this.positions = new e.Float32Array(this.vertices), this.colors = new e.Uint32Array(this.vertices), this.indices = new e.Uint16Array(i), this.lastIndexCount = 0;
  1177.                         for (var n = 0, r = 0; n < i; n += 6, r += 4) this.indices[n + 0] = r + 0, this.indices[n + 1] = r + 1, this.indices[n + 2] = r + 2, this.indices[n + 3] = r + 0, this.indices[n + 4] = r + 2, this.indices[n + 5] = r + 3;
  1178.                         this.drawing = !1, this.currentBatchSize = 0, this.currentBaseTexture = null, this.dirty = !0, this.textures = [], this.blendModes = [], this.shaders = [], this.sprites = [], this.defaultShader = new e.AbstractFilter(["precision lowp float;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "uniform sampler2D uSampler;", "void main(void) {", "   gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;", "}"])
  1179.                     }, e.WebGLSpriteBatch.prototype.setContext = function(t) {
  1180.                         this.gl = t, this.vertexBuffer = t.createBuffer(), this.indexBuffer = t.createBuffer(), t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer), t.bufferData(t.ELEMENT_ARRAY_BUFFER, this.indices, t.STATIC_DRAW), t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer), t.bufferData(t.ARRAY_BUFFER, this.vertices, t.DYNAMIC_DRAW), this.currentBlendMode = 99999;
  1181.                         var i = new e.PixiShader(t);
  1182.                         i.fragmentSrc = this.defaultShader.fragmentSrc, i.uniforms = {}, i.init(), this.defaultShader.shaders[t.id] = i
  1183.                     }, e.WebGLSpriteBatch.prototype.begin = function(e) {
  1184.                         this.renderSession = e, this.shader = this.renderSession.shaderManager.defaultShader, this.start()
  1185.                     }, e.WebGLSpriteBatch.prototype.end = function() {
  1186.                         this.flush()
  1187.                     }, e.WebGLSpriteBatch.prototype.render = function(e) {
  1188.                         var t = e.texture;
  1189.                         this.currentBatchSize >= this.size && (this.flush(), this.currentBaseTexture = t.baseTexture);
  1190.                         var i = t._uvs;
  1191.                         if (i) {
  1192.                             var n, r, o, a, s = e.anchor.x,
  1193.                                 h = e.anchor.y;
  1194.                             if (t.trim) {
  1195.                                 var l = t.trim;
  1196.                                 r = l.x - s * l.width, n = r + t.crop.width, a = l.y - h * l.height, o = a + t.crop.height
  1197.                             } else n = t.frame.width * (1 - s), r = t.frame.width * -s, o = t.frame.height * (1 - h), a = t.frame.height * -h;
  1198.                             var c = 4 * this.currentBatchSize * this.vertSize,
  1199.                                 d = e.worldTransform,
  1200.                                 u = d.a,
  1201.                                 f = d.b,
  1202.                                 p = d.c,
  1203.                                 g = d.d,
  1204.                                 v = d.tx,
  1205.                                 m = d.ty,
  1206.                                 x = this.colors,
  1207.                                 w = this.positions;
  1208.                             t.floorCoordinates ? (w[c] = u * r + p * a + v | 0, w[c + 1] = g * a + f * r + m | 0, w[c + 5] = u * n + p * a + v | 0, w[c + 6] = g * a + f * n + m | 0, w[c + 10] = u * n + p * o + v | 0, w[c + 11] = g * o + f * n + m | 0, w[c + 15] = u * r + p * o + v | 0, w[c + 16] = g * o + f * r + m | 0) : (w[c] = u * r + p * a + v, w[c + 1] = g * a + f * r + m, w[c + 5] = u * n + p * a + v, w[c + 6] = g * a + f * n + m, w[c + 10] = u * n + p * o + v, w[c + 11] = g * o + f * n + m, w[c + 15] = u * r + p * o + v, w[c + 16] = g * o + f * r + m), w[c + 2] = i.x0, w[c + 3] = i.y0, w[c + 7] = i.x1, w[c + 8] = i.y1, w[c + 12] = i.x2, w[c + 13] = i.y2, w[c + 17] = i.x3, w[c + 18] = i.y3;
  1209.                             var y = e.tint;
  1210.                             x[c + 4] = x[c + 9] = x[c + 14] = x[c + 19] = (y >> 16) + (65280 & y) + ((255 & y) << 16) + (255 * e.worldAlpha << 24), this.sprites[this.currentBatchSize++] = e
  1211.                         }
  1212.                     }, e.WebGLSpriteBatch.prototype.renderTilingSprite = function(t) {
  1213.                         var i = t.tilingTexture;
  1214.                         this.currentBatchSize >= this.size && (this.flush(), this.currentBaseTexture = i.baseTexture), t._uvs || (t._uvs = new e.TextureUvs);
  1215.                         var n = t._uvs;
  1216.                         t.tilePosition.x %= i.baseTexture.width * t.tileScaleOffset.x, t.tilePosition.y %= i.baseTexture.height * t.tileScaleOffset.y;
  1217.                         var r = t.tilePosition.x / (i.baseTexture.width * t.tileScaleOffset.x),
  1218.                             o = t.tilePosition.y / (i.baseTexture.height * t.tileScaleOffset.y),
  1219.                             a = t.width / i.baseTexture.width / (t.tileScale.x * t.tileScaleOffset.x),
  1220.                             s = t.height / i.baseTexture.height / (t.tileScale.y * t.tileScaleOffset.y);
  1221.                         n.x0 = 0 - r, n.y0 = 0 - o, n.x1 = 1 * a - r, n.y1 = 0 - o, n.x2 = 1 * a - r, n.y2 = 1 * s - o, n.x3 = 0 - r, n.y3 = 1 * s - o;
  1222.                         var h = t.tint,
  1223.                             l = (h >> 16) + (65280 & h) + ((255 & h) << 16) + (255 * t.alpha << 24),
  1224.                             c = this.positions,
  1225.                             d = this.colors,
  1226.                             u = t.width,
  1227.                             f = t.height,
  1228.                             p = t.anchor.x,
  1229.                             g = t.anchor.y,
  1230.                             v = u * (1 - p),
  1231.                             m = u * -p,
  1232.                             x = f * (1 - g),
  1233.                             w = f * -g,
  1234.                             y = 4 * this.currentBatchSize * this.vertSize,
  1235.                             b = t.worldTransform,
  1236.                             T = b.a,
  1237.                             C = b.b,
  1238.                             S = b.c,
  1239.                             M = b.d,
  1240.                             R = b.tx,
  1241.                             _ = b.ty;
  1242.                         c[y++] = T * m + S * w + R, c[y++] = M * w + C * m + _, c[y++] = n.x0, c[y++] = n.y0, d[y++] = l, c[y++] = T * v + S * w + R, c[y++] = M * w + C * v + _, c[y++] = n.x1, c[y++] = n.y1, d[y++] = l, c[y++] = T * v + S * x + R, c[y++] = M * x + C * v + _, c[y++] = n.x2, c[y++] = n.y2, d[y++] = l, c[y++] = T * m + S * x + R, c[y++] = M * x + C * m + _, c[y++] = n.x3, c[y++] = n.y3, d[y++] = l, this.sprites[this.currentBatchSize++] = t
  1243.                     }, e.WebGLSpriteBatch.prototype.flush = function() {
  1244.                         if (0 !== this.currentBatchSize) {
  1245.                             var t, i = this.gl;
  1246.                             if (this.dirty) {
  1247.                                 this.dirty = !1, i.activeTexture(i.TEXTURE0), i.bindBuffer(i.ARRAY_BUFFER, this.vertexBuffer), i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, this.indexBuffer), t = this.defaultShader.shaders[i.id];
  1248.                                 var n = 4 * this.vertSize;
  1249.                                 i.vertexAttribPointer(t.aVertexPosition, 2, i.FLOAT, !1, n, 0), i.vertexAttribPointer(t.aTextureCoord, 2, i.FLOAT, !1, n, 8), i.vertexAttribPointer(t.colorAttribute, 4, i.UNSIGNED_BYTE, !0, n, 16)
  1250.                             }
  1251.                             if (this.currentBatchSize > .5 * this.size) i.bufferSubData(i.ARRAY_BUFFER, 0, this.vertices);
  1252.                             else {
  1253.                                 var r = this.positions.subarray(0, 4 * this.currentBatchSize * this.vertSize);
  1254.                                 i.bufferSubData(i.ARRAY_BUFFER, 0, r)
  1255.                             }
  1256.                             for (var o, a, s, h, l = 0, c = 0, d = null, u = this.renderSession.blendModeManager.currentBlendMode, f = null, p = !1, g = !1, v = 0, m = this.currentBatchSize; v < m; v++) {
  1257.                                 if (h = this.sprites[v], o = h.texture.baseTexture, a = h.blendMode, s = h.shader || this.defaultShader, p = u !== a, g = f !== s, (d !== o || p || g) && (this.renderBatch(d, l, c), c = v, l = 0, d = o, p && (u = a, this.renderSession.blendModeManager.setBlendMode(u)), g)) {
  1258.                                     f = s, t = f.shaders[i.id], t || (t = new e.PixiShader(i), t.fragmentSrc = f.fragmentSrc, t.uniforms = f.uniforms, t.init(), f.shaders[i.id] = t), this.renderSession.shaderManager.setShader(t), t.dirty && t.syncUniforms();
  1259.                                     var x = this.renderSession.projection;
  1260.                                     i.uniform2f(t.projectionVector, x.x, x.y);
  1261.                                     var w = this.renderSession.offset;
  1262.                                     i.uniform2f(t.offsetVector, w.x, w.y)
  1263.                                 }
  1264.                                 l++
  1265.                             }
  1266.                             this.renderBatch(d, l, c), this.currentBatchSize = 0
  1267.                         }
  1268.                     }, e.WebGLSpriteBatch.prototype.renderBatch = function(e, t, i) {
  1269.                         if (0 !== t) {
  1270.                             var n = this.gl;
  1271.                             e._dirty[n.id] ? this.renderSession.renderer.updateTexture(e) : n.bindTexture(n.TEXTURE_2D, e._glTextures[n.id]), n.drawElements(n.TRIANGLES, 6 * t, n.UNSIGNED_SHORT, 6 * i * 2), this.renderSession.drawCount++
  1272.                         }
  1273.                     }, e.WebGLSpriteBatch.prototype.stop = function() {
  1274.                         this.flush(), this.dirty = !0
  1275.                     }, e.WebGLSpriteBatch.prototype.start = function() {
  1276.                         this.dirty = !0
  1277.                     }, e.WebGLSpriteBatch.prototype.destroy = function() {
  1278.                         this.vertices = null, this.indices = null, this.gl.deleteBuffer(this.vertexBuffer), this.gl.deleteBuffer(this.indexBuffer), this.currentBaseTexture = null, this.gl = null
  1279.                     }, e.WebGLFastSpriteBatch = function(t) {
  1280.                         this.vertSize = 10, this.maxSize = 6e3, this.size = this.maxSize;
  1281.                         var i = 4 * this.size * this.vertSize,
  1282.                             n = 6 * this.maxSize;
  1283.                         this.vertices = new e.Float32Array(i), this.indices = new e.Uint16Array(n), this.vertexBuffer = null, this.indexBuffer = null, this.lastIndexCount = 0;
  1284.                         for (var r = 0, o = 0; r < n; r += 6, o += 4) this.indices[r + 0] = o + 0, this.indices[r + 1] = o + 1, this.indices[r + 2] = o + 2, this.indices[r + 3] = o + 0, this.indices[r + 4] = o + 2, this.indices[r + 5] = o + 3;
  1285.                         this.drawing = !1, this.currentBatchSize = 0, this.currentBaseTexture = null, this.currentBlendMode = 0, this.renderSession = null, this.shader = null, this.matrix = null, this.setContext(t)
  1286.                     }, e.WebGLFastSpriteBatch.prototype.constructor = e.WebGLFastSpriteBatch, e.WebGLFastSpriteBatch.prototype.setContext = function(e) {
  1287.                         this.gl = e, this.vertexBuffer = e.createBuffer(), this.indexBuffer = e.createBuffer(), e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer), e.bufferData(e.ELEMENT_ARRAY_BUFFER, this.indices, e.STATIC_DRAW), e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), e.bufferData(e.ARRAY_BUFFER, this.vertices, e.DYNAMIC_DRAW)
  1288.                     }, e.WebGLFastSpriteBatch.prototype.begin = function(e, t) {
  1289.                         this.renderSession = t, this.shader = this.renderSession.shaderManager.fastShader, this.matrix = e.worldTransform.toArray(!0), this.start()
  1290.                     }, e.WebGLFastSpriteBatch.prototype.end = function() {
  1291.                         this.flush()
  1292.                     }, e.WebGLFastSpriteBatch.prototype.render = function(e) {
  1293.                         var t = e.children,
  1294.                             i = t[0];
  1295.                         if (i.texture._uvs) {
  1296.                             this.currentBaseTexture = i.texture.baseTexture, i.blendMode !== this.renderSession.blendModeManager.currentBlendMode && (this.flush(), this.renderSession.blendModeManager.setBlendMode(i.blendMode));
  1297.                             for (var n = 0, r = t.length; n < r; n++) this.renderSprite(t[n]);
  1298.                             this.flush()
  1299.                         }
  1300.                     }, e.WebGLFastSpriteBatch.prototype.renderSprite = function(e) {
  1301.                         if (e.visible && (e.texture.baseTexture === this.currentBaseTexture || (this.flush(), this.currentBaseTexture = e.texture.baseTexture, e.texture._uvs))) {
  1302.                             var t, i, n, r, o, a, s, h, l = this.vertices;
  1303.                             if (t = e.texture._uvs, i = e.texture.frame.width, n = e.texture.frame.height, e.texture.trim) {
  1304.                                 var c = e.texture.trim;
  1305.                                 o = c.x - e.anchor.x * c.width, r = o + e.texture.crop.width, s = c.y - e.anchor.y * c.height, a = s + e.texture.crop.height
  1306.                             } else r = e.texture.frame.width * (1 - e.anchor.x), o = e.texture.frame.width * -e.anchor.x, a = e.texture.frame.height * (1 - e.anchor.y), s = e.texture.frame.height * -e.anchor.y;
  1307.                             h = 4 * this.currentBatchSize * this.vertSize, l[h++] = o, l[h++] = s, l[h++] = e.position.x, l[h++] = e.position.y, l[h++] = e.scale.x, l[h++] = e.scale.y, l[h++] = e.rotation, l[h++] = t.x0, l[h++] = t.y1, l[h++] = e.alpha, l[h++] = r, l[h++] = s, l[h++] = e.position.x, l[h++] = e.position.y, l[h++] = e.scale.x, l[h++] = e.scale.y, l[h++] = e.rotation, l[h++] = t.x1, l[h++] = t.y1, l[h++] = e.alpha, l[h++] = r, l[h++] = a, l[h++] = e.position.x, l[h++] = e.position.y, l[h++] = e.scale.x, l[h++] = e.scale.y, l[h++] = e.rotation, l[h++] = t.x2, l[h++] = t.y2, l[h++] = e.alpha, l[h++] = o, l[h++] = a, l[h++] = e.position.x, l[h++] = e.position.y, l[h++] = e.scale.x, l[h++] = e.scale.y, l[h++] = e.rotation, l[h++] = t.x3, l[h++] = t.y3, l[h++] = e.alpha, this.currentBatchSize++, this.currentBatchSize >= this.size && this.flush()
  1308.                         }
  1309.                     }, e.WebGLFastSpriteBatch.prototype.flush = function() {
  1310.                         if (0 !== this.currentBatchSize) {
  1311.                             var e = this.gl;
  1312.                             if (this.currentBaseTexture._glTextures[e.id] || this.renderSession.renderer.updateTexture(this.currentBaseTexture, e), e.bindTexture(e.TEXTURE_2D, this.currentBaseTexture._glTextures[e.id]), this.currentBatchSize > .5 * this.size) e.bufferSubData(e.ARRAY_BUFFER, 0, this.vertices);
  1313.                             else {
  1314.                                 var t = this.vertices.subarray(0, 4 * this.currentBatchSize * this.vertSize);
  1315.                                 e.bufferSubData(e.ARRAY_BUFFER, 0, t)
  1316.                             }
  1317.                             e.drawElements(e.TRIANGLES, 6 * this.currentBatchSize, e.UNSIGNED_SHORT, 0), this.currentBatchSize = 0, this.renderSession.drawCount++
  1318.                         }
  1319.                     }, e.WebGLFastSpriteBatch.prototype.stop = function() {
  1320.                         this.flush()
  1321.                     }, e.WebGLFastSpriteBatch.prototype.start = function() {
  1322.                         var e = this.gl;
  1323.                         e.activeTexture(e.TEXTURE0), e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
  1324.                         var t = this.renderSession.projection;
  1325.                         e.uniform2f(this.shader.projectionVector, t.x, t.y), e.uniformMatrix3fv(this.shader.uMatrix, !1, this.matrix);
  1326.                         var i = 4 * this.vertSize;
  1327.                         e.vertexAttribPointer(this.shader.aVertexPosition, 2, e.FLOAT, !1, i, 0), e.vertexAttribPointer(this.shader.aPositionCoord, 2, e.FLOAT, !1, i, 8), e.vertexAttribPointer(this.shader.aScale, 2, e.FLOAT, !1, i, 16), e.vertexAttribPointer(this.shader.aRotation, 1, e.FLOAT, !1, i, 24), e.vertexAttribPointer(this.shader.aTextureCoord, 2, e.FLOAT, !1, i, 28), e.vertexAttribPointer(this.shader.colorAttribute, 1, e.FLOAT, !1, i, 36)
  1328.                     }, e.WebGLFilterManager = function() {
  1329.                         this.filterStack = [], this.offsetX = 0, this.offsetY = 0
  1330.                     }, e.WebGLFilterManager.prototype.constructor = e.WebGLFilterManager, e.WebGLFilterManager.prototype.setContext = function(e) {
  1331.                         this.gl = e, this.texturePool = [], this.initShaderBuffers()
  1332.                     }, e.WebGLFilterManager.prototype.begin = function(e, t) {
  1333.                         this.renderSession = e, this.defaultShader = e.shaderManager.defaultShader;
  1334.                         var i = this.renderSession.projection;
  1335.                         this.width = 2 * i.x, this.height = 2 * -i.y, this.buffer = t
  1336.                     }, e.WebGLFilterManager.prototype.pushFilter = function(t) {
  1337.                         var i = this.gl,
  1338.                             n = this.renderSession.projection,
  1339.                             r = this.renderSession.offset;
  1340.                         t._filterArea = t.target.filterArea || t.target.getBounds(), this.filterStack.push(t);
  1341.                         var o = t.filterPasses[0];
  1342.                         this.offsetX += t._filterArea.x, this.offsetY += t._filterArea.y;
  1343.                         var a = this.texturePool.pop();
  1344.                         a ? a.resize(this.width, this.height) : a = new e.FilterTexture(this.gl, this.width, this.height), i.bindTexture(i.TEXTURE_2D, a.texture);
  1345.                         var s = t._filterArea,
  1346.                             h = o.padding;
  1347.                         s.x -= h, s.y -= h, s.width += 2 * h, s.height += 2 * h, s.x < 0 && (s.x = 0), s.width > this.width && (s.width = this.width), s.y < 0 && (s.y = 0), s.height > this.height && (s.height = this.height), i.bindFramebuffer(i.FRAMEBUFFER, a.frameBuffer), i.viewport(0, 0, s.width, s.height), n.x = s.width / 2, n.y = -s.height / 2, r.x = -s.x, r.y = -s.y, i.colorMask(!0, !0, !0, !0), i.clearColor(0, 0, 0, 0), i.clear(i.COLOR_BUFFER_BIT), t._glFilterTexture = a
  1348.                     }, e.WebGLFilterManager.prototype.popFilter = function() {
  1349.                         var t = this.gl,
  1350.                             i = this.filterStack.pop(),
  1351.                             n = i._filterArea,
  1352.                             r = i._glFilterTexture,
  1353.                             o = this.renderSession.projection,
  1354.                             a = this.renderSession.offset;
  1355.                         if (i.filterPasses.length > 1) {
  1356.                             t.viewport(0, 0, n.width, n.height), t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer), this.vertexArray[0] = 0, this.vertexArray[1] = n.height, this.vertexArray[2] = n.width, this.vertexArray[3] = n.height, this.vertexArray[4] = 0, this.vertexArray[5] = 0, this.vertexArray[6] = n.width, this.vertexArray[7] = 0, t.bufferSubData(t.ARRAY_BUFFER, 0, this.vertexArray), t.bindBuffer(t.ARRAY_BUFFER, this.uvBuffer), this.uvArray[2] = n.width / this.width, this.uvArray[5] = n.height / this.height, this.uvArray[6] = n.width / this.width, this.uvArray[7] = n.height / this.height, t.bufferSubData(t.ARRAY_BUFFER, 0, this.uvArray);
  1357.                             var s = r,
  1358.                                 h = this.texturePool.pop();
  1359.                             h || (h = new e.FilterTexture(this.gl, this.width, this.height)), h.resize(this.width, this.height), t.bindFramebuffer(t.FRAMEBUFFER, h.frameBuffer), t.clear(t.COLOR_BUFFER_BIT), t.disable(t.BLEND);
  1360.                             for (var l = 0; l < i.filterPasses.length - 1; l++) {
  1361.                                 var c = i.filterPasses[l];
  1362.                                 t.bindFramebuffer(t.FRAMEBUFFER, h.frameBuffer), t.activeTexture(t.TEXTURE0), t.bindTexture(t.TEXTURE_2D, s.texture), this.applyFilterPass(c, n, n.width, n.height);
  1363.                                 var d = s;
  1364.                                 s = h, h = d
  1365.                             }
  1366.                             t.enable(t.BLEND), r = s, this.texturePool.push(h)
  1367.                         }
  1368.                         var u = i.filterPasses[i.filterPasses.length - 1];
  1369.                         this.offsetX -= n.x, this.offsetY -= n.y;
  1370.                         var f = this.width,
  1371.                             p = this.height,
  1372.                             g = 0,
  1373.                             v = 0,
  1374.                             m = this.buffer;
  1375.                         if (0 === this.filterStack.length) t.colorMask(!0, !0, !0, !0);
  1376.                         else {
  1377.                             var x = this.filterStack[this.filterStack.length - 1];
  1378.                             n = x._filterArea, f = n.width, p = n.height, g = n.x, v = n.y, m = x._glFilterTexture.frameBuffer
  1379.                         }
  1380.                         o.x = f / 2, o.y = -p / 2, a.x = g, a.y = v, n = i._filterArea;
  1381.                         var w = n.x - g,
  1382.                             y = n.y - v;
  1383.                         t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer), this.vertexArray[0] = w, this.vertexArray[1] = y + n.height, this.vertexArray[2] = w + n.width, this.vertexArray[3] = y + n.height, this.vertexArray[4] = w, this.vertexArray[5] = y, this.vertexArray[6] = w + n.width, this.vertexArray[7] = y, t.bufferSubData(t.ARRAY_BUFFER, 0, this.vertexArray), t.bindBuffer(t.ARRAY_BUFFER, this.uvBuffer), this.uvArray[2] = n.width / this.width, this.uvArray[5] = n.height / this.height, this.uvArray[6] = n.width / this.width, this.uvArray[7] = n.height / this.height, t.bufferSubData(t.ARRAY_BUFFER, 0, this.uvArray), t.viewport(0, 0, f, p), t.bindFramebuffer(t.FRAMEBUFFER, m), t.activeTexture(t.TEXTURE0), t.bindTexture(t.TEXTURE_2D, r.texture), this.applyFilterPass(u, n, f, p), this.texturePool.push(r), i._glFilterTexture = null
  1384.                     }, e.WebGLFilterManager.prototype.applyFilterPass = function(t, i, n, r) {
  1385.                         var o = this.gl,
  1386.                             a = t.shaders[o.id];
  1387.                         a || (a = new e.PixiShader(o), a.fragmentSrc = t.fragmentSrc, a.uniforms = t.uniforms, a.init(), t.shaders[o.id] = a), this.renderSession.shaderManager.setShader(a), o.uniform2f(a.projectionVector, n / 2, -r / 2), o.uniform2f(a.offsetVector, 0, 0), t.uniforms.dimensions && (t.uniforms.dimensions.value[0] = this.width, t.uniforms.dimensions.value[1] = this.height, t.uniforms.dimensions.value[2] = this.vertexArray[0], t.uniforms.dimensions.value[3] = this.vertexArray[5]), a.syncUniforms(), o.bindBuffer(o.ARRAY_BUFFER, this.vertexBuffer), o.vertexAttribPointer(a.aVertexPosition, 2, o.FLOAT, !1, 0, 0), o.bindBuffer(o.ARRAY_BUFFER, this.uvBuffer), o.vertexAttribPointer(a.aTextureCoord, 2, o.FLOAT, !1, 0, 0), o.bindBuffer(o.ARRAY_BUFFER, this.colorBuffer), o.vertexAttribPointer(a.colorAttribute, 2, o.FLOAT, !1, 0, 0), o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, this.indexBuffer), o.drawElements(o.TRIANGLES, 6, o.UNSIGNED_SHORT, 0), this.renderSession.drawCount++
  1388.                     }, e.WebGLFilterManager.prototype.initShaderBuffers = function() {
  1389.                         var t = this.gl;
  1390.                         this.vertexBuffer = t.createBuffer(), this.uvBuffer = t.createBuffer(), this.colorBuffer = t.createBuffer(), this.indexBuffer = t.createBuffer(), this.vertexArray = new e.Float32Array([0, 0, 1, 0, 0, 1, 1, 1]), t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer), t.bufferData(t.ARRAY_BUFFER, this.vertexArray, t.STATIC_DRAW), this.uvArray = new e.Float32Array([0, 0, 1, 0, 0, 1, 1, 1]), t.bindBuffer(t.ARRAY_BUFFER, this.uvBuffer), t.bufferData(t.ARRAY_BUFFER, this.uvArray, t.STATIC_DRAW), this.colorArray = new e.Float32Array([1, 16777215, 1, 16777215, 1, 16777215, 1, 16777215]), t.bindBuffer(t.ARRAY_BUFFER, this.colorBuffer), t.bufferData(t.ARRAY_BUFFER, this.colorArray, t.STATIC_DRAW), t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer), t.bufferData(t.ELEMENT_ARRAY_BUFFER, new Uint16Array([0, 1, 2, 1, 3, 2]), t.STATIC_DRAW)
  1391.                     }, e.WebGLFilterManager.prototype.destroy = function() {
  1392.                         var e = this.gl;
  1393.                         this.filterStack = null, this.offsetX = 0, this.offsetY = 0;
  1394.                         for (var t = 0; t < this.texturePool.length; t++) this.texturePool[t].destroy();
  1395.                         this.texturePool = null, e.deleteBuffer(this.vertexBuffer), e.deleteBuffer(this.uvBuffer), e.deleteBuffer(this.colorBuffer), e.deleteBuffer(this.indexBuffer)
  1396.                     }, e.FilterTexture = function(t, i, n, r) {
  1397.                         this.gl = t, this.frameBuffer = t.createFramebuffer(), this.texture = t.createTexture(), r = r || e.scaleModes.DEFAULT, t.bindTexture(t.TEXTURE_2D, this.texture), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, r === e.scaleModes.LINEAR ? t.LINEAR : t.NEAREST), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, r === e.scaleModes.LINEAR ? t.LINEAR : t.NEAREST), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE), t.bindFramebuffer(t.FRAMEBUFFER, this.frameBuffer), t.bindFramebuffer(t.FRAMEBUFFER, this.frameBuffer), t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0, t.TEXTURE_2D, this.texture, 0), this.renderBuffer = t.createRenderbuffer(), t.bindRenderbuffer(t.RENDERBUFFER, this.renderBuffer), t.framebufferRenderbuffer(t.FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, t.RENDERBUFFER, this.renderBuffer), this.resize(i, n)
  1398.                     }, e.FilterTexture.prototype.constructor = e.FilterTexture, e.FilterTexture.prototype.clear = function() {
  1399.                         var e = this.gl;
  1400.                         e.clearColor(0, 0, 0, 0), e.clear(e.COLOR_BUFFER_BIT)
  1401.                     }, e.FilterTexture.prototype.resize = function(e, t) {
  1402.                         if (this.width !== e || this.height !== t) {
  1403.                             this.width = e, this.height = t;
  1404.                             var i = this.gl;
  1405.                             i.bindTexture(i.TEXTURE_2D, this.texture), i.texImage2D(i.TEXTURE_2D, 0, i.RGBA, e, t, 0, i.RGBA, i.UNSIGNED_BYTE, null), i.bindRenderbuffer(i.RENDERBUFFER, this.renderBuffer), i.renderbufferStorage(i.RENDERBUFFER, i.DEPTH_STENCIL, e, t)
  1406.                         }
  1407.                     }, e.FilterTexture.prototype.destroy = function() {
  1408.                         var e = this.gl;
  1409.                         e.deleteFramebuffer(this.frameBuffer), e.deleteTexture(this.texture), this.frameBuffer = null, this.texture = null
  1410.                     }, e.CanvasBuffer = function(e, t) {
  1411.                         this.width = e, this.height = t, this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.canvas.width = e, this.canvas.height = t
  1412.                     }, e.CanvasBuffer.prototype.constructor = e.CanvasBuffer, e.CanvasBuffer.prototype.clear = function() {
  1413.                         this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.width, this.height)
  1414.                     }, e.CanvasBuffer.prototype.resize = function(e, t) {
  1415.                         this.width = this.canvas.width = e, this.height = this.canvas.height = t
  1416.                     }, e.CanvasMaskManager = function() {}, e.CanvasMaskManager.prototype.constructor = e.CanvasMaskManager, e.CanvasMaskManager.prototype.pushMask = function(t, i) {
  1417.                         var n = i.context;
  1418.                         n.save();
  1419.                         var r = t.alpha,
  1420.                             o = t.worldTransform;
  1421.                         n.setTransform(o.a, o.b, o.c, o.d, o.tx, o.ty), e.CanvasGraphics.renderGraphicsMask(t, n), n.clip(), t.worldAlpha = r
  1422.                     }, e.CanvasMaskManager.prototype.popMask = function(e) {
  1423.                         e.context.restore()
  1424.                     }, e.CanvasTinter = function() {}, e.CanvasTinter.getTintedTexture = function(t, i) {
  1425.                         var n = t.texture;
  1426.                         i = e.CanvasTinter.roundColor(i);
  1427.                         var r = "#" + ("00000" + (0 | i).toString(16)).substr(-6);
  1428.                         if (n.tintCache = n.tintCache || {}, n.tintCache[r]) return n.tintCache[r];
  1429.                         var o = e.CanvasTinter.canvas || document.createElement("canvas");
  1430.                         if (e.CanvasTinter.tintMethod(n, i, o), e.CanvasTinter.convertTintToImage) {
  1431.                             var a = new Image;
  1432.                             a.src = o.toDataURL(), n.tintCache[r] = a
  1433.                         } else n.tintCache[r] = o, e.CanvasTinter.canvas = null;
  1434.                         return o
  1435.                     }, e.CanvasTinter.tintWithMultiply = function(e, t, i) {
  1436.                         var n = i.getContext("2d"),
  1437.                             r = e.crop;
  1438.                         i.width = r.width, i.height = r.height, n.fillStyle = "#" + ("00000" + (0 | t).toString(16)).substr(-6), n.fillRect(0, 0, r.width, r.height), n.globalCompositeOperation = "multiply", n.drawImage(e.baseTexture.source, r.x, r.y, r.width, r.height, 0, 0, r.width, r.height), n.globalCompositeOperation = "destination-atop", n.drawImage(e.baseTexture.source, r.x, r.y, r.width, r.height, 0, 0, r.width, r.height)
  1439.                     }, e.CanvasTinter.tintWithPerPixel = function(t, i, n) {
  1440.                         var r = n.getContext("2d"),
  1441.                             o = t.crop;
  1442.                         n.width = o.width, n.height = o.height, r.globalCompositeOperation = "copy", r.drawImage(t.baseTexture.source, o.x, o.y, o.width, o.height, 0, 0, o.width, o.height);
  1443.                         for (var a = e.hex2rgb(i), s = a[0], h = a[1], l = a[2], c = r.getImageData(0, 0, o.width, o.height), d = c.data, u = 0; u < d.length; u += 4) d[u + 0] = d[u + 0] * s >> 0, d[u + 1] = d[u + 1] * h >> 0, d[u + 2] = d[u + 2] * l >> 0;
  1444.                         r.putImageData(c, 0, 0)
  1445.                     }, e.CanvasTinter.roundColor = function(t) {
  1446.                         var i = e.CanvasTinter.cacheStepsPerColorChannel,
  1447.                             n = e.hex2rgb(t);
  1448.                         return n[0] = Math.min(255, n[0] / i * i), n[1] = Math.min(255, n[1] / i * i), n[2] = Math.min(255, n[2] / i * i), e.rgb2hex(n)
  1449.                     }, e.CanvasTinter.cacheStepsPerColorChannel = 8, e.CanvasTinter.convertTintToImage = !1, e.CanvasTinter.canUseMultiply = e.canUseNewCanvasBlendModes(), e.CanvasTinter.tintMethod = e.CanvasTinter.tintWithPerPixel, e.CanvasRenderer = function(t, i, n) {
  1450.                         if (n)
  1451.                             for (var r in e.defaultRenderOptions) "undefined" == typeof n[r] && (n[r] = e.defaultRenderOptions[r]);
  1452.                         else n = e.defaultRenderOptions;
  1453.                         e.defaultRenderer || (e.defaultRenderer = this), this.type = e.CANVAS_RENDERER, this.clearBeforeRender = n.clearBeforeRender, this.transparent = n.transparent, this.autoResize = n.autoResize || !1, this.width = t || 800, this.height = i || 600, this.view = n.view || document.createElement("canvas"), this.context = this.view.getContext("2d", {
  1454.                             alpha: this.transparent
  1455.                         }), this.refresh = !0, this.count = 0, this.maskManager = new e.CanvasMaskManager, this.renderSession = {
  1456.                             context: this.context,
  1457.                             maskManager: this.maskManager,
  1458.                             scaleMode: null,
  1459.                             smoothProperty: null
  1460.                         }, this.mapBlendModes(), this.resize(t, i), "imageSmoothingEnabled" in this.context ? this.renderSession.smoothProperty = "imageSmoothingEnabled" : "webkitImageSmoothingEnabled" in this.context ? this.renderSession.smoothProperty = "webkitImageSmoothingEnabled" : "mozImageSmoothingEnabled" in this.context ? this.renderSession.smoothProperty = "mozImageSmoothingEnabled" : "oImageSmoothingEnabled" in this.context ? this.renderSession.smoothProperty = "oImageSmoothingEnabled" : "msImageSmoothingEnabled" in this.context && (this.renderSession.smoothProperty = "msImageSmoothingEnabled")
  1461.                     }, e.CanvasRenderer.prototype.constructor = e.CanvasRenderer, e.CanvasRenderer.prototype.render = function(t) {
  1462.                         t.updateTransform(), this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.globalAlpha = 1, this.renderSession.currentBlendMode = e.blendModes.NORMAL, this.context.globalCompositeOperation = e.blendModesCanvas[e.blendModes.NORMAL], this.renderDisplayObject(t), t.interactive && (t._interactiveEventsAdded || (t._interactiveEventsAdded = !0, t.interactionManager.setTarget(this)))
  1463.                     }, e.CanvasRenderer.prototype.destroy = function(e) {
  1464.                         "undefined" == typeof e && (e = !0), e && this.view.parent && this.view.parent.removeChild(this.view), this.view = null, this.context = null, this.maskManager = null, this.renderSession = null
  1465.                     }, e.CanvasRenderer.prototype.resize = function(e, t) {
  1466.                         this.width = e, this.height = t, this.view.width = this.width, this.view.height = this.height
  1467.                     }, e.CanvasRenderer.prototype.renderDisplayObject = function(e, t) {
  1468.                         this.renderSession.context = t || this.context, e._renderCanvas(this.renderSession)
  1469.                     }, e.CanvasRenderer.prototype.mapBlendModes = function() {
  1470.                         e.blendModesCanvas || (e.blendModesCanvas = [], e.canUseNewCanvasBlendModes() ? (e.blendModesCanvas[e.blendModes.NORMAL] = "source-over", e.blendModesCanvas[e.blendModes.ADD] = "lighter", e.blendModesCanvas[e.blendModes.MULTIPLY] = "multiply", e.blendModesCanvas[e.blendModes.SCREEN] = "screen", e.blendModesCanvas[e.blendModes.OVERLAY] = "overlay", e.blendModesCanvas[e.blendModes.DARKEN] = "darken", e.blendModesCanvas[e.blendModes.LIGHTEN] = "lighten", e.blendModesCanvas[e.blendModes.COLOR_DODGE] = "color-dodge", e.blendModesCanvas[e.blendModes.COLOR_BURN] = "color-burn", e.blendModesCanvas[e.blendModes.HARD_LIGHT] = "hard-light", e.blendModesCanvas[e.blendModes.SOFT_LIGHT] = "soft-light", e.blendModesCanvas[e.blendModes.DIFFERENCE] = "difference", e.blendModesCanvas[e.blendModes.EXCLUSION] = "exclusion", e.blendModesCanvas[e.blendModes.HUE] = "hue", e.blendModesCanvas[e.blendModes.SATURATION] = "saturation", e.blendModesCanvas[e.blendModes.COLOR] = "color", e.blendModesCanvas[e.blendModes.LUMINOSITY] = "luminosity") : (e.blendModesCanvas[e.blendModes.NORMAL] = "source-over", e.blendModesCanvas[e.blendModes.ADD] = "lighter", e.blendModesCanvas[e.blendModes.MULTIPLY] = "source-over", e.blendModesCanvas[e.blendModes.SCREEN] = "source-over", e.blendModesCanvas[e.blendModes.OVERLAY] = "source-over", e.blendModesCanvas[e.blendModes.DARKEN] = "source-over", e.blendModesCanvas[e.blendModes.LIGHTEN] = "source-over", e.blendModesCanvas[e.blendModes.COLOR_DODGE] = "source-over", e.blendModesCanvas[e.blendModes.COLOR_BURN] = "source-over", e.blendModesCanvas[e.blendModes.HARD_LIGHT] = "source-over", e.blendModesCanvas[e.blendModes.SOFT_LIGHT] = "source-over", e.blendModesCanvas[e.blendModes.DIFFERENCE] = "source-over", e.blendModesCanvas[e.blendModes.EXCLUSION] = "source-over", e.blendModesCanvas[e.blendModes.HUE] = "source-over", e.blendModesCanvas[e.blendModes.SATURATION] = "source-over", e.blendModesCanvas[e.blendModes.COLOR] = "source-over", e.blendModesCanvas[e.blendModes.LUMINOSITY] = "source-over"))
  1471.                     }, e.CanvasGraphics = function() {}, e.CanvasGraphics.renderGraphics = function(t, i) {
  1472.                         var n = t.worldAlpha;
  1473.                         t.dirty && (this.updateGraphicsTint(t), t.dirty = !1);
  1474.                         for (var r = 0; r < t.graphicsData.length; r++) {
  1475.                             var o = t.graphicsData[r],
  1476.                                 a = o.shape,
  1477.                                 s = o._fillTint,
  1478.                                 h = o._lineTint;
  1479.                             if (i.lineWidth = o.lineWidth, o.type === e.Graphics.POLY) {
  1480.                                 i.beginPath();
  1481.                                 var l = a.points;
  1482.                                 i.moveTo(l[0], l[1]);
  1483.                                 for (var c = 1; c < l.length / 2; c++) i.lineTo(l[2 * c], l[2 * c + 1]);
  1484.                                 a.closed && i.lineTo(l[0], l[1]), l[0] === l[l.length - 2] && l[1] === l[l.length - 1] && i.closePath(), o.fill && (i.globalAlpha = o.fillAlpha * n, i.fillStyle = "#" + ("00000" + (0 | s).toString(16)).substr(-6), i.fill()), o.lineWidth && (i.globalAlpha = o.lineAlpha * n, i.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), i.stroke())
  1485.                             } else if (o.type === e.Graphics.RECT)(o.fillColor || 0 === o.fillColor) && (i.globalAlpha = o.fillAlpha * n, i.fillStyle = "#" + ("00000" + (0 | s).toString(16)).substr(-6), i.fillRect(a.x, a.y, a.width, a.height)), o.lineWidth && (i.globalAlpha = o.lineAlpha * n, i.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), i.strokeRect(a.x, a.y, a.width, a.height));
  1486.                             else if (o.type === e.Graphics.CIRC) i.beginPath(), i.arc(a.x, a.y, a.radius, 0, 2 * Math.PI), i.closePath(), o.fill && (i.globalAlpha = o.fillAlpha * n, i.fillStyle = "#" + ("00000" + (0 | s).toString(16)).substr(-6), i.fill()), o.lineWidth && (i.globalAlpha = o.lineAlpha * n, i.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), i.stroke());
  1487.                             else if (o.type === e.Graphics.ELIP) {
  1488.                                 var d = 2 * a.width,
  1489.                                     u = 2 * a.height,
  1490.                                     f = a.x - d / 2,
  1491.                                     p = a.y - u / 2;
  1492.                                 i.beginPath();
  1493.                                 var g = .5522848,
  1494.                                     v = d / 2 * g,
  1495.                                     m = u / 2 * g,
  1496.                                     x = f + d,
  1497.                                     w = p + u,
  1498.                                     y = f + d / 2,
  1499.                                     b = p + u / 2;
  1500.                                 i.moveTo(f, b), i.bezierCurveTo(f, b - m, y - v, p, y, p), i.bezierCurveTo(y + v, p, x, b - m, x, b), i.bezierCurveTo(x, b + m, y + v, w, y, w), i.bezierCurveTo(y - v, w, f, b + m, f, b), i.closePath(), o.fill && (i.globalAlpha = o.fillAlpha * n, i.fillStyle = "#" + ("00000" + (0 | s).toString(16)).substr(-6), i.fill()), o.lineWidth && (i.globalAlpha = o.lineAlpha * n, i.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), i.stroke())
  1501.                             } else if (o.type === e.Graphics.RREC) {
  1502.                                 var T = a.x,
  1503.                                     C = a.y,
  1504.                                     S = a.width,
  1505.                                     M = a.height,
  1506.                                     R = a.radius,
  1507.                                     _ = Math.min(S, M) / 2 | 0;
  1508.                                 R = R > _ ? _ : R, i.beginPath(), i.moveTo(T, C + R), i.lineTo(T, C + M - R), i.quadraticCurveTo(T, C + M, T + R, C + M), i.lineTo(T + S - R, C + M), i.quadraticCurveTo(T + S, C + M, T + S, C + M - R), i.lineTo(T + S, C + R), i.quadraticCurveTo(T + S, C, T + S - R, C), i.lineTo(T + R, C), i.quadraticCurveTo(T, C, T, C + R), i.closePath(), (o.fillColor || 0 === o.fillColor) && (i.globalAlpha = o.fillAlpha * n, i.fillStyle = "#" + ("00000" + (0 | s).toString(16)).substr(-6), i.fill()), o.lineWidth && (i.globalAlpha = o.lineAlpha * n, i.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), i.stroke())
  1509.                             }
  1510.                         }
  1511.                     }, e.CanvasGraphics.renderGraphicsMask = function(t, i) {
  1512.                         var n = t.graphicsData.length;
  1513.                         if (0 !== n) {
  1514.                             n > 1 && (n = 1, window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));
  1515.                             for (var r = 0; r < 1; r++) {
  1516.                                 var o = t.graphicsData[r],
  1517.                                     a = o.shape;
  1518.                                 if (o.type === e.Graphics.POLY) {
  1519.                                     i.beginPath();
  1520.                                     var s = a.points;
  1521.                                     i.moveTo(s[0], s[1]);
  1522.                                     for (var h = 1; h < s.length / 2; h++) i.lineTo(s[2 * h], s[2 * h + 1]);
  1523.                                     s[0] === s[s.length - 2] && s[1] === s[s.length - 1] && i.closePath()
  1524.                                 } else if (o.type === e.Graphics.RECT) i.beginPath(), i.rect(a.x, a.y, a.width, a.height), i.closePath();
  1525.                                 else if (o.type === e.Graphics.CIRC) i.beginPath(), i.arc(a.x, a.y, a.radius, 0, 2 * Math.PI), i.closePath();
  1526.                                 else if (o.type === e.Graphics.ELIP) {
  1527.                                     var l = 2 * a.width,
  1528.                                         c = 2 * a.height,
  1529.                                         d = a.x - l / 2,
  1530.                                         u = a.y - c / 2;
  1531.                                     i.beginPath();
  1532.                                     var f = .5522848,
  1533.                                         p = l / 2 * f,
  1534.                                         g = c / 2 * f,
  1535.                                         v = d + l,
  1536.                                         m = u + c,
  1537.                                         x = d + l / 2,
  1538.                                         w = u + c / 2;
  1539.                                     i.moveTo(d, w), i.bezierCurveTo(d, w - g, x - p, u, x, u), i.bezierCurveTo(x + p, u, v, w - g, v, w), i.bezierCurveTo(v, w + g, x + p, m, x, m), i.bezierCurveTo(x - p, m, d, w + g, d, w), i.closePath()
  1540.                                 } else if (o.type === e.Graphics.RREC) {
  1541.                                     var y = a.points,
  1542.                                         b = y[0],
  1543.                                         T = y[1],
  1544.                                         C = y[2],
  1545.                                         S = y[3],
  1546.                                         M = y[4],
  1547.                                         R = Math.min(C, S) / 2 | 0;
  1548.                                     M = M > R ? R : M, i.beginPath(), i.moveTo(b, T + M), i.lineTo(b, T + S - M), i.quadraticCurveTo(b, T + S, b + M, T + S), i.lineTo(b + C - M, T + S), i.quadraticCurveTo(b + C, T + S, b + C, T + S - M), i.lineTo(b + C, T + M), i.quadraticCurveTo(b + C, T, b + C - M, T), i.lineTo(b + M, T), i.quadraticCurveTo(b, T, b, T + M), i.closePath()
  1549.                                 }
  1550.                             }
  1551.                         }
  1552.                     }, e.CanvasGraphics.updateGraphicsTint = function(e) {
  1553.                         if (16777215 !== e.tint)
  1554.                             for (var t = (e.tint >> 16 & 255) / 255, i = (e.tint >> 8 & 255) / 255, n = (255 & e.tint) / 255, r = 0; r < e.graphicsData.length; r++) {
  1555.                                 var o = e.graphicsData[r],
  1556.                                     a = 0 | o.fillColor,
  1557.                                     s = 0 | o.lineColor;
  1558.                                 o._fillTint = ((a >> 16 & 255) / 255 * t * 255 << 16) + ((a >> 8 & 255) / 255 * i * 255 << 8) + (255 & a) / 255 * n * 255, o._lineTint = ((s >> 16 & 255) / 255 * t * 255 << 16) + ((s >> 8 & 255) / 255 * i * 255 << 8) + (255 & s) / 255 * n * 255
  1559.                             }
  1560.                     }, e.Graphics = function() {
  1561.                         e.DisplayObjectContainer.call(this), this.renderable = !0, this.fillAlpha = 1, this.lineWidth = 0, this.lineColor = 0, this.graphicsData = [], this.tint = 16777215, this.ondTint = 16777215, this.blendMode = e.blendModes.NORMAL, this.currentPath = null, this._webGL = [], this.isMask = !1, this.boundsPadding = 0, this._localBounds = new e.Rectangle(0, 0, 1, 1), this.dirty = !0, this.webGLDirty = !1, this.cachedSpriteDirty = !1
  1562.                     }, e.Graphics.prototype = Object.create(e.DisplayObjectContainer.prototype), e.Graphics.prototype.constructor = e.Graphics, e.Graphics.prototype.lineStyle = function(t, i, n) {
  1563.                         if (this.lineWidth = t || 0, this.lineColor = i || 0, this.lineAlpha = arguments.length < 3 ? 1 : n, this.currentPath) {
  1564.                             if (this.currentPath.shape.points.length) return this.drawShape(new e.Polygon(this.currentPath.shape.points.slice(-2))), this;
  1565.                             this.currentPath.lineWidth = this.lineWidth, this.currentPath.lineColor = this.lineColor, this.currentPath.lineAlpha = this.lineAlpha
  1566.                         }
  1567.                         return this
  1568.                     }, e.Graphics.prototype.moveTo = function(t, i) {
  1569.                         return this.drawShape(new e.Polygon([t, i])), this
  1570.                     }, e.Graphics.prototype.lineTo = function(e, t) {
  1571.                         return this.currentPath.shape.points.push(e, t), this.dirty = !0, this
  1572.                     }, e.Graphics.prototype.quadraticCurveTo = function(e, t, i, n) {
  1573.                         this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
  1574.                         var r, o, a = 20,
  1575.                             s = this.currentPath.shape.points;
  1576.                         0 === s.length && this.moveTo(0, 0);
  1577.                         for (var h = s[s.length - 2], l = s[s.length - 1], c = 0, d = 1; d <= a; d++) c = d / a, r = h + (e - h) * c, o = l + (t - l) * c, s.push(r + (e + (i - e) * c - r) * c, o + (t + (n - t) * c - o) * c);
  1578.                         return this.dirty = !0, this
  1579.                     }, e.Graphics.prototype.bezierCurveTo = function(e, t, i, n, r, o) {
  1580.                         this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
  1581.                         for (var a, s, h, l, c, d = 20, u = this.currentPath.shape.points, f = u[u.length - 2], p = u[u.length - 1], g = 0, v = 1; v <= d; v++) g = v / d, a = 1 - g, s = a * a, h = s * a, l = g * g, c = l * g, u.push(h * f + 3 * s * g * e + 3 * a * l * i + c * r, h * p + 3 * s * g * t + 3 * a * l * n + c * o);
  1582.                         return this.dirty = !0, this
  1583.                     }, e.Graphics.prototype.arcTo = function(e, t, i, n, r) {
  1584.                         this.currentPath ? 0 === this.currentPath.shape.points.length && this.currentPath.shape.points.push(e, t) : this.moveTo(e, t);
  1585.                         var o = this.currentPath.shape.points,
  1586.                             a = o[o.length - 2],
  1587.                             s = o[o.length - 1],
  1588.                             h = s - t,
  1589.                             l = a - e,
  1590.                             c = n - t,
  1591.                             d = i - e,
  1592.                             u = Math.abs(h * d - l * c);
  1593.                         if (u < 1e-8 || 0 === r) o[o.length - 2] === e && o[o.length - 1] === t || o.push(e, t);
  1594.                         else {
  1595.                             var f = h * h + l * l,
  1596.                                 p = c * c + d * d,
  1597.                                 g = h * c + l * d,
  1598.                                 v = r * Math.sqrt(f) / u,
  1599.                                 m = r * Math.sqrt(p) / u,
  1600.                                 x = v * g / f,
  1601.                                 w = m * g / p,
  1602.                                 y = v * d + m * l,
  1603.                                 b = v * c + m * h,
  1604.                                 T = l * (m + x),
  1605.                                 C = h * (m + x),
  1606.                                 S = d * (v + w),
  1607.                                 M = c * (v + w),
  1608.                                 R = Math.atan2(C - b, T - y),
  1609.                                 _ = Math.atan2(M - b, S - y);
  1610.                             this.arc(y + e, b + t, r, R, _, l * c > d * h)
  1611.                         }
  1612.                         return this.dirty = !0, this
  1613.                     }, e.Graphics.prototype.arc = function(e, t, i, n, r, o) {
  1614.                         var a, s = e + Math.cos(n) * i,
  1615.                             h = t + Math.sin(n) * i;
  1616.                         if (this.currentPath ? (a = this.currentPath.shape.points, 0 === a.length ? a.push(s, h) : a[a.length - 2] === s && a[a.length - 1] === h || a.push(s, h)) : (this.moveTo(s, h), a = this.currentPath.shape.points), n === r) return this;
  1617.                         !o && r <= n ? r += 2 * Math.PI : o && n <= r && (n += 2 * Math.PI);
  1618.                         var l = o ? (n - r) * -1 : r - n,
  1619.                             c = Math.abs(l) / (2 * Math.PI) * 40;
  1620.                         if (0 === l) return this;
  1621.                         for (var d = l / (2 * c), u = 2 * d, f = Math.cos(d), p = Math.sin(d), g = c - 1, v = g % 1 / g, m = 0; m <= g; m++) {
  1622.                             var x = m + v * m,
  1623.                                 w = d + n + u * x,
  1624.                                 y = Math.cos(w),
  1625.                                 b = -Math.sin(w);
  1626.                             a.push((f * y + p * b) * i + e, (f * -b + p * y) * i + t)
  1627.                         }
  1628.                         return this.dirty = !0, this
  1629.                     }, e.Graphics.prototype.beginFill = function(e, t) {
  1630.                         return this.filling = !0, this.fillColor = e || 0, this.fillAlpha = void 0 === t ? 1 : t, this.currentPath && this.currentPath.shape.points.length <= 2 && (this.currentPath.fill = this.filling, this.currentPath.fillColor = this.fillColor, this.currentPath.fillAlpha = this.fillAlpha), this
  1631.                     }, e.Graphics.prototype.endFill = function() {
  1632.                         return this.filling = !1, this.fillColor = null, this.fillAlpha = 1, this
  1633.                     }, e.Graphics.prototype.drawRect = function(t, i, n, r) {
  1634.                         return this.drawShape(new e.Rectangle(t, i, n, r)), this
  1635.                     }, e.Graphics.prototype.drawRoundedRect = function(t, i, n, r, o) {
  1636.                         return this.drawShape(new e.RoundedRectangle(t, i, n, r, o)), this
  1637.                     }, e.Graphics.prototype.drawCircle = function(t, i, n) {
  1638.                         return this.drawShape(new e.Circle(t, i, n)), this
  1639.                     }, e.Graphics.prototype.drawEllipse = function(t, i, n, r) {
  1640.                         return this.drawShape(new e.Ellipse(t, i, n, r)), this
  1641.                     }, e.Graphics.prototype.drawPolygon = function(t) {
  1642.                         return t instanceof Array || (t = Array.prototype.slice.call(arguments)), this.drawShape(new e.Polygon(t)), this
  1643.                     }, e.Graphics.prototype.clear = function() {
  1644.                         return this.lineWidth = 0, this.filling = !1, this.dirty = !0, this.clearDirty = !0, this.graphicsData = [], this
  1645.                     }, e.Graphics.prototype._renderWebGL = function(t) {
  1646.                         if (this.visible !== !1 && 0 !== this.alpha && this.isMask !== !0) {
  1647.                             if (t.spriteBatch.stop(), t.blendModeManager.setBlendMode(this.blendMode), this._mask && t.maskManager.pushMask(this._mask, t), this._filters && t.filterManager.pushFilter(this._filterBlock), this.blendMode !== t.spriteBatch.currentBlendMode) {
  1648.                                 t.spriteBatch.currentBlendMode = this.blendMode;
  1649.                                 var i = e.blendModesWebGL[t.spriteBatch.currentBlendMode];
  1650.                                 t.spriteBatch.gl.blendFunc(i[0], i[1])
  1651.                             }
  1652.                             if (this.webGLDirty && (this.dirty = !0, this.webGLDirty = !1), e.WebGLGraphics.renderGraphics(this, t), this.children.length) {
  1653.                                 t.spriteBatch.start();
  1654.                                 for (var n = 0, r = this.children.length; n < r; n++) this.children[n]._renderWebGL(t);
  1655.                                 t.spriteBatch.stop()
  1656.                             }
  1657.                             this._filters && t.filterManager.popFilter(), this._mask && t.maskManager.popMask(this.mask, t), t.drawCount++, t.spriteBatch.start()
  1658.                         }
  1659.                     }, e.Graphics.prototype._renderCanvas = function(t) {
  1660.                         if (this.visible !== !1 && 0 !== this.alpha && this.isMask !== !0) {
  1661.                             var i = t.context,
  1662.                                 n = this.worldTransform;
  1663.                             this.blendMode !== t.currentBlendMode && (t.currentBlendMode = this.blendMode, i.globalCompositeOperation = e.blendModesCanvas[t.currentBlendMode]), this._mask && t.maskManager.pushMask(this._mask, t), i.setTransform(n.a, n.b, n.c, n.d, n.tx, n.ty), this.tint != this.oldTint && (this.dirty = !0, this.oldTint = this.tint), e.CanvasGraphics.renderGraphics(this, i);
  1664.                             for (var r = 0, o = this.children.length; r < o; r++) this.children[r]._renderCanvas(t);
  1665.                             this._mask && t.maskManager.popMask(t)
  1666.                         }
  1667.                     }, e.Graphics.prototype.getBounds = function(t) {
  1668.                         if (this.isMask) return e.EmptyRectangle;
  1669.                         this.dirty && (this.updateLocalBounds(), this.webGLDirty = !0, this.cachedSpriteDirty = !0, this.dirty = !1);
  1670.                         var i = this._localBounds,
  1671.                             n = i.x,
  1672.                             r = i.width + i.x,
  1673.                             o = i.y,
  1674.                             a = i.height + i.y,
  1675.                             s = t || this.worldTransform,
  1676.                             h = s.a,
  1677.                             l = s.b,
  1678.                             c = s.c,
  1679.                             d = s.d,
  1680.                             u = s.tx,
  1681.                             f = s.ty,
  1682.                             p = h * r + c * a + u,
  1683.                             g = d * a + l * r + f,
  1684.                             v = h * n + c * a + u,
  1685.                             m = d * a + l * n + f,
  1686.                             x = h * n + c * o + u,
  1687.                             w = d * o + l * n + f,
  1688.                             y = h * r + c * o + u,
  1689.                             b = d * o + l * r + f,
  1690.                             T = p,
  1691.                             C = g,
  1692.                             S = p,
  1693.                             M = g;
  1694.                         return S = v < S ? v : S, S = x < S ? x : S, S = y < S ? y : S, M = m < M ? m : M, M = w < M ? w : M, M = b < M ? b : M, T = v > T ? v : T, T = x > T ? x : T, T = y > T ? y : T, C = m > C ? m : C, C = w > C ? w : C, C = b > C ? b : C, this._bounds.x = S, this._bounds.width = T - S, this._bounds.y = M, this._bounds.height = C - M, this._bounds
  1695.                     }, e.Graphics.prototype.updateLocalBounds = function() {
  1696.                         var t = 1 / 0,
  1697.                             i = -(1 / 0),
  1698.                             n = 1 / 0,
  1699.                             r = -(1 / 0);
  1700.                         if (this.graphicsData.length)
  1701.                             for (var o, a, s, h, l, c, d = 0; d < this.graphicsData.length; d++) {
  1702.                                 var u = this.graphicsData[d],
  1703.                                     f = u.type,
  1704.                                     p = u.lineWidth;
  1705.                                 if (o = u.shape, f === e.Graphics.RECT || f === e.Graphics.RREC) s = o.x - p / 2, h = o.y - p / 2, l = o.width + p, c = o.height + p, t = s < t ? s : t, i = s + l > i ? s + l : i, n = h < n ? h : n, r = h + c > r ? h + c : r;
  1706.                                 else if (f === e.Graphics.CIRC) s = o.x, h = o.y, l = o.radius + p / 2, c = o.radius + p / 2, t = s - l < t ? s - l : t, i = s + l > i ? s + l : i, n = h - c < n ? h - c : n, r = h + c > r ? h + c : r;
  1707.                                 else if (f === e.Graphics.ELIP) s = o.x, h = o.y, l = o.width + p / 2, c = o.height + p / 2, t = s - l < t ? s - l : t, i = s + l > i ? s + l : i, n = h - c < n ? h - c : n, r = h + c > r ? h + c : r;
  1708.                                 else {
  1709.                                     a = o.points;
  1710.                                     for (var g = 0; g < a.length; g += 2) s = a[g], h = a[g + 1], t = s - p < t ? s - p : t, i = s + p > i ? s + p : i, n = h - p < n ? h - p : n, r = h + p > r ? h + p : r
  1711.                                 }
  1712.                             } else t = 0, i = 0, n = 0, r = 0;
  1713.                         var v = this.boundsPadding;
  1714.                         this._localBounds.x = t - v, this._localBounds.width = i - t + 2 * v, this._localBounds.y = n - v, this._localBounds.height = r - n + 2 * v
  1715.                     }, e.Graphics.prototype.drawShape = function(t) {
  1716.                         this.currentPath && this.currentPath.shape.points.length <= 2 && this.graphicsData.pop(), this.currentPath = null;
  1717.                         var i = new e.GraphicsData(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.filling, t);
  1718.                         return this.graphicsData.push(i), i.type === e.Graphics.POLY && (i.shape.closed = this.filling, this.currentPath = i), this.dirty = !0, i
  1719.                     }, e.GraphicsData = function(e, t, i, n, r, o, a) {
  1720.                         this.lineWidth = e, this.lineColor = t, this.lineAlpha = i, this._lineTint = t, this.fillColor = n, this.fillAlpha = r, this._fillTint = n, this.fill = o, this.shape = a, this.type = a.type
  1721.                     }, e.Graphics.POLY = 0, e.Graphics.RECT = 1, e.Graphics.CIRC = 2, e.Graphics.ELIP = 3, e.Graphics.RREC = 4, e.Polygon.prototype.type = e.Graphics.POLY, e.Rectangle.prototype.type = e.Graphics.RECT, e.Circle.prototype.type = e.Graphics.CIRC, e.Ellipse.prototype.type = e.Graphics.ELIP, e.RoundedRectangle.prototype.type = e.Graphics.RREC, e.BaseTextureCache = {}, e.BaseTextureCacheIdGenerator = 0, e.BaseTexture = function(t, i) {
  1722.                         if (this.width = 100, this.height = 100, this.scaleMode = i || e.scaleModes.DEFAULT, this.hasLoaded = !1, this.source = t, this._UID = e._UID++, this.premultipliedAlpha = !0, this._glTextures = [], this._dirty = [!0, !0, !0, !0], t) {
  1723.                             if ((this.source.complete || this.source.getContext) && this.source.width && this.source.height) this.hasLoaded = !0, this.width = this.source.naturalWidth || this.source.width, this.height = this.source.naturalHeight || this.source.height, this.dirty();
  1724.                             else {
  1725.                                 var n = this;
  1726.                                 this.source.onload = function() {
  1727.                                     n.hasLoaded = !0, n.width = n.source.naturalWidth || n.source.width, n.height = n.source.naturalHeight || n.source.height, n.dirty(), window.dirty = !0, n.dispatchEvent({
  1728.                                         type: "loaded",
  1729.                                         content: n
  1730.                                     })
  1731.                                 }, this.source.onerror = function() {
  1732.                                     n.dispatchEvent({
  1733.                                         type: "error",
  1734.                                         content: n
  1735.                                     })
  1736.                                 }
  1737.                             }
  1738.                             this.imageUrl = null
  1739.                         }
  1740.                     }, e.BaseTexture.prototype.constructor = e.BaseTexture, e.EventTarget.mixin(e.BaseTexture.prototype), e.BaseTexture.prototype.destroy = function() {
  1741.                         this.imageUrl && (delete e.BaseTextureCache[this.imageUrl], delete e.TextureCache[this.imageUrl], this.imageUrl = null, this.source.src = ""), this.source = null, this.unloadFromGPU()
  1742.                     }, e.BaseTexture.prototype.dirty = function() {
  1743.                         for (var e = 0; e < this._glTextures.length; e++) this._dirty[e] = !0
  1744.                     }, e.BaseTexture.prototype.unloadFromGPU = function() {
  1745.                         this.dirty();
  1746.                         for (var t = this._glTextures.length - 1; t >= 0; t--) {
  1747.                             var i = this._glTextures[t],
  1748.                                 n = e.glContexts[t];
  1749.                             n && i && n.deleteTexture(i)
  1750.                         }
  1751.                         this._glTextures.length = 0, this.dirty()
  1752.                     }, e.BaseTexture.fromImage = function(t, i, n) {
  1753.                         var r = e.BaseTextureCache[t];
  1754.                         if (void 0 === i && t.indexOf("data:") === -1 && (i = !0), !r) {
  1755.                             var o = new Image;
  1756.                             i && (o.crossOrigin = ""), o.src = t, r = new e.BaseTexture(o, n), r.imageUrl = t, e.BaseTextureCache[t] = r
  1757.                         }
  1758.                         return r
  1759.                     }, e.BaseTexture.fromCanvas = function(t, i) {
  1760.                         return new e.BaseTexture(t, i)
  1761.                     }, e.TextureCache = {}, e.FrameCache = {}, e.TextureCacheIdGenerator = 0, e.Texture = function(t, i, n, r) {
  1762.                         this.noFrame = !1, i || (this.noFrame = !0, i = new e.Rectangle(0, 0, 1, 1)), t instanceof e.Texture && (t = t.baseTexture), this.baseTexture = t, this.floorCoordinates = !0, this.frame = i, this.trim = r, this.valid = !1, this.requiresUpdate = !1, this._uvs = null, this.width = 0, this.height = 0, this.crop = n || new e.Rectangle(0, 0, 1, 1), t.hasLoaded ? (this.noFrame && (i = new e.Rectangle(0, 0, t.width, t.height)), this.setFrame(i)) : t.addEventListener("loaded", this.onBaseTextureLoaded.bind(this))
  1763.                     }, e.Texture.prototype.constructor = e.Texture, e.EventTarget.mixin(e.Texture.prototype), e.Texture.prototype.onBaseTextureLoaded = function() {
  1764.                         var t = this.baseTexture;
  1765.                         t.removeEventListener("loaded", this.onLoaded), this.noFrame && (this.frame = new e.Rectangle(0, 0, t.width, t.height)), this.setFrame(this.frame), this.dispatchEvent({
  1766.                             type: "update",
  1767.                             content: this
  1768.                         })
  1769.                     }, e.Texture.prototype.destroy = function(e) {
  1770.                         e && this.baseTexture.destroy(), this.valid = !1
  1771.                     }, e.Texture.prototype.setFrame = function(e) {
  1772.                         if (this.noFrame = !1, this.frame = e, this.width = e.width, this.height = e.height, this.crop.x = e.x, this.crop.y = e.y, this.crop.width = e.width, this.crop.height = e.height, !this.trim && (e.x + e.width > this.baseTexture.width || e.y + e.height > this.baseTexture.height)) throw new Error("Texture Error: frame does not fit inside the base Texture dimensions " + this);
  1773.                         this.valid = e && e.width && e.height && this.baseTexture.source && this.baseTexture.hasLoaded, this.trim && (this.width = this.trim.width, this.height = this.trim.height, this.frame.width = this.trim.width, this.frame.height = this.trim.height), this.valid && this._updateUvs()
  1774.                     }, e.Texture.prototype._updateUvs = function() {
  1775.                         this._uvs || (this._uvs = new e.TextureUvs);
  1776.                         var t = this.crop,
  1777.                             i = this.baseTexture.width,
  1778.                             n = this.baseTexture.height;
  1779.                         this._uvs.x0 = t.x / i, this._uvs.y0 = t.y / n, this._uvs.x1 = (t.x + t.width) / i, this._uvs.y1 = t.y / n, this._uvs.x2 = (t.x + t.width) / i, this._uvs.y2 = (t.y + t.height) / n, this._uvs.x3 = t.x / i, this._uvs.y3 = (t.y + t.height) / n
  1780.                     }, e.Texture.fromImage = function(t, i, n) {
  1781.                         var r = e.TextureCache[t];
  1782.                         return r || (r = new e.Texture(e.BaseTexture.fromImage(t, i, n)), e.TextureCache[t] = r), r
  1783.                     }, e.Texture.fromFrame = function(t) {
  1784.                         var i = e.TextureCache[t];
  1785.                         if (!i) throw new Error('The frameId "' + t + '" does not exist in the texture cache ');
  1786.                         return i
  1787.                     }, e.Texture.fromCanvas = function(t, i) {
  1788.                         var n = e.BaseTexture.fromCanvas(t, i);
  1789.                         return new e.Texture(n)
  1790.                     }, e.Texture.addTextureToCache = function(t, i) {
  1791.                         e.TextureCache[i] = t
  1792.                     }, e.Texture.removeTextureFromCache = function(t) {
  1793.                         var i = e.TextureCache[t];
  1794.                         return delete e.TextureCache[t], delete e.BaseTextureCache[t], i
  1795.                     }, e.TextureUvs = function() {
  1796.                         this.x0 = 0, this.y0 = 0, this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.x3 = 0, this.y3 = 0
  1797.                     }, e.Texture.emptyTexture = new e.Texture(new e.BaseTexture), e.RenderTexture = function(t, i, n, r) {
  1798.                         if (this.width = t || 100, this.height = i || 100, this.frame = new e.Rectangle(0, 0, this.width, this.height), this.crop = new e.Rectangle(0, 0, this.width, this.height), this.baseTexture = new e.BaseTexture, this.baseTexture.width = this.width, this.baseTexture.height = this.height, this.baseTexture._glTextures = [], this.baseTexture.scaleMode = r || e.scaleModes.DEFAULT, this.baseTexture.hasLoaded = !0, e.Texture.call(this, this.baseTexture, new e.Rectangle(0, 0, this.width, this.height)), this.renderer = n || e.defaultRenderer, this.renderer.type === e.WEBGL_RENDERER) {
  1799.                             var o = this.renderer.gl;
  1800.                             this.baseTexture._dirty[o.id] = !1, this.textureBuffer = new e.FilterTexture(o, this.width, this.height, this.baseTexture.scaleMode), this.baseTexture._glTextures[o.id] = this.textureBuffer.texture, this.render = this.renderWebGL, this.projection = new e.Point(.5 * this.width, .5 * -this.height)
  1801.                         } else this.render = this.renderCanvas, this.textureBuffer = new e.CanvasBuffer(this.width, this.height), this.baseTexture.source = this.textureBuffer.canvas;
  1802.                         this.valid = !0, this._updateUvs()
  1803.                     }, e.RenderTexture.prototype = Object.create(e.Texture.prototype), e.RenderTexture.prototype.constructor = e.RenderTexture, e.RenderTexture.prototype.resize = function(t, i, n) {
  1804.                         t === this.width && i === this.height || (this.valid = t > 0 && i > 0, this.width = this.frame.width = this.crop.width = t, this.height = this.frame.height = this.crop.height = i, n && (this.baseTexture.width = this.width, this.baseTexture.height = this.height), this.renderer.type === e.WEBGL_RENDERER && (this.projection.x = this.width / 2, this.projection.y = -this.height / 2), this.valid && this.textureBuffer.resize(this.width, this.height))
  1805.                     }, e.RenderTexture.prototype.clear = function() {
  1806.                         this.valid && (this.renderer.type === e.WEBGL_RENDERER && this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER, this.textureBuffer.frameBuffer), this.textureBuffer.clear())
  1807.                     }, e.RenderTexture.prototype.renderWebGL = function(e, t, i) {
  1808.                         if (this.valid) {
  1809.                             var n = e.worldTransform;
  1810.                             n.identity(), n.translate(0, 2 * this.projection.y), t && n.append(t), n.scale(1, -1), e.worldAlpha = 1;
  1811.                             for (var r = e.children, o = 0, a = r.length; o < a; o++) r[o].updateTransform();
  1812.                             var s = this.renderer.gl;
  1813.                             s.viewport(0, 0, this.width, this.height), s.bindFramebuffer(s.FRAMEBUFFER, this.textureBuffer.frameBuffer), i && this.textureBuffer.clear(), this.renderer.spriteBatch.dirty = !0, this.renderer.renderDisplayObject(e, this.projection, this.textureBuffer.frameBuffer), this.renderer.spriteBatch.dirty = !0
  1814.                         }
  1815.                     }, e.RenderTexture.prototype.renderCanvas = function(e, t, i) {
  1816.                         if (this.valid) {
  1817.                             var n = e.worldTransform;
  1818.                             n.identity(), t && n.append(t), e.worldAlpha = 1;
  1819.                             for (var r = e.children, o = 0, a = r.length; o < a; o++) r[o].updateTransform();
  1820.                             i && this.textureBuffer.clear();
  1821.                             var s = this.textureBuffer.context;
  1822.                             this.renderer.renderDisplayObject(e, s)
  1823.                         }
  1824.                     }, e.AbstractFilter = function(e, t) {
  1825.                         this.passes = [this], this.shaders = [], this.dirty = !0, this.padding = 0, this.uniforms = t || {}, this.fragmentSrc = e || []
  1826.                     }, e.AbstractFilter.prototype.constructor = e.AbstractFilter, e.AbstractFilter.prototype.syncUniforms = function() {
  1827.                         for (var e = 0, t = this.shaders.length; e < t; e++) this.shaders[e].dirty = !0
  1828.                     }, e
  1829.                 }
  1830.  
  1831.                 function t(e, t) {
  1832.                     return this.emit("eventAttached", {
  1833.                         eventName: e
  1834.                     }), this.__listeners = this.__listeners || {}, (this.__listeners[e] = this.__listeners[e] || []).push(t), this
  1835.                 }
  1836.  
  1837.                 function n() {
  1838.                     window.Social = function() {}
  1839.                 }
  1840.  
  1841.                 function r() {
  1842.                     function e(e) {
  1843.                         return {
  1844.                             r: (16711680 & e) >> 16,
  1845.                             g: (65280 & e) >> 8,
  1846.                             b: (255 & e) >> 0
  1847.                         }
  1848.                     }
  1849.  
  1850.                     function t(e) {
  1851.                         return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
  1852.                     }
  1853.  
  1854.                     function i() {
  1855.                         fe.ratio = 1;
  1856.                         var e = fe.width;
  1857.                         fe.ratio = fe.parent && fe.parent.ratio || 1;
  1858.                         var t = a.devicePixelRatio;
  1859.                         ue.x = width * t / stage.ratio / 2, fe.x = -(e + 80) / 2 + 80, pe.x = -(e + 80) / 2
  1860.                     }
  1861.  
  1862.                     function r(e) {
  1863.                         fe.setText(t(e)), i()
  1864.                     }
  1865.  
  1866.                     function o(e, t) {
  1867.                         var i = Z.highscore.get(),
  1868.                             n = Math.max(i, e);
  1869.                         return we = n, r(n), t && (e < 1500 ? a.submitLowscore(e) : a.submitHighscore(e)), c(), e > i && (Z.highscore.set(e), !0)
  1870.                     }
  1871.  
  1872.                     function h(e, t) {
  1873.                         var i = JSON.parse(e),
  1874.                             n = JSON.parse(t),
  1875.                             t = {};
  1876.                         for (var r in i) t[r] = i[r];
  1877.                         for (var r in n) t[r] = n[r];
  1878.                         return JSON.stringify(t)
  1879.                     }
  1880.  
  1881.                     function c() {
  1882.                         clearTimeout(xe), xe = setTimeout(function() {
  1883.                             var e = !1;
  1884.                             if (J) {
  1885.                                 (parseInt(J.highscore) || 0) < we && (J.highscore = we, e = !0), (parseInt(J.coins) || 0) != Z.coins.get() && (J.coins = Z.coins.get(), e = !0);
  1886.                                 var t = h(J.state || "{}", Z.unlocked.get() || "{}");
  1887.                                 J.state != t && (J.state = t, e = !0), e && FBInstant.player.setDataAsync(J).then(function() {
  1888.                                     console.log("Successfully saved state to Facebook Cloud", J)
  1889.                                 })
  1890.                             }
  1891.                             if (s.user) {
  1892.                                 (parseInt(s.user.get("highscore")) || 0) < we && (s.user.set("highscore", we), e = !0), (parseInt(s.user.get("coins")) || 0) != Z.coins.get() && (s.user.set("coins", Z.coins.get()), e = !0);
  1893.                                 var t = h(s.user.get("state") || "{}", Z.unlocked.get() || "{}");
  1894.                                 s.user.get("state") != t && (s.user.set("state", t), e = !0), e && s.save()
  1895.                             }
  1896.                             if (e = !1, te) {
  1897.                                 (parseInt(te.get("highscore")) || 0) < we && (te.set("highscore", we), s.user.set("highscore", we), e = !0), (parseInt(te.get("coins")) || 0) != Z.coins.get() && (te.set("coins", Z.coins.get()), s.user.set("coins", Z.coins.get()), e = !0);
  1898.                                 var t = h(te.get("state") || "{}", Z.unlocked.get() || "{}");
  1899.                                 te.get("state") != t && (te.set("state", t), s.user.set("state", t), e = !0), e ? (s.save(), te.save({}, {
  1900.                                     success: function(e) {
  1901.                                         console.log("Successfully saved state", e)
  1902.                                     },
  1903.                                     error: function(e, t) {}
  1904.                                 })) : console.log("No change, do nothing :)")
  1905.                             }
  1906.                         }, 1e3)
  1907.                     }
  1908.  
  1909.                     function d(e, t, i, n, o, a, s, h) {
  1910.                         if (ge += i, Tween.clear(ve.scale), Tween.clear(ve), new Tween(ve, {
  1911.                                 score: ge
  1912.                             }, .4), ge > we && r(ge), be && (h || (n = ye.x, o = ye.y)), Tween.clear(ye), Tween.clear(ye.scale), ye.setText(t), ye.updateStyle({
  1913.                                 size: 2 * (60 + (Math.min(e / 15, 60) >> 0))
  1914.                             }), ye.anchor.set(.5, .5), ye.alpha = 1, ye.x = n, ye.y = o, Ce.addChild(ye), be = !0, new Tween(ye.scale, {
  1915.                                 x: 1.2,
  1916.                                 y: 1.2
  1917.                             }, .1).call(function() {
  1918.                                 ye && new Tween(ye.scale, {
  1919.                                     x: 1,
  1920.                                     y: 1
  1921.                                 }, .1).call(function() {})
  1922.                             }), 0 != s && (se.alpha = Math.min(5 * s, 255) / 255), a) {
  1923.                             $e = B();
  1924.                             ye.y;
  1925.                             new Tween(ye, {
  1926.                                 y: ye.y - 200,
  1927.                                 alpha: 0
  1928.                             }, .4, Tween.easeIn).call(function() {
  1929.                                 Ce.removeChild(ye), be = !1, I(), 0 != se.alpha && new Tween(se, {
  1930.                                     alpha: 0
  1931.                                 }, .7)
  1932.                             }).wait(.6), He <= 3 && setTimeout(function() {
  1933.                                 for (var e = 0; e < ke.length; e++)
  1934.                                     for (var t = 0; t < ke[e].length; t++) {
  1935.                                         var i = ke[e][t];
  1936.                                         new Tween(i, {
  1937.                                             alpha: x(i, e, t)
  1938.                                         }, .3)
  1939.                                     }
  1940.                                 D()
  1941.                             }, 3 == He ? 100 : 800)
  1942.                         }
  1943.                         new Tween(ve.scale, {
  1944.                             x: .7,
  1945.                             y: .7
  1946.                         }, .2, Tween.easeIn).call(function() {
  1947.                             new Tween(ve.scale, {
  1948.                                 x: .5,
  1949.                                 y: .5
  1950.                             }, .4)
  1951.                         })
  1952.                     }
  1953.  
  1954.                     function u() {
  1955.                         ge = 0, new Tween(ve, {
  1956.                             score: ge
  1957.                         }, .4)
  1958.                     }
  1959.  
  1960.                     function f(e) {
  1961.                         Me.onShow(e), Modal.show(Me)
  1962.                     }
  1963.  
  1964.                     function p(e, t, i) {
  1965.                         return Math.abs(Math.cos(5 * i * Math.PI))
  1966.                     }
  1967.  
  1968.                     function g(e, t) {
  1969.                         var i = Le.shift();
  1970.                         Le.push(i);
  1971.                         2 * Math.PI * Math.random();
  1972.                         Tween.clear(i), Tween.clear(i.scale), i.clicked = !1, i.x = e, i.y = t, i.scale.set(1.3, 1.3), i.alpha = 1, i.trigger(), Ce.addChild(i);
  1973.                         var n = 1410 * Math.random(),
  1974.                             r = 1300 * Math.random();
  1975.                         "landscape" == stage.orientation ? n = 1300 : r = 1200, new Tween(i.scale, {
  1976.                             x: 1,
  1977.                             y: 1
  1978.                         }, .5, Tween.easeout), new Tween(i, {
  1979.                             x: n,
  1980.                             y: r
  1981.                         }, 1, Tween.easeout).call(function() {
  1982.                             new Tween(i, {
  1983.                                 alpha: 1
  1984.                             }, 3, p).wait(7), new Tween(i, {
  1985.                                 alpha: 0
  1986.                             }, .5).wait(10).call(function() {
  1987.                                 i.parent && i.parent.removeChild(i)
  1988.                             })
  1989.                         })
  1990.                     }
  1991.  
  1992.                     function v() {
  1993.                         for (var e = 0; e < Le.length; e++) {
  1994.                             var t = Le[e];
  1995.                             Tween.clear(t), t.parent && t.parent.removeChild(t)
  1996.                         }
  1997.                     }
  1998.  
  1999.                     function m(e, t) {
  2000.                         var i = this;
  2001.                         this.container = new Container, this.innerContainer = new Container, this.container.addChild(this.innerContainer), this.targetX = 0, this.targetY = 0;
  2002.                         var n = de[e];
  2003.                         void 0 === t && (t = Math.random() * n.tiles.length >> 0);
  2004.                         var r = n.tiles[t];
  2005.                         this.children = this.innerContainer.children, this.tiles = r, this.color = re.tileColors[e], this.type = e + 1, this.typeOffset = t + 1;
  2006.                         for (var o = 1e3, a = -1e3, s = 1e3, h = -1e3, l = [], c = [], d = 0; d < r.length; d++)
  2007.                             for (var u = r[d], f = 0; f < u.length; f++) {
  2008.                                 var p = r[d][f];
  2009.                                 if (1 === p) {
  2010.                                     var g = new Sprite(embed("i/g/shadow.png"));
  2011.                                     g.floorCoordinates = !1, g.anchor.set(.5, .5), g.frame = 2, this.innerContainer.addChildAt(g, 0), g.alpha = 0, g.tint = re.shadowTints[e];
  2012.                                     var v = new Pe(re);
  2013.                                     v.type = e, v.frame = 1, v.tint = re.tileColors[e], g.x = v.x = f * Be - d % 2 * Ie + Be, g.y = v.y = d * Fe + 73.5, this.innerContainer.addChild(v), v.x < o && (o = v.x), v.x > a && (a = v.x), v.y < s && (s = v.y), v.y > h && (h = v.y), l.push(v), c.push(g)
  2014.                                 }
  2015.                             }
  2016.                         this.innerContainer.scale.set(.6, .6), this.tw = .6 * (a - o) + 92, this.th = .6 * (h - s) + 92, this.container.setRatio = function(e) {
  2017.                             var t = 100 * e;
  2018.                             i.container.hitArea = new Rectangle((o - 67) / 2 * e - t, -t, i.tw * e + 2 * t, i.th * e + 2 * t)
  2019.                         }, this.container.interactive = !0, this.container.buttonMode = !0, this.minX = o, this.dropped = !1, this.fadeIn = function() {
  2020.                             new Tween(this.innerContainer.scale, {
  2021.                                 x: 1,
  2022.                                 y: 1
  2023.                             }, .1);
  2024.                             for (var e = 0; e < l.length; e++) {
  2025.                                 var t = l[e];
  2026.                                 new Tween(t.scale, {
  2027.                                     x: .8,
  2028.                                     y: .8
  2029.                                 }, .1)
  2030.                             }
  2031.                             for (var e = 0; e < c.length; e++) {
  2032.                                 var i = c[e];
  2033.                                 new Tween(i, {
  2034.                                     alpha: 1
  2035.                                 }, .1)
  2036.                             }
  2037.                         }, this.fadeDrop = function() {
  2038.                             this.dropped = !0;
  2039.                             for (var e = 0; e < l.length; e++) {
  2040.                                 var t = l[e];
  2041.                                 new Tween(t.scale, {
  2042.                                     x: 1,
  2043.                                     y: 1
  2044.                                 }, .1)
  2045.                             }
  2046.                             for (var e = 0; e < c.length; e++) {
  2047.                                 var i = c[e];
  2048.                                 new Tween(i, {
  2049.                                     alpha: 0
  2050.                                 }, .1)
  2051.                             }
  2052.                         }, this.fadeReset = function() {
  2053.                             new Tween(this.innerContainer.scale, {
  2054.                                 x: .6,
  2055.                                 y: .6
  2056.                             }, .1);
  2057.                             for (var e = 0; e < l.length; e++) {
  2058.                                 var t = l[e];
  2059.                                 new Tween(t.scale, {
  2060.                                     x: 1,
  2061.                                     y: 1
  2062.                                 }, .1)
  2063.                             }
  2064.                             for (var e = 0; e < c.length; e++) {
  2065.                                 var i = c[e];
  2066.                                 new Tween(i, {
  2067.                                     alpha: 0
  2068.                                 }, .1)
  2069.                             }
  2070.                         }, this.setSkin = function(t, n, r) {
  2071.                             i.color = n[e];
  2072.                             for (var o = 0; o < l.length; o++) {
  2073.                                 l[o].updateTileAsset(t.tileTexture, t.highlightTexture, o / 15, 1, r)
  2074.                             }
  2075.                             for (var o = 0; o < c.length; o++) c[o].tint = re.shadowTints[e]
  2076.                         }
  2077.                     }
  2078.  
  2079.                     function x(e, t, i) {
  2080.                         if (0 == He) {
  2081.                             var n = [
  2082.                                 [0, 0, 0, 0, 0],
  2083.                                 [0, 0, 0, 0, 0, 0],
  2084.                                 [0, 0, 0, 0, 0, 0, 0],
  2085.                                 [0, 0, 0, 0, 0, 0, 0, 0],
  2086.                                 [0, 0, 0, 0, 0, 0, 0, 0, 0],
  2087.                                 [0, 0, 0, 0, 0, 0, 0, 0],
  2088.                                 [0, 0, 0, 1, 0, 0, 0],
  2089.                                 [1, 1, 1, 1, 1, 1],
  2090.                                 [0, 0, 0, 1, 0]
  2091.                             ];
  2092.                             return n[t][i] ? e.used ? 1 : $ : .05
  2093.                         }
  2094.                         if (1 == He) {
  2095.                             var n = [
  2096.                                 [1, 1, 1, 1, 1],
  2097.                                 [1, 1, 1, 1, 1, 1],
  2098.                                 [0, 0, 0, 1, 1, 0, 0],
  2099.                                 [0, 0, 0, 0, 0, 1, 0, 0],
  2100.                                 [0, 0, 0, 0, 0, 0, 1, 0, 0],
  2101.                                 [0, 0, 0, 0, 0, 0, 1, 0],
  2102.                                 [0, 0, 0, 0, 0, 0, 1],
  2103.                                 [0, 0, 0, 0, 0, 0],
  2104.                                 [0, 0, 0, 0, 0]
  2105.                             ];
  2106.                             return n[t][i] ? e.used ? 1 : $ : .05
  2107.                         }
  2108.                         return e.used ? 1 : $
  2109.                     }
  2110.  
  2111.                     function w() {
  2112.                         for (var e = ge + ":", t = [], i = 0; i < et.length; i++) t.push(et[i].type, et[i].typeOffset);
  2113.                         e += t.join(",") + ":";
  2114.                         for (var n = [], i = 0; i < ke.length; i++)
  2115.                             for (var r = ke[i], o = 0; o < r.length; o++) n.push(r[o].type);
  2116.                         return e += n.join(",")
  2117.                     }
  2118.  
  2119.                     function y(e) {
  2120.                         e ? Z.state.remove() : Z.state.set(w())
  2121.                     }
  2122.  
  2123.                     function b(e) {
  2124.                         var t = Math.round((e.container.y - Ce.y) / Fe),
  2125.                             i = Math.floor((e.container.x - Ce.x) / Be + .5 + (t + 1) % 2 * .5),
  2126.                             n = t;
  2127.                         return {
  2128.                             x: i - Math.floor(Math.abs(We - n) / 2),
  2129.                             y: n,
  2130.                             px: i * Be + (1 - (t + 1) % 2) * Ie + Be / 2,
  2131.                             py: t * Fe + Fe / 2
  2132.                         }
  2133.                     }
  2134.  
  2135.                     function T(e) {
  2136.                         return C(e, b(e))
  2137.                     }
  2138.  
  2139.                     function C(e, t, i) {
  2140.                         if ((0 != He || 3 == t.x && 6 == t.y || i) && (1 != He || 2 == t.x && t.y == -0 || i)) {
  2141.                             for (var n = 0, r = 0; r < e.tiles.length; r++) {
  2142.                                 for (var o = t.y + r, a = 0; a < e.tiles[r].length; a++) {
  2143.                                     if (1 === e.tiles[r][a]) {
  2144.                                         var s = t.x + a + Math.floor(n);
  2145.                                         if (!ke[o] || !ke[o][s]) return !1;
  2146.                                         if (1 == ke[o][s].used) return !1
  2147.                                     }
  2148.                                 }
  2149.                                 n += o < We ? .5 : -.5
  2150.                             }
  2151.                             return !0
  2152.                         }
  2153.                     }
  2154.  
  2155.                     function S(e) {
  2156.                         for (var t = b(e), i = 0, n = 0; n < e.tiles.length; n++) {
  2157.                             for (var r = t.y + n, o = 0; o < e.tiles[n].length; o++) {
  2158.                                 if (1 === e.tiles[n][o]) {
  2159.                                     var a = t.x + o + Math.floor(i);
  2160.                                     ke[r] && ke[r][a] && (ke[r][a].tint = e.color, ke[r][a].alpha = .6)
  2161.                                 }
  2162.                             }
  2163.                             i += r < We ? .5 : -.5
  2164.                         }
  2165.                     }
  2166.  
  2167.                     function M(e, t) {
  2168.                         function i(e) {
  2169.                             setTimeout(function() {
  2170.                                 e.alpha = 1
  2171.                             }, 100)
  2172.                         }
  2173.                         He <= 3 && He++;
  2174.                         for (var n = 0, r = 0; r < e.tiles.length; r++) {
  2175.                             for (var o = t.y + r, a = 0; a < e.tiles[r].length; a++) {
  2176.                                 var s = e.tiles[r][a];
  2177.                                 if (1 === s) {
  2178.                                     var h = t.x + a + Math.floor(n);
  2179.                                     if (ke[o] && ke[o][h]) {
  2180.                                         var s = ke[o][h];
  2181.                                         s.tint = e.color, s.type = e.type, s.used = !0, s.frame = 1, i(s)
  2182.                                     }
  2183.                                 }
  2184.                             }
  2185.                             n += o < We ? .5 : -.5
  2186.                         }
  2187.                     }
  2188.  
  2189.                     function R(e, t) {
  2190.                         var i = ge * Math.random();
  2191.                         void 0 === e && (e = i < 1e4 && Math.random() < .4 ? Math.random() * (de.length - 2) >> 0 : i < 1e5 ? Math.random() * (de.length - 1) >> 0 : i < 25e4 ? (Math.random() * (de.length - 2) >> 0) + 1 : (Math.random() * (de.length - 1) >> 0) + 1);
  2192.                         var n = new m(e, t);
  2193.                         return n.container.x = 3e3, n.container.y = 3e3, he.addChild(n.container), n.container.on("down", function(e) {
  2194.                             var t = e.event,
  2195.                                 i = e.isMouseEvent;
  2196.                             if (!($e || Ze || n.dropped || 0 == He && n != et[1] || 1 == He && n != et[0])) {
  2197.                                 Tween.clear(n.container), he.addChild(n.container);
  2198.                                 var r = (t.getLocalPosition(n.container), n.container.ratio);
  2199.                                 Ze = n, H.play(0), i ? (le = he.x + n.tw, ce = he.y + n.th) : "landscape" == stage.orientation ? (le = 1.5 * n.tw + Be + he.x, ce = n.th + he.y) : (le = n.tw + he.x, ce = 2 * n.th + he.y);
  2200.                                 var o = t.getLocalPosition(stage),
  2201.                                     a = o.x / r - le,
  2202.                                     s = o.y / r - ce;
  2203.                                 Ze.innerContainer.x = Ze.container.x - a, Ze.innerContainer.y = Ze.container.y - s, new Tween(Ze.innerContainer, {
  2204.                                     x: 0,
  2205.                                     y: 0
  2206.                                 }, .1), Ze.container.x = a, Ze.container.y = s, Ze.fadeIn()
  2207.                             }
  2208.                         }), n
  2209.                     }
  2210.  
  2211.                     function _(e, i) {
  2212.                         function n(e, i, n, o, a, s) {
  2213.                             function h() {
  2214.                                 var n = Math.max(Math.pow(i, 1.2), 1),
  2215.                                     h = 0,
  2216.                                     c = re.removeColors[Je % re.removeColors.length];
  2217.                                 Je++;
  2218.                                 for (var u = 0; u < e.length; u++) Tween.clear(e[u]), r += l * n >> 0, h += l * n >> 0, e[u].type = 0, e[u].frame = 0, e[u].alpha = 1, e[u].tint = c, new Tween(e[u], {
  2219.                                     alpha: $,
  2220.                                     r: ae.r,
  2221.                                     g: ae.g,
  2222.                                     b: ae.b
  2223.                                 }, .3).wait(.3);
  2224.                                 for (var f = 0; f < Math.min(Math.ceil(i / 2), 3); f++) g(o, a);
  2225.                                 d(r, t(r), h, o, a, s, i)
  2226.                             }
  2227.                             var l = 10 * (n + 1);
  2228.                             setTimeout(h, 300 * i)
  2229.                         }
  2230.                         for (var r = 40, o = [], a = 0; a < Ke.length; a++) {
  2231.                             for (var s = Ke[a], h = !0, l = 0; l < s.length; l++)
  2232.                                 if (0 == s[l].used) {
  2233.                                     h = !1;
  2234.                                     break
  2235.                                 }
  2236.                             h && o.push(s)
  2237.                         }
  2238.                         o.sort(function(e, t) {
  2239.                             return e.length == t.length ? 0 : e.length < t.length ? -1 : 1
  2240.                         });
  2241.                         var c = i.px,
  2242.                             u = i.py;
  2243.                         if (o.length > 0) {
  2244.                             for (var a = 0; a < o.length; a++) N[Math.min(a, N.length - 1)].play(.3 * a);
  2245.                             for (var f = 0, p = 0, v = 0, a = 0; a < o.length; a++)
  2246.                                 for (var s = o[a], l = 0; l < s.length; l++) f += s[l].x, p += s[l].y, v++, s[l].used = !1, s[l].type = 0;
  2247.                             f /= v, p /= v;
  2248.                             for (var m = o.length > 2, a = 0; a < o.length; a++) {
  2249.                                 var s = o[a];
  2250.                                 n(s, a, o.length, f, p, !m && o.length == a + 1)
  2251.                             }
  2252.                             if (m) {
  2253.                                 var x = Math.min(3 * Math.min(o.length - 3, 6) + 3 * Math.random() >> 0, X.length - 1),
  2254.                                     w = X[x];
  2255.                                 w[0].play(.3 * a + .2), setTimeout(function() {
  2256.                                     d(650, w[1], 0, 700, 630, !0, a, !0)
  2257.                                 }, 300 * a + 300)
  2258.                             }
  2259.                             c = f, u = p
  2260.                         }
  2261.                         return d(40, t(40), 40, c, u, 0 == o.length, 0), o.length
  2262.                     }
  2263.  
  2264.                     function E(e) {
  2265.                         for (var t = 0; t < et.length; t++)
  2266.                             if (et[t] == e) {
  2267.                                 et.splice(t, 1);
  2268.                                 break
  2269.                             }
  2270.                         setTimeout(function() {
  2271.                             e.container.parent.removeChild(e.container)
  2272.                         }, 100), et.push(R()), O()
  2273.                     }
  2274.  
  2275.                     function L(e, t) {
  2276.                         var i = [e.tileTexture];
  2277.                         e.backgroundTexture && i.push(e.backgroundTexture), e.highlightTexture && i.push(e.highlightTexture), i.push(t), preload.apply(window, i)
  2278.                     }
  2279.  
  2280.                     function A(t, i) {
  2281.                         function n() {
  2282.                             Host.Application.SetStatusbarColor(t.isLight), re = t, oe = embed(t.tileTexture), stage.background.gradient = t.gradient, t.backgroundTexture ? stage.background.texture = embed(t.backgroundTexture) : stage.background.texture = void 0, stage.background.refresh(!0);
  2283.                             for (var n = 0; n < ke.length; n++)
  2284.                                 for (var r = ke[n], o = 0; o < r.length; o++) r[o].updateTileAsset(t.tileTexture, t.highlightTexture, n / 30 + o / 14, 0, i);
  2285.                             for (var n = 0; n < et.length; n++) et[n].setSkin(t, t.tileColors, i);
  2286.                             fe.updateStyle({
  2287.                                 fill: t.textColor
  2288.                             }), ve.updateStyle({
  2289.                                 fill: t.textColor
  2290.                             }), Sidebar.icon.tint = t.buttonColor, tileBackgroundTint = t.tileBackgroundTint, ae = e(tileBackgroundTint), pe.tint = t.buttonColor, _e.setStyle(), se.clear(), se.beginFill(t.overlayColor), se.drawRect(0, 0, 200, 200), i || (se.alpha = 1, new Tween(se, {
  2291.                                 alpha: 0
  2292.                             }, 1.5)), stage.visible = !0
  2293.                         }
  2294.                         Z.selectedSkin.set(t.id), L(t, n)
  2295.                     }
  2296.  
  2297.                     function P(e) {
  2298.                         var t = e && e.instant;
  2299.                         if (at != width || ot != height) {
  2300.                             at = width, ot = height;
  2301.                             var n = a.devicePixelRatio;
  2302.                             se.width = width * n, se.height = height * n, se.y = -a.styles.margins.top * n, ve.x = width * n / stage.ratio / 2, i(t), "landscape" == stage.orientation ? (Ce.x = 150, Ce.y = (1686 - ze * Fe) / 2, he.x = (width * n / stage.ratio - 2048) / 2, he.y = Math.max(.5 * (gameHeight * n / stage.ratio - 1536), 0)) : (Ce.x = (1536 - ze * Be) / 2, Ce.y = 300, he.x = (width * n / stage.ratio - 1536) / 2, he.y = .6 * (gameHeight * n / stage.ratio - 2048)), _e.move(t), O(t)
  2303.                         }
  2304.                     }
  2305.  
  2306.                     function B(e) {
  2307.                         for (var t = 0; t < et.length; t++)
  2308.                             for (var i = et[t], n = 0; n < ke.length; n++)
  2309.                                 for (var r = ke[n], o = -1; o < r.length + 1; o++)
  2310.                                     if (C(i, {
  2311.                                             x: o,
  2312.                                             y: n
  2313.                                         }, !0)) return !1;
  2314.                         return !0
  2315.                     }
  2316.  
  2317.                     function I() {
  2318.                         if (B()) return Sidebar.hideIcon(), Modal.show(new ee, !0), setTimeout(function() {
  2319.                             Modal.hide(function() {
  2320.                                 showGameOver()
  2321.                             })
  2322.                         }, 2e3), !0
  2323.                     }
  2324.  
  2325.                     function F() {
  2326.                         ga("send", "event", "Hex", "New Game")
  2327.                     }
  2328.  
  2329.                     function k() {
  2330.                         Q.stop(0), q.resetGain(), Sidebar.showIcon(), a.hideGameOverAd(), a.showInterstitialAd(), v(), u();
  2331.                         for (var e = 0; e < 3; e++) E(et[0]);
  2332.                         for (var e = 0; e < ke.length; e++)
  2333.                             for (var t = ke[e], i = 0; i < t.length; i++) t[i].frame = 0, t[i].tint = re.tileBackgroundTint, t[i].alpha = $, t[i].used = !1, t[i].type = 0;
  2334.                         F(), $e = !1
  2335.                     }
  2336.  
  2337.                     function O(e) {
  2338.                         if ("landscape" == stage.orientation)
  2339.                             for (var t = 0; t < 3; t++) {
  2340.                                 var i = et[t];
  2341.                                 i != Ze && (i.targetX = 1825 - i.tw / 2 - i.minX / 4, i.targetY = 400 * t + 468 + 15 - i.th / 2, e ? (i.container.x = i.targetX, i.container.y = i.targetY) : new Tween(i.container, {
  2342.                                     x: i.targetX,
  2343.                                     y: i.targetY
  2344.                                 }, .3))
  2345.                             } else
  2346.                                 for (var t = 0; t < 3; t++) {
  2347.                                     var i = et[t];
  2348.                                     if (i != Ze) {
  2349.                                         var i = et[t];
  2350.                                         i.targetX = 500 * t + 268 - et[t].tw / 2 - et[t].minX / 4, i.targetY = 1850 - et[t].th / 2, e ? (i.container.x = i.targetX, i.container.y = i.targetY) : new Tween(i.container, {
  2351.                                             x: i.targetX,
  2352.                                             y: i.targetY
  2353.                                         }, .3)
  2354.                                     }
  2355.                                 }
  2356.                     }
  2357.  
  2358.                     function G(e, t) {
  2359.                         Container.call(this);
  2360.                         var i = new Graphics;
  2361.                         this.addChild(i), i.beginFill(16777215, .9), i.drawRoundedRect(0, 0, 1400, 300, 35), this.setRatio = function(e) {
  2362.                             i.width = 1400 * e, i.height = 300 * e
  2363.                         };
  2364.                         var n = new Sprite(embed("i/g/helper.svg"));
  2365.                         this.addChild(n), n.x = -20, n.y = -20;
  2366.                         var e = new Text2(e, {
  2367.                             weight: 400,
  2368.                             size: 90,
  2369.                             fill: "#000000",
  2370.                             align: "center"
  2371.                         });
  2372.                         e.anchor.set(.5, 0), this.addChild(e), e.x = 700, e.y = 20;
  2373.                         var t = new Text2(t, {
  2374.                             weight: 400,
  2375.                             size: 60,
  2376.                             fill: "#000000",
  2377.                             align: "center"
  2378.                         });
  2379.                         t.anchor.set(.5, 0), this.addChild(t), t.x = 700, t.y = 125
  2380.                     }
  2381.  
  2382.                     function D(e) {
  2383.                         if (He > 3) return void(ut && (ut.parent.removeChild(ut), ut = null));
  2384.                         if (!e && ft != He)
  2385.                             if (ft = He, ut && 3 != He && (ut.parent.removeChild(ut), ut = null), 0 == He && (et[0].container.alpha = .2, et[2].container.alpha = .2, ut = new G(Host.Localize.Translate("Hi, let's play {game_name}!", {
  2386.                                     game_name: l.shareTitle
  2387.                                 }, "Hex FRVR Tutorial step #1 headline"), Host.Localize.Translate("Drag the middle piece to form\na full line across the bottom.", {}, "Hex FRVR Tutorial step #1 text")), ut.y = 250, ut.x = -35), 1 == He && (new Tween(et[0].container, {
  2388.                                     alpha: 1
  2389.                                 }), new Tween(et[1].container, {
  2390.                                     alpha: .2
  2391.                                 }), new Tween(et[2].container, {
  2392.                                     alpha: .2
  2393.                                 }), ut = new G(Host.Localize.Translate("Perfect!", {}, "Hex FRVR Tutorial step #2 headline"), Host.Localize.Translate("Now let's get a combo bonus by\nmatching several lines at once!", {}, "Hex FRVR Tutorial step #2 text")), ut.y = 950, ut.x = -35), 2 == He && (new Tween(et[0].container, {
  2394.                                     alpha: 1
  2395.                                 }), new Tween(et[1].container, {
  2396.                                     alpha: 1
  2397.                                 }), ut = new G(Host.Localize.Translate("You got it!", {}, "Hex FRVR Tutorial step #2 headline"), Host.Localize.Translate("Now try to get the highest score you can.\nCollect coins to unlock themes!", {}, "Hex FRVR Tutorial step #3 text")), ut.y = 950, ut.x = -35, Z.completedTutorial.set(!0), setTimeout(function() {
  2398.                                     He++, D()
  2399.                                 }, 8e3)), 3 == He) Sidebar.showIcon(), new Tween(ut, {
  2400.                                 alpha: 0,
  2401.                                 y: ut.y + 100
  2402.                             }, .5).call(function() {
  2403.                                 ut.parent.removeChild(ut), ut = null
  2404.                             }), a.off("resize", U);
  2405.                             else {
  2406.                                 ut.alpha = 0;
  2407.                                 var t = ut.y;
  2408.                                 ut.y += 100, new Tween(ut, {
  2409.                                     alpha: 1,
  2410.                                     y: t
  2411.                                 }, .5), Ce.addChild(ut)
  2412.                             }
  2413.                         if (dt.parent)
  2414.                             if (Tween.clear(dt), dt.parent.addChild(dt), 0 == He) {
  2415.                                 dt.x = et[1].targetX + 35, dt.y = et[1].targetY + 35, dt.alpha = 0;
  2416.                                 var i = ke[6][3];
  2417.                                 new Tween(dt, {
  2418.                                     alpha: 1
  2419.                                 }, .3, Tween.easeInOut).call(function() {
  2420.                                     new Tween(dt, {
  2421.                                         x: Ce.x + i.x - 50,
  2422.                                         y: Ce.y + i.y
  2423.                                     }, 2, Tween.easeInOut).call(function() {
  2424.                                         new Tween(dt, {
  2425.                                             alpha: 0
  2426.                                         }, .3, Tween.easeInOut).call(U)
  2427.                                     })
  2428.                                 })
  2429.                             } else if (1 == He) {
  2430.                             dt.x = et[0].targetX + 35, dt.y = et[0].targetY + 35, dt.alpha = 0;
  2431.                             var i = ke[0][2];
  2432.                             new Tween(dt, {
  2433.                                 alpha: 1
  2434.                             }, .3, Tween.easeInOut).call(function() {
  2435.                                 new Tween(dt, {
  2436.                                     x: Ce.x + i.x - 50,
  2437.                                     y: Ce.y + i.y
  2438.                                 }, 2, Tween.easeInOut).call(function() {
  2439.                                     new Tween(dt, {
  2440.                                         alpha: 0
  2441.                                     }, .3, Tween.easeInOut).call(U)
  2442.                                 })
  2443.                             })
  2444.                         } else he.removeChild(dt)
  2445.                     }
  2446.  
  2447.                     function U() {
  2448.                         D(!0)
  2449.                     }
  2450.                     var H = a.Sound.get("i/s/pickup.mp3", 1),
  2451.                         z = a.Sound.get("i/s/place.mp3", 1),
  2452.                         W = a.Sound.get("i/s/placewrong.mp3", 1),
  2453.                         N = [a.Sound.get("i/s/row1.mp3", .8), a.Sound.get("i/s/row2.mp3", .8), a.Sound.get("i/s/row3.mp3", .8), a.Sound.get("i/s/row4.mp3", .8), a.Sound.get("i/s/row5.mp3", .8), a.Sound.get("i/s/row6.mp3", .8), a.Sound.get("i/s/row7.mp3", .8), a.Sound.get("i/s/row8.mp3", .8), a.Sound.get("i/s/row9.mp3", .8), a.Sound.get("i/s/row10.mp3", .8)],
  2454.                         j = a.Sound.get("i/s/gameover.mp3", .9),
  2455.                         V = a.Sound.get("i/s/highscore.mp3", 1),
  2456.                         Y = a.Sound.get("i/s/ding.mp3", .8);
  2457.                     Sidebar.sounds.show = a.Sound.get("i/s/in.mp3", 1), Sidebar.sounds.hide = a.Sound.get("i/s/out.mp3", 1), Modal.sounds.button = a.Sound.get("i/s/click.mp3", 1);
  2458.                     var X = [
  2459.                             [a.Sound.get("i/s/voice_tier1_beautiful.mp3", .8), "Beautiful!"],
  2460.                             [a.Sound.get("i/s/voice_tier1_goodjob.mp3", .8), "Good Job!"],
  2461.                             [a.Sound.get("i/s/voice_tier2_gettinggood.mp3", .8), "Getting Good!"],
  2462.                             [a.Sound.get("i/s/voice_tier2_ohyeah.mp3", .8), "Oh Yeah!"],
  2463.                             [a.Sound.get("i/s/voice_tier3_gorgeous.mp3", .8), "Gorgeous!"],
  2464.                             [a.Sound.get("i/s/voice_tier3_terrific.mp3", .8), "Terrific!"],
  2465.                             [a.Sound.get("i/s/voice_tier4_genius.mp3", .8), "Genius!"],
  2466.                             [a.Sound.get("i/s/voice_tier4_stunning.mp3", .8), "Stunning!"],
  2467.                             [a.Sound.get("i/s/voice_tier5_fantastic.mp3", .8), "Fantastic!"],
  2468.                             [a.Sound.get("i/s/voice_tier5_flabbergasting.mp3", .8), "Flabbergasting!"],
  2469.                             [a.Sound.get("i/s/voice_tier6_astounding.mp3", .8), "Astounding!"],
  2470.                             [a.Sound.get("i/s/voice_tier6_explosive.mp3", .8), "Explosive!"],
  2471.                             [a.Sound.get("i/s/voice_tier7_incredible.mp3", .8), "Incredible!"],
  2472.                             [a.Sound.get("i/s/voice_tier7_mindblowing.mp3", .8), "Mindblowing!"]
  2473.                         ],
  2474.                         K = a.Sound.get("i/s/coin.mp3", .5),
  2475.                         q = a.Music.get("i/s/music.mp3", 1),
  2476.                         Q = a.Music.get("i/s/menu.mp3", 1);
  2477.                     a.backgroundMusic = q;
  2478.                     var J, Z = {
  2479.                         highscore: Host.Preferences.QuickInt("score.v1"),
  2480.                         muteSounds: Host.Preferences.QuickBool("hex.sound.v6"),
  2481.                         muteMusic: Host.Preferences.QuickBool("hex.music.v6"),
  2482.                         state: Host.Preferences.QuickString("hex.state.v2"),
  2483.                         coins: Host.Preferences.QuickInt("hex.coins.v1") || 0,
  2484.                         unlocked: Host.Preferences.QuickString("hex.unlocked.v1"),
  2485.                         selectedSkin: Host.Preferences.QuickString("hex.skin.v1"),
  2486.                         completedTutorial: Host.Preferences.QuickBool("hex.tutorial.v1")
  2487.                     };
  2488.                     a.is.facebookInstant ? (console.log("Subscribing to FBInstantComplete"), Host.on("FBInstantComplete", function() {
  2489.                         console.log("FBInstantComplete called"), Host.Localize.LoadInstantLanguage && Host.Localize.LoadInstantLanguage(), FBInstant.player.getDataAsync(["coins", "state", "highscore"]).then(function(e) {
  2490.                             console.log("Got data from Facebook cloud", e), J = e;
  2491.                             var t = h(e.state || "{}", Z.unlocked.get() || "{}"),
  2492.                                 i = t != Z.unlocked.get();
  2493.                             Z.unlocked.set(t), i ? (console.log("Overwrote coins"), Z.coins.set(Math.max(parseInt(e.coins) || 0))) : (console.log("Merged coins"), Z.coins.set(Math.max(parseInt(e.coins) || 0, Z.coins.get() || 0))), _e.setValue(Z.coins.get()), o(parseInt(e.highscore) || 0)
  2494.                         })
  2495.                     })) : (a.loadConfig(l.id), s.login());
  2496.                     var $ = .2,
  2497.                         ee = Modal.ModalOverlayContent.expand(function() {
  2498.                             Modal.ModalOverlayContent.call(this), this.addHeadline(Host.Localize.Translate("Game Over", {}, "Game over modal headline")), this.addLead(Host.Localize.Translate("Ouch, no more valid moves.", {}, "Game over modal text")), this.innerHeight = 250, this.blurClose = !1
  2499.                         }),
  2500.                         te = null;
  2501.                     a.onParseLoginSuccess = function(e) {
  2502.                         te = e, Z.coins.set(Math.max(parseInt(te.get("coins")) || 0, Z.coins.get() || 0)), _e.setValue(Z.coins.get());
  2503.                         var t = h(te.get("state") || "{}", Z.unlocked.get() || "{}");
  2504.                         Z.unlocked.set(t), o(parseInt(te.get("highscore")) || 0)
  2505.                     };
  2506.                     var ie = Modal.ModalOverlayContent.expand(function() {
  2507.                             function e() {
  2508.                                 q.stop(0), q.play(0, !0), Modal.hide(function() {
  2509.                                     k()
  2510.                                 })
  2511.                             }
  2512.                             var i = this;
  2513.                             Modal.ModalOverlayContent.call(i), i.addHeadline(Host.Localize.Translate("Final Score", {}, "Final score modal headline")), i.innerHeight = 570, i.blurClose = !1;
  2514.                             var n = i.addButton(Host.Localize.Translate("Play Again", {}, "Button text for final score modal, asking users to play again"), e, 7463062),
  2515.                                 r = i.addTextBlock(0, 300, 500);
  2516.                             r.scale.set(.5, .5), r.y = 135;
  2517.                             var o = 0;
  2518.                             Object.defineProperty(r, "score", {
  2519.                                 get: function() {
  2520.                                     return o
  2521.                                 },
  2522.                                 set: function(e) {
  2523.                                     o = e, this.setText(t(e >> 0))
  2524.                                 }
  2525.                             });
  2526.                             var a = r.scale.x,
  2527.                                 s = r.scale.x;
  2528.                             new Tween(r, {
  2529.                                 score: ge
  2530.                             }, 1, Tween.linary).wait(.3).call(function() {
  2531.                                 r.scale.set(1.1 * a, 1.1 * s), new Tween(r.scale, {
  2532.                                     x: a,
  2533.                                     y: s
  2534.                                 }, .3)
  2535.                             });
  2536.                             var h = i.addTextBlock(t(Z.highscore.get()), 60, 200);
  2537.                             h.y = 310, h.x += 40;
  2538.                             var l = new Sprite(embed("i/g/crown.svg"));
  2539.                             l.tint = 0, l.y = 315, l.x = 400 - (h.width + 80) / 2, i.addChild(l), i.addMetaButton(405, {
  2540.                                 autoCallback: e
  2541.                             }) && (i.innerHeight += 165, n && (n.y += 165))
  2542.                         }),
  2543.                         ne = [{
  2544.                             id: "default",
  2545.                             coinCost: 0,
  2546.                             gradient: {
  2547.                                 type: "linear",
  2548.                                 stops: [
  2549.                                     [0, "#252525"],
  2550.                                     [1, "#202020"]
  2551.                                 ]
  2552.                             },
  2553.                             tileTexture: "i/g/tile.svg",
  2554.                             textColor: "#FFFFFF",
  2555.                             overlayColor: 16777215,
  2556.                             buttonColor: 16777215,
  2557.                             tileBackgroundTint: 11184810,
  2558.                             tileColors: [13628289, 9014527, 7463062, 16746933, 16097903, 16768137, 15560057],
  2559.                             removeColors: [16777215],
  2560.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2561.                         }, {
  2562.                             id: "defaultbright",
  2563.                             coinCost: 25,
  2564.                             isLight: !0,
  2565.                             gradient: {
  2566.                                 type: "linear",
  2567.                                 stops: [
  2568.                                     [0, "#ffffff"],
  2569.                                     [1, "#fffcf6"]
  2570.                                 ]
  2571.                             },
  2572.                             tileTexture: "i/g/lighttile.png",
  2573.                             highlightTexture: "i/g/lighthighlight.png",
  2574.                             backgroundTexture: "i/g/noise.png",
  2575.                             textColor: "#656158",
  2576.                             overlayColor: 6644056,
  2577.                             buttonColor: 6644056,
  2578.                             tileBackgroundTint: 11114096,
  2579.                             tileColors: [10480225, 7326453, 5956793, 16088464, 16752481, 15980635, 16088558],
  2580.                             removeColors: [13813423],
  2581.                             shadowTints: [13694386, 12117498, 11465437, 16433097, 16765106, 16379055, 16433143]
  2582.                         }, {
  2583.                             id: "allwhite",
  2584.                             coinCost: 100,
  2585.                             gradient: {
  2586.                                 type: "linear",
  2587.                                 stops: [
  2588.                                     [0, "#333333"],
  2589.                                     [1, "#111111"]
  2590.                                 ]
  2591.                             },
  2592.                             backgroundTexture: "i/g/noise.png",
  2593.                             tileTexture: "i/g/whitetile.png",
  2594.                             textColor: "#EEEEEE",
  2595.                             overlayColor: 15658734,
  2596.                             buttonColor: 15658734,
  2597.                             tileBackgroundTint: 8947848,
  2598.                             tileColors: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215],
  2599.                             removeColors: [15269815, 12106495, 11796428, 16758995, 16763819, 16771768, 16755892],
  2600.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2601.                         }, {
  2602.                             id: "allblack",
  2603.                             isLight: !0,
  2604.                             coinCost: 100,
  2605.                             gradient: {
  2606.                                 type: "linear",
  2607.                                 stops: [
  2608.                                     [0, "#EEEEEE"],
  2609.                                     [1, "#FFFFFF"]
  2610.                                 ]
  2611.                             },
  2612.                             backgroundTexture: "i/g/noise.png",
  2613.                             tileTexture: "i/g/2tile.png",
  2614.                             textColor: "#555555",
  2615.                             overlayColor: 0,
  2616.                             buttonColor: 5592405,
  2617.                             tileBackgroundTint: 5592405,
  2618.                             tileColors: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215],
  2619.                             removeColors: [15269815, 12106495, 11796428, 16758995, 16763819, 16771768, 16755892],
  2620.                             shadowTints: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215]
  2621.                         }, {
  2622.                             id: "sunset",
  2623.                             storeId: "hexthemesunset",
  2624.                             storeTitle: Host.Localize.Translate("Unlock Sunset Theme", {}, "In App Purcache for Sunset theme headline"),
  2625.                             storeDescription: Host.Localize.Translate("Permanently unlock the Sunset theme", {}, "In App Purcache for Sunset theme description"),
  2626.                             coinCost: 200,
  2627.                             gradient: {
  2628.                                 type: "linear",
  2629.                                 stops: [
  2630.                                     [0, "#f98887"],
  2631.                                     [.2, "#ef7e86"],
  2632.                                     [.4, "#d36b83"],
  2633.                                     [.6, "#a56482"],
  2634.                                     [.8, "#705f80"],
  2635.                                     [1, "#545c7d"]
  2636.                                 ]
  2637.                             },
  2638.                             backgroundTexture: "i/g/darkdot.png",
  2639.                             tileTexture: "i/g/whitetile.png",
  2640.                             textColor: "#EEEEEE",
  2641.                             overlayColor: 15658734,
  2642.                             buttonColor: 15658734,
  2643.                             tileBackgroundTint: 16777215,
  2644.                             tileColors: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215],
  2645.                             removeColors: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215],
  2646.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2647.                         }, {
  2648.                             id: "earth",
  2649.                             isLight: !0,
  2650.                             storeId: "hexthemeearth",
  2651.                             storeTitle: Host.Localize.Translate("Unlock Earth Theme", {}, "In App Purcache for Earth theme headline"),
  2652.                             storeDescription: Host.Localize.Translate("Permanently unlock the Earth theme", {}, "In App Purcache for Earth theme description"),
  2653.                             coinCost: 200,
  2654.                             gradient: {
  2655.                                 type: "linear",
  2656.                                 stops: [
  2657.                                     [1, "#c9e4b5"],
  2658.                                     [.8, "#aadab2"],
  2659.                                     [.6, "#71c6ac"],
  2660.                                     [.4, "#4aada5"],
  2661.                                     [.2, "#51737a"],
  2662.                                     [0, "#5a646a"]
  2663.                                 ]
  2664.                             },
  2665.                             backgroundTexture: "i/g/darkdot.png",
  2666.                             tileTexture: "i/g/tile.svg",
  2667.                             highlightTexture: "i/g/lighthighlight.png",
  2668.                             textColor: "#384032",
  2669.                             overlayColor: 3686450,
  2670.                             buttonColor: 3686450,
  2671.                             tileBackgroundTint: 16777215,
  2672.                             tileColors: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215],
  2673.                             removeColors: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215],
  2674.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2675.                         }, {
  2676.                             id: "neon",
  2677.                             storeId: "hexthemeneon",
  2678.                             storeTitle: Host.Localize.Translate("Unlock Neon Theme", {}, "In App Purcache for Neon theme headline"),
  2679.                             storeDescription: Host.Localize.Translate("Permanently unlock the Neon theme", {}, "In App Purcache for Neon theme description"),
  2680.                             coinCost: 500,
  2681.                             gradient: {
  2682.                                 type: "linear",
  2683.                                 width: 1,
  2684.                                 stops: [
  2685.                                     [0, "#202020"],
  2686.                                     [1, "#000000"]
  2687.                                 ]
  2688.                             },
  2689.                             tileTexture: "i/g/3tile.png",
  2690.                             textColor: "#FFFFFF",
  2691.                             overlayColor: 16777215,
  2692.                             buttonColor: 16777215,
  2693.                             tileBackgroundTint: 11184810,
  2694.                             tileColors: [12776960, 6120703, 58998, 16734374, 16617244, 16766003, 16266578],
  2695.                             removeColors: [16777215],
  2696.                             shadowTints: [15269815, 12106495, 11796428, 16758995, 16763819, 16771768, 16755892]
  2697.                         }, {
  2698.                             id: "darkblue",
  2699.                             storeId: "hexthemedarkblue",
  2700.                             storeTitle: Host.Localize.Translate("Unlock Dark Blue Theme", {}, "In App Purcache for Dark Blue theme headline"),
  2701.                             storeDescription: Host.Localize.Translate("Permanently unlock the Dark Blue theme", {}, "In App Purcache for Dark Blue theme description"),
  2702.                             coinCost: 750,
  2703.                             gradient: {
  2704.                                 type: "linear",
  2705.                                 stops: [
  2706.                                     [0, "#093238"],
  2707.                                     [1, "#093238"]
  2708.                                 ]
  2709.                             },
  2710.                             tileTexture: "i/g/twotile.png",
  2711.                             textColor: "#f5f2ec",
  2712.                             overlayColor: 16118508,
  2713.                             buttonColor: 16118508,
  2714.                             tileBackgroundTint: 16777215,
  2715.                             tileColors: [13748402, 2535072, 5615970, 15089728, 15050281, 15065897, 13910246],
  2716.                             removeColors: [16777215],
  2717.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2718.                         }, {
  2719.                             id: "pastel",
  2720.                             storeId: "hexthemepastel",
  2721.                             storeTitle: Host.Localize.Translate("Unlock Pastel Theme", {}, "In App Purcache for Pastel theme headline"),
  2722.                             storeDescription: Host.Localize.Translate("Permanently unlock the Pastel theme", {}, "In App Purcache for Pastel theme description"),
  2723.                             coinCost: 1e3,
  2724.                             isLight: !0,
  2725.                             gradient: {
  2726.                                 type: "linear",
  2727.                                 stops: [
  2728.                                     [0, "#ffffff"],
  2729.                                     [1, "#b5f6f6"]
  2730.                                 ]
  2731.                             },
  2732.                             tileTexture: "i/g/5tile.png",
  2733.                             backgroundTexture: "i/g/dots.png",
  2734.                             highlightTexture: "i/g/5highlight.png",
  2735.                             textColor: "#67625c",
  2736.                             overlayColor: 6775388,
  2737.                             buttonColor: 6775388,
  2738.                             tileBackgroundTint: 6775388,
  2739.                             tileColors: [15007655, 11843327, 9568182, 16757968, 16761502, 16771508, 16750753],
  2740.                             removeColors: [16777215],
  2741.                             shadowTints: [16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215]
  2742.                         }, {
  2743.                             id: "pixel",
  2744.                             storeId: "hexthemepixel",
  2745.                             storeTitle: Host.Localize.Translate("Unlock Pixel Theme", {}, "In App Purcache for Pixel theme headline"),
  2746.                             storeDescription: Host.Localize.Translate("Permanently unlock the Pixel theme", {}, "In App Purcache for Pixel theme description"),
  2747.                             coinCost: 2e3,
  2748.                             gradient: {
  2749.                                 type: "linear",
  2750.                                 stops: [
  2751.                                     [0, "#000000"],
  2752.                                     [1, "#000000"]
  2753.                                 ]
  2754.                             },
  2755.                             tileTexture: "i/g/4tile.png",
  2756.                             textColor: "#FFFFFF",
  2757.                             overlayColor: 16777215,
  2758.                             buttonColor: 16777215,
  2759.                             tileBackgroundTint: 11184810,
  2760.                             tileColors: [12713787, 5001215, 1965927, 16731278, 16743726, 16762956, 16721209],
  2761.                             removeColors: [16777215],
  2762.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2763.                         }, {
  2764.                             id: "flower",
  2765.                             coinCost: 2e3,
  2766.                             storeId: "hexthemeflower",
  2767.                             storeTitle: Host.Localize.Translate("Unlock Flower Theme", {}, "In App Purcache for Flower theme headline"),
  2768.                             storeDescription: Host.Localize.Translate("Permanently unlock the Flower theme", {}, "In App Purcache for Flower theme description"),
  2769.                             gradient: {
  2770.                                 type: "radial",
  2771.                                 multiplier: 1.2,
  2772.                                 stops: [
  2773.                                     [.5, "#457c28"],
  2774.                                     [1, "#15320b"]
  2775.                                 ]
  2776.                             },
  2777.                             tileTexture: "i/g/6tile.png",
  2778.                             backgroundTexture: "i/g/grass.png",
  2779.                             highlightTexture: "i/g/6highlight.png",
  2780.                             textColor: "#ffffff",
  2781.                             overlayColor: 16777215,
  2782.                             buttonColor: 16777215,
  2783.                             tileBackgroundTint: 16777215,
  2784.                             tileColors: [14286696, 8027903, 4259734, 16751558, 16754273, 16769933, 16741508],
  2785.                             removeColors: [16777215],
  2786.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2787.                         }, {
  2788.                             id: "gold",
  2789.                             coinCost: 5e3,
  2790.                             storeId: "hexthemegold",
  2791.                             storeExclusive: !0,
  2792.                             storeTitle: Host.Localize.Translate("Unlock Gold Theme", {}, "In App Purcache for Gold theme headline"),
  2793.                             storeDescription: Host.Localize.Translate("Permanently unlock the Gold theme", {}, "In App Purcache for Gold theme description"),
  2794.                             gradient: {
  2795.                                 type: "radial",
  2796.                                 multiplier: 1,
  2797.                                 stops: [
  2798.                                     [0, "#000000"],
  2799.                                     [1, "#000000"]
  2800.                                 ]
  2801.                             },
  2802.                             tileTexture: "i/g/7tile.png",
  2803.                             backgroundTexture: "i/g/7texture.png",
  2804.                             highlightTexture: "i/g/7highlight.png",
  2805.                             textColor: "#ffffff",
  2806.                             overlayColor: 16777215,
  2807.                             buttonColor: 16777215,
  2808.                             tileBackgroundTint: 16777215,
  2809.                             tileColors: [11468544, 1279, 65363, 16711774, 16736256, 16756992, 16711703],
  2810.                             removeColors: [16777215],
  2811.                             shadowTints: [0, 0, 0, 0, 0, 0, 0]
  2812.                         }],
  2813.                         re = ne[0],
  2814.                         oe = embed("i/g/tile.svg");
  2815.                     stage.background.gradient = re.gradient;
  2816.                     var ae = e(re.tileBackgroundTint),
  2817.                         se = new Graphics;
  2818.                     se.beginFill(16777215), se.drawRect(0, 0, 200, 200), stage.addChildAt(se, 1), se.alpha = 0;
  2819.                     var he = new Container,
  2820.                         le = 0,
  2821.                         ce = 0,
  2822.                         de = [{
  2823.                             tiles: [
  2824.                                 [
  2825.                                     [1]
  2826.                                 ]
  2827.                             ]
  2828.                         }, {
  2829.                             tiles: [
  2830.                                 [
  2831.                                     [1],
  2832.                                     [1, 1],
  2833.                                     [1]
  2834.                                 ],
  2835.                                 [
  2836.                                     [1, 1],
  2837.                                     [1, 1]
  2838.                                 ],
  2839.                                 [
  2840.                                     [1, 1],
  2841.                                     [, 1, 1]
  2842.                                 ]
  2843.                             ]
  2844.                         }, {
  2845.                             tiles: [
  2846.                                 [
  2847.                                     [1],
  2848.                                     [, 1],
  2849.                                     [, 1],
  2850.                                     [, , 1]
  2851.                                 ],
  2852.                                 [
  2853.                                     [, 1],
  2854.                                     [, 1],
  2855.                                     [1],
  2856.                                     [1]
  2857.                                 ],
  2858.                                 [
  2859.                                     [1, 1, 1, 1]
  2860.                                 ]
  2861.                             ]
  2862.                         }, {
  2863.                             tiles: [
  2864.                                 [
  2865.                                     [1],
  2866.                                     [1, 1],
  2867.                                     [, 1]
  2868.                                 ],
  2869.                                 [
  2870.                                     [1, 1],
  2871.                                     [, 1],
  2872.                                     [1]
  2873.                                 ],
  2874.                                 [
  2875.                                     [, 1],
  2876.                                     [1, 1, 1]
  2877.                                 ],
  2878.                                 [
  2879.                                     [1],
  2880.                                     [, 1, 1],
  2881.                                     [, 1]
  2882.                                 ],
  2883.                                 [
  2884.                                     [, 1],
  2885.                                     [, 1],
  2886.                                     [1, 1]
  2887.                                 ],
  2888.                                 [
  2889.                                     [1, 1, 1],
  2890.                                     [, 1]
  2891.                                 ]
  2892.                             ]
  2893.                         }, {
  2894.                             tiles: [
  2895.                                 [
  2896.                                     [1, 1],
  2897.                                     [, 1],
  2898.                                     [, 1]
  2899.                                 ],
  2900.                                 [
  2901.                                     [, 1],
  2902.                                     [, 1, 1],
  2903.                                     [1]
  2904.                                 ],
  2905.                                 [
  2906.                                     [1, 1, 1],
  2907.                                     [, , 1]
  2908.                                 ],
  2909.                                 [
  2910.                                     [1],
  2911.                                     [, 1],
  2912.                                     [1, 1]
  2913.                                 ],
  2914.                                 [
  2915.                                     [, 1],
  2916.                                     [1, 1],
  2917.                                     [1]
  2918.                                 ],
  2919.                                 [
  2920.                                     [1],
  2921.                                     [1, 1, 1]
  2922.                                 ]
  2923.                             ]
  2924.                         }, {
  2925.                             tiles: [
  2926.                                 [
  2927.                                     [1],
  2928.                                     [1],
  2929.                                     [1, 1]
  2930.                                 ],
  2931.                                 [
  2932.                                     [1, 1],
  2933.                                     [1],
  2934.                                     [1]
  2935.                                 ],
  2936.                                 [
  2937.                                     [1, 1],
  2938.                                     [1, , 1]
  2939.                                 ],
  2940.                                 [
  2941.                                     [1, 1],
  2942.                                     [, , 1],
  2943.                                     [, 1]
  2944.                                 ],
  2945.                                 [
  2946.                                     [, 1],
  2947.                                     [, , 1],
  2948.                                     [1, 1]
  2949.                                 ],
  2950.                                 [
  2951.                                     [1, , 1],
  2952.                                     [, 1, 1]
  2953.                                 ]
  2954.                             ]
  2955.                         }, {
  2956.                             tiles: [
  2957.                                 [
  2958.                                     [1],
  2959.                                     [, 1, 1],
  2960.                                     [1]
  2961.                                 ],
  2962.                                 [
  2963.                                     [, 1],
  2964.                                     [1, 1],
  2965.                                     [, 1]
  2966.                                 ],
  2967.                                 [
  2968.                                     [1],
  2969.                                     [, 1, 1],
  2970.                                     [1]
  2971.                                 ]
  2972.                             ]
  2973.                         }],
  2974.                         ue = new Container;
  2975.                     ue.y = 155;
  2976.                     var fe = new Text2("", {
  2977.                         weight: 500,
  2978.                         size: 50,
  2979.                         fill: re.textColor
  2980.                     });
  2981.                     ue.addChild(fe);
  2982.                     var pe = new Sprite(embed("i/g/crown.svg"));
  2983.                     pe.tint = re.overlayColor, ue.addChild(pe);
  2984.                     var ge = 0,
  2985.                         ve = new Text2("0", {
  2986.                             weight: 500,
  2987.                             size: 300,
  2988.                             fill: re.textColor
  2989.                         });
  2990.                     ve.scale.set(.5, .5), ve.anchor.set(.5, 0);
  2991.                     var me = 0;
  2992.                     Object.defineProperty(ve, "score", {
  2993.                         get: function() {
  2994.                             return me
  2995.                         },
  2996.                         set: function(e) {
  2997.                             me = e, this.setText(t(e >> 0))
  2998.                         }
  2999.                     });
  3000.                     var xe, we = 0,
  3001.                         ye = new Text2("", {
  3002.                             weight: 500,
  3003.                             size: 10,
  3004.                             fill: "#ffffff",
  3005.                             dropShadow: !0
  3006.                         }),
  3007.                         be = !1,
  3008.                         Te = Modal.ModalOverlayContent.expand(function(e) {
  3009.                             Modal.ModalOverlayContent.call(this), this.blurClose = !1, this.addButton(Host.Localize.Translate("Close", {}, "Close button text for iAP Loading dialogue."), function() {
  3010.                                 Modal.hide()
  3011.                             }, 7463062).y = 135, this.addHeadline(e), this.innerHeight = 335
  3012.                         }),
  3013.                         Ce = new Container,
  3014.                         Se = Modal.ModalOverlayContent.expand(function() {
  3015.                             function e(e) {
  3016.                                 var t = ne[e];
  3017.                                 if (0 == t.coinCost) return !0;
  3018.                                 var i = JSON.parse(Z.unlocked.get() || "{}");
  3019.                                 return 1 == i[t.id] || !(!t.storeId || !l[t.storeId]) && (i[t.id] = !0, Z.unlocked.set(JSON.stringify(i)), c(), !0)
  3020.                             }
  3021.  
  3022.                             function t(e, t, i) {
  3023.                                 return e + .05 * (Math.cos(30 * i) * Math.sin(i * Math.PI))
  3024.                             }
  3025.  
  3026.                             function i() {
  3027.                                 e(u) ? Modal.hide(function() {
  3028.                                     ne[u].id != re.id && A(ne[u])
  3029.                                 }) : new Tween(m, {
  3030.                                     rotation: 0
  3031.                                 }, 2, t)
  3032.                             }
  3033.  
  3034.                             function r() {
  3035.                                 function t() {
  3036.                                     f.save(), f.beginPath(), o(f, 0, 0, 600, 400, 15), f.clip(), f.fillStyle = "#000000", f.fillRect(0, 0, 600, 400), f.restore(), f.save(), f.beginPath(), o(f, 2, 2, 596, 396, 12), f.clip(), f.drawImage(s, 0, 0), f.restore()
  3037.                                 }
  3038.                                 u = Math.min(Math.max(u, 0), ne.length);
  3039.                                 var i = u;
  3040.                                 g.visible = 0 != i, v.visible = i != ne.length - 1, R && R.parent && R.parent.removeChild(R), R = _[i];
  3041.                                 var n = ne[i];
  3042.                                 if (y.setText(n.coinCost), n.coinCost > Z.coins.get() ? w.alpha = y.alpha = .4 : w.alpha = y.alpha = 1, b.visible = !1, e(i)) m.visible = !1, S.setColor(7463062);
  3043.                                 else if (m.visible = !0, S.setColor(14540253), b.x = 400, m.x = 400, n.storeId) {
  3044.                                     var r = h[n.storeId];
  3045.                                     r && (b.visible = !0, C.setText(r.priceLocaleString), n.storeExclusive ? m.visible = !1 : (b.x = 560, m.x = 240))
  3046.                                 }
  3047.                                 if (R) d.addChild(R);
  3048.                                 else {
  3049.                                     var s = document.createElement("canvas"),
  3050.                                         l = s.getContext("2d");
  3051.                                     s.width = 600, s.height = 400;
  3052.                                     var c = document.createElement("canvas"),
  3053.                                         f = c.getContext("2d");
  3054.                                     c.width = 600, c.height = 400, stage.background.drawBackground(l, 600, 400, n.gradient), t();
  3055.                                     var p = R = new Sprite(c);
  3056.                                     _[i] = R, R.anchor.set(.5, 0), d.addChild(R), L(n, function() {
  3057.                                         function e(e, t) {
  3058.                                             l.globalAlpha = .2, l.drawImage(a.getTintedTexture(o, n.tileBackgroundTint), 0, 0, 140, 155, e, t, 140, 155)
  3059.                                         }
  3060.  
  3061.                                         function r(e, t, i) {
  3062.                                             l.globalAlpha = 1, l.drawImage(a.getTintedTexture(o, i), 140, 0, 140, 155, e, t, 140, 155), n.highlightTexture && l.drawImage(embed(n.highlightTexture), 0, 0, 140, 155, e, t, 140, 155)
  3063.                                         }
  3064.                                         l.clearRect(0, 0, 600, 400), f.clearRect(0, 0, 600, 400), stage.background.drawBackground(l, 600, 400, n.gradient, n.backgroundTexture && embed(n.backgroundTexture));
  3065.                                         for (var o = new Sprite(embed(n.tileTexture)), s = [
  3066.                                                 [6, 0, 3, 5, 0],
  3067.                                                 [6, 3, 0, 5, 0],
  3068.                                                 [6, 3, 2, 5, 5],
  3069.                                                 [3, 2, 2, 0, 0]
  3070.                                             ], h = 0; h < 4; h++)
  3071.                                             for (var u = 0; u < 5; u++) {
  3072.                                                 var g = s[h][u],
  3073.                                                     v = -70 + 150 * u + h % 2 * 75,
  3074.                                                     m = -77 + 130 * h;
  3075.                                                 0 == g ? e(v, m) : r(v, m, n.tileColors[g - 1])
  3076.                                             }
  3077.                                         t(), c.path = void 0;
  3078.                                         var x = new Sprite(c);
  3079.                                         x.anchor.set(.5, 0), R == p && (p.parent && p.parent.removeChild(p), d.addChild(x)), _[i] = p, p.texture.destroy()
  3080.                                     })
  3081.                                 }
  3082.                             }
  3083.  
  3084.                             function o(e, t, i, n, r, o) {
  3085.                                 n < 2 * o && (o = n / 2), r < 2 * o && (o = r / 2), e.beginPath(), e.moveTo(t + o, i), e.arcTo(t + n, i, t + n, i + r, o), e.arcTo(t + n, i + r, t, i + r, o), e.arcTo(t, i + r, t, i, o), e.arcTo(t, i, t + n, i, o), e.closePath()
  3086.                             }
  3087.                             var s = this,
  3088.                                 h = {},
  3089.                                 l = {};
  3090.                             Modal.ModalOverlayContent.call(s), s.addHeadline(Host.Localize.Translate("Select theme", {}, "Hadline for Hex FRVR theme shop"));
  3091.                             var d = new Container;
  3092.                             s.addChild(d), d.x = 400, d.y = 160;
  3093.                             var u = 0,
  3094.                                 p = 310,
  3095.                                 g = new Sprite(embed("i/g/shopbtn.svg"));
  3096.                             g.anchor.set(.5, .5), s.addChild(g), g.x = 100, g.y = 360, g.on("down", function() {
  3097.                                 u--, r()
  3098.                             });
  3099.                             var v = new Sprite(embed("i/g/shopbtn.svg"));
  3100.                             v.anchor.set(.5, .5), v.scale.set(-1, 1), s.addChild(v), v.x = 700, v.y = 360, v.on("down", function() {
  3101.                                 u++, r()
  3102.                             });
  3103.                             var m = new Container;
  3104.                             m.x = 400, m.y = 560;
  3105.                             var x = new Graphics;
  3106.                             x.beginFill(13541206, 1), x.drawRoundedRect(0, 0, p, 100, 20), x.x = 0, x.y = 0, m.addChild(x);
  3107.                             var w = new Sprite(embed("i/g/coin.svg"));
  3108.                             w.x = 8 - p / 2, w.y = -42, w.scale.set(.8, .8), m.addChild(w);
  3109.                             var y = new Text2("1000", {
  3110.                                 weight: 400,
  3111.                                 fill: "#FFFFFF",
  3112.                                 size: 70,
  3113.                                 maxWidth: 210,
  3114.                                 dropShadow: !0
  3115.                             });
  3116.                             y.anchor.set(.5, .5), m.addChild(y), y.x = 35, y.y = 0;
  3117.                             var b = new Container;
  3118.                             b.y = 560, b.visible = !1;
  3119.                             var T = new Graphics;
  3120.                             T.beginFill(6213499, 1), T.drawRoundedRect(0, 0, p, 100, 20), T.x = 0, T.y = 0, b.addChild(T);
  3121.                             var C = new Text2("$14.99", {
  3122.                                 weight: 400,
  3123.                                 fill: "#FFFFFF",
  3124.                                 size: 70,
  3125.                                 maxWidth: 230
  3126.                             });
  3127.                             C.anchor.set(.5, .5), b.addChild(C), C.x = 0, C.y = 0;
  3128.                             var S = s.addButton(Host.Localize.Translate("Select", {}, "Theme shop button text"), i, 7463062);
  3129.                             S.y = 590, s.innerHeight -= 10, d.on("down", i), m.on("down", function() {
  3130.                                 var e = ne[u],
  3131.                                     t = e.coinCost,
  3132.                                     i = Z.coins.get();
  3133.                                 if (t <= i) {
  3134.                                     var n = JSON.parse(Z.unlocked.get() || "{}");
  3135.                                     n[e.id] = !0, Z.unlocked.set(JSON.stringify(n)), r(u), i -= t, _e.setValue(i), c()
  3136.                                 }
  3137.                             });
  3138.                             var M = function() {};
  3139.                             b.on("down", function() {
  3140.                                 var e = ne[u];
  3141.                                 Modal.show(new Te(Host.Localize.Translate("Loading...", {}, "Loading overlay shown when buying in app items."))), n.iAPbuy(e.storeId), M = function(t) {
  3142.                                     t == e.storeId && f(e), M = function() {}
  3143.                                 }
  3144.                             }), s.onShow = function(e) {
  3145.                                 if (e)
  3146.                                     for (var t = 0; t < ne.length; t++)
  3147.                                         if (ne[t] == e) {
  3148.                                             u = t;
  3149.                                             break
  3150.                                         }
  3151.                                 r()
  3152.                             };
  3153.                             var R, _ = [];
  3154.                             if (r(u), s.setRatio = function(e) {
  3155.                                     T.width = x.width = e * p, T.x = x.x = -T.width / 2, T.y = x.y = -50 * e, T.height = x.height = 100 * e
  3156.                                 }, s.addChild(m), s.addChild(b), n.iAPGetProductInfo && n.iAPPaymentWrapper) {
  3157.                                 for (var E = [], P = 0; P < ne.length; P++) {
  3158.                                     var B = ne[P].storeId;
  3159.                                     B && (E.push(B), n.iAPPaymentWrapper(B, function(e, t) {
  3160.                                         l[e] = t, M(e)
  3161.                                     }))
  3162.                                 }
  3163.                                 E.length && n.iAPGetProductInfo(E, function(e) {
  3164.                                     h = e
  3165.                                 })
  3166.                             }
  3167.                         }),
  3168.                         Me = new Se,
  3169.                         Re = Container.expand(function() {
  3170.                             var e = this;
  3171.                             Container.call(e);
  3172.                             var t = new Sprite(embed("i/g/btnoutline.png"));
  3173.                             t.anchor.set(1, 0), t.tint = re.buttonColor, e.addChild(t);
  3174.                             var i = new Sprite(embed("i/g/coin.svg"));
  3175.                             i.anchor.set(1, 1), i.x = -20, e.addChild(i);
  3176.                             var n = new Text2("", {
  3177.                                 weight: 300,
  3178.                                 fill: re.textColor,
  3179.                                 size: 80,
  3180.                                 maxWidth: 300
  3181.                             });
  3182.                             n.anchor.set(1, .5), n.x = -170, n.y = 77 - (a.devicePixelRatio > 1 ? 7 : 0), e.addChild(n), this.setValue = function(e) {
  3183.                                 Z.coins.set(e), n.setText(e.toString())
  3184.                             }, this.getParticleData = function() {
  3185.                                 var e = Math.min(a.devicePixelRatio, 2) / 2;
  3186.                                 return {
  3187.                                     x: this.x - 18 / stage.ratio * a.devicePixelRatio,
  3188.                                     y: this.y + 17 / stage.ratio * a.devicePixelRatio,
  3189.                                     scale: e
  3190.                                 }
  3191.                             }, this.setStyle = function() {
  3192.                                 t.tint = re.buttonColor, n.updateStyle({
  3193.                                     fill: re.textColor
  3194.                                 })
  3195.                             };
  3196.                             var r = this.forceSetRatio;
  3197.                             this.forceSetRatio = function(e) {
  3198.                                 r.call(this, .25 * a.devicePixelRatio), this.move()
  3199.                             }, this.move = function() {
  3200.                                 _e.y = 8 / stage.ratio * a.devicePixelRatio, _e.x = (width - 8) / stage.ratio * a.devicePixelRatio, i.y = 125 + (a.devicePixelRatio > 1 ? 0 : 10)
  3201.                             }
  3202.                         }),
  3203.                         _e = new Re;
  3204.                     stage.addChild(_e), _e.setValue(Z.coins.get()), _e.on("up", f);
  3205.                     for (var Ee = Container.expand(function() {
  3206.                             var e = this;
  3207.                             Container.call(e);
  3208.                             var i = new Sprite(embed("i/g/coin.svg"));
  3209.                             i.anchor.set(.5, .5);
  3210.                             var n = new Sprite(embed("i/g/glow.svg"));
  3211.                             n.anchor.set(.5, .5), e.addChild(i), e.on("down", function() {
  3212.                                 if (!this.clicked && !$e) {
  3213.                                     K.play(), d(10, t(10), 10, e.x, e.y, !0, 0, !0), e.clicked = !0, e.y += he.y + Ce.y, e.x += he.x + Ce.x, stage.addChild(e), Tween.clear(n), n.parent && n.parent.removeChild(n), Tween.clear(e);
  3214.                                     var i = _e.getParticleData();
  3215.                                     new Tween(e.scale, {
  3216.                                         x: i.scale,
  3217.                                         y: i.scale
  3218.                                     }, .5), new Tween(e, {
  3219.                                         x: i.x,
  3220.                                         y: i.y,
  3221.                                         alpha: .8
  3222.                                     }).call(function() {
  3223.                                         new Tween(e, {
  3224.                                             alpha: 0
  3225.                                         }, .5), new Tween(e.scale, {
  3226.                                             x: 2 * i.scale,
  3227.                                             y: 2 * i.scale
  3228.                                         }, .5).call(function() {
  3229.                                             e.parent && e.parent.removeChild(e)
  3230.                                         }), _e.setValue(Z.coins.get() + 1), c()
  3231.                                     })
  3232.                                 }
  3233.                             }), e.trigger = function() {
  3234.                                 e.addChildAt(n, 0), n.rotation = 0, new Tween(n, {
  3235.                                     rotation: 30
  3236.                                 }, 20)
  3237.                             }
  3238.                         }), Le = [], Ae = 0; Ae < 20; Ae++) Le[Ae] = new Ee;
  3239.                     window.particleButton = _e;
  3240.                     var Pe = Container.expand(function(e) {
  3241.                             function t(e) {
  3242.                                 r = new Sprite(embed(e)), r.anchor.set(.5, .5), i.addChild(r), r.visible = 1 == n.frame
  3243.                             }
  3244.                             var i = this;
  3245.                             Container.call(i);
  3246.                             var n = new Sheet(oe, 140, 155);
  3247.                             n.floorCoordinates = !1, i.addChild(n), n.anchor.set(.5, .5);
  3248.                             var r;
  3249.                             re.highlightTexture && t(re.highlightTexture), Object.defineProperty(i, "frame", {
  3250.                                 get: function() {
  3251.                                     return n.frame
  3252.                                 },
  3253.                                 set: function(e) {
  3254.                                     r && (r.visible = 1 == e), n.frame = e
  3255.                                 }
  3256.                             }), Object.defineProperty(i, "tint", {
  3257.                                 get: function() {
  3258.                                     return n.tint
  3259.                                 },
  3260.                                 set: function(e) {
  3261.                                     n.tint = e
  3262.                                 }
  3263.                             }), Object.defineProperty(i, "r", {
  3264.                                 get: function() {
  3265.                                     return (16711680 & n.tint) >> 16
  3266.                                 },
  3267.                                 set: function(e) {
  3268.                                     n.tint = 65535 & n.tint | e << 16
  3269.                                 }
  3270.                             }), Object.defineProperty(i, "g", {
  3271.                                 get: function() {
  3272.                                     return (65280 & n.tint) >> 8
  3273.                                 },
  3274.                                 set: function(e) {
  3275.                                     n.tint = 16711935 & n.tint | e << 8
  3276.                                 }
  3277.                             }), Object.defineProperty(i, "b", {
  3278.                                 get: function() {
  3279.                                     return 255 & n.tint
  3280.                                 },
  3281.                                 set: function(e) {
  3282.                                     n.tint = 16776960 & n.tint | e << 0
  3283.                                 }
  3284.                             }), i.updateTileAsset = function(e, o, a, s, h) {
  3285.                                 function l() {
  3286.                                     i.removeChild(n), 0 == i.type && 0 == s ? c.tint = re.tileBackgroundTint : c.tint = re.tileColors[i.type - 1 + s], h || c.scale.set(0, 1), i.addChild(c), n = c, r && r.parent && r.parent.removeChild(r), o ? (t(o), h || r.scale.set(0, 1)) : r = void 0
  3287.                                 }
  3288.                                 var c = new Sheet(embed(e), 140, 155);
  3289.                                 c.tint = n.tint, c.frame = n.frame, c.tint = n.tint, c.anchor.set(.5, .5), c.floorCoordinates = !1, h ? l() : (r && new Tween(r.scale, {
  3290.                                     x: 0
  3291.                                 }, .25, Tween.easein).wait(a), new Tween(n.scale, {
  3292.                                     x: 0
  3293.                                 }, .25, Tween.easein).wait(a).call(function() {
  3294.                                     l(), new Tween(c.scale, {
  3295.                                         x: 1
  3296.                                     }, .25, Tween.easeout), r && new Tween(r.scale, {
  3297.                                         x: 1
  3298.                                     }, .25, Tween.easeout)
  3299.                                 }))
  3300.                             }
  3301.                         }),
  3302.                         Be = 150,
  3303.                         Ie = Be / 2,
  3304.                         Fe = 133,
  3305.                         ke = [];
  3306.                     a.is.facebookInstant && Z.state.set(""), o(Z.highscore.get());
  3307.                     var Oe = Z.state.get().split(":"),
  3308.                         Ge = parseInt(Oe[0]) || 0;
  3309.                     ge = Ge, ve.score = Ge;
  3310.                     var De = (Oe[2] || "").split(","),
  3311.                         Ue = (Oe[1] || "").split(","),
  3312.                         He = 5;
  3313.                     0 != we || 0 != ge || Z.completedTutorial.get() || (He = 0, De = [4, 4, 0, 2, 2, 1, 1, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0], Ue = [2, 1, 4, 1, 3, 1]);
  3314.                     for (var ze = 9, We = 4, Ne = 0, Ae = 0; Ae < ze; Ae++) {
  3315.                         ke[Ae] = [];
  3316.                         for (var je = Math.abs(We - Ae), Ve = 0; Ve < ze - je; Ve++) {
  3317.                             var Ye = new Pe;
  3318.                             Ye.x = je * Ie + Ve * Be + Ie, Ye.y = Ae * Fe + 73.5, Ye.tint = re.tileBackgroundTint, ke[Ae][Ve] = Ye, Ye.gridX = Ve, Ye.gridY = Ae, Ye.used = !1, Ye.type = 0, Ce.addChild(Ye);
  3319.                             var Xe = parseInt(De[Ne++]) || 0;
  3320.                             0 !== Xe ? (Ye.type = Xe, Ye.used = !0, Ye.tint = re.tileColors[Xe - 1], Ye.frame = 1) : Ye.tint = re.tileBackgroundTint, Ye.alpha = x(Ye, Ae, Ve)
  3321.                         }
  3322.                     }
  3323.                     for (var Ke = ke.concat([]), Ae = 0; Ae < ze; Ae++) {
  3324.                         var qe = [],
  3325.                             Qe = ke[We][Ae];
  3326.                         for (qe.push(Qe); ke[Qe.gridY + 1] && ke[Qe.gridY + 1][Qe.gridX];) {
  3327.                             var Qe = ke[Qe.gridY + 1][Qe.gridX];
  3328.                             qe.push(Qe)
  3329.                         }
  3330.                         for (var Qe = ke[We][Ae]; ke[Qe.gridY - 1] && ke[Qe.gridY - 1][Qe.gridX - 1];) {
  3331.                             var Qe = ke[Qe.gridY - 1][Qe.gridX - 1];
  3332.                             qe.push(Qe)
  3333.                         }
  3334.                         Ke.push(qe)
  3335.                     }
  3336.                     for (var Ae = 0; Ae < ze; Ae++) {
  3337.                         var qe = [],
  3338.                             Qe = ke[We][Ae];
  3339.                         for (qe.push(Qe); ke[Qe.gridY + 1] && ke[Qe.gridY + 1][Qe.gridX - 1];) {
  3340.                             var Qe = ke[Qe.gridY + 1][Qe.gridX - 1];
  3341.                             qe.push(Qe)
  3342.                         }
  3343.                         for (var Qe = ke[We][Ae]; ke[Qe.gridY - 1] && ke[Qe.gridY - 1][Qe.gridX];) {
  3344.                             var Qe = ke[Qe.gridY - 1][Qe.gridX];
  3345.                             qe.push(Qe)
  3346.                         }
  3347.                         Ke.push(qe)
  3348.                     }
  3349.                     var Je = 0,
  3350.                         Ze = void 0;
  3351.                     stage.on("move", function(e) {
  3352.                         var t = e.event;
  3353.                         if (void 0 !== Ze) {
  3354.                             var i = t.getLocalPosition(stage);
  3355.                             Ze.container.x = i.x / Ze.container.ratio - le, Ze.container.y = i.y / Ze.container.ratio - ce;
  3356.                             for (var n = 0; n < ke.length; n++)
  3357.                                 for (var r = 0; r < ke[n].length; r++) {
  3358.                                     var o = ke[n][r];
  3359.                                     0 == o.used && (o.tint = re.tileBackgroundTint), o.alpha = x(o, n, r)
  3360.                                 }
  3361.                             T(Ze) && S(Ze)
  3362.                         }
  3363.                     });
  3364.                     var $e = !1;
  3365.                     stage.on("up", function(e) {
  3366.                         e.event;
  3367.                         if (Ze) {
  3368.                             var t = Ze;
  3369.                             if (T(t)) {
  3370.                                 z.play(0);
  3371.                                 var i = b(t);
  3372.                                 Ce.addChild(t.container), t.container.x -= Ce.x, t.container.y -= Ce.y, $e = !0, M(t, i), E(t);
  3373.                                 var n = Math.max(_(t, i), 1),
  3374.                                     r = n > 2;
  3375.                                 if (B()) {
  3376.                                     y(!0), Sidebar.hideIcon(), setTimeout(function() {
  3377.                                         q.setGain(0)
  3378.                                     }, .3 * n * 1e3), j.play(.3 * n);
  3379.                                     var s = .3 * n + .5 + .3 + (r ? .6 : 0);
  3380.                                     a.is.facebookInstant || (V.play(s + 2.7), Y.play(s + 2.7 + 1)), Q.play(s, !0), Q.setGain(0), setTimeout(function() {
  3381.                                         Q.setGain(1)
  3382.                                     }, 1e3 * s + 5e3), o(ge, !0)
  3383.                                 } else y();
  3384.                                 new Tween(t.container, {
  3385.                                     x: i.px - Be,
  3386.                                     y: i.py - Fe / 2
  3387.                                 }, .1), t.fadeDrop()
  3388.                             } else t.fadeReset(), W.play(0), Ze = void 0, O()
  3389.                         }
  3390.                         Ze = void 0
  3391.                     });
  3392.                     for (var et = [], Ae = 0; Ae < 3; Ae++) Ue[2 * Ae] ? et[Ae] = R(parseInt(Ue[2 * Ae]) - 1, parseInt(Ue[2 * Ae + 1]) - 1) : et[Ae] = R(), he.addChild(et[Ae].container);
  3393.                     if (Sidebar.addMenuHeader(l.shareTitle), !a.is.facebookInstant) var tt = Sidebar.addMenuItem(new Sprite(embed("i/g/icon_new.svg")), Host.Localize.Translate("New Game", {}, "New game sidebar text"), function() {
  3394.                         Sidebar.hide(), y(!0), k()
  3395.                     });
  3396.                     var tt = Sidebar.addMenuItem(new Sprite(embed("i/g/icon_shop.svg")), Host.Localize.Translate("Select theme", {}, "Sidebar text for theme shop"), function() {
  3397.                         Sidebar.hide(), f()
  3398.                     });
  3399.                     a.is.facebookInstant || a.is.wildTangent || Sidebar.addMenuItem(new Sprite(embed("i/g/icon_share.svg")), Host.Localize.Translate("Share Hex FRVR", {}, "Sidebar text for triggering sharing of Hex FRVR"), function() {
  3400.                         window.shareDialogueCallback()
  3401.                     }), Sidebar.addMenu, window.insertButton = function(e, t, i) {
  3402.                         if (!(e instanceof Sprite)) throw "Please update your code to use the new SVG icons: " + t;
  3403.                         return Sidebar.addMenuItemAfter(tt, e, t, i)
  3404.                     };
  3405.                     var it = void 0;
  3406.                     a.insertRemoveAdsButton = function(e, t, i) {
  3407.                         it = insertButton(e, t, i)
  3408.                     }, a.removeAdsButton = function() {
  3409.                         it && (Sidebar.removeMenuItem(it), Sidebar.reAlignItems(), it = void 0)
  3410.                     }, Sidebar.addMenuHeader(Host.Localize.Translate("Settings", {}, "Sidebar settings headline")), a.Sound.setMuted(Z.muteSounds.get()), Sidebar.addMenuToggle(new Sprite(embed("i/g/icon_sound.svg")), Host.Localize.Translate("Sound Effects", {}, "Sidebar sound effects toggle text"), !a.Sound.muted, function(e) {
  3411.                         a.Sound.setMuted(!e), Z.muteSounds.set(!e)
  3412.                     }), a.Music.setMuted(Z.muteMusic.get());
  3413.                     var nt = Sidebar.addMenuToggle(new Sprite(embed("i/g/icon_music.svg")), Host.Localize.Translate("Music", {}, "Sidebar music effects toggle text"), !a.Music.muted, function(e) {
  3414.                         a.Music.setMuted(!e), e ? q.play(0, !0) : (Q.stop(0), q.stop(0)), Z.muteMusic.set(!e)
  3415.                     }, 235);
  3416.                     if (a.is.iOS || a.is.safari) {
  3417.                         var rt = Sprite.fromSheet(new Sprite(embed("i/g/icon_download.svg")), 18);
  3418.                         rt.x = 320, rt.y = 15, rt.on("down", function(e) {
  3419.                             Sidebar.content.callback = void 0, Sidebar.content.clean(), a.navigate("https://itun.es/us/7Iy7-")
  3420.                         }), nt.addChild(rt)
  3421.                     }! function() {
  3422.                         var e = Z.selectedSkin.get();
  3423.                         if ("" != e) {
  3424.                             stage.visible = !1;
  3425.                             for (var t = 0; t < ne.length; t++) {
  3426.                                 var i = ne[t];
  3427.                                 if (i.id == e) return void A(i, !0)
  3428.                             }
  3429.                             A(ne[0], !0)
  3430.                         }
  3431.                     }(), a.is.facebookInstant || (Sidebar.addMenuHeader(Host.Localize.Translate("More", {}, "Sidebar headline text for more FRVR related content")), a.is.wildTangent || (Sidebar.addMenuItem(new Sprite(embed("i/g/icon_frvr.svg")), Host.Localize.Translate("FRVR Games", {}, "Sidebar text for FRVR Games link"), function() {
  3432.                         a.is.iOS ? a.navigate("https://itunes.apple.com/developer/frvr/id911820974") : a.navigate("https://frvr.com")
  3433.                     }), Sidebar.addMenuItem(new Sprite(embed("i/g/icon_feedback.svg")), Host.Localize.Translate("Send Feedback", {}, "Sidebar text for sending games feedback"), function() {
  3434.                         a.navigate(l.feedbackURL)
  3435.                     })), Sidebar.addMenuItem(new Sprite(embed("i/g/icon_legal.svg")), Host.Localize.Translate("Legal", {}, "Sidebar link for more legal information"), function() {
  3436.                         a.navigate("https://frvr.com/legal/")
  3437.                     }), Sidebar.addMenuItem(new Sprite(embed("i/g/icon_credits.svg")), Host.Localize.Translate("Credits", {}, "Sidebar link for game credits link"), function() {
  3438.                         a.navigate(l.creditsUrl)
  3439.                     }), a.is.wildTangent || Sidebar.addSocialBar()), stage.addChild(ve), stage.addChild(ue), he.addChild(Ce), stage.addChild(he);
  3440.                     var ot = 0,
  3441.                         at = 0,
  3442.                         st = null;
  3443.                     if (a.is.facebookInstant && window.FBInstant) {
  3444.                         var ht = new Image;
  3445.                         ht.onload = function() {
  3446.                             st = ht
  3447.                         }, ht.src = "./i/g/instantoverlay.png"
  3448.                     }
  3449.                     var lt = !1;
  3450.                     window.showGameOver = function() {
  3451.                         if (a.is.facebookInstant && window.FBInstant) {
  3452.                             if (lt) return;
  3453.                             lt = !0;
  3454.                             var e = width / height,
  3455.                                 i = 1480,
  3456.                                 n = e > 0 ? i : i / e,
  3457.                                 r = e > 0 ? i / e : i,
  3458.                                 o = document.createElement("canvas");
  3459.                             o.style.width = (o.width = n) + "px", o.style.height = (o.height = r) + "px";
  3460.                             var s = o.getContext("2d");
  3461.                             stage.background.drawBackground(s, o.width, o.height, stage.background.gradient, stage.background.texture, stage.background.callback);
  3462.                             var h = Ce.ratio;
  3463.                             Ce.ratio = 1;
  3464.                             var l = -Ce.y - 20 + (r - i) / 2;
  3465.                             s.save(), s.translate(-Ce.x - 70 + (n - i) / 2, l), Ce.cacheRender(s), Ce.ratio = h, s.restore();
  3466.                             var c = t(ge),
  3467.                                 d = 500 - 50 * Math.max(c.length - 5, 0);
  3468.                             s.globalAlpha = 1, s.textAlign = "center", s.textBaseline = "middle", s.font = "500 " + d + 'px "Helvetica Neue","Trebuchet MS", Helvetica, sans-serif';
  3469.                             for (var u = 0; u < 5; u++) s.lineWidth = 50 - 3 * u, s.strokeStyle = "rgba(0,0,0,.3)", s.strokeText(c, o.width / 2, l + 1e3);
  3470.                             if (s.fillStyle = "#FFFFFF", s.fillText(c, o.width / 2, l + 1e3), st) {
  3471.                                 var e = Math.min(1, (r / 2 - 600) / st.height);
  3472.                                 e > .5 && s.drawImage(st, 75 + st.width * (1 - e) / 2, 0, st.width * e, st.height * e)
  3473.                             }
  3474.                             if (r > 1550) {
  3475.                                 var h = ue.ratio;
  3476.                                 ue.ratio = 2, s.save(), s.translate(-ue.x + n / 2 - ue.width / 2, -ue.y + r - ue.height - 20), ue.cacheRender(s), ue.ratio = h, s.restore()
  3477.                             }
  3478.                             var f = document.createElement("canvas");
  3479.                             f.style.width = (f.width = width) + "px", f.style.height = (f.height = height) + "px";
  3480.                             f.getContext("2d").drawImage(o, 0, 0, width, height), FBInstant.setScore(ge), FBInstant.sendScreenshot(f.toDataURL());
  3481.                             FBInstant.endGameAsync().then(function() {
  3482.                                 lt = !1, q.stop(0), q.play(0, !0), Modal.hide(function() {
  3483.                                     k()
  3484.                                 })
  3485.                             }, function(e) {})
  3486.                         } else Modal.show(new ie, !(!a.is.facebookInstant || !window.FBInstant)), a.showGameOverAd(600), a.emit("wiggle", {
  3487.                             delay: 1e3
  3488.                         })
  3489.                     }, a.showRateGame = function() {
  3490.                         Modal.show(new Modal.RateGameModal(embed("i/g/star.svg"), 9014527))
  3491.                     };
  3492.                     var ct = Modal.ModalOverlayContent.expand(function(e, t) {
  3493.                         function i(e) {
  3494.                             o.visible = !0;
  3495.                             var t = 0;
  3496.                             o.y = 430 + t, a.visible = !0, r.innerHeight = 760 + t, Modal.setHeight(r.innerHeight), Modal.handleResize(), a.y = 560 + t, r.addChildAt(a, 0)
  3497.                         }
  3498.  
  3499.                         function n(t) {
  3500.                             var n = new Sheet(e, 136, 130);
  3501.                             return n.y = 270, n.x = 150 * h + 30, n.on("down", function() {
  3502.                                 for (var e = 0; e < 5; e++) s[e].frame = e <= t ? 1 : 0;
  3503.                                 i(t)
  3504.                             }), n.buttonMode = !0, n
  3505.                         }
  3506.                         Modal.ModalOverlayContent.call(this), this.addHeadline(Host.Localize.Translate("Having Fun?")), this.addLead(Host.Localize.Translate("Help us improve the game!\nHow would you rate {game_name}?", {
  3507.                             game_name: l.shareTitle
  3508.                         }), 10);
  3509.                         var r = this,
  3510.                             o = r.addMiddleButton(Host.Localize.Translate("Share {game_name}", {
  3511.                                 game_name: l.shareTitle
  3512.                             }), Host.Localize.Translate("Invite your friends?"), function() {
  3513.                                 window.shareDialogueCallback(), Modal.hide()
  3514.                             }, 6208638);
  3515.                         o.y = 580, o.visible = !1;
  3516.                         var a = r.addButton(Host.Localize.Translate("No thanks"), function() {
  3517.                             Modal.hide()
  3518.                         }, t);
  3519.                         a.visible = !1;
  3520.                         for (var s = [], h = 0; h < 5; h++) s.push(this.addChild(n(h)));
  3521.                         this.innerHeight = 450, this.blurClose = !1
  3522.                     });
  3523.                     if (a.showRateTwitter = function() {
  3524.                             Modal.show(new ct(embed("i/g/star.svg"), 9014527))
  3525.                         }, window.reset = k, a.on("resize", P), 0 == He) {
  3526.                         G.prototype = Object.create(Container.prototype), G.prototype.constructor = G, Sidebar.hideIcon();
  3527.                         var dt = new Sprite(embed("i/g/finger.svg"));
  3528.                         he.addChild(dt);
  3529.                         var ut, ft = -1;
  3530.                         a.on("resize", U), D()
  3531.                     }
  3532.                     window.Social && window.Social(), ga("send", "event", "Hex", "Loaded", "Load Time", 1 * new Date - initTime), F()
  3533.                 }
  3534.                 Host = function() {
  3535.                         function e(e, t, i) {
  3536.                             var n = this;
  3537.                             n.translated = t, n.replacements = i, n.original = e, n.toString = function() {
  3538.                                 return n.translated
  3539.                             }
  3540.                         }
  3541.                         var t = {},
  3542.                             n = window.Host || {};
  3543.                         n.call = function(e, i, r) {
  3544.                             null != r && (callbackId = "cb" + Math.round(99999 * Math.random()) + (new Date).getTime(), t[callbackId] = r, i._callback = callbackId), i._method = e, n.sendToHost("json1:" + JSON.stringify(i))
  3545.                         }, n.callResult = function(e) {
  3546.                             var i = e.indexOf(":");
  3547.                             if (i > 0) {
  3548.                                 var n = e.substring(0, i),
  3549.                                     r = e.substring(i + 1);
  3550.                                 switch (n) {
  3551.                                     case "json1":
  3552.                                         var o = JSON.parse(r),
  3553.                                             a = t[o._callback];
  3554.                                         a && (delete o._callback, a(o))
  3555.                                 }
  3556.                             }
  3557.                         }, n.Application = {}, n.Application.SetStatusbarColor = function(e) {}, n.Preferences = {}, n.Preferences.cache = {}, n.Preferences.QuickBool = function(e) {
  3558.                             return {
  3559.                                 get: function() {
  3560.                                     return n.Preferences.cache[e] || !1
  3561.                                 },
  3562.                                 set: function(t) {
  3563.                                     n.Preferences.SetBool(e, t)
  3564.                                 },
  3565.                                 remove: function() {
  3566.                                     n.Preferences.Remove(e)
  3567.                                 }
  3568.                             }
  3569.                         }, n.Preferences.QuickInt = function(e) {
  3570.                             return {
  3571.                                 get: function() {
  3572.                                     return parseInt(n.Preferences.cache[e]) || 0
  3573.                                 },
  3574.                                 set: function(t) {
  3575.                                     n.Preferences.SetInt(e, t)
  3576.                                 },
  3577.                                 remove: function() {
  3578.                                     n.Preferences.Remove(e)
  3579.                                 }
  3580.                             }
  3581.                         }, n.Preferences.QuickFloat = function(e) {
  3582.                             return {
  3583.                                 get: function() {
  3584.                                     return parseFloat(n.Preferences.cache[e]) || 0
  3585.                                 },
  3586.                                 set: function(t) {
  3587.                                     n.Preferences.SetFloat(e, t)
  3588.                                 },
  3589.                                 remove: function() {
  3590.                                     n.Preferences.Remove(e)
  3591.                                 }
  3592.                             }
  3593.                         }, n.Preferences.QuickString = function(e) {
  3594.                             return {
  3595.                                 get: function() {
  3596.                                     return n.Preferences.cache[e] || ""
  3597.                                 },
  3598.                                 set: function(t) {
  3599.                                     n.Preferences.SetString(e, t)
  3600.                                 },
  3601.                                 remove: function() {
  3602.                                     n.Preferences.Remove(e)
  3603.                                 }
  3604.                             }
  3605.                         }, n.Tools = {}, n.Tools.LoadJSON = function(e, t, i) {
  3606.                             var n = new XMLHttpRequest;
  3607.                             n.crossOrigin = "anonymous", n.overrideMimeType && n.overrideMimeType("application/json");
  3608.                             try {
  3609.                                 n.open("GET", e, !0), n.onreadystatechange = function() {
  3610.                                     4 == n.readyState && ("200" == n.status ? t(JSON.parse(n.responseText)) : (n = n.onreadystatechange = null, i && i()))
  3611.                                 }, n.send(null)
  3612.                             } catch (e) {}
  3613.                         }, n.Web = {}, n.Web.GetQueryString = function(e) {
  3614.                             var t = window.location.href;
  3615.                             e = e.replace(/[\[\]]/g, "\\$&");
  3616.                             var i = new RegExp("[?&]" + e + "(=([^&#]*)|&|#|$)", "i"),
  3617.                                 n = i.exec(t);
  3618.                             return n ? n[2] ? decodeURIComponent(n[2].replace(/\+/g, " ")) : "" : null
  3619.                         }, n.Localize = n.Localize || {}, n.Localize.Translations = {
  3620.                             en: {}
  3621.                         };
  3622.                         var r = {},
  3623.                             o = !1;
  3624.                         return n.Localize.UpdateChildren = function(e) {
  3625.                             if (o)
  3626.                                 for (var t in e.children) {
  3627.                                     var i = e.children[t];
  3628.                                     i instanceof Text2 ? i.onLanguageChange() : i instanceof Container && n.Localize.UpdateChildren(i)
  3629.                                 }
  3630.                         }, n.Localize.Load = function(e, t) {
  3631.                             return o = !0, n.Localize.Translations[e] ? (r = n.Localize.Translations[e], Text2.onLanguageChange(), a.emit("pre-screenshot"), t && t(e, !0), !0) : (n.Tools.LoadJSON("./languages/" + e + ".json", function(i) {
  3632.                                 r = n.Localize.Translations[e] = i;
  3633.                                 for (key in i) {
  3634.                                     var o = i[key],
  3635.                                         s = key.replace(/\\n/g, "\n");
  3636.                                     s != key && (delete i[key], o.translation = o.translation.replace("\\n", "\n"), i[s] = o)
  3637.                                 }
  3638.                                 Text2.onLanguageChange(), a.emit("pre-screenshot"), t && t(e, !0)
  3639.                             }, function() {
  3640.                                 console.log("failed to load language")
  3641.                             }), !1)
  3642.                         }, n.Localize.languages = n.Localize.languages || [], n.Localize.Test = function() {
  3643.                             var e = 0,
  3644.                                 t = window.onkeydown;
  3645.                             window.onkeydown = function(i) {
  3646.                                 var r = i.keyCode;
  3647.                                 37 == r && (e -= 1), 39 == r && (e += 1), e += n.Localize.languages.length, e %= n.Localize.languages.length, n.Localize.Load(n.Localize.languages[e]), t && t(i)
  3648.                             }
  3649.                         }, n.Localize.Translate = function(t, i) {
  3650.                             var n = t;
  3651.                             if (t instanceof e) {
  3652.                                 n = t.original;
  3653.                                 var o = {};
  3654.                                 for (var a in t.replacements) o[a] = t.replacements[a];
  3655.                                 for (var a in i) o[a] = i[a];
  3656.                                 i = o
  3657.                             }
  3658.                             t = r[n] ? r[n].translation : n;
  3659.                             for (var a in i) t = t.replace("{" + a + "}", i[a]);
  3660.                             return new e(n, t, i)
  3661.                         }, n.Localize.GetLanguage = function() {
  3662.                             var e = window.navigator;
  3663.                             if (Array.isArray(e.languages))
  3664.                                 for (i = 0; i < e.languages.length; i++)
  3665.                                     if (language = e.languages[i], language && language.length) return language;
  3666.                             var t = ["language", "browserLanguage", "systemLanguage", "userLanguage"];
  3667.                             for (i = 0; i < t.length; i++)
  3668.                                 if (language = e[t[i]], language && language.length) return language;
  3669.                             return "en"
  3670.                         }, n.Type = "undefined", n
  3671.                     }(),
  3672.                     function(e) {
  3673.                         e.Host = e.Host || {}, Host.Type = "instant", Host.Log = function(e) {
  3674.                             console.log(e)
  3675.                         }, Host.sendToHost = function() {};
  3676.                         var t = function() {
  3677.                             var e = {};
  3678.                             return function() {
  3679.                                 try {
  3680.                                     return "localStorage" in window && null !== window.localStorage
  3681.                                 } catch (e) {
  3682.                                     return !1
  3683.                                 }
  3684.                             }() ? {
  3685.                                 set: function(t, i) {
  3686.                                     e[t] = i;
  3687.                                     try {
  3688.                                         localStorage.setItem(t, i)
  3689.                                     } catch (e) {}
  3690.                                 },
  3691.                                 get: function(t) {
  3692.                                     return e[t] || localStorage.getItem(t)
  3693.                                 },
  3694.                                 remove: function(t) {
  3695.                                     delete e[t], localStorage.removeItem(t)
  3696.                                 }
  3697.                             } : {
  3698.                                 set: function(t, i) {
  3699.                                     e[t] = i
  3700.                                 },
  3701.                                 get: function(t) {
  3702.                                     return e[t]
  3703.                                 },
  3704.                                 remove: function() {
  3705.                                     delete e[name]
  3706.                                 }
  3707.                             }
  3708.                         }();
  3709.                         Host.Preferences = Host.Preferences || {}, Host.Preferences.SetBool = function(e, i) {
  3710.                             Host.Preferences.cache[e] = i ? "true" : "false", t.set(e, i ? "true" : "false")
  3711.                         }, Host.Preferences.SetInt = function(e, i) {
  3712.                             Host.Preferences.cache[e] = i, t.set(e, i)
  3713.                         }, Host.Preferences.SetFloat = function(e, i) {
  3714.                             Host.Preferences.cache[e] = i, t.set(e, i)
  3715.                         }, Host.Preferences.SetString = function(e, i) {
  3716.                             Host.Preferences.cache[e] = i, t.set(e, i)
  3717.                         }, Host.Preferences.Remove = function(e) {
  3718.                             delete Host.Preferences.cache[e], t.remove(e)
  3719.                         }, Host.Preferences.GetBool = function(e, i) {
  3720.                             i(Host.Preferences.cache[e] = "true" == t.get(e))
  3721.                         }, Host.Preferences.GetInt = function(e, i) {
  3722.                             i(Host.Preferences.cache[e] = parseInt(t.get(e)))
  3723.                         }, Host.Preferences.GetFloat = function(e, i) {
  3724.                             i(Host.Preferences.cache[e] = parseFloat(t.get(e)))
  3725.                         }, Host.Preferences.GetString = function(e, i) {
  3726.                             i(Host.Preferences.cache[e] = t.get(e))
  3727.                         }, Host.Localize.Translate = Host.Localize.Translate || {}, Host.Localize.Translate.GetString = function(e) {
  3728.                             return Lang[e] || "!!No translation found!!"
  3729.                         }, Host.Localize.LoadInstantLanguage = function() {
  3730.                             var e = Host.Localize.facebook_language_map || [],
  3731.                                 t = e[FBInstant.locale];
  3732.                             t && "en-US" != t && (console.log("Found language!", t), Host.Localize.Load(t))
  3733.                         }
  3734.                     }(this), window.vpath = window.vpath || "./", document.body.addEventListener("MSHoldVisual", function(e) {
  3735.                         e.preventDefault()
  3736.                     }, !1), document.body.addEventListener("contextmenu", function(e) {
  3737.                         e.preventDefault()
  3738.                     }, !1),
  3739.                     function(e) {
  3740.                         var t = escape;
  3741.                         e.escape = function(e) {
  3742.                             return console.warn("escape is deprecated, please update to encodeURI"), t(e)
  3743.                         }, window.encodeURI = window.encodeURI || t
  3744.                     }(window);
  3745.                 var o = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function(e) {
  3746.                     return setTimeout(e, 10)
  3747.                 };
  3748.                 window.ga || (window.ga = function() {}), Math.seed = function(e) {
  3749.                     var t = e,
  3750.                         i = 426381559378,
  3751.                         n = 4294967295;
  3752.                     return function() {
  3753.                         i = 18e3 * (65535 & i) + (i >> 16) & n, t = 36969 * (65535 & t) + (t >> 16) & n;
  3754.                         var e = (i << 16) + t & n;
  3755.                         return e /= 4294967296, e + .5
  3756.                     }
  3757.                 }, Object.defineProperty(Object.prototype, "on", {
  3758.                     enumerable: !1,
  3759.                     get: function() {
  3760.                         return this._on || t
  3761.                     },
  3762.                     set: function(e) {
  3763.                         this._on = e
  3764.                     }
  3765.                 }), Object.defineProperty(Object.prototype, "emit", {
  3766.                     enumerable: !1,
  3767.                     value: function(e, t) {
  3768.                         for (var i = (this.__listeners || {})[e] || [], n = 0; n < i.length; n++) i[n].call(this, t);
  3769.                         return this
  3770.                     }
  3771.                 }), Object.defineProperty(Object.prototype, "off", {
  3772.                     enumerable: !1,
  3773.                     value: function(e, t) {
  3774.                         for (var i = (this.__listeners || {})[e] || [], n = 0; n < i.length; n++) i[n] !== t && void 0 !== t || i.splice(n--, 1);
  3775.                         return i.length || delete(this.__listeners || {})[e], this.emit("eventRemoved", {
  3776.                             eventName: e
  3777.                         }), this
  3778.                     }
  3779.                 }), Object.defineProperty(Object.prototype, "once", {
  3780.                     enumerable: !1,
  3781.                     value: function(e, t) {
  3782.                         function i(n) {
  3783.                             t.call(this, n), this.off(e, i)
  3784.                         }
  3785.                         return this.on(e, i), this
  3786.                     }
  3787.                 }), Object.defineProperty(Function.prototype, "expand", {
  3788.                     enumerable: !1,
  3789.                     value: function(e) {
  3790.                         return e.prototype = Object.create(this.prototype), e.prototype.constructor = e, e
  3791.                     }
  3792.                 });
  3793.                 var a = {};
  3794.                 ! function(t) {
  3795.                     function i(e, t, i) {
  3796.                         window.dirty = !0, e.emit("down", {
  3797.                             event: t,
  3798.                             isMouseEvent: i
  3799.                         })
  3800.                     }
  3801.  
  3802.                     function n(e) {
  3803.                         P = !0, this.mousedown = void 0, i(this, e, !1)
  3804.                     }
  3805.  
  3806.                     function r(e) {
  3807.                         P || i(this, e, !0)
  3808.                     }
  3809.  
  3810.                     function s(e) {
  3811.                         e.interactive = !0, e.__touchStartEnabled || (e.__touchStartEnabled = !0, e.touchstart = n, e.mousedown = r)
  3812.                     }
  3813.  
  3814.                     function h(e, t, i) {
  3815.                         window.dirty = !1, e.emit("up", {
  3816.                             event: t,
  3817.                             isMouseEvent: i
  3818.                         }), a.backgroundMusic && a.backgroundMusic.play(0, !0)
  3819.                     }
  3820.  
  3821.                     function c(e) {
  3822.                         P = !0, this.mouseup = void 0, h(this, e, !1)
  3823.                     }
  3824.  
  3825.                     function d(e) {
  3826.                         P || h(this, e, !0)
  3827.                     }
  3828.  
  3829.                     function u(e) {
  3830.                         e.interactive = !0, e.__touchEndEnabled || (e.__touchEndEnabled = !0, e.mousedown = e.mousedown || function() {}, e.touchstart = e.touchstart || function() {}, e.touchendoutside = e.touchend = c, e.mouseupoutside = e.mouseup = d)
  3831.                     }
  3832.  
  3833.                     function f(e, t, i) {
  3834.                         e.emit("move", {
  3835.                             event: t,
  3836.                             isMouseEvent: i
  3837.                         })
  3838.                     }
  3839.  
  3840.                     function p(e) {
  3841.                         P = !0, this.mouseup = void 0, f(this, e, !1)
  3842.                     }
  3843.  
  3844.                     function g(e) {
  3845.                         P || f(this, e, !0)
  3846.                     }
  3847.  
  3848.                     function v(e) {
  3849.                         e.interactive = !0, e.__touchMoveEneabled || (e.__touchMoveEneabled = !0, e.touchmove = p, e.mousemove = g)
  3850.                     }
  3851.  
  3852.                     function m(e) {
  3853.                         e.on("eventAttached", function(t) {
  3854.                             switch (t.eventName) {
  3855.                                 case "down":
  3856.                                     s(e);
  3857.                                     break;
  3858.                                 case "up":
  3859.                                     u(e);
  3860.                                     break;
  3861.                                 case "move":
  3862.                                     v(e)
  3863.                             }
  3864.                         })
  3865.                     }
  3866.  
  3867.                     function x(e, t) {
  3868.                         for (; t < .5;) e = x(e, .5), t /= .5;
  3869.                         I *= t, I += 2, scaleCanvas = B[F++ % 2];
  3870.                         var i = Math.ceil(e.width * t),
  3871.                             n = Math.ceil(e.height * t);
  3872.                         return scaleCanvas.width = i + 4, scaleCanvas.height = n + 4, scaleCanvas.ctx.clearRect(0, 0, scaleCanvas.width, scaleCanvas.height), scaleCanvas.ctx.drawImage(e, 0, 0, e.width, e.height, 2, 2, i, n), scaleCanvas
  3873.                     }
  3874.  
  3875.                     function w(e, t, i) {
  3876.                         if (I = 2, 1 === t) return e;
  3877.                         var n = Math.round(e.width * t) + 4,
  3878.                             r = Math.round(e.height * t) + 4,
  3879.                             o = x(e, t);
  3880.                         return I = Math.round(I) - 2, i || (i = document.createElement("canvas")), i.width = n, i.height = r, i.getContext("2d").clearRect(0, 0, n, r), i.getContext("2d").drawImage(o, 0, 0, o.width, o.height, -I, -I, o.width, o.height), i
  3881.                     }
  3882.  
  3883.                     function y(e) {
  3884.                         e.prototype._x = 0, e.prototype._y = 0, Object.defineProperty(e.prototype, "x", {
  3885.                             get: function() {
  3886.                                 return this._x
  3887.                             },
  3888.                             set: function(e) {
  3889.                                 this._x = e, this.position.x = e * (this.parent ? this.parent.ratio || 1 : 1)
  3890.                             }
  3891.                         }), Object.defineProperty(e.prototype, "y", {
  3892.                             get: function() {
  3893.                                 return this._y
  3894.                             },
  3895.                             set: function(e) {
  3896.                                 this._y = e, this.position.y = e * (this.parent ? this.parent.ratio || 1 : 1)
  3897.                             }
  3898.                         }), e.prototype._ratio = void 0, e.prototype.lockRatio = !1, e.prototype.forceSetRatio = function(e) {
  3899.                             if (this._ratio !== e)
  3900.                                 if (!isNaN(e) && (e > 0 || e == -1)) {
  3901.                                     this._ratio = e, this.x = this.x, this.y = this.y;
  3902.                                     for (var t = 0; t < this.children.length; t++) this.children[t].ratio = e;
  3903.                                     this.setRatio && this.setRatio(e)
  3904.                                 } else console.warn("Invalid value passed to Container forceSetRatio " + e)
  3905.                         }, e.prototype.inside = function(e, t, i) {
  3906.                             return !1
  3907.                         }, e.prototype._addChildAt = e.prototype.addChildAt, e.prototype.addChildAt = function(e, t) {
  3908.                             var i = this._addChildAt(e, t);
  3909.                             return void 0 != this.ratio && (e.ratio = this.ratio), i
  3910.                         }, e.prototype._removeChildAt = e.prototype.removeChildAt, e.prototype.removeChildAt = function(e) {
  3911.                             var t = this._removeChildAt(e);
  3912.                             return t && this.ratio && (t.ratio = -1), t
  3913.                         }, Object.defineProperty(e.prototype, "ratio", {
  3914.                             get: function() {
  3915.                                 return this._ratio
  3916.                             },
  3917.                             set: function(e) {
  3918.                                 this._ratio === e || this.lockRatio || this.forceSetRatio(e)
  3919.                             }
  3920.                         })
  3921.                     }
  3922.  
  3923.                     function b(e) {
  3924.                         return "//" != e.substring(0, 2) && "http" != e.substring(0, 4) && (e = vpath + e), e
  3925.                     }
  3926.  
  3927.                     function T() {
  3928.                         var e = (new Date).getTime();
  3929.                         if (Z) {
  3930.                             var t = e - Q;
  3931.                             J[t] = (J[t] || 0) + 1, Q = e
  3932.                         }
  3933.                         for (e - q > 5e3 && (q = e); q < e; q += K) Y.tick();
  3934.                         (window.dirty || window.dirtyOnce || 0 !== Y.tweens.length) && (window.dirtyOnce = !1, a.renderer.render(a.stageContainer)), o(T)
  3935.                     }
  3936.  
  3937.                     function C(e, t, i) {
  3938.                         return void 0 === e ? e : e.toString() === e && "%" == e[e.length - 1] ? t * (parseInt(e.substring(0, e.length - 1)) / 100) : e * i
  3939.                     }
  3940.  
  3941.                     function S(e) {
  3942.                         stage.background.disabled ? stage.removeChild(te) : (e || ie != width || ne != height) && a.initComplete && (ie = width, ne = height, $.width = width * a.devicePixelRatio + 5, $.height = height * a.devicePixelRatio + 5, stage.background.drawBackground(ee, $.width, $.height, stage.background.gradient, stage.background.texture, stage.background.callback), te.texture.destroy(!0), te.setTexture(new Texture.fromCanvas($)), te.y = -a.styles.margins.top * a.devicePixelRatio, window.dirtyOnce = !0)
  3943.                     }
  3944.  
  3945.                     function M() {
  3946.                         var e = document.documentElement.clientHeight;
  3947.                         return a.is.iOS && !a.is.facebookInstant && (e = window.innerHeight || e), Math.max(e, 100)
  3948.                     }
  3949.  
  3950.                     function R(e) {
  3951.                         function i() {
  3952.                             window.scrollTo(0, 0), a.renderer.resize(h, l), a.renderer.view.style.width = (h / s >> 0) + "px", a.renderer.view.style.height = (l / s >> 0) + "px", window.dirtyOnce = !0, window.scrollTo(0, 0)
  3953.                         }
  3954.                         clearTimeout(oe);
  3955.                         var n = e.instant,
  3956.                             r = e.forced_width,
  3957.                             o = e.forced_height,
  3958.                             s = a.devicePixelRatio;
  3959.                         t.width = Math.max(document.documentElement.clientWidth, 100), t.height = M(), void 0 !== r && (t.width = r), void 0 !== o && (t.height = o), window.scrollTo(0, 1);
  3960.                         var h = 2 * Math.ceil(t.width / 2) * s >> 0,
  3961.                             l = 2 * Math.ceil(t.height / 2) * s >> 0;
  3962.                         a.is.iOS && !n && (a.renderer.view.style.height = (l / s >> 0) + 1 + "px"), n ? i() : oe = setTimeout(i, a.is.iOS ? 250 : 25);
  3963.                         var c = Math.max(t.height - a.styles.margins.top - a.styles.margins.bottom, 10),
  3964.                             d = targetWidth,
  3965.                             u = targetHeight,
  3966.                             f = stage.orientation;
  3967.                         "dynamic" == stage.orientationMode && (f = t.width <= c ? "portrait" : "landscape"), "portrait" == f && (u = targetWidth, d = targetHeight);
  3968.                         var p = window.forceRatio ? 1 : Math.min(Math.min(t.width * s / d, c * s / u), 1);
  3969.                         e.forced && (stage.ratio = -1), stage.ratio == p && stage.orientation == f || (stage.ratio = p), t.gameHeight = c, a.resizeAd(), stage.y = a.styles.margins.top * s, stage.orientation = f, document.title = document.title
  3970.                     }
  3971.                     var _ = e();
  3972.                     e = void 0, t.width = 150, t.height = 150, a.modulesToPreload = [], a.ignoreCursorChanges = !1, a.is = new function(e, t, i, n) {
  3973.                         var r = this;
  3974.                         r.android = /(android)/i.test(i) && !/(Windows)/i.test(i), r.iOS = /(ipod|iphone|ipad)/i.test(i), r.firefoxMobile = /(Mobile)/i.test(i) && /(Firefox)/i.test(i), r.windowsMobile = /(IEMobile)/i.test(i), r.silk = /(silk)/i.test(i), r.clay = /(clay\.io)/i.test(n), r.facebookApp = /(fb_canvas)/i.test(n), r.facebookAppWeb = /(fb_canvas_web)/i.test(n), r.iframed = e.top !== e.self, r.standalone = "standalone" in t && t.standalone, r.mobileiOSDevice = i.match(/iPhone/i) || i.match(/iPod/i), r.kongregate = /(kongregateiframe)/i.test(n), r.kik = /(kik_canvas)/i.test(n), r.twitter = /(twitter)/gi.test(i), r.chrome = /Chrome\//.test(i), r.wildTangent = !1, r.safari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/), r.secureConnection = 0 == window.location.protocol.indexOf("https"), r.facebookInstant = window.Host && "instant" == window.Host.Type, r.mobile = r.android || r.windowsMobile || r.iOS || r.silk || r.firefoxMobile, r.iOSWrapper = e.iOSWrapper || !1, r.androidWrapper = e.androidWrapper || !1, r.chromeWrapper = e.isChromeWrapper || !1, r.appWrapper = e.iOSWrapper || e.androidWrapper
  3975.                     }(window, navigator, navigator.userAgent, document.location), window.insertButton = function(e, t, i) {
  3976.                         console.warn("window.insertButton needs to be overwritten before releasing this game.")
  3977.                     }, a.canvas = document.getElementById("gameCanvas"), a.stageContainer = new _.Stage(2105376), m(a.stageContainer), a.stageContainer.on("up", function(e) {
  3978.                         a.stageContainer.emit("stageup", e)
  3979.                     }), window.inScreenshotMode ? a.renderer = new _.CanvasRenderer(width, height, {
  3980.                         view: a.canvas,
  3981.                         antialiasing: !1,
  3982.                         transparent: !1,
  3983.                         clearBeforeRender: !0
  3984.                     }) : a.renderer = _.autoDetectRenderer(width, height, {
  3985.                         view: a.canvas,
  3986.                         antialiasing: !1,
  3987.                         transparent: !1,
  3988.                         clearBeforeRender: !0
  3989.                     }), a.httpPrefix = 0 == window.location.protocol.indexOf("http") ? "//" : "https://", a.devicePixelRatio = Math.min(window.devicePixelRatio || 1, a.is.iOS ? 3 : 2), a.styles = {
  3990.                         margins: {
  3991.                             top: (a.is.iOSWrapper || a.is.standalone) && a.is.iOS ? 20 : 0,
  3992.                             bottom: 0
  3993.                         }
  3994.                     }, a.onParseLoginSuccess = function(e) {}, a.showGameOverAd = function() {}, a.hideGameOverAd = function() {}, a.showInterstitialAd = function() {}, a.resizeAd = function() {}, a.showRateGame = function() {}, a.submitHighscore = function(e) {}, a.submitLowscore = function(e) {}, a.configLoadCallback = function() {}, a.insertRemoveAdsButton = function() {}, a.removeAdsButton = function() {}, window.onresize = function(e) {
  3995.                         a.emit("resize", {
  3996.                             event: e
  3997.                         })
  3998.                     }, window.onfocus = function(e) {
  3999.                         a.emit("focus", {
  4000.                             event: e
  4001.                         })
  4002.                     }, window.onblur = function(e) {
  4003.                         a.emit("blur", {
  4004.                             event: e
  4005.                         })
  4006.                     }, document.addEventListener("visibilitychange", function(e) {
  4007.                         "hidden" == document.visibilityState && a.emit("blur", {
  4008.                             event: e
  4009.                         }), "visible" == document.visibilityState && a.emit("focus", {
  4010.                             event: e
  4011.                         })
  4012.                     });
  4013.                     var E = function() {
  4014.                         return window.Host && window.Host.Sound ? (Host.Log("Using SoundPlayer!"), function(e) {
  4015.                             function t(e, t) {
  4016.                                 return n[e] = new i(e, t)
  4017.                             }
  4018.  
  4019.                             function i(t, i) {
  4020.                                 var n = this;
  4021.                                 n.playing = !1;
  4022.                                 var o = i;
  4023.                                 this.resetGain = function() {
  4024.                                     this.setGain(i)
  4025.                                 }, this.setGain = function(e) {
  4026.                                     o = e, Host.Sound.SetVolume(t, e)
  4027.                                 }, this.play = function(i, a) {
  4028.                                     function s() {
  4029.                                         Host.Sound.Play(t, t, a, o, e)
  4030.                                     }
  4031.                                     r.muted || e && n.playing || (n.playing = !0, i ? setTimeout(s, 1e3 * i) : s())
  4032.                                 }, this.stop = function(e) {
  4033.                                     e = e || 0, n.playing = !1, Host.Sound.Stop(t)
  4034.                                 }
  4035.                             }
  4036.                             e = !!e;
  4037.                             var n = [],
  4038.                                 r = this;
  4039.                             this.muted = !1, this.setMuted = function(e) {
  4040.                                 r.muted = e
  4041.                             }, this.get = function(i, r) {
  4042.                                 return Host.Sound.Preload(i, i, e), n[i] || t(i, r)
  4043.                             }
  4044.                         }) : function(e) {
  4045.                             function t() {
  4046.                                 l = !0, h.length && h.shift().send()
  4047.                             }
  4048.  
  4049.                             function i(i, n) {
  4050.                                 function s(e, t) {
  4051.                                     if (!o.muted && d.loaded) {
  4052.                                         v = {
  4053.                                             stop: function() {}
  4054.                                         };
  4055.                                         try {
  4056.                                             d.playing = !0, v = r.createBufferSource(), v.buffer = c, v.loop = t || !1, d.resetGain(), v.connect(u), u.connect(r.destination), v.start(r.currentTime + (e || 0))
  4057.                                         } catch (e) {}
  4058.                                         return v
  4059.                                     }
  4060.                                 }
  4061.                                 var c, d = this;
  4062.                                 d.targetGain = n, d.loaded = !1, d.playing = !1;
  4063.                                 var u = {
  4064.                                     gain: {
  4065.                                         value: 0
  4066.                                     }
  4067.                                 };
  4068.                                 if (r) {
  4069.                                     var f = new XMLHttpRequest;
  4070.                                     f.open("GET", vpath + i, !0), f.responseType = "arraybuffer", f.onload = function() {
  4071.                                         t(), r.decodeAudioData(f.response, function(e) {
  4072.                                             c = e, d.loaded = !0
  4073.                                         })
  4074.                                     }, h.push(f), l || (t(), e || t()), u = r.createGain ? r.createGain() : {
  4075.                                         gain: {
  4076.                                             value: 1
  4077.                                         }
  4078.                                     }
  4079.                                 }
  4080.                                 this.gain = u.gain;
  4081.                                 var p = !1,
  4082.                                     g = 0;
  4083.                                 this.setGain = function(e) {
  4084.                                     return p ? void(g = e) : void(this.gain.value = e)
  4085.                                 }, this.updateGain = function(e) {
  4086.                                     return p ? void(g = n = e) : void(this.gain.value = n = e)
  4087.                                 }, this.resetGain = function() {
  4088.                                     return p ? void(g = n) : void(this.gain.value = n)
  4089.                                 }, this.pause = function() {
  4090.                                     p || (g = this.gain.value, this.setGain(0), p = !0)
  4091.                                 }, this.resume = function() {
  4092.                                     p && (p = !1, this.setGain(g))
  4093.                                 };
  4094.                                 var v = void 0;
  4095.                                 this.play = function(t, i) {
  4096.                                     if (d.loaded) {
  4097.                                         if (e) {
  4098.                                             if (d.playing) return
  4099.                                         } else d.stop(0);
  4100.                                         s(t, i)
  4101.                                     }
  4102.                                 }, this.stop = function(e) {
  4103.                                     if (e = e || 0, v && d.playing) try {
  4104.                                         v.stop(e)
  4105.                                     } catch (e) {}
  4106.                                     d.playing = !1
  4107.                                 }, e && (a.on("blur", function() {
  4108.                                     d.pause()
  4109.                                 }), a.on("focus", function() {
  4110.                                     d.resume()
  4111.                                 }), stage.on("down", function() {
  4112.                                     d.resume()
  4113.                                 }))
  4114.                             }
  4115.  
  4116.                             function n(e, t) {
  4117.                                 return s[e] = new i(e, t)
  4118.                             }
  4119.                             var r, o = this;
  4120.                             (window.AudioContext || window.webkitAudioContext) && (E.context = r = E.context || new(window.AudioContext || window.webkitAudioContext));
  4121.                             var s = [];
  4122.                             this.muted = !1, this.setMuted = function(e) {
  4123.                                 o.muted = e
  4124.                             }, this.get = function(e, t) {
  4125.                                 var i = s[e] || n(e, t);
  4126.                                 return i.updateGain(t), i
  4127.                             };
  4128.                             var h = [],
  4129.                                 l = !1;
  4130.                             this.currentTrack = null
  4131.                         }
  4132.                     }();
  4133.                     a.Sound = new E, a.Music = new E(!0), a.backgroundMusic = null, a.loadScript = function(e, t) {
  4134.                         ! function(i, n) {
  4135.                             var r, o = i.getElementsByTagName(n)[0];
  4136.                             t = t || {}, r = i.createElement(n), r.src = e, r.async = "async", r.defer = "defer", t.charset && (r.charset = t.charset), o.parentNode.insertBefore(r, o)
  4137.                         }(document, "script")
  4138.                     }, a.remoteConfig = {}, a.loadConfig = function(e) {
  4139.                         var t = l.remoteConfigVersion;
  4140.                         a.is.wildTangent ? t += ".wildtangent" : a.is.iOS ? t += ".ios" : a.is.android && !a.is.silk ? t += ".android" : a.is.chromeWrapper && (t += ".chrome"), "undefined" != typeof l && l.stage && "live" != l.stage || Host.Tools.LoadJSON(a.httpPrefix + "cdn.frvr.com/config/" + e + "." + t + ".json?r=" + (new Date).getTime(), function(e) {
  4141.                             for (var t in e) a.remoteConfig[t] = e[t];
  4142.                             a.configLoadCallback()
  4143.                         }, function() {
  4144.                             setTimeout(function() {
  4145.                                 a.loadConfig(e)
  4146.                             }, 6e4)
  4147.                         })
  4148.                     }, a.navigate = function(e, t) {
  4149.                         window.Host && window.Host.IOS && window.Host.IOS.OpenURL && Host.IOS.OpenURL(e), window.Host && window.Host.Android && window.Host.Android.OpenURL ? window.Host.Android.OpenURL(e) : a.is.clay ? (window.open(e, t || "_blank"), navigator.app && navigator.app.loadUrl && navigator.app.loadUrl(e, {
  4150.                             openExternal: !0
  4151.                         })) : window.open(e, t || "_blank")
  4152.                     };
  4153.                     var L = {};
  4154.                     a.utils = {};
  4155.                     var A = 0;
  4156.                     a.utils.clipImage = function(e, t, i, n, r, o, a) {
  4157.                         o = o || n, a = a || r, e.path = e.path || e.src || "Unknown Canvas Object " + ++A;
  4158.                         var s = [e.path, t, i, n, r, o, a].join(","),
  4159.                             h = L[s];
  4160.                         return void 0 === h && (h = document.createElement("canvas"), h.width = n, h.height = r, h.path = s, h.getContext("2d").drawImage(e, t, i, n, r, 0, 0, o, a), L[s] = h), h
  4161.                     }, a.utils.asynchLoadImageFromPath = function(e) {
  4162.                         var t = _.Sprite.fromImage(e);
  4163.                         return m(t), t
  4164.                     };
  4165.                     var P = !1,
  4166.                         B = [document.createElement("canvas"), document.createElement("canvas")];
  4167.                     B[0].ctx = B[0].getContext("2d"), B[1].ctx = B[1].getContext("2d");
  4168.                     var I = 0,
  4169.                         F = 0,
  4170.                         O = _.DisplayObjectContainer.expand(function() {
  4171.                             return _.DisplayObjectContainer.call(this), m(this), this
  4172.                         });
  4173.                     O.prototype.cacheRender = function(e) {
  4174.                         var t = this.getLocalBounds(),
  4175.                             i = new _.Sprite(_.Texture.emptyTexture);
  4176.                         i.worldTransform = this.worldTransform, i.anchor.x = -(t.x / t.width), i.anchor.y = -(t.y / t.height), e.save(), e.translate(-t.x + this.x, -t.y + this.y), e.globalAlpha = this.alpha;
  4177.                         for (var n = 0, r = this.children.length; n < r; n++) {
  4178.                             var o = this.children[n];
  4179.                             o.cacheRender && o.visible && o.cacheRender(e)
  4180.                         }
  4181.                         e.restore()
  4182.                     }, y(O), t.Container = O;
  4183.                     var G = [],
  4184.                         D = {};
  4185.                     _.Texture.getScaled = function(e, t, i) {
  4186.                         var n = e.path + ":" + t,
  4187.                             r = D[n];
  4188.                         if (!r) {
  4189.                             var o = w(e, t, G.pop()),
  4190.                                 a = _.Texture.fromCanvas(o);
  4191.                             a.floorCoordinates = i.floorCoordinates, r = {
  4192.                                 canvas: o,
  4193.                                 texture: a,
  4194.                                 count: 0,
  4195.                                 ratio: t
  4196.                             }, D[n] = r
  4197.                         }
  4198.                         return r.count++, i._textureCache[n] = r, r.texture
  4199.                     };
  4200.                     var U = 0,
  4201.                         H = _.Sprite.expand(function(e) {
  4202.                             this._ratio = -1, this.image = e, this._textureCache = {}, void 0 === e.path && (e.path = "DynamicSprite:" + U++), _.Sprite.call(this, this.getTexture(e, 1)), m(this)
  4203.                         });
  4204.                     H.prototype.getTexture = function(e, t) {
  4205.                         return _.Texture.getScaled(e, t, this)
  4206.                     }, H.prototype.cacheRender = function(e) {
  4207.                         e.globalAlpha = e.globalAlpha * this.alpha, 16777215 !== this.tint ? e.drawImage(_.CanvasTinter.getTintedTexture(this, this.tint), this.position.x, this.position.y) : e.drawImage(this.texture.baseTexture.source, this.position.x, this.position.y)
  4208.                     }, H.prototype.floorCoordinates = !0, H.prototype.cleanTextureCache = function() {
  4209.                         var e = this._textureCache;
  4210.                         setTimeout(function() {
  4211.                             for (var t in e) {
  4212.                                 var i = e[t];
  4213.                                 i.count--, 0 == i.count && 1 != i.ratio && (G.push(i.canvas), i.texture.destroy(), delete D[t])
  4214.                             }
  4215.                         }, 1), this._textureCache = {}
  4216.                     }, H.prototype._y = 0, Object.defineProperty(H.prototype, "y", {
  4217.                         get: function() {
  4218.                             return this._y
  4219.                         },
  4220.                         set: function(e) {
  4221.                             this._y = e, this.position.y = e * this._ratio
  4222.                         }
  4223.                     }), H.prototype._x = 0, Object.defineProperty(H.prototype, "x", {
  4224.                         get: function() {
  4225.                             return this._x
  4226.                         },
  4227.                         set: function(e) {
  4228.                             this._x = e, this.position.x = e * this._ratio
  4229.                         }
  4230.                     }), H.prototype.lockRatio = !1, H.prototype.forceSetRatio = function(e) {
  4231.                         if (this._ratio !== e)
  4232.                             if (!isNaN(e) && (e > 0 || e == -1)) {
  4233.                                 this._ratio = e, e != -1 && (this.cleanTextureCache(), this.setTexture(this.getTexture(this.image, e)), this.x = this.x, this.y = this.y), this.setRatio && this.setRatio(e);
  4234.                                 for (var t = 0; t < this.children.length; t++) this.children[t].ratio = this._ratio
  4235.                             } else console.warn("Invalid value passed to Sprite forceSetRatio " + e)
  4236.                     }, Object.defineProperty(H.prototype, "ratio", {
  4237.                         get: function() {
  4238.                             return this._ratio
  4239.                         },
  4240.                         set: function(e) {
  4241.                             this.lockRatio || this.forceSetRatio(e)
  4242.                         }
  4243.                     }), H.fromSheet = function(e, t) {
  4244.                         return e.frame = t, new H(e.image)
  4245.                     }, t.Sprite = H;
  4246.                     var z = H.expand(function(e, t, i) {
  4247.                         t = t || e.height, i = i || e.height;
  4248.                         var n = e.width / t >> 0,
  4249.                             r = e.height / i >> 0;
  4250.                         this.length = n * r, this.images = [];
  4251.                         for (var o = 0; o < this.length; o++) {
  4252.                             var s = o % n >> 0,
  4253.                                 h = o / n >> 0;
  4254.                             this.images.push(a.utils.clipImage(e, s * t, h * i, t, i, 0, 0, t, i))
  4255.                         }
  4256.                         H.call(this, this.images[0])
  4257.                     });
  4258.                     z.prototype._frame = 0, z.prototype.images = [], Object.defineProperty(z.prototype, "frame", {
  4259.                         get: function() {
  4260.                             return this._frame
  4261.                         },
  4262.                         set: function(e) {
  4263.                             e !== this.frame && (this._frame = e % this.length, this.image = this.images[this._frame], this.ratio != -1 && this.setTexture(this.getTexture(this.image, this.ratio)), window.dirtyOnce = !0)
  4264.                         }
  4265.                     }), t.Sheet = z;
  4266.                     var W = _.Sprite.expand(function(e) {
  4267.                             _.Sprite.call(this, e)
  4268.                         }),
  4269.                         N = W.prototype._renderWebGL;
  4270.                     W.prototype._renderWebGL = function(e) {
  4271.                         this._dirtyTexture && (this._dirtyTexture = !1, _.updateWebGLTexture(this.texture.baseTexture, e.gl)), N.call(this, e)
  4272.                     }, t.TextureSprite = W;
  4273.                     var j = {},
  4274.                         V = [];
  4275.                     t.Text2 = _.Sprite.expand(function(e, t) {
  4276.                         function i() {
  4277.                             var i = (e.translated || e) + ":" + t.size * c + ":" + s + ":" + JSON.stringify(t);
  4278.                             if (i != a) {
  4279.                                 var n = j[i],
  4280.                                     h = j[a];
  4281.                                 if (h && (h.count--, 0 == h.count && (V.push(h.text), delete j[a])), !n) {
  4282.                                     var l = V.pop(),
  4283.                                         d = l ? l.style : {};
  4284.                                     for (var u in t) d[u] = t[u];
  4285.                                     t.dropShadow && (d.dropShadowDistance = (t.dropShadowDistance || 6) * c), d._font = (t.italic ? "italic " : "") + t.weight + " " + (t.size - s) * c + "px " + (t.font || '"Helvetica Neue","Trebuchet MS", Helvetica, sans-serif'), n = j[i] = {
  4286.                                         text: l || new _.Text(e.toString(), d),
  4287.                                         localizedString: e,
  4288.                                         count: 0,
  4289.                                         ratio: c
  4290.                                     }, l && (l.text = e.toString() || " ")
  4291.                                 }
  4292.                                 n.count++, a = i, n.text.updateText(), o = n.text, r.setTexture(o.texture), window.dirtyOnce = !0
  4293.                             }
  4294.                         }
  4295.  
  4296.                         function n() {
  4297.                             if (s = 0, r.ratio != -1 && (i(), t.maxWidth))
  4298.                                 for (; o.texture.frame.width > t.maxWidth * r.ratio && t.size + s > 10;) s += 2, i()
  4299.                         }
  4300.                         var r = this;
  4301.                         t = t || {}, t.weight = t.weight || "300", t.size = t.size || 30, t.fill = t.fill || "#000000";
  4302.                         var o, a, s = 0,
  4303.                             h = 0,
  4304.                             l = 0,
  4305.                             c = 1;
  4306.                         r.getContent = function() {
  4307.                             return i(), o
  4308.                         }, _.Sprite.call(r, Texture.emptyTexture), r.setText = function(t) {
  4309.                             e != t && (e = t, n())
  4310.                         }, r.onLanguageChange = function() {
  4311.                             e = Host.Localize.Translate(e), n()
  4312.                         }, r.updateStyle = function(e) {
  4313.                             var i = !1;
  4314.                             for (var r in e) t[r] != e[r] && (i = !0, t[r] = e[r]);
  4315.                             i && n()
  4316.                         }, r.setStyle = function(e) {
  4317.                             r.updateStyle(e)
  4318.                         };
  4319.                         var h = 0,
  4320.                             l = 0,
  4321.                             c = 1;
  4322.                         Object.defineProperty(r, "ratio", {
  4323.                             get: function() {
  4324.                                 return c
  4325.                             },
  4326.                             set: function(e) {
  4327.                                 c === e && o || (c = e, r.position.x = h * c >> 0, r.position.y = l * c >> 0, n())
  4328.                             }
  4329.                         }), Object.defineProperty(r, "x", {
  4330.                             get: function() {
  4331.                                 return h
  4332.                             },
  4333.                             set: function(e) {
  4334.                                 h = e, r.position.x = e * c >> 0
  4335.                             }
  4336.                         }), Object.defineProperty(r, "y", {
  4337.                             get: function() {
  4338.                                 return l
  4339.                             },
  4340.                             set: function(e) {
  4341.                                 l = e, r.position.y = e * c >> 0
  4342.                             }
  4343.                         }), Object.defineProperty(r, "width", {
  4344.                             get: function() {
  4345.                                 return o || n(), r.scale.x * o.texture.frame.width
  4346.                             },
  4347.                             set: function(e) {
  4348.                                 o || n(), r.scale.x = e / o.texture.frame.width, o._width = e
  4349.                             }
  4350.                         }), Object.defineProperty(r, "height", {
  4351.                             get: function() {
  4352.                                 return o || n(), r.scale.y * o.texture.frame.height
  4353.                             },
  4354.                             set: function(e) {
  4355.                                 o || n(), r.scale.y = e / o.texture.frame.height, o._height = e
  4356.                             }
  4357.                         }), r.cacheRender = function(e) {
  4358.                             e.drawImage(o.texture.baseTexture.source, r.position.x, r.position.y)
  4359.                         }
  4360.                     }), t.Text2.onLanguageChange = function() {
  4361.                         for (k in j) {
  4362.                             j[k].text.setText(Host.Localize.Translate(j[k].localizedString))
  4363.                         }
  4364.                         Host.Localize.UpdateChildren(a.stageContainer), window.Sidebar && Sidebar.translateIcon()
  4365.                     }, t.Graphics = _.Graphics.expand(function() {
  4366.                         m(this), _.Graphics.call(this)
  4367.                     }), t.Rectangle = _.Rectangle, t.Texture = _.Texture, t.Point = _.Point;
  4368.                     var Y = function(e, t, i, n) {
  4369.                         i = void 0 == i ? 1 : i, 1 != Y.multiplier && (i *= Y.multiplier), this.tweens = {}, this.offset = 1, this.method = n || Y.easeout, this.length = 1e3 * i / (1e3 / 60), this.target = e;
  4370.                         for (var r in t) this.tweens[r] = {
  4371.                             start: e[r],
  4372.                             end: t[r]
  4373.                         };
  4374.                         Y.tweens.push(this)
  4375.                     };
  4376.                     Y.multiplier = 1, Y.prototype.call = function(e, t) {
  4377.                         return this.callback = e, this.callbackParams = t, this
  4378.                     }, Y.prototype.wait = function(e) {
  4379.                         return this.delay = 1e3 * (e || 0) / (1e3 / 60), this
  4380.                     }, Y.prototype.tick = function() {
  4381.                         if (this.delay > 0) return void this.delay--;
  4382.                         this.target.dirty = !0;
  4383.                         for (var e in this.tweens) {
  4384.                             var t = this.tweens[e];
  4385.                             this.target[e] = this.method(t.start, t.end, this.offset / this.length)
  4386.                         }
  4387.                         return this.offset++, this.offset > this.length || void 0
  4388.                     }, Y.prototype.complete = function() {
  4389.                         for (var e in this.tweens) this.target[e] = this.tweens[e].end;
  4390.                         if (this.callback) {
  4391.                             var t = this;
  4392.                             setTimeout(function() {
  4393.                                 t.callbackParams ? t.callback.apply(t.target, t.callbackParams) : t.callback.apply(t.target, null)
  4394.                             }, 1)
  4395.                         }
  4396.                     }, Y.tweens = [], Y.linear = Y.linary = function(e, t, i) {
  4397.                         return e + (t - e) * i
  4398.                     }, Y.easein = function(e, t, i) {
  4399.                         return e + (t - e) * (1 - Math.sin(i * Math.PI / 2 + Math.PI / 2))
  4400.                     }, Y.easeout = function(e, t, i) {
  4401.                         return e + (t - e) * Math.sin(i * Math.PI / 2)
  4402.                     }, Y.easeinout = function(e, t, i) {
  4403.                         return e + (t - e) * ((Math.sin(i * Math.PI + Math.PI / 2) + 1) / 2)
  4404.                     }, Y.bounce = function(e, t, i) {
  4405.                         return e + (t - e) * Math.sin(i * Math.PI)
  4406.                     }, Y.tick = function() {
  4407.                         for (var e = 0; e < Y.tweens.length; e++) {
  4408.                             var t = Y.tweens[e];
  4409.                             t.tick() && (window.dirtyOnce = !0, Y.tweens.splice(e--, 1), t.complete())
  4410.                         }
  4411.                     }, Y.complete = function() {
  4412.                         for (var e = 0; e < arguments.length; e++)
  4413.                             for (var t = arguments[e], i = 0; i < Y.tweens.length; i++) {
  4414.                                 var n = Y.tweens[i];
  4415.                                 n.target == t && (window.dirtyOnce = !0, Y.tweens.splice(i--, 1), n.complete())
  4416.                             }
  4417.                     }, Y.clear = function() {
  4418.                         for (var e = 0; e < arguments.length; e++)
  4419.                             for (var t = arguments[e], i = 0; i < Y.tweens.length; i++) {
  4420.                                 var n = Y.tweens[i];
  4421.                                 n.target == t && (n.callback = void 0, Y.tweens.splice(i--, 1))
  4422.                             }
  4423.                     }, t.Tween = Y;
  4424.                     var X = {};
  4425.                     t.embed = function(e) {
  4426.                         if (e = b(e), void 0 === X[e]) throw "You can only use the embed method in conjuction with preload for > (" + e + ")";
  4427.                         return X[e]
  4428.                     }, t.preload = function() {
  4429.                         function e() {
  4430.                             for (var e = 0; e < h.length; e++) h[e]()
  4431.                         }
  4432.  
  4433.                         function t() {
  4434.                             o--;
  4435.                             for (var t = 0; t < s.length; t++) s[t](a, o);
  4436.                             0 == o && e()
  4437.                         }
  4438.  
  4439.                         function i(e) {
  4440.                             var i = b(e);
  4441.                             if (void 0 === X[i]) {
  4442.                                 o++, a++;
  4443.                                 var n = embeddedAssets[e];
  4444.                                 if (n)
  4445.                                     if (n instanceof Array) {
  4446.                                         var r = X[i] = getCanvasFromFRVRVector.apply(this, n);
  4447.                                         r.path = i, t()
  4448.                                     } else {
  4449.                                         var s = X[i] = new Image;
  4450.                                         s.onload = function() {
  4451.                                             X[i] = s, t()
  4452.                                         }, s.src = embeddedAssets[e], s.path = i
  4453.                                     }
  4454.                                 else switch (i.substring(i.lastIndexOf("."))) {
  4455.                                     case ".wav":
  4456.                                     case ".mp3":
  4457.                                         throw "You should not preload sounds";
  4458.                                     default:
  4459.                                         var s = new Image;
  4460.                                         s.crossOrigin = "anonymous", s.onload = function() {
  4461.                                             X[i] = s, t()
  4462.                                         }, s.src = i, s.path = i
  4463.                                 }
  4464.                             }
  4465.                         }
  4466.  
  4467.                         function n(e, i) {
  4468.                             o++, a++, Host.Preferences["Get" + e](i, function(e) {
  4469.                                 t()
  4470.                             })
  4471.                         }
  4472.  
  4473.                         function r(e) {
  4474.                             var t = e.toString(),
  4475.                                 r = t.match(/[^A-Za-z]embed\(\s*[\"|\'][^\)]+[\"|\']\s*\)/g);
  4476.                             if (r)
  4477.                                 for (var o = 0; o < r.length; o++) i(r[o].replace(/[^A-Za-z]embed\(\s*[\"|\'](.+)[\"|\']\s*\)/g, "$1"));
  4478.                             var a = t.match(/[^A-Za-z]Host.Preferences.Quick([A-Za-z]+)\([\"|\'][^\)]+[\"|\']\)/g);
  4479.                             if (a)
  4480.                                 for (var o = 0; o < a.length; o++) {
  4481.                                     var s = /[^A-Za-z]Host.Preferences.Quick([A-Za-z]+)\([\"|\'](.+)[\"|\']\)/g;
  4482.                                     n(a[o].replace(s, "$1"), a[o].replace(s, "$2"))
  4483.                                 }
  4484.                         }
  4485.                         var o = 0,
  4486.                             a = 0,
  4487.                             s = [],
  4488.                             h = [];
  4489.                         a = 0, o++;
  4490.                         for (var l = 0; l < arguments.length; l++) {
  4491.                             var c = arguments[l];
  4492.                             void 0 !== c && (c instanceof Function ? (h.push(c), r(c)) : i(c))
  4493.                         }
  4494.                         return t(),
  4495.                             function(e) {
  4496.                                 s.push(e)
  4497.                             }
  4498.                     }, document.body.appendChild(a.canvas);
  4499.                     var K = 1e3 / 60,
  4500.                         q = (new Date).getTime();
  4501.                     window.dirty = !1, window.dirtyOnce = !1;
  4502.                     var Q = (new Date).getTime(),
  4503.                         J = {},
  4504.                         Z = !1;
  4505.                     T(), setTimeout(function() {
  4506.                         Q = (new Date).getTime(), Z = !0
  4507.                     }, 2e3), setTimeout(function() {
  4508.                         Z = !1;
  4509.                         var e = 0,
  4510.                             t = 0;
  4511.                         for (var i in J) e += i * J[i], t += J[i];
  4512.                         var n = Math.round(1e3 / (e / t));
  4513.                         ga("send", "event", l.niceId, "Performance", "Avg Framerate", n), n < 30 && ga("send", "event", l.niceId, "Performance", "Below 30 Framerate", n), n < 15 && ga("send", "event", l.niceId, "Performance", "Below 15 Framerate", n), n < 10 && ga("send", "event", l.niceId, "Performance", "Below 10 Framerate", n)
  4514.                     }, 62e3), t.gameHeight = height, t.stage = new O, m(stage), stage.hitArea = new _.Rectangle(0, -1e4, 1e5, 1e5), stage.interactive = !0, stage.touchstart = function() {}, a.stageContainer.addChild(stage), stage.orientation = "landscape", stage.orientationMode = "dynamic";
  4515.                     var $ = document.createElement("canvas"),
  4516.                         ee = $.getContext("2d"),
  4517.                         te = new W(Texture.emptyTexture);
  4518.                     stage.addChild(te);
  4519.                     var ie = 0,
  4520.                         ne = 0;
  4521.                     stage.background = {
  4522.                         color: "#000000",
  4523.                         gradient: void 0,
  4524.                         texture: void 0,
  4525.                         callback: void 0,
  4526.                         disabled: !1
  4527.                     };
  4528.                     var re = {};
  4529.                     stage.background.embellish = function(e) {
  4530.                         function i() {
  4531.                             for (var t = 0; t < e.length; t++) e[t].image = embed(e[t].path);
  4532.                             stage.background.callback = function(t, i) {
  4533.                                 for (var n = 0; n < e.length; n++) {
  4534.                                     var r = e[n],
  4535.                                         o = height / targetWidth * a.devicePixelRatio,
  4536.                                         s = r.image.width * o,
  4537.                                         h = r.image.height * o,
  4538.                                         l = 0,
  4539.                                         c = 0,
  4540.                                         d = C(r.left, t.width, o),
  4541.                                         u = C(r.right, t.width, o),
  4542.                                         f = C(r.top, t.width, o),
  4543.                                         p = C(r.bottom, t.width, o);
  4544.                                     void 0 !== d && void 0 !== u && (s = t.width - 5 - d - u), void 0 !== d && (l = d), void 0 !== u && (l = t.width - u - s), void 0 !== f && void 0 !== p && (h = t.height - 5 - f - p), void 0 !== f && (c = f), void 0 !== p && (c = t.height - 5 - p - h), l += C(r.offsetX, s) || 0, c += C(r.offsetY, h) || 0, i.drawImage(r.image, l, c, s, h)
  4545.                                 }
  4546.                             }, S(!0)
  4547.                         }
  4548.                         if (re != e) {
  4549.                             re = e;
  4550.                             for (var n = [], r = 0; r < e.length; r++) n.push(e[r].path);
  4551.                             n.push(i), preload.apply(t, n)
  4552.                         }
  4553.                     }, a.getTintedTexture = _.CanvasTinter.getTintedTexture, stage.background.drawBackground = function(e, t, i, n, r, o) {
  4554.                         if (e.fillStyle = stage.background.color, e.fillRect(0, 0, t, i), n) {
  4555.                             var s;
  4556.                             switch (n.type) {
  4557.                                 case "radial":
  4558.                                     var h = void 0 == n.multiplier ? 1 : n.multiplier,
  4559.                                         l = void 0 == n.verticalOffset ? .5 : n.verticalOffset;
  4560.                                     s = e.createRadialGradient(t / 2, i * l, 0, t / 2, i * l, Math.max(t / 2, i / 2) * h);
  4561.                                     break;
  4562.                                 case "linear":
  4563.                                     s = e.createLinearGradient(t * (n.width || 0), i, 0, 0);
  4564.                                     break;
  4565.                                 default:
  4566.                                     throw "Unsupported radial format"
  4567.                             }
  4568.                             for (var c = 0; c < n.stops.length; c++) s.addColorStop.apply(s, n.stops[c]);
  4569.                             e.fillStyle = s, e.fillRect(0, 0, t, i)
  4570.                         }
  4571.                         if (o && o($, e), r) {
  4572.                             if (!r.scaled) {
  4573.                                 var d = r.scaled = document.createElement("canvas");
  4574.                                 d.width = Math.ceil(r.width * a.devicePixelRatio / 2), d.height = Math.ceil(r.height * a.devicePixelRatio / 2), d.getContext("2d").drawImage(r, 0, 0, r.width, r.height, 0, 0, d.width, d.height)
  4575.                             }
  4576.                             var u = e.createPattern(r.scaled, "repeat");
  4577.                             e.fillStyle = u, e.fillRect(0, 0, t, i)
  4578.                         }
  4579.                     }, stage.background.refresh = S, window.targetWidth = 2732, window.targetHeight = 2048, window.forceRatio = !1;
  4580.                     var oe = 0;
  4581.                     if (a.initComplete = !1, a.on("resize", R), a.on("resize", function() {
  4582.                             S()
  4583.                         }), !window.inScreenshotMode) {
  4584.                         window.onunload && (window.onunload = function() {
  4585.                             setTimeout(function() {
  4586.                                 window.onresize()
  4587.                             }, 1)
  4588.                         });
  4589.                         var ae = 0;
  4590.                         a.on("focus", function() {
  4591.                             clearTimeout(ae), ae = setTimeout(function() {
  4592.                                 window.onresize()
  4593.                             }, a.is.iOS ? 500 : 1)
  4594.                         }), setInterval(function() {
  4595.                             height == M() && width == Math.max(document.documentElement.clientWidth, 100) || window.onresize()
  4596.                         }, 250)
  4597.                     }
  4598.                 }(this);
  4599.                 var s = {};
  4600.                 s.server = "https://frvr-backend.appspot.com/", s.c = function() {
  4601.                     for (var e = [], t = 0; 64 > t;) e[t] = 0 | 4294967296 * Math.abs(Math.sin(++t));
  4602.                     return function(t) {
  4603.                         var i, n, r, o, a = [];
  4604.                         t = unescape(encodeURI(t));
  4605.                         for (var s = t.length, h = [i = 1732584193, n = -271733879, ~i, ~n], l = 0; l <= s;) a[l >> 2] |= (t.charCodeAt(l) || 128) << 8 * (l++ % 4);
  4606.                         for (a[t = 16 * (s + 8 >> 6) + 14] = 8 * s, l = 0; l < t; l += 16) {
  4607.                             for (s = h, o = 0; 64 > o;) s = [r = s[3], (i = 0 | s[1]) + ((r = s[0] + [i & (n = s[2]) | ~i & r, r & i | ~r & n, i ^ n ^ r, n ^ (i | ~r)][s = o >> 4] + (e[o] + (0 | a[[o, 5 * o + 1, 3 * o + 5, 7 * o][s] % 16 + l]))) << (s = [7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21][4 * s + o++ % 4]) | r >>> 32 - s), i, n];
  4608.                             for (o = 4; o;) h[--o] = h[o] + s[o]
  4609.                         }
  4610.                         for (t = ""; 32 > o;) t += (h[o >> 3] >> 4 * (1 ^ 7 & o++) & 15).toString(16);
  4611.                         return t
  4612.                     }
  4613.                 }(), s.slt = "I think you'll enjoy playing FRVR Games!", s.send = function(e, t) {
  4614.                     var i = t.data || {},
  4615.                         n = t.load || function() {},
  4616.                         r = t.error || function(e) {
  4617.                             console.error("XSB.error: ", e)
  4618.                         },
  4619.                         o = new XMLHttpRequest;
  4620.                     o.addEventListener("load", function(e) {
  4621.                         n(e.target.responseText)
  4622.                     }), o.addEventListener("error", function(e) {
  4623.                         r(e.target.responseText)
  4624.                     });
  4625.                     var a = function(t) {
  4626.                         console.log("uid: " + t);
  4627.                         var n = new FormData,
  4628.                             r = JSON.stringify(i),
  4629.                             a = t || "";
  4630.                         n.append("id", a), n.append("c", s.c(s.slt + a + r)), n.append("data", r), n.append("game", l.id), o.open("POST", e), o.send(n)
  4631.                     };
  4632.                     s.user && s.user.id ? a(s.user.id) : Host.Preferences.GetString("frvr.uid", a)
  4633.                 }, s.login = function() {
  4634.                     s.send(s.server + "login", {
  4635.                         load: function(e) {
  4636.                             var t = JSON.parse(e);
  4637.                             s.user = new s.User(t), Host.Preferences.SetString("frvr.uid", s.user.id), a.emit("login", s.user)
  4638.                         },
  4639.                         error: function(e) {
  4640.                             console.log("Login Error: ", e), a.emit("login-error", e)
  4641.                         }
  4642.                     })
  4643.                 }, s.save = function() {
  4644.                     if (!s.user) throw "Tried to XSB.save without being logged in";
  4645.                     s.send(s.server, {
  4646.                         load: function(e) {
  4647.                             var t = JSON.parse(e);
  4648.                             console.log("User saved!", t), a.emit("save", s.user)
  4649.                         },
  4650.                         data: s.user.data
  4651.                     })
  4652.                 }, s.logout = function() {
  4653.                     s.user = null, a.emit("logout")
  4654.                 }, s.User = function(e) {
  4655.                     var t = this;
  4656.                     t.data = e.data || {}, t.id = e.id || null, t.get = function(e) {
  4657.                         return t.data[e]
  4658.                     }, t.set = function(e, i) {
  4659.                         t.data[e] = i
  4660.                     }
  4661.                 }, a.modulesToPreload.push(n), a.modulesToPreload.push(function() {
  4662.                     var e = {
  4663.                         complexity: Host.Preferences.QuickInt("modal.slider.complexity.v1")
  4664.                     };
  4665.                     0 == e.complexity.get() && e.complexity.set(2),
  4666.                         function() {
  4667.                             var e = Container.expand(function() {
  4668.                                 function e() {
  4669.                                     var e = a.devicePixelRatio;
  4670.                                     return ((height - a.styles.margins.top - a.styles.margins.bottom) / i.ratio * e - h) / 2 + a.styles.margins.top / i.ratio * e
  4671.                                 }
  4672.  
  4673.                                 function t() {
  4674.                                     i.isShowing = !1, c && c.destroy && c.destroy(), r.removeChild(c), a.stageContainer.removeChild(i)
  4675.                                 }
  4676.                                 Container.call(this);
  4677.                                 var i = this;
  4678.                                 this.backgroundColor = 16777215, this.isShowing = !1;
  4679.                                 var n = new Graphics;
  4680.                                 n.beginFill(0, .6), n.drawRect(0, 0, 200, 200), this.addChild(n), i.sounds = {
  4681.                                     button: void 0
  4682.                                 }, n.interactive = !0, n.defaultCursor = "pointer";
  4683.                                 var r = new Container;
  4684.                                 this.addChild(r);
  4685.                                 var o = new Graphics;
  4686.                                 r.addChild(o);
  4687.                                 var s = 800,
  4688.                                     h = 800,
  4689.                                     i = this;
  4690.                                 this.setHeight = function(e) {
  4691.                                     h = e, o.clear(), o.beginFill(i.backgroundColor, 1), o.drawRoundedRect(0, 0, s, h, 35), this.ratio && this.setRatio && this.setRatio(this.ratio)
  4692.                                 }, this.setHeight(800), this.redraw = function() {
  4693.                                     var e = a.devicePixelRatio;
  4694.                                     n.width = width * e, n.height = (height + 100) * e, r.x = (width / i.ratio * e - s) / 2
  4695.                                 }, this.handleResize = function() {
  4696.                                     var t = a.devicePixelRatio;
  4697.                                     Tween.complete(r);
  4698.                                     var n = Math.min(Math.min(width * t / 900, (height - a.styles.margins.top - a.styles.margins.bottom) * t / (h + 50)), t / 2);
  4699.                                     i.ratio = n, o.scale.set(n, n), r.x = (width / i.ratio * t - s) / 2, r.y = e(), i.redraw()
  4700.                                 }, a.on("resize", this.handleResize);
  4701.                                 var l = !1,
  4702.                                     c = null;
  4703.                                 this.show = function(o, s) {
  4704.                                     var h = a.devicePixelRatio;
  4705.                                     l = !1, a.emit("toggleoverlay", {
  4706.                                         visible: !0
  4707.                                     }), t(), i.isShowing = !0, c = o, c.off("down"), c.on("down", function() {
  4708.                                         l = !0
  4709.                                     }), this.setHeight(c.innerHeight), r.addChild(c), this.handleResize(), r.y = height * h / stage.ratio, n.alpha = 0, new Tween(r, {
  4710.                                         y: e()
  4711.                                     }, .3), s !== !0 && new Tween(n, {
  4712.                                         alpha: 1
  4713.                                     }, .3), a.stageContainer.addChild(i)
  4714.                                 }, this.hide = function(e) {
  4715.                                     a.hideGameOverAd(), i.isShowing ? new Tween(r, {
  4716.                                         y: -h
  4717.                                     }, .3).call(function() {
  4718.                                         t(), a.emit("toggleoverlay", {
  4719.                                             visible: !1
  4720.                                         }), e instanceof Function && e()
  4721.                                     }) : e instanceof Function && e()
  4722.                                 }, o.on("down", function() {
  4723.                                     l = !0
  4724.                                 }), n.on("up", function() {
  4725.                                     l || (c.blurClose ? i.hide() : c.blurCallback instanceof Function && c.blurCallback()), l = !1
  4726.                                 }, !0)
  4727.                             });
  4728.                             window.Modal = new e
  4729.                         }();
  4730.                     var t = Container.expand(function(t) {
  4731.                         function i(e, t, i) {
  4732.                             var n = new Sprite(e),
  4733.                                 r = 50 / n.height;
  4734.                             n.scale.set(r, r), n.y = 39, n.anchor.set(0, .5);
  4735.                             var a = new Text2(t, {
  4736.                                 weight: 400,
  4737.                                 size: 34,
  4738.                                 maxWidth: 190,
  4739.                                 dropShadowDistance: 2
  4740.                             });
  4741.                             a.anchor.set(0, .5);
  4742.                             var s = i + (255 - (a.width + 55)) / 2;
  4743.                             return a.y = 41, n.x = s, a.x = s + 55, o.addChild(n), o.addChild(a), a
  4744.                         }
  4745.  
  4746.                         function n() {
  4747.                             v = void 0, a.stageContainer.off("stageup", n), a.stageContainer.off("move", r), o.setSelected(p, !0)
  4748.                         }
  4749.  
  4750.                         function r(e) {
  4751.                             var t = e.event.getLocalPosition(stage),
  4752.                                 i = t.x - v.x;
  4753.                             h.x = Math.min(Math.max(m + i / o.ratio, f[0]), f[2]);
  4754.                             for (var n = 0; n < f.length; n++) {
  4755.                                 var r = f[n];
  4756.                                 Math.abs(h.x - r) < 30 ? o.setSelected(n, !1) : Math.abs(h.x - r) < 100 && o.setSelected(n, !1, !0)
  4757.                             }
  4758.                         }
  4759.                         var o = Container.call(this),
  4760.                             s = new Sprite(embed("i/g/s/sliderbg.svg"));
  4761.                         s.anchor.set(.5, 0), s.x = 400, this.addChild(s);
  4762.                         var h = new Sprite(embed("i/g/s/sliderslider.svg"));
  4763.                         h.anchor.set(.5, 0), h.y = -8, this.addChild(h);
  4764.                         var l = i(t.challengingStar, t.challenging, 527),
  4765.                             c = i(t.normalStar, t.normal, 273),
  4766.                             d = i(t.casualStar, t.casual, 19),
  4767.                             u = [d, c, l],
  4768.                             f = [148, 400, 655],
  4769.                             p = -1;
  4770.                         o.setSelected = function(t, i, n) {
  4771.                             var r = f[t];
  4772.                             if (n || (Tween.clear(h), i ? new Tween(h, {
  4773.                                     x: r
  4774.                                 }, .3) : h.x = r), t != p) {
  4775.                                 p = t, e.complexity.set(p + 1);
  4776.                                 for (var o = 0; o < 3; o++) {
  4777.                                     var a = u[o],
  4778.                                         s = o == t;
  4779.                                     a.updateStyle({
  4780.                                         fill: s ? "#FFFFFF" : "#000000",
  4781.                                         dropShadow: s
  4782.                                     })
  4783.                                 }
  4784.                             }
  4785.                         };
  4786.                         var g = void 0 != t.selected ? t.selected : e.complexity.get() - 1;
  4787.                         o.setSelected(g, !1), s.on("down", function(e) {
  4788.                             var t = e.event.getLocalPosition(s),
  4789.                                 i = Math.max(0, Math.min(2, (t.x / o.ratio + 127 + 260) / 258 >> 0));
  4790.                             o.setSelected(i, !0)
  4791.                         });
  4792.                         var v = void 0,
  4793.                             m = 0;
  4794.                         h.on("down", function(e) {
  4795.                             v = e.event.getLocalPosition(stage), m = h.x, a.stageContainer.on("stageup", n), a.stageContainer.on("move", r)
  4796.                         }), o.getComplexity = function() {
  4797.                             return p
  4798.                         }
  4799.                     });
  4800.                     window.Modal.ModelButton = Container.expand(function(e, t, i, n, r, o) {
  4801.                         function s() {
  4802.                             r ? (h.drawRoundedRect(0, 0, 800, 200, r), l.clear(), l.beginFill(16777215, 1), l.drawRect(0, 0, 800, r), d.addChild(l)) : h.drawRect(0, 0, 800, u)
  4803.                         }
  4804.                         Container.call(this);
  4805.                         var h, l, c, d = this;
  4806.                         n = void 0 === n ? 15748651 : n, h = new Graphics, d.addChild(h);
  4807.                         var u = 165 + r;
  4808.                         if (l = new Graphics, t) {
  4809.                             var f = new Text2(t, {
  4810.                                 width: 400,
  4811.                                 size: 40,
  4812.                                 fill: "#ffffff"
  4813.                             });
  4814.                             f.anchor.set(.5, 0), f.x = 400, f.y = 30 + r + 60, d.addChild(f)
  4815.                         }
  4816.                         c = new Text2(e, {
  4817.                             width: 400,
  4818.                             size: o,
  4819.                             fill: "#ffffff"
  4820.                         }), c.anchor.set(.5, 0), c.x = 400, c.y = 30 + r, d.addChild(c), c.interactive = !0, c.buttonMode = !0, i && h.on("down", function() {
  4821.                             Modal.sounds.button && Modal.sounds.button.play(0), a.stageContainer.off("stageup"), a.stageContainer.once("stageup", i)
  4822.                         }), d.setRatio = function(e) {
  4823.                             h.width = 800 * e, h.height = u * e, l && (l.width = 800 * e, l.height = 35 * e)
  4824.                         }, d.setColor = function(e) {
  4825.                             h.beginFill(e), s()
  4826.                         }, d.setColor(void 0 === n ? 16711680 : n, 1)
  4827.                     }), window.Modal.PictureButton = Container.expand(function(e, t) {
  4828.                         Container.call(this);
  4829.                         var i = this;
  4830.                         preload(e, function() {
  4831.                             var n = new Sprite(embed(e));
  4832.                             n.anchor.set(.5, 0), n.x = 400, i.addChild(n), t && (n.buttonMode = !0, n.on("down", t))
  4833.                         })
  4834.                     });
  4835.                     var i = 1337 * Math.random() >> 0;
  4836.                     window.Modal.ModalOverlayContent = Container.expand(function() {
  4837.                         var e = this;
  4838.                         Container.call(this), this.innerHeight = 800, this.blurClose = !0, this.addHeadline = function(e) {
  4839.                             var t = new Text2(e, {
  4840.                                 weight: 200,
  4841.                                 size: 90,
  4842.                                 fill: "#2c2c2c",
  4843.                                 maxWidth: 780
  4844.                             });
  4845.                             return t.anchor.set(.5, 0), t.x = 400, t.y = 40, this.addChild(t), t
  4846.                         }, this.addTextBlock = function(e, t, i) {
  4847.                             var n = new Text2(e, {
  4848.                                 weight: i || 200,
  4849.                                 size: t || 90,
  4850.                                 fill: "#2c2c2c",
  4851.                                 maxWidth: 780
  4852.                             });
  4853.                             return n.anchor.set(.5, 0), n.x = 400, n.y = 50, this.addChild(n), n
  4854.                         }, this.addLead = function(e, t) {
  4855.                             var i = new Text2(e, {
  4856.                                 width: 200,
  4857.                                 size: 45,
  4858.                                 fill: "#2c2c2c",
  4859.                                 maxWidth: 800,
  4860.                                 align: "center"
  4861.                             });
  4862.                             return i.anchor.set(.5, 0), i.x = 400, i.y = 140 + (t || 0), this.addChild(i), i
  4863.                         };
  4864.                         this.addButton = function(e, t, i) {
  4865.                             var n = new Modal.ModelButton(e, "", t, i, 35, 90);
  4866.                             return n.y = 370, this.addChild(n)
  4867.                         }, this.addMiddleButton = function(e, t, i, n, r) {
  4868.                             var o = new Modal.ModelButton(e, t, i, n, 0, r || 60);
  4869.                             return o.y = 370, this.addChild(o)
  4870.                         }, this.addSocialButton = function(e, t, i, n, r) {
  4871.                             var o = this.addMiddleButton(e, t, i, n);
  4872.                             return o.y = 405 + (r || 0), this.addChild(o)
  4873.                         }, this.addPictureButton = function(e, t, i) {
  4874.                             var n = new Modal.PictureButton(e, t);
  4875.                             return n.y = 405 + (i || 0), this.addChild(n)
  4876.                         }, this.addSlider = function(e) {
  4877.                             return this.addChild(new t(e))
  4878.                         }, this.addMetaButton = function(t, n) {
  4879.                             var r = [];
  4880.                             return a.remoteConfig && a.remoteConfig.crosspromoteConfig && a.remoteConfig.crosspromoteConfig.length && !a.is.twitter && r.push(function(e) {
  4881.                                 var i = a.remoteConfig.crosspromoteConfig[a.remoteConfig.crosspromoteConfig.length * Math.random() >> 0];
  4882.                                 a.is.android && !a.is.silk && i.androidUrl && i.androidImage ? e.addPictureButton(a.httpPrefix + i.androidImage, function() {
  4883.                                     a.navigate(i.androidUrl)
  4884.                                 }, t).y = t : a.is.iOS && i.iOSUrl && i.iOSImage ? e.addPictureButton(a.httpPrefix + i.iOSImage, function() {
  4885.                                     a.navigate(i.iOSUrl, "_top")
  4886.                                 }, t).y = t : a.is.facebookApp && i.facebookUrl && i.facebookImage ? e.addPictureButton(a.httpPrefix + i.facebookImage, function() {
  4887.                                     a.navigate(i.facebookUrl, "_top")
  4888.                                 }, t).y = t : a.is.chromeWrapper && i.chromeUrl && i.chromeImage ? e.addPictureButton(i.chromeImage, function() {
  4889.                                     a.navigate(i.chromeUrl, "_blank")
  4890.                                 }, t).y = t : !a.is.chromeWrapper && i.webUrl && i.webImage && (e.addPictureButton(a.httpPrefix + i.webImage, function() {
  4891.                                     a.navigate(i.webUrl, "_top")
  4892.                                 }, t).y = t)
  4893.                             }), window.requestFacebookLogin && window.facebookAuthed === !1 && r.push(function(e) {
  4894.                                 e.addSocialButton(Host.Localize.Translate("Login with Facebook"), Host.Localize.Translate("Save your score!"), function() {
  4895.                                     window.requestFacebookLogin(function() {
  4896.                                         Modal.hide(), n.mainActionCallback && n.mainActionCallback(), n.autoCallback && n.autoCallback()
  4897.                                     })
  4898.                                 }, 4675430, t).y = t
  4899.                             }), window.shareDialogueCallback && r.push(function(e) {
  4900.                                 e.addSocialButton(Host.Localize.Translate(l.buttonShareTitle, {
  4901.                                     game_name: l.shareTitle
  4902.                                 }), Host.Localize.Translate(l.buttonShareDescription, {
  4903.                                     game_name: l.shareTitle
  4904.                                 }), function() {
  4905.                                     window.shareDialogueCallback(""), n.mainActionCallback && n.mainActionCallback()
  4906.                                 }, 4675430, t).y = t
  4907.                             }), !!r.length && (i++, r[i % r.length](e), !0)
  4908.                         }
  4909.                     }), window.Modal.RateGameModal = Modal.ModalOverlayContent.expand(function(e, t) {
  4910.                         function i(e) {
  4911.                             var t = 4 != e;
  4912.                             o.visible = t, s.visible = !0;
  4913.                             var i = t ? 150 : 0;
  4914.                             s.y = 430 + i, s.setColor(t ? 12303291 : 6208638), h.visible = !0, r.innerHeight = 760 + i, Modal.setHeight(r.innerHeight), Modal.handleResize(), h.y = 560 + i, r.addChildAt(h, 0)
  4915.                         }
  4916.  
  4917.                         function n(t) {
  4918.                             var n = new Sheet(e, 136, 130);
  4919.                             return n.y = 270, n.x = 150 * d + 30, n.on("down", function() {
  4920.                                 for (var e = 0; e < 5; e++) c[e].frame = e <= t ? 1 : 0;
  4921.                                 i(t)
  4922.                             }), n.buttonMode = !0, n
  4923.                         }
  4924.                         Modal.ModalOverlayContent.call(this), this.addHeadline(Host.Localize.Translate("Having Fun?")), this.addLead(Host.Localize.Translate("Help us improve the game!\nHow would you rate {game_name}?", {
  4925.                             game_name: l.shareTitle
  4926.                         }), 10);
  4927.                         var r = this,
  4928.                             o = r.addMiddleButton(Host.Localize.Translate("Send Feedback"), Host.Localize.Translate("Help us improve {game_name}", {
  4929.                                 game_name: l.shareTitle
  4930.                             }, "We are asking the user to provide feedback for the game"), function() {
  4931.                                 a.navigate(l.feedbackURL), Modal.hide()
  4932.                             }, 6208638);
  4933.                         o.y = 430, o.visible = !1;
  4934.                         var s = r.addMiddleButton(Host.Localize.Translate("Write Review"), Host.Localize.Translate("Help us by writing a review!"), function() {
  4935.                             a.is.chromeWrapper ? a.navigate(l.chromeReviewUrl) : a.is.android ? a.navigate(l.androidReviewURL) : a.navigate(l.iOSReviewURL), Modal.hide()
  4936.                         }, 12303291);
  4937.                         s.y = 580, s.visible = !1;
  4938.                         var h = r.addButton(Host.Localize.Translate("No thanks"), function() {
  4939.                             Modal.hide()
  4940.                         }, t);
  4941.                         h.visible = !1;
  4942.                         for (var c = [], d = 0; d < 5; d++) c.push(this.addChild(n(d)));
  4943.                         this.innerHeight = 450, this.blurClose = !1
  4944.                     }), window.Modal.BuyItemModal = Modal.ModalOverlayContent.expand(function(e, t, i, n, r, o, s) {
  4945.                         Modal.ModalOverlayContent.call(this), this.addHeadline(e);
  4946.                         var h = this.addLead(t, 10);
  4947.                         h.updateStyle({
  4948.                             wordWrapWidth: 790 * a.devicePixelRatio
  4949.                         });
  4950.                         var l = this.addButton(i, n, 7463062),
  4951.                             c = new Sheet(embed("i/g/s/menutile.svg"), 68, 45);
  4952.                         c.frame = 1, c.x = 722, c.y = 15, this.addChild(c), c.interactive = !0, c.buttonMode = !0, l.y = 200;
  4953.                         var d = 0;
  4954.                         if (r) {
  4955.                             this.addMiddleButton(r, o, s, 8026746).y = 255, d += 200, l.y += 185, this.innerHeight = 579
  4956.                         } else l.y += 20, this.innerHeight = 420;
  4957.                         this.addChild(h)
  4958.                     }), window.Modal.InstallGameModal = Modal.ModalOverlayContent.expand(function(e, t, i, n) {
  4959.                         Modal.ModalOverlayContent.call(this), this.addHeadline(Host.Localize.Translate("Install {game_name}?", {
  4960.                             game_name: l.shortTitle
  4961.                         })), this.addButton(Host.Localize.Translate("Install Now"), function() {
  4962.                             t && a.navigate(t, "_top"), n && n()
  4963.                         }, 6274174).y = 640, this.innerHeight += 40;
  4964.                         var r = a.utils.asynchLoadImageFromPath(vpath + e);
  4965.                         r.anchor.set(0, 0), this.addChild(r), r.buttonMode = !0, r.on("down", function() {
  4966.                             t && a.navigate(t, "_top"), n && n()
  4967.                         }), this.setRatio = function(e) {
  4968.                             r.scale.set(1.465 * e, 1.465 * e), r.y = 160 * e
  4969.                         }, this.blurClose = !1, this.blurCallback = function() {
  4970.                             Modal.hide(i)
  4971.                         }
  4972.                     }), window.Modal.NewWinModal = Modal.ModalOverlayContent.expand(function(e) {
  4973.                         function t(e) {
  4974.                             return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
  4975.                         }
  4976.                         var i = this;
  4977.                         Modal.ModalOverlayContent.call(i), i.addHeadline([Host.Localize.Translate("Amazing!"), Host.Localize.Translate("Impressive!"), Host.Localize.Translate("Breathtaking!")][3 * Math.random() >> 0]), i.blurClose = e.allowBlurClose || !1;
  4978.                         var n = 190;
  4979.                         if (window.CalenderView) throw "You need to update to CalendarView!";
  4980.                         var r = CalendarView.getCalendarViewDay({
  4981.                             currentDate: CalendarView.getDateFromOffset(e.seed),
  4982.                             isToday: CalendarView.isToday(e.seed),
  4983.                             isLarge: !0,
  4984.                             dateOffset: e.seed,
  4985.                             stars: [e.bronze, e.silver, e.gold],
  4986.                             animate: !0
  4987.                         });
  4988.                         if (i.addChild(r), r.x = 400, r.y = 400, e.lead) {
  4989.                             i.addTextBlock(e.lead, 50, 300).y = n + 400, n += 61
  4990.                         }
  4991.                         if (void 0 !== e.score) {
  4992.                             n += 130;
  4993.                             var o = i.addTextBlock(0, 150, 400);
  4994.                             o.y = 420, i.addChild(o);
  4995.                             var a = 0;
  4996.                             Object.defineProperty(o, "score", {
  4997.                                 get: function() {
  4998.                                     return a
  4999.                                 },
  5000.                                 set: function(e) {
  5001.                                     a = e, this.setText(t(e >> 0))
  5002.                                 }
  5003.                             });
  5004.                             var s = o.scale.x,
  5005.                                 h = o.scale.x;
  5006.                             new Tween(o, {
  5007.                                 score: e.score
  5008.                             }, 1, Tween.linary).wait(.3).call(function() {
  5009.                                 e.sounds && e.sounds.ding && e.sounds.ding.play(), o.scale.set(1.1 * s, 1.1 * h), new Tween(o.scale, {
  5010.                                     x: s,
  5011.                                     y: h
  5012.                                 }, .3)
  5013.                             }), e.sounds && e.sounds.count && e.sounds.count.play(.4)
  5014.                         }
  5015.                         if (i.addMetaButton(n + 405, e) && (n += 165), e.secondActionText && e.secondActionCallback) {
  5016.                             i.addSocialButton(e.secondActionText, e.secondActionLead, e.secondActionCallback, e.secondActionColor || 7445472).y = n + 405, n += 165
  5017.                         }
  5018.                         var l = i.addButton(e.mainActionText, e.mainActionCallback, e.mainActionColor || 7463062);
  5019.                         i.addChildAt(l, 1), l.y += n, i.innerHeight = 570 + n
  5020.                     }), window.Modal.GameOverModal = Container.expand(function(e, t) {
  5021.                         Modal.ModalOverlayContent.call(this);
  5022.                         var i = this;
  5023.                         i.addHeadline(Host.Localize.Translate("Game Over")), i.addLead(Host.Localize.Translate("No more valid moves")), i.blurClose = !1;
  5024.                         var n = i.addButton(Host.Localize.Translate("Start over"), e, 7463062),
  5025.                             r = 250;
  5026.                         if (i.addMetaButton(r, {
  5027.                                 mainActionCallback: t
  5028.                             }) && (r += 165), t) {
  5029.                             i.addMiddleButton(Host.Localize.Translate("Return to Calendar"), Host.Localize.Translate("Play another level?"), t, 7445472).y = r, r += 165
  5030.                         }
  5031.                         n.y = r - 35, i.innerHeight = r + 165
  5032.                     }), window.Modal.NewGameModal = Container.expand(function(e, t) {
  5033.                         var i = this;
  5034.                         Modal.ModalOverlayContent.call(i);
  5035.                         var n = -170,
  5036.                             r = i.addButton(Host.Localize.Translate("Start"), function() {
  5037.                                 e()
  5038.                             }, 7463062);
  5039.                         if (t) {
  5040.                             var o = i.addSlider({
  5041.                                 casual: Host.Localize.Translate("Casual"),
  5042.                                 normal: Host.Localize.Translate("Normal"),
  5043.                                 challenging: Host.Localize.Translate("Challenging"),
  5044.                                 casualStar: t.casualStar,
  5045.                                 normalStar: t.normalStar,
  5046.                                 challengingStar: t.challengingStar,
  5047.                                 selected: t.complexity
  5048.                             });
  5049.                             o.y = 595;
  5050.                             var a = e;
  5051.                             e = function() {
  5052.                                 a(o.getComplexity())
  5053.                             }, n = 290, i.innerHeight = 570 + n
  5054.                         }
  5055.                         r.y += n, i.innerHeight = 570 + n
  5056.                     })
  5057.                 });
  5058.                 var h = function(e, t) {
  5059.                     Container.call(this), this.scrollWidth = e, this.scrollHeight = t, this.allowScrollX = !0, this.allowScrollY = !0, this.content = new Container, this.addChild(this.content), this.addChild = function(e) {
  5060.                         return this.content.addChild(e)
  5061.                     }, this.addChildAt = function(e, t) {
  5062.                         return this.content.addChildAt(e, t)
  5063.                     }, this.removeChild = function(e) {
  5064.                         return this.content.removeChild(e)
  5065.                     }, this.resize = function(e, t) {
  5066.                         this.scrollWidth = e, this.scrollHeight = t
  5067.                     }, this.getChildren = function() {
  5068.                         return this.content.children
  5069.                     }, this.moved = !1;
  5070.                     var i = this,
  5071.                         n = null,
  5072.                         r = 0,
  5073.                         o = 0;
  5074.                     a.stageContainer.on("down", function(e) {
  5075.                         var t = e.event;
  5076.                         Tween.clear(i.content);
  5077.                         var a = t.getLocalPosition(i),
  5078.                             s = a.x / i.ratio,
  5079.                             h = a.y / i.ratio;
  5080.                         r = i.content.x, o = i.content.y, s >= 0 && h >= 0 && s <= i.scrollWidth && h <= i.scrollHeight && (n = a), i.moved = !1
  5081.                     });
  5082.                     var s = null,
  5083.                         h = 0,
  5084.                         l = 0;
  5085.                     a.stageContainer.on("move", function(e) {
  5086.                         var t = e.event;
  5087.                         if (null !== n) {
  5088.                             var c = a.devicePixelRatio,
  5089.                                 d = t.getLocalPosition(i);
  5090.                             if (i.moved || Math.abs(n.y - d.y) > 5 * c || Math.abs(n.x - d.x) > 5 * c) {
  5091.                                 if (i.moved = !0, s && (h = d.y - s.y, l = (new Date).getTime()), s = d, i.allowScrollX) {
  5092.                                     var u = r - (n.x - d.x) / i.ratio,
  5093.                                         f = i.scrollWidth - Math.max(i.content.width / i.content.ratio, i.scrollWidth);
  5094.                                     if (u > 0) u = Math.min(u, 7 * Math.sqrt(u));
  5095.                                     else if (u < f) {
  5096.                                         var p = -u + f;
  5097.                                         u = f - Math.min(p, 7 * Math.sqrt(p))
  5098.                                     }
  5099.                                     i.content.x = u
  5100.                                 }
  5101.                                 if (i.allowScrollY) {
  5102.                                     var g = o - (n.y - d.y) / i.ratio,
  5103.                                         v = i.scrollHeight - Math.max(i.content.height / i.content.ratio, i.scrollHeight);
  5104.                                     if (g > 0) g = Math.min(g, 7 * Math.sqrt(g));
  5105.                                     else if (g < v) {
  5106.                                         var p = -g + v;
  5107.                                         g = v - Math.min(p, 7 * Math.sqrt(p))
  5108.                                     }
  5109.                                     i.content.y = g
  5110.                                 }
  5111.                             }
  5112.                         }
  5113.                     }), a.stageContainer.on("up", function(e) {
  5114.                         n && (!i.moved && i.callback && i.callback(), i.callback = null, i.clean())
  5115.                     }), window.onmousewheel = function(e) {
  5116.                         var t = window.event || e,
  5117.                             n = t.detail ? t.detail * -10 : t.wheelDelta;
  5118.                         i.content.y += n;
  5119.                         var r = (i.scrollWidth - Math.max(i.content.width / i.content.ratio, i.scrollWidth), i.scrollHeight - Math.max(i.content.height / i.content.ratio, i.scrollHeight));
  5120.                         i.content.y >= 0 ? i.content.y = 0 : i.content.y < r && (i.content.y = r), window.dirtyOnce = !0
  5121.                     }, window.addEventListener("DOMMouseScroll", window.onmousewheel), this.clean = function() {
  5122.                         s = null;
  5123.                         var e = i.scrollWidth - Math.max(i.content.width / i.content.ratio, i.scrollWidth),
  5124.                             t = i.scrollHeight - Math.max(i.content.height / i.content.ratio, i.scrollHeight);
  5125.                         i.content.x >= 0 ? new Tween(i.content, {
  5126.                             x: 0
  5127.                         }, .2) : i.content.x < e && new Tween(i.content, {
  5128.                             x: e
  5129.                         }, .2), i.content.y >= 0 ? new Tween(i.content, {
  5130.                             y: 0
  5131.                         }, .2) : i.content.y < t ? new Tween(i.content, {
  5132.                             y: t
  5133.                         }, .2) : (new Date).getTime() - l < 250 && Math.abs(h) > 5 && new Tween(i.content, {
  5134.                             y: Math.max(Math.min(i.content.y + 20 * h, 0), t)
  5135.                         }, .4), h = 0, n = null, i.moved = !1
  5136.                     }
  5137.                 };
  5138.                 h.prototype = Object.create(Container.prototype), h.prototype.constructor = h, a.modulesToPreload.push(function() {
  5139.                     window.Sidebar = function() {
  5140.                         function e() {
  5141.                             var e = document.createElement("canvas");
  5142.                             e.style.width = 136, e.style.height = 75;
  5143.                             var t = e.getContext("2d");
  5144.                             t.drawImage(o, 0, 0);
  5145.                             var i = new Text2(Host.Localize.Translate("Menu"), {
  5146.                                     fill: "#FFFFFF",
  5147.                                     size: 80,
  5148.                                     weight: 400
  5149.                                 }),
  5150.                                 n = i.getContent().canvas,
  5151.                                 r = Math.min(35 / n.height, 68 / n.width),
  5152.                                 a = (68 - r * n.width) / 2;
  5153.                             t.drawImage(n, a, 47, r * n.width, r * n.height);
  5154.                             var s = new Text2(Host.Localize.Translate("Close"), {
  5155.                                     fill: "#FFFFFF",
  5156.                                     size: 80,
  5157.                                     weight: 400
  5158.                                 }),
  5159.                                 h = s.getContent().canvas,
  5160.                                 l = Math.min(35 / h.height, 68 / h.width),
  5161.                                 c = (68 - l * h.width) / 2;
  5162.                             return t.drawImage(h, c + 68, 47, l * h.width, l * n.height), e
  5163.                         }
  5164.  
  5165.                         function t() {
  5166.                             var t = new Sheet(e(), 68, 75);
  5167.                             return t.x = 25, t.y = a.styles.margins.top ? (a.styles.margins.top + 5) / .5 : 25, t.buttonMode = !0, t.interactive = !0, t.ratio = .5 * a.devicePixelRatio, t.buttonMode = !0, t.on("down", function() {
  5168.                                 r.showing ? r.hide() : r.show()
  5169.                             }), t
  5170.                         }
  5171.  
  5172.                         function i() {
  5173.                             r.icon.ratio = .5 * a.devicePixelRatio, height != p && (p = height, d.width = 25, d.height = height * a.devicePixelRatio, u.fillStyle = f, u.fillRect(0, 0, d.width, d.height), c.texture.destroy(!0), c.setTexture(new Texture.fromCanvas(d)), s.height = height * a.devicePixelRatio, r.content.resize(500 * a.devicePixelRatio, 2 * (height - a.styles.margins.top)))
  5174.                         }
  5175.  
  5176.                         function n(e, t, i, n) {
  5177.                             return e.ratio = a.devicePixelRatio / 2, e.x = t, e.y = i, e.hitArea = new Rectangle(0, 0, 50 * a.devicePixelRatio, 50 * a.devicePixelRatio), void 0 !== n && (e.interactive = !0, e.buttonMode = !0, e.defaultCursor = "pointer", e.on("down", function() {
  5178.                                 r.content.callback = function() {
  5179.                                     a.navigate(n), Sidebar.hide()
  5180.                                 }
  5181.                             })), e
  5182.                         }
  5183.                         var r = this,
  5184.                             o = embed("i/g/s/menutile.svg");
  5185.                         r.translateIcon = function() {
  5186.                             var e = t();
  5187.                             e.alpha = r.icon.alpha, e.visible = r.icon.visible, e.x = r.icon.x, e.y = r.icon.y, e.frame = r.icon.frame, e.anchor.set(r.icon.anchor.x, r.icon.anchor.y);
  5188.                             var i = r.icon.parent;
  5189.                             i.removeChild(r.icon), i.addChild(e), r.icon = e
  5190.                         }, Container.call(r), r.icon = t(), r.showing = !1;
  5191.                         var s = new Graphics;
  5192.                         r.addChild(s), r.interactive = !0, s.beginFill(3355443), s.drawRect(0, 0, 200, 200), s.width = 250 * a.devicePixelRatio;
  5193.                         var c = new TextureSprite(Texture.emptyTexture);
  5194.                         a.stageContainer.addChildAt(c, 0), r.sounds = {
  5195.                             show: void 0,
  5196.                             hide: void 0
  5197.                         };
  5198.                         var d = document.createElement("canvas"),
  5199.                             u = d.getContext("2d"),
  5200.                             f = u.createPattern(a.utils.clipImage(embed("i/g/s/sidebar.svg"), 268, 0, 25, 25), "repeat");
  5201.                         a.stageContainer.addChild(r.icon), c.x = -24, r.content = new h(500, 500), r.content.allowScrollX = !1, r.content.ratio = .5 * a.devicePixelRatio, r.content.y = a.styles.margins.top * a.devicePixelRatio, r.addChild(r.content);
  5202.                         var p;
  5203.                         r.show = function() {
  5204.                             r.showing || (a.stageContainer.addChildAt(window.Sidebar, 0), window.Sidebar.content.content.y = 0, Tween.clear(stage), Tween.clear(c), Tween.clear(r.icon), r.showing = !0, new Tween(stage, {
  5205.                                 x: 250 * a.devicePixelRatio
  5206.                             }, .3), new Tween(c, {
  5207.                                 x: 250 * a.devicePixelRatio - 24
  5208.                             }, .3), new Tween(r.icon, {
  5209.                                 x: 510
  5210.                             }, .3), new Tween(r.icon, {
  5211.                                 alpha: 0
  5212.                             }, .15).call(function() {
  5213.                                 r.icon.frame = 1, new Tween(r.icon, {
  5214.                                     alpha: 1
  5215.                                 }, .15)
  5216.                             }), r.sounds.show && r.sounds.show.play(), a.emit("toggleoverlay", {
  5217.                                 visible: !0
  5218.                             }))
  5219.                         }, r.hide = function() {
  5220.                             r.showing && (Tween.clear(stage), Tween.clear(c), Tween.clear(r.icon), r.showing = !1, new Tween(stage, {
  5221.                                 x: 0
  5222.                             }, .3).call(function() {
  5223.                                 window.Sidebar.parent && window.Sidebar.parent.removeChild(window.Sidebar)
  5224.                             }), new Tween(c, {
  5225.                                 x: -24
  5226.                             }, .3), new Tween(r.icon, {
  5227.                                 x: 25
  5228.                             }, .3), new Tween(r.icon, {
  5229.                                 alpha: 0
  5230.                             }, .15).call(function() {
  5231.                                 r.icon.frame = 0, new Tween(r.icon, {
  5232.                                     alpha: 1
  5233.                                 }, .15)
  5234.                             }), r.sounds.hide && r.sounds.hide.play(), a.emit("toggleoverlay", {
  5235.                                 visible: !1
  5236.                             }))
  5237.                         };
  5238.                         var g = 0;
  5239.                         r.addMenuHeader = function(e) {
  5240.                             var t = new Container,
  5241.                                 i = new Graphics;
  5242.                             i.beginFill(2236962), i.drawRect(0, -2, 250 * a.devicePixelRatio, 34 * a.devicePixelRatio), t.addChild(i);
  5243.                             var e = new Text2(e, {
  5244.                                 weight: a.is.safari || a.is.iOS ? 300 : 200,
  5245.                                 size: 35,
  5246.                                 fill: "#FFFFFF"
  5247.                             });
  5248.                             t.addChild(e), e.x = 22, e.y = 12, t.addChild(e), t.y = g, r.content.addChild(t), t.scrollHeight = 64, g += 64
  5249.                         };
  5250.                         r.addMenuToggle = function(e, t, i, o, s) {
  5251.                             function h(e) {
  5252.                                 p = e, p ? (new Tween(f, {
  5253.                                     x: 427
  5254.                                 }, .2), new Tween(d, {
  5255.                                     alpha: 1
  5256.                                 }, .2)) : (new Tween(f, {
  5257.                                     x: 389
  5258.                                 }, .2), new Tween(d, {
  5259.                                     alpha: 0
  5260.                                 }, .2))
  5261.                             }
  5262.                             var l = new Container;
  5263.                             e.x = 15, e.y = 15, l.addChild(e);
  5264.                             var c = new Graphics;
  5265.                             l.addChild(c);
  5266.                             var c = new Graphics;
  5267.                             l.addChild(c), c.lineStyle(1, 0, .2), c.moveTo(0, 40 * a.devicePixelRatio), c.lineTo(250 * a.devicePixelRatio, 40 * a.devicePixelRatio), c.lineStyle(1, 16777215, .2), c.moveTo(0, 41 * a.devicePixelRatio), c.lineTo(250 * a.devicePixelRatio, 41 * a.devicePixelRatio), l.y = g;
  5268.                             var d = n(new Sprite(a.utils.clipImage(embed("i/g/s/sidebar.svg"), 167, 0, 100, 60)), 388, 10);
  5269.                             l.addChild(d), d.interactive = !0, d.buttonMode = !0, d.defaultCursor = "pointer";
  5270.                             var u = n(new Sprite(a.utils.clipImage(embed("i/g/s/sidebar.svg"), 0, 0, 104, 64)), 386, 8);
  5271.                             l.addChild(u);
  5272.                             var f = n(new Sprite(a.utils.clipImage(embed("i/g/s/sidebar.svg"), 105, 0, 61, 59)), 427, 12);
  5273.                             l.addChild(f);
  5274.                             var t = new Text2(t, {
  5275.                                 weight: a.is.safari || a.is.iOS ? 300 : 200,
  5276.                                 size: 35,
  5277.                                 fill: "#ffffff",
  5278.                                 maxWidth: s
  5279.                             });
  5280.                             l.addChild(t), t.x = 80, t.y = 22;
  5281.                             var p = !0;
  5282.                             return l.hitArea = new Rectangle(0, 0, 250 * a.devicePixelRatio, 35 * a.devicePixelRatio), l.on("down", function() {
  5283.                                 r.content.callback = function() {
  5284.                                     h(!p), o(p)
  5285.                                 }
  5286.                             }), h(i), r.content.addChild(l), l.scrollHeight = 84, g += 84, l
  5287.                         }, r.hideIcon = function() {
  5288.                             r.icon.visible = !1, window.dirtyOnce = !0
  5289.                         }, r.showIcon = function() {
  5290.                             r.icon.visible = !0, window.dirtyOnce = !0
  5291.                         }, r.addMenuItem = function(e, t, i) {
  5292.                             var n = new Container;
  5293.                             e.x = 15, e.y = 15, n.addChild(e);
  5294.                             var o = new Graphics;
  5295.                             n.addChild(o), o.lineStyle(1, 0, .2), o.moveTo(0, 40 * a.devicePixelRatio), o.lineTo(250 * a.devicePixelRatio, 40 * a.devicePixelRatio), o.lineStyle(1, 16777215, .2), o.moveTo(0, 41 * a.devicePixelRatio), o.lineTo(250 * a.devicePixelRatio, 41 * a.devicePixelRatio), n.interactive = !0, n.buttonMode = !0, n.defaultCursor = "pointer", n.y = g, n.hitArea = new Rectangle(0, 0, 250 * a.devicePixelRatio, 35 * a.devicePixelRatio);
  5296.                             var t = new Text2(t, {
  5297.                                 weight: a.is.safari || a.is.iOS ? 300 : 200,
  5298.                                 size: 35,
  5299.                                 fill: "#ffffff"
  5300.                             });
  5301.                             return n.addChild(t), t.x = 80, t.y = 22, r.content.addChild(n), n.scrollHeight = 84, g += 84, n.on("down", function() {
  5302.                                 r.content.callback = function() {
  5303.                                     i && i()
  5304.                                 }
  5305.                             }), n
  5306.                         }, r.addMenuItemAfter = function(e, t, i, n) {
  5307.                             for (var o = r.addMenuItem(t, i, n), a = r.content.getChildren(), s = 0; s < a.length && a[s] != e; s++);
  5308.                             return r.content.addChildAt(o, s + 1), r.reAlignItems(), o
  5309.                         }, r.removeMenuItem = function(e) {
  5310.                             r.content.removeChild(e) && (g -= 84)
  5311.                         }, r.reAlignItems = function() {
  5312.                             g = 0;
  5313.                             for (var e = r.content.getChildren(), t = 0; t < e.length; t++) {
  5314.                                 var i = e[t];
  5315.                                 i.y = g, g += i.scrollHeight
  5316.                             }
  5317.                         }, r.addSocialBar = function() {
  5318.                             var e = new Container;
  5319.                             e.addChild(n(new Sprite(embed("i/g/s/icon_frvr.svg")), 20, 15, "http://news.frvr.com")), e.addChild(n(new Sprite(embed("i/g/s/icon_tumblr.svg")), 150, 15, "https://twitter.com/frvrgames")), e.addChild(n(new Sprite(embed("i/g/s/icon_facebook.svg")), 280, 15, l.facebookPageUrl)), e.addChild(n(new Sprite(embed("i/g/s/icon_gplus.svg")), 410, 15, "https://plus.google.com/+Frvrgames")), e.y = g, r.content.addChild(e), e.scrollHeight = 82, g += 82
  5320.                         }, stage.on("down", function() {
  5321.                             r.showing && r.hide()
  5322.                         }), a.on("resize", i)
  5323.                     }, Sidebar.prototype = Object.create(Container.prototype), Sidebar.prototype.constructor = Sidebar, window.Sidebar = new Sidebar
  5324.                 });
  5325.                 var l = {
  5326.                     version: "3.1.5",
  5327.                     build: 300014,
  5328.                     stage: "live",
  5329.                     id: "hex",
  5330.                     niceId: "Hex",
  5331.                     domain: "hex.frvr.com",
  5332.                     facebookAppId: "883249178389083",
  5333.                     facebookPageUrl: "https://www.facebook.com/hexfrvr/",
  5334.                     parseId: "WSbpkS8PrSklteMXGKsUxk3QUYUrGJioM6VTxR84",
  5335.                     parseKey: "z9qCUrq7mVJXOBz8v2j7yMxTVRwRTJYrqVn0rT8U",
  5336.                     iosAppId: "1036010745",
  5337.                     twitterDescription: "Hex FRVR is an easy to understand yet fun to master puzzle game. The unique hexagon puzzle board is a fun challenge for even the advanced puzzle addict.",
  5338.                     adMobInterstitialIdiOS: "ca-app-pub-6389174903462367/4068307733",
  5339.                     adMobBannerIdiOS: "ca-app-pub-6389174903462367/5545040939",
  5340.                     adMobInterstitialIdAndroid: "ca-app-pub-6389174903462367/8498507333",
  5341.                     adMobBannerIdAndroid: "ca-app-pub-6389174903462367/9975240532",
  5342.                     facebookInterstitialIdiOS: "883249178389083_912538678793466",
  5343.                     facebookInterstitialIdAndroid: "883249178389083_918163058231028",
  5344.                     genre: Host.Localize.Translate("Puzzle Game / Hexagon / Puzzle"),
  5345.                     creditsUrl: "https://frvr.com/credits/hex.html",
  5346.                     shareTitle: Host.Localize.Translate("Hex FRVR"),
  5347.                     shareUrl: "https://hex.frvr.com",
  5348.                     shareText: Host.Localize.Translate("I think you will like Hex FRVR", {}, "Hex FRVR share text"),
  5349.                     shareTitle: Host.Localize.Translate("Hex FRVR", {}, "Hex FRVR full share name"),
  5350.                     shortTitle: Host.Localize.Translate("Hex", {}, "Hex FRVR short share name"),
  5351.                     playTitle: Host.Localize.Translate("Play Hex FRVR"),
  5352.                     tagLine: Host.Localize.Translate("Free Hexagon Puzzle"),
  5353.                     tagLineFree: Host.Localize.Translate("Free Hexagon Puzzle"),
  5354.                     oneliner: Host.Localize.Translate("Hex FRVR is an easy to understand yet fun to master puzzle game."),
  5355.                     buttonShareTitle: Host.Localize.Translate("Share {game_name}!", {}, "Share button text"),
  5356.                     buttonShareDescription: Host.Localize.Translate("Invite your friends?", {}, "Share button description"),
  5357.                     iOSRemoveAdsProductIdentifier: "hexremoveads",
  5358.                     androidRemoveAdsProductIdentifier: "hexremoveads",
  5359.                     gameCenterEnabled: !0,
  5360.                     feedbackURL: "https://frvr.useresponse.com/topics/all/status/all/category/2/sort/new/page/1",
  5361.                     iOSReviewURL: "https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=1036010745&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8",
  5362.                     androidReviewURL: "market://details?id=com.frvr.hex",
  5363.                     androidInstallBannerURL: "i/web/android.png",
  5364.                     androidInstallURL: "market://details?id=com.frvr.hex",
  5365.                     androidInstallURLWeb: "https://play.google.com/store/apps/details?id=com.frvr.hex",
  5366.                     iOSInstallBannerURL: "i/web/ios.png",
  5367.                     iOSInstallURL: "http://itunes.apple.com/app/id1036010745",
  5368.                     gaId: "UA-54081731-1",
  5369.                     chromeAppEnabled: !0,
  5370.                     chromeAppId: "kibjffjfmagcmicpmogpieelngkcfggn",
  5371.                     chromeReviewUrl: "https://chrome.google.com/webstore/detail/hex-frvr/kibjffjfmagcmicpmogpieelngkcfggn/reviews",
  5372.                     chromeInstallUrl: "https://chrome.google.com/webstore/detail/hex-frvr/kibjffjfmagcmicpmogpieelngkcfggn/",
  5373.                     chromeInstallBannerURL: "i/web/chrome.png",
  5374.                     chromeAdUrl: "http://hex.frvr.com/ad/chromeLSM/",
  5375.                     kikImage: "https://cdn.frvr.com/kik/hex.png",
  5376.                     kikIcon: "https://cdn.frvr.com/kik/hex300x300.png",
  5377.                     wildTangentInterstitialIdAndroid: "/4337/Mobile/Interstitial",
  5378.                     twitterTexts: [Host.Localize.Translate("Check out {game_name}, a crazy addictive puzzle game!", {}, ""), Host.Localize.Translate("Check out {game_name}. Who needs sleep anyway?", {}, ""), Host.Localize.Translate("Check out {game_name}. Simply addicting", {}, "")],
  5379.                     twitterHashTags: "Gaming,Hex,FRVR",
  5380.                     twitterRelated: "frvrgames,benjaminsen,puzzle,gaming,hex,hexagon,puzzle",
  5381.                     twitterHTML: '<div style="padding-right:10px"><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://hex.frvr.com" data-text="{{TEXT}}" data-via="FRVRGames" data-hashtags="hex,frvr,gaming" data-related="frvrgames,benjaminsen,puzzle,gaming,hex,frvr" target="_new"></a></div>',
  5382.                     twitterMobileHTML: '<a class="twitter-share-button" href="https://twitter.com/intent/tweet?text={{TEXT}}" data-size="large" data-hashtags="hex,frvr,gaming" data-related="frvrgames,benjaminsen,puzzle,gaming,hex,frvr" data-url="http://hex.frvr.com/alc/">Tweet</a>',
  5383.                     twitterNewMode: !0,
  5384.                     facebookHTML2: '<iframe src="https://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Fhexfrvr%2F&width=120&layout=button_count&action=like&size=small&show_faces=false&share=false&height=21&appId=183790561698885" width="120" height="21" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true"></iframe>',
  5385.                     gplusHTML: '<div class="g-plusone" data-size="medium" data-href="http://hex.frvr.com"></div>',
  5386.                     sinaHTML: '<wb:share-button addition="number" type="button" default_text="{{TEXT}}" url="{{shareUrl}}"></wb:share-button>',
  5387.                     remoteConfigVersion: "v6",
  5388.                     plugins: "modal.js,scrollcontainer.js,sidebar.js"
  5389.                 };
  5390.                 a.stageContainer.setBackgroundColor(2105376), targetWidth = 2048, targetHeight = 1536, a.on("login", function(e) {
  5391.                         console.log("Logged in!", e)
  5392.                     }),
  5393.                     function() {
  5394.                         function e() {
  5395.                             preload.apply(this, a.modulesToPreload.concat([window.onresize, r, function() {
  5396.                                 a.initComplete = !0
  5397.                             }, window.onresize, function() {
  5398.                                 setTimeout(function() {
  5399.                                     htmlclean()
  5400.                                 }, a.is.iOS ? 300 : 1)
  5401.                             }]))(function(e, t) {
  5402.                                 htmlprogress(e, e - t)
  5403.                             })
  5404.                         }
  5405.                         setTimeout(e, 1)
  5406.                     }()
  5407.             }();
Add Comment
Please, Sign In to add comment