Commit ec7fed6a by junxiang wang

更新内容

parent 976f3296
<!DOCTYPE html>
<html>
<head>
<title>玩转丹寨万达小镇</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="x-ua-compatible" content="IE=edge" />
<style>
*{
margin: 0;
padding: 0;
border:none;
}
.page-wrap{
position: absolute;
width: 100%;
height: 100%;
background-image: url("/images/load/hello.png");
background-size: cover;
background-repeat: no-repeat;
background-position: bottom center;
}
.logo{
margin:30px 0 0 20px;
height: 14px;
display: block;
}
.title{
position: absolute;
width: 235px;
bottom: 207px;
left: 50%;
transform: translateX(-50%);
}
.mtitle{
position: absolute;
height: 15px;
bottom: 162px;
left: 50%;
transform: translateX(-50%);
}
.go{
position: absolute;
height: 63px;
bottom: 18px;
left: 50%;
transform: translateX(-50%);
}
</style>
<!-- <script src="/libs/vue/vue.js"></script>-->
</head>
<body id="app">
<div class="page-wrap">
<img class="logo" src="/images/load/logo.png" />
<img class="title" src="/images/load/title.png" />
<img class="mtitle" src="/images/load/mtitle.png" />
<img onclick="toPano()" class="go" src="/images/load/go.png" />
</div>
<script>
function toPano() {
location.href = '/vr.html'
}
</script>
</body>
</html>
......@@ -56,10 +56,12 @@
<img class="logo" src="/images/load/logo.png" />
<img class="title" src="/images/load/title.png" />
<img class="mtitle" src="/images/load/mtitle.png" />
<img class="go" src="/images/load/go.png" />
<img onclick="toPano()" class="go" src="/images/load/go.png" />
</div>
<script>
function toPano() {
location.href = '/tour.html'
}
</script>
</body>
</html>
<krpano>
<!-- the skin -->
<include url="skin/defaultskin.xml" />
<!-- view settings -->
<view hlookat="0" vlookat="0" maxpixelzoom="1.0" fovmax="150" limitview="auto" />
<preview url="vr.tiles/preview.jpg" />
<image prealign="0|0.0|0">
<cube url="vr.tiles/pano_%s.jpg" />
</image>
</krpano>
/*
krpano 1.19-pr10 Bing Maps Plugin (build 2017-05-10)
http://krpano.com/plugins/bingmaps/
*/
"[[KENCPUZRY)&DEK15FGuBFO=Jh3k$AeKlprv^5N/D:hFGLMA^+&=+acDO/[>)H?YWLk?o,(5.q%?Fa&D36IDdWa^6Z]nXt(C)Fc)o7H5ksF>D[Vip&L*s0#7RS)I+v`Oto@B4//o6_ik9vAjsBaHU'F,6J/9:5Jn@e+a1D4sv:[@4bghkk9BQxxw&9KAk'DNMcP?/FoXfM'[`2%]^9Fu20W,X-e>jr8a<6eR*>bDCGqc+Dq+XP>`TNwS/s$Lc't)?JTtIV@Y5'Noj2Y6ZO$xnn</'bs*F:ep[O*Mdk]?voSLfJ0fN5JV=),1od.n&KMmB?<&MKcDH4lNi7g1*v(6Wb_coB9np;'.]dc$txrX6f%8j4.<&M]J64^/Eoc6S%JAD[TnT$=%X,tdwkdCwJ8s=A8ZE#.uXwR1vV*s8gFXQ$L>#-jnK%1P9gb17)jeKs$VI??-PbUT0&Q-+m=TCWL'MbdsKN..s&KdW=7iHTW,#.+in>kCk]sk4CHZKtR-);m?7=.KL*Ai>PvHBC2E+S3h*JKW`ls3$ZPoc^M$u`vED2qwSGhbVi9LfXVjOn7dPQ+(blm>,]/2Sc%1#GwupHXI@'X;OY@e?s`a02LeUA29[.0,hh?vKCI>]pQ6[efI%f>Sa5U_-e]Q7a:@Q&3&=wGo>jM>4$/jmXuK3wYC5OXg@gx.Dup*E7Au:ZMm(HHm[U58swxMo`hT`-VMsF*lnc[tcA-RhQ-(G1gTv67mmCJsqk.m4.%B[H'0%T$6.L=RmV].m^nn6Li?iZeVBL03*boCj&)C/w2xB6IJkP.nb'x*ha@v<s>]?-Sk@`WT3@uwVO)hR8/#rkn_#IG?Ui&^9M&Qg;j.R#P&wYXwK2pGPr3P&8uAW8S0.TM`CJ0%EM3o/cgZ%lF:pS.7>&EuF+_hdNC3i[&NQojM8QjUrF,S0<RW?8[3Y<oT8(FX)^AHLQog2$H7,B*dVT/Cj.xUbhWNI)[#*egY+p=*cGR83F<L%N.Df#<q6s:%Jf-s#vnmpilfn@bI+[=/e>n0Vq(`xnR8*g2R10S,MHJ2N9Dgq/ca]WKaH81Uu770rpMJ+pi6B(Dn$<33D[D@hnrb'iXq0eNwo-f.[46#cgIDOJ>'N&c<Ndw@AFUGh2fL15f)0M)B,M;cU]4S&%:9/$rJ0=ak:$sj_&(0Mf>.b)1se;s$8U8Z^2vE-P>-E*<C_M:+as[-f;,+DXF???Mb%s'ES>JoOo5(0,FK7*x8[GEs5euW33PKb1K%ojF>4>W3XohYhXA0Zvdp*<xO1Irh4'e*I$e6TdXIjis_Of+-*=wM9[0`nv[SZGH@[3T:d[M3c[&EC71NSwt;B^#d(JNCT[tiYTKbU@(]vSK>b5>4P^<E43l+a]rn'A4.m@pAoTO+)_]RZX]VpkAv`iv'*<4w](dC-Hf=;ZrO)j7tNUlUZIFdhl6n%aK&]^cltfPVo'>%iLas*E=CLh$]q9JlLK52>tl/hWxPY:jektJn=&-0LZRAb1ZE>B$/?k:M:`Sl]:<_$HE$?1j48g,S6We7BZmUIDQ2NL3rh.wjlIjY(AdqOE5ma1rmiX-8@UPf`_],tV3Uh2w?)'?rKFO+cUu4>&SI4[>Dsdpd@s8CO^DTY2X5616O&gb&_4sa<7)Fg9:&&HW?`fUnn.HSFTj]s:v$hm(lK*&_*:X'+lo18CQoJ11a8GF)xx%K-G*Y*8-q+?W^`3fa/eE?IG3LavI(QPQZJlTR]G]_K37sBlKOT`k.T4;r[_pMBi<(em:2hC&.P^cfKop_6BUC4uXX=6Lh[mIlpqWv3cul-dBqUIA;(V2ieTp6Mw<l7')489$G93F,b+?kdVoLK#^j,NwsDl++@5)K.Z[WtA]Z]Eavn(T&]8)ow5UigS%wh7Rc]v3>K6ES64Qd5xcqem2/N@5x1C/;)U7?xW@$#C1T?(c5qFYu>>etds6t1Z,X0v0`'ljtI[s(qFjXhDk1XK^hM#>)4YDf=/1rg]EQtUmfF[Ph,nq^V5'O0i6<sqY$3L$1vh/0>#DgIF(lYX%%*BQF657mS30pf#S1W(Z0FD3N)SP0=t][TkC1L)[pIqrT^2`$o$)MZ73pkl;DCRjuEpZSb+`kNFCC#^wt-/HJ$#U2CS%@Fj2-R*)j8ZJS&:W)l-oM_gjv/kNaYj2g#+i_`pM2+jUU7HB&Acak'ht:wHFkgpjxwV*iBhRDCTASp8_HG8DA+=Q)@J:2:,1ZAo_e_YMUj9lPlsIudF?PH,W^eJppQ.)QZH,rE@@anQ4qVuT'QOOt7Up4]?rQa5Y]cqUpA5?mOPRSm.1,jMNL.:mSBL]h94L0Au663m3T97(6^1XQ2Nn)`d694E7=k?G(*u@WM8[6lDA9as6'#[tMC6$l*8Qk0Heu.nArNhM*<<.wbJX5HhC=J.Me<@K<eYiepaQ7B[RF:8AvJs'1/cHs'%Cknl<RSLd#-#'x0F5:D6&e?6dl>;i-c%k1j&<e&.h@.h8)v[u>RXad''8J/c=<Ca@sH-'9fZM6S&6pG><@m=Vi445,lA(kj)P[;/GLHZIP:@$m7j9^*5H&-aVpj(1s(QCI#e+Y$I5g`QoJ[:/^ahZ(kSLsjhK+8'D<l0piZDk#*7@]<hT,w>m0vD:]Lf@$OE@0mFGI/*bYSQUPY'>30G@+WA<Vn22J`vBG;F$4fvLKf@K1wFmB6^[)/<;'XDK4>(])sa2vEYd_Dhq:7fb&M:)0PdcI0eglm?ipN7u$Jf>cVLKUWdiZ%><=2Ir*s90[OdW;t]s?t^/fKe?0a1rV5.,)0%S7g6qe>1anEp2^4_41s'@r)tpi.TX1JZ:nQ@4E$4@Sd:J@4'nOd&d[5XU9kLa4m,.&H%F',4'U:k,.>-,3gT00sAw`'>XXq7H*];oi'7Y'%oB?d0A>j2XB3C:-1H2wT3:[?KSvBk.pm+S@Yo3.SVVkw63Q&PQ:t%m0S%)`CP=sq@D(_(v99X7+32b+oj4MdB$@Bq&bNO=KXJ[#CA80Itsue$MD%NWNn5>`OEl(VNHP0G5Q^MOH,-w(fkum:NN(@Dek1=1gp%x4.uHqCCV)x+lKRor$&O4)=<:pkMD/uMkM,)BCu[HXl@nN@m`l4XrpEw$9CYBl/Y8v?rqNT0-4oTa6:8fRJ>f)N6`p9&L6O4OMdjF-:#SC[348v[>8'D<pLD=Hu9B;mdnnh+lF$#/t3wZ4L%ADu8/orLU1pmx&;wwmsYhGT%MODkFp2NY6KaumO=l4?PT&=uqk(6Ss-ZQR2^rgE](id*++Wa;oi<B(=p5f:6pxB9@Mb`G7O0>D8o#ZCN7ts7L>`e4^]sY$,F'PrN=/_2SM[d';QbM72S3CA#gO3i-adED6>fXwGWj1(`YV;:%d^79C0()a$3e^QO<5ZV0NYje9j[EJ(;j_QfN04c_J5?#(?MNsmxP6s[@3[YP;&NSOXO,I;'A/Xo[%^2p*mAuFFl9fE#W3Ul2VT>064_<HUYJeV]H[F=FfpxH-QS$J3[I=X;AJ<q,Gh/;(^N4dP*+CY3)RIh7uw?q-U^_d);a?YI7%/VX=mOB@UFbu*q7s)OSDL>^H?T966t)9X%d.Kj/oCMv6aos&BcxY=v5iSH,fo9j0RYtJ-x8;pR6$qCi]<;m@1NVEb.C1NE.4Z#tteL$^uf]JA7.AwwpKl*4TD+hPi2;Js?FLt5=jO9(+g(%?;DRKm4_5.r[AMF4e5J4%;nRsa+jFMR`V<#1Dnq?.N$)`DYI>V*;'B&4uT4ZoVtuu4*#7X];(iVFdPYK,gShL7Pt/7FowYx+V_h@nOE)cjEMQo5$Z07/+r<Uc^f_-;'S]k28$k7HK;fJOo5>N]'WARNH@Tx7TW-WUft,^%2EHZLfeJO+$EFD7ro)l.Zebe4C8JUllUTgeS)q3+hCfF$*I8*StO-Nb4?bH_oo4%,-*ZsLk):7?A^Vq1xR2P3DXC@DId]@:<FFZ>_'oSF?'lpmPIn_8mkBx8DUH96di;pNJ'CGrbglQP'ai>/32AVt[qEEc)ulqr]F-+U5eHwP>r3P/p7O@G/q/PWah_HlSNamO.cGpR8G(xL1G3T;2%EmS9D281]R-8LCiJp=PEdmbf2E1RAs;o[M9qFx`NQnuC7KGY5`/qgiF)hsmSkCH$F[uA(Gcv%>/`-kGIuPGvwf_6cwQH8&s+PUMpPkuV$ALOP%W1&bW^*c$*-HQ;^U((U.>mVQ+t4?m+.Et^q4^;-h^6<'eFY+u18WBPl/k=bfkhFJ/fIq2^%jc-5ZZe'9oN/jk7%2P3<;F7pL*3#MkxXggYHRa]s=IQMVd*C_tNL-D-L:Y6tgEC@KcPXxM,2)U$]N%CHGcWYOLE*6h[*Dx$#8(GBdMTKfHl7<>8ehDg>E$0^9w<*-91uRPmT&BtkuL/^&rMsugm27,$@Np?68L]:5kCV7;Q:O$eOu^Ereahi<NPMO4%P8moH()3vv@tqJJ'.$AtPCZoemt10<jc72)sVLX3C/4=4HE5YelNTtjfR#oYDj*vi;?V&6E_PF,Y.c=:c_CMq<]rUuwG8$1on7=P:[CJ(=P?:0lQUvg5/n_=h,e7Zk`g?Z(cJKxN9o5r@?sUVA=uS21Y6*LI15:jFD^9)8RDG4i@PQpMSR9a4([59F;R1#aahXW3?Yd<Aq_9blVlFdZ<2b1'@6/`LOr@C=Lm%Lc?Ime$`[rsorDOY9H(2_e@[&[cMK,*Ziomrb[?fSfbT1=(P53'/`hP#9:m8VTbQYuljv4n*&KgK':]PTQsE1i/Mq3iSMX6=^RF`fCO7w^esTIbOq0I&`$&wcY':Lt@Ba4)n6]qs67;&_wUe%OSJ8sXYh8=H5r<Q*G2b@,]ZDxj1(:0JuM'gGwv=:@--M%l^i+cV%WOI24-]nCI?cW=8t-;XaD]f`p$+jo.P3DZ'kE+AK_Y8u9>@GG9<AC+;wX@7$pX8q1&(kGJ6&<iqenUMOQRMvYPZxn8`+oN;FPU:8^D/=HG?K]bw0GufNlIW`^k408ER>_1t6@Q;A%JHrHj2C-7Vh<<eYgms4;rJJ/3wmU^4T55j$Ci)->-cr1<g7/h[b?6.@*X_Bm;QcVah0qL:?ofHJBWoY./.pk?oExZe3hh8IW^4-T:I0QYs3pq1'SZr9IRY@iBK<I:mT[U%kn6-3c11TGA^x#[p@Z#Z%X*'-jR[sk$bT(mw4rmImIm6rk;lm^1dow/x)evml>?gG>>lAXD;N,g$#aBeDjo?GPtdGtpR3rappDj)?lv+a<CVT<^<])DfHHWtWR8ZPlD5D=>q3]dA'>kB08Dm'RCS]B&ZrDjmh1lgSeKOV.@-B?,%KY5eIv@;BTl@.^JVaQ@UAuPk_)^[QA-TQv+<+VD@@U:DkC649%rfuRj8UGq4>)P/#M?C(uM<W_)KZr6)<K.CWk1Z#kU0T'Z5:]L9A?6RsWjb3jbkUxOhn,'b&#N)DI^&%+xKO)3R3C^*M#04@KF=>qWaC198'2%*gf,2EFsPc(DIH3,QnPGeIEp;]O#0iiu<(1lWt1$JY,mag_5hU$/8lsv>a:meoNA;5)QmJlCd1_1Nng<`Og<*pt/S4tBqdh_nXU_O,;,6j1x/D-,5>Q7D$V`o,JfXtcOGF*xeZOltFs_nhDBukL^1?B0PKCYc#tX/S4ADE9O?8Vw,KpXA5D:R/-R(l,vJ:;A?XDIa^Y'Qwv3$CB'igW,RA:k'DG&S_C9JOJHc&ThmpUsx+)ZnUvB/-V>s,^xAPTgZ2>;OppX8IJUp4NK9knFV?L3XToS@k+#Es^=]?6AL#n7n2S(UZ%0,flDs/dFDS^R`q[($)m>mU$.uSI5>wh`<*E`26x>mUALts*cITF,04XpLEaU1?]/.jv5NE9aTuAJEvaBda(FZ2WuGC)Q^iShQ*YP5vCBj#d$?9s4Fe=$2e]-U1Jv_QUX:E`AWoju1ow]jPL^+n6<b#ZFUF>M)MGTlb6/Z,>EXIgE1Vse3Mw3F6]ZnV[-4fSRm_G]hEbZ$Ei_L-h4qwlO%$cZ0@8Q.lq5n4ibiJ+Z]^%<9+m3:^q>;7<5u7ZP,@G:<QnJ$>^?x]f9<+83R,I[3x0]K;ge1JH/ZfYa?H=N925:@<q4<#n]r]N#;_g_779(W'1awIu@&lP3.l*Let?KHTok$.d%6;2/Ox0`,NUdpY$r#Q`^]Q/=Rhfu636N)'>6GTkKj.qZTX27l]WhJ.ldYm*hI0`+2uKQ=^at[$Mna_eAbJ3jv::loxXUNJflUDtZhn*kp51U)rCS::/3/$+_hp$$q2W-'2kL'u/1[b$;lF9r?uLGg^$0&j@eIb<Db=S&f;/<SE0dhGW1h+<<eFr9Ha;6:0*x<_G%2W__sXCBMWZr>qu<Z*v%IJT+vFTT.$7QwY)SSNMxNY4nG&Ii6kTl6K0F0Of0rRVw,Xb>86No+rMl]R^^[+RM=]C1qf6DT/0J:Ve3OiE5N.MrLHlod.jb[ZT[>TV]V@Q_1[uk_=T=a@v;`Y('s+;vTAh[^A3aRO[fXQXT8*=>prlq(JVu*kfWag7w)1(ICmR8;J1=f.(9]cZX(OFPh3,;A5q$:rGvL(NVFP_qW$bGDh51XH&ESebbH-VjxSenJ^=Kp(LO%DS&=]Y>nfOdf9r-<?kjKu/TN-aTM]D*Berg_PK=^G2(xcaG*CH*$VDpi80BkQt^c&dwN[bj9/O).aTeQI6M$=@f<`lA.NM)mM)A=?8gOGAkc^b799eFsU:pc^F;3(BH.;Q-io:8enNcn,3*D1&v#21l#ar;3JCACr*r)]MwQ]E.XCI0,*=T`#Yq1x-2uSPIPmZ<g=I]x?@wu2$t?gh%B'M[gE2he5hutW'YtcV9qKDKReB+TePUK^<6,J+S3YRtPL<_T^$wk?%hA2lBQJ%3ZF?pxNDP.-F/lNl=M(2<io^Wr62/t,r)RF$(P2:DQk7ulVpI?gV75Evrd<[/$u*#Kiji%vtE(dwipn9?1n,M*CdOZvsmhEXj/*9;]gV8`@Gl=gHePx<hWSw$]Fo[rXm&lqG@%/p=`-xe6h0%]G&'&x/91.YFfD;g8clbv)CN;[TOGUbdPw`S.jol5(5RHSCRsf;sNR^0@rqvfWk>#8M&Xqr#xKEwA$nSWJ=,r1867qZMPG;g+Xt&J8DBC&tC+'w'0%bq4.8cIB`aG,=+4qaAK,^U#i$c$NIDlgD873sG]HaBIC13%i=l]*?xZQd=?gN@COYhwEe9vZW`loRjliWu:Y2%QD)[n]n,dowcDr9n([1$1Co_JK9YMYS>d%_N9?5n']1Jb:W:Tg&Md'Sam<bXqsk*.KZm:QGu2cALSl:11K]pW3lXo<$1f^us-WEZsMU9/r+-hxum_mCk1MP[2^_MAid%<R&,0rSe#t4RAQH=aF9f4DO6Jnr')4V#shA5>28L4bW)R>;QD,eUd`mrQ4hVd))_(PTu3;j%H%apd#Wt3qv-fooDH/.m]H48F8XGj<xQX*Og1n20L^oh'8H9rlJjb4*>6`9B*'Y)W*CjW&:uX8?lJrtOja>1@AjNQZ?lGs9Z8460T__V?Plv%v^u*aEI/o+@?D-Yu]&IParGdSiY-:hgTEV@nC>TMCBo3^(19CskT^9vv:c9CV24D.Z4k0,WpJ.d74c'E@njZm@VJDDX=mehrm/G2+jC:S/GUSIq)6`]Pp5Q-J*^rTe.mvm6`TkR5o5:^RA/[Q:w3C+YvOvNw69PUik[d0fL,mP0C?Dre]=EIxj59OFZoinEj]3x0xWdUSe%(Q%f<tjDX>.9K1GH0w<1%LDm'RDYF#jnkS%3U*ZV49m'A/q@Ls-a`#L60a1TTC+*ix#5d6S.Z;#1=:i2geUng+>BAQqX.HUOK/+G<NkW<fQhb73US8Rw.w+;)jV&Cc-@]k.u4kWjbb$3[&:iZx6?+*(L03lJw45UwFnh&W05g9(>-J)$rMo/xBRD>xP+@>9Df0s*h?Eg$&'b5Bco0K8S<`2`%fFTUh-Npqq.$41Z5ad'B9K(iI2V6SA4pc@>T=aL(rTZd_5a]jhi[RRGK'`FT<`;vI:38J:?9^w]@SE8D0.(>36=O-]5E?qh)F=FF>32UAt3MfjXUP-]P+LuvQEhH2JS3@_/R)j7s3H0wMA:j_YV;ZWX@7USD6U7(J:G<,+Xev9tJjG:m/nqg:A/m_NS=S`%>B='p0cbh%oSmH#7-hDf5;Q6sXR@6Yvl-L'mpmaDu.(iB>d;vG(s6eZ?jH^Y(,Z.S$2g[4?-#Q+Nos<TG1@4RaK*MDF@3a&Yh_Qxb5vv:']Eu-fS:`vqQ65or-??tU0x$km;.Bg<^,3B@g)*9^jDA34aKBeO5p[rYnXxW#KXW`95BkC%Sln^@,LXfXX8)1amEHxL(Q56hsKUK+,Oe,&@3/m@YICvW0Q8qiUWA3kN.VWqjk?t`?esOmS7.nI`1b+`P$Y.W&fv%:1]@,s5X9L>eL`;*Ul:M(KpLmQS&OanS7xdQ0FA=bgv8&9WR+60)lqJH8G1E_>9b?QsMs@i'JaZecUiI-Z9b]:ORnF>v68Ai]N?P`YAEaf%cME<D6(+sT5#4.KJp&R:`,vK(wwQ&tK:EMlV(-eOT^5+)1485WNb=/`>4/?qIAB_1%_hg+DI12'A_dqDLl?T;DkgX0VqA,'&00km_Ur</4)[;k=9<1?5X2CXZWxu.YRgE=1,M&o8?>ccf`0l__U6fAV[JEhr]'oE[pb9HX1Ac&j@9ELT`Gi)<KP(FahmQ4-EgmjrJiU1j7,X&C1?pU.`.o9g5h''k'@J*xWWJpYJ]8bIS^=W:=W#t%>3onnUPGh&c0<0jHn*fCK1O[fJ/f<0o_=_<s]:tCgjBQ.ZBG.6,o0Ykp(S'W;5(UQo?`7o=SLLnSQ^#7Ik7tfD_5&tDSbqo*DVUUJ.hqh:<MrbL;gudbi2^oU_HF>[rX`<D`94xXkSGxK)E'uD.r%,#[]JtCLU%t4UUNa3A*A-Ri:UxZdn6URTv9=Id`j&XiK3ECZ,f7P-?`4g4*56.dpjo4TuQ2+iqU>1(Ed5NwIcUijxD6H)EPoPkp[ZR59BxqAk>m*=*c-/2.SxR+t$moP;1jPZBkj+8s&Xc;O[fV9a@*r4C(r2%V6Iis2``1jq0.v?m;Mqljh&KN6pjj$,4`]ia47q1YN],E8g]CX%TJ6ZZ1mC2CRNNQ/@<chk[[nnE<`*ZmrFAPK0H@SnBVK=KO_Pg]kQb>1*j]J@*`xH-jjBCo3&bhLXJ=YPZB_#5I;LD8rJL5>g9a25jB'JhBOiH3QkGu:1FtoI,=t10h:rwv_cL(t/>wfH?C`+FDJF:+$N23K^Ddjv6ZTo[j$V%Cjw<R+)c@?cP1A7)W]BtS:$OE`r3*t)s4Uwe2ZG.xGkBDp/,q*DA*vKk3UVjl^[s7Z]=Af^Ph;%$n1HdL#wH#Og:O9Ea9T&rTW(O3-72)NuER1q6pr-XGWGXvL5i[kEGmG&^pB_->K;,@)XS$kuN[CYA0e$[JNKv/9NN&&>rA2Ap_5F;5K,A__&PFeF)7-#TU-b0uZC,:*<0FTipOV)4Y>2*Og=fYeO</%,k`+=7dNnW/<x(Yp)kff0Rtd5O'0m)NsS-n'^N0oCVeU.5uCHEI2%jETs(4/jOf,(co_UF:5/jxX+;.JZ&SsvYifV#MU8skO@hHv@;vrDpC6T:EJsR*3NgC=q4+8<pbFjNMa:$_a(DQNI1ps.loV<B@E6H>[,I[[mVY%UUu>OX)LnO1RYv*?YC_;%DSg4Fr[oN_s_(.a7<'?eds8j?XtOoaV(t;#TSn4^]#IH[rBVkY*`pXXsL;KiO0-#-9i]=BC_+IN@(008F.vJIO(cWhIiA#:DK->)0XDfcbwu?HeB>L*dZb-s6M5.,I%axSdO/h9c-r@IFegrNlMtFlFG.D,X55<,;w#O]j],QS:RQie*XtSG:KtNfer)OZW_3BBRPXr5DoMjcS9fe5os)oJc,nqu`_3(H'TF&kdnx_jYHJJ=4n3F&s*n0FOvpM5L3X.Qb+,VT?%^@BiFA>tHNLXY&o7rA:o5't'RmXRYG4xKLqk`,W9c`<g?(OCJP,@NUlZ=PZuP#BalGAj*6WeMPog_;VDoON/QV*`r)Gk20EDwG(,[*8B7LsD$ss[`rj,#b*t_G'QOZ<Vmmu_6B`RvZ4jW=(gNwMG_TL'b%V+GB+HNu(b:'K*`L0F3WMfT*S^9%E5#v5Pojgw@.-=p_6V^`L]<(w'Tk$<18msJe;N'TWsA&xWIXqTu)ReM?HVKVv[]s-.o@r1]5BY[)BppT4gJ6Xx[Dhg6k&pkw/tvW3Gt__N44e5v$wa5NOhb9f#lQd)G3<-D`]LFa42t:F(R3D1eIZacrXUd5T,5M/mgn?fX$,u]t:L>c_@WZ])nA[hNLh=1i16vt6'?EB@cfaOiXc;j;?Dq>.p&5>qq<U[m.-,-3Zk;f>.W,KTr$#R5#ikqdFvrtJs@lHs%J$AG_:uP%A-hFuQb>)E03SQ*,jBNn-0RVruTVfdc[wQKn1>IAIx&)L(5hq)Rf5?,6Z6X%_54<1*pK53LUE,r6n[1a-AO21GTe[qwDs5#bSFN_aoXQZ4Np868mB1+gI[ml<_IG[tFS;ejHh5S4iD+2Zun?C>JXgAn0O-ee`XsivEW@TF>'oObZAf?nI0c]0H[INQF>GQb:^RfZ`as6-^s[Eql,DO[.J)0jw*CO?4=M=@@BqP$rX3':697B#1,5;:us<%:#iU3)3pVv%h??K4/r_*gf;l1EdlW@R1wsLAD2p?K7Bv+'k2]%iq^HIDRGOD515ic-XDW#Ua<90_?>(fgDEW3G9FuLc5$EB8-AYZJc-NnqFkht9C0E8Mh[0`f#vh8)HSrBabcLm+vcY7PY:2UCfrGpH<s^WGnnrgSKe^TD)x?,G?M?H64-Zh2Ir2$vdKe5G7@.EVjo'R3TM3tLn[P%dBPJU[SF=3Nk@L#oww2;gl:`lROpt+&H.Y6o;4^l<HKs0EP;'LWXS7'_]52F5,v=#RI#lZ3EAngIeB(:u%91U3dhvgBPKsU,t;R?/c1qH$=jDA[%D51uc$eBO;sw58;CkcwRdu?0/W9OP/Gb-&xjtm0,C'^ZhP;lJC:R6V;vPPI>%e?>UE);O%[@Ax59(e@i':3e^e</DhNLi2.MrXM'BdpfJepr(5,G1]@>Ft3BqrqU,-oF@,YHgkC@fN'jDkl9V=ID]ebf;Hjb/f;6:&(/WdWrUDwEJWE2^<ieWB(W0a'<%XMu_SR:aT/%]eafVEfN'ig7V.jampE4@CIwW]cS07+C4YBw`++$7%m(/BHF'*Mn-(Lg*A0Xwmcf8F6UAI9`Jv;:RDr<:8NHCUx$*8uaneD(DgwrlGNt+j^:)5>mPdKG%1#(+`C%B?M$9&0?(GdcSW$$biWKEnO&o)?_O#grlWf92Lh(9Y,k9^MfIfCg%,i&H;^#C*xeG9,7W_x^vt)d0Z?=USIjP#D0YD>NG-4CsTV?dE'=.G?9O$V'[es+xAC&gHC(MSvG.UNY?7=tVKhIvNKjS^GigmjIk>ZFgZF+?mWS,2CvCQceE@PPxaM>VhuObVg5^>)n@Atmv6g4E>W)Kdl*rHi*STG?'G[eUubR&*j*UDsJDB_kAH-ctF?moL+qhqG6:AXTB=5%ZqKdkA$xTi*+26g_Hf?a6Mav2fP8EJE[%8g8O-fVY+A=,=XW[6jc8;dW7*=^[JjiM8>^dcUT0&=u^eLk<uu_X)@m4#(%3TF%Y,D'7:*s0b2*e+r2_L-.?OppS2jCxl(vAm=7B[HIfm1B(])Y]n:<';X5:$*W.Yf-)v[OwBAXXRCpjUX?>$%F.4I.b8G/=_Tq*/-W*ZS<Pn2Q+U)c=Cc.]>uAMZe1T77(v#O*l1#NP?/p<pN1R-3S437qOQx*B4@5L%'A'Dx+;C)a&gL3YTi>H/'_C-fS$Y`mBPa#e[0*q3asm5`p6s37J)O0UGLXbj,n.?CNvX?njtQIsUvV_dfm8fd]9:lot2+EB=LCve]YKjmn&DcQ*IEQud84hp5=jGWl8QJ1W3Flssvuv]O-TS*DvwXMUMWFWT,<@+aKx+Z]1keO%7*ehNA2kjN[Au+4D]W$69GjnTqv$Pg_=o;WRcKfaf6dhupW<XiX-G3N3-p5,PB?;(fk/8X)pu8=C0A`tZR+k3P2-IuP<Z+eR0pt/.18ah_OCpB212V`xkGgh?@Ut=aQ186nD:r_w5a.n6k(U''6ns,Kh+OZe:p0=5>/:(Dus8VY><&%vwV=N.vWK^AEw*+%:_%9(>d<j9Gnj-l*(l8BCX]t7UL50hN;,JiUS+AiCG;Ta$)ofgt]f/L.[l*>bg(/Wq7CB+JO:ZWCPr__eH<NZfetVKm0p&+Q3*Jb[^A/NHc%E[YK:AuCZPjmuX%Qn-pMs$1v1KlixjZB4UF3xfCsVrF)2ka[roP^N'X,BV;W<eUiY<eHR:,?DPBYlF_++%Td:L.IRki84H`[X;wV`%p2Z$KYR]:8wd3]6B]o'S7hYcQX@)@kGggcu0nUtlvXtR/m,ren7ou#Ad>A,0D?<B^IS7WbCIASGmpJWmM%MGA0HVKJXHSk221k1xD5a5rmKW&?rL4fthcB?ai)#j5F+$Jn`>mp;Wg2H/I:O@w++vLdi)ENS$K3'juEjoB9t:NjR6mb_]JN2JG(U,11U#lE08#$=9xIo//cAsneNfmtHxdO`7$pHQ#8qp?QqhQh^JH-8T3hJU=OK-L`)PfXN0r@DY-[5C=O@_<5te(/FhtpbbVT7m$%mG-i-5ct+i:hg(lWtQqat?;rMVAvf@[qp>xwdZh&MCNY:Mh6C8v^Y/`?5@Cru#d3NtD0xnZb-N_YE$M9*bp8/CKYPcAi&rr0D`+q;@]1nqm+jbk2$3M)RgLqdS[4a=$=ZkTN(fb[#oGsnfHGs=ZS3;(gXBcACRp9JHSu',2u'pwi*TsWmg]p'cI(ap`Nrqpf9,Jb;E4V+'%kTk'#v0w,PgACDHndGib&3S=N@>pKHhFIaP'L?rT15'3a#p[A/=lS9t`+XKgm0Zo6#u]g@>@[G>HAaa&l4XHRiUTYR*@7p4(SxLX=RG-Q(9n`Scv`p7%eU-,8Z[Z*LGu18Kw*ho1gTmQ>?o$QS,/g/pZ^G+7IUjE@9)On?Q6)E/+ube:VRC@>cc`5iS40^twH$-hwtfv['9?YfghOfo`AD=HgEXSWD,DQmHsWb%-A@3[69;j6VY;4Y8eFcecvtv<_+*$^b,JKO5*7'F[%gJ14UWZtanCCU_Zqjpa]FtJMYVGv3T_ciGfeZH9RLl(<&bL*g7J7X.L2po(eXR*e,(RxTED+[xP#%J%Q;4L,rC;_6[d#^wB5ObUNd5roAu=dpTsLvZl.RkW7X>UBQ?6b(@d-2,8K2+/*i@u)iAT%;#JRWjcn?1x+r<uS_4+urr/3*(JV=&qr(#(+,:YY2]adn.p@m4<&&6n>-2m9rTtZi4R=wP3I3i,'/qC4W(,kfpHFoCCI8bg,2$W:Qi4Wlx$m(G]GCpGK%aKM`^$q.I+:?hi<pL?%#VDb0-GPwiOEC%C7jf9lusbNk=%m`C+(D#GqZi>s0:umb&Gk_0KUdee(o$%4t/KF>=?@$bC:F/s(quoRTTclp$6*r:Ls*3=q:MG7]4@(+YR3LPSSI-*E9[akkddBojZ_/CQ.u7D_B61jBdO$,t1IGKxt&P&a,'(uUkM'A?40aHH<4_mE+Zo/YBJFL6OEl^]rTBY#lsZUcn0d;aAJ@Q4fTMA4&OAa'0)gC%Z,=xLW3*g-M[Q^=FvMLjp*YMH4^qP69]I=PJ1R15n>VZbP8TcT^=+ow0Ev$$kR9@&72x4]=f&Q3'<'-x^b0_pL%nuJ'uB@?>NKC>^@Ba3en:O)pYHvWhh,e?&pr]*e@m0g-<^]F46Px.ax-fbI^Wf3j#G$pb2juCmxDU;=4^b+;vBrQILdAf&KRM_&Qj:82G]jq7A3QLu02]6`u00if]FGU1;1g.iM8bRDUIAb51U>UAcS]+*i+rVNg?;aLlEo@:s.kj-aa]]2`8Y_k'EQM'q`YGl/j-QOOL9xQx?llRNTOUMHS#u3-&Op2%O2Ku=RgFA7P^5kSK_XSUZ)x5b`VljH<IINq-iL)]2w:3;_>SM[]?2n*oaAs6PX)&J8/1LrmFJ`Y.CFB6HVLcdVg6k`5F$0JI(k[F<@/DNt<-NU1E#Nrtm,PxY%9oS*?=hOEC7lNR^i<t3Lk8j?HHX;&$mm>x._igwX^]/XRp%<P*>6BM(:$fO;n-6*Wbi=LF:%bQqS]M`YE>Mlqu8u#HnE>J8F/L](:nmS^,]fDES>>kXh+p4*9a;dGdIcQ*_;lW/NSQE@7)U,sk=1P'k^@2BYA<[_rk,dJ-hg,cw%hwJJS)sGJuw0w+$D%47`vq5:1juRJb*?Spr$+=LghD)60p*<bQob%[ZHaJc6)eZ@<B@0Ef=>'r#b;GQ9u.DN.e_qSCE46rg9bR0J-.^Z1n)k(Jd(>7ev^SR)r$'gNv3*Q5rs^5No3MpQ?WWPjSfZ4lDh.621'mAD9FkV(ne&r(saefAsFm=X5sr6[%T/wE7wh.iu7L9f:vv#FV#H:Ut//*n`5fSt@O+8aMj5AV<Jc2fg;tIdgLW@pVXlc4^J%jXS3b1`2pt>eX=E[6_`e`(V5nN_?3YZM4h'LEaewY)Ub0G#C#7gXUdBV^jqW2+p-`jh(;>u2bw3*+E65'MBk(-?hromut&hCp1$/r@8j9v>l#]dawN,N#M*BYC3$t;iZOMZk@Aw3>.EDiGj]-VGuAsTnZ*xG^Wd7hTelb0%QNY@(UsFtPVCXXjhPDSKKePGfm__#EPWDAAN3Cm_S#l7IlooneEK)DZ*M<Thjmh-ktR'E3N9Q4E#Xh=7>whunqPA(:S51aXD08JZEG*,u`f;;(<0acefrckhiCqJ%l%LU]Scu>GAkfT4XrtcE8PupG[xBF6iN&3i2]V6a1Nt,lYCgYu+c*3*dIIa2@dc,UZgxSpsPeqBYf8O3JC2GU1V2PD_0A46I33AU0>%1F?.p1Ck<>9phgEfb]gL1To274.7g^%qG;(hm+WLHDKvv06-)rqAV9_Z/ql_rjUodJ??G6eY=]9TQRFAjEG6S)Wo%uxbKx=RCumTJdpu_TYr`RB3hv6WJLWcfRV_OCg_pU[7&a?B[tQ3-ZuF7OIA.NTm$KK*rs1/DF)QvJfJOF@W,Hl9?w.8eU%+]preRxBH^>TgDDCcgV4vj'gaF46phm<7<T_otG`dRhZPR@Q#CVAg_B?F)Q5'k1X-.#X)w9j;E*MGx5bL%_n#-c0Urb?Hia$7oc_d*uk(7,w>A+p'/_W]FjX[1K-ux7oZjjOZg]tdq[9pQPtOD]ut3H'?hbhAmacjWcPk/VF3mUO$-..X0a@8su90+Tg?@$A#K4JSZ)IG,epE[4OMGjIFM:pO>heiG5`o+?aCK=uCdi']=MNGvh3e&Q:#^RL^D;#aU'FeCW8?[stFf]5GCSuGwPXttZ@;Exc@gua/(kO-nNc/vu6DDEU0jgA_Bku25lxKQ+<aE7N,>Otg4KVP-H>,$0tu^4CX%k9nrQ3CDWXQ-5l&GjA66TR@A)o8o'WCLXBF0nVfQ8m'^1UST-MXJj[,DwXHFpNpD<2IF=o$^wCd0sErtUs(H8tj$>NHXjZDub&dA%qJp>a9t]349;P.*#Vbr(5nh)DC<I5(EoU4DX(>+R+@QAU75#,-o?0.H9qp&`3A$$1+ApbihmtUH76$itRld8>#=BowekNrqk:aBEMsMJ#kBPo)^m8FU6jWq^6b@'K_4E80H<d]'MHU:lR.c&:VV<aZR3U_*HF;#T$-_ID2pKAdVf3UdQkMv[ja2<@o.te5i)dCiVMUnq<i-S5/f/lb`>m$rTX-5ILwp)>da6s:nm:dOkdpVI3q8#mJ6Zg1cf.?QpiOMLfNNKHYH/2T.AoR$dJjC(N>rtF/nc<dhiE#D-AAp_oX8YOs&)K1+RXaT_H_,KN^?4IKdcK1Kt;bA$+uoGx-Je6(TQ$h*c_j`B1=sH;6uXbFkuxx3d^03nh[U?J$s'+FM&F`J,t=JYQ+j#V_IeLlRu5SKoK08bL8@g.g;IXUcZIN18k-9RPI@?iU^=^H:eBx$Y%i#m*PPwKnrLwOZ^j,+H?8,-B]Ks.l6nR3m3qqT@15VLkqmVvB-H_53,39bVG04lW]]I(6^c*Djhc1^M#r`/2NDq]Mc@Ht3dIntOMXo.@NZx':tZTx<rlqvBe)'IZKIAUf)>xMOH=*I0<892MQ%6>Za=Ce;Q(EW_^e$Q4ueNtYO&qVFs3;aiF_B%_)@g`2c6&mD;%2bqNR=v6,GGf,^DK%E(gOk'`r(Z-'8JPTMsnD7)]stsuZ=2ABOCu6(evEwv((WggHqte&JR,'^r7D3;m^IH7#^IiMKR9Sq(YU'_JW:IN`(1I$YDub<`a+^uZugdT6>Zo;UT'cl@ubI?JV=JNd*j*e(@-%h=<+54vS]xD`WBG[#Q_r/(Wv@=9Y:.+ofd38>vu3`@E)*4rI`DH20JA@x=88BQ6D$V)YFs)['tjEvQ?r>XZ6HX/T1/aV0VWGb'.@Pc$^7eKF=K.7W$Z-wZ2+J9Hl-OMj?VJ'acQed-$Rhg51%bHTVq9)?n,9Y:mPRp-;U%pb5&%VBD):=&hE)K=xG%BR6uJgi*#cbSEZ4O7bH,cX/p3$K_6nr^1Xs2jN42>#FCaps1bH4;<H'2icAgOuS(v*rSW_t`XmklQ`<:`%0*c<e@-0R]:tiR_&_[ilfp'pU@K)UAoToCb1un8MB=C1a'0$p1GgKWB/1op14^TA)VM.0]NPE#ktEhx6@UO)Rir*)oPjmkBruC^OohtxnF%C$;dc-Dhw?T9[gmP'UmxD+1tC;4ur+I?rEYJV2*[K)8,kgN<k*@l=;5CRUk;/>:o)A63-ICGWrU.B>ju>a$.h,GO+6Z6D]Q4?7c309M&W-EgkVHO2=+M#0$(oMBdd/OdZp$mZ`wBA2D/>j@HbS0$8%l(55(]hdRLsLl(w0[=%lKN+(iro<v6?+x_0N9f(7opu@LKYO)9tur&2`WwU,oAmjQ6I;lNJ(hp?eDPMRhV4=J4#Da7EBGM%2.q/D(Heq;`hVn)022]L,lcF?_@tFc^6P?.V6^w5jth(QSRqKgZ@01QQNe1]apF@[8u#bu^kLFIX.dW5aVi#]b2ga+Z'gUJJQfJ&*cXHQWmj$S3K<t=mHVZ=(d]av(<AO,8BvS^O95M@:4mGiiHw.hP7en0F+oh:C-U;M.kpk-``O.&-.&Jsr>P,BQ9M-7#Ad<a#lN2a_OUL.tGR672xp7V>At4U&HikZ:'9%>QlTmIQbG>lmotEW.Y?@vJ;rP0q>%i%@3@?*5N(2R$>45peFtA;_8nINP,0NjHLl[RQT']$iUHk^*CDl#u&LObN`3cw?'t30;x@uaZ<C5V>4r7H'h#uNe$@dS5EC3K=N[-]Dc2J7fZ-uZ>HGAY_R*FgP-1A`QjL/bsVLnw0cZvr%1HUg(tZ'+(Vu@YqWKg)V@I25mhRWABPqu@aPuO_)M'4=:84.448R(G]]HtvpqsZtj=2JW'IsIR7@oDBi%8H2LaNfo.6?5S3IDTM_XxDi6UfS?i1.7(r@dQgEx_w@Io.7A'TsBS.&bOJ8cw>F`Lc.Y-@pY9$Z3bJt?.C@glP`hTX,o^N,hgY%nA=YjaenK#HQH`?0X5.^f8#3tSJhLI]]s-=]h^gbo5L]WiRc2Jta8/rwJf)F'5bkDj;F1TJbQ@%)Qi:p?ksbHbft,B`fN9XS-bAG0Bf=iS`tDa]JAfZeOwKfI1E8iB?XoI&3-*V<g`&VQB9<W_gWcM)+wlg4P6@$D<o5ETeT82w$3F:dC;l:8v*Wi@CW]%w&`3o*)P:_mK?MFo>$:(VqVs@a>Ix(hdX--MV9%)<gGC:-MSN]+;Dnf*wj-UxBaWQknRZMpmH9J%R_##AM1dhTdTSXVXiTUdS;)60(GB/>kX,.X;:'XgvCUrUCMCWxVg2Tk6-Lp/XuC$R>Y'0Rlw^7,I[EW@feW,Zq@e$_2C@D9s5T=Ni%;[^2,M2rkbP:qPwNl1r(v66&uR<St@sF4_/-KcBG'S9[EFi1(Qq)S89M&Uo9RevxF@LkuQXGY'#*WrYMQ,;RL6=G9:dP>`Gnb300bi2Rq7B4[TC1ZltKO@>RnT7xWT[PT(l[c,h^d-1rTjQQ637b2h9ul0U==SON$YL:;-IpsX7iEJWmqZWQAIq_*i*l]uve1wC[ah<g1_PUw=9T>0o*%*V]iTCG%Q`f&n0JaVr?uS:t``vfU6=v:tfsvQK=1?ZIi`K=I.RelA;7[R.tCjg)??0KIA8Xs:(;wm>1n]7K)]xC.YLfjv>l/Qp8Z'D3Elg3%t<#aRFGZ66R;M8QLJhoDRZ0[E:EPXnCtU+kelhoiQ&1E)gL_%6Na)/g-+]w.XAtx:)Gp,rZ=7`,:1GL[e?S'<J&j`qeEGETdxeBN0_Hokd9hj9Yj>Y^1n]'q-Y9m-XMSaBfJk7w=jXh.h1VgCFZC`9b$&=[HCspPG/Ne+3dabnI/+rblD$mjecNm*3W9dDI>9a;X`s][gmUn,qZbm3;DYc.04I<qs[%_56plV^%)LVGA7edF[BugRel#=kv3A;EG0WCV^m^<3PCII.%8%`QkPES.d<KbF<vLW09Gh'@Rn1Uec:T4b&_b=t.5BrZr)bIFtH[^r7]PE.P+Sn.,*ok&AnKWBEf%@6I<X8+NLsg?/h]m1k<dA_O@fNsjnp4CJ?C8Vbn)ShD&C8ad7CMI5eX@+WoR;b=xslT;6E-1o-gA.7j.L+P8un]-TG=47rfAMbUcwC`<DQ]4'GoKPaQcZTX%LM]g9rVZrnSP;@hYT%,'^;LRub5b%OjJs'>5@I+[W1a$lu7ZJ,gV&^4txdTwSv<`XmT^.[[/jK4LnB6l.>qkfDG%:mdwLHrX@nxKhejfJaaB%f=JpX'MWAFMb.]eBXv9uZlx&g0K#I0vj.T05Y-=i;FS>pW-Oj0>f75H;<HB%kb%3C*V?O2LVagBEp<MGg.tgRPN4][qubO,PnEDTJ3iH-iIB=Fn#4m)A.hS:VhPO5B868?J$0MCH<xCBM<eCcnPLm2hkikA^J78b8r#^9,f^T08fMSBmxl7l31R=Jd3i[6(oe,PkWbkRS>gTI5M)GUeNW#jj*?J4#,:3X>jK%S3Tr,A=mdRf@lLXu6$VKDtSb[1B.4nIbw+)>I4$>TV>Wno^REhKeq<m+Yhl)G,8W#<gR[D0Aq%Z-udFuS81/:I<N5o%bTbq^Q<4`CROD*,eXl8RsI#q4`=f>1JPJADIPdINvTfMS=MJK5cA43)T?gPU5)`WXrMICuK`#6Z%?0tP=[I#s$6)lR5Q;q/.U.?>=s?kGdlrIT]L&^=ZR*p$@$XiX_RX`EXtaO2`XUXTZ^>9upeiGI:4,YthK&5A$-w5aB>eSt>XH@-4:XXm=j8oqRjjjk[Qi/^L+rELZ.f4&.p)>.3d?7a;^tA?:pNhU8O#tL1cq3;wiQ#hpNCE$E]&BOWY/a`xDNZVB.>_jOneqkbi)4Ugw6>c`JKH@b):t^kC]+bKfGIalTuXE3AJS<<(p&4#CTA'lg5P^AMvsVhCq2'q*`7nT]RdA)Ram;Jnf'8M>J_OKU.$sZgu29]I*fjG^^Ex9qjF_9os^6^M$3D=UmJ-xTmbVcXA?@$O,kmQ)DsA+2ec.AtDsDS,?ArK?o'.ZtcK&'u1UX7,VJ19-9WrW5>R#xV1=nuCCrX;WG]jfuDDv#Wt%NXC30x^-Iu--u@#,n1c3OAb$[A]rLW`CKYUY%WD&P9=k/Um9&g6;NXix@HIKCc5eD)GoCKPC3NrvR9db:@/);O+/x?iOV[-lSF(,,;`@tbfBwuh[C?$0t2J:lFuCZ,3A]p%;F3KLPn5ph,cPP$Fe@l01X.$iX3,#Lr[^$shrq7uVYOfq`4:.7h&V0fw)Y>eVrPOU<M-TSC+I0wi8#q,w#md=E$9E,pP(doUDdpfIC(jk4gwH>4^vrlqCZ)9T<(U=W8>jD>lv0^x7IIk<:Dgb?xFSw1[eD1]u`NL)::)#)%+?U3Y9U@%F9@M99,[W><J>X3sZuFe)kR#t_g-$N'=PXaO>(.A#,7s0chUJ7qKrLC#j12b(S++e`*>&%fLoJLE<^@eSZD[;nMNk30n22-uC8DIVsuVJoQE*V5PY9]^]N.N6lc:]qYX+Qb/EHhD,JurmQn,Tk%ji+MAH9n=H0:u4jE8-_wMVV@^1QlEW*WPAxbUE;Y)Uws;Wmo,YYxdhuk=NErToT0Xp6`37W>:Y)hKDR:cJ0`7550a:^JSe>r^Z,=7F_jXqM<$*fZR8u(_9L&9E_m5]@udJ#A@&A,_o^bt3ecbo7`>+[O;%=V$UbG;BaCYn9v+rWuMo(YbsfKXLpjB:BYAaVAiEFGKlS-gra=02WH*qc?x$$n*lulAaDWt+^AOl[aV#>cTVn7uCqswCKbr,ME6>[/L^Z/7d9Ud,Xo%Nf`aE_6t[^p9&jtCj,0Og]$fdhE<-,S_,k2I3HaM(ohVNv3_u`q8rvX+1K'q:$]Jv8T+KIv-B085SjN(paEm+kF/EAm1#`G)V6Tc,UbbQ*IuMr%;_jcc$U;ZLFVH#?ZTJ7C=X3<cYhuE=L&pUi@%<P,n]5Mit6Y=9=c2OZTu:mOG,]M3REwUT@*EGhl/+bRK,h-`*<'EPqdu_]hfc2JInV0lawiP5]Kci:A22fDoSqaLDGdU3p0f>R#N+xh`(h#7XX4q>j9<wQpr/kA^UgOAX<f8rTS<#-U(>Qa-AXx*HE88YkRQRLZ'EBZ%_>A;LWlvHZ$&RX+Vp,rTeAJgOI'[Kgi>n3h>k]qs@V7^H7o6:RaojV<JpGs4PPVo^#PbYje;VT]]TQn7c>m:)eJOJqv(,;;ZbM0Ot*GL7r^dv;?sdr]A`-Ijtol<JRH8I]5u#:O.<]#lR?x>'B`fXEi8dM?2pefWsgAds[5#L,$#BviQEojRtrZ5H0R@4^o@_ks7G4@sjh<8;(^OOA0Tjgi;p;q6pbf%;@-@q;]&(]di+<w@W[P=)*E[W=-LDX`JSxn60X`XA1#Er=R1nwNY=W/o6YE//m1[sR6aDF7VvM4pS=4soh>s=/P6C(6EY(=AGkdlFXd<][A&#8nQ7pO?IBSgv8w.Jra4[FUs],ZS]cTdYRQPlVRvqE%->B_$JSvZZ&eJf`6n$n4k<pSC+wZ%H=kq,=$/,.X(j*n2e1^?X`DV3j@ZWSM%Hd_CrKND<6'kHQZ3/>LFWOk?a)J5.xJs0&F]26(Lk@h&>a_WsTfp^RjSPYT#LYmD:fC)l8amt*B2jO?gkfcOHAa6L'-Z^7%$]$Fl5h8ImxJ),'KnQuH=98u7:bGCSF8rT*JMPGW4mZoh&>;p8J+h(xP6K=JL#F;,UiZ')U5p743.a.eMK/^OT_<Ub,TMdh15fu_#H/ZVia[,ogiEf7<I5U)?4JGYj-8)$b,`f`lS/8B(BG5Y_2E=&uDm1cA0T=a9a'_&>-7Nh]oZoH6;Y&eK%:n(1(/65`M,6232.>iD+p$Om&'*QQWXrbTUMfj(hYJrh''BZoSK7.MHnU%9nX^^Ga3SXo)A06VcC:`Og7_q.dK:WiNwlf?Se6Nnf>G]:u_e0joP+H.DVMUoUn+L+DOe@;,6=,A:Z=tbU8m-)S-nu)oPGxT,o5hnnHT1#TP%R29:pFVO$:%@Cn3@?`)(h(5a7'V/%-k,94[GhoLaC]nE@P(eBAux$4/fE/+6I4f`6DKp:raSQB$NTuiQXX^]_BnSJpU>kZ)B['s#vWt=f2^.]_wJ3UC8gnLXD7q=J9dqUX`Sv?7'1AC$@_Fe(v%1`NHf3EP(Muu%,K-V%O_XrV=(RCI<E0F2Pw'2_r@`Q8xW7i?U#dsB-4bT$]IT@6o0WKrV[p,3.ZkFQ<Fo2K=$2=9qND*7#K/VY]vmK)S^,?TX/_euZbkoMJ(mqqK<REWOg$HmRiSHN/GNJYP&Z=WmvUrRE+9`*U57'(nKhFRMPwrkAca_5-;`E]W&B@$^EIT+YtPx=+M8P<f1ix_Ekk[2WYd&6iYBg9S&YiL]9vLtok>`X0/iS>wea_/K>d&ODHYkr&+L,Q(c>Z:Q2*ZtBE4tGYP6o^;wF=)w.@Y0AGkY8D$daBbowaIQ%Qh/'u$)=m^)_eRSjO9J18w/4i#CH,e^1RgI4c%'l7Wjh[B=Vxf#^U_O;`X]aeU)cG+-htC-NtV:XNZ?P'u'Zr)]Cd?i],?HHB>1]$,dKI<'>CE]-f((1UF*Vx>]<X>?<raPs=kj*#I3tTx6wR]lEe]b>j4g$fCV*0`'UsxR^B#_%d#7)RG_j0>CwXR;bNJJb>M7GGd5xVw)c8SAX:;IONGk%^n+Y/Mqi`HpqH#GX>=L)Q@@.Jf>I;J<]w2to%SRJND0.?K,PN$p5wR5q8'J'HgDIEbha:96$&?`8ibB.3Vlh^,<&fB-BVHUj+5[ht+23l9v8f9X<,beZPFkDmsD[R:HPps0`,`V(D@?koPW=u0D*u(h6^V[*Fc*1-_7=OAY_I<g=o9Z(QtRPGWBHZZ8f_$K2G_(@0bbfnL#mH*>5>#j'k6x]M#37Z+*<?]'8OgUeG;F_4['>6+gb9[J(IRC,v;.2Dm'8DRG9_hV6iwFOK,24@VZn*IcLJ*B03^JUi_[N'=x-&dKFSQ_./`FW_H7u$U5rq%u/NpnBkh=,aFteT[#B-MUM(&G-J+rkg&QgcJ/%BYfw(W$E=f6oL1gU4<aM%:;n%TQ(moN[+'x@5e`_OjL)ww]JDYf:(%<%4eXR.>0veJLnv;0o[M6i@p3w,jKD*oq8J_v=(<HYWmQH1u#Hk$pQpIip+M0E:`s/7st$^-#Vu>sl'JoHHGQ*Vkh1,c#q<fIQ<gDa(#fDS(LNS0#.Z)uWb,ei@gk=Glk#R68?&9AG98&'kAWiS<`8dJ[*/8F>D(`oQUA&KYJJk.5G[^8h*I-,N_II,B0=O:XO#P7^mQH;7WwVx4Dc;^VDf%9c.)&6]R@3wYU3,8iYiHpb:IxXK:A6%'bX+6GOCeoo%LmR]g+k4o[;>MUA9d^5@/wi;6FIN4+pVul3`[C=Sd$X&ETYv)%%$C%55Il/4XYgn[-pOGZlS<:U:bEo0:1o_-SNJ7j@3A2(+=ISDidn%r`4&/OEf<S(?]c`kuv@PW*5N`)E#R?Wa'oa;qe.gPxB'Hq##$]]";
<krpano>
<!--
fps (frames per second) xml plugin
- this plugin shows the current average rendering frame-rate
- krpano 1.18
-->
<action name="fps_install" autorun="preinit">
delayedcall(1.0,
addlayer(fps_display);
set(layer[fps_display].keep, true);
set(layer[fps_display].align, 'lefttop');
if(device.mobile AND stagescale LT 1.0,
<!-- a larger font for mobiles -->
set(layer[fps_display].css, 'font-size:24px; color:#FFFFFF;');
,
<!-- and a smaller font for desktop and tablets -->
set(layer[fps_display].css, 'font-size:12px; color:#FFFFFF;');
);
set(layer[fps_display].textshadow, 0.01);
set(layer[fps_display].background, false);
set(layer[fps_display].parent, STAGE);
set(layer[fps_display].enabled, false);
set(layer[fps_display].url, '%SWFPATH%/plugins/textfield.swf');
fps_update();
);
</action>
<action name="fps_update">
copy(tmp, display.currentfps);
roundval(tmp);
txtadd(layer[fps_display].html, 'FPS: ', get(tmp));
delayedcall(0.5, fps_update());
</action>
</krpano>
/*
krpano 1.19-pr10 Google Maps Plugin (build 2017-05-10)
http://krpano.com/plugins/googlemaps/
*/
"[[KENCPUZRTHC187'<cf^G2B5a/]Qp:+8<Hi&X(R9H<sF=aa:X#(q?U't?FAgV1K#f8:^:R#uWb'NK*;Hu0I'1mvbS%>OsmW(EMU&)m?8YVBF,@%,Y)lPZ0:HGT37^^PdN>cU8MohM6U-6B7F(l^5Iu]Yvl*PJmU^6XAB^,lMU1%7fM,jNh*A7=fMZ35[kXmQ[mo*hZPU,:^<P0D@,n5M+2b^10aNid/wBjbp@%Jk(eIsnb+g7_3U5@0DTsBSDZR$QvcMp>ep5W^_;H>:>u.aE[e&wl.UEZ>B<d(ml)mb]^9rTrOwV7?tchFiApc33$cJwtb)=XShR*Un.EmKiHoO'i)_cN;dETKn63ESZD1Zcp=tPbkuTZ*.=P75Xn_=#jb8P]HmnRRXs?MrZ2a]eHxUoMSH(LsTJ2KrA[8Ft>jw-6GfQ)*v27bCP<B.X:'A[DFS=i=kn[<:G)H=.TuopmartK5*$>S3Ua`eX]/$RIa$i4N;t_>`1r<B$%`$(&(LUO`7?pdXYr<VEONiX?HsMSZWXV,6g,wPAZ$2Q,=Uv=I,u=>fs#c&#]h7e_>dX1TtO.k.Zsc9-k#hOpaGN`-Qlv/d1(V>XQdH0#I?:dX%*CEv>1D>53qlGaJV.V$&3Ml914(Q=g,nqL`cLM#'/R,5%C@g-GDN0vh5/j-rAo(Vm%7b-8'0dh:5j0k^6sL/XHM4YCGNsg/,&,/$3rZ1K>V]k_Xcrk@h/#Rpe]dg#c*.6v^P,9ru?2>cWaq%V%;&=>eZ'Iaj&&1AHWC[F96N[c+7Nsa2;s$.+5K;t0FW7Yj8-Ka-8;>rps_.u-*eJMYXOVfw=.8=Ah85Y:$6;e6^U:e?2nZB<WHD/2c#KY&K68=Qwawg_4U=*f'I@NAEMlJ;23iX&U[QYN[R++=f:_kWNRPO`LcDvml-xjT3/7c*Q,=hxVfk2G=`:t5kntAWBWXJ)1dm35;HM'6s#GI()gwY&^j;E^X4pY$A<Ixf7Rfn=Kgc+D`,3^;BXk-^e:)jd%R(-KpT/Ye>L_2Fg%x6D['=_[b/wF^'n+C._9/mE/IFdt#`nh4SHGvtVnPP#x5W>1l*da7H5<GibPbe?<(?BwT[$,:8Zhs?MXMvn%FNFZV>jKw,ak;B'$q7e+$`^k(Ki*:Q)?6o>6+UMH7bf=/co6^=6KDp-nSj;;tB;k.4RH#6R7jhIIK*L_TKH&C6Ib,#HKjlqGsCm;JZR>cSG%UC+vHiS1AD]&3C$J;gp9bJd=ls7Z['/_v75X=ml'n^jsOx(i`av&B5C$)U?2N`PuZr/Pg>grMhuaU0C+4_+]ghCLFnxjkxw?r3lK@f]5U(xZZ,kRYw`$$QM^0*sQkF_afc%uon[S.;X.?;Y`p3[^a-kc`.uIS?Kc+7f<-^Xq6m+k&0NbO[B>UcHro+2R.0dB3WUW-8ZBL(AlOk*60Rf)8wQWA1__UhW$5P3b$W<Rn;f/X_aN*oZn[t]@d;r-=-=@nZaneT/q8>+t]r3'j0*I0akax<;40$2iSfF,S$tPQ<8D4AQ$V4BLUJF:jvc=W^mfFMdf^CvtU1@$buB,5+.j^R8SLK)*wKNQ/)nI,hw3%C&4V;Wm)JQkO&8f<o()BqMHBuOk[:N#frxRu5i'-LTxx[@tcuckJ4$;7E=cULCxoX0U=*6(t()KN-%XLFnGHUU<.S6xDsx'Wq;,W4]jE^ndW,Y*>OqG#dfGx@qOV]5HgC2Q0)/CYH2C9V7)@XXB2t*sD`Q]tU'%726DIupi^e<WjPW27e_l`><]36g$=O^6PwhQ<cO(tc><^YU#?U*4M'iNT>1q3[?6Y>@B1F@wZ@]p;GOjs%WCM@VNt)fGRpRL,,Hk's4e#m-;grSxDa`'HpuIC>,,Z]A[L=<BQe&uaC*^Q63Vc&62hO4IHep>E_UW[%4Vq@l'ko?h0/Tm>Dw+Z.N.A/k<x604I9^0w5d^J2NJv[/TO*2QuL/_[QRR3+6BbWi_e#tp>O^^w%4UZpYb?-sH7OWHCfJJw&N?i%b.nRoE^l9&:rjS)Th48:@.sf2uRGGKda)TV+$C/9i$wo$f?,OZW8)v$j`qYi^*D,O6QX1Qr@Zu+6DR89qgDh3$.p#x_9v9cb8ehggSkbmV07N=aETa@WuY8i/fE6.K1IjNt@Z.Y>(EkXuC4f_E*l'QlH7NVZ<*;_2Rh[/QL(';c(fmlaKGY;#f[1>9IdENgnj7j<<h%%ndHL77GN0%#%w<7ZEQttWBu6OX<P[#s(iZ(@&jH[Vx@6cnU9SA+;,t%suWvQ)l<']u#qOBJP$cZOp_<7f@*7EEm1s/F.hE-O6_eBYjqsJWRo[/(tL5/m2aHA7eoBkoRo]RhE+:d(Ovo4oJpC._1Lw7B+<]d363mUX.B*xITVfp19)xk1l)v;)`a?QbF&$N4KDW6`0gWcCM$a[77%m+s:v[pF7kc*.I.Ngn%&pVUTOa4$nlr;iVtb_:Pq70N:c(hj=b'^rbwkrTZ:T#R[h9=1T*dNGJ,kwCdY(E<dwSR9kq)r;iBi;PQqL05#YJSYZ:mf1Qeu*#M6Z<C5d,qCwO4mv,1]Qt_AQ%hmHC&mIJDxCo2@:5A02&k/a7;+aB3-=I[_ftrIM6`H/@pldvbDld_C1ngWI1RZ([h'X'X+Tx<K`L@YXk?tPrG-6nZ.I*I%cJM6vd.>75@%;pio-l$Hv.T%v4u&#oXfmEF[J.u[+4:_+aVgax4_P`sI:<p%+%uO67>f*OJKKHYUcqbNr.XfxFnCnNDoIx>ADZ)Ii#dBS[S%1[be@;hidckBd$o(FZ'hoTh,^<>6bPO*;d'g7[2LUx:+%/,>-WCPY)-(A[^JaT7`&D&i]Tp`nE#TZOQEG(P6_ke=QQWE,Z?m@iD>uF+RFdJ6duPZGaf5tt[S'2uu0^kSg48R&em1fJ#T&=o)Cghb&gikJ*I7,Cd.YQfpuq[]j'*`mJ+:L8pB/Wh./[4l29&^&9=$2Dtt`2%1w`3wl@=4OK1(B,LLG485_`$)E^ftaRH7KGhKBIa9xeRk/(=_ne_]W<R#htHhQ*Si@,+$ibjN$=<'rnm7;dU-ZgTm4UHs)_FPwhIq'5qJq[<+r47NqQ7q4a%l9:JX,Wjjhl0nG(0<>oq`lxs$)bbro9,f&0NpBM`N8?@aZ'WJj&Wf_)-3X,e0nw34;)6@i9)j,Mk:n*wH+:T7;)1DBON:+,[h8Jg0*]S,8D5QiB=vw_,JpBQZFTPTqigiH(<R55Y%>S3#<3hP)lm,mV701v&vL3M2]5DH`l7Fxu@Mmk_fXEU*0gWQQ>Rhb.9&D#Y,`RwblS3NLKaVFtG$p1tOBU.ZejS#.+HxT<ke<bOFqTmugaC:<pOe99`;M3Z7R@[5*t6?Zx4l7JgJG0HXVNc&)rQ8N_GnK*wIY@b$SvDfu`Gt+hAjUV#ES&GV<NQn(Z%4ZISe-=%=Tg*$J;r&nd+tM(,xJnfOfLYuYSV8&j.I9e>;c2@u/3fiv+D$DK<^'R4F=Dki>))+3&x9>aZ8I>i3e'l[N/AJs')8x,;R?/pcS@xX[wPd5;Hji5Q1G#MP.i$.(&Ei5?ZDOQ-_T^,RBfx?XTEHTLrD1w5JX/V.O>3a#_2BmnMC'R;I`7MTSN$?<H(i>wq978vU0TDW=t('T@[Am<-P/x]a:.[tEaMb[N6SfWZ%2#(ddqBVV3i4XB8)v^#bOLa;;Q`oJ&o-f`nN8J=O,:pc_')a%s&9A)pL^ijlx/H9D2v6s#I-H2'FgwNh1UHsM_`i7jO[g_v8ZvuL=t`7<dY+hA]//F=G<c<q%mgk),DiuYebrqiO&GV&[>k-5XoX(Vufs0H['YYqH.%rCmr1#5>449Hep/+VqLxbq04LC4:ZdxX<$@u]>NV7T3g;F82cdNM'358qYQ)Alt:'XcMvn.JEBCpM6M<hLPZ0)*3D_P4.h#p4@u'AJwv?40,`nv>(a7'QOsK.--@p34&h3?OF=Y9/B8?O7sN<j:'''v]:Rp68eEm&cE0?+nZN1l%)WTN7dYJ]S=JEnropH?Ta5>nbIlGW>5+%_G+<rq+$v4?+.6x.E(K[s-Sg;6Vemwl5M^qe9L:A2sgL.6-XYroh,#Wqg;[$OfJH^QSEQc4>X_;Qe'ct#qhcELlxaFZWR&7`XD%J+Zr@`pdc4VS*1Y3080R_kH#irT^&5Vg2CPeORMB?-cs3b`J.Ncj?I'p+E,P6Wuo%SS5j]lRV-bcQ&U]Pt9)L23P/-l6ii)W'W]YLqp0@)UNfFEx>41qnp,Y7^]Uj3mo]V.H'pDQu/g:`Q%:)]m`$i^#5nig8eAs8Ia`*$)')P0xFEp4LtuX<F1*&vkir1fsf.5;eHnL9F//-LT'NhCm5<geq*%NYrn&ULqRO:Heovi'Bs&r+h_r7bRU.gi5feFb,fM#S>7?>nbiv8SquT7f1`42U5lF44+LB)('U[t<`;vdO/trq4'IA]?5j?`(hd5`khLU`ge[;f#H-=ioE*L8,;%)ZANEciP98bo9Us&dFtrZfD9[-cGWV^cthceltW2k1)]amb1Y_`f4C,VD^t)M9KDg(E`P%&Up,Y?&RI210>RLxrwgS5R/w%a;;DHdJ9/.mS%2s:06sM?[`>p'3OoV%B`,jks[gu3v#sa12kD`i<_b@MRF1p1K=a8]5&JMGn*@+Bq_JfYG--H_ts9t[FP&`.P&lQfI_usA8mKq^+SvrN4sX9Y_%j5u)kX:?D+&A2jx-q.A3h)GL/+o/<UOCBjf%]p%;$,qZ2KENAqA+BJ-CR<fe$[+qdBJ%#bG(_W*9#jX:*0G4`r]Qwd?W5ZDO>:Z)b4lBOaFcZ?r=unV=u^^Ou_sjEZJ(q0idPcpZjdNB2=:v]d1I;c'+@0[<<h->(WYP'Z%YA)rSr5pq<O0JW[d_E2^3I?6P'&q>2b+(7OBd$o=%gTK>UfR[1dq[fZ.[]JPZVNSauV;r9W6rU>2ADi>nsn-)@v>`X$E6'M+)n4HwJt1V#QpPKT*-;sEiK3q5v]1JeU-J.$TOe8'EP:;p2U_us^&A*>bAf,fl9Q7ck>tbTl4KKtxlSN+]]bjE9LnS?^j7QCo]-8%@AHs)**1eC5tZdx^G[F8Lg<E'lE^WD1pubBg]Ar]BeR+5?R5i@P,_-kqFCEP%M^E$)/B;eAc#V/^@3k1w82W%mHG>Ko,VV,lF-F8_4cXE12NBbQ[Nl[?P3)ad>m4;*B?abm&8jr+6]R<aT+)_i<dD[n-PkC>?pB*8_?0Qd7YNUC[]NfA;i%Yd1VgC``tHKCUCME/#:<Lt`Log1ngk4;VF3;.&`$)$&lt%)5#dd_K,Oged4TGbmPO%#bFYWu705e_Rq)kM1s20*bLlD[Ku&;3EB?PEjRXNi9kSXqS157:mT`ddab+nX6xR$(2>>X(9%[gl*j140R:4lcBhtO3eI;#QrfO#ehbnWW&M78AJ(W0]j7sLV$tbsVoGf<JBheBE-QpCxC4uvQIcEw<7leB(XIgLFh4[rcML*fm*xuS/$@SN%;xVt[)WcMO0jJ3mGi4+-T,I5G(iX`.)JNiterjtkP>0Q;fB68*=9Z@AIEHipfukI]u_dn[p2X9KClXFG@-??Wa@n]Y@JdPlk5$fb2Hn4`0t*O?'?$eEdV$l5>jhcHG<CF]x,iYraV^fA2otX2n*6sA2=B>d^S,QARsAKrqR[3E]bCvvK,MZ9*;`@$h=kpuReq%`2uF$F).#W%23%kt7/>VV,l.ge2AKTR$X;EpP9IIa^VZ,t4W_Vio1LUdK=SQWf(',Uj+sbD]=Z*ML7n^]e;Ld%rs_@^FW'^.BsWMaQXLXPiD8@MnvEcgSE5dgEqM=7<;q;7Kfeo2>,A>0j]r(+qnb.-)UDDJ,Y<SjrYb_+gEp2Zu4k,:WN1L/1Y*[pJc1aTSpiON=A6FHo4q^]`C%Z(&e$#Ug:<*hDl-hbO*5pIrCEI/YiWwSP%EAI`mCZjW1*mG:iCaNZoA@ih;YJ]JK/hM$Bk>5,U`I=25b9-SnoZW'$Du#)LdGb8C1S?-/d$m=?HuxI[PTg&.D//2SR_5`@JF.iB-[[.R;[d<:n2Kjr6h1,D/JHN#585u.hrC3_T1kigZ'71Zdl1llh9?<lNC^34sg/5vgvqg2>b4#B_7kXMO;n^n4P@Hx(d'i3UIbp5YxYFW;%Q7qAtD]/V,oaOsa?%^e5dWmnf-RsZv#_Qd7A8VUP;G4p'j6L%2x:e8_'XW498uE&JM%>&F>4)7o=(Ulq81wS_Hn2n<C4jWPW6JIvg4`GabUoqTb^x1Gs;G@u])kpm&,uZ;?4`lwS>;K.#VMNSO4<jO;)$bD*7.8uU2d)/axKZeU0`ncsK;eBTqgmg)8,T.YM5%?953<WBcs=bVUO?gtaek&MroSJK(148DY.t+7pKaLSl@Yi[jFQ_/>S:WBFMfPk<S9tneoWTNVJtktDG2C%>=(Irf4#_D`AGsZb%<A?8RTW]*(F[fo7M7k`aUDTf^1)@w;FCMJG8n(l5Q5cEn$A;Z*#gPM<A:%UMjXS]drv1a7i*HJK_YKLj`@g(?hO<Frj68je,ZHaF`,NoCTL:;g<rDP4=lQb,.Vi(TXD[^dSU<8loxdA#QgW:U1t)BYoGn3ZdnUBjoQD3_2x2f8i[&R<v:B6`Ijo/E+I#DJI=E,QZt_d`u6ne:RXY_u>OALgK1Sh,2)uUqFEIT&YUc*16fDB2qCKFvEe08j.2?c)b7ViVUQnCJ$KgAJ?O7[qjRJjPj>^#RDSZDg'-5%tZ'sodd.p]Hk._vMJD%5K7.h>LEH85$A>D-)mcCNCR3a)SDDAb@+shWi&9hmtlu@LvAk;._]%W3dI.L86C*#=&^eS8S(8@tC)TVJ_?pi93h'nUC7C?#0oSuAXD>6fFgS>KTQ3/-YgcpXMXl@DX)9<Wgmb4dQ`.GVt6lP(=YJf0A`B_`E8]hpZ.`_aqA=-F'+5D8f$rT@>2N:w[@$.U=mX#j9FuNkC)/7n`bWw]BD`tNO&XY'an9G2Ef&5VespG0oinkf#9&U>/R%g9LTbpOG>L0Ok'9)odJ,-:v7m'IkMvn/?;nFr>3oWtY&,MT=$`])_rTkKQ/3Lgf-b2H9*3Qe_OBMe(ER?$7*rTR(OPOq'$6iKos[&aTlqfG%RGqC4BW>F3lW5T1DiU@LEp<B0+9hcJS7f[PmXcQ4(r*R*_Z*P]]=ZOidDZ6DN1LBaaBuHZQj`@8Gt<+I:WFv7*EZ-M[l7:eWdZi3sTmid?PF%$?g0uH5nOrI,=w6.3$X4(g(xm]@DSXsfXBX^p3le5Fj%s;H*^L)s:$t'6p<,pYJRBFYwjG[ql0O+O$$Tku-H#o<`a*,eL*G-m,JB`[X5.95g(F:Ww=dl/8%^+$1Z-wCdg4>9eus]dtpKf-V=XDYMKq^0Ke,LfZnF[4FLPB%i>7'ETx^';A%%KO&Kb'riJx4<G;wcaJh;i.G_WlR;%w$P0c&PdK:O-snq&?tjjrB]d.**VO_)$Q,QJ,u@k^r%@<Sd-Xx=EI`1nCV><+XC88V+-%K_;e@:aQg/t?S`:hZOC4FDf@;9H%3ougKH&xXn7#YSApUJ;RCO_#tQ;Lh8BEWAi`B#MQ'0>0f+`WBu-lRKE.&#r`<hg[lgj^nIns,-7Dpf/aOd<vrpJ0idl.ZXeZg^pss0,'kI3l@Zh$%V+_1`plgWDO_6KZWgYun<X,j4K*ob;>T+XwQPVxVxi?]SP0S%%Y=Vfi),d.jV'row%5hE2MInfAplL'HLAha*QgJtbYv&h#p1*QcsP#Ne`;gaQQ[%+3<u0HxpBg-6eM;@(2@IP4v?s4YbD4B^*-DJ'^wK`INCcJiD[8KN/]S_dHi]ZsS5f&E/sEt>*bntggCDQe%S<)i>h&NfR=KU^]p`.Xvx=&e<Q<Mv#aCwvVkC@ULpkEd?3rYmEnE[64pUuXE)G]&,0G-]5V'bqFUHnGQqM`wa[E8/oB$k5wn(e/+gAQV9r#Lm3_&3jSI]h_+[B?slIX,TP;X:KR61[Y/uU>ZP$KqI:.6GY`3(^&vfZhUV(kbhPuleUqBdJlrWJ)]<c.XFbdSS:m[L^eWrmD;bwG14qW*E5a6#b3(MraH3c,92`.FURT3.JY+WEd6tMiNelnC$Z;.J]hiWN]d,Y<-4xNt_,)pCisJT]WT4;Vh90?;ZI.#_b2jj43Zpt//JJ[n>K:l6R/Cj_#^.U4=ULX8bYX-='/7VflcL(R(#L0b$$DJ;e-A/E_j9&G/uSS-,d(J%sg2VRcc=q+pf@GiUj`PB.ECw8uQSe1R7;@#USE9v/9h%+J;'dY?JSb%^d^pS^eJO-*P,CFdM#JAA,u1HaB?i2YN@aQi[,C3>RHK&RBc77].P[109YaOM=/XIC+T8@ZODHu&T(]+6.Wjac5=979Moh[1i<(^j*&7sV55QD^[X]YDLKeDbEUKUGY%MFV>EG&Z4We02E[]]eAcC.'brsGejYvoo$_A$ah?xNMLb&51I#-m>3uA%G[Ef[_`IUspfUU:RomInNg0P=cUX;1XJ;d&vfV1.%s0%pIpK[2kvkc=qbX,M[H*Q(-H72kqIRob),c4garvBP/3,B(4QDjYs,m.,6.v4t#UO8o<vfBk;O(tC6K:'fC=Uql&pC6>BQ+Rq4=[:%/B5G_;PA5AN]_KI2TL%T/vv<;fsQ%n=&xEi`]P$o^cCRZN^Y&dXl';Aw#'^knR2Zm=D'?K<SF+P&QV+MO^pe5a@-j7]<LIWJ8GBhIwolTuUCD6P25=&+eBuWP_dX13cX-&HU3On.x/sfJ?jb0-4(njWFbK#2Dj(>Hk>/MRf/tiLdIjdU#m=I,o>FlGDP@]#lbaLcv&CmEHZZ2JM,Dc]9<,_<3Gt*kdjRAktMB0B/h]PF*=l=LT.>53Sk-G@H+o(4D8&uRuia&?UA_T;gR>qtG#i@=0YJ.UA;2v.tv><<.KH)X*GT-0)ri;uhTIX7@mRsfM7)]NC?^hm]A&*5(:@uoHih$h/r$1kYd'=o(3Pg4XU0k^S8K6)gQd-V7nrTemLmtv<pTqvTKF3e5$n-I%Jv]LQSNeR'b@pmqqo$I7jR4Go[6?B3td=QZCu4f'5P+:W%%k(h<EKb:pgc7%xnup#u%0K;2,++P0=l/N,@h*^iHs@A/o@@D9Mh^sS@(x^0%8da*OX'ldS4R9p8ThZ_,0u>O3G24bXWI7h^p),GAF'sfB@u*)kV0^)2cRrgZtX>bO(Ox>5k,hEY-MubM?a3BOW,$U&+Q.%YkJw(f08]=G20o)*HEf6FFDG0(O8AYhDMT:;0kAB*$jh1MNAP(]QPrXU74QcY1wR7h>u8AXMvqL-tw'd*o09d,e^DdQlU3,u./siaiwcaLRH%VHl$:b1>I,Cq>Q9=lu>I*omrV3H05OR-7--X;`iNC?IX;hp[;F](;T&Zg<NoREqZr=9I%2p+mi]A>HQC/OukZ)jj9V<L'IZTe'5U?:5@-c=I*Q@92B-d5?HO;*I_u#VX&u[)M5r5.9AWu/l7c1]OT3cv(mabNB1[tr(wd'e9i?/9e^Tp,()29dej>`Rr-fJSH3Tf49^?+Sm@S?q9=XZ;>0sAl9Z/F;ms*j9rnEf?a:>x%S_4pd9KKG-8KQ2;hG^/'^TTp;c.v4@m-dT@v6b$t;&)_gcEb@`>Rqf%gH5Ix4Q`nZBK<QOiut,['Dv7]sg0JE0#f1^u17e])V'uw>:I93_Z2?[0580,Y.;wj)X.Wl1<hXNnam(Bo6?oQN_fSR(W9s3+J4>HfM$@I#*l1m[A+1pdpFaDYa-p^@i%:XVZDD2K4Wo?rm=Ymqq*E)b)=mF*qFpm2-BivD#t4'auwIGl%e-fo-fp&FPZ3OUiqcLao4%$Z1q*lFO0W*i[pCmSF'<;/E]o1*h%XWag>Ai#n%Ck)fPYwqd<WGWoA[BZ+$W6aEg(iM.,-I1LgJ:oc=EWSOKTBN@^kj$rI1N0x[9Eu6SdWV-),1/-2)q8O%GHpU,e9o'T4]`K6fpqbQ#5&QeH#c&/EK3PSLQ77Y_20Y0q+i;61f@#n/T<P?O`G;/hH1MeW6n8aW36;tE0ld9??k.4l((&7a4PSbv7XKUOCp;9jk$,SkqQV5uh?xAGU%lPk9?#sHQa<'DpT1%',@2O%HTDkL.Acq4WIADHm>G7KE)6kPud?,Ugt:Iq;WsC/cl-='/fc50bL'Y&qRxdr*F;[J4Vhqss7)@1]Z3+'NoX-tm8?ZE0'FX%)+jnaeJTeW]EQ:_:20+/769(j2[_W5^M-NL.^Rwf5JTou;0j%N>G2:OmHrrO;DYDnP14^7))_v;uBui_j9PuVHQ%-I8Fv6kv/4g8/IC[.1/^=h&/9GKTX32]i#4</S%r]O>av+,2u-duu&'2-fT(lj1Xnk:L;FW*eMVV0g'J3>c(&<V/e>S:N@);+AIfQ'+OhleCG:r:#``KXj*NhfF$LfK^'4Y8GA59lpP3t9x[>a<<rf(>VN(;fGT[$gVO]C)^#@8@&RFXXKcqM(mG)LfBhm>rar,gtK,?pXXN@0Tjpi&n(E4_7tP]-GSnsLc9pMF$W$uef>f`>salDU0km6L)NXawQk'[2*4u2m/pu%qAGP>=Nb^W_FE=@cE3?n5Sf6C1l1cwDVbWDqVtq3$&;0d>X]RmEXgtJEv-GqoG_r`Yx-=CK;+#Ll6mV-VbBCR_4ruPR`N02_UQ$,?TPQN*ZAR8YRJmWU1p.g1fH?i#.=,ISHQ8Es9T4?c;6W1(gha=B3Hn92=UF]P;@P:49@g,6]V=37UgE*#D8$g=&*%IL>GW`A`wZ#D.dQHaJH)EQx2FhD#o-2fhd]H5p5YhGn(+w_,pSX8NJR7JUbPe5m1m0m3LgmlPIG,V:LfC9$_*qB#lSVSh$D2.mT<#W/2MiKnsZ&0`QDR:v:dHZ;IE_3;V?K;P3Nqmm9Oe^[B&Ud.gujYp_%?a8),BPi<qQ<@D1nDomar8jZ^Z1x<<Q5UHJR7)k6M=XjS@g4MA/r7hljcb;Ba4IeK.8jr,MF]HR_*+@-7.SxIJal(B%M;(h;wRM'.jg>`#N/rhWR7xiK.^V+Jlds2N2M:T?ok:LpL[N<I/.q+MvG*'.lMIJj#h%$puaua:76-toSxNWdE0U9TH;Y7:'K;%-/02h1Q&0qs1bY%9w'I&QBWXIw5u:nmVMQRIS/u39aTg3&FeW%i7JfE;NSCfp^(UhN#IVQr5hvI1+i$7Xg=:*qwN^Ur&[fM&Qfw=`0a5D,pGmRw;*;+<e?=P(*q,B.O$+@9B)MX0E6hWM/,d(He7=aK6k=_$6w8XfU@bT5ai(*WS^D>W*Q(QR%vA@FpO;Dm]I;Ft'/iW4dIdih[Ex4g[L)Os&/XIw.EouPrlY9S0G[-h(#T3H:l#eO#%TZ'd,TN<c*?/eUw[%%,ll_lFjAibT82ka5RK`W$3_+aC1ZKepNP[dX@SHSSAx<mpve=0[F+A>V^r/&.ej@1][H:rZxn?'ZwHBLJ,jiKYq=GC]@E%+so`Ri?-OuYfJ5)%4xZ5bUVEBi1+w&w<O-gHmNPcb%>2X&QC=;u/5GX4]*r&/4UN_/F'pL?;ksv4P'O^l(0k;u&(>I5b97h+qCB'6_p/fFn`%9;-9hH1:9Z1;`p8/^1@,?LR7,&(f4@nS8nTPOsUnktN+r5%N(-WKc=X'7WtpR%=TjHB(@GE3Jgbnv%(?Lu0BeV.=lAgq0na3MiVFC,kNb>d`>RYqG4=FP2,'11d,+<aloCJ8S_44#>;Qq#j7Frrn*09]$e&89WWq_l'PW2S_HHY#@sLOOeR&B</PRKI?t:MY8u5S*<I>eikbs/B&.NfYweV__Ee#ZYj+OUb9mfsla[gsJ]Wln;Y(dM7gPt1*CB9mMiOsl]#H,TwrnsLfCw0^Z'QX[:lWmqjT*<:fJd&Pk[>>dp>d$cRI_7aIORZY)1:1MgdU>I*0)#ia@U=_6Q[8LB1$,imQX<-FiBOkE=4ApXTCDu>e9tgFQ9e6?1N(?-V*[pwq),^-%T<VMSxOZ$KB#VSl%,e#w8BRlBk/]2=01'kcC7$&51s[t[<34QdKO65U)w#sPepKFBt=&O(2mRp*+pQ+Ro1])8V-rQb+1X6V*3iH64H1NKL^t%WCm<LiVntt(J359&VM[ntHtc6V]vbGcur4jj74[5:;34X'N.,6mYd`%H7pk<g%bqeR&f[sOGb@jHeLED_8LlJ_$:5.W'L,;ILaJum;'bG9StTD8iYYcXq+]&_DnRNGhH03]'O1RaH=TnS,.^NmSJ,*9>+cRMd0E>OeND3`]VMk%nP,;)Q[KB<#rBha0>6q286FVjpg+,-@k?op9J]%Nw;ZZ5LmhLV0`A`g6&:aCBV'XWc'D?n@PjS/0G82=KBAQ'pAGGxi1D.'7]+c_;coEod[-QgFR(XKl2R%@sX,w<E*k#<5',O81urd)A*ne[&Ec&6P4KoG[FoxT'n_?r<lj)$]Fh:*wliulL>O2=1Q%aFt1:rNIc4_PZ$]&5(Mbn+)?Y1/N2#d/D,p&p`9RYJbAOw$_,1g.ba^H/&XV=%?%%:*K8u1iEl9YbY<gOI)qeW<.:fjPu,3JHEu4sNnM7^I@sks/]g*q*,biSi[p4xet[5D,-xF-_Nt)in70n0Q2Apca?QfxQf<tO]YrKg8Fk>RmNYr(O3.>H$5:n])&-J@liH:Zat3m@c5)=k:O&4[LxiHHQigY=RETe%hr-i5`:QO72=vcofo8eSHSJ%vgXwu>Zp8)B-dN$B>G_mjtpAMinpSZWBM6n_Lw9</i'+.G`eJK-AUTnE`jir:S1^Ggh(.5u_eYPDilTc3h7E@n-WCsj3IbQfxRccLt^c]Ll>weX6QlTmN_cRn+RQ2FhHe4jjG0JpQRn3RdeSWQo's<#bS-oh2Z3Ur5Km6uS;UbI@(`krI4=16drDXA'gpL)w]ra:<1(Ew?BgE[jCs`WUD<<Q:Aiuv#G;V8i<s'W[MhTpsJZ6sX*0#MLdS,E_GFAE>@66;r;uW@F&vi)>^i(Gm@e>%E_+I$qRFKRuta'r>J?t_JX&0gb/*<$+ULI&t^dT1[&-HSpuslwH*E^x+7GNQqW5'H$DRe6D2g1Wf_lg=QCL'wZiB$=Ug,L,WY-F0[Kf/3wQwXw$LSOqis*/27*VFVi>C]nX5A9u..`ml[LO9:%iiTV>G.,D9*Bhi[:8)jc#/RNwMtf>?v8qxomM7bDv/-OF*TqM;#vBe^lfjakgf3aQQW1.>_H;^_7SL=s'6Q4%ud6[L0ef<Jw'E1TCD]Hq$66Bn,&pXE[RaImH9CXL>E30KTV47wqZ:'xN.8Ka(`>&b_k#VCMnko)PmhJ-DekRw.R8c)tXs[:[Xs7DapFlC(e2?*EF'1:L,onIi=up/Gfj#-N'<,%-cv01/o`i-@2Q5X/80'u4b#53H<6p'(`<N_PL8p=txq9ajUMjt6aa#t7.k$GRlSk%xnZ6l.<F#h/pLGL/Q1IH4X%/+4&>7AY=RYmk-t>as?Yi8/#*66><VAtoYd+h9kRLHPDN';bS&9's'q(3,cPTFA`Fs6_Gv/d0S0Gfw_Ielw(C1B.vOQ5PlA#D@wOc4?o,>&Wi'$Ej[O=sY[9L?]U4bvME:/ZEg3PX#NN_p*c,bk>d&/DMG0cH?$4XpA8hJM_JMv_Ql(sD#8$jEl:UA'MWXb+;6r`1P?//R;`b8Ew'v*-_JF74<*kmLZ:VaIU%_ci<:sB=mG)Oe6wEcNA=.,vjBJBx,n$d-;mpa;n5Ant_etf#RtSfUEKCZuvVo_GXX'g6ZBJ$,4v[)$2[rL'h_uV^j.%)X:*82DwB0<kr`Ne2d*kjavaW&W_;'o(tJqQ.cgJjZdA1S]SPk?On@N>JXfCn,$vf/Y`,=+@-mL;2qw'oYBtH[[gI?IU4QRc>xg)=9PS,pJ)utFW+(t^3dNrWk?[)0hcIXCH+5*&r:*JF1%GIFt1W71,v$XJG@n/LYWErd,&gc%-uM@uxnAbKDsQg_H;i.:D$dJ5sUeUL'_Y(8NVc$TewwbF==13X>wPCBYiv(RtRwnjvF3tVvcEeZcHZ^q4Td$nJ[d'>8nw=[iOhsgRe<fNt(=cQTl?(069-:M*vD<R)GN*ReWA>=?OS.stwkY_kJrqNXfOO$Rjxaei8T/RVqS_-nYw70tTQKpf'NHqTek&uh;`Va/-:F%qVAKc20+6-u]J8k`@;3Ek5Va9JrMm=Z?m`*<`:*11gDG@2EUr.,l`@Mk/LofE18f8)<n(S+7T(T:IebtaD2bLHj9$$Ljn,ciFU1um?M(x$vkPHrOjWGDe_+VPj(^I@?Em(md$creo+adkhZ<MPkR?XO65bg$nBVjcaVf)__7$pMX]2DbD#;u5r+`ZI[KuS3WQMD?>?>PMN6D_H_;S7b_/KN?jJ;4ADk.eNo)ctg3mH5vV@RxZ$sj^9<C7-WGY7T]n>RV,YXK(8<XG-aCr6mYB+89W`M(nI(J9F)n+er*eGF*S+*os7R+fcwNhX9=ntf5%od;[&(=?wAV;v4(1Vada#G3k+'#RKm.jrdXqj(quEi2?WB]rBD<>918fNkb03F)u0F[#L:=Nmt&dJ21mtC_<8a52k>Fk6.&/jCvH*-,GuhIqi)@D%*`4uY`93skXIf/1AGdjlrb?u+GKwY-<,Zo$4P*^ZE@,]76sX)DEhH1%6.7J:*JVsk/EpXn?-KiBGg-]SPUq,,ChmiVI@*#rFj1R(5J8=CTc&/R#2434t3YlMR9-JTYu:+,B)Uo3JjYG-#VmWc(T@FnS2RjFrX/O0MbT3lvUVtM/i5;pJ4`^q._3e<s(P_1Ru'QS7^ZUMA):]Xwvr1?UQiU]7iq&S%9a5'*kIj@wVaT0qYL]nKvp1t?`i.YSV:jUw#/KY:j-R//>%hMfgj`13E@WL3KndQMO@6/t`Zt8CBvw]KFIA^#VLa@K:s_hB;7*'/tS2ng:+2aEm]A:KXqZPmq?oiL+XEA`w(d@.K(CXbo-4_Gv>e,hmE-k'--rgDcjYIq#%ck(Ga/hhk.2R6lr%f<uAvZq`f]FhuY>4*gM?-_T/$5;,4>r&hQm9Y2uxX@<-mD+KFnB8-gVqN]_3DE$Xq=hJ8%<@M4np9v?Ds7`Gxqp+e>bfYCDK3+8kkf=gEMrl5SA21ICof$u]%a5M3b]'2*l)VaxqRi>WNf$+BnYEZY^A8VjFt%V7u*K,m.@SEM-&%3LJK+8^Z-4j6W9e@RDl@+NC%#MW$Vpg#4]>)?oeS*tp)(-11el977Y,<&$<n?dj#O*GA9o[(KLWX5W-w#oBJHx,4/g)o(sKw#7d*AB&cipXaQvJGHm2[d]ES]wdJC5&HKa1:g@d20Bl-g_u2Dw]]<fT`Cg2&pHAka?H^slNj+:9j$O0Sp:<dB(q]]];YqBEcqF)9/,r8',Y*j)UL7i@%1D4FShdKAxkZ6q*m`Ph@;+.i43;T)6MN<]&pv%%)1fK>_TZA(x;b=3L`>Wn(BxruXMBPT8bvg94:)Yo?ZYfB<j3G^A`hOX@u8-L'Hb#1XC.1FWr*bFf?,/x2(]@OAF4,vZ2fKv=>Cr/cF6tP)J57T8$9%9hN^gUu^x[OR4^5Pq`UX%mBTaLP@YpWKEeA%;K-'oNDVd=#8D4K_R5a>cEwrBIV@s.9UBu+]uv^.$[Y:>9VK4`tcjrRF;6Glu,D8P`_3&C%E<Z2U#c`9ujMEFCZk`8qd.GQJpt35,[1rS'a=YhxL-m>qsV`kqdE)X[r'$EIq7j,.6lGwF(AZe002n%GLL7YNNtwmvsD1S*'3D3<#Svi4A$#5rus9-iZ.#'OZATk=[3:9cDtH2G[D^0Ke=K72?1/W2Q0)4M5nC[-c-jKqCNuwL`Uq>qskv3R0]aEs_65d$3JCE^j3-m[3v`W<2YjIqXXFvDfmwrduhDQ6#SOrTCtEHFD.>^;X/x-.;)gc(iojpRe<5K-I&iQ9>a::KKsFe`&MT,tFT0/l=G#)oD#M@_i`i_U5U0I+HGIo7rb&mQWMfO86l,kb=3@?/&k`i;$]5nhB1C^WIjF3Y+Tq2,>pehD9>.H`*X7;jePp/-5@E#kbd:j2XKTDhNNr=C7m*N5%BB+X]K%6aU=-[fDa@>xDT]2.lL;LVp_*&$R3AJ0-*5E#-%V-[WAg33W1XMB$+?H9jN>9u%J'a^>7d#umXw4DVb]u-0@;'GkIbkcmAo+Dqo1))/U@Q=GuQxmRc5AXlA>Ve:.R+G2-%^BuxU2M*vS<jd9NH,n]FlR+>@/9#`==np8g[s/;evTPh.WJ:Wt>M$A`Wp]2]hJCkkWD(ATCcuYE0:lG;ADM6)l,#=?RxI+*)unej1YZ01W1fYC=L[$VmhOWZ'jW:TG^rt;T`WQQMfo;SgL390`M8.eRE;_HEUB2h^*dK4D=Nx0sJaip&#%Y&P/rSOWj3FI^LH;'Z[CgfJf9^N(t-akg8Car<SS`7pu/BBb%pBKWTU^%k(0iG(<O+$AF.92P4_KJqFI--Sjn&?:63iqPNLeeNtu0eL=&,dlLuaVq:&%<%C;#s1GE%.=4GUOa*i>$Lc63cSO@RoYWb3ZD#FFZ9#>.iF?3b-/$*2PsfQ%@93=l^HKMMaC4$ND(fBY^7XE29mR72>+-cStvX`D52>Pd?an>0:G/6C_7(MOcM>P:iM2OnAnmW]wM7v#IJA%(*WY5DF;MdncvE0HAWPO-+LJ-^86f>?h]3C&*j4)f6C]2&38k]0PtT#H+7p2iQ,I45`J^4H:k.8U&UoR.[)tG76)9pi8oqdQ8AN4VU(cKTR[bs=n_p$dH2;Z*Eu5FS1li0N;jQ+i+RtK0wP&Xr8;[)Y@8gsm=v^J+&5)q5:t6VXif,8L;cf$9:k`G;WQg2--c&=S=PP6+sx)NR.*<@c+?_h*vw&$C[Jge2eIguArJk^B*^G5:3B`*f8%OXPw`-@T*ESRujL9#jWG/&uviB]j<vXVq$*G'a0Zs+.o[g9vu-s1OWhsY6FBhb3/YBTWAC)c3DnYr6Xpb-<#)6W3uGgRC;)VoB@Ek*_@kqNP@R6K@/bNXEB%Ra<./'GE84@_0Yr7BQtH]t1[fP0=Dh3@GR<*-&Zo&nQBEn>g/e.*gbDP*l5-`_4KHMoIm.dZ=^M/^C4?PHxchra9JKmtr_DccAd>AmTV?EtD&WlbQ7X[<L'6H]T9Y]R75bmr[U:&6Lu$XAmlUGp#3#3pL><k4fkAA#*p/v[[.sD5.N7/BxN+$V@X=0<P(A`+rGp*blpE-D>Tl1,lBR:FHhn@K:/_aD^SWpDFZ(L2vYlNgJZeYCx*ZxfSB*GJD8lthMv/oEi$KKL`0:&gGxRJ<8.;F$uZ^ESi)IDT(;Yh](WbrU&'2iC:(`)s0$3$v'V-5cV0BLKLT?Elww=BuL-S>ClkN5%QgX4;LI2Gum5#'jBE@[.n0JxV%+%l=P6Iag/Vvi<Cw@i<DvDUC(*pQXOK6bj#HcOEaD/:rIpNaPC6P6*-H/JGVGfVk?=2d7R.'24F<e5jlu@s3^Z[GrcsCdB+'DY#&VA^Uh6$NR20ae6H-HW2A21,_l3,uXWhP)-V6Aq)K5x`7?kB`hMh%HG1AEbq7x))sdu0)lD@7%R^)nds;7IcMF:?[J9.ia1e`*,OjLox>O[sd2a)8]sq0u]._7.hqK@TEH)YbooaZ3&:cqTwmLGTRAF7Tr<?PvK]]6qS#_Q@SC,%w2FauMT.1b@OLn93K7w=Yrqaf)3ehNZ]C'*Dm-:KMw<QAKl%RBx/nYL]p5Md,g//7BH=7jTkaDwb&$7OZoJ)2*'L`afl]SfAoPlXj@7:Qb#Au=D5js[7iAb[tQ]3sc$.=t,hligVQHL(XE'0S_Kb5AJSRu:bYG5VgS6v??wg_dB<)#egmeKmrk`,XOab6+<nn^rSV,HifZ+Gl1VF3,dvn;:oQG:x916Y]aSHg[65*7`KZ?J#H&4NZ%8K^UKcn(-%*QQ&`xcLhEW29AHS>@G%a6TY=B;ug^:e<g19RieYJ`+BB>rRH`L]jWo31K(E:QbVt%/4v6F.]<Z2V^WqR;YgW*Muh8BSwb[)GSw57(&o'&A$2;/(F+Q<`5P-xXOLLcTk6X0F%e2d_fx#Gs-LY_HF^rNM9ESfUV3dtCvqW[J<BrTc9M.]+:#rVEvg_v:Ah@Pm[T+2<hnrMD):(vlPn`,MCP=mq2m9I(T4#0<uSN,ltA4pO3p?8'I6rO^P=2x((%PKAk-6QA7HU8DnM%K#KSd#e2NQp=AD<Ic9`%)UR(U2ru,7kJl:k'8JM3AQEnx&m-5@c)'M?$T7Ekt;$%D3(L$3i.8K?S&*g-8;q?4ru0Y8p=`gO-C7'vqo>(NCDaD(Fv3E=aia9Qx,tvC#ocQtM6?Ac'&20xs%nCjUKV9%t;m41Bu=Ux'0C`pn*h,g=4F6eclCP2BeS_)AQ=B^;e78we-Lxbdiv(NICcq0ef<5EHS9wI&sGG/tMVLn%6*U,Q.(8T&L72rkA,BOaZ7lFt-j,K:W/$;g-<`Gk_aPk%d@C=i=Z^&]P,NAhD:wo_8)dcY]bG)6FX%?a720`q+e6-_G&Z=(//fN67A,W/3u/+i;1[@AtX3N8H,v)3M+'4f4'w/tOTZoXqg?O.psG3JMReE]Y1ab&BV^&nSh7<5UP/b9[Z/_^>X0hn+OX5RcB9XUkpIs&DY>&Q*xPO?JGp+A,kVW*aSM_Y=%4EwTb/`Sa<lwiN?5xr/c^9]XxO/[&>M-%u`)D)Io#D<=jvmc?WEcoKT-#Z,cO[jnHx)4VKotb+T?>#T1W&Zk>di*'DWDhp;P<SYE$H63Z?kf0-.%Rei:hhEg.MdgV`rE*Yq?F`4fq;K@R^PPXI=t#&'>UbdiXHAJ*$Ug3U0d8tk]nQ/TNEFU1/G0Etcb=4xdNAe&SUeJIa@n2q(vZpfd`&lhM+ZEuX@s@JUC.J9RQ`s:BP;nl%1ta/H@2b>g?=Unc-i%bm8TKDfSd1r;b[f%koA?DiN>qqF6%ripXiELmr5x)ZA(Q5rWO>QwbQ+Q$:]$sn)M&NNWa<r'BTP$WI#^T4S/kNHqTMlX%Q5+@V$1Nx`u:5MnWh6W&o`G]+KN'?Si'BK`_Lp#DK-jF,jvpGo;nPI_Z+2S:@I)%,UWt%9rsH@uSxGG[@r/TOeC4W84`k(%k&k2378'w4Jn::eN.G:+]1A?+Pundj<H7e])7$GSS?K`xk6GC[3)ws7Tr_VDP2kU;YG(,)fZr4Qp968K&'=k1E_.lm;e^C:0:_Ea#cY(x2%[k,$c^-1/0;jtY],g]gOR1G.-N0-*pf/WS)[5Da*W6.4xD2A*V;:L/H9GUGU>EIcX1$sM),@BS*bim3]Xi2WCW$XU?QmgCvI7;Jfq8-Xs')GFv,Ee11GbCf@Rd]BkWI0rt-`G+LjqNqY4Glersv[7-fET,VXoU#h>fMbU*Ox,+9B'oaLcFV^o;/O,]Br/NROeS0Q*=Z$q`10wjTEq<0>%>43)AFT`kS*6^Q$eU>xGC+vR$:sMP:srt0gr9S)'OQ7mF%R9B<-ALK&Gtbnb9e^,cGZjKLI<n%ss,6`:c6wk?/njnMX[o/;YO`r1()+/Yi%l=#Gu>9=]-'sdiUX+T4N>]#@<3,&/[M[L@%b*utL@p/(SVs)3HWs6B[^vu12<7]dR4RDc1`8bRiB^U5CTmp`d8_`l8Hk.+TNoL=Fg^u/K1(a5($/E:oLOb9DMwABS<?6tur7*:qf9mcSf0rhRRMYar6f/_7#$9ecmOSY%[^(p*eZH]Vt+A8[>/8&h$]DUJQCnuvnn9Y,e@xaqg-4DJUg%#9wOR<<AvxfFqghWRSpKD_iJ^CikUukYk8bXE^c`62,Mt,uF4%*d8(lqr*?,+=$?[B7P_S6+q4c6WCT*>p'Ok+WH)7@7[F]sVXQK%](Zrh#gAc<x3Q1(bG_%$vNRw.)/Ta-NhE38QMvGSFQ6M_YZwJ3pvF,;-`pk,h<nJA+x-W8?@&*cDLJqU-[u5lH7[;FoZ*sTc)NdnEI5pF7f%Bn>aR9k`rvdd#ut5H@P<Y*dlX>YJ)6'I2``/$b4.-G/(XYHXmaU74rsI1Z[MTM>.f?bA'9td65G%R:Xi),s>s?KGg6dlOuG759,.6KZK8lL<2k,EfAU>Pgjvi8[^Sttw2OwXnQ(Jd%iNiQ3N+95;llJg^:R0=c(noGF5q0v5^TJc2%.S4*;ODE17-Z>qi?t?)E42q*+(.v,53P@J;R^ZT02&[@@U`1AX<_RRE>VD^l-3)J3+&<t:,JcaC>66Vx?d5X,e(/XNWX.`il,q`&(a-cc]fq0d(09UU'&SJ^gK5=N.J*0?tHCj8rA4oS&/#Ex>G=V_gu3vuxIZqFRE`,b@IV8F[nN-8?F)P>km%j$xJ>;w:oS0tq=c$=dN2:NhZGLggiQFrY/T+ehD6JtiS.GCce/II'nEERRD@PI@.J^8tFS=vVn?A6nT+6'l^$,<?N,'lQQa(A&N.$HRV&p3Qv7Y:$>1%S=`q^E5J3fPwNjN3[OlT2mf1I0A@7f+NL)85wr/E'qvC+,GF='ThuPq5R=p7c+QA*t91n:uxC(&eQ=CbVA=J#^t'EiTAn67oMA$HxJ,)sugBTrK:29w)G]Q0-NE>;5`n&6#(rOB-_sY#k,L:vnq71Ifj/#7+*#P@^5;@h_%g$>512_D1@iE<n+X](>E$8ww<o+$t'*8g?cp3*gZ#a=[u0Xa?P]XI3XaS`]@6OOwT9>Iu%5YDnqEUvitR^=O;<pQPKxJf9Q+:4i9kC>vfuu/n^`IYJJP]@?k?6NAA.?N.hbAsm,[63IDF5_O>IWDexoaW0s@qB#A;Zj06DJ^]:#Fs=-?[?b:eMPM$Ljvkb^uJ8+rc9Jdb8;5U.ZsnIlFKI)N^.=Fd(/A7e5e6QCb;v-Qndb'j6B]o*Hn`1H3gCLrNs60eq4[o0-$r[;eY<dG5N.*QK]d2Y(DK@'$>)q,I@mm:O6'?`uL4R`.>>4R$;@+3At#abbDk;tXvg$g]B7YpEn@OGBOevUKtck+/1SEEYGT)n$1wMm6KL$>=`#/$Gg06HoH'=5t<B&b%;sXM;Vo+:-O]2v)]m$NMUhtiEI92I5>9<G,<t>?9nR806[;]1uuhiHdYv8>RD1EqIl)gsi]F`J]]";
/*
krpano 1.19-pr10 Gyro2 Plugin (build 2017-05-10)
http://krpano.com/plugins/gyro2/
*/
"[[KENCPUZRoanW#)Us[mD]vb':]._BlOMHQEd/fN`A/3I?oZMSQso'%3Kt/`t1rwi*UQXmWg>;%3t.J$>]`q,^p_Xo1TnYf'YuG&e45:T[_Zx2(i)0NSIC['_Ae$3`FJXF.OEL(ULmH(%(*Iqc?Tw%@//ef5ENM4ijM;/%U(r[#R8W1Cg_ANNKxkMCI<Wufuq5Nf9C]*];viha_/TD'dJHfYFn]:HT?62@e2cVdTghoM)r'>/2Y]/._01I.Z0/d.)f76Ynelxf:tVq[6&Hv)<UO#'9>QSd]/):PIgmY/H9fqF[Y2<9'$dr>pEM4kRJK92>(QXIY.Ls#c8x#*)-8%=/HLb.uB&%a9BpK#JRrs@=ir<;BY-n3</^PKU7V)<V1+(dXee]JU=D[7%Z/Bdod@G*w>+A@^wIsFh8W-)&VJUO/0^uPx;WJ5+roO)3v)jSMPnYO[YVUmg<8/6d.`K8Cqn53;;qSaNAn'GIcoNF64L16q),`'4QH0]nQ2nGa$e@C&Squ]kp[[T1pHL8**Zgv7YLD>wJEqYFtH.jw-`]HfbP>G_q1]J<?9eVSxXqi4;=bD09dVfiYrQ,^(=po?])HYs8qn$wepbD-NoXSqdvHk@BG$iJ%n%C:d';7c1gc-9=<NEP]kw9@*?K[vFb>GW=?I?mX+SFFqIB1Cs`%*oW[H@KjL4<KA0er#7Dx:O<46EKPw[@'Ljj=A'fS?s1u&)a7jb5,(0@V=8k'o^tb8=(WH<>Q@QP]:JeZv.OMbl<v=v6H3EH:'lsG0P9,ji3ciF8F--'ZSqP+M/j6ZlF$xQ5t2:%IQv>bqNtN>72vNR*%A^ON)ec0fU^?IiG<-//:T`s+[.L[CU;^qtuhUe:N2'%HD_#Q1<s,<e5VE;W41V&br1us[?fwBa,q*7T7,kw[6XssVY5ljn.^5+#o.<:7`XvamiEXXFjSa&.D0qu(l6@/Je&Jr#IGN2Z<xCMn3>oi3YiU&lr?#^iH7@'N>t1N#tQF*&wY^O08OegE<X-WEWs,9[e7)m?O:670aN]9BKm/G=WM#@F]*g^1Q1'x7[3Qxe;%#R[0'GT5SLXL2`Q,qDG*Fufo=;dJ_s:(aEa7_nnGn/D4)RQMvoE$dw;#0<tPsb[99x4QrkM:GD`nZ2geRDXTq%p=@a3<ql2YJKI%uX*^/cRUDM40ZoXr5WP.b3>MxlZtrm&&pffHtB-*c^7&:sOflHYvb1D6foGw.3Ghc3J1Fw>a1Lu0K$Ni_h=OM/x:`p7Wkar]ev,q:W?e(cTOJ^cZu2Ped-)rrD<(4THeTpl]s1eM&0gT;:T3.SvkY5W-J4u%S)IS12),lK=cYi$EA%T>38=3lNTX]kQ@cm+V$LMu(lfucu4?l=V[++.#>+J*lNjnp1(rb_Y0;qvZnBcUl=J7wY';UdI%*iV4WZg3q2DjoIPg]FkOO,8&AF7@7.kANHs@N65UkCoX,^bLaGuiAkpZZ-,T,m,#iT?p/KHxL@53+?Na+uOm5^HTZGirU_,)bngM(t-I+T.Ej=-J'LoKt<Rd$dlh$jwW?]TlBtP7'ai):[@Xj<Qo9q(.XeZYd4HE(S0up*KlhpSPi-usf?2`qWigZ;sD;`o9?EKEsLLu3:?n_UL2X&L]4(;D>Uo3p<&DediM?W+8V;=k]iTCPo.$S6w-&;%-b7$lOZ[.0,n&,F(%(U)rM29=#>=kKTX&iP$<::`tUoOPuuVLHSW%:N`4(ar%ET;[KaxE``k&XSHwvQa#02_G1?CKTs4tP(kLOk<ZP;II:?_sM;]Op9D[iVk'n[u7hc[cem$]%CN54L*xM5$S)iKJ'Tk<S$/rT[w4*td5;r$;l<&3)UTmi]^b2j?:&aHSRclVpMh,u1Z9bqGo`eW&WeDU+gEtq)i2Y=)wT,I>LhX3pDh8s$42OZZqhhcQlO/.+.wFtG8.4Z2-)<%a^mdQ6)7rE`Z:ktsaQ-@f[N.NEpbYY6)R[xA0uT,)V%G`Su?YfsqW0'1'7Gim7fx+$4_mib+TdiU)ex<OJ>d5+k@R4nh#aDMZS/8d0;Pd3[%XJiN9<=.Zq+c)3OGehEPG&$l%]K1Z]QCB)u?9VCv,UHA-^%aup:BU3M%EF]c#?$)LIO;It)[CMO7D<FIKb$dW/1hl;@mo:@`0N15LD3birU'T<jA=N-wZ_in:AmF+rxDmcimQhNCiP6)bP&bZ5p1a6l$r9k$g:#%+bBe$Ta&]?8KEbsAVk(t([B8-4B0TK(0,8^MV(>3bgtgQ5l&*B_Wf6f3V=rv@SQ@Ch:`pAiHdP@Jg/><Bv,,DoYhfhhOYS*L89Sjsw<Kk2,C'o#)il[(A/7qev6JRQFTGDIN/xm=_USii8V7t_3(jb)%IipFJ@B?6/,*(k/2CDeF9``TCJdTQO&ae(ApD*.Ot.(XOf[q`3).vb?4v:_WjRDeF%<7i>TW9Rr4$L?CSibmNcJ_N)O`2#%MsNP2q_f]$ZRoB1Xw$T*AFmiwFmH%><d2hTm]ofnC#*.XkATf-mwU*,t50%ZrATe^D:0uPD.OKxd['78-Bxe<Tg:4#Mab=mrj@FVh&TT?66rW3d5(sc:E^l/,Z^Nw?QeADueL([]gB98:gliNlZTrQ+./,8'>Cq`iMGIbv%Jp<fRX,#v$bf'v4&s/`u]io]cV%L-WDJIY^bU*[Qt13WmAXO^Z2nC+kdrvih@P41p?Jw]K%^$r<(1ol2]^T[-q$:fgp+.=t<cAPfPQ],^--KQ<hocF:`Mt]8WbJg7/mEao)fNf$osoroD5*TIS<NK4'6`R#8Zg3kg-QD+1oq3S&-]<TZ1HQ9`$9Q9/NMY'GgS5Z#L+/_DPOhj>OP2*Rp)BFkIb'76=(186V@4x`X$95>j+9TIqiq>/(E&E#d/3-RL(^)J5=Vtd>WPC2Y:4d1iU1^,_wSKJot;XG9d)LLjf8iHbr7:b+Su?xA@YX*[qN)2QOc7cDvA]IZ%Z1b379J9+:ZetHQT8?LDiqLn@mVA(L,jR-8eq?<D+$@-U'tO:k/e<Ogl#pHv9Q]oR+BtEb]FLC>#P0@3oJ1['%t9r@3dj+c^U#eH]IhTD@e?O&,9E88^1o$p-ZSm)*R8pWf6a@N.<S5.L8p=s+1bJ>Z7*s6CEh^@)],qdFl&5Q$d(6]d0uFA^41FuUb>=gT'VRO=#jf@#ioEx6qs%dE%vUXbG.m8%N2E>t?*HnO#DfVR`^r@1p0cN(w5SO,q]'@H@c@m.8pUOjYQltoh$^3%O0ps>FNn5*4MM*s?]dB93:2t8Ih4<Y5'Q1&U?@-'81m<$;2QGsR5`#>vZgl`Hwf4TmpJ+E`qBefR+?s9WkO(bONLSFggvK(qT6IH)/>4O?J(Nd2e#s5fN1@=_IpnYq9qdS#GJ/WN&cd%Z9]e;A>F?2.E55<ZT0=R:$sKJGP.k2uj0=VctoZsK*:m?dC;5rV1XuA)Om[AkN&tMMbiA4M(HqDp/6I5EtpK=?aZ$G9QfdoZEHw&duaZA1`%)U1Vxp#/etSmjS,<@LBVZ>eN*'9q$jOEh=4@j@qhv1c6`Q%gdCnfT^Ne5lPq8X_L0k9QgBSLVUX>NiH)96+B>ll&uG?0IU-MlRKY?(OGxudvB04sdr2xnvV^^[4gsbL/r.?NCu1083(.H?OpL=FbRwj1Theus<cg=#KCWF+`3n-m`Ja6n>**IY2svY+2uml1DdV@,RH5eY[PWvT)V0>=b4rZI@r6.=E^,lHL.SmW)JD,=41L(:AkYO:n6Lj=`Xw9fiiKK^h36&'K=^GW(#doaeeo/JL87=_+vAsZ),De+PKa@/i2O8o7mi#ZW;[_DXSePf)AK>N)A8?(qhNQ1x,TQ4/h>E/PoO^8EV)&PuQ[([pX@M1PZh=>'t*Xs7m=dGGsQBsOO/9qd'1X2/`Sr`Sh?xtJI>&9kOB($<T[iL3_,6ZR<>*DXRJQZCx,#UsV-'`gCQu6h%9-nbh&uC@Pr`2[/iGW)7vhNJJTDORm957LrGk.9]F&D$5`g%KqJT[Dn%/N:ljLNe%=+;%<,XScG_UpqGp9'jIDJZ_1O6cr'aY:PM4vqUZV1(=d/QfY=LIbS)pZ%:CkPo_/IpWi)`A53:fC&5OXH/`du/Mg=ZPrXuN%1MS&ZO8a3me^&<$-?/,nQl?f,qP6:+B30Ucp0TO=>krlk6k+h5Ls.WFc#x#fVs6B`a?aIHX^tA'WVZ3rS'KV4KO:A]Xn+VPcnjt-RCLJDS35V1L6<q/,DqRQS#Kfbh?$Nlb]J67FD>IQM+,gs6XY71LCo=Gocm=:g1df.r_Z=@DZII/?ir434cB*cdC[^^Fm.Mr0rB'G]_*rVX8pp`<Re3=;BF#(Fn$.0k@qR1^:<ax++;I4hG$5a5tXkHE=HPFrmw0D1^K82NF9jZ`HAfpaZAD'`D4vbns2DKgY^dK4_pJZbt$KEW]@H5p5L[#qI?IaIY>=tpio_[0,bE&t<j-N.jb0(b&eGt%mN4i%;lMq=ijRM<6l+-k(^9,bjM@YdC?UIt0eY[u<SDxO1_ipp_Hoj&3/(C7wd*g*tvPxH%kLw22=Lkj?J-*9_gNnbqDjbdXI&flqP*<;@[-:&051@_r7SQYaZqHo)DMZnxxklui0HMlMB*oHU3`j7E9dNI9c^w@DHB6a0O^T'AkxnCo`4J(bG>WCtrWK>U*rDIWoif*_J0v[qp'm3fd:=g?PmfO1BONV>,'E4cB$EDQ/LOAW(ErJ.qE4FO]fG$'jac,r*F#Prchwp/4@-)3_h3/Mf8/SBwF>;S=1L.F^qaTGob&*O##Rpk9DB]H%grV#]D`2U`ZR^ww$o%r#B0_G5.*PZS(3JSOTCmBY?#XSoh`Q/#0b.T3&-%dXeA%]d>OgkF]+&qrwc:dcdQ(IN7?1oi*(jgua#_Ik>v2_Po$?O0&jsBds86,$RAd:G:%8a/_LrOwr&4mD;D>LR31`[_3WOnK:a:+*sUe&/F+[M@W-IM8UZ9,a'NKL:*=/#ThtFKnaPpiBr_BlYl[*`MIN>=GUl>j[]6;2:E29xHRO5V#p@NF:&K*ASPU=hU5Y6=CceK]=h8gmsxQ:loqJB+M<JD:0r8;ESf/_q_4)/cw9`9cs4>Q/kuk>F#5tYWI0^U+aqJ'JOTg4#AcL:nQ&e1ijci_v&s/FZD&xkCt>A0e9<Q6?AM.1i78uh85t>#qAu/@eIgkr0KMF2u`M.&(<tZWta=^+Q/7Q'vAiV+FN2um07J@?X5s?9XutI<n]sf=thW5EC<R;dxb-NZP2Wo41b`8@I.DB#;=jq`__M0_,rWrS`ECj2FSCMJ0fcfboAXPfZa8<33W;tNcM%b?HmY6R(l-(0:THgTOGV]f(3d5_%N(Y@I&EY]d&:UtiNnvEW<#.qq,ieg<,Z;*Xm6drPVhc2.Dpb9_o)hh=Tl@NO2p&?k:IQ<sp&gG;=feDBhDb'ebZUkGS(1lQ2=CI6B0rQY4tvjNLkfAfDraL=r^rId(IqO9V`Oed`J*@C7e^ZU)Qu,kV7*XbXiGLO;Pigi^Q8I4r6=ElYB)ZbGwW[OO]NispSJD]Oeg[:C,Iq6BLDi3TR_XsN#'P(FHGN'[:0_S*1%i+>?HiB*hOR'?7V5(hRsAuI^_cCkx^@-rT5MJ#=Op[<x.O42pu^5FHFs=4nRQd[mhN,,7%UgnhgWiBo+eOK'o1_:'A4ml`4-pZ+xuGcC0Lr1X6,F#Xk:d$<%,(`EjF=Mo9kE@,q$Oofl^]a.H/ou7tbbTkU'Xp<`>x58-/u=0?$XZHh,O:gfn)GbTndX*rp)W11k>Ef3s2QHs8[;t;S[G8Q&&EI'-Z4%<0NLTPh#k,amRX'c?%lud:GJx@UA1L?6v2H'Dh*cObLGqtm:UpY)m,SQlZ+a*8+lLjq$XA:,7^>UL'+74_N_w7Jk8J^8ZenEZCKp/<o^i4*xo2>DjT,A%%Z0=ShH1InnL/@sKolXm:2,jF'*_Tl2e4T-33#'*dSk4RP&DTAWW3xaV.M'0NDv)7)=R=e;NhuC)O:H@nc97VIno^%oqwroB>JNf4)/2:&M_5->F/]@2iCWhWr-N>kq)JQi<8VQ<HQQl1GG5>oxPoIo[v]MUYaP&3kI9e4rS'[<j%CF83HtN?/Nv&u.9.9'>^60i+ri`Q#NBUi)'le(/nW/X*cTA3AbVK3g;bst_k$'P+v@8I?&)7),cbNE$_#&L7XlV-9@?NuA(w>ufs3K3+Wp$p&`27HE]<1/#O&((dRvqw6=Q=;c?NZkEiN]I.D<q=p?^*b[(]N+ec=nEcmiCC'p=eleDlB[A[)I^/rjck]=;YWk,P7I`i&E'oKqMtk`GYYY9J>6G.0`J/#L(SF[wbF:?0^6CNrN_W%q7p9T*3O)o'U/r0WST&x$I&s+./pjKnF+iATPN/&H#M/P(+j<]^m9V<QP>Z.lXTi*MYSN$vTK%AKlbWiZaJ:8Q1C[%PA?$+?4jFGU@VM)<K.F62G@FVI:G0*-`vaIwVG*gq#1>.e(jPctt,q5B6e&bL#g^QHQX0D>]N3;JeFT&tHkoMY3Jr76gNKKuB,-*HGWl><TG*r?oe[n%_;2^cb3RP/^AJJ0Y6xNN'N*C)#+M$=@a7/eto/*I(CeBN:A4x.thu2]Jn')=MrC8I-d3W(6UgA4HnTweTimEh6och533s?U9,.qY9x3lhtu7RZMf4a9.BF&PUO;=WA'KxpVn-wl/a;]UZt7=Yr>voqZIDI6ndFBuZ')L]e/F0i(QT0&>80k=4-N,_Dp;`1-]?Eu%G(+So74e`<lmwZNNB_Du^s)tD.OOd<vKMJK6sAK%S97+6,qIYQT9?H*x>1$S72+vQH9]*+WNEj<mMU&hs),*Yn>>bv231JD1a$X5]LV^u*DgT,_t[9r=<^J+?bD^bAWR[75FkxLdw6O-@Z6vJNT@SIER)8mu;^H'&k:bbGj>=DL@^eE9dn>@s<kS9*7iG%?:DFt@kX,d6)G=m#Jqk?#4'BBn9)at`v0W0Ug_b'p&;>dt8m%'q@f)^&'(kN)d'.Kbw38:C3I@==Q1Bak8Kx(^ld1uqFE-nt&VBjOHZL;e10wAA[r_.T*N/-WqOHAkeThRd=)nRT'%r)`]pZ_[[Z4]+>cw.9:'f(vENGInjo8/W5L`B`(5cnF@;NfWOs4fm?]aEdnfe/fp,,X,gAsf?OsZN3*^L6Gv4i:X@h2DZS?$6#n;EcYC<8I1xLXZM1O/91,$FXCaPYfiU_(9OP(cERwp+fjIl2U`:9nM;^iJ'5)hVK:`/`o@&TMR]`,3d#@<,>l`,kkiW]/d[vXYhgZ@bf[PlIWm4NC._G%m?^#uUP^13=`L6O97YxRW2[V(C^]>QJ*?[m>&x[?6.S$8>G#JZ^Jd>_>W?v3[W]G`vbIsCe[7xCSD.(oV^(q20mZ%gWPhbP>mLGPLd310+J&pJoPtr=Y$8-k[:V$)h:8R?NseFFEJqNS.=tWQk'DnQ.Cgf:&5eu=T43'0hsrQ88K@URRf]BuJUI,_f`Ki$dNLkim1N1jQl9[*<bRp@;3xqwK3Gp'`Ja%L[>444_'@NdjBK>2HW:;eErrEqU&4T/79l)aJ_L&hl+A$EhhfYGvMEa1Y9AmB#2vDkuF_:@Gu[i-_S?JN/0tLUB(<1$.O.-r(d(gFp(u7kv$jAsAd-8:np@uF]ca7ft0[2I/<NY3b<+?3Y0W]P>Pk*J*(L;VZRIi]bfRc#SEHqT6#ne=;@7'GBT0Y#dnKDJ^d0*&mbAZ1%TT@d6O/:9Q[Ks,1rd>$v(I^+J)r+^JRAWOg-Q$'hI-BqfUEv3rG?],0Clxc+BB:4c;f0R`$MsfB5oul)5NGILXi0=G@,,/DQaFBl#m=7PlW(B2es.6vf_hEFX9GO>lwY4xhVjL[cVir9[_%G>(U)l]Rm'BE;3B5#=5P'l&+D=^4:r4s$g%)-S*MJd=4(+w1HSLlW%qg_r;NYwPta9:WkBf.W7J^F^5V-sf3LA)iM?<x]%%X`3wplYhG/9^L7spR1FC,FI8#f_g1`aaS1:p%,pq<^l1PE8Eps&I'6HGv^vl?S41vmnR<#>?T[m3XuS_xOjaidq%%t'sljOY73r>72U*DmabCnFJimq`B1d'TcU*K4X$ntJ,c>$rSpP5^@+h(5?d`#JQHGxwwqd7^=Zh596;Dgrx5EG8*1o+6gY5TC0+.O[3iP,.k<=nJo(05jWjwl+.dic'Dsnlp()K210ah@Z8<e'4X4?V?KSSW1er'R3TnJj2PCFSLRd/5ODNBCwH(SFeJsCtOg,0^.R;+^@6$Yl&S,PBp^kUnGE>3L(C#obta=wEoqgsvS'q<]%j5#%?89x3u26=WF&II&eono1'u#2%NB]BT4pq]_qNjdlY/@iAEm:s9+xSf5>k[#.KTD?Gm^RO^q8f-47u@WS^P$rAjx_PWq,>wi=KmdTm:te;^Z:jD%VWF7/2FPxkn-u^??uY;5rtr+xO/.dZl9YWjQ));:3GthUOCixo2:6QNat=@tg<F+Dr;J&CkrNHs7hgYBUXeX`?7K4AU@,IrNu;p1bi2$P*GLIenklWK`;>R1OQ5JYx.2G=^0It;KS]g<mu:&W8<HCi@A$$scb%^*kP'nm%js3Z.+x4fjs-1'.oTcR]Km[X0eNKALUa>am:Q<*e/`JqCQDGo,v7<,7=<1.4F<]J4d/ip_^NvaMomUH&qR:VWjcM[P8I`/4-^WV:7QraO99Eib)71h#ap;VHnl?HR=P]5kdKaKJ*$Pfx`4F+NO:0Z^Y;$0,b/trxmu$-MU1g@ru(P)-V>81kV'aTo.$?hSo6G^7f#mrHt1VPM?FOWIpR8kd'uH(;&McMe$X0PVu-iZ=f@X-0^x:*Vo'K@3/AQaks/QUHU6tZj*p-bW-5UZJT<:)@Y-1#:hRHr,6Ywhl*.kI$[j_>'dv_l.3I8#1Z%RE+6kC0s3b,wT&%3ktv1]w@Nn>+nHQV`g;3CYI4aBxn*fZF'7+1P*PZ3kVF`f7^L/P>lScgXUnveC;(76?ZP)I/`3e7=T'oJQA0UGt#n()8I`+f:5gnBNU&r#PLsDT/'t,kW8cd7Z9;8k'CEiZ%FkH_a)DRF>Hi>i9H/Vs3&3*BO14dW??8+8`0<',?1=#,anLJn*Lo%tJcGENOe]fh_90&l1E_@A,)j))fEE>[$<8Xr)s5n@:4a+AZn_d$ut-Cr<,-[fAxsY#ahNckveK;[$8BT$.s0cAHM&*vmsoW-Ws<V'I&dv37c/l4Oo&T<.D[nn7a2V;Y#'r;9Dol]6]]b=u?3RVB8HeXdA0U>p1+W*sFe4TI%S2$iYUE$UZe^>^m)l7RYNZbM1VMa1vo`&iTBoW5?Bp^IOLvT(VAWE/ugKLe=&`-UpJO'$x[xF%ud1K+j413tl<2>+M3;N9/.UXgKdu1'T<Di^)1t(+o^)nnB8sCr+7CB8XE#kR<1l:>&9[pw(-7]#B.YB'Y#846_UoSeA0Tw=Ceg.%vlI7n>oQZ$poW;^gBd[[Rp>-cVbbNf$sttF/CfLbXU<Y]40,./=sIGMQUs$)+ap1&_*Vnowb-4kJf&l6UnJZlDAlXcv[VWFAV7f*R<EaYG=7P9PZd0Yb'VK9cf4=&?bt/*4j]76AZGGjh,8_jvH?bJYXf0#&$*I:8oD=%=UBoEdhC^%oRJb=-'QPkM4C*&Q15-sUr53<6uQIeHH,N)O:wmA$@v,7m=vCBenZ+uWQJRIt*bU+]rCYmi3*^i)M#&jmnS=C<u(-o>:t3WDA_K%waCRG1Els4'VZWAFMChAPSE^UPpn[Hw_6,>=#@mjY1ZuHZmE4lrd0s>d:VN8$Wk*@v4/&oxDt'v<M1MhC^-t_NYq7C/ABwUTrGZ;@,E5ijpr*VwO)*,lE=Y,0OkAeDEkcf-HXGq?XQQbcPwH`VgtJ-eFCdM/fMx8acGY2nkA8^^2q(jKn<U.w@,CsZuIn?K(7j>1dog%+=5@uifnBDoNXV22A(PsL.swQ@#7bOY^NBUIn2u;QVQmm[&6h[Ru`4SBHn#677b%F,h:UD=58TP[+'aw&HPV4;nX0Uwph?8J?@Y@^Z*1Uq3u_<C,SPkL]9^(YK5WlB9EW7$-n;3D/d86MK8r;_,=bA58C.I8c9,T'$mt?TtNj,/f:LUU9FhjUSlj<oBE,n'qEN5m<ErW#C*UqeiT=;oHwVg*q5f&4-SCV2t>r:nQsqNN9('2<A*+;>enYwtbK_nujoMrQlj9GMs0WHxr,jUA.eq98%Zjxlg)rt6L?mf9bK)QIX2b>)Vga@Z;FP;Y4r.*r)5*>saFc*M$Y%tg);Rs1>-7)5::5#VW%@W,1%C7ATL#73Yac,A8>M)I,Gajq@>JI`/BHIdqJ?LLL$UwuJiunF$h=<[$4V#&evlJNL2mpdbV%:*)XC@YC8$aX7oAqh#TI]iOH%(r_h)*rP#7ObRKf<<YC4m)>WxR)STO+Y5V%ci614f8KTEHx-,Onab.EKBBl`6xqt+7XQ;0R1V_O>:toD9?Y<m1UCsNWi)p(llbt'[AAGrtl1#T=AmnEWKkvQf>mX[xK6Gn*EkOPdNX4*`:B8h=G?pZPeVXAEsa85bq.@lf<EE^_;9gph^RH,XUuIvSu3BBC?[fof*e+lh](Y%Z#Eh`t&lCV?_m-%/^]Ca8[Q8>U6YJJfIYm2BO3-iOm*6tC6IbZY$jl7<4tj,[dlt[_wNP<Xj?IiG^QfmWtnVJsc+9d#+u0BUaDadIQm`d9;VjjrW6oBMT/[>Whr<Ftdh<9LON_QA$Xd;BGJbBa&6T.MJnt_:C^ZdjV^ix;]tQ&v%_MDf3^:t06B-tL5ULF(^^4_>xHg_x%,PF(C@R69ku0C5FVa=]kL$^Q5/rKq>fx7[.I:L*CJt:--`&K#;$e&$YID#xL%Gs/_MJOKo4-dpo+aehacb[CM:8Zv>cp'm$--W8,G2?cYEIOs]c%`eV_/:>G^nl`r%QiOW;P,uC%ix26Wx<&82((a.A%jNCtFD<6qY#V'pxZVY4u`1>XMY3EIT>8dQYE/]/_./,(2_i1'+88E?/g/nR_dt85g9]sgorM].#jQ$Y,F94LtE&D,6eB)5hpGm_i*P84R6@nfA#BbH$VH]2@%G9Zs?kqPJW*VQfmdL=?w@KAb:cBGQnBS'':9u#B3eg+h%FGW43@R$9d.Aj=KglUp3QWE=+9k%kU_tX$$bc@SHw.kuoxV&<O4etY:OA;a(v?LsW(<>0RPD0g$0]6s>C<,5DCYPZ4p&+DT5gqCisK(#:_PI,-Uxm[$n,lwKeXJSS[ZFZcY3BsurRRhi?3P,VaOZ,mM6.x*e+tnt>$>Lj=J<BO$l<1;ulI#c7C45MWa<g>wJm7xamsChdkfm.BO9)3_j*@B?WQh*?#-w&[tWh+4LLa`R#@6IG#0fc2R]]pqJ-HP<s,ZsAlYq0V8[t>M+VTgJA?t9T$Z6A5fuVlO.31'$=L3jWMd638u.`'WF>Jd5:>L$*SgbXpTU,TDUBh#5lB<JBOW#S0<Qmk$]KN3T/Iwo?oPn,9q90NuMq3(c>*)7)2I<XRlfIoN_Z9*,oJVTUU+v=e5kfF3HVB`VM9rJ7w<Zs)qDTtkLEBEFBrfw[@mKAncsV5UubDT9Q.2pBHeqt'?cIO61i*g#c;3VVtLM)&sM0#ltJs.qXt1Juc@&UdJB2l@bA-A//I9I=3IUfVuAOEi:Ro&IX^Z]'_ciqq34N-?3@r*UJ4.-Jb9a61A6/ZTDsuSuIfbOx,:pFOB(k<?;BnA`ZCQeMrpETVfJRRNB4.(hcQA86Fj1e;l6RhS:e@>mS0*9/CYFFg_^B_?Jkfx7KaA9A8`exK.6T5(C63]`Na-<#?'ne)6n8x]lmGsJMrhRl/:4`N8.`W&6N'AtY0mH5g$g,-NZ*V2UdPPJAMx(PFP.,%KVQZ3Sb_==hd)_0MIpVf>U;P=[?I`bAs-J6b#V62Khq7II:s6gRtJ6>AbwAw_e*f@F:b[P/l?/ajc7(k)*6%<WX^12iIYRo_v'W^:7e1Kq+F+M2]/j*g-@2ca5RxS1<b]jh,Kx(H1U5/Y2uwd93jKg.fvFCpT`JVP$7v-5qhm^hJ,G*2heCj9:s9Zsv7ftW4hOTY%$'JhJGd[LE.*@PS-EBNWVwrvaZ(+M(tBt<cbrn=?(Fm/nh@V;sNKQ:4?np`gW^vsT/u.X536]IN0D8:umUNJehBs.ha'=6(Vj+x4?/iZ&s?>hJmEi]o]&$@A@KHR86*urC_I4RWQp'XAUMt]OE,'=C03HR4;0YmqTv:E=6gK0QS$XVU_;0i4^q@WYaE<n5B>3oWU`Kv3uKkag+SL02LN.^O;e*D_+<;Nm^`7C%&>]@k)O=0#89xijL?N943g_%]cE810#5@3'VG?orjKdZN:_)Olc)3Z:DtoxfX#*e,AChop$w1WK)bUB]YTh%9kODLM/-#mr9hhtb@s6C7j6gn7]LSZ:Wb]qgGU8_/>0A$++u9Na>wKb8vJ<*M'rAAcsdiXV49:>dc8sd[Y>upde6Zc,H9,hSu]<DRB7@jTqQph>S^cXhpBm`Sggw/Br8LkJmU4jM$G>[ef)8,NVGVlmq&V7PSUk8.oe.K0'-sEhr:9p[^HGvV4^UZ*A-%<U4]ZgA7^E2fVxt$-h`Z/'%r5JQ883&;Ra8C9c.s(?bK?j)l#7CZxWFs^J4LC)'3v1&-@hN'$bKuasmvpW@Qf.J@JDp'YC:k>2?$c4+cvK]1W%VUcf)=kJ(d%Fbh4QG_wZhCXW@d+jvAWR[#xC,1&K(,P$^s^r[Uk._hR$v0v[v,WR`$'pU)F+,>GwE4UW^TlfqW]]";
/*
krpano 1.19-pr10 ScrollArea Plugin (build 2017-05-10)
http://krpano.com/plugins/scrollarea/
*/
var krpanoplugin=function(){function P(a){return"boolean"==typeof a?a:0<="yesontrue1".indexOf(String(a).toLowerCase())}function Z(a){if(a&&k&&aa){var c=k.timertick,f=0;0==Q&&(Q=c);var b=c-Q|0;Q=c;"wheel"==a.type?f=a.deltaY:"mousewheel"==a.type?f=-a.wheelDelta:"DOMMouseScroll"==a.type&&(f=a.detail);f=-f;500<b?R=1==a.deltaMode||0==f%20?0:1:66>b&&0==R&&0!=f%40&&6<Math.abs(f)&&(R=1);a.preventDefault();a.stopPropagation();0!=f&&(0==R?f=0>f?-5:5:(f/=20,-10>f?f=-10:10<f&&(f=10)),1==n?S(f*A,0):2==n?S(0,f*
y):3==n&&S(0,f*y))}}function u(a,c,f,b,e){var d=null;e=(!0===e?"remove":"add")+"EventListener";var g=T.browser.events;if(g.touch&&("down"==c?d=g.touchstart:"move"==c?d=g.touchmove:"up"==c&&(d=g.touchend),T.ie&&0==g.mouse&&("over"==c?d=g.pointerover?g.pointerover:"MSPointerOver":"out"==c&&(d=g.pointerout?g.pointerout:"MSPointerOut")),d))a[e](d,f,b);if(g.mouse&&("down"==c?d="mousedown":"move"==c?d="mousemove":"up"==c?d="mouseup":"over"==c?d="mouseover":"out"==c&&(d="mouseout"),d))a[e](d,f,b)}function fa(){if(b){var a=
b.sprite.parentNode;a&&(a=a.kobject)&&(a.maskchildren=!0,a.poschanged&&a.updatepluginpos(),b.poschanged&&b.updatepluginpos(),ba=a,r=a.pixelwidth,t=a.pixelheight,isNaN(r)&&(r=0),isNaN(t)&&(t=0),D=0<r||0<t)}}function G(){e=Number(b.x);d=Number(b.y);isNaN(ca)&&(e=0);isNaN(da)&&(d=0)}function H(a){a=void 0===a?!1:a;1==(n&1)?b.x!=e&&(b.x=e,a=!0):e=0;2==(n&2)?b.y!=d&&(b.y=d,a=!0):d=0;!D||U[0]==v&&U[1]==w||(U[0]=v,U[1]=w,a=!0);if(a&&b&&D){a=r-v;var c=t-w,f=e,l=d;isNaN(f)&&(f=0);isNaN(l)&&(l=0);f+=a*p;l+=
c*q;b.woverflow=-a;b.hoverflow=-c;b.loverflow=Math.round((-f+E*a)*A);b.roverflow=Math.round((+f-(1-E)*a)*A);b.toverflow=Math.round((-l+F*c)*y);b.boverflow=Math.round((+l-(1-F)*c)*y);b.onscroll&&k.call(b.onscroll,b)}}function ga(a){for(;0<z.length&&!(100>=a-z[0].time);)z.shift()}function I(){fa();var a=String(b.align).toLowerCase();if(""==a||"null"==a)a="lefttop";y=A=1;q=p=.5;F=E=0;0<=a.indexOf("left")&&(p=E=0,A=1);0<=a.indexOf("top")&&(q=F=0,y=1);0<=a.indexOf("right")&&(E=1,p=0,A=-1);0<=a.indexOf("bottom")&&
(F=1,q=0,y=-1)}function ha(a){I();z=[];if(0==J)x=!1;else{u(window,"up",ia,!0);u(window,"move",ja,!0);var c=k.stagescale,f=a.changedTouches&&0<a.changedTouches.length?a.changedTouches[0]:a;a=f.pageX/c;c=f.pageY/c;x=!1;V=a;W=c;return!1}}function ka(a){(void 0===a.pointerType||4==a.pointerType||"mouse"==a.pointerType)&&ea&&(I(),0!=D&&(a=t-w,0>r-v||0>a))&&(K=!0,u(b.sprite,"move",la,!0),u(b.sprite,"out",ma,!0))}function la(a){K&&0==x&&ba&&(a=ba.getmouse(),X(a.x/r*b.pixelwidth,a.y/t*b.pixelheight,!0))}
function ma(a){u(b.sprite,"move",la,!0,!0);u(b.sprite,"out",ma,!0,!0);K=!1}function ja(a){if(0==J)return x=!1;var c=k.stagescale,f=a.changedTouches&&0<a.changedTouches.length?a.changedTouches[0]:a;a=f.pageX/c;c=f.pageY/c;0==x&&(n&1&&5<Math.abs(a-V)||n&2&&5<Math.abs(c-W))&&(B&&(g=h=0,B=!1),null!=m&&(clearInterval(m),m=null),x=!0,K=!1,V=a,W=c,G(),ca=e,da=d);x&&(f=k.timertick,ga(f),z.push({time:f,x:a,y:c}),e=ca+(a-V)*A,d=da+(c-W)*y,a=-(v-r),c=-(w-t),e+=a*p,d+=c*q,f=1/(1+C*C),e=0<a?e-(e-a*p)*f:e-(0<e?
e:e<a?e-a:0)*f,d=0<c?d-(d-c*q)*f:d-(0<d?d:d<c?d-c:0)*f,e-=a*p,d-=c*q,H());return!1}function ia(a){u(window,"up",ia,!0,!0);u(window,"move",ja,!0,!0);if(0==J)g=h=0,x=!1;else if(x){ga(k.timertick);if(1<z.length){a=z[0];var c=z[z.length-1],f=c.y-a.y,b=(c.time-a.time)*Y;h=(c.x-a.x)/b*A;g=f/b*y}else g=h=0;m=setInterval(L,1E3/60);x=!1}}function pa(){setTimeout(function(){fa();H(!0);null==m&&(m=setInterval(L,1E3/60))},100)}function L(){e+=h;d+=g;h*=M;g*=M;var a=0,c=0,b=-(v-r),l=-(w-t);e+=b*p;d+=l*q;0<b?a=
e-b*p:B?a=e-na:e<b?a=e-b:0<e&&(a=e);.1>a*a&&(a=0);0<l?c=d-l*q:B?c=d-oa:d<l?c=d-l:0<d&&(c=d);.1>c*c&&(c=0);e-=b*p;d-=l*q;0==(n&1)&&(h=a=0);0==(n&2)&&(g=c=0);0!=a&&(a*=-1,e+=a*(1-C),h=0>=a*h?h+a*N:a*O,h*=C);0!=c&&(c*=-1,d+=c*(1-C),g=0>=c*g?g+c*N:c*O,g*=C);0==a&&0==c&&.05>Math.sqrt(h*h+g*g)&&(B=!1,g=h=0,clearInterval(m),m=null);H()}function X(a,c,b){I();G();if(0==D)setTimeout(function(){X(a,c,b)},10);else{a=Number(a);isNaN(a)&&(a=0);c=Number(c);isNaN(c)&&(c=0);var l=r-v,g=t-w;a=E*v+a*A;c=F*w+c*y;a*=
-1;c*=-1;a+=r/2;0<a&&(a=0);a<l&&(a=l);c+=t/2;0<c&&(c=0);c<g&&(c=g);!0===b?(B=!0,na=a,oa=c,null==m&&(m=setInterval(L,1E3/60))):(l=-(v-r),g=-(w-t),a=0>l?a-l*p:0,c=0>g?c-g*q:0,e=a,d=c,H())}}function qa(a,c){X(a,c,!0)}function ra(){null!=m&&(clearInterval(m),m=null);K=x=!1;z=[];g=h=0;B=!1;G()}function S(a,c){B=!1;a=Number(a);isNaN(a)&&(a=0);c=Number(c);isNaN(c)&&(c=0);I();G();if(0!=D){var b=r-v,l=t-w,k=!1;0>b&&(e+=b*p,0<a&&0>e?(k=!0,h+=a):0>a&&e>b&&(k=!0,h+=a),e-=b*p);0>l&&(d+=l*q,0<c&&0>d?(k=!0,g+=c):
0>c&&d>l&&(k=!0,g+=c),d-=l*q);k&&null==m&&(m=setInterval(L,1E3/60))}}var k=null,b=null,T=null,n=3,v=0,w=0,U=[0,0],D=!1,ba=null,r=0,t=0,B=!1,na=0,oa=0,A=1,y=1,p=0,q=0,E=0,F=0,C=1,M=.95,N=.08,O=.15,Y=1/15,J=!0,aa=!0,x=!1,V=0,W=0,e=0,d=0,ca=0,da=0,m=null,z=[],h=0,g=0,K=!1,ea=!1;this.registerplugin=function(a,c,d){k=a;b=d;"1.19">k.version?(k.trace(3,"Scrollarea Plugin - too old krpano version (min. version 1.19)"),b=k=null):(T=k.device,b.registerattribute("direction","all",function(a){a=String(a).toLowerCase();
n=0;n|=1*(0<=a.indexOf("h"));n|=2*(0<=a.indexOf("v"));n|=3*(0<=a.indexOf("all"))},function(){return 3==(n&3)?"all":1==(n&1)?"h":"v"}),b.registerattribute("overscroll",C,function(a){C=0>a?0:1<a?1:a},function(){return C}),b.registerattribute("friction",M,function(a){M=Number(a)},function(){return M}),b.registerattribute("acceleration",N,function(a){N=Number(a)},function(){return N}),b.registerattribute("returnacceleration",O,function(a){O=Number(a)},function(){return O}),b.registerattribute("momentum",
Y,function(a){Y=Number(a)},function(){return Y}),b.registerattribute("onscroll",null),b.registerattribute("woverflow",0),b.registerattribute("hoverflow",0),b.registerattribute("loverflow",0),b.registerattribute("roverflow",0),b.registerattribute("toverflow",0),b.registerattribute("boverflow",0),b.registerattribute("draggable",!0,function(a){J=P(a)},function(){return J}),b.registerattribute("mwheel",!0,function(a){aa=P(a)},function(){return aa}),b.registerattribute("onhover_autoscrolling",!1,function(a){ea=
P(a)},function(){return ea}),b.registerattribute("csshardwareacceleration","auto"),b.setcenter=X,b.scrolltocenter=qa,b.stopscrolling=ra,b.scrollby=S,1==P(b.csshardwareacceleration)&&(b.sprite.style[T.browser.css.transform+"Style"]="preserve-3d"),b.sprite.addEventListener("DOMMouseScroll",Z,!0),b.sprite.addEventListener("mousewheel",Z,!0),b.sprite.addEventListener("wheel",Z,!0),u(b.sprite,"down",ha,!0),u(b.sprite,"over",ka,!0),k.set("events["+b.name+"_scrollarea].keep",!0),k.set("events["+b.name+"_scrollarea].onresize",
pa))};var Q=0,R=0;this.onresize=function(a,c){if(!k)return!1;v=a;w=c;var b;B=!1;I();G();if(0==D)b=!1;else{b=r-v;var g=t-w,h=!1;e+=b*p;if(0>b){if(0>e||e>b)h=!0}else 0!=e&&(h=!0);e-=b*p;d+=g*q;if(0>g){if(0>d||d>g)h=!0}else 0!=d&&(h=!0);d-=g*q;h&&null==m&&(m=setInterval(L,1E3/60));b=h}0==b&&H(!0);return!1};this.unloadplugin=function(){k&&b&&(k.set("events["+b.name+"_scrollarea].name",null),null!=m&&(clearInterval(m),m=null),u(b.sprite,"down",ha,!0,!0),u(b.sprite,"over",ka,!0,!0));k=b=null}};
/*
krpano 1.19-pr10 Sound Interface Plugin (build 2017-05-10)
http://krpano.com/plugins/soundinterface/
*/
"[[KENCPUZR$[@SJD0Vc*(mT@/#rpp]9QmfX8;W(T,8@`D=crK#7'eYlP1&G3T`%[(<]V#iZJgm%gbi0NFu@(h>mpT>*b@h^:e,TH_nXw1&KHGjD>]b1HCIrAfHr+%<8=?XH%a&uiP?u*tP4$w8)4jt7PT.w3>K_@gDle'9E$b*^;;P&N9ojE,*=HCR6Dw%upobgt]P-Z:xE]KfR]CE4nYF_fUcRQ3J0u^1H]FRgBldX3Y6e'oJwNd8mkbP#]1YhT'*=e>JN7KS0`[-Gsq/Cg5SIh8w2XY$eJbq;dTjJ9[@vPS)&>]Tbk'WmrmfuhT6Ix[xI.4n*.U,@o>FCSxk8v.XS>wSs7Rsp@-(c$aq2,Td/fQ[:X3[f%S'?&XvfRCRs=)Xk?#KsYI1eGB:S9o22E=6:,=2%K6$U7M0k=T'>)iWU-t2^Pnv#HAf$2Mr<89XJkpjC-68:mT?hx)kh+j7$%?.m=LnGO$gL`J>]P,o5&F[iXoQ5f533f]9rAE3bm4K1LTC*dEWDEiQu'Ek(JtG>je)q8J_6?C*uT6D^P3KOK**p14dXf30Dq:b`<Whk9x,R>9D-rf@;JR.u]]$n1(_iO20)IYrS(rk,h3t:]?gVn'nqF81UhLeLwk^isfAE6xkq87PoaiJ.;G_;X$rJC^g-hD+:tx>_cl=^0JbwfKMg#;USg/f%CYm^f#jSCUgfF5A91SK%V&R3>).m4KtwSn)?.2Pn7fp]iXAqM`DY_U/^Y+o@M3+OI5J3b]G(-mBOXx)4YflC5t;I0./NN46+MH>=DfUT48`th^n-OCtb]]Qk<rA2C*YguNW=qrHGxlPGr01(x(+86*;NaEt$^GMQEj.DCwCZA+WlmdrjZWlR:OP1Z5YlNIVZ^630e(lK4H]f(eh1qhvVH,]plt..?Cr_5[oR(dq0vQ@t&xj65,B8pJPRQ=o(&@&5E,i9H?E.qr3BEeLk0-SlcH.Z@$Cgb]b5C&F[GVhdY9q@gF;E=jqtnmrf:nV_6+of1TX?>xZRDdvb#l.EI&)&]b`MdF#eHK=Fj#6bV+#Sp_Gd0D;mMewLc8OwHjN*MK$>j7vZrAa/%^:^SSJl6TglJXRIq.K_K0fI1:$:uhJ:NEQbXg.Jxj^_tP'#L'^h]MgS97J5Ph2*xRgTT)x/^kD%%PjXf$=+3'p8/D4K7UbdlD-e$?B.]_=-cZ-T+xBV&^dqTBOgiP+BeiALu]MWR%i(C].(:;@-ObWXR^Yv7)qM:</G01=j>Li&@i5EVLp4atP9_A@;=i>UgQG`T&%I@_^`8&gC<2l4C`/J5hSZ^SLog,)t'$ig'AS5UdNaRV(9`g9=ZEf(1et2/4?]C0uQS#Rj<nq@4$>_V,nl)()dA`+i#3EnR[JOQG9&eN=#qKs<E*COSw,jGI`vE$=G[iXf7anb#VON[B3n;J[jYfglfF5X4q7MCY8<e^LVH)SqJ>a=BnR#sg+tb,HrYr6H-E2bS1sV5w/?uR?wV&%TRc:8j/Y^&empl/2K>i:Gw<ASp$)_C&35^<#/2-qfG?vmOQSRapHu^:2'0l?1CtYMYUF>E?c/5q+Wg50bw&9?*D)TU)K`7H^t/;N#+?3BAZI0M,s;WF`iB-Q<&)@1Am]S;^-0PY`pON/PqN,q2iY6V'FaICajK&efVRYdk*KKT&<u9%e&K0M;n1W;K`cY2D]b=o_elhuQQHD/Y=,/)xGlmjSAkcgDvEt)e6W(=_s<g92coafOL(&aMl6BYStibAZ&612fU4U;oU@Z99jss6c-p8ItGA_&:Z8HmXSu4^x_VoJPDV8,77JgZg'h(9>Q%aT<(iuGG+[A*q%D7W_K7TV(kJZg-RI9NxSIL$t#X)huFbW4D@O2Qf6TgtB3Z#T/K+;H^S<kg--m0_'rbtom,,sl;v:ZqI)19:(_eN0vtNn^[I?aHDMLOph_AxeY.6',#CR`Zru?n'1-]Z4B7YK.:qx4oIl)q>3)MqCSf]pp_jr5H4&9eTAeQnYQD02$],mfXpKNn5^`x1R(LYLDi[1c=^<PN%_]D*pj:3D6`/t:),`Y6422<ZZw;l'PGSRUM$%1e3E7Fa`j&o9KimtD=p6Z2L#qv:J)iGmE#$/iQ>D8;3rsDF`V)T,1)V9:JE:raW(>mI;e7:MPT3].Od9<oGw>wF/Y2`E?pWSRM.qjCqwsop`o3>^lZFe2SB#W`*;ori3wXAfl=%m,6swPnDlT,JUiVfQk=e3VWZ:R^VNP-C0m*j@@bsT52XDUv+5us8A,F:R<@0o#>>Foo=^o8I(j6QLLd<2Sp;a;1FMq?+Ce,lv;NK*8R]w]Lk&R_OdUaD6&;rmcHDjx(s&aOcdQUg$IcFOR6mgQ`=ljdG1cN?M?afG[36<j<%VNdUW^:p.n<b^X3=7;2E<m;7.J$YB5of;,i*R>K3F=2gY<ll>BZY+L#^Mh8S3sb@W#F_/6K@x>jlZ%>I4O$$`e9[m=BFdTB=_<H/76Kb?v<M,E:D*7*+e:Pe@ieGk]jYuY=0*9_vS_8R?1YRFG%v/dV,s@O].]bi<V;7%V*2_=B)v;7A6gCP`R*D,.ZK+g7f;P4Z]:M*aY)5lBTvH>1njrh:U#EPwl;4:(kk4/%4'3a,1]pp_]^(ld':vH;QITW/FZxC'1J@r`s^`%3qw$ZwU@AD=VVr`vsT:-aou39]MidkKdi/gQRj5F6U<aAtp<2B(hhf+=n58Zr>H7),x$ng;-LV>>#v0:,^axTYj=C3_b@IixK+%9TF6VD^]t>@Ata.WuY0jKhZJUrt>r^J:/pYMvkdS(+,`24RJov%w[[_]'O,B)#&c$bAw$`LalcStnu]'K%1Wc3VdQ%GRxcR;LMwcbh>&3jRHMQA-:8aiPkvnaK;.W?opZ]S8vVWV.Xl^]&(4tr3^v)#Cce]gALZBIeqhJGw-.5YhK+N]6a;R[Z`F/[1+90NcU0=FGY(AQrtOVK2v`%mEiuP]]";
/*
krpano 1.19-pr10 Videoplayer Plugin (build 2017-05-10)
http://krpano.com/plugins/videoplayer/
*/
"[[KENCPUZR0mRS%7^j<rZVqd7A?H@58(M.iOo;F`S>/PefbSp9kr,.-.2=gBqJ*@Ld<N+$q-n;52pDCJr;PdT&BS*5OD-#,v1:E]*Mv1_O]F-J4)nP6K]^QV%I%amLdLnE>4N*BO7R&FoU2FBDC+qY^7a>+5kN)91<9>RsT7PnFsNUGnQME[[0XB`kuXv[FCqOJ/m:BH+[x(Ts)DX%*^9-1:;]<t*r=MX%:S/@/YD;%-nK54k8rw/c$4^PX-FQYmtf_NUQAndaYp$HJew;PA$,J`,WjI5kv3[Bb,oMt/4Y@'NSo_2CTIb^475E1a#MH/,G4+:Ef^C`('84<K<@E?0ok-*Hqx8^JCx[LB--PBS&:;k+:`bK8DW?)TsT)=(/F9bamj)/iWJmd6q2+Trji.$pMnaIJ0M*T<D[,7Wc`_&d@GLe_W2BqlL#^0tP8pa3TG8-j(DgR/'n'(8a`o/7D@%?b%ZuD.#fi4dBq_kmI(&:plpj::*qX:^7^:_N3b:kSA)Q3d8R@PK>-`v95WafCxG:Bb5xxjW#f,d$CT@M0e$#)Q.5%VeGbICgqTOLOFLBotooM`g3ZK0#rX45J(V8hh5<7Uc-Xj5V>J4ostjxUN3ejsJD9cG3e;-C&G5Z)R:(a5?Wxugq2Hg8BY;[&oRu,[5'WtJg-T&R7pDfwk/X)(i/R=Mf<8_G8FKcUHGSx87c^wro>WqlT)gNhPMmYeD3mxTqhOFQ:LOviN02753pii.kfwAlFo5B*aHd^S:DbC*u%&L&v&cs;_B<HwfOY:jn#$5AA4$M6`1baaKc2rGr?.`HHA-,.hYx2Z<Vv62'WEw`;sUZpcJOlZco=]h?S(sdUVv]-eMIqQPs'r*24eOE6%:k&S7Vfp%Cn=aMn`A_Vufav:l?UfUl0Hl#dwb^c`]A`A6vS:,H&-D1^._,j).isS'^e#:BHG4AMVWTR#-oT:=A4YH[`V6rf/&JVv7`nb#Ft(VU-t%^>Qs4k?s/*-`cgp?D91TXM='dW+IpSoWmgVd4O][-kiLX..8:/=17N>55iGSDH[Vw9uv;lp66UapJUAPDBOLxMmpO[mOG<g5-qD4)1Y,`_9=5t:^lXG)n9HgDSa9?IDseIdvS6JAwvD:,7Vf9t32&RRX0>.:O]jJrUf?4Pw7qF&64Eq0[c=/=IAZ.E/Ks_ZdkvC<F,<OCD058cP++2tktI/'X9H6q^,YnI%(e`5=g/FKu:V+uFw(=eCORcO4eAR.vFR,DN._Sm,#/r;Q[bT5A>vo'S#mV$h.'>3W4W[%<Sj6^KMT[;<m02a<Mer%Cl2e9T%BHv5<:o`[TChe.e^CpFGn9HEDTO8JjW.pOn`J/uQ]GNheCb,E8t0SwW*4f+Hd(M.WCj=Hb^*Y:HV3R5A/ZldweS@/Lqo_8pgqICn9ZJmm**u)(e#kVP1$2@8=OU+?Do<<o1G;6eTN^+38l)GS/T41,glbd2h)JEE2*itWa-*+i)t&P9g7#W=tonU8f&S&IU1hnnS_Q3%5G(ZH%-89/IZUidAv0,<5SnD%'<a3kDaFav,p#RJoI*avvR`GYV2%ImPoIPt3)EfZ.8WJk*&Y'Jcsg(Zsbta9;@=)&XWto:1.`tniO1.]pgUIZ]#BHw(8&KKJ4.t1<KTki=-?;Y7cKX/^:G<)m$V07x*AB*l^Eum3p.A/nI*jEN?f#/gDox0g($A0WIsw(FYJrSw(+@hwY*:+(?)X19d^),_08p*]Y]k7^(-/DFx-b8`#>4Eqa;ddt;MTOF=@n,3C)IE[inD3a5'R*@WPNpfo5-()5Y1KISiBp3iZ0n@(;iOcYB(8q1%,?VUnx#RuJJB7Dc7Q1;VX^;9d+[[?40]iH>YM;C/8n[>HM[d?L.n?NAJAI<-:?63ZRj>Rn=aidlUwFwae5:@kLP.f_]3(-L]tYa#q`N4m5]O'YGPFYRqgrRbiX'$uiI%tBOX;?1N&*g)i&DuGBwli(kW8*QYAoOoYP^6*LvAUJ8Lu1BJ6%_O^_MS;eCj/5&JMh/U)Lj*2PE)].Ki*Px9hG'x(A;APRU&[JWH63;Fnk*v,fkHCo)ZFRngXsW9Iq:PS#B6ko67JJQww;.fAEoORu2d>Ghp=OV[HJs-#;Ndt.Yuvq?Bq36LXl+vA.12+tD=L%C2Zrn_:B.?avliUt4:]c,X;<[e)^biJX5,-SQPJVJj#iv(dM/PT,P6&mT'p:dq.5t*6NQ-BfaQxAi?%X+;5C=u9?ucV_s&PCB=x?cB`xH>139%x'WhpLv9_S&=LY'D+eu$E[jDC8c`S0dV9%9oAbX6O.4PJGqC.&26,c&>WhHwV1(@qFdY=Kx_1_nAiqhp7BF;d[[-+<s10d9..B;t.dC0;NMP+=oAIs,n3m05L+VU+m)&n8c@:to6KZo.WGi:CKsU?4?%+C6IOGA1ds?;2$OhdvqSOaN4&nKN4o.HRi8F.`rUMY`P[dv)QU-;;#$,a?v?,@f7cWX+M:0KU9]KcS_v.H6TaI-Tp:c'dl>JR6MLGxws9u`nXa'lswY_@:Yn?EniWDbf%htepl%r/wYc:u4Lu=^m#;?]4_:1TN+6MTUES.GGuBHn?)cNL6'2$HLL%ageOmP[d.'aqj[::'B=Og3<K+WlYLYevkGhY2`hxFs60b1%Ncak7wH??e[@kIaC.)5c>qbVjqYiJ@&E@CmW?^@:Y+<29e5$ROhxKEj19f3Y1L7tqLs&L4i,,9_@iUm8fV_sD4tUt=T=9A1loe3/_g>BN<GkaYS9>4`Je=Cvqp/,_-)f2Z87V`kD%m&&9SmfJFXs37kghc*+8e]]Ni4Aq&Yo,II'.9fOvSjn,Y]'Aiu-/&LEZ.%Jg'71?`frCme`F)?n(PxZjX%OrUJ+<N;2B6v8fIn?jm1YVCUNIE>`?%]V=_x#<]p>P_E^mW,fR76VdH]2qLYm;:_BB<X#:0^EOCV)PXlg7&M</Y<GF$TDpYGb?-YmNpjepn2po7AMF;es-h)0xu:IhSqUr^:#D[4c<D(ihUMZ(ux1)f`<>^w[PC7pM2j?n7vtf>IAW4LO&QBxKC*[x5^Ml9l.P+ON,U:6GkxhlVNiUbS:Oqvkn.J?:V+q@]=xZ);n/0QHcATt%4a/wTrpAsoE,J=uc8IF9tI48MYn.PQ1b[hUVSWdU;nK7fOA&<>DoMAE&UtGoV9f+RH('HY([3J<,gKtS$@]%4Ax9f/@f5aV(OME0m2T*H15J9b?OifLp%sHaVwY@E?0=[#kpgVfmf[+kw.-oCX6q4ek@bdtU-rZ.6d]RmopL/R6(HT*AFK3B_ZbX_I='3IPbQS<qeg5w_6R.@5^PI(X*,RXfD-B_b0MBa=+pDFcu$e-T;^?rLmSAjYZgjR5P5_H?LP;qi1#W^BnJ1l`;J<$4ZFbD1NSolwdI%&ji2Y]GMF@A@2m34b8I<`nn7/v(5^gZWs&Y:XSFeqr&NV,>1A:sD#L+JQFIwP@cG*%,Km:Z*3:/3_FWD+o$Y)9F+gkLJ+#+k]5KUb18QKOnem+go.qVw;Bc6o+nc=A+kZ%0B(fjI(O<Q7E)j_Jo)`^9+SDq+@w>/&@+O=u-h/j&7gEDv$F7Qsn:Ui00ajbPLb;1nK/.THI1poN1*paC__4A5MHY,GjRE+S*S2gA@?+r2iuW7.#gm>iai_RsgG(QaCG:U?_[ms:c:8*#6c&(]M94O&ZRtg[/>DV&CA_dihol@bIdS27k)sVhM%>/CBIK&Rve,_FO-%ZMsd@CJ8:NcgW7_&enghS2iIP=EcSsm[A)Vxax=QhVFH;jsAnC.'Vd4PAcFtxR>@ae[9>7LLsd6S,_Qu[Bf3<63lv3.VkU=Rti=DeQX)HbwRo,QNLtr,1[aEEW)M*QoG>.S]n=GkxaQa>$m.Ulf7MAcOLJ&riRGFC%SXWZbSXs22*4p/qjBkTurssGBX+C5r:9e6=OW@Vn=e(0*v$ZNw5j#D7(-<4/5*8-;IJmE:*GunTM3hX;+I==r4gR#3:2^%PX76/'f:*&#+'<(ENmu%_bv<9n?H##t]SF?_Yh<&+*ILmMR<BOa$s'#du*=#GbuggQv-AgQ6,Vl+k)LNH4li'<(hqo2/w78Eoh5O_+G./l_W>G.NF`S3UTW?(wQ7l,KwqU;[uI/cSbh_E?'2H&dH0)b'FZ7n_4Z8xeN-UPQiAn^/Xo-8?@9_l'sWjf0'E[YLrV#Xx5A'+7EfVFx2TTtguT8xNIsQ3wPK?>&?IDf/.>;=Kj`c@2u$,EM>Pm`9CIDN>hn<r`8Q-M?>ah)N[]O0=:7::k$V.wWNDM1Hbev<hTHSs?:CouZ@VHQ;%laH8NE<9lutv1TBgQjxvp3@)LAZ)W^k2R,KtjT8iYt;Q.D1)LHXK/su_s3/qF-m3KZH#L'=D1;TZ2D;-_+GkVg#Sgj$t[rP[1<GM.V0c4WwTaDj9tZG4&7Pg#^L<oYgLpa99pv)_hJgMD$N4q?[P;F9Id8VAj%(m&]fUCMZXOuX18iwFxpvCGR%TAGw1d^?>g7cr7#c-CU^6'e?:rn6VO-)cn4-[0T?U.slBkRRm>u,3<td5qTPmK]B<:1(e5iXKwGPKF`DiR?[XTk+?gs?jxV+W`E.I6c>-0)RIp/-uNrt@l8n%5b%<ouLLIdQ9,e[J*-Z/Nv-_kbSBtL?e3IMd*c.?W6KE.GN@Q51m@8P#5fZx?:l:bgPiLKL>>IAjnovAVuRl`Ys>58`l[#,uP4q2K8x?4w^69t@Tfexh?:)%sE2ZLnS1wZhQI'p+Q/wb8&X&ONk/.(O'7n<[@W:^FZ&CmX+AtQrit8RChK0Vi><^Bi)0dT2^@.kj+AG?W^3=a&-3fDarTA?db]2Buh)RKRnBumTQtZ9r+E+^Z$BH<>'pYGF])DLe(nVMigx/X>$Te&dgtDg.5:,`FM'-k8BAX6Y8PXaAOW491ftd'073GgUu7YQG1[5up]StUMhr$DF1Mb935lSkGh7-2DFqU:K9f_lM#_>w_ll/-`=vV]1XlXl]D5fflM([86tsomr8E:/pZwYD4gOZ(=8Xg4`[.$QOHqcHpQ)ANX6V8'CpLfhPS=?jTrVC#Xj?D3'qV]AnCLQg2`P=S'rd.q)9'l;D:8m%E<P7,CLplDTi,r6O[@gY;FS%*x5oI<@//7&<9=_a;>>%-CQ5LqGo00'O<IWi'nE0;$n4swMm^:pfb--Hk1$sc,o3,k84C:4q>e[Za'qODl+/qN#Gq(ks]eg:P.aMH-CJN)Gd/Bs^7<Rjg>Rm)-/ZIR5CKAw@IJeNN?XO)vih%r=J).<(cPb@Su<-OxAL6E]5v_X(#rLv'a#;rPgdEK2#'M9]^i7cs93(_=qdAS[^Ar+6Ra$K=:8oH^0VfRZK[/WR$J+OhH]m;+$-B#0*df%OVA`,50b:S/$`MQ3t1Fo(E$.owXe:q#>$M=2p$bGSWIZB&*.^qX#x/&Fo1kwZ)bp.'`KoI&3<@rUe<N72?*IM*f3m;4v8-<334vTS_=_Xd,Agq#*Du>6EE5jnSO0psTM?mufGH)x`@gO6df9xi-WSl%e(ikpD1.O?1CE=(FMK[?Sc4*)X$`i6<c8(K^:g0'Qnl2@odlutA>n_(a0g8l,GP_U:>Rw;p&PgR=n-6iFu'ZQO$MRuG'XS`N&moU%%]j(N7w6WF[.Ju1]36C:.F%CG^Mx,6=Xd?sRU0Hq?n(@ONI''HfB@g4`)V#dOjlAhKK)Pdw8;as8s<tnpancGa)<b3^@ui^lF$?d]NqpUt;fCD74]n6^#[b)TlJUZYM9^sMaN=G@__f=?P=FI#VPX`[R_ir9G9O/-sPC0$X*1Ifh]+3iAWwi9`.%WQ7:J]M5vLR'N6_CX=)<hE]N<25^>IdvOFZ<>DLObLX5up>Vi^h6[)^^1><JSsxoUf(+U]hpqHB6Sv#e6puvW[e<v78+SPP/`A?V@=Go:ec?eEJ>u1(.NE48Q1:Yfe;nm5]3Tku@d-`*06rG_##b;%>AHqQ1YDmBIN#c#m%UD#jlcJHeJT?'*BYllFMETQU.4jQN-JAx3/t,spPTlvYFX621Zvm]2#_FjnYiZq9hY;xS.Vcn-MN1v%6Z[vI:D@j7%oWDPWH0:IirBEeEuI`CE5/4')/5a,GiILtTs-<:_3c&RO&Fj)Bsifh_S0r9>_aSp%e*$JwY4@Z=[0k6<indDhck3&n-G&Rh-5:dblJ7ow8)R/2d:NX/5`S`FT$UC8ims=xhsV1g:cg+n%tOZZJfjV*g)Z#S1]'DB&U(VFl_TeOQb1n`QsGYgN=<*lX(m;Iag_H9)3w-=GCt%=S&q<I*J6*7<bjpgeo+qo>,5a>`??[Q&<m6kwKgrjWC@XF$o-Aqt'UFB3&b0-u(L26IP0ViT7t>OC;*JC/XZ;9<>(v+#If'M^_>aoe/X30Y0n5E,,a`2n9d`2'3qv/6M.<,xL?4(Og&RFv_V6P'@lp$+MqSSrsOIEpYjsk#c88ia%Dp?1sO,ciN3esxCS&.#N1cc02h.X`sne^Q<M7b:hLnLP%>*I6lOpk6qoN+S4fQ*jN;/Ob3k:a0*CV&+jBIHmA0D&?S/[]<%6uu.=O9`*_94,GnNm&9R]0plSoq(oYo:2xbm]W>8I#Bc=iIOC2qtM,bhNv06j8oL]so.rC7XeF1x#tZV7?9)5T,#JrFe>FQj^?`eB4=;TrNkMUG<W(ZC(frgafpio:n%X*8oVm9h#`,.]GSk7PWMmYPRWhI+0g8Mqq[D.sCUR:q:meBVp%`fZQ>1=_mq]Mt8Ppaj]AktmC:swBHd1[40Oh=f_5r.qNT53Y?LO75CuE^Il)=lN<I<)$t?)nbQN+vb.])3hkxu.BnF22xRpU9O&uXQc_%1.F6]=e:oc2u/,7*B&0XuJ4PI@]p>3,?l:DJ&h)HA=r@fY;I>Vu-'?lHQrLOEBl%Fx*qnw5D;jnRKT'/_+'`o$F>Vlo6wTg)@w55oqjdS-60k8`fj.K8,U9M]'o/Oo9R2qGJGOt^0-Pd@/wtKt@D'DZ+LZ$l,wDDc4f;h8ot15?mXpeg#1-eE5AE<Ck*C6B`TqdZX<a#NK%Ke,d<14_o/*_?E+?fvTth:4Ht,m4w^:P^6uV&[slrq[LTUt0LK[W86wHpU<<7p=XDHOAfT#o+jnfqc*?>$Jf_,N)&FM=[^5,fB&h?8:L3NR-qm_-J'n&hT/4cj-e8onroITk8Eo36<k9[,0LIP($E^lwuN*`1g8H*ucA(k?+`af%$8-fAggr1+3uK1:8F$;:>fG+<;AvW(rS5<o?qZklEi?&HJDF5UXV`?KKb>D^m9)0:W]sq9WuG7D6P.Pp5vYOUp/5I$nP[JQBaGGZp4S3N^@qVa+dB['E3x:qpTF75>n?hi(c`0k+l_3DN#inmYD?6Vc&:J0^sE-Vfq:4DA$FoECkjTM]8<Q&EcQG,-B,mAJas;K?;`N*nw[52mn7j7aS>:l/:xCdk-QlJ$V%@xe<p>$(CiLTPJR(o0CKgeGE-++(rO3[;q/.=#xlPu50S7`U<8,%c6+^s:Fu,;`*k_8Ji(:q=:JF-^xo-75?I,+7+niibVXLn'Qc-ex8AR17i:f*PgUcI,Gk/pjfltLnf:7hXH3Rx8lhmuJjg$IwPA.rk0%<PcnosWwiW6$t+$W+,'4Fn(AkOI8uPD8Ppl]>2Nf0&k',L5wo)[n-m9Q)*O=e8XSGDXf^N?Bu1X?N8IF.jVL;arG34jOlbMK#K@OI$M1J2cT%^uOf^j8wsor$5o]9o2/5&`XR<-m$uq@fhCc,FN+OgJ2pZ*H^rS7:+94,SY1$hKM/NfioD64(0e0$5%@2if%&*%jJnGo$qQoF,DETviTWnq`)v,U^;-7_uLpllhDCs8pFQKRgiSQ8/*0pZr#SGp_]bL+Z@?G0X.U%=5Ko:>];k`Zv3hn`2(S.+%v4UnI`%v'sETa?)7eBUA^0pd_7KA<:'+q[ZRUj#0ROFE+7X(8FN__t_5AEG5:D9mAq0SZJnp;S@guq-.cs?H0jxMnQ`s8D+JS^E_8qW6MbZeRXP%C,@kIl4dK1]#:`'^I#0l9X@jA7BCnM'xJniXn?NpO@PGT&a9/u-)cKgML*/Gq^TcvT_OXR((>Uj570MwJS5ax1WDaRa$K(IqJj2w_`-Xnf@RRF=xl+$LI4u,x5/klWZ/g'+,1L1pI+htQt`j'*?'W>?hheRB.WX?^&d3Qc?G'@a-dXb/A7N[3gZaP^G@Tw+L?q_1g6p`<)PR?[ek:6-5Y/eX=R,-,hVYcDNOau,8m=RTZKHDq0aRj>K]bbKaH0$6c*#YkdER*I2`]B_5E.i:uD*1KrB''niObP4rVm[8S<gMhj@ib>oFOT5i@$tucV(X0XdCs?d2r`t3teYB2ut5#_;fpgO;(aoLSW;tX2.bGPU`tJCDjl@H%>?*xRamsrOpWtVW-F)iOs(?%0Q7CiE5-8c3qv.lBa/5O<C&f9k)K1bX90ROkv[rX=Q[tQ9kn#7ikng/)ql/r`RluHL*B38Zma5FKt*e&A`r6sJ6^;=MqBg]=sZVbs&o[oiY@4utaw//4o8QN=b<4pc>jpNQ<Yj4_X6kqm`0`bMqOs.h2d313>R;G.mP%>lW<ja_1MR[K's++g7emKrs2hmHdHST+/J=8Vl$OroJwg8puw@^gr+b@A5ZU2k=H;B%i<@=&U8RW6K_+VsVonTdCFs=]]";
/*
krpano 1.19-pr10 WebVR Plugin (build 2017-05-10)
http://krpano.com/plugins/webvr/
*/
"[[KENCPUZR=%CKr,4$-=dko)KdO8:fX'9YBl),#2s'RXY$kP>niM1AdN=sckl,:VtNkT=k9@gS:7e'I5l;Te-Zlwrn`]'loN2m)R%AZ.I$?AeuZ#Hi,CHB9rjMlG#CeJT7$mcNUeCL9jB8(qflXq'ao>w?3r2<crkq9c9g8GGPL`-=1<a=j,'V8HTrjg_qN5Dcpdb]7x+ni$u3xZ_r#F*,&*wu>A%Qh:CuA^u>J&x#E[a;rcZUc8XbC>Q^*T+Mtu/8ph+)4tl/#33K`NsXi2?p:.Ff<Dq3[8;]j$]<;gu7nh^&Hg`-9UIXlVu7QPQtlBq[2GB.bo(Bbp35:-UQ[d#,x>/tso>V_o6`]UfWF=NLWGQg(ap%-b2.^pm$0N9Uw#aY(Aa+*$kuD^[oQ)41JGS-l*J5i%wVp((O(oNU;xf4.3=*]Klu[blg1OQW?39n9eP$d@a]jC?q)pJWPkxY@i;k;Uxg_3W:DMiuSHm6Fm#AkAdtC:ApBO@p5P)uDK.02i2NiWRq0]N.o+-qZZ5;gNq<ZhV--,XLCMNRh4Fl-Ksq@-tQfcm..1jnd<wI)8O)juw9et0Pg-HhS%h#fPk*v,m>TIUXrJE#'Ww&q>-1^DJ,E@(5)r,L5<=S3]Du=1=)>`d*RY,5>o-eVC^Ce-WENBZgfDdYmQXOpV3V2&#br^&6[X^(]Pub68b$8Jrw$=,BE)'EB5LZ-41E(@q/Z&dxY#[VZt>SgKu_IbIJDX3=M%.RPl@v]k4q6#Fg-C@x4u@&Y6(56IJ4?jMa`'S_9$]DGd+$k.R.Og1aW?kp.dIggRj1HxK1jeI34:K-i2uoDngg#k/I/8/'%$PW_%;*gO*KH*t4T4(7[8<dT(cgXht#PgK'LE($bM5G7Lwe$Jte]D<A#&b%@c#0a`$Q;>dL`0`#0Rj7Tlm)H=4l^Fq@>S*9Q$?Xcf*x*h9=A:[3>D_7q_#/K%h&?o(t_FbqNG<dxYRDC**VE;x=Bnmv/AE:6tTK,#ca#Q;P,exK6_?g628$x,HVVEWN)lgm-$nGcK<XOuR@CM8r7xvRLs1UH/Z8+V:71uw;Rh/w>PZb3j8f:n_)l;L_4Xkh*P1iB:g,^i=;+9lT:Ms_=59jM^O`0_G/qHo-2Wm6&&Q^1:hF?uHCt/e86f1Gf+E-s@&T=9+us<Yi?d0>:%wQN)2cld278UTUG`Ya@MK8@8-,W;?XY85XVdNXFbRKuQE5@mEWC1;hU-$(,J1+.'fNx$YRwY1,<:fw_f4NfGa;p#ft:xo;f*asHjg_cec55(m9kchO0nY(2Hn,/CS^wXq*,v?<FPM=:t+f*LPNa=8-^6hq9CvY;_TH*R0cn6,9PoIO)b.Eta@102u<cgVS=tDGX1g;:J[@9S6q0fF43ck^[Nc1Mo/^w07r-9n=W#<q$$9R*oU22=)o_w2j)vP>q+_:,:6/Ig`0>_RqeI&q)/'HLKMnmKlx$U9KB8J>`HoHr6$Q]2F$AK'L/8/@`#OF<$pt#loh=)&rrI3A>2X6VeA11XgX2WbShdr_'vU`JP-'Q5YF('0unVKr.0bR&U3c?DoGqZ3Yi0JU5u?/DxifJ(Mt#6n)6.].=TpVB<i==;ZSKiZ2mvDYs@+XjUAR_7nA;E0/w$c'-GVp'0L_4hg=u#+/si)WX?_'sC18nVGJL<`UkEme?es_SK:t$h*LR<AVd@pt1?N_@EmjIE+J(`Hd6S'LbC=Xi-c2.fl&)+3vY9cnQKs&H`*?0+Lc3$bkm&a?Hmeq/s'Xel,P4jXkp9kFxC(Nb^RHV5'+-D1'w(OOQCs$Dkn/]?VIBU<dYON2q5=/OVZU@SRa-6m]'g$XEpJB(O*M9MvQuo1>dcvYxhQFARBi<)a86I02K&:5es@ef>,m4bXkw>/5&ufRs0@ftbCQIZ5JpM.)YUj<NODo&6mZ.n*D[</'bdo.w7RPtS=t^9nWH0&aBgAkk%1OX7H*x#ZIlO735W5-smG#3H&caLAg&U9H=I7?smxE_sA8IrMr>p`bF0HEr?&nAA[HRJ#IsJKkak=c$(Zg?H4]w%-V+OZg4<A,T&O5IQP)-9e0''8[/GpEe-SSQ(fsA$7_E-i#7]NpJ&bdSZ;XE7o2q/Ngi>EmJwmg*Q0:.'3&pZN7#6p=j&D5DYN)6RPqSNf_%*A=,KP55DNaa`)d6U'KP<.[8VBT[+(ZNg='=6.Q-e$o2Oa:5G?r1N;rF,8QY$5/UU4iQB6rc^][&e'US1,4CJ`'a8%k]^`i'X/#Bl4h*$,ec[u7kH,j4xixPl-SndLRamj-gK#W#gVdK0Zd&xs0?J&oSoDbi`k+e@p0837j?C,x`SWAL$UQait27W1X6JHw6i#dJsD0XnT3ZivT<[e`;&6.9GN6mi;?<ccIO@N)IAd?wpHw?tTgtoGg5C3/BX&-i-3TYMYGIr#RG,tWb_mJ1H&&S('$K[+4,TQghA6H(33lKN>jS$'*=)I2IKhVO.'I%ZsSS=+=Yu2>h+Xp:ISwTbuSXF<U_]I_hOs5BQbAnc+]S?G%uIlWOVYCGJS8HEHMY0YVlA=FlJ-KcBk0)YP`:xcfsX6c)fmK:Q3Pm7//imGf.4L)W;9S/H89&@mXt%ZSh3wsjFEnogP3O[o?kg_u1b3khmYf)ku)cqR]*:M7nV_r]Uq^m6kAYp$pk_tV<25=mXw/IomwS]<=>%SqUf?8B>t[ZMU`UmU$l1f^K'((*&<FIY*uWm]bs:Y,^SCHO(r8-a3$hj;=]Nh@<6W:;2`b]Aj.m7hLk]AT@?DUYWJ+Pfc)Hl[kTMU_IQ3hiWw0%TWWYm-WkUjo&H^@0iRprDnfSMTB(.E#EvX*AFQk$&LUQr+g,%EIDGRMe,>IBV6vMR)0l4N'EkxX`..vm^uj<%o,Gv/lM4?Jl^Wte5PI`(oR-m+@-uvI501lL:4?-QMgWG6e1Qamx-S81pV-fA[hv[so[`T,T?V+[EjBL<YH,MWomc5R+.e(_J12]HlOpb0(:>x_4'OF>qcD5=6tu&%=Vv@fDFaT_U+aD(]K2@IT.)_&oJqMCg75$$v-sa`:OLwYAak^oObo2S$C)FnAjxOX:,`%@Ou;cClTQIE6J*.%Ha'[=nSRN:mQx:Gjv'3m@im=eNDWS>=32&S>)Ll,NDVX?RK%5Di[K1jYpsB1PRNxt/0=Yk2lc<41lmo`=l8Rha:$tI:&7<kIVl&(^]9nn`Wf?](u+Y7b>LaoU-U*N0WP+B3(wBjv[Aj[^*t-;dgG[a&6'N[CICH]f<3mvCip>&JhlTMbimJcX`+J[9cm]^$Gq)C-W=(pLTJr.]F5Gq=Kd^V`9/Nf[AbYP;`ek'wf&;_@BF)kQhB^P*P`V6kiBJO7v0(]4-cD&8%r%O&R%593=^*56_6_Ilf*0vi4;w,[3K7Oe[nh-B0uM+N:bNrG>Kfasj(V=jp0YpfnU?tR+@Qn3UF?)4ks&@vT(f_&iL8ee>ZehVAE%j[5PD,n3T8s>fBd4nj1_^jK2p8EW4Vxe5>+EM#U*eX2'm:1V'h4dgS@7c2e$2h(Q,eo'1BH)D-Q;5p)K=>aP;*(kbS<4uC[-Cg(4e;c4c7I]5[/_7xx=3@w)/q5uTnP7Popg:_<i:PYh+W$Yd=vh'SJL9^Ji,]Aq-TqCZ3g6,i@8::wY4T=@J2`qOkKk1)B$bR/gXf-%@-;?-;IBDSEBoqW>Zu*^>fLjfGC[H,Ce*F%bg1n?E^]NkSxSVMRRbrBl&L:hn9NEgH1[MgVR%XHM;O&D%xcxv<BdYGhhbe(IM$DVW%HVNK:k6m0iF=TCL&)U@d4j5LfNK)aNSi4,T(#'oU0M'ALBHw8rI`j>ku]KsA)fePg(t`OVqcgFU#?;>qje?6ClEX/qMk1#>Hf%BD=fgs-b$''b?&$[dX%]a=-wni#W:=qJ&ECte>+Rp,W]w&LH<p$SfA.D&,Kie`U7HLbqD[:?;kHW?C_C/E;mR23_G1g6YdR_,caHw7cO@-A:/=wB.Z'Jf1fut43`=iU.w?h]DdKkL`rodtI4@3gOJQ*]4^PJ/`re%-MtvW3-FaUMV7bgg7,fuI*-0Cb2QH&3+7+LLp]Y7-K>M+XU8+>ML1_+#jd>Go8aNu;e1mI4W#n1uNC/hwo5n/UG_<qvH-7Mk-2Jn&NKOO4OmMPdr&@G<d4O'58NflK/^u_no9b_fo'@5YQZb[P+qw'W`]EZNH<?xcZTb-#2JsN`[44m$P]k8C2v4PENQPvah@B0p7]v+7=<3Pw,@X[<OP`PX[teH9v*nI^:2B26j8-GXCpDSMk-aV@1&,^ZU5?R)oeW]$h?U6Df%X-)PtsvPb6EaJCJK_3)(jnM6+>oYd/v2rkCPg^oue&g3qB)QMo2:04laZF=x1T&;/*x/[-'?EKY<lj+.-`oAlWma=V#@-j#J9X7n4+,c(nPGS^blbF]a%84D7#TkALm6f'70T<>uB5+3<s1d%Z&F/s'aV7JA9]@3huW^22I>X1vF)JZ_WG+*betJZqe4;Dxd9GRPa7J5DpI.Z2brc-('67#Rd,+?4p?rbEce<fF-*]d?ExF/_U=(VTs(//Q+Jax6^N]?eKfQ<C*n)f(lI_i,UXO/PK^:N^tJ:B'h/p<&Uu_-pf+p69)E6b#M2]vc7<76it=Y#Jv]GnO?DEmiIGLob@+Ouw.<9#8*>@in<hp%4kW^n/w]?pixM?7$R.`)?#dn'?0JbshS'p[]xpHdqqq8*uaZ_@4he/2txa_`_?L,D&b1(O$L+bW4-.lN*xM6w3&2o^4;9Jn)8&R7Q0VV&a>r7mXZdQB%^=h>vvuccdj9`VV[-kA#$#W$_]xJ.?`F>-R%ra^gxj$s'5c<,r^]dsn*YUuk6,tb>LfJcds0YV=BEbp$/xivBGv[L/C^pgPs2e%KOFQBZdTTT.<k(I;KKAQY.rnDa#hImq>]@UxBQD(CVt1r])c]#@og4AGfd=eC[^daNuY6>7pLERCh)R34_g?[(GW,EZQAPEad'Ha_S&gkjNVb>'gaCXJ(a*nNQ5_D=fA2sOq_Uu]H0O9-E^0D^6F^B;P<#'P)(EhhN$RMlN+DQMEb?oYSnY$`rui83k/92rf3SCHJ(dl7QU#/Y9r=4YQ1m;ZZ.aMJY?iv(I/o.[B_$&eBXr-#*N#1wu(#-U*_-bOS<Ym3W7s,jF:3C%H@-cV'03g'I_bQ7>KKeI#PkhhTO$ht#@V]8T,eb`2c^/8PBee;j_2N$F+<3M4#5*USLKrlTcaf`_#qTv.HsMire'ErOuBC.b1_,Uvj9ni^>A=V@pI#wlU^NU)Y9+,R?Cc$GOYb)R_r'fI=8X7l.Z)l`GNA5`^Jn6tH/I*SsCK@r,_jR^Hsf4Otv0Y@>UmsPOu>:+10a#c*`*k%T4:GL)?pM[jU3sc5WYs9b,SmOEedjVUU:bG_)d1gvoeLo*Yan>RK(K(eLIuKIf.?'tVDRoS,ciGQfpV'uDFAu-^a$VLuZpv(Qf-[4OQT1g_vVkMmioJ:FJtBlP=SMEAUC@6ab6qE7P0.r2U-0BO.W>P/mNE<Nosn[/s*TQb,ZU8t/`:1=PY8%jcu02Kd3$gqUA2NlNb,4@^tTnD:Pj5lq#]t'T'70sJfgl14YEk;=coAm0Y@1qPY-^DTVMB@CCF?6uI2`.[ZRc`,AAvu;b4gnAWOo'W5/94'+H;tNA>c=-6009hgv/rLcIEbdGwqXMktxY3aw]+?hH@(B`wL_X<_Flaa9L]^=8_*Z>OV-:lR?(Kxpx<539><r[KvlD=o)u*NemNs&]E<IRYMv5GOsHTgU'<TmJd*84]F=T-xmfQ(,xbHJZanBexF]a5iOowSv$Zf8Dj-77-t3D5D6(Z;>#;Y$_3:=i<,6i?f0I0k6S7[8eV_-]/s)=U=lDkH<Q0kIu?<P3)AD)$%`Cb*CjEW*kDh:XlYbF$uq*9?ZPG;HcOQ#x;e[Kn4/JQ$0*2B*_GKmPm5dpex?i3O[JBfa8sbBHUbY2*a1>5I]%4[g'Nix2w*bw#-J38#WAp?)L3#j<f)P/k%0nW_ct:2q3e+)tQS8_jr:5$`JONrA]YRRNGCVc2:C0l74,Mrsix]`k/a-U0gkWu557e%vl+k0J$4PO2_6nYJltSiS^7X(#hgreVhu#cu<EW?>Q.($f>FjY_V[BWQ,vCIK*gtjo`84J81sgkovI'V2uHB;NP=+vT]W5>r5eFqL`k0m[=^r3A=3Be.05;^,J?l'+4l.;enqRieI$JlUM$6WtVY8Ux_o96ilj8Ge>kUF_3(IUZ-o8B'4El+nxOB]h.tq-VfkMH0Pi_SDSGQ89^YZY[X]l$r7+1?'pZpY]fQ&>i.dY'n:?1;hsCCI5gVv95IKK[KKFk,C129PWij(3fNpsV1o1/P=T$-s3eLhL4J#P_<]uoD_+qRpU3HbsT.kGlxRbDs]%RE+2;Lf/#/%M6=<n%glZX2Xed@$9Xa#/bj9`gJ[Al^:jQbmKn<cLVUbDd`2r+1?]M@_[f':0c]dwF8wqEZ'l4Zd6^M*RdtP*%9>fw-A12^L'0>mCivP^&cv2`pbwmju6/Bw4'*XN.T1xPBVx'rGD8A.UWW#F@Im.J#l(Pb,qjJ+>@/.epESv`Ho@S3I9K/hNco%7mX:#`&v1dd`pPlG5F=-Z0i%3Y;@58VaTQv/E=NOTE'.@KC&=Gi@Hn8>8;A&F(Pj$*LA%@]N/:laLk:%(h/0F#^Ydw,Ib%]?G'#b^dL'g-<l>-PuhN3?E&+Vc>6Lt1]c*,E.21^X/_p:_S+B;e4^nN7)149q^?(556sgBvI/^qJi$IZF&+rD>(gV+(BO%&7>rJTXi?sC(KAh+c9%9OV#DTIDPppWqldVE%0H>G?G-<IAiRd$kD17TW&mLYM&VI-HcIFa'RErS$F+XWb0@Fq0'5=iUli&WS%rK42nf?1&i_6_@U'r>8N%6+m?]0GMF.6w4c[35?7^TlA8Z(I*mZtxj@MpFGoUH=b,NUb6)nWgBKub`Z(jgNaDk)#&IKe+FIDtl<>8_+S;0n>0C6Z^Z&eAC5012bf6UCiXO'9x&llH=_'eFK(R%Xi'Ia%9i#`n,$lQIk56O7>6.9v^Wo--M1_O5J%-X_Z.>DTB?HYf6hRcP$h5F&<t)Rq[DUX=IdUb]s/.])pws3]0TNYlMbpMLxfGL_W`A8^%ql9()ZuHrMI*x'C3<ENB.N_mg5pe(UvF<kkGIGsu+]*x%^Wwh**oSRe0tJ2f1DSY7PQ^5p$dY2Zt1=6^CQj8%/,`>e_d_0'L?mgD3*tk0b?M(@kbV0<B*TIc`r;5m#gcVd`q%%'6qG%0Ifa=U'ax(H'^4H=._8lh`p*=8t:_->eTDdx4R'oeLaHAc*l]_,f8af>4BR5fRP`3]`f1?k]V.:C]3*-sudIU([,eP?6d=?Y_a;8WZ?1bQh0HE;aK<KrBD(XJ9KF$Ou#^I*wU;/7S6vKP7Og7P(gx/1L-C:NI`b'sSg-?,E9`G/sPY5OR7eI&(^hraUhtkrxoIa^29f(x2@F,NwcC./0[//J&1cle-%q`1n3mS8QH,AN.EhpX:D6`[x_fMVAe`x/]]05Bb/4:dFrlX[2Chf>Ysl[RpnS?b7PWQlKXumqXIMTTKgI)$Jb3[smR&@bfFP$2PXgxmkru<]qUi'6_g,lJo4o9_'[0[4RHTY%n6,XG6R5e/l87K##O08+'.hc)<,+j+h#oQJ=;CS+bM12rx(n7hcKVlns^V`cVY*9%m,d]DIB/6=_5SWMR>h']Ln62D2^4Chf?54=os_PAR_8wJC%<jT2dBt3kg93x:%5`<j9U/viEa0aV^<&oMs3,FCrOZ't3%%FS3RbXxjkk.&cf8Kc3a8%N_4Hf88wQZK3t4<$J>W?V([)FaR8R*m1xbKc%Gjd;F1G^:s+,A%r8#n+`7MN#F5-A--wc.HJF_1a8<ul+[9v_2f]4X;D.SV2QOgq=l2+V6]T/sKOYo4kg_,ddXA7@d7xY?5[N9[Fj9JmCpP5?P6&2I@/9i>b9-s+xd>G+;4::,kYm-Z6bAlfL0E.6G-SE.'j6K/me2[kM]DdCkH?`Pw6DvB0:Rt=W3<uY-=+^Uw&[8?le(gP/L*RH1_3wG+q/wq@Rbn3Hj?4/_=Dl(:(MTV@8`e$$KL*Pm:`Zkd12Z]`geT3a-CdJ&1`@]GI?I034g@$K`UmIra<sB>CiL#H$OpiWYc]:=hfcgi0Eb`Pt6gg+eAWFT9?eJY-7KSb-?S`QKcxxg8v,,X.X`<.4jB%nY?hVi);1V%D%ojJkp1C)MY/8k;Ga`3%*:LMmaC44R*[0D&Lq1S2ks/oe+MqEjg,<-`Vi<0md1b%o/r_PgvLII+bU=_r64pZ?&x:R;e+t#Pv[R8]%]>=2;7]fn/mW6q`m`=EQ6I&,37cD%>5uaE385:qme&b5Ft?9AZT[qNY`_tPBLW69[DqpmT7aB?jJhT2bLj-m$)G[:7xKq1u%?:D*90?f9<bHbQ(dI*+M]G%aKQ/'v]CDC[4^dpd>)9AOvk*FAiW[OF@PAqLgCLs_ft]B^EG)O$ZSwroV$Acw<cIb=FYZs8t;vc1/jMM:w)OP*hoA0bA':$ZWtX;VL/P.KIm/,M,Q9]QCv`DYKj2kgI)ZdUVjR+c--+3N[VLL_&?:j+0nN=+(e@)kaQDJcj<0FZ;,R=$.ml?5[>1a@i::@Ol<vj^PRP'%xL7=17n;Hu[>1iN=P8m`R?Ot?41inBTgnXCFa`s2t0+'IVu;VY#7#s]ogeh8m;Qu57SU+<fmS`$wI5F?G8GM4<(5FYX1Pk07,]^stp++g&Z4e$ExN^>iRJGP,S#@DdSu;hUVb-C/3kBMPdE1Gk2LfaFs<#RsP(@C@0X^AE8]04k?ZaHg9[hout.fD3X?I)IBIJ*Ya#fi7:(3GKCtjoEjp4h0?/,.>RDPLaC,IP>X`(9^glI6FjN.5r;4;Arx*/@UwwB(+J]Am5&T`L>VR2<OR6.9_pb1>O84I^nF/gw:w;lSmx_fD9w'I_M)r,['d:rxjN3^tpK]u:x=qT*NgtuA,)Qq]nJSe1q5Q0b[?8iS?vW0,dNoptI-Ua?%0h-m?Q`d.`D%_S9`<E?ogJt:A@8$.6b6Z3D_;]DVZssE.B0HPM<j:`rB@k'lmAAffM=b4Oh8Tv29L/[WZ3BC26;..vN/X`:hnTI(NxpXoht:G5)f@`t<&(n4TqNS/9&e_B.x_moV_jWaIk]Lo$uqOThjQ$e:,-8/'<B@t3U/]t.r*,dA_Q**'0%SU=]TE:KP-3d7kcLnNNG'0W9+Q#?GjZCL:rX:ke>hY);2KF1pjwVP61XO8YM,'-)L>';N<5w^-k'p,x00Z&g?VQ>AEi=Cu-DD#I%-FU^40HeE^,aA[afX%mE;dr(;IF1F+Hiq(c*V;;:?_0uKNOt4NKQc]HpYi>f*7bl6toXrD`JYg_T6<sZcp9V0J6rl',@)aCjnlU^Q,H4o=ncgIqJf4gO7(Luw$E#Y[n2EfW?cfg/#UcV95m4],6CTQg@.3NUD-Js6UnOZb3*KEWxNsd8GNP0xcY/c@F0Maed&V?5._g8`HPHew%PIIOk?fJQM##Tg)Wg%MbjV$D<cLQ^bdAYfJ:GWFnuD^1:kq,@g@se0/d(K<dSMLs%>W.;jpXegjblGhT;Sj[.xUts5=V@'b_q0.EYq`TZ'ROg(k?hV1l+NKOBNmx5seRo;,pK0'fL$,m6P`'E#s.FsVh6RHw%/k9GFFp(TF7(OS',lr;>,aT=HeSfrF-0`p#[o]1S8ESj-Iu&WMe3B>H1u^*S@4(Xe]JL*&?6t8cu'$_1C?4Mk,2q2<QUail2TK.jU._(L&%9W2KQvWCTEn'O:2->m<[b6>ec8Emi)BE&M/oDZ9l2t&QNsfu6w%]ZoEa&g=Pb`Sep-U<kJB5X&XITw]:cP$rN`4*5KN,Y691S?3CALrAK/5]goC+;0vQ?+D8Ss,*fAmbJ3l'=C*d4M,%$KwuxM:UGBCWI+@k;7/=)wD?pXBoCfTM>'>U07o%YO=Xg$Nq/4_mf@`Tc53^#m,N;HOqs<rrj(W^7:HosH?CUa2@:YU<-?/aFJ2<lj]X$$T<]w.qJdjV)?UV[dvl6t4>^$JY0bi^(E$[]P3f^iVE.<>kI8oOd]0YMRF+s,C?9vl0JfDs2kYqZ<')&'=XS@X&xi:hp$T+<p+>oUd>nqb?TsqLRK2hb@)NuxUbm-(WCi)$1YM(72`-v5SqC'I_x.?5VLDg8TWlet.V6Obq?D5<-0%PpiP#2oaLu;LEFrP>3uR>o):K3tC%iXQmP32NQX@jS$u@YEgOS+?SK>I#b)G9gN/M2v5I(q[G@_Tn=[u,tm#O;cH1i1Ed;S?M(#Z_m:6<Kg0`%uvH;SG:qt/Eh(4@Gxhe(.dg6nSp?QmHCixJ:KcnUfZN3mXNQbGED+B>91xq,vhasFXA-K3x'8+2ki9NP3_>(#>S*B9;F-b:V@J[O'0=wu*SlwHmf0X>%K`uGC[`#@U@3?Xs4%UkKVHXJE<sGmvBa9t'2hcnbsT(#l%T4HuCaAA.VBWo3tWoV_Fe=#dO.,LOV`Y4)i7I>kSeQ[v<5oC3hR%190ND_?`7,*6k]q0cZ^QWic(sa`gL=BALo]r.0F$#p*HFkFtWt^xOsj>I,)s(,t][P5/2i/K0H6c*Zrnbh]N.e]@.W'9wo?=e=cxWX:,g>Z0RV652/E;CRG]G3E+V3`&OC&.bema?2#0,Lo5ZGHASe>am[Xd&38gZG(,oil+U[XS0eDDtT<]9w$0`:pRm%dk3$74)XBF)q(D`C(0M:O]XgH>7kI+/0I:l*Hkef%^vIh:HvY@*3Kw?A40pm@k#tl5o@W7Va*CDOqF&;1uq)/o,cx^1*rt;4b6svj0S%DshdahOI.u5,Bb4m>O<VGFW=C9D3;FU&lZ$OH`X&**+X[sv.liJ3k#002C+Wp;B'ZOdAsZJcFJk<EV/L5c$NYs,.lkBMNfk(CF.3gk$@j7nf+^2uU`a0_T^SwPvw3MX-PfhihaG'.c@om+8Ud?7Dk14^I17.#(Ro9lew,9A/8ic3?-<m,Jbd<WBcoS0$)w0@hwcCo%nsN;e,:w@&TcY^FDrJ]`TtgL5mBKE#nwE=w*Wd[dUGHa>5GJl;F(/fu'aJI'Q*$XO-J&EAc1dITe^J`KScA9/%_d$#s$j@TC7VQ^5hAc-R+`]pXQS<4+x+V@8ne=@l:u@JbB.ohlrXX,u_s*7&N..lv5b5d>Nrcu3>%.)eBfK_Nf='ERknRq/<cbGcts:B0:6@Shu7oT(G)[bRI:$5p,ui(9?#42^kcOGnR?2q#m5$G/fs11O8ST9$j%@tr(JDkvOU_=[Jj+J$BxgCE(kP/LwCHX>BI1r2E/F`0SBJ[]Urt*g/PJAt#DiGFfb=/:C28#PL&3d]=iDSfX$)2fsFq%[Q]M.q<e%iV7mXlOE[e::++%cZqs8'ACw64]E9G1SX]D6'pd'ot@_([)OlVl]qc.SgT`P+V*x'D<3%agA%V?<p<BaOV<`6:+E;#GrR)0[B;:v65Xav8H9Cu_$^D3?.%XJ*xG,=lACq#fCQ53%.T.G&29r/)J*eXX2e/S;8g$/U5bEao6*i0[wjMOTcpqU<d(-42,x2tSIvh#e(oUuH;8<)f]ZX<i_tZXVJZQ5=0Z2joILe*ck?v-XF7kDG_o5o8B?x(KOOiAW_69evq.$]AG65N>D&wTEUEDO?isHYEH[DNUg'qG;1MY8h0=@`wdZ&6/`2f[Md)hgW;GsLJ^r1;1:-,sr**pHdo=1aWh;/.N)3wT5YT#VH//bBuUDvgej`w`%L@)c'Ai(cW%6CR_MC#C#7`O`)_kb^q%Z(k+oRejghXkp[,1Nn'_99Eikhw8CHf4%BB$lf><ZxaW@Lnf+].aC4eZrjc5q6G[VK,H,J&q2l?'vIHvrVAph't3u%pr3q]OjuX@MTZHskj&atII3eNag*TJFGbExr&EA.,A*>Iap(q'jB_6Wan0%@h'a7-[U#Q$(ed+$N<?%#?K2`+Y6Z>(aHG<wp.C@_WZ(aU2*7Ee(Zf]oRlP13t+^ib?[ME[Y0?J5*BeZU(XB6<FVYqKrSs7?0L_sh_OD$@*gesd4G$oB@#k&IjdGWqrH&l^2`9.*meiYZOE%i?'V[.BDH?uD_;^?HeIq[]_6rLhVJ98h@jT-Gh,f9u[Bqbksu;K;9AqMi;T44Vi*ZBJ7g9c_cI100D)`F^CsK1ct_=C0?YB4g5+K#X+&^Z[22k2,qTo#jaP$RZugBK(BGQ<+8qR?FF:E2/I*;:I^_5RxcFdW?bA_)8?cj/>6^r#kX6H0WM$V`8d(3+K.#D2q`NNfV/EKJF.qtk'VtsOc;;u*cM>Ed.%_nGNotP&^FV06(f:_]PCunud;Q$7RCSbi/lbfs+1Z>9&@?mbap@%Da`D=S1i/E8=@xSNT*(W/4Lv>4?-i_#ff]H5DCH0c'xad^[YmFGEgTVesKU/KtZ9?G6d0/EwE-i`gD^acEYW(kh'g/%%0DPQ4j`>-SZB7Ub9%9u7#$r/1rLn5#??F3B5B><pNcI/YxQt$fW[(d#f:1n(YOF1-feg3Bx_Xev'EbVm4JH=^hhs-PLS^NEfdC>fC2'3+r's)U'R7o]7:r^aQ+fSOAE+K(0ZqV-QGP:n_:QP;x_*WaQhVx*S+5hN]eJ$>Ya(da.7?SI[MIX?tJR])^/[hU%QDtXQuXsJ0E/?P,TFu=n/4rhdgQ-co5Mg]5bhnL?hW6e0vR7R]d1?6Wirf2#A--i64>0+JUZVniDinFIao+Wpt1&AbePelSFd^P]>K#:8(fWDuip,rHm$>DO'8?LkSqGd[0@rt@:l?+fQ[K1OSaKINoGin=$/Vui3Sx:+.ICiLJf1,D:N-.ja#-^5oX(X:*Ptv0Hq$i3*Qt@n5&ovu4UGKYsr1hJri@T']Q]O=P%8+,(59H=5dksb0nW4KY?vxd$<63Q&P)&U=8PNf0T=ZIR[iCe7:'IgW=Q@$ZQ'js*5/c_/T9n0'2%?5E0Pv(qCc,jqhU*jk.5I,^?eNhTu;3tgO%`Ym,?:awTY#vB<H@EA-OtX2Kn'VmrH;>SbURfRgR5C,ttE?Du2L>JcQ7DQ</2`1QD:0?S(L`tuiX0Ik]oNm:LRNf_TPa3(^C$sU6#o>>U#(qr7Gx10lF&t3@$2BB7M#&B/L<;jg,R;l-qEQ1A'HQN=`p0*O&`h%h43oi(@([>B/e`trhiZEqH>-GQ0iAh('-.W((s?V_9SV,CMev,kvc8DE3LIOn;Xmdvx2Y:NwVlade->ieGcVDgF3cjb#w<(JVYfb2-H2Fua^'pM9&uJC=b>DPegPe6mxTDP:&kE69PjCdDRBuL6+3e[p?8i$5lA4Uq?0n^KP$(ecE:&>9+w9N*k^=Ftf'XI%U<sW[%aevO)gjpk+RV1p,C0;[&Z1swXICNG;*k-Oa7]0?.9t.Lb@&00,VNL_/3DXZ8l@Fi&iBBejZPnD3?OJTRvaSte;oUoohA-aGl]viJ7C(j?0q/'4N0t,.;DLg,Y%FW%?K9<UpeFPHF:wXb_E0cdnu$*q)+]?`H,VbW:Z0+'M:F*0w@N<]hf(R%j))JN=0rXQQlaWFm3rO&;'/0`9sBOxpPTvbga`S49n1R1-[F^E;TK[Vvn]p-Z$+(JibmWul`ZeMSc'+p,e.0<W'vD&v/?`H@OS)RHCPwv]so)?ev6ZdqGN;`s@:fDhei4_*S27(MtXUffld.x`PaaKQH7kbog@iv].]grLB)x+i]/vRt<D&3qS30TYLlFW8<;2<4sKnKn&w;ak(eHHIQ>dhPg(.asXU^70DapnY10XEZuA=s,t7'=XLTL+L];Dvr=oUELJV]x))K75+4$KK_N^0cJc%3(th2,MO1%Tbx8$aM)HOS_:[GbK_0[FB*ftgJR2_m.b-cm>*7EhJE;CJ(9S0bH#b-bs>beA7tOf*sDkYE%WIIUuCu7@li`<3phF(.:/#9m&@EjcJLXWk,uO<$/tI:_MO*-c]+j*4x)t-3i%)Uh#j3NJCoGM-QQTA,r%W%lG*E)'e,`0;;w#$%0`QE?j*LVr(i<to,+/;3Fe%A[ZWFZfH7^#m19]7,-P,7S'$$;A#SMB85<Ya/$w+SBabL0O+#XmLp90'f#&p#tPr]rf@_Iv%#6JB*S-^QL;T/&[Y$'C`g+u=mDw8L@aO]tpM)&k^(DNXPrw3W;`uY:h.mrMGcs3rH8u<iR]nU?f?sRBx*l142O7V]pnD>3,H=kObuBLbk@e)e:9.6@Np9:p8@0^ce*A[g>-x^VH&.jZ%+:3Ce:Wu:[2nNX('<8i1+rZ0v9h&:S8u8HD`1J,Onq/EihoUhMRU#EeLm1nT?x)R_WIr`SZW(VVxl@R]#ohGVi<4n?PDa=8i3ir_E(ID0QVpH],I_]$Rb3TFGpg[q8UQonqp;(/w(,pXB($mCC0-q(a_%dv1GcR`8mZYq=j0T%+1PMT#hVF5w4[nN:YATTDf..b]bIV@m:loBu8P'1%a7kD12Sb1Md)K/e4[$<>WXNfDQI%^Zse.P_(?peH7GX[7D(7(*C'^CX`'(kJ<CGDZXuw36SF9`L<SRRM[k(]1aWGlg80@D'&W7TD,AYGlB=064Gu5_-qaXb+vS'X09h+i/Ls81QL$Bs(=IY-/3IlY/F&oNkah2Ev.l5H'=L-p1rQuc&1b5<+FF[$fKb.9;Hl_FTr@<c#K$ABPAu`RD9)c=OH_kp^Ro=a7P-Od/8Q11[QI:-j.F2jB1F8+%F;.HAP5JcCwI:5JJkcSewI8b2f3xSwvn2JHS-+C4d;vAHk5i@e:v$fA8ni);Nq0tA%rk,t@MqMCAcJ,2t**njBh_0PZ,`HeI;>9KF9pTh`)_'/a;MpTRpLf`H+:sq7^rlFgZcAjMW:88/MGqhOPR5xg)9#C>cexOKpJWiPpWv30?0sTR#nZJ+SE;hT%:9s_CBv0(7V.nvRC8p.i)CuU3Ik+M.8Ap^oa:3(;7XT(dqs%L0r`HF2($EJ6?oG$,#roh3[12EjNX&G+%8$tY&qrhqslCJY2u>WBmFTo-M3*crE.'>o5EStj/2IwCF'rErc2AsH:85qjQKm00X16*UAI+xdM%A)pU>c:q,2vpg1Atdcdh@lJKOLV3O]-g?UXHQnkqt%dnN=RT)1vo._s2gJ*[r7+s@&(lR`%<gBd-C+ltO6KfF^'3WCF9.)Pua'[0Ve=hcr6t._S`oItn9LU?m'ngq9.G92_s[,=6Ytlo9=r8l9j3^>SFm;cOp_YkqW'HMoZf>m.BpDGwt,JU#+9*RU,1jP]7l)=VQ7rdbnm<MdVBft`Yi^wEoHqU7qVA0A7&n99:QVND@1OV+:=5ocsU/jY@-s+lrV:-P5Dw@-=%48Zg(^N.Q%8soCMk=qe?Hu9v%la56%4nnQS5)?ah??:0lU@t*T*FP5:n'50$7j/b:_@_6,;W?/S5A<9+;nGf<1]i8ugoCg?-)-u5$N0*5.[9J()]NU5Q8t$ea.8(p/F8gF15AeRw66l5fb/fY#k0tSPi/TH:r*/g^Or72KbVjmBX-kh-M$xJN3S9/s9u2<?f?5mhmi?e9nk[$ixG0ZgvB.W:hLW]U+>ZNB8GU6d9Z^n$,beBp'i]Xv]E?e;BisMFZR9kuRfspKPsKidh=fedM%<*X]]F*iXeemUn#Au8aMZK'Bspg'oho@TTHxS@_:NGYQ`Qp7hn,YGTeNdWs&$Ld2%SW?)Tsc$U_v5VT(cji%BRHLZ>_'laGH2rf_>cJ)]/gQ'(uCTj>-j,*%L]PBPfY27glbU2cov)UKCDlcl%IM?K@<lhZ/MB=:8C+uh+`g8xq_s8<4&T-,3PW6w4d=a9_g5MZ8#WX4#ZH8KQusA[Ve0+K9s3bc'.Uh%cI'*2Q0G:wo<ULfgmE^Pf[-E?/n`hQ.`(iVWc*EnJ8rw*A)e.GeV,+iPlDD&JOmdMj/;-cNk8M3wVOFZ$bxYun<)q0jp%V4K5J_E?'8:jMp6KC6qJ%'()85.?mJg9LT#)3aYpYt[po:>o)j9(kLa[Z)[jPA@-`S&QHi`(:YBqVFOU#>-/Bq3f:7-SF9&;mKQDu%upmALR]-l)LAm&Hg;@i$5G04rG*hI)-8W#BWCVo(ImVicRTq9+,@(`h'S5`LMcVRuXE,L5J/F/9B7L`V=r;nthd^PE>*.Do.VsusY1lh=6)pMXj+h:V`ld+HD[4,eh@TG:ani5-vTfbwJQe*io5,gQ/-vLk(hGM1VKqNm:(RhZ>P(v)RkRnaAr,uv_a;R=m2S]56+j9^%=0cQ%dU,OMNV^r3*tOBYAT*Kx6_TG/YRpsh^im/bCAXZ@/TW1iWIL-OC^9W[@AFgH)Dpn7Ii@`h:L2eOZ&XvPG(@QV7r@7fq0?nd^?(F`c>2GskC)ZVbUoff6t&]kiwQY+G:n_H`a-S@V<L+d)Y-7fiH<_kl'<`-Y_EsSfwmK@b=,5?j:fZOj0/K]FkxrE1;p)ijiX.Wm'6G]^1'C@giovIanMu,U#Qw9s=`g:3*$2e=8efUX%kqOF].fV@tNNI_1SJiKO<N*M_S_wKT)Vv$M<0GuqaW?j:Zio*L2[0tHl<oX1U2T,%UZ(;4uXueZvQ;b5g%;[/wLGtu&0H_:f4<P]@p)=lUb[WsYm1UM]n]g`hLokm<C8-4(e7Uo?`j#r.-I9R5]wj(t.,S[uJ2Q(B8EQJ7)JRei.xi%aYbJd:SRtq)R5Wug9w,e0&ml&sl2.1=gKuJD`HgD(kt>/A8]5RSuH?Y'E<*jBIXJ7(R`l<ua5chV2lct7;$p*#&d36CV7;-$Z.lK%@WiYxm^Cw>]i4M<-Vd5%K+JlXU=ksKYF-b+4&VUWd-0<ReNus1fX%.Tdd7O9JGhxD#]o-Yx@1%SgYm`HWr9UKDHk2Wi5qv*-+R642]WKcY6*?vF'>S_DPJRAHU4du%Y+U/VKT<tW?^w3Iu?F9$i&,kdStOYTY9b`'9CdjKD:O:>];)Gabq^lpr1K$9g%k2F]In(hhSTjsDaA@0aM?<SoGt`c<kG[#vojO@_UtWmv=h?/;L0tK4]3b]IorWnU5A$GWD#vnh?X0^D9m=H#=dv@'P?tC(YtpPAlMo2_DjX$@NPat<OQQl3sr%1/gFqEm6Rn>FbYf)-9YPuEJ@mLn3+QdZNr;;7auchBWCV3CcYPtC=LLB*]M)##^Z.<8i3uNR(EMPcl;SLZcfTt9t')q@3-IQdD@npGi8,CL$s>L5X%10>7q;$FueaVXp8@WYs9N`^#d,h_Z_j@f0k4)/OA<a2GQ>H'j>06L.=#G^JUOJ0Le]%FT@V]423>]7ZBWO='QuQ[8cbk9ida%Pd`B*r+p+,V*>X',u9c2:_Vij[kW3TZXGc0Bu_`ws60Qx$)V2DCjtL<TT%KWgN^uAe=8%8I$.L,S(nV.d*6Z#TeVjD1ZY:AFl5NqHB:3LKnULgn?,ag63?9#_$IZ=i2jOKjm]6w/hR-U=qJP2iJX_5`*jl'_$rpkPQ6&E5@Srr`QhM<xGX0&@PjcGYW3$i^ROP1(HAVTVD&<D<S1Y*0p_YoClsr2s2k8P[,iCC;Q3B^_N(<LOqskxbkNg'L.lC<jXqb)`3:r2R?g'_kl24NKQ+a(T-'S1lq&:??9PUn=+[oi')%g)epAO<1eOt.D4.f.mtg.xQY.5,k56X7>_nJr<9mkx;$glOAXEHBpVS11YXN=muG6u04SPod5Bw'.L@R9#%3&c1?bHjT4/*v+8Irv=N;0$nB?t7QIr2@PBGL'?PE$eMGDsGR:t8x+0>Wu#MjAsW,]l6)n?iKh2@k6T1??=fMbXO#$'BIaTF7`O-fF)C-pg4?X=TQLC:89k.Aw>]v28QjnE94Yd5H;^O:9x9=2.nC7$K5cJi*tXSjo#G+HfAPLu7]sW1J)H_1X*=qCP`1_rt;rGuhaEB$0&7d>w+UY.2*1_q6<2L[pSXSIC5i%=+k,.UoP=/pqe4$Vm)tou=2^@^H6Ut9pQ1*c+gCZsrOB5/+fGNe:*oIubuA-'?A3t:o)##Au?4EVQ$WeS@5u].Gj'5oSU+aqiv-./<xQ>m0A<PP_6aA7O6EOq_N4D%UL':>W>ZkrL<v%4cM?)^_V=YP$o^I-3eP1N&7?l-hABrUNLR^i5efi]ZuufeX8#rlD@VG_7wu#>UL9qR9dfhcPA=lengqAj6a5n04'/JDC?lt1v+(>gl+eH_gcOfTr'uYc&o>4O=':#&?sZOIYhPklanI47+lvdABWMq4v0hbbhKIdT[8KY.'Q:v+h^<ap8$9itqG52=eP83jGR*K%Ieb(X]dI'T3ERgrv'gXiK?`_f)W;J4V0(e1'04DO0+e<b6uCW0aaA:=9g(DO2Fr)h#G1j7@N,9R:jQ.IOMK2aTn(?2hx6YR8KG4p[[0BW[g.#cw0l7F>PH9V3cdkggM#DD7W_lq.hCOrrb&_;P,N$Cmf(tt_ZjG04$`Hn]$*QC/9DFqk]x&d4,k+Tbh$R3<biA0=>;,YVJ&rF;v#GB5rNl4,7xiZ#4]Q%8g(=JbLe?*qsN.I'^7O5.s%&=+]bU6t?^Y)@X,2S),3][)_36t?bbKZ`#gi18rwAQDSQuaa:L]P8h4&Ca?&GZFwwjd-V6[uP0.`&jw_KEWQ<(5sk`K*+4O@v+CZ2.;tjb#wc@aOEWOPQClTDD@V0ABF88AYDN)0KAnGlBINo#)wt>0cO)6f(iNRnlRW]hc4^#<'-alx<XneX.Cn-<5&)UfYN5QoWD[+Nh_]TZ]YXJ@dtu;NJ7'0thDLI5,=fX.E_F0HG763jB2F;?+7rsGP>HJb41SlDM*>b716mcU#nuohVB:p^1xBkQP-0*Ko?sou&15Gn5TsFlv,MS5Y/;=v&f(3,qp78u:6a-8?M(-qEhnEXc5=mPSBnuGge_oa-2BnF+a,-HRZc&aOr0Ldk))P?VnMrv;h9/i_i.v1RsBjVEmcxg_k%mgU`v6@B1aq-,`ds_0>=K%dLo#rV^(]lX0lk1B-SJB4&u'F$KYpU@IbE^R-qA1bVWsbnxsLM.fvL4hJ(+V:n*7P?gX[8VW'$(numIsX/<.RU2AleZ6fx^-W%/`DlU%=lN`VxHdrhu0@olSOa)?.D:)DFPUeS$<AH0J^GQ'h#n$rqRPD)9+o,d=Il#GC$[BIZ4S$6##5:/B;J[4fu&<h)['eDF+$tRQkN'ooG9)?VhZc4,(CI]_j0p/R#6J=1K4cfx,7v]Oq&;X._HUuN'mvhm8UG?'8I(wY4f.<DFS'G,8u^[;5vc_2mHA$:Baw5[Qg:*P)=,8`$<j9(nZ.j(OMhUAgBJe($8_^`KhR@jn,1pVjCGE+[Vi/]`2[^I7>B>L$MK$rRLu76Pb05Kot^?[IY(ft)kAKS&8KKQ$'*jp-t'N74uoI+?LM/fZGHr?M`oMS:6wIc;C9^<V&6P[5YC2,SjM^hYf-BJYmcBT`NSbZO/(EZPfJ;$e&u2UOmMaT9rGm5l-=4g^xW&q*tjcIW0hmGmO8<Bu):+&fagl@PgrIruKMBRi)K5u8-VN:-YkGrp>ox%?6ri*q6:sr4Tb=v&vGIh]Xsg$qhd`T=&#-K#xK.v7LAP`W/g9kG`UAO3t5,7`FK$vCa9m9K5##:Ac<cX92j`&o0a8bhxsA4.mZ&?3jaaKP9sYGnNTAR8o1mV76R@8<wXJB^s'FQ4h2F?Dh`rhhTEvjjGnhjOHV?2Wuvb%l>p<qnf.5I:XaN&LVtFRA8eat,6^)c9moc=?`A5=n$)>Nr8q_npH79*<@gtYI5oSmOwU1.+48BO<Pe9Nr]MvAow/8d(+0SCdMx'+=v/UJ'h<S]b[u=RGmW$*m]^Y?^r$xak9uhQu@8^tr9)rh`Lx5c_LtbKOxgOIhw766'eB2qL.;aqDcGX3tc8AW%ZO.qAbk>BZHm1?XWk$OKD96A*wfcjR`(64c_V$:TY__2@MTo'^qX=@N$eme#E`K@uJwAnm=lk6DM`npnmQ@V&g4cwJQLq<QexZL9$cg>&Fq;5c$ab%Ta]=MjTBKFQ'?^@B)NBn^*q2mR6k=m*4`xc;g#I(hNh8k.0Tvb#:&j%(61m96'W&lSl_`CiZXm$%rUw,2dop<X+:YjulcBdEUko-<(4R2]xGjbh7VC:?g*$liZmpsf``*pP57V3@YuIxEGgNX6I>EF($pVu$2q<Y&IW[mSVCQcp(HbmaicbS&@GB$]woaFSj)'XQ6AXDQ^`-)-M&+D&:_J)Qd9kB26cNl[n^'VTl'&8Q1w4lW][0=Fk7v49Lud?=%4Xnhq$+`^.tQG,^8Rd_*3(^^]39u[i:)M%T@%<^2R'6BT&#<-E7R@_P8R&C&_?E9:C'PYN';s6h^n_Kv6]A(W*PMr[T'?7-)VI,E<;hRjibTQiO?i+7X?ag0JLcKGX*L2_>kso<8.V-pBQM%,3QkpIafi.h3BSax_-'cOvd(iQ`[$ljFD&*'ojU1#I,.#.Z+DBZ6Nr(A6$547^_wk4uH1+KCsEc[12lM*t.Q.q1%YgQ'6xYE06kKLh;jpDwp*rP2+x*QFX#]&@^ZrcG8l*XZ#T%Kap<]Vi6O^(x(jo<P>+Xp_;$oa9.5L#`@<1cKo9u>LY9,(It$8[K)u)PCOl%-lEX_ZUFD5]*5UD%%G>i774Eu<P^tSsomYs]^N$_MSR;_3$1iEomR[Ak_<:9Tjdw+4/P]Y6-Qn&(TwJ)Eng#=;qwISL_8:fN?Bq'?@iI3fE%l:.3jO[qYf(gb9q$-6^stkf*dh,hVR0N[S6UR0?vY*])3H7>+,4Es[q_`QI$K<p>lFuu[xA_MNBKI/gXo1W60+&2s>rHiO+<$=n=b$%`,.0f#Jgk/p%F2&ei]dJC1H[h/@iP1vi=L'hdDKC.UqnrfEcqq[TG*SG'8pjp+0_Tt]s?SF#ub/nii;iStnaWrdHfh57+:Sl/*d='Ev$OU_.#@-G3$7P'jKn68L(o(@+mM:2Gp>G,q[AL[S0>`4`Uc%+,(k=q_1,l$)#Q91imhAu36E:K)Dg?8;?B40R%:VE3p,#Qb<P%`Z:9+A&'C@Jt)r&o3PG^J&E^l2$/4qx?a:[aQRBdAeT)1aQ#iBMs9TVMhj=+]/XdbKr0J_]07XH4Ir.V:XIP$73k:i4mWj,]81rN#XhVj])Yd&Yvh/vJx6@VN'WZV?k-A;`h.(d40kwO9D1pl$B'_XicV#cI;.*?>(nVde7Gx.oaER$/fG6)eU+eDbKc#*rJ5;E?1Wg+DrkdL]D-/YbiR/f?B^8BQvMVNF562'j.NO8ENp+Fv6MSE.l]]dKc0UHs2+Xaq)#A+uSl,4<C(chxI_,f5JEJ,jYh&t8dh[ocw1XHVd=_.-a$1JJMm=sP5'%Q_VeOF.]X&BRa'XIGTJ1>Y`&%..Jv#*=q3<Bcq,=r((K]4P-6=+V,'h;jk=.=moS+_nx:Dub1:?OL&g<S?h[QMs-TV0SxBw+T(Mi+*rbeNsb_<dh0Y#Go)^>AjoN91p'YF#1$r3*2+P.3UO_9Zl`*2-wFO[J>j^Y-d5kia,N%D27>,[X:XnZi>K6soK^#f*42+l)_;hK`6^uVu]4?UAR&J*0iHV[>3*gvvCVe+5wHT*G43W[#(Dq2]s/,jDxGBs#0.p$2khGE`1CrxXbOuA@h*$e[<iN]Bx(_ccE0$p8YL6#WrUA/Gs#,+><k02Uwd-O#x[SV4n8/bcB^WX8<q@fA<=M1U>xMogpD.'l?U.M]@R9eR3=nVswHQeeenj]bA)s;fvO$(8^@[?]>TB6MP'N::[1?IpAgZS56pIZ(nDU`PJklV;X7%3?xb@IUJghsmsOnj@6IQ#W<3_9K(^,&,X]+&3R:-f'H0C'UR0aP^qJ*nBU=#n_/-MUVWg.$)Qmp=q<cXnIdrCsmbBcpF/v-IH4GNK3bl3DeZWXEAeZ8W^'9aIaWv&Bn=E^uC>SE_OvtK[dswEBG>h9%FEOAK.0A74[.SrXc/%.uc,=fv#DK(i&ra-@=Y+%E.V3754=&nuxbDpC**S.QSq`GbmFHjhE3.d@JtR>jxok(<`TkX(G:estb&PQr^&_8DsKw$vMg:D.nn_uS=OJ>LW;uM7RgxU(](I<]]3hMMu`-G,Z&kZW2R?oOw,t7N%_QX>hYbn?ON?ljLlFRx_S'WEkChFMbY&pZQcX9l&=LaT#$3*Ch&LGbfM8Yw?JubAPkO$&[3b^9@D.jJC(3K00cWJV0P'0=h+T>RjqE6BFx8Z)8YLK=Zg]2uYtL,;U/7rTU88)F:Wcn8k'N6S^Yw<VQO4NtEED;Db;aPDMIbrum':M?e`<E9(.*>f?H4VB>4m5Y(:Ph4rTm3Rc*>uWfv)o(l<'B4.M'6N[U:+:0XXMK*_&SK4#-%J`f<pZh+-mND+[*aj':mggO'TGQ>Ze+)nd'R1wm68gd1;j;4$bnp4-+7500$wU]><2jTkf;o(GJ)Qw@;8<&E(n+wT(3=,P@-#K'&%#K3uO7#7T64j,h71wDua.34L4LdKIKvIuPT0Y_3pCB/3=$b>-]E^_I:ZM([kbc<Y),62CaUpEn4wng(R>+UPvDKSMbY6qmh@%3Qv/d9'Z]I3?p$?5AlGNFdg:,G7^g3.VH-.ZdE+5UHbQdI7qlnsbU:Bl8p?a4PT.)brg8Z$t9xqW54.E12w`eQa3w]GEkBpwOfE5/^S;)b5Ht#S?W]7?a;Yeq0sG8@5;l0dp-/EZ-rE^7AeBHV@0WY6=APKg/g5MPE<n4%2)F<4@>jS2bu/piP.jhpi[pK*i0Vp2ETp]n'.K[F/$>xl:tk+MuHj+:UWMk[jQTk0OD`3'=hcUu]a`8ofOvb7Ix2/gZJCAU:ApE)_)AjV5SXF&QV@;&SZM*Ch6Bm3PCO,pHQa*iT=w%*9c3P/'i,4v_$&`kuBIe/aH(=Dr5+TAg>mW(i]*pq32A^.gp>kxk:*@*9_6&bev,@OSgm_81NG_viIQW3=c`e4CuZK);V#>%1)[Wu]d<SFT7A?PEG0M(-WOb6#t;aL=gGv6F2q_<Q&[7s5Z5#q&R6mfjUgIv'%Hd_?_&vo*I;85`T-=Wn73-2)Zis'Tm3D,brl3*q<B'@R0E6$o20e9PY+TxhVsQ$km/hl=KqFb:4WLn;=6U?bp1r^G0m`cJ9^PV$rQ;ZG*uKZ:xP=m0r2m=9X<8JbiJC5_acdFWVf+1I5jo4)AW+[=B[`Kr>*<L-&2nKSoEx25%T,R(Cuo3:><pHM96kC<QfqLRwGLYDk7s+j7Je6[Y%Blcq?$Z#.v41b[KldtR$5W(.AO@Ot5i,U.m?6BoBDwg>((;bFA4oWOe>W=#xq2a?B<@L5+A&NTxvUntIjcg$=9hMouHLRTdH7'6g>2u:j$'=hu+T;e%46=IsObM$d5*[0O0(sJj6k$D]6(b%#Jokf89:aApAo`;K^uQYVL.+`N8$63O;%50'&'TX/=GRMl-wrF/$<h:MFId:ZBn.YQHY(76Yr791wn3O/46=X$qs,t8BF]wY6rNhnnc6WT`c&R07C^0Jcmah9YDgf4E0M_f69D)-P]>AJc(*fdpAF8od2u&QpqQGP%kCUvTg9B&?+bBhmxj1cD'<mj.kV#FRE]ec*G.h%krdG9E((&)L3q`?+wW.9l$Qnu9h&_B]m`ZLg>ibeilFOkD(<jxh:P]'M#1MpRo/ZAEs9T%:b:f@RP9aVX>7A_aEdd@/$(DLqC5XQ@n<p)'OUV;<W+?x@$R;TOSSdfEUkivlojT>wr5)-]3`KGjv>D+]l6#O52WS-8@.Q]a.Gu]N?b.2T1Vg*a%AcqxT20AW=0u7JsGI?k_t(_#H<-jBLP%FL(Cf^vZ/=RLc=53qQ?u0jcFf?Re<q*#mBZ?8U+#hSsV<>eHo.hq6J=Yd&eJ/h(nU%);^?@-_Fv[6]m$?xpPG)-%fa5)P_F.Ze1e6m_KC8I<l]iFU%JKXXP*:Z(WwtQuL+)TRR=LH?jhDso(hCKTrdbDbR1A,:rjU%AQw1`EPFn.6G?/.m@9Obpc:U`@L?7h'^xXNDZKJ&SKZcoqIP&<uX;Vb4[gVogK:A9OVmcvOcoG_U93)EL>v.#`NrK8`tqZfuPLJ:3nM2IT&o>VMKjQQlaMdfWaaJ,A<jtvenK)-*fWN`5HCfxD'p1Wr>1Do]PSvH^UEle&7&D+tfg8/r*`MN[:*M<+VlEMvd5pi#uad;4O'F>k7/IAanV`YhaYBbKYIYh4Oo-)JC3r@4PPD$JiR(Y^e.WvA'r'*JKE_04G1v[71o4)@C],FeS(:gV?._%>]OMC2GQuKLK1wjZg<v=gqj[I;mB?nG>mt,%+:$*=+#D%,+BxusA]/VJ$^606W0Y8'=#4%=80#Cnhe_WflN$D;nW<Qn5L,uePKPVdSYm$Vh<.bUKZp5RT*DvI'M(Z%##'YQ>abxo>u`XRpc'WO)nfgG5UT<3?T*L#l6EsBH5HCkG(YlK.B6Yd&mU9KDRuUm^F]:QA%IZSpU<DuK(@;AC#gj%i,P:EVRW`*-b):.LhBsC$_iKrP/B1;?YxXPZ[OkvM)<BX%Xt0b(4P1.#'T8joKlH'*:lV]PAYi:b-J2nAYjL&>L+JGs67WQRdD^csMr4fj+Ws=U]6YB%NH>Da+*`UDIIgGs<fmE66$bJTt(*B,xkNYDdoknhv0&FanZ0,W>oJU2V(#1Ug6Jk79m`bnN?n'=N$`#QJTbY(Y);[7arpvH7#P8EZ#]<4:$:c#l1NO6spAFV)b,b<Na4tW^CZ[Bd_*+JsUpX[6fQn,UNNai&WAaT]towa-9LJ8o3C:l&8b+r1^;jI8;%'18a`f^5<xsO]i@J##kVXB&C$t`4H?'-x;7*.o58G9.gQCi]#wMJVr8_,w7H[g3C#dq<Y&=i3PR#?epLj'UU0r99WBt)u][&^YI1&.^[oJHZJQcj<p`;oQA1SKu;RuYd)[qC#^iuk0PIL?agKOjPU8iXk=kW5`c.5f2OtuGlq-DanAnFm7.4dNoE`g9MX&AXX2XMeh'l.sr*)+]R&Z35(LdJ3>]=tX_*JL2<:B;Z):L#Qs9[J+(ObOl(,/Qoh/o6?nWC7ojx2/_B@7]1]15X?*qh,=%1XQYq:_%i1>r7grXG&p6w-pqUgeCsB1[-S+ccp9AL@+7S6tc+<RpGn,5@rsA^1S^E$wKPTttr:AgOYVmK(2tk9tg0kqq=Slq`4%ArF9%]RQZ-eaSL&AfMx+(F,FbWQLaB5@raIeE]J8Z5aO]8DXP$MX3t8TGP`/<'UF:.O1Dhn%ZLOMWoEXSh'sLxx(9j.Zp;;p65K)Bx[xMHD)Q)U]E]X]Ydx-2*cMP&J)8<&^qDAf-?[nnV`&FV/.wQ#v:U24fJ9+4OYl()WxUUPB^..`@TFITgi2.W=xcJ-A5+@8<1`h1Q'OIxiONhPCudExI$8_P,gL^4WkgGs&S0jZ4GYuN[=ZW*Mj@_1PxT91%bbH)V@vCRo2PWFtTFBGhKB'<dBoop?HI]WZG6T<x`Ab*b8?krP>>fHU=:uMc.]mJ)6uW6vhqJH67wZwxbGEb_.G9n<)FU/8F*YA/7-bN>,0fMdrA]GZV-l-Bq@#b@H(g^Vt(Yp%WWpqKIu=)<IwX046:gu0P_4=QkF*4q[vgo_Mv%=oTGVd,^`f4XX/5]g-?SA0Y'8lOjVGua_RQ=7Fb-p-;<Ob<;_%&QjSF+i=9#2r0*sfW5CA9gk>5Wa5/c%>9T2D0WsB?ouZj8%fa-3C[''FD`]FY<i-LT`SgmZYov>UqnQKJv=u6w]9ItCeKglJa>a2-hlV%d=gS5#nJLPZYb5#8l*90ru`D@bq4H^-m%m'@ZbUege4VOONT3>:#-nh2s-[92:.05U&RPBis('`#6i++dH2Zn0N9.=Aa[bh#qGjIY`U,]r9$E@X#0@/HloaIg;'W<K^j2.vE-K53V3'MNMiFc-9[Z:I2Pjj(9rGM'rL_2*;,h9rPRNN4O5W*N%`o/G#vbBX$q*%q&er6h,i2SkxD#;XCmm/iG'(f9EETsg)lXV$'.u$*i`ON=e&etf;'>#mCSZ_<pnPPc;=2R^JJLtAuxkX'3,*aO>+cr;DC0=]Ah$:%liX]VP&^H[JD&Y*kxJ*dD&fR;fZ4-(@'YFi?_5cZ^WdlPL('cZLM9NC-9TKfgMp61mP^&b(4rD6v1Tqj8UJ?<7Qg(WxIXsM+j+M:^6ISL]d-,];41X=`,@(Z.,ei5w,`3v.qEOtQm`ZQ@cW;Z*/^Q'0AI@K$FVgZ.,*ghF,2pY*/cmJCeIS#eLJPL[7DU/Rlx0o<)_ZbXGO))V#t?CC<.nsFAn]6_Mn9wGUtjmao$G-gT@VNt'0s&NEc[k:tAtDUj14kKjL8b$S$)CN@T3;8t>(e;>8(_/X;1)LmKFI)5u=;R(cnUIMS(Gp?]Yu9:,10_K(Z@X.XBB3_]T%W/cbmm$>Q%.UMoBM>1cC`)@Y6OH.$V.X*:<Y4QBI^]_sNxOrSis_)4'4e&4<itNIx^uc>]cu+Cc]Rujp99ik.(3sE#7&JWM<4Qq]0cZa6XUDf3LmKj*wn*LbsI<RE]K1DL@uZ/2M%T]cZVH8#b-5XqJckBUA6Y:oa]s@@AVnK0$Y3IW%lgcJ8*9hRki-HrIQHd,Gtk9J8F3tCg$dmMS2&CB:<]rW3RNp:EbD]gsGeTi^ZFT'irx1h]i*$a-eue,sjSe,VNNf'wE=sRa=r]:TWAX&[x_4M'weO4[X3HWOC-kOxe0Sl%Jbp]Dk>8k+0m#%(5Pbe=Ks3WofP6nPoBGr/Bko:ee'<nkAS$@+'/s;r%YY2$`GqV2s205mJMiB>rSZkKW/s:n8Q?R:?`0,@P;OZf*[#(9K(T9Y6uigOO7ad'fZ,1ICe75q4Wq-C[_#)Nf2dme#PI=suo@o[e1D^iY^Hww%>EEEJwJKuQG(jhMm(W$9iLL2Nq6nhJ6VP8&D0wA87A[w:ttu633*JW+1FEjOQji'sq-HCl`1Yh8#q0ecV/]MA9;26gR8tmIA?IjOx#*AK3$GI;uL3wVp,dPA-X7N]X/qvO.K52GQ_<f(Ns9tojkNV)aL@,&/D]Zh)+.=TLav'0D9:n1Wt.dW-f17x4fP2g6:$d>pORhr^.h*E9n_vZeoPHLR=*&f9Kg'&VP3YITb4LC^(WMCK0IfBXd$GCSG/uj?cYf3Bv6K,pR3H%4)9;R6Nf.=ATXISg>MRH%30vu%F$^IGmFh0O0-$QMtGO/2+tou'Yho`/0iLhMb`hIupNQFEIK-Tv_YAd'gA9,PQR0g7[r0SaR<hix*`d;x9A3t-G2=W,C1)hK0N9V9)C,jAX>A+MXkxm)j9x^4Wmo&CWwS]0ks(D$Pg9E5[bKTRG>4@S@Kn=R>j.vpb$BFJH9UMQ2fg[g'Bg5Me0K#ccPqgMqh&'5>`aV/V*CxLVnLRAON++^4a'__[E+nS9C(iQd$Pw5`Er^iD=i6Yl=MP-9-/Kts4[AXW$-%Dgu/47BTe_sOWWCkJ;6Po93,5sV`2p+3_8W76ZPCr<s+hs&jfvRH/CbfI&X2PNl*L[Y';;=CPm7tafbP?p^Y5V+0_4`sS>BP<W(ReBwFI]O-xPFFpkSs/hitIEG[ov6mmm`iNV:0kAClZH6lf@Npr5FV[j;:`d+bVP*p<nqs]Cp$XWwdkrVrDh_6xr^MhI3a**Yl+PiqVGS`RbOBl=JU<cTBl`n8^TB$'a=uk.:-?0+OIMx/&^_Ud/bs^H-LX$N^)rvK%WD>-n,094N&ItkG3Q+Z0mrM2dNUs0(*1e)]D[(OP6(p1SUx0M]D_muPQ&<iu6Iub#W9IhMs-[QpP@RX2]+14LLX,$:ad1)d.#.G4.WaKjADshrITX*^MidEv*>kS>H4N@85Lmu`jELluB_4%M=l0pa>,2INJG'4x4XB,+p>YquCFcNefK6MbG+r4M)N;v^.w@IEp_bIXKS.*DQ`iD50OPlsS&xK<55Baam2a0oG0krx+[9mFl_/gwKln9gqG@Y@oai?mYGg9tb*P`B8uHm[t`9QV$jB9<Uv'QTd7n,?=?,Q0[s;RItv25U7Rnpb#/LTofVX81#[tg#j:sa_5tiK0>u4mU:PA8jD14f<ffR9GmP_I^.uUP?VeF&Wn[J<3q]%ueG]@vu&-$d[*,t1>*:M./;L/^jd<GIUf$_oSgH'wQ[Zv03_.,01ExYVpi2Wa)3t<J4Rj[l0:Blx^C0Bn2&9bwZ#B;;xH6+rf<1/kG_ep/v_^f^s7(]dTWS)'FWviVFi/QM%rV9WQ)%Y&Q=74w9kWrh:q%dR_Nib)QSRwl0*[i[<.WDauJRgIU0@roc(&j73@x5Z5PZ2?TE=Ec0t)s^I%tHfRFB[pW4[TQvq-RR@N8JKE3X?x,]3]vsgl6N$9jHWP3eP'Lth?i-_.FiV562BED8dXun_'=iU:fB1-IQ4A7;VCP`r<PegQ_8L_DqMuV6$tC'ivOj<r6]>]xcf>Baj/6NNn5D'7&G>frF'SH@v::(VtUDi=`m*<3JV-LAY%TYu>14S,k=XGopNkjqrRften^4eZu#R=/+VE%t'kJKM5;(K(7Gg%(<M%3XI%M`<H3(*#0PPr--oZ'?8pNC2rS6Y&KiH7aAd'C<tq%*3ZwgMN1guLsPJoa-+$@d^Y3jcZX0;'kjJSVeQS(^(5g]BO#;mc.kC&X`40-so@dvUILeR@B+Qr^;sdBOUiQhRm93AtU,Su/U#Q,0PjK**DR[-rlIRBfQUJe,<*LgU^wg@Y3`xeq#L>8uhBc_4AEm9sq0BkNF[e`QQww?[KU`hC>9YpQ/#tQ0;TEdrF0>_bc=.99o(E(g)0-%=`$JAv-B$mT`r=W/LQsm8H?xk9?Sk$pU1EF%wJJN]p#X#K#)XlSxKjZPVn[DLm1_3iR.R&J499AR+B?7l.aDS8?rNn(h['B@f[Bhk`PDto.^rrlvV`d$lsJ:.dm6q=tWXq2afJ.+<KT[4:qc`0o^T'Q5p5u:%>sE'$KA8/Av284-F[L?fv:C]PNMfJUn3mU.r3u5FaAt@dB//twxgoYgUg$-b9_9n<d)<?>c1.M4j&Qa*tR#S$Q>Vafnv75ouhsg[5pkPJJ6DkMNwc_nTg.oqw<Joj3A8N'c<i:vZ^#B#C7_]wxbnRJCsh?LLR&Suu$ZEjfDv&wb.93u0jFF9PionH?<2Bl#;L8@U%%BWkS8SBtmR?aF;'51O5,rXIP7PL>sC9]/r'2$YZo76C4sl+I(@sn?ro$g#bR[?#)C^]KmIfUx`k+&F&&j8hjh879%v-T<R?]iS3O.5FMLn/v5ZbL$jnGO7vr>apZN@h)V@'>e7;KNjM/%P3W$SrWh`/fkRIk7?[kA#6)LI#4DCCn7W-0JSx9nn;1q0%F_6hMT7fNn*L[Uj;_EY[?8Lhu<4T1eh;oV[9j9b7uDC+6O8JWtS:bK<2Z(DDX3%bG3UmrYfEhat]XI_v<A3(o,HH7?9>3SMIkuLRZ?_C0EV1@bEqE94[Aet>J-HDp[cFL9=WvYBW(IoCjP#W8-/vM=D3?GiCnwVY%^^u=;*ur@Ip%5vb%GGPka.R-gG9:o7T,QWZuC;LfGMJY.Of(vM?I*t-+(adl7jFOhW;>Bf)EHK#i4=w`m2Jx4X/K+R65D$]C<_1PSq0P/TlZp7DXnntR9t1s_Z3LSuLDou'MhmxiDAEZ@n%BYwXa'8?g)]Bbtm.H%I;)(IttsV)tXGb$Vp2x'5KxHoWnbj;__R7X-/j3N>#-9XQ_PKphY*^87LRm(.3B],(Fu69j('4hf'<`BZOFIh-)xN`M:]7Su.si5YW<9Qc[*YC6g&M(u_L/bnVlUj48(Jh;lm2$?Qw-+e8.*h<TZbl,.L2f45IAaS,HLc5$uv-L.XEA2mwQI*F0*##5Cr46Oh0JtTkjn.M#PH8>hZ/>+l]+#@S?d*]]";
<krpano>
<!--
webvr.xml
- krpano 1.19
-->
<!-- load the WebVR plugin and assign it to a 'webvr' variable for easier usage -->
<plugin name="WebVR" devices="html5" keep="true"
url="webvr.js"
onloaded="copy(webvr, plugin[WebVR]);"
mousespeed="0.00125"
multireslock="true"
fullscreen_mirroring="true"
mobilevr_support="true"
mobilevr_ipd="63.5"
mobilevr_screensize="auto"
mobilevr_lens_overlap="1.0"
mobilevr_lens_fov="96"
mobilevr_lens_dist="0.6"
mobilevr_lens_dist2="1|0|0|0"
mobilevr_lens_ca="0.0"
mobilevr_lens_vign="100"
mobilevr_wakelock="true"
mobilevr_sensor_mode="3"
mobilevr_autocalibration="false"
mobilevr_touch_support="true"
mobilevr_fake_support="false"
vr_cursor="hotspot[vr_cursor]"
vr_cursor_enabled="true"
vr_cursor_onover="if(handcursor, tween(hotspot[vr_cursor].scale,0.4,0.1); vr_auto_click(get(vr_timeout)); );"
vr_cursor_onout="tween(hotspot[vr_cursor].scale,0.3,0.1);"
onavailable="webvr_onavailable();"
onunavailable=""
onunknowndevice="webvr_onunknowndevice();"
onentervr="webvr_onentervr();"
onexitvr="webvr_onexitvr();"
/>
<!-- a custom xml data structure with the supported VR headsets -->
<vrheadsets>
<headset name="cb1" caption="Cardboard A" overlap="1.10" fov="96.0" dist="1.00" dist2="1|0|0|0" ca="0.000" vig="100" />
<headset name="cb2" caption="Cardboard B" overlap="1.00" fov="96.0" dist="0.60" dist2="1|0|0|0" ca="0.000" vig="100" />
<headset name="gvr" caption="GearVR" overlap="1.00" fov="112.0" dist="0.95" dist2="1|0|0|0" ca="0.090" vig="100" />
<headset name="hom" caption="HOMiDO" overlap="1.00" fov="101.0" dist="1.10" dist2="1|0|0|0" ca="0.075" vig="100" />
<headset name="one" caption="VR ONE" overlap="1.00" fov="109.9" dist="0.00" dist2="1.139|0.093|0.018|0.207" ca="0.090" vig="35" />
<headset name="ccr" caption="ColorCross VR" overlap="1.00" fov="70.0" dist="0.65" dist2="1|0|0|0" ca="0.000" vig="100" />
<headset name="nod" caption="No Distortion" overlap="1.00" fov="96.0" dist="0.00" dist2="1|0|0|0" ca="0.000" vig="100" />
</vrheadsets>
<!-- the VR cursor hotspot -->
<hotspot name="vr_cursor" keep="true"
url="webvr_cursor_80x80_17f.png"
visible="false"
enabled="false"
distorted="true"
crop="0|0|80|80"
scale="0.3"
depth="1000"
/>
<!-- vr_auto_click() - call this action in the onover event of a
hotspot to trigger automatically a click after some time. -->
<action name="vr_auto_click">
if(webvr.isenabled,
if(%1 != null, set(vr_aclk_timeout, %1), set(vr_aclk_timeout, 2000));
copy(vr_aclk_t1, timertick);
set(vr_aclk_waiting, true);
copy(vr_aclk_hotspot, name);
set(hotspot[vr_cursor].crop,'0|0|80|80');
asyncloop(vr_aclk_waiting AND vr_aclk_hotspot == name,
sub(dt, timertick,vr_aclk_t1);
if(!hovering,
set(vr_aclk_waiting, false);
set(hotspot[vr_cursor].crop,'0|0|80|80');
,
div(f, dt, vr_aclk_timeout);
mul(f, 16);
roundval(f);
Math.min(f, 16);
mul(f, 80);
txtadd(hotspot[vr_cursor].crop,get(f),'|0|80|80');
<!-- wait another 100ms delay after finishing the animation before doing the click -->
sub(dt, 100);
if(dt GT vr_aclk_timeout,
set(vr_aclk_waiting,false);
set(hotspot[vr_cursor].crop,'0|0|80|80');
<!-- call onclick -->
onclick();
);
);
);
);
</action>
<!-- by pressing SPACE the Oculus Rift could be re-centered -->
<events name="webvr_events" devices="html5" keep="true"
onkeydown="if(webvr AND webvr.isenabled AND keycode==32, webvr.resetSensor() );"
onmousedown="if(webvr AND webvr.isenabled, webvr_showbuttons() );"
/>
<!-- when WebVR support is available show an EnterVR button -->
<action name="webvr_onavailable">
webvr.loadsettings();
delayedcall(0.5, tween(layer[webvr_enterbutton].alpha,1.0); );
</action>
<action name="webvr_onunknowndevice">
if(webvr.isfake AND device.desktop AND webvr.havesettings == false,
<!-- set the 'no distortion' headset for fake desktop usage -->
set(webvr.mobilevr_lens_overlap, 1.0);
set(webvr.mobilevr_lens_fov, 96.0);
set(webvr.mobilevr_lens_dist, 0.0);
set(webvr.mobilevr_lens_dist2, '1|0|0|0');
set(webvr.mobilevr_lens_ca, 0.0);
set(webvr.mobilevr_lens_vign, 100);
,
set(ask_user_for_screensize,true);
);
</action>
<action name="webvr_onentervr">
tween(layer[webvr_enterbutton].alpha,0,0);
webvr_showbuttons();
webvr_hide_all_non_vr_layers();
<!-- when the screen size is unknown an no custom size is set, open the setup screen on entering the VR mode -->
if(webvr.ismobilevr == true AND !webvr.isfake AND ask_user_for_screensize == true AND webvr.mobilevr_screensize == 'auto',
set(ask_user_for_screensize, false);
vr_setup();
);
if(webvr.isfake,
webvr_show_fakemode_info(true);
);
</action>
<action name="webvr_onexitvr">
stopdelayedcall(vr_button_fadeout);
tween(layer[webvr_enterbutton].alpha,1);
tween(layer[webvr_exitbutton].alpha,0);
tween(layer[webvr_setupbutton].alpha,0);
webvr_show_fakemode_info(false);
webvr_restore_layers();
</action>
<action name="webvr_hide_all_non_vr_layers">
for(set(i,0), i LT layer.count, inc(i),
copy(lr, layer[get(i)]);
if(lr.vr !== true,
copy(lr.vr_backup_visible, lr.visible);
set(lr.visible, false);
);
);
</action>
<action name="webvr_restore_layers">
for(set(i,0), i LT layer.count, inc(i),
copy(lr, layer[get(i)]);
if(lr.vr_backup_visible,
copy(lr.visible, lr.vr_backup_visible);
delete(lr.vr_backup_visible);
);
);
</action>
<action name="webvr_show_fakemode_info">
if('%1' == 'true',
addlayer(webvr_fakemode_info);
set(layer[webvr_fakemode_info].url, '%SWFPATH%/plugins/textfield.swf');
set(layer[webvr_fakemode_info].keep, true);
set(layer[webvr_fakemode_info].align, 'bottom');
set(layer[webvr_fakemode_info].y, 80);
set(layer[webvr_fakemode_info].background, false);
set(layer[webvr_fakemode_info].css, 'color:#FFFFFF;text-align:center;');
set(layer[webvr_fakemode_info].html, '[i][u]Simulated WebVR Mode![/u][/i][br]For real WebVR with headset tracking, either use a [a href="http://webvr.info" target="_blank" style="color:#FFFFFF;"]WebVR-API-capable[/a] desktop browser or a mobile device and a VR headset.');
,
removelayer(webvr_fakemode_info);
);
</action>
<!-- ensure the same scaling on mobiles (regardless if mobilescale is 0.5 or 1.0) -->
<krpano webvr_setup_scale="calc:(1.0 + 1.0*(device.mobile AND stagescale LT 1.0)) / (1.0 + 1.0*device.mobile)"
webvr_button_scale.normal="1.0"
webvr_button_scale.mobile="1.6"
/>
<!-- the EnterVR/ExitVR and SetupVR buttons -->
<style name="webvr_button_style"
url="%SWFPATH%/plugins/textfield.swf"
backgroundcolor="0x000000"
backgroundalpha="0.5"
roundedge="calc:9*webvr_setup_scale*webvr_button_scale"
css="calc:'color:#FFFFFF;font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
padding="calc:6*webvr_setup_scale*webvr_button_scale + ' ' + 10*webvr_setup_scale*webvr_button_scale"
/>
<layer name="webvr_enterbutton" keep="true" vr="true"
style="webvr_button_style"
html="Enter VR"
align="top" y="24"
autoalpha="true" alpha="0.0"
onclick="webvr.enterVR();"
/>
<layer name="webvr_exitbutton" keep="true" vr="true"
style="webvr_button_style"
html="Exit VR"
align="top" y="24"
autoalpha="true" alpha="0.0"
onclick="webvr.exitVR();"
/>
<layer name="webvr_setupbutton" keep="true" vr="true"
style="webvr_button_style"
html="VR Setup"
align="bottom" y="24"
autoalpha="true" alpha="0.0"
onclick="vr_setup()"
/>
<action name="webvr_showbuttons">
stopdelayedcall(vr_button_fadeout);
if(webvr.ismobilevr,
tween(layer[webvr_exitbutton].alpha|layer[webvr_setupbutton].alpha, 1.0|1.0, 0.25);
delayedcall(vr_button_fadeout, 3.0, tween(layer[webvr_exitbutton].alpha|layer[webvr_setupbutton].alpha, 0.0|0.0, 1.0); );
,
tween(layer[webvr_exitbutton].alpha, 1.0, 0.25);
delayedcall(vr_button_fadeout, 3.0, tween(layer[webvr_exitbutton].alpha, 0.0, 1.0); );
);
</action>
<!--
VR Setup
-->
<action name="vr_setup">
<!-- disable cursor -->
set(webvr.vr_cursor_enabled, false);
<!-- hide VR buttons -->
tween(layer[webvr_exitbutton].alpha,0);
tween(layer[webvr_setupbutton].alpha,0);
<!-- create background layer -->
addlayer(vr_setup_bg);
set(layer[vr_setup_bg].type, container);
set(layer[vr_setup_bg].bgcolor, 0x000000);
set(layer[vr_setup_bg].bgalpha, 0.5);
set(layer[vr_setup_bg].bgcapture, true);
set(layer[vr_setup_bg].handcursor, false);
set(layer[vr_setup_bg].align, lefttop);
set(layer[vr_setup_bg].width, 100%);
set(layer[vr_setup_bg].height, 100%);
set(layer[vr_setup_bg].zorder, 99999);
<!-- get and prepare device infos and settings -->
copy(i_screensize, webvr.mobilevr_screensize);
if(i_screensize == 'auto', copy(i_screensize, webvr.devicesize));
if(i_screensize LE 0, set(i_screensize, 5.0));
roundval(i_screensize, 1);
txtadd(i_screensize, ' inch');
copy(i_ipd, webvr.mobilevr_ipd);
roundval(i_ipd, 1);
txtadd(i_ipd, ' mm');
copy(i_fov, webvr.mobilevr_lens_fov);
roundval(i_fov, 1);
copy(i_dist, webvr.mobilevr_lens_dist);
roundval(i_dist, 2);
copy(i_dist2, webvr.mobilevr_lens_dist2);
txtsplit(i_dist2, '|', i_dist2_k1, i_dist2_k2, i_dist2_k3, i_dist2_k4);
mul(i_dist2_k1,1);
mul(i_dist2_k2,10);
mul(i_dist2_k3,10);
mul(i_dist2_k4,10);
roundval(i_dist2_k1,2);
roundval(i_dist2_k2,2);
roundval(i_dist2_k3,2);
roundval(i_dist2_k4,2);
copy(i_vig, webvr.mobilevr_lens_vign);
roundval(i_vig, 0);
copy(i_overlap, webvr.mobilevr_lens_overlap);
roundval(i_overlap, 2);
copy(i_ca, webvr.mobilevr_lens_ca);
roundval(i_ca, 3);
set(i_headset, 'Custom');
for(set(i,0), i LT vrheadsets.headset.count, inc(i),
copy(hs, vrheadsets.headset[get(i)]);
if(i_overlap == hs.overlap AND i_fov == hs.fov AND i_dist == hs.dist AND i_dist2 == hs.dist2 AND i_ca == hs.ca AND i_vig == hs.vig , copy(i_headset, hs.caption));
);
<!-- when the screen size is unknown, mark it red -->
set(known_size, true);
set(sizcol, #FFFFFF);
copy(i_devicename, webvr.devicename);
if(i_devicename == 'Unknown',
if(webvr.mobilevr_screensize == 'auto',
set(sizcol, #AA0000);
set(known_size, false);
,
set(i_devicename, 'Custom');
);
);
<!-- create layer for the main menu -->
addlayer(vr_setup_m1);
set(layer[vr_setup_m1].type, container);
set(layer[vr_setup_m1].parent, vr_setup_bg);
set(layer[vr_setup_m1].align, lefttop);
set(layer[vr_setup_m1].width, 100%);
set(layer[vr_setup_m1].height, 100%);
<!-- create layer for the headset customization menu -->
addlayer(vr_setup_m3);
set(layer[vr_setup_m3].type, container);
set(layer[vr_setup_m3].parent, vr_setup_bg);
set(layer[vr_setup_m3].align, lefttop);
set(layer[vr_setup_m3].width, 100%);
set(layer[vr_setup_m3].height, 100%);
set(layer[vr_setup_m3].visible, false);
<!-- create layer for the calibration menu -->
addlayer(vr_setup_m2);
set(layer[vr_setup_m2].type, container);
set(layer[vr_setup_m2].parent, vr_setup_bg);
set(layer[vr_setup_m2].align, lefttop);
set(layer[vr_setup_m2].width, 100%);
set(layer[vr_setup_m2].height, 100%);
set(layer[vr_setup_m2].visible, false);
<!-- create the text elements -->
set(vr_setup_text_parent, 'vr_setup_m1');
vr_setup_createtext(vr_setup_title, 'MOBILE VR SETUP', center, center, 0, -225, #FFFFFF, false);
vr_setup_createtext(vr_setup_dvn1, 'Device:', center, right, 0, -145, #FFFFFF, true, vr_setup_select('screen') );
vr_setup_createtext(vr_setup_dvn2, get(i_devicename), center, left, 0, -145, get(sizcol), true, vr_setup_select('screen') );
vr_setup_createtext(vr_setup_siz1, 'Screensize:', center, right, 0, -105, #FFFFFF, true, vr_setup_select('screen') );
vr_setup_createtext(vr_setup_siz2, get(i_screensize), center, left, 0, -105, get(sizcol), true, vr_setup_select('screen') );
vr_setup_createtext(vr_setup_ipd1, 'IPD:', center, right, 0, -35, #FFFFFF, true, vr_setup_select('ipd') );
vr_setup_createtext(vr_setup_ipd2, get(i_ipd), center, left, 0, -35, #FFFFFF, true, vr_setup_select('ipd') );
vr_setup_createtext(vr_setup_hmd1, 'VR Headset:', center, right, 0, +35, #FFFFFF, true, vr_setup_select('headset') );
vr_setup_createtext(vr_setup_hmd2, get(i_headset), center, left, 0, +35, #FFFFFF, true, vr_setup_select('headset') );
vr_setup_createtext(vr_setup_hmd3, 'Customize', center, center, 0, +75, #FFFFFF, true, set(background,true), set(background,false), vr_setup_customize_headset() );
if(webvr.iswebvr == false,
vr_setup_createtext(vr_setup_cal, 'Calibrate Gyroscope', center, center, 0, +145, #FFFFFF, true, set(background,true), set(background,false), vr_setup_calibration() );
);
vr_setup_createtext(vr_setup_sav, 'SAVE', center, center, -200, +225, #FFFFFF, true, set(background,true), set(background,false), vr_setup_save() );
vr_setup_createtext(vr_setup_rst, 'RESET', center, center, 0, +225, #FFFFFF, true, set(background,true), set(background,false), vr_setup_reset() );
vr_setup_createtext(vr_setup_cls, 'CLOSE', center, center, +200, +225, #FFFFFF, true, set(background,true), set(background,false), vr_setup_close() );
<!-- and the adjusting buttons -->
vr_setup_createbutton(vr_setup_btn1, '&#60;', left, left, 5%, -35, #FFFFFF, true, null);
vr_setup_createbutton(vr_setup_btn2, '&#62;', right, right, 5%, -35, #FFFFFF, true, null);
<!-- create the customize_headset text elements -->
set(vr_setup_text_parent, 'vr_setup_m3');
vr_setup_createtext(vr_setup_m31, 'VR HEADSET', center, center, 0, -225, #FFFFFF, false);
vr_setup_createtext(vr_setup_fov1, 'FOV:', center, right, 0, -80, #FFFFFF, true, vr_setup_select('fov') );
vr_setup_createtext(vr_setup_fov2, get(i_fov), center, left, 0, -80, #FFFFFF, true, vr_setup_select('fov') );
vr_setup_createtext(vr_setup_dst1, 'Distortion:', center, right, 0, -32, #FFFFFF, true, vr_setup_select('dist') );
vr_setup_createtext(vr_setup_dst2, get(i_dist), center, left, 0, -32, #FFFFFF, true, vr_setup_select('dist') );
vr_setup_createtext(vr_setup_d2tx, 'Dist2:', center, right, 0, +16, #FFFFFF, true, vr_setup_select('dist2k1') );
vr_setup_createtext(vr_setup_d2k1, get(i_dist2_k1), center, left, 0, +16, #FFFFFF, true, vr_setup_select('dist2k1') );
vr_setup_createtext(vr_setup_d2k2, get(i_dist2_k2), center, left, +100, +16, #FFFFFF, true, vr_setup_select('dist2k2') );
vr_setup_createtext(vr_setup_d2k3, get(i_dist2_k3), center, left, +200, +16, #FFFFFF, true, vr_setup_select('dist2k3') );
vr_setup_createtext(vr_setup_d2k4, get(i_dist2_k4), center, left, +300, +16, #FFFFFF, true, vr_setup_select('dist2k4') );
vr_setup_createtext(vr_setup_cac1, 'CA Corr:', center, right, 0, +64, #FFFFFF, true, vr_setup_select('ca') );
vr_setup_createtext(vr_setup_cac2, get(i_ca), center, left, 0, +64, #FFFFFF, true, vr_setup_select('ca') );
vr_setup_createtext(vr_setup_vig1, 'Vignette:', center, right, 0, +112, #FFFFFF, true, vr_setup_select('vignette') );
vr_setup_createtext(vr_setup_vig2, get(i_vig), center, left, 0, +112, #FFFFFF, true, vr_setup_select('vignette') );
vr_setup_createtext(vr_setup_olp1, 'Overlap:', center, right, 0, +160, #FFFFFF, true, vr_setup_select('overlap') );
vr_setup_createtext(vr_setup_olp2, get(i_overlap), center, left, 0, +160, #FFFFFF, true, vr_setup_select('overlap') );
vr_setup_createtext(vr_setup_m35, 'CLOSE', center, center, 0, +225, #FFFFFF, true, set(background,true), set(background,false), vr_setup_close_sub_menus() );
<!-- create the calibration text elements -->
set(vr_setup_text_parent, 'vr_setup_m2');
vr_setup_createtext(vr_setup_cb1, 'GYROSCOPE', center, center, 0, -225, #FFFFFF, false);
vr_setup_createtext(vr_setup_cb2, 'Place the device on a flat and[br]stable surface and tab calibrate[br]to correct a gyroscope drifting.', center, center, 0, -95, #FFFFFF, false, vr_setup_select('screen') );
vr_setup_createtext(vr_setup_cb3, 'CALIBRATE', center, center, 0, +55, #FFFFFF, true, set(background,true), set(background,false), vr_setup_do_calibration() );
vr_setup_createtext(vr_setup_cb4, 'RESET', center, center, 0, +125, #FFFFFF, true, set(background,true), set(background,false), webvr.resetcalibration() );
vr_setup_createtext(vr_setup_cb5, 'CLOSE', center, center, 0, +225, #FFFFFF, true, set(background,true), set(background,false), vr_setup_close_sub_menus() );
vr_setup_createtext(vr_setup_cb6, 'Calibrating...', bottom, center, 0, 40, #FFFFFF, false, null );
vr_setup_createtext(vr_setup_cb7, 'Calibration okay.', bottom, center, 0, 40, #FFFFFF, false, null );
vr_setup_createtext(vr_setup_cb8, 'Calibration failed!', bottom, center, 0, 40, #FFFFFF, false, null );
set(layer[vr_setup_cb6].autoalpha, true);
set(layer[vr_setup_cb7].autoalpha, true);
set(layer[vr_setup_cb8].autoalpha, true);
set(layer[vr_setup_cb6].alpha, 0.0);
set(layer[vr_setup_cb7].alpha, 0.0);
set(layer[vr_setup_cb8].alpha, 0.0);
<!-- pre-select the screen size for adjusting when it is unknown, otherwise the IPD -->
if(known_size == false,
vr_setup_select('screen', true);
,
vr_setup_select('ipd', true);
);
</action>
<action name="vr_setup_createtext">
<!--
%1 = name
%2 = text
%3 = align
%4 = edge
%5 = x
%6 = y
%7 = color
%8 = enabled
%9 = ondown
%10 = onup
%11 = onclick
-->
addlayer(%1);
set(layer[%1].parent, get(vr_setup_text_parent));
set(layer[%1].url, '%SWFPATH%/plugins/textfield.swf');
set(layer[%1].css, calc('text-align:%3;color:%7;font-size:'+40*webvr_setup_scale+'px;font-weight:bold;'));
set(layer[%1].padding, calc(0 + ' ' + 8*webvr_setup_scale));
set(layer[%1].roundedge, calc(8*webvr_setup_scale));
set(layer[%1].background, false);
set(layer[%1].backgroundcolor, 0xFFFFFF);
set(layer[%1].backgroundalpha, 0.25);
set(layer[%1].align, %3);
set(layer[%1].edge, %4);
set(layer[%1].x, calc(%5 * webvr_setup_scale));
set(layer[%1].y, calc(%6 * webvr_setup_scale));
set(layer[%1].html, %2);
set(layer[%1].enabled, %8);
set(layer[%1].ondown, %9);
set(layer[%1].onup, %10);
set(layer[%1].onclick, %11);
</action>
<action name="vr_setup_createbutton">
vr_setup_createtext(%1,%2,%3,%4,%5,%6,%7,%8,%9);
set(layer[%1].css, calc('vertical-align:middle;text-align:center;color:%7;font-size:'+60*webvr_setup_scale+'px;font-weight:bold;'));
set(layer[%1].background, true);
set(layer[%1].padding, 0);
set(layer[%1].roundedge, calc(40 * webvr_setup_scale));
set(layer[%1].width, calc(70 * webvr_setup_scale));
set(layer[%1].height, calc(70 * webvr_setup_scale));
set(layer[%1].vcenter, true);
</action>
<action name="vr_setup_reset">
<!-- reset to the defaults -->
set(webvr.mobilevr_screensize, 'auto');
copy(i_screensize, webvr.devicesize);
if(i_screensize LE 0, set(i_screensize, 5.0); );
roundval(i_screensize, 1);
set(layer[vr_setup_dvn2].html, get(webvr.devicename));
txtadd(layer[vr_setup_siz2].html, get(i_screensize), ' inch');
set(webvr.mobilevr_ipd, 63.5);
copy(i_ipd, webvr.mobilevr_ipd);
roundval(i_ipd, 1);
txtadd(layer[vr_setup_ipd2].html, get(i_ipd), ' mm');
<!-- set fake custom lens settings and call 'next' headset to switch to the default 'Cardboard' settings -->
set(webvr.mobilevr_lens_fov, 100);
set(webvr.mobilevr_lens_dist, 0.5);
set(webvr.mobilevr_lens_dist2, '1|0|0|0');
set(webvr.mobilevr_lens_vign, 100);
set(webvr.mobilevr_lens_overlap, 1.0);
set(webvr.mobilevr_lens_ca, 0.0);
if(webvr.isfake AND device.desktop,
<!-- select 'no distortion' headset for fake desktop usage -->
vr_setup_change_headset(-1);
,
<!-- select 'Cardboard A' headset for Mobile-VR usage -->
vr_setup_change_headset(+1);
);
vr_setup_select(get(selected_var));
</action>
<action name="vr_setup_close">
<!-- 2. parameter == true => remove children elements too -->
removelayer(vr_setup_bg, true);
<!-- enable cursor -->
set(webvr.vr_cursor_enabled, true);
</action>
<action name="vr_setup_save">
webvr.saveSettings();
vr_setup_close();
</action>
<action name="vr_setup_customize_headset">
set(layer[vr_setup_bg].bgalpha, 0.1);
set(layer[vr_setup_m1].visible,false);
set(layer[vr_setup_m2].visible,false);
set(layer[vr_setup_m3].visible,true);
set(layer[vr_setup_hmd1].parent, vr_setup_m3);
set(layer[vr_setup_hmd2].parent, vr_setup_m3);
set(layer[vr_setup_btn1].parent, vr_setup_m3);
set(layer[vr_setup_btn2].parent, vr_setup_m3);
set(layer[vr_setup_hmd1].y, calc(-145 * webvr_setup_scale));
set(layer[vr_setup_hmd2].y, calc(-145 * webvr_setup_scale));
copy(old_selection, selected_var);
vr_setup_select('headset');
</action>
<action name="vr_setup_calibration">
set(layer[vr_setup_m1].visible,false);
set(layer[vr_setup_m2].visible,true);
</action>
<action name="vr_setup_close_sub_menus">
set(layer[vr_setup_bg].bgalpha, 0.5);
set(layer[vr_setup_m1].visible,true);
set(layer[vr_setup_m2].visible,false);
set(layer[vr_setup_m3].visible,false);
set(layer[vr_setup_hmd1].parent, vr_setup_m1);
set(layer[vr_setup_hmd2].parent, vr_setup_m1);
set(layer[vr_setup_btn1].parent, vr_setup_m1);
set(layer[vr_setup_btn2].parent, vr_setup_m1);
set(layer[vr_setup_hmd1].y, calc(+35 * webvr_setup_scale));
set(layer[vr_setup_hmd2].y, calc(+35 * webvr_setup_scale));
if(old_selection,
vr_setup_select(get(old_selection));
delete(old_selection);
);
</action>
<action name="vr_setup_do_calibration">
if(!webvr.isfake,
tween(layer[vr_setup_cb6].alpha, 1.0, 0.1);
tween(layer[vr_setup_cb7].alpha, 0.0, 0.1);
tween(layer[vr_setup_cb8].alpha, 0.0, 0.1);
webvr.calibrate(
tween(layer[vr_setup_cb6].alpha, 0.0, 0.1);
tween(layer[vr_setup_cb7].alpha, 1.0, 0.1);
delayedcall(2.0, tween(layer[vr_setup_cb7].alpha, 0.0, 0.25) );
,
tween(layer[vr_setup_cb6].alpha, 0.0, 0.1);
tween(layer[vr_setup_cb8].alpha, 1.0, 0.1);
delayedcall(2.0, tween(layer[vr_setup_cb8].alpha, 0.0, 0.25) );
);
);
</action>
<action name="vr_setup_update_dist2">
txtadd(webvr.mobilevr_lens_dist2, get(i_dist2_k1), '|', calc(i_dist2_k2/10.0), '|', calc(i_dist2_k3/10.0), '|', calc(i_dist2_k4/10.0));
vr_setup_change_headset(0);
</action>
<action name="vr_setup_select">
<!-- select a setting for adjusting -->
set(layer[vr_setup_siz2].background, false);
set(layer[vr_setup_ipd2].background, false);
set(layer[vr_setup_hmd2].background, false);
set(layer[vr_setup_fov2].background, false);
set(layer[vr_setup_dst2].background, false);
set(layer[vr_setup_d2k1].background, false);
set(layer[vr_setup_d2k2].background, false);
set(layer[vr_setup_d2k3].background, false);
set(layer[vr_setup_d2k4].background, false);
set(layer[vr_setup_vig2].background, false);
set(layer[vr_setup_cac2].background, false);
set(layer[vr_setup_olp2].background, false);
set(selected_setting, null);
delete(selected_var_value);
set(layer[vr_setup_btn1].ondown, vr_setup_change_ondown(-1) );
set(layer[vr_setup_btn2].ondown, vr_setup_change_ondown(+1) );
set(selected_var_callback, null);
set(selected_var, %1);
if(selected_var == 'screen',
set(selected_setting, vr_setup_siz2);
set(selected_var_name, 'webvr.mobilevr_screensize');
set(selected_var_postfix, ' inch');
copy(selected_var_value, get(selected_var_name));
if(selected_var_value == 'auto', copy(selected_var_value, webvr.devicesize));
if(selected_var_value LE 0, set(selected_var_value, 5.0));
set(selected_var_step, 0.1);
set(selected_var_min, 4);
set(selected_var_max, 10);
set(selected_var_round, 1);
set(selected_var_callback, vr_setup_change_screen() );
);
if(selected_var == 'ipd',
set(selected_setting, vr_setup_ipd2);
set(selected_var_name, 'webvr.mobilevr_ipd');
set(selected_var_postfix, ' mm');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.1);
set(selected_var_min, 40);
set(selected_var_max, 80);
set(selected_var_round, 1);
);
if(selected_var == 'headset',
set(selected_setting, vr_setup_hmd2);
set(layer[vr_setup_btn1].ondown, vr_setup_change_headset(-1) );
set(layer[vr_setup_btn2].ondown, vr_setup_change_headset(+1) );
);
if(selected_var == 'fov',
set(selected_setting, vr_setup_fov2);
set(selected_var_name, 'webvr.mobilevr_lens_fov');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.1);
set(selected_var_min, 40);
set(selected_var_max, 179);
set(selected_var_round, 1);
set(selected_var_callback, vr_setup_change_headset(0) );
);
if(selected_var == 'dist',
set(selected_setting, vr_setup_dst2);
set(selected_var_name, 'webvr.mobilevr_lens_dist');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.01);
set(selected_var_min, 0);
set(selected_var_max, 5);
set(selected_var_round, 2);
set(selected_var_callback, vr_setup_change_headset(0) );
);
if(selected_var == 'dist2k1',
set(selected_setting, vr_setup_d2k1);
set(selected_var_name, 'i_dist2_k1');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.01);
set(selected_var_min, -9);
set(selected_var_max, +9);
set(selected_var_round, 2);
set(selected_var_callback, vr_setup_update_dist2() );
);
if(selected_var == 'dist2k2',
set(selected_setting, vr_setup_d2k2);
set(selected_var_name, 'i_dist2_k2');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.01);
set(selected_var_min, -9);
set(selected_var_max, +9);
set(selected_var_round, 2);
set(selected_var_callback, vr_setup_update_dist2() );
);
if(selected_var == 'dist2k3',
set(selected_setting, vr_setup_d2k3);
set(selected_var_name, 'i_dist2_k3');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.01);
set(selected_var_min, -9);
set(selected_var_max, +9);
set(selected_var_round, 2);
set(selected_var_callback, vr_setup_update_dist2() );
);
if(selected_var == 'dist2k4',
set(selected_setting, vr_setup_d2k4);
set(selected_var_name, 'i_dist2_k4');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.01);
set(selected_var_min, -9);
set(selected_var_max, +9);
set(selected_var_round, 2);
set(selected_var_callback, vr_setup_update_dist2() );
);
if(selected_var == 'vignette',
set(selected_setting, vr_setup_vig2);
set(selected_var_name, 'webvr.mobilevr_lens_vign');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 1);
set(selected_var_min, 10);
set(selected_var_max, 200);
set(selected_var_round, 0);
set(selected_var_callback, vr_setup_change_headset(0) );
);
if(selected_var == 'ca',
set(selected_setting, vr_setup_cac2);
set(selected_var_name, 'webvr.mobilevr_lens_ca');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.01);
set(selected_var_min, -1.0);
set(selected_var_max, +1.0);
set(selected_var_round, 2);
set(selected_var_callback, vr_setup_change_headset(0) );
);
if(selected_var == 'overlap',
set(selected_setting, vr_setup_olp2);
set(selected_var_name, 'webvr.mobilevr_lens_overlap');
set(selected_var_postfix, '');
copy(selected_var_value, get(selected_var_name));
set(selected_var_step, 0.01);
set(selected_var_min, 0.5);
set(selected_var_max, 2.0);
set(selected_var_round, 2);
set(selected_var_callback, vr_setup_change_headset(0) );
);
if(selected_setting != null,
set(layer[get(selected_setting)].background, true);
if(%2 == true,
set(layer[vr_setup_btn1].y, get(layer[get(selected_setting)].y));
set(layer[vr_setup_btn2].y, get(layer[get(selected_setting)].y));
,
tween(layer[vr_setup_btn1].y, get(layer[get(selected_setting)].y));
tween(layer[vr_setup_btn2].y, get(layer[get(selected_setting)].y));
);
);
</action>
<action name="vr_setup_change_screen">
set(layer[vr_setup_dvn2].html, 'Custom');
set(layer[vr_setup_dvn2].css, calc('color:#FFFFFF;font-size:'+40*webvr_setup_scale+'px;font-weight:bold;'));
set(layer[vr_setup_siz2].css, calc('color:#FFFFFF;font-size:'+40*webvr_setup_scale+'px;font-weight:bold;'));
</action>
<action name="vr_setup_change_ondown">
copy(t0,timertick);
set(t1,0);
asyncloop(pressed,
copy(t2,timertick);
sub(dt,t2,t1);
if(dt GT 100,
copy(t1,t2);
sub(dt,t1,t0);
div(dt,1000);
Math.max(dt,1);
mul(dt,%1);
vr_setup_adjust(get(dt));
);
);
</action>
<action name="vr_setup_adjust">
if(selected_setting != null,
mul(change, selected_var_step, %1);
add(selected_var_value, change);
Math.max(selected_var_value, selected_var_min);
Math.min(selected_var_value, selected_var_max);
roundval(selected_var_value, get(selected_var_round));
tween(get(selected_var_name), get(selected_var_value), 0.1);
txtadd(layer[get(selected_setting)].html, get(selected_var_value), get(selected_var_postfix));
if(selected_var_callback != null, selected_var_callback());
);
</action>
<action name="vr_setup_change_headset">
set(i_headset, 'Custom');
if(%1 != 0,
copy(i_fov, webvr.mobilevr_lens_fov);
roundval(i_fov, 1);
copy(i_dist, webvr.mobilevr_lens_dist);
roundval(i_dist, 2);
copy(i_dist2, webvr.mobilevr_lens_dist2);
copy(i_vig, webvr.mobilevr_lens_vign);
roundval(i_vig, 0);
copy(i_ca, webvr.mobilevr_lens_ca);
roundval(i_ca, 3);
copy(i_overlap, webvr.mobilevr_lens_overlap);
roundval(i_overlap, 2);
set(i_hsindex, -1);
copy(i_hscount, vrheadsets.headset.count);
for(set(i,0), i LT i_hscount, inc(i),
copy(hs, vrheadsets.headset[get(i)]);
if(i_overlap == hs.overlap AND i_fov == hs.fov AND i_dist == hs.dist AND i_dist2 == hs.dist2 AND i_ca == hs.ca AND i_vig == hs.vig , copy(i_hsindex, i); copy(i_headset, hs.caption); );
);
if(%1 GT 0,
<!-- loop right -->
add(i_hsindex, 1);
if(i_hsindex GE i_hscount, set(i_hsindex,0));
,
<!-- loop left -->
sub(i_hsindex, 1);
if(i_hsindex LT 0, sub(i_hsindex,i_hscount,1));
);
copy(hs, vrheadsets.headset[get(i_hsindex)]);
copy(i_headset, hs.caption);
copy(i_overlap, hs.overlap);
copy(i_fov, hs.fov);
copy(i_dist, hs.dist);
copy(i_dist2, hs.dist2);
copy(i_ca, hs.ca);
copy(i_vig, hs.vig);
);
copy(layer[vr_setup_hmd2].html, i_headset);
if(%1 != 0,
copy(webvr.mobilevr_lens_overlap, i_overlap);
copy(webvr.mobilevr_lens_fov, i_fov);
copy(webvr.mobilevr_lens_dist, i_dist);
copy(webvr.mobilevr_lens_dist2, i_dist2);
copy(webvr.mobilevr_lens_ca, i_ca);
copy(webvr.mobilevr_lens_vign, i_vig);
copy(layer[vr_setup_olp2].html, i_overlap);
copy(layer[vr_setup_fov2].html, i_fov);
copy(layer[vr_setup_dst2].html, i_dist);
txtsplit(i_dist2, '|', i_dist2_k1, i_dist2_k2, i_dist2_k3, i_dist2_k4);
mul(i_dist2_k1,1);
mul(i_dist2_k2,10);
mul(i_dist2_k3,10);
mul(i_dist2_k4,10);
roundval(i_dist2_k1,2);
roundval(i_dist2_k2,2);
roundval(i_dist2_k3,2);
roundval(i_dist2_k4,2);
copy(layer[vr_setup_d2k1].html, i_dist2_k1);
copy(layer[vr_setup_d2k2].html, i_dist2_k2);
copy(layer[vr_setup_d2k3].html, i_dist2_k3);
copy(layer[vr_setup_d2k4].html, i_dist2_k4);
copy(layer[vr_setup_cac2].html, i_ca);
copy(layer[vr_setup_vig2].html, i_vig);
);
</action>
</krpano>
<!DOCTYPE html>
<html>
<head>
<title>度假到丹寨</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="x-ua-compatible" content="IE=edge" />
<style>
*{
margin: 0;
padding: 0;
border:none;
}
.page-wrap{
position: absolute;
width: 100%;
height: 100%;
background-image: url("/images/show/fupin.png");
background-size: cover;
background-repeat: no-repeat;
background-position: bottom center;
}
.nav-list{
margin-top: 20px;
width: 100%;
white-space: nowrap;
height: 102px;
overflow-y: hidden;
overflow-x: scroll;
}
.nav-item{
display: inline-block;
width: 57px;
height: 102px;
margin-left: 22px;
}
.nav-item.active{
background: rgba(23, 40, 63, 0.3);
}
.nav-item__iconbox{
margin: 4px 1px 6px;
width: 55px;
height: 55px;
border-radius: 50px;
overflow: hidden;
background: rgba(255,255,255,.2);
position: relative;
}
.nav-item__icon{
position: absolute;
left: 50%;
top: 50%;
vertical-align: top;
transform: translate(-50%,-50%);
width: 50px;
height: 50px;
border-radius: 50px;
overflow: hidden;
}
.nav-item__mtitle{
text-align: center;
font-size: 14px;
color: #fff;
}
</style>
<script src="/libs/vue/vue.js"></script>
</head>
<body>
<div class="page-wrap" id="app">
<div class="nav-list">
<div class="nav-item" v-for="(item,idx) in navs" :key="idx" :class="{active:idx===activeIdx}" @click="setActive(item,idx)">
<div class="nav-item__iconbox">
<img :src="item.icon" class="nav-item__icon" />
</div>
<div class="nav-item__mtitle" v-html="item.mtitle"></div>
</div>
</div>
</div>
<script>
var vueInstance = new Vue({
el:'#app',
data(){
return {
activeIdx:0,
navs:[
{mtitle:'高要<br\/>梯田',icon:'/images/show/nav-item-1.png',title:'高要梯田',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'扶贫茶园是在丹寨县委县政府的支持下,由丹寨万达小镇推出的新型扶贫公益项目,通过扶贫茶园认领的方式打造丹寨高品质茶叶品牌“丹红”“丹绿”,整合丹寨茶产业链、打造丹寨茶产业平台。游客来这里可采茶、制茶、吃茶餐、做研学。'},
{mtitle:'排廷<br\/>瀑布',icon:'/images/show/nav-item-1.png',title:'排廷瀑布',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'排廷瀑布'},
{mtitle:'石桥村<br\/>&nbsp;',icon:'/images/show/nav-item-1.png',title:'石桥村',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'石桥村'},
{mtitle:'金汞矿<br\/>遗址',icon:'/images/show/nav-item-1.png',title:'金汞矿遗址',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'金汞矿遗址'},
{mtitle:'扶贫<br/>茶园',icon:'/images/show/nav-item-1.png',title:'扶贫茶园',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'扶贫茶园'},
{mtitle:'高要<br\/>梯田',icon:'/images/show/nav-item-1.png',title:'高要梯田',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'扶贫茶园是在丹寨县委县政府的支持下,由丹寨万达小镇推出的新型扶贫公益项目,通过扶贫茶园认领的方式打造丹寨高品质茶叶品牌“丹红”“丹绿”,整合丹寨茶产业链、打造丹寨茶产业平台。游客来这里可采茶、制茶、吃茶餐、做研学。'},
{mtitle:'排廷<br\/>瀑布',icon:'/images/show/nav-item-1.png',title:'排廷瀑布',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'排廷瀑布'},
{mtitle:'石桥村<br\/>&nbsp; ',icon:'/images/show/nav-item-1.png',title:'石桥村',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'石桥村'},
{mtitle:'金汞矿<br\/>遗址',icon:'/images/show/nav-item-1.png',title:'金汞矿遗址',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'金汞矿遗址'},
{mtitle:'扶贫<br/>茶园',icon:'/images/show/nav-item-1.png',title:'扶贫茶园',thumb:'https://cdnly.itour.fun/bb/21c530a5e2677f8a0906c5f68f4fa4.png',content:'扶贫茶园'}
]
}
},
methods:{
setActive(item,idx){
this.activeIdx = idx
}
}
})
</script>
</body>
</html>
<krpano>
<!-- krpano 1.19 default buttons skin -->
<!-- set the default mouse and touch control modes (drag or moveto) -->
<control mouse="drag" touch="drag" />
<!-- default autorotate settings (disabled by default) -->
<autorotate enabled="false" waittime="1.0" accel="2.0" speed="8.0" horizon="0.0" tofov="90.0" />
<!-- control buttons style -->
<style name="defaultskin_button" url="buttons-2.png" scale="0.5" align="lefttop" />
<!-- the container layer that contains the buttons -->
<!-- <layer name="defaultskin_buttons" type="container" width="360" height="40" align="bottom=" y="10" scalechildren="true" scale="1.0" keep="true">-->
<!-- <layer name="btn_in" x="0" style="defaultskin_button" crop="320|0|80|80" onovercrop="320|80|80|80" ondown="set(fov_moveforce,-1);" onup="set(fov_moveforce,0);" />-->
<!-- <layer name="btn_out" x="40" style="defaultskin_button" crop="400|0|80|80" onovercrop="400|80|80|80" ondown="set(fov_moveforce,+1);" onup="set(fov_moveforce,0);" />-->
<!-- <layer name="btn_left" x="80" style="defaultskin_button" crop= "0|0|80|80" onovercrop= "0|80|80|80" ondown="set(hlookat_moveforce,-1);" onup="set(hlookat_moveforce,0);" />-->
<!-- <layer name="btn_right" x="120" style="defaultskin_button" crop= "80|0|80|80" onovercrop= "80|80|80|80" ondown="set(hlookat_moveforce,+1);" onup="set(hlookat_moveforce,0);" />-->
<!-- <layer name="btn_up" x="160" style="defaultskin_button" crop="160|0|80|80" onovercrop="160|80|80|80" ondown="set(vlookat_moveforce,-1);" onup="set(vlookat_moveforce,0);" />-->
<!-- <layer name="btn_down" x="200" style="defaultskin_button" crop="240|0|80|80" onovercrop="240|80|80|80" ondown="set(vlookat_moveforce,+1);" onup="set(vlookat_moveforce,0);" />-->
<!-- <layer name="btn_ctrlmode" x="240" style="defaultskin_button" crop="800|0|80|80" onovercrop="800|80|80|80" onclick="switch(control.mouse,drag,moveto); switch(control.touch,drag,moveto); update_ctrl_mode();" />-->
<!-- <layer name="btn_autorot" x="280" style="defaultskin_button" crop="480|0|80|80" onovercrop="480|80|80|80" onclick="switch(autorotate.enabled);" />-->
<!-- <layer name="btn_fs" x="320" style="defaultskin_button" crop="560|0|80|80" onovercrop="560|80|80|80" onclick="switch(fullscreen);" visible="true" devices="fullscreensupport" />-->
<!-- </layer>-->
<!-- no fullscreen support => no fullscreen button => smaller container width -->
<layer name="defaultskin_buttons" width="320" devices="!fullscreensupport" />
<!-- scale the buttons 2x for mobile devices (when the mobilescale setting in the html file is below 1.0) -->
<layer name="defaultskin_buttons" scale="2.0" if="device.mobile AND stagescale LT 1.0" />
<!-- events for handling dynamic changes -->
<events name="defaultskin_buttons" keep="true"
onxmlcomplete="update_ctrl_mode(); update_fs_button();"
onresize="adjust_button_sizes();"
onenterfullscreen="update_fs_button();"
onexitfullscreen ="update_fs_button();"
/>
<!-- check if the buttons fit inside the window, and if not, make them smaller so that they will fit -->
<action name="adjust_button_sizes">
if(layer[defaultskin_buttons].pixelwidth GT stagewidth,
div(layer[defaultskin_buttons].scale, stagewidth, layer[defaultskin_buttons].width);
);
</action>
<!-- update the buttons and the cursors according to the current control mode setting -->
<action name="update_ctrl_mode">
if(control.mouse == drag,
<!-- set mouse cursor graphic -->
set(cursors.url, %SWFPATH%/skin/drag-cursors-2.png);
set(cursors.type, drag);
set(cursors.move, 0|0|32|32);
set(cursors.drag, 32|0|32|32);
<!-- set button graphic -->
set(layer[btn_ctrlmode].crop, 720|0|80|80);
set(layer[btn_ctrlmode].onovercrop, 720|80|80|80);
,
<!-- set mouse cursor graphic -->
set(cursors.url, %SWFPATH%/skin/qtvr-cursors.png);
set(cursors.type, 8way);
set(cursors.move, 0|0|16|16);
set(cursors.drag, 16|0|16|16);
set(cursors.arrow_u, 32|0|16|16);
set(cursors.arrow_d, 48|0|16|16);
set(cursors.arrow_l, 64|0|16|16);
set(cursors.arrow_r, 80|0|16|16);
set(cursors.arrow_lu, 96|0|16|16);
set(cursors.arrow_ru, 112|0|16|16);
set(cursors.arrow_rd, 128|0|16|16);
set(cursors.arrow_ld, 144|0|16|16);
<!-- set button graphic -->
set(layer[btn_ctrlmode].crop, 800|0|80|80);
set(layer[btn_ctrlmode].onovercrop, 800|80|80|80);
);
</action>
<!-- update the fullscreen button according to the current state -->
<action name="update_fs_button">
if(fullscreen,
set(layer[btn_fs].crop, 640|0|80|80);
set(layer[btn_fs].onovercrop, 640|80|80|80);
,
set(layer[btn_fs].crop, 560|0|80|80);
set(layer[btn_fs].onovercrop, 560|80|80|80);
);
</action>
<!--
inlined contextmenu.xml
- Change the control mode and the viewing projection via the right click contextmenu.
- The distorted view items will be only shown when Flash or WebGL are supported and when the
pano image itself is a full 360x180 pano.
-->
<contextmenu>
<item name="kr" caption="KRPANO" />
<item name="fs" caption="FULLSCREEN" />
<item name="cc" caption="Change Controlmode" onclick="cm_changecontrolmode();" separator="true" />
<item name="nv" caption="Normal View" onclick="cm_normal_view();" showif="view.vlookatrange == 180" separator="true" />
<item name="fv" caption="Fisheye View" onclick="cm_fisheye_view();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="sv" caption="Stereographic View" onclick="cm_stereographic_view();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="av" caption="Architectural View" onclick="cm_architectural_view();" showif="view.vlookatrange == 180" />
<item name="pv" caption="Pannini View" onclick="cm_pannini_view();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="lp" caption="Little Planet View" onclick="cm_littleplanet_view();" showif="view.vlookatrange == 180" devices="flash|webgl" />
</contextmenu>
<action name="cm_changecontrolmode">
switch(control.mouse, drag, moveto);
switch(control.touch, drag, moveto);
</action>
<action name="cm_look_straight">
if(view.vlookat LT -80 OR view.vlookat GT +80,
tween(view.vlookat, 0.0, 1.0, easeInOutSine);
tween(view.fov, 100, distance(150,0.8));
);
</action>
<action name="cm_normal_view">
cm_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.fisheye, 0.0, distance(1.0,0.5));
</action>
<action name="cm_architectural_view">
cm_look_straight();
tween(view.architectural, 1.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.fisheye, 0.0, distance(1.0,0.5));
</action>
<action name="cm_fisheye_view">
cm_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.fisheye, 0.35, distance(1.0,0.5));
</action>
<action name="cm_stereographic_view">
cm_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.fisheye, 1.0, distance(1.0,0.8));
</action>
<action name="cm_pannini_view">
cm_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 1.0, distance(1.0,0.8));
if(view.fisheye LT 0.1,
tween(view.fisheye, 1.0, distance(1.0,0.8));
);
</action>
<action name="cm_littleplanet_view">
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.fisheye, 1.0, distance(1.0,0.8));
tween(view.fov, 150, distance(150,0.8));
tween(view.vlookat, 90, distance(100,0.8));
add(new_hlookat, view.hlookat, 123.0);
tween(view.hlookat, get(new_hlookat), distance(100,0.8));
</action>
</krpano>
<krpano>
<!-- krpano 1.19.pr9 - Virtual Tour Skin -->
<!-- skin settings (can be overridden in the tour.xml) -->
<skin_settings maps="false"
maps_type="google"
maps_bing_api_key=""
maps_google_api_key=""
maps_zoombuttons="false"
gyro="true"
webvr="true"
webvr_gyro_keeplookingdirection="false"
webvr_prev_next_hotspots="true"
littleplanetintro="false"
title="true"
thumbs="true"
thumbs_width="120" thumbs_height="80" thumbs_padding="10" thumbs_crop="0|40|240|160"
thumbs_opened="false"
thumbs_text="false"
thumbs_dragging="true"
thumbs_onhoverscrolling="false"
thumbs_scrollbuttons="false"
thumbs_scrollindicator="false"
thumbs_loop="false"
tooltips_buttons="false"
tooltips_thumbs="false"
tooltips_hotspots="false"
tooltips_mapspots="false"
deeplinking="false"
loadscene_flags="MERGE"
loadscene_blend="OPENBLEND(0.5, 0.0, 0.75, 0.05, linear)"
loadscene_blend_prev="SLIDEBLEND(0.5, 180, 0.75, linear)"
loadscene_blend_next="SLIDEBLEND(0.5, 0, 0.75, linear)"
loadingtext="loading..."
layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset="20"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="10"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.8"
design_bgborder="0"
design_bgroundedge="1"
design_bgshadow="0 4 10 0x000000 0.3"
design_thumbborder_bgborder="3 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial;"
design_text_shadow="1"
/>
<!-- save the url path of this xml file (the url value will be adjusted during xml parsing) -->
<vtourskinxmlpath url="./" />
<!-- mouse / touch / keyboard(button) control settings - http://krpano.com/docu/xml/#control -->
<control mouse="drag"
touch="drag"
zoomtocursor="false"
zoomoutcursor="false"
draginertia="0.1"
dragfriction="0.9"
movetoaccelerate="1.0"
movetospeed="10.0"
movetofriction="0.8"
keybaccelerate="0.09"
keybfriction="0.94"
keybfovchange="0.25"
mousefovchange="1.0"
fovspeed="3.0"
fovfriction="0.9"
bouncinglimits="true"
/>
<!-- mouse cursors - http://krpano.com/docu/xml/#cursors -->
<cursors standard="default"
dragging="move"
moving="move"
/>
<!-- ensure stagescale 2x for mobile devices (regardless if mobilescale is 0.5 or 1.0) -->
<krpano stagescale="calc:stagescale * 2" if="stagescale LT 1.0" devices="mobile" />
<!-- include VR support - http://krpano.com/plugins/webvr/ -->
<include url="%SWFPATH%/plugins/webvr.xml" devices="html5" />
<!-- overwrite some settings from the webvr.xml for the skin integration -->
<plugin name="WebVR" keep="true" devices="html5"
pluginurl="%SWFPATH%/plugins/webvr.js"
url=""
multireslock.desktop="true"
multireslock.mobile.or.tablet="false"
mobilevr_support="true"
mobilevr_fake_support="true"
onavailable="removelayer(webvr_enterbutton); skin_arrange_buttons(); webvr_onavailable();"
onentervr="skin_showloading(false); webvr_onentervr(); webvr_setup(); skin_reloadscene_webvr();"
onexitvr="webvr_onexitvr(); webvr_setup(); skin_reloadscene_webvr();"
/>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
border="false"
roundedge="calc:1.0"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
css="calc:skin_settings.design_text_css + ' color:#FFFFFF;font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
<!-- show a 'rotate the device' info when the mobile device is in portrait orientation in VR mode -->
<layer name="webvr_rotate_to_landscape_request" keep="true" vr="true" devices="mobile"
url="rotate_device.png" scale="0.5"
align="top" edge="center" y="28%"
autoalpha="true" alpha="0.0"
enabled="false"
/>
<events name="webvr_events" keep="true" devices="html5"
onxmlcomplete="webvr_set_startup_view()"
onresize.mobile="webvr_act_as_gyro_in_portrait_mode();"
onloadcomplete="delayedcall(0.5, if(webvr.isenabled AND scene.count GT 1 AND skin_settings.webvr_prev_next_hotspots, set(hotspot[webvr_prev_scene].visible,true); set(hotspot[webvr_next_scene].visible,true); ); );"
onviewchange=""
/>
<action name="webvr_set_startup_view">
if((webvr.isenabled OR plugin[skin_gyro].enabled) AND skin_settings.webvr_gyro_keeplookingdirection == false,
skin_lookat( get(xml.view.hlookat) );
);
</action>
<action name="webvr_setup">
if(webvr.isenabled,
copy(loadscene_flags_backup, skin_settings.loadscene_flags);
set(skin_settings.loadscene_flags, MERGE|KEEPVIEW|KEEPMOVING|NOPREVIEW);
webvr_act_as_gyro_in_portrait_mode(true);
if(scene.count GT 1 AND skin_settings.webvr_prev_next_hotspots,
set(hotspot[webvr_prev_scene].visible, true);
set(hotspot[webvr_next_scene].visible, true);
set(events[webvr_events].onviewchange, webvr_menu_following());
);
,
if(loadscene_flags_backup !== null, copy(skin_settings.loadscene_flags, loadscene_flags_backup));
tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0);
set(hotspot[webvr_prev_scene].visible, false);
set(hotspot[webvr_next_scene].visible, false);
set(events[webvr_events].onviewchange, null);
);
</action>
<action name="webvr_act_as_gyro_in_portrait_mode">
if(device.mobile AND webvr.isenabled,
div(aspect, stagewidth, stageheight);
if(aspect != lastaspect OR '%1' == 'true',
copy(lastaspect, aspect);
if(stagewidth GT stageheight,
<!-- landscape orientation - use stereo rendering and a direct/fast gyro sensor mode -->
set(display.stereo, true);
set(webvr.mobilevr_sensor_mode, 3);
webvr.update();
tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0);
,
<!-- portrait orientation - use normal rendering and a smoother/slower gyro sensor mode -->
set(display.stereo, false);
set(webvr.mobilevr_sensor_mode, 1);
webvr.update();
tween(layer[webvr_rotate_to_landscape_request].alpha, 1.0);
delayedcall(3.0, tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 1.0); );
);
);
,
set(lastaspect, 0);
);
</action>
<!-- VR scene switching hotspots -->
<style name="webvr_menu_style" depth="800" scale="0.5" distorted="true" ath="0" atv="45" alpha="0.5" />
<hotspot name="webvr_prev_scene" keep="true" style="skin_base|webvr_menu_style" crop="0|64|64|64" ox="-64" onover="tween(scale,0.6);" onout="tween(scale,0.5);" vr_timeout="750" onclick="skin_nextscene_loop(-1);" visible="false" devices="html5.and.webgl" />
<hotspot name="webvr_next_scene" keep="true" style="skin_base|webvr_menu_style" crop="64|64|64|64" ox="+64" onover="tween(scale,0.6);" onout="tween(scale,0.5);" vr_timeout="750" onclick="skin_nextscene_loop(+1);" visible="false" devices="html5.and.webgl" />
<!-- floating/following VR hotspots -->
<action name="webvr_menu_following" type="Javascript" devices="html5"><![CDATA[
var hs1 = krpano.get("hotspot[webvr_prev_scene]");
var hs2 = krpano.get("hotspot[webvr_next_scene]");
if(!hs1.hovering && !hs2.hovering)
{
var f = 0.01; // following speed factor
var h = krpano.view.hlookat;
var v = krpano.view.vlookat;
var hsh = hs1.ath;
var hsv = hs1.atv;
h = (h -(h|0)) + (((h|0) +360180)%360) - 180.0;
v = (v -(v|0)) + (((v|0) +360180)%360) - 180.0;
hsh = (hsh-(hsh|0)) + (((hsh|0)+360180)%360) - 180.0;
var dh = h - hsh;
dh += (dh > 180) ? -360 : (dh < -180) ? 360 : 0
hsh += dh*f;
var a = Math.abs(v - hsv) / 90.0;
a = 1.0 * Math.max(1.0 - 2.0*Math.sqrt(a), 0);
v = v + 55.0 - v*1.5;
hsv = hsv*(1.0 - f) + v*f;
hs1.ath = hs2.ath = hsh;
hs1.atv = hs2.atv = hsv;
hs1.alpha = hs2.alpha = a;
}
]]></action>
<!-- VR support -->
<!-- skin styles -->
<!-- skin_base - the base skin image -->
<style name="skin_base" url="calc:vtourskinxmlpath.url + skin_settings.design_skin_images" />
<!-- skin_glow - button glowing (if additional ondown,onup,onout,over events are needed, this style provides ondown2,onup2,onover2,onout2 events) -->
<style name="skin_glow"
ondown="copy(skin_lockglow,name); skin_buttonglow(get(name)); if(ondown2, ondown2() );"
onover="if(skin_lockglow === null, copy(skin_lockglow,name); skin_buttonglow(get(name),0.3) ); if(onover2, onover2() );"
onout="if(skin_lockglow === name AND !pressed, skin_buttonglow(null);delete(skin_lockglow); ); if(onout2, onout2() );"
onup="if(onup2, onup2()); delayedcall(0, if(hovering AND enabled, skin_buttonglow(get(name),0.3); , skin_buttonglow(null);delete(skin_lockglow); ); );"
/>
<!-- skin_thumbtext_style - style/textfield for the (optional, skin_settings.thumbs_text) thumbnails texts -->
<style name="skin_thumbtext_style" type="text" align="bottom" width="100%" y="5" enabled="false" background="false" border="false" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:10px;'" textshadow="get:skin_settings.design_text_shadow" />
<!-- skin_hotspotstyle - style for the hotspots -->
<style name="skin_hotspotstyle" url="vtourskin_hotspot.png" scale="0.5" edge="top" distorted="true"
tooltip=""
linkedscene=""
linkedscene_lookat=""
onclick="skin_hotspotstyle_click();"
onover="tween(scale,0.55);"
onout="tween(scale,0.5);"
onloaded="if(linkedscene AND skin_settings.tooltips_hotspots, copy(tooltip,scene[get(linkedscene)].title); loadstyle(skin_tooltips); );"
/>
<action name="skin_hotspotstyle_click">
if(linkedscene,
if(linkedscene_lookat,
txtsplit(linkedscene_lookat, ',', hs_lookat_h, hs_lookat_v, hs_lookat_fov);
);
set(enabled, false);
skin_hidetooltips();
tween(depth|alpha|oy|rx, 4000|0.0|-50|-60, 0.5, default,
skin_loadscene(get(linkedscene), get(skin_settings.loadscene_blend));
if(hs_lookat_h !== null,
skin_lookat(get(hs_lookat_h), get(hs_lookat_v), get(hs_lookat_fov));
delete(hs_lookat_h, hs_lookat_v, hs_lookat_fov);
);
skin_updatescroll();
);
);
</action>
<!-- skin_tooltip - style for the thumb, hotspot and mapspot tooltips -->
<style name="skin_tooltips"
onover.mouse="copy(layer[skin_tooltip].html, tooltip);
set(layer[skin_tooltip].visible, true);
tween(layer[skin_tooltip].alpha, 1.0, 0.1);
asyncloop(hovering, copy(layer[skin_tooltip].x,mouse.stagex); copy(layer[skin_tooltip].y,mouse.stagey); );"
onout.mouse="tween(layer[skin_tooltip].alpha, 0.0, 0.1, default, set(layer[skin_tooltip].visible,false), copy(layer[skin_tooltip].x,mouse.stagex); copy(layer[skin_tooltip].y,mouse.stagey); );"
/>
<!-- the tooltip textfield -->
<layer name="skin_tooltip" keep="true"
type="text"
parent="STAGE"
visible="false" alpha="0" enabled="false" zorder="2"
align="lefttop" edge="bottom" oy="-2" width="200"
background="false" backgroundcolor="0xFFFFFF" backgroundalpha="1.0"
border="false" bordercolor="0x000000" borderalpha="1.0" borderwidth="1.0" roundedge="0"
shadow="0.0" shadowrange="4.0" shadowangle="45" shadowcolor="0x000000" shadowalpha="1.0"
textshadow="get:skin_settings.design_text_shadow" textshadowrange="6.0" textshadowangle="90" textshadowcolor="0x000000" textshadowalpha="1.0"
css="calc:skin_settings.design_text_css + ' text-align:center; font-size:16px;'"
html=""
/>
<!-- skin layout -->
<!-- <layer name="skin_layer" keep="true" type="container" align="top" width="get:skin_settings.layout_width" maxwidth="get:skin_settings.layout_maxwidth" height="100%" maskchildren="true" visible="false" bgcapture="false" zorder="1">-->
<!-- <layer name="skin_scroll_window" type="container" align="bottom" width="100%" height="100%" x="0" y="calc:skin_settings.controlbar_offset + skin_settings.controlbar_height - skin_settings.controlbar_overlap" maskchildren="true" onloaded="skin_calc_opened_closed();" zorder="1">-->
<!-- <layer name="skin_scroll_layer" type="container" align="bottom" width="get:skin_settings.controlbar_width" height="100%" x="0" y="200" y_offset="get:skin_settings.controlbar_overlap" accuracy="1" bgalpha="get:skin_settings.design_bgalpha" bgcolor="get:skin_settings.design_bgcolor" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow">-->
<!-- <layer name="skin_title" type="text" align="lefttop" edge="leftbottom" x="4" y="0" zorder="4" enabled="false" background="false" border="false" css="calc:skin_settings.design_text_css + ' text-align:left; font-style:italic; font-size:12px;'" textshadow="get:skin_settings.design_text_shadow" visible="false" onautosized="skin_video_updateseekbarwidth();" />-->
<!-- <layer name="skin_video_controls" type="container" align="lefttop" edge="leftbottom" width="100%" height="18" visible="false">-->
<!-- <layer name="skin_video_seekbar_container" type="container" align="lefttop" width="100%" height="100%" bgcapture="true" ondown="skin_video_ondownseeking();" >-->
<!-- <layer name="skin_video_seekbar" type="container" bgcolor="0xFFFFFF" bgalpha="0.25" align="center" width="100%" height="2">-->
<!-- <layer name="skin_video_loadbar" type="container" bgcolor="0xFFFFFF" bgalpha="0.5" align="left" width="0" height="2" />-->
<!-- <layer name="skin_video_seekpos" type="container" bgcolor="0xFFFFFF" bgalpha="1.0" align="left" edge="center" x="0" bgroundedge="8" width="10" height="10" />-->
<!-- </layer>-->
<!-- </layer>-->
<!-- <layer name="skin_video_time" type="text" align="rightbottom" x="4" enabled="false" background="false" border="false" css="calc:skin_settings.design_text_css + ' text-align:left; font-style:italic; font-size:12px;'" textshadow="get:skin_settings.design_text_shadow" html="0:00 / 0:00" />-->
<!-- </layer>-->
<!-- <layer name="skin_scroll_container" type="container" align="lefttop" width="100%" height="100%" x="0" y="0" bgroundedge="get:skin_settings.design_bgroundedge" maskchildren="true">-->
<!-- <layer name="skin_thumbs_container" type="container" align="lefttop" width="100%" height="100%" visible="false">-->
<!-- <layer name="skin_thumbs_scrollleft" style="skin_base|skin_glow" crop="0|64|64|64" align="lefttop" edge="left" x="5" y="50" scale="0.5" zorder="2" alpha="1.0" ondown2="asyncloop(pressed, layer[skin_thumbs].scrollby(+2,0));" visible="false" />-->
<!-- <layer name="skin_thumbs_scrollright" style="skin_base|skin_glow" crop="64|64|64|64" align="righttop" edge="right" x="5" y="50" scale="0.5" zorder="2" alpha="1.0" ondown2="asyncloop(pressed, layer[skin_thumbs].scrollby(-2,0));" visible="false" />-->
<!-- <layer name="skin_thumbs_scrollindicator" type="container" bgcolor="0xFFFFFF" bgalpha="0.25" align="lefttop" width="0" y="100" height="2" visible="false" enabled="false" />-->
<!-- <layer name="skin_thumbs" state="closed" url.flash="%SWFPATH%/plugins/scrollarea.swf" url.html5="%SWFPATH%/plugins/scrollarea.js" direction="h" align="top" width="100%" height="100" zorder="1" onloaded="skin_updatescroll();" onscroll="skin_updatethumbscroll();" />-->
<!-- </layer>-->
<!-- <layer name="skin_map_container" type="container" align="leftop" width="100%" height="100%" bgroundedge="get:skin_settings.design_bgroundedge" maskchildren="true">-->
<!-- <layer name="skin_map" state="closed" url="" visible="false" align="lefttop" width="100%" height="50%" x="0" y="0" zorder="1" lat="0" lng="0" zoom="10" bgalpha="0" maptype="satellite" onmapready="skin_addmapspots();">-->
<!-- <maptypecontrol visible="true" align="righttop" x="5" y="5" buttonalign="v" scale.mobile="1.5" />-->
<!-- <radar visible="false" headingoffset="0" />-->
<!-- <spotstyle name="DEFAULT" url="vtourskin_mapspot.png" activeurl="vtourskin_mapspotactive.png" edge="bottom" x="-5" y="-8" scale="0.5" />-->
<!-- <layer name="skin_map_zoom_in" style="skin_base" visible="get:skin_settings.maps_zoombuttons" crop="9|512|46|64" align="right" x="0" y="-40" zorder="2" ondown="layer[skin_map].zoomin(); skin_buttonglow(get(name));" onup="skin_buttonglow(null);" />-->
<!-- <layer name="skin_map_zoom_out" style="skin_base" visible="get:skin_settings.maps_zoombuttons" crop="73|512|46|64" align="right" x="0" y="+40" zorder="2" ondown="layer[skin_map].zoomout(); skin_buttonglow(get(name));" onup="skin_buttonglow(null);" />-->
<!-- </layer>-->
<!-- </layer>-->
<!-- </layer>-->
<!-- </layer>-->
<!-- </layer>-->
<!-- <layer name="skin_splitter_bottom" type="container" align="bottom" width="100%" height="calc:skin_settings.controlbar_offset + skin_settings.controlbar_height - skin_settings.controlbar_overlap" y="0" maskchildren="true" onloaded="skin_calc_opened_closed();" zorder="2">-->
<!-- <layer name="skin_control_bar_bg" type="container" align="bottom" width="get:skin_settings.controlbar_width" height="calc:skin_settings.controlbar_height + skin_settings.controlbar_overlap" x="0" y="get:skin_settings.controlbar_offset" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow" />-->
<!-- </layer>-->
<!-- <layer name="skin_control_bar" type="container" align="bottom" width="get:skin_settings.controlbar_width" height="calc:skin_settings.controlbar_height" x="0" y="get:skin_settings.controlbar_offset" onloaded="skin_calc_opened_closed();" zorder="3">-->
<!-- <layer name="skin_control_bar_buttons" type="container" align="leftbottom" width="100%" height="get:skin_settings.controlbar_height">-->
<!-- <layer name="skin_btn_prev" style="skin_base|skin_glow" crop="0|64|64|64" align="left" x="5" y="0" scale="0.5" alpha="0.5" onclick="if(skin_settings.thumbs_loop, skin_nextscene_loop(-1), skin_nextscene(-1) );" />-->
<!-- <layer name="skin_btn_thumbs" style="skin_base|skin_glow" crop="0|128|64|64" align="left" x="50" y="0" scale="0.5" ondown2="skin_showmap(false); skin_showthumbs();" />-->
<!-- <layer name="skin_btn_map" style="skin_base|skin_glow" crop="64|128|64|64" align="left" x="90" y="0" scale="0.5" ondown2="skin_showthumbs(false); skin_showmap();" visible="false" />-->
<!-- <layer name="skin_btn_navi" type="container" align="center" x="0" width="240" height="32">-->
<!-- <layer name="skin_btn_left" style="skin_base|skin_glow" crop="0|192|64|64" align="center" x="-100" y="0" scale="0.5" ondown2="set(hlookat_moveforce,-1);" onup2="set(hlookat_moveforce,0);" />-->
<!-- <layer name="skin_btn_right" style="skin_base|skin_glow" crop="64|192|64|64" align="center" x="-60" y="0" scale="0.5" ondown2="set(hlookat_moveforce,+1);" onup2="set(hlookat_moveforce,0);" />-->
<!-- <layer name="skin_btn_up" style="skin_base|skin_glow" crop="0|256|64|64" align="center" x="-20" y="0" scale="0.5" ondown2="set(vlookat_moveforce,-1);" onup2="set(vlookat_moveforce,0);" />-->
<!-- <layer name="skin_btn_down" style="skin_base|skin_glow" crop="64|256|64|64" align="center" x="+20" y="0" scale="0.5" ondown2="set(vlookat_moveforce,+1);" onup2="set(vlookat_moveforce,0);" />-->
<!-- <layer name="skin_btn_in" style="skin_base|skin_glow" crop="0|320|64|64" align="center" x="+60" y="0" scale="0.5" ondown2="set(fov_moveforce,-1);" onup2="set(fov_moveforce,0);" />-->
<!-- <layer name="skin_btn_out" style="skin_base|skin_glow" crop="64|320|64|64" align="center" x="+100" y="0" scale="0.5" ondown2="set(fov_moveforce,+1);" onup2="set(fov_moveforce,0);" />-->
<!-- </layer>-->
<!-- <layer name="skin_btn_gyro" style="skin_base|skin_glow" crop="0|384|64|64" align="center" x="+140" y="0" scale="0.5" onclick="switch(plugin[skin_gyro].enabled); if(plugin[skin_gyro].enabled, skin_showmap(false));" visible="false" devices="html5" />-->
<!-- <layer name="skin_btn_vr" style="skin_base|skin_glow" crop="0|0|80|64" align="center" x="+146" y="0" scale="0.5" onclick="webvr.enterVR();" visible="false" />-->
<!-- <layer name="skin_btn_fs" style="skin_base|skin_glow" crop="0|576|64|64" align="right" x="90" y="0" scale="0.5" onclick="switch(fullscreen);" devices="fullscreensupport" />-->
<!-- <layer name="skin_btn_hide" style="skin_base|skin_glow" crop="0|448|64|64" align="right" x="50" y="0" scale="0.5" onclick="skin_hideskin()" />-->
<!-- <layer name="skin_btn_show" type="container" bgcapture="true" align="bottom" width="100%" height="get:skin_settings.controlbar_height" y="calc:skin_settings.controlbar_height - skin_settings.controlbar_offset_closed" onclick="skin_showskin()" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();" visible="false" capture="false" alpha="0.0">-->
<!-- <layer name="skin_btn_show_icon" style="skin_base" crop="64|448|64|64" scale="0.5" align="bottom" y="2" enabled="false" />-->
<!-- </layer>-->
<!-- <layer name="skin_btn_next" style="skin_base|skin_glow" crop="64|64|64|64" align="right" x="5" y="0" scale="0.5" alpha="0.5" onclick="if(skin_settings.thumbs_loop, skin_nextscene_loop(+1), skin_nextscene(+1) );" />-->
<!-- </layer>-->
<!-- </layer>-->
<!-- <layer name="skin_loadingtext" type="text" align="center" x="5" y="-5" html="get:skin_settings.loadingtext" visible="false" background="false" border="false" enabled="false" css="calc:skin_settings.design_text_css + ' text-align:center; font-style:italic; font-size:22px;'" textshadow="get:skin_settings.design_text_shadow" />-->
<!-- <layer name="skin_buttonglow" style="skin_base" crop="64|384|64|64" align="center" x="0" y="1" scale="1.0" alpha="0.0" visible="false" enabled="false" />-->
<!-- <layer name="skin_thumbborder" type="container" x="get:skin_settings.design_thumbborder_padding" y="get:skin_settings.design_thumbborder_padding" width="calc:skin_settings.thumbs_width - 2*skin_settings.design_thumbborder_padding" height="calc:skin_settings.thumbs_height - 2*skin_settings.design_thumbborder_padding" visible="false" enabled="false" align="lefttop" bgborder="get:skin_settings.design_thumbborder_bgborder" bgroundedge="get:skin_settings.design_thumbborder_bgroundedge" />-->
<!-- </layer>-->
<!-- previous/next scene buttons for the hidden skin mode -->
<layer name="skin_btn_prev_fs" keep="true" type="container" align="lefttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.25" capture="false" zorder="2" onclick="skin_nextscene_loop(-1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();">
<layer name="skin_btn_prev_fs_icon" style="skin_base" crop="0|64|64|64" align="center" scale="0.5" enabled="false" />
</layer>
<layer name="skin_btn_next_fs" keep="true" type="container" align="righttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.25" capture="false" zorder="2" onclick="skin_nextscene_loop(+1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();">
<layer name="skin_btn_next_fs_icon" style="skin_base" crop="64|64|64|64" align="center" scale="0.5" enabled="false" />
</layer>
<!-- gyro plugin -->
<plugin name="skin_gyro" keep="true" url="" html5_url="%SWFPATH%/plugins/gyro2.js" softstart="1.0" enabled="false" onavailable="skin_arrange_buttons();" devices="html5" />
<!-- skin events -->
<events name="skin_events" keep="true"
onxmlcomplete="set(events[skin_events].onxmlcomplete,null); skin_startup();"
onnewpano="skin_showloading(true); skin_update_scene_infos(); skin_deeplinking_update_url();"
onremovepano="skin_showloading(true);"
onloadcomplete="skin_showloading(false);"
onidle="skin_deeplinking_update_url();"
onresize="skin_onresize();"
onenterfullscreen.fullscreensupport="set(layer[skin_btn_fs].crop, '64|576|64|64');"
onexitfullscreen.fullscreensupport="set(layer[skin_btn_fs].crop, '0|576|64|64');"
onkeydown="skin_keydown_event();"
/>
<!-- skin actions -->
<action name="skin_startup">
<!-- apply skin settings on startup -->
if(skin_settings.thumbs,
if(skin_settings.thumbs_opened, set(layer[skin_thumbs].state,'opened'); set(layer[skin_thumbs_container].visible,true); );
copy(layer[skin_thumbs].draggable, skin_settings.thumbs_dragging);
if(skin_settings.thumbs_onhoverscrolling AND device.mouse,
set(layer[skin_thumbs].draggable, false);
set(layer[skin_thumbs].onhover_autoscrolling, true);
);
);
if(skin_settings.gyro AND !device.desktop AND device.html5,
copy(plugin[skin_gyro].url, plugin[skin_gyro].html5_url);
);
if(skin_settings.webvr AND device.html5 AND device.webgl,
copy(plugin[WebVR].url, plugin[WebVR].pluginurl);
);
if(skin_settings.maps == true,
set(layer[skin_btn_map].visible, true);
if(device.flash,
copy(layer[skin_map].key, skin_settings.maps_bing_api_key);
set(layer[skin_map].url, '%SWFPATH%/plugins/bingmaps.swf');
,
if(skin_settings.maps_type == 'bing',
copy(layer[skin_map].key, skin_settings.maps_bing_api_key);
set(layer[skin_map].url, '%SWFPATH%/plugins/bingmaps.js');
,
copy(layer[skin_map].key, skin_settings.maps_google_api_key);
set(layer[skin_map].url, '%SWFPATH%/plugins/googlemaps.js');
);
);
);
if(skin_settings.littleplanetintro AND (device.webgl OR device.flash),
skin_setup_littleplanetintro();
);
skin_addthumbs();
skin_onresize();
skin_updatescroll();
set(layer[skin_layer].visible, true);
</action>
<action name="skin_addthumbs">
if(skin_settings.thumbs == false,
set(layer[skin_btn_thumbs].visible,false);
,
copy(thumbwidth, skin_settings.thumbs_width);
copy(thumbheight, skin_settings.thumbs_height);
copy(thumbpadding, skin_settings.thumbs_padding);
copy(thumbcrop, skin_settings.thumbs_crop);
add(thumbxoffset, thumbwidth, thumbpadding);
mul(thumbxcenter, thumbxoffset, 0.5);
mul(thumbbarwidth, thumbxoffset, scene.count);
add(thumbbarwidth, thumbpadding);
add(thumbbarheight, thumbpadding, thumbheight);
add(thumbbarheight, thumbpadding);
if(skin_settings.thumbs_scrollindicator,
copy(layer[skin_thumbs_scrollindicator].y, thumbbarheight);
add(thumbbarheight, layer[skin_thumbs_scrollindicator].height);
);
copy(layer[skin_thumbs].height, thumbbarheight);
copy(layer[skin_thumbs].width, thumbbarwidth);
mul(halfheight, thumbbarheight, 0.5);
copy(layer[skin_thumbs_scrollleft].y, halfheight);
copy(layer[skin_thumbs_scrollright].y, halfheight);
set(thumb_cnt,0);
for(set(i,0), i LT scene.count, inc(i),
inc(thumb_cnt);
txtadd(thumbname,'skin_thumb_',get(i));
addlayer(get(thumbname));
copy(layer[get(thumbname)].url, scene[get(i)].thumburl);
set(layer[get(thumbname)].keep, true);
set(layer[get(thumbname)].parent, 'skin_thumbs');
set(layer[get(thumbname)].align, lefttop);
copy(layer[get(thumbname)].crop, thumbcrop);
copy(layer[get(thumbname)].width, thumbwidth);
copy(layer[get(thumbname)].height, thumbheight);
mul(thumbx, i, thumbxoffset);
add(thumbx, thumbpadding);
copy(layer[get(thumbname)].x, thumbx);
copy(layer[get(thumbname)].y, thumbpadding);
add(scene[get(i)].thumbx, thumbx, thumbxcenter);
copy(scene[get(i)].thumby, thumbpadding);
set(layer[get(thumbname)].linkedscene, get(scene[get(i)].name) );
set(layer[get(thumbname)].onclick, copy(layer[skin_thumbborder].parent, name); skin_loadscene(get(linkedscene),get(skin_settings.loadscene_blend)); );
if(skin_settings.tooltips_thumbs,
set(layer[get(thumbname)].tooltip, get(scene[get(i)].title) );
layer[get(thumbname)].loadstyle(skin_tooltips);
);
if(skin_settings.thumbs_text,
txtadd(thumbtext, 'skin_thumbtext_', get(i));
addlayer(get(thumbtext));
layer[get(thumbtext)].loadstyle(skin_thumbtext_style);
set(layer[get(thumbtext)].keep, true);
set(layer[get(thumbtext)].parent, get(thumbname));
set(layer[get(thumbtext)].html, get(scene[get(i)].title));
);
);
if(thumb_cnt == 1,
set(layer[skin_thumbs].align, 'lefttop');
);
);
</action>
<action name="skin_addmapspots">
for(set(i,0), i LT scene.count, inc(i),
if(scene[get(i)].lat,
txtadd(spotname, 'spot', get(i));
txtadd(spotclickevent, 'skin_hidetooltips(); activatespot(',get(spotname),'); skin_loadscene(', get(scene[get(i)].name), ',get(skin_settings.loadscene_blend)); skin_updatescroll(); delayedcall(0.5,skin_showmap(false));');
copy(scene[get(i)].mapspotname, spotname);
addspot(get(spotname), get(scene[get(i)].lat), get(scene[get(i)].lng), get(scene[get(i)].heading), false, get(spotclickevent), null);
if(skin_settings.tooltips_mapspots,
set(layer[skin_map].spot[get(spotname)].tooltip, get(scene[get(i)].title) );
txtadd(layer[skin_map].spot[get(spotname)].onover, 'set(hovering,true);', get(style[skin_tooltips].onover) );
txtadd(layer[skin_map].spot[get(spotname)].onout, 'set(hovering,false);', get(style[skin_tooltips].onout) );
);
);
);
if(xml.scene != null,
activatespot( get(scene[get(xml.scene)].mapspotname) );
,
activatespot(spot0);
);
<!-- zoom and pan the map to see all spots at the same time -->
zoomToSpotsExtent();
</action>
<action name="skin_setup_littleplanetintro">
copy(lp_scene, xml.scene);
copy(lp_hlookat, view.hlookat);
copy(lp_vlookat, view.vlookat);
copy(lp_fov, view.fov);
copy(lp_fovmax, view.fovmax);
copy(lp_limitview, view.limitview);
set(view.fovmax, 170);
set(view.limitview, lookto);
set(view.vlookatmin, 90);
set(view.vlookatmax, 90);
lookat(calc(lp_hlookat - 180), 90, 150, 1, 0, 0);
set(events[lp_events].onloadcomplete,
delayedcall(0.5,
if(lp_scene === xml.scene,
set(control.usercontrol, off);
copy(view.limitview, lp_limitview);
set(view.vlookatmin, null);
set(view.vlookatmax, null);
tween(view.hlookat|view.vlookat|view.fov|view.distortion, calc('' + lp_hlookat + '|' + lp_vlookat + '|' + lp_fov + '|' + 0.0),
3.0, easeOutQuad,
set(control.usercontrol, all);
tween(view.fovmax, get(lp_fovmax));
);
);
);
);
</action>
<action name="skin_lookat">
if(webvr.isenabled,
<!-- adjust the VR prev/next hotspots for the view change -->
calc(hlookat_offset, %1 - view.hlookat);
add(hotspot[webvr_prev_scene].ath, hlookat_offset);
add(hotspot[webvr_next_scene].ath, hlookat_offset);
);
if(plugin[skin_gyro].enabled,
<!-- reset the gyro tracking -->
plugin[skin_gyro].resetsensor(%1);
);
<!-- change the view -->
lookat(%1, %2, %3);
</action>
<action name="skin_onresize">
mul(mh, area.pixelheight, -1);
if(layer[skin_thumbs].state == 'opened', add(mh,layer[skin_thumbs].height); );
if(layer[skin_map].state == 'opened', sub(hh,area.pixelheight,skin_settings.controlbar_offset); sub(hh,layer[skin_control_bar].height); sub(hh,32); add(mh,hh); add(mh,skin_settings.controlbar_overlap); sub(mh, layer[skin_scroll_layer].y_offset); copy(layer[skin_map].height, hh); );
add(mh, layer[skin_scroll_layer].y_offset);
set(layer[skin_scroll_layer].y, get(mh));
skin_video_updateseekbarwidth();
skin_arrange_buttons();
</action>
<!-- determine the visibility of the buttons and calculate their positions -->
<action name="skin_arrange_buttons">
calc(show_selbuttons, scene.count GT 1);
calc(show_thumbutton, skin_settings.thumbs == true);
calc(show_mapbutton, skin_settings.maps == true);
calc(show_gyrobutton, plugin[skin_gyro].available == true AND (view.vlookatrange == 180 OR lp_scene === xml.scene));
calc(show_vrbutton, webvr.isavailable == true);
calc(show_fsbutton, device.fullscreensupport == true);
set(lpos,6);
set(cpos,0);
if(show_gyrobutton, dec(cpos,20));
if(show_vrbutton, dec(cpos,24));
set(rpos,6);
calc(show_dirbuttons, !device.mobile AND ((area.pixelwidth + 2*cpos) GT 520));
copy(layer[skin_btn_navi].visible, show_dirbuttons);
copy(layer[skin_btn_prev].visible, show_selbuttons);
copy(layer[skin_btn_next].visible, show_selbuttons);
if(show_selbuttons, inc(lpos,44); inc(rpos,44); );
copy(layer[skin_btn_thumbs].visible, show_thumbutton);
copy(layer[skin_btn_thumbs].x, lpos);
if(show_thumbutton, inc(lpos,40));
copy(layer[skin_btn_map].visible, show_mapbutton);
copy(layer[skin_btn_map].x, lpos);
if(show_mapbutton, inc(lpos,40));
if(show_dirbuttons,
copy(layer[skin_btn_navi].x, cpos);
inc(cpos,140);
set(layer[skin_btn_gyro].align, center);
copy(layer[skin_btn_gyro].visible, show_gyrobutton);
copy(layer[skin_btn_gyro].x, cpos);
if(show_gyrobutton, inc(cpos,48));
set(layer[skin_btn_vr].align, center);
copy(layer[skin_btn_vr].visible, show_vrbutton);
copy(layer[skin_btn_vr].x, cpos);
if(show_vrbutton, inc(cpos,80));
,
set(layer[skin_btn_gyro].align, left);
copy(layer[skin_btn_gyro].visible, show_gyrobutton);
copy(layer[skin_btn_gyro].x, lpos);
if(show_gyrobutton, inc(lpos,40));
set(layer[skin_btn_vr].align, left);
copy(layer[skin_btn_vr].visible, show_vrbutton);
copy(layer[skin_btn_vr].x, lpos);
if(show_vrbutton, inc(lpos,80));
);
copy(layer[skin_btn_hide].x, rpos);
inc(rpos,40);
copy(layer[skin_btn_fs].visible, show_fsbutton);
copy(layer[skin_btn_fs].x, rpos);
if(show_fsbutton, inc(rpos,40));
</action>
<action name="skin_updatescroll">
if(layer[skin_thumbs].loaded,
set(cursceneindex, 0);
if(xml.scene, copy(cursceneindex, scene[get(xml.scene)].index));
layer[skin_thumbs].setcenter(get(scene[get(cursceneindex)].thumbx), get(scene[get(cursceneindex)].thumby));
);
</action>
<action name="skin_updatethumbscroll">
copy(padding,skin_settings.thumbs_padding);
if(skin_settings.thumbs_scrollbuttons,
if(loverflow GT 0, set(layer[skin_thumbs_scrollleft].visible,true), set(layer[skin_thumbs_scrollleft].visible,false) );
if(roverflow GT 0, set(layer[skin_thumbs_scrollright].visible,true), set(layer[skin_thumbs_scrollright].visible,false) );
);
if(skin_settings.thumbs_scrollindicator,
if(woverflow GT 0,
set(layer[skin_thumbs_scrollindicator].visible,true);
sub(iw,pixelwidth,woverflow);
div(pw,iw,pixelwidth);
div(px,loverflow,woverflow);
mul(pw,iw);
copy(layer[skin_thumbs_scrollindicator].width,pw);
sub(iw,pw);
sub(iw,padding);
sub(iw,padding);
mul(px,iw);
add(px,padding);
copy(layer[skin_thumbs_scrollindicator].x,px);
,
set(layer[skin_thumbs_scrollindicator].visible,false);
);
);
</action>
<action name="skin_update_scene_infos">
if(xml.scene !== null AND scene[get(xml.scene)].index GE 0,
if(skin_settings.title,
if(title, txtadd(layer[skin_title].html, get(title), ' - ', get(scene[get(xml.scene)].title) ); , copy(layer[skin_title].html, scene[get(xml.scene)].title ); );
delayedcall(0.1, set(layer[skin_title].visible,true) );
);
if(skin_settings.thumbs_loop == false,
if(scene[get(xml.scene)].index GT 0,
set(layer[skin_btn_prev].enabled, true);
set(layer[skin_btn_prev].alpha, 1.0);
,
set(layer[skin_btn_prev].enabled, false);
set(layer[skin_btn_prev].alpha, 0.3);
);
sub(lastsceneindex, scene.count, 1);
if(scene[get(xml.scene)].index LT lastsceneindex,
set(layer[skin_btn_next].enabled, true);
set(layer[skin_btn_next].alpha, 1.0);
,
set(layer[skin_btn_next].enabled, false);
set(layer[skin_btn_next].alpha, 0.3);
);
,
if(scene.count GT 1,
set(layer[skin_btn_prev].enabled, true);
set(layer[skin_btn_prev].alpha, 1.0);
set(layer[skin_btn_next].enabled, true);
set(layer[skin_btn_next].alpha, 1.0);
,
set(layer[skin_btn_prev].enabled, false);
set(layer[skin_btn_prev].alpha, 0.3);
set(layer[skin_btn_next].enabled, false);
set(layer[skin_btn_next].alpha, 0.3);
);
);
if(scene.count GT 1,
set(layer[skin_btn_prev_fs].visible, true);
set(layer[skin_btn_next_fs].visible, true);
,
set(layer[skin_btn_prev_fs].visible, false);
set(layer[skin_btn_next_fs].visible, false);
);
txtadd(parentname, 'skin_thumb_', get(scene[get(xml.scene)].index));
if(layer[get(parentname)],
set(layer[skin_thumbborder].parent, get(parentname));
set(layer[skin_thumbborder].visible, true);
,
set(layer[skin_thumbborder].visible, false);
);
if(scene[get(xml.scene)].mapspotname,
layer[skin_map].activatespot(get(scene[get(xml.scene)].mapspotname));
layer[skin_map].pantospot(get(scene[get(xml.scene)].mapspotname));
);
if(plugin[skin_gyro].isavailable == true AND view.vlookatrange == 180,
set(layer[skin_btn_gyro].visible, true);
,
set(layer[skin_btn_gyro].visible, false)
);
if(view.vlookatrange LT 180,
if(backup_control_bouncinglimits === null,
copy(backup_control_bouncinglimits, control.bouncinglimits);
);
set(control.bouncinglimits, false);
,
if(backup_control_bouncinglimits !== null,
copy(control.bouncinglimits, backup_control_bouncinglimits);
);
);
if(scene[get(xml.scene)].isvideopano AND plugin[video] !== null,
skin_video_addcontrols();
,
skin_video_removecontrols();
);
);
</action>
<action name="skin_gotoscene">
if(scene[%1],
copy(cursceneindex, scene[get(xml.scene)].index);
copy(newsceneindex, scene[%1].index);
skin_loadscene(get(newsceneindex), calc(newsceneindex LT cursceneindex ? skin_settings.loadscene_blend_prev : (newsceneindex GT cursceneindex ? skin_settings.loadscene_blend_next : skin_settings.loadscene_blend)) );
);
</action>
<action name="skin_nextscene">
add(newsceneindex, scene[get(xml.scene)].index, %1);
if(newsceneindex GE 0 AND newsceneindex LT scene.count,
skin_loadscene(get(newsceneindex), calc(%1 LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
);
</action>
<action name="skin_nextscene_loop">
add(newsceneindex, scene[get(xml.scene)].index, %1);
sub(lastsceneindex, scene.count, 1);
if(newsceneindex LT 0, copy(newsceneindex,lastsceneindex));
if(newsceneindex GT lastsceneindex, set(newsceneindex,0));
skin_loadscene(get(newsceneindex), calc(%1 LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
</action>
<!-- skin_loadscene(scenenameorindex, blendmode) -->
<action name="skin_loadscene">
if(webvr.isenabled AND scene.count GT 1,
set(hotspot[webvr_prev_scene].visible, false);
set(hotspot[webvr_next_scene].visible, false);
);
txtadd(layer[skin_thumbborder].parent, 'skin_thumb_', get(scene[%1].index));
layer[skin_thumbs].scrolltocenter(get(scene[%1].thumbx), get(scene[%1].thumby));
loadscene(get(scene[%1].name), null, get(skin_settings.loadscene_flags), %2);
</action>
<action name="skin_showloading">
if(display.stereo == true,
set(layer[skin_loadingtext].visible, false);
,
set(layer[skin_loadingtext].visible, %1);
);
</action>
<action name="skin_hidetooltips">
set(layer[skin_tooltip].alpha,0.0);
set(layer[skin_tooltip].visible,false);
</action>
<action name="skin_buttonglow">
if('%1' !== 'null',
set(strength,0.7);
if(%2 != null, set(strength,%2));
set(layer[skin_buttonglow].parent, %1);
set(layer[skin_buttonglow].visible, true);
tween(layer[skin_buttonglow].alpha, get(strength), 0.07);
,
tween(layer[skin_buttonglow].alpha, 0.0, 0.1, default,
set(layer[skin_buttonglow].parent, null);
set(layer[skin_buttonglow].visible, false);
);
);
</action>
<action name="skin_calc_opened_closed">
if(layer[get(name)].y_closed === null,
set(layer[get(name)].y_opened, get(layer[get(name)].y));
set(layer[get(name)].y_closed, calc(layer[get(name)].y - skin_settings.controlbar_offset - skin_settings.controlbar_height + skin_settings.controlbar_offset_closed));
);
</action>
<action name="skin_hideskin">
callwith(layer[skin_scroll_window], skin_calc_opened_closed() );
callwith(layer[skin_splitter_bottom], skin_calc_opened_closed() );
callwith(layer[skin_control_bar], skin_calc_opened_closed() );
if(layer[skin_map].state != 'closed', skin_showmap(false); wait(0.40); );
if(layer[skin_thumbs].state != 'closed', skin_showthumbs(false); wait(0.25); );
set(hidetime, calc('%1' == 'instant' ? 0.0 : 0.5));
tween(layer[skin_scroll_window].y, get(layer[skin_scroll_window ].y_closed), get(hidetime));
tween(layer[skin_splitter_bottom].y, get(layer[skin_splitter_bottom].y_closed), get(hidetime));
tween(layer[skin_control_bar].y, get(layer[skin_control_bar ].y_closed), get(hidetime));
tween(layer[skin_btn_prev_fs].x, 0, get(hidetime));
tween(layer[skin_btn_next_fs].x, 0, get(hidetime));
if(layer[skin_logo], tween(layer[skin_logo].alpha, 0.0, 0.5, default, set(layer[skin_logo].visible,false)); );
stopdelayedcall(skin_btn_show_alpha);
set(layer[skin_btn_show].visible, true);
delayedcall(skin_btn_show_alpha, get(hidetime), tween(layer[skin_btn_show].alpha, 0.25, 0.25); );
</action>
<action name="skin_showskin">
tween(layer[skin_scroll_window ].y, get(layer[skin_scroll_window ].y_opened));
tween(layer[skin_splitter_bottom].y, get(layer[skin_splitter_bottom].y_opened));
tween(layer[skin_control_bar ].y, get(layer[skin_control_bar ].y_opened));
tween(layer[skin_btn_prev_fs].x, -50);
tween(layer[skin_btn_next_fs].x, -50);
if(layer[skin_logo], set(layer[skin_logo].visible,true); tween(layer[skin_logo].alpha, 1.0); );
stopdelayedcall(skin_btn_show_alpha);
set(layer[skin_btn_show].visible, false);
delayedcall(skin_btn_show_alpha, 0.25, tween(layer[skin_btn_show].alpha, 0.0, 0.0); );
</action>
<action name="skin_showthumbs">
if(%1 == null, if(layer[skin_thumbs].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
mul(mh, layer[skin_scroll_layer].pixelheight, -1);
if(show,
set(layer[skin_thumbs].state, 'opened');
tween(layer[skin_thumbs].alpha, 1.0, 0.25);
add(mh, layer[skin_thumbs].height);
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
set(layer[skin_thumbs_container].visible, true);
tween(layer[skin_thumbs_container].alpha, 1.0, 0.25);
tween(layer[skin_map].alpha, 0.0, 0.25, default, set(layer[skin_map].visible,false));
,
set(layer[skin_thumbs].state, 'closed');
tween(layer[skin_thumbs].alpha, 0.0, 0.25, easeOutQuint);
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_thumbs_container].visible, false););
);
</action>
<action name="skin_showmap">
if(%1 == null, if(layer[skin_map].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
mul(mh, layer[skin_scroll_layer].pixelheight, -1);
if(show,
tween(layer[skin_thumbs_container].alpha, 0.0, 0.25, default, set(layer[skin_thumbs_container].visible,false));
set(layer[skin_map].visible, true);
tween(layer[skin_map].alpha, 1.0, 0.25);
set(layer[skin_map].state, 'opened');
sub(hh,area.pixelheight,skin_settings.controlbar_offset);
sub(hh,layer[skin_control_bar].height);
sub(hh,32);
add(mh,hh);
sub(hh,skin_settings.controlbar_overlap);
copy(layer[skin_map].height, hh);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
,
if(layer[skin_map].state != 'closed',
set(layer[skin_map].state, 'closed');
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_map].alpha, 0.0, 0.5, easeOutQuint);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_map].visible,false) );
);
);
</action>
<action name="skin_keydown_event">
if(keycode == 33, skin_nextscene_loop(-1) ); <!-- Page Up - previous scene -->
if(keycode == 34, skin_nextscene_loop(+1) ); <!-- Page Dowm - next scene -->
if(keycode == 35, skin_gotoscene(calc(scene.count-1)) ); <!-- End - last scene -->
if(keycode == 36, skin_gotoscene(0) ); <!-- Home/Pos1 - first scene -->
</action>
<action name="skin_deeplinking_update_url">
if(skin_settings.deeplinking AND (!webvr OR webvr.isenabled === false),
delayedcall(skin_deeplinking_update, calc(%1 == null ? 0.1 : %1), skin_deeplinking_update_url_process() );
);
</action>
<action name="skin_deeplinking_update_url_process">
copy(adr, browser.location);
indexoftxt(qi, get(adr), '?');
if(qi GT 0, subtxt(adr, adr, 0, get(qi)));
copy(si, scene[get(xml.scene)].index);
copy(h, view.hlookat);
copy(v, view.vlookat);
copy(f, view.fov);
copy(d, view.distortion);
copy(a, view.architectural);
clamp(d, 0.0, 1.0);
clamp(a, 0.0, 1.0);
set(pp, calc(f LT 10 ? 6 : 2));
roundval(h, get(pp));
roundval(v, get(pp));
roundval(f, get(pp));
roundval(d, 2);
roundval(a, 1);
set(adr, calc(adr + '?startscene=' + si + '&amp;startactions=lookat('+h+','+v+','+f+','+d+','+a+');'));
js( history.replaceState(null, document.title, get(adr)); );
</action>
<!-- reload the scene when there is a special image for VR -->
<action name="skin_reloadscene_webvr">
delayedcall(0.1,
if(scene[get(xml.scene)].havevrimage,
copy(keeplookingdirection_backup, skin_settings.webvr_gyro_keeplookingdirection);
set(skin_settings.webvr_gyro_keeplookingdirection, true);
loadscene(get(xml.scene), null, MERGE|KEEPVIEW|KEEPMOVING|KEEPPLUGINS|KEEPHOTSPOTS|NOPREVIEW, BLEND(0.5));
copy(skin_settings.webvr_gyro_keeplookingdirection, keeplookingdirection_backup);
delete(keeplookingdirection_backup);
);
);
</action>
<!-- videopano support - http://krpano.com/plugins/videoplayer/ -->
<action name="skin_video_addcontrols">
set(events[skin_events].onclick, skin_video_clickevent() );
set(plugin[video].onvideoready, skin_video_updatestate() );
set(plugin[video].onvideoplay, skin_video_updatestate() );
set(plugin[video].onvideopaused, skin_video_updatestate() );
set(plugin[video].onvideocomplete, skin_video_updatestate() );
if(plugin[video].ispaused AND plugin[video].pausedonstart,
set(layer[skin_video_playpause].state, 'visible');
set(layer[skin_video_playpause].enabled, true);
tween(layer[skin_video_playpause].alpha, 1.0);
);
delayedcall(skin_video_delayedvisible, 0.25, set(layer[skin_video_controls].visible, true) );
skin_video_updateseekbarwidth();
set(layer[skin_video_seekpos].x,0);
set(layer[skin_video_loadbar].width,0);
setinterval(skin_video_seek_updates, 0.5, skin_video_updatetime() );
</action>
<action name="skin_video_removecontrols">
stopdelayedcall(skin_video_delayedvisible);
set(events[skin_events].onclick, null);
set(layer[skin_video_playpause].alpha, 0.0);
set(layer[skin_video_controls].visible, false);
clearinterval(skin_video_seek_updates);
</action>
<action name="skin_video_updatetime">
copy(t1, plugin[video].time);
copy(t2, plugin[video].totaltime);
if(%1 !== null, calc(t1, %1 * t2); );
div(t1_min, t1, 60);
mod(t1_sec, t1, 60);
Math.floor(t1_min);
Math.floor(t1_sec);
div(t2_min, t2, 60);
mod(t2_sec, t2, 60);
Math.floor(t2_min);
Math.floor(t2_sec);
calc(layer[skin_video_time].html, t1_min + ':' + (t1_sec LT 10 ? '0' : '') + t1_sec + ' / ' + t2_min + ':' + (t2_sec LT 10 ? '0' : '') + t2_sec);
calc(layer[skin_video_seekpos].x, (t1 / t2 * 100) + '%');
calc(layer[skin_video_loadbar].width, (plugin[video].loadedbytes / plugin[video].totalbytes * 100) + '%');
</action>
<action name="skin_video_updateseekbarwidth">
if(skin_settings.title,
calc(layer[skin_video_seekbar_container].width, 0 - (32 + layer[skin_title].pixelwidth + layer[skin_video_time].pixelwidth));
calc(layer[skin_video_seekbar_container].x, layer[skin_title].pixelwidth + 16);
,
calc(layer[skin_video_seekbar_container].width, 0 - (24 + layer[skin_video_time].pixelwidth));
set(layer[skin_video_seekbar_container].x, 8);
);
</action>
<action name="skin_video_ondownseeking">
asyncloop(pressed,
screentolayer(skin_video_seekbar, mouse.stagex,mouse.stagey, lx,ly);
calc(seekpos, lx / layer[skin_video_seekbar].pixelwidth);
clamp(seekpos, 0.0, 1.0);
skin_video_updatetime(seekpos);
,
plugin[video].seek(calc((seekpos * 100) + '%'));
);
</action>
<layer name="skin_video_playpause" keep="true"
style="skin_base|skin_glow" crop="0|640|64|64" scale="0.75"
align="center" alpha="0.0" autoalpha="true"
state="hidden"
onclick="skin_video_playpause_click();"
/>
<action name="skin_video_updatestate">
calc(layer[skin_video_playpause].crop, plugin[video].ispaused ? '0|640|64|64' : '64|640|64|64');
if(plugin[video].iscomplete,
set(layer[skin_video_playpause].state, 'visible');
tween(layer[skin_video_playpause].alpha, 1.0);
);
</action>
<action name="skin_video_playpause_click">
if(plugin[video].ispaused,
plugin[video].play();
set(layer[skin_video_playpause].state, 'hidden');
tween(layer[skin_video_playpause].alpha, 0.0);
,
plugin[video].pause();
set(layer[skin_video_playpause].state, 'visible');
tween(layer[skin_video_playpause].alpha, 1.0);
delayedcall(autohide_pp, 2.0, set(layer[skin_video_playpause].state,'hidden'); tween(layer[skin_video_playpause].alpha, 0.0); );
);
</action>
<action name="skin_video_clickevent">
stopdelayedcall(autohide_pp);
switch(layer[skin_video_playpause].state, 'visible', 'hidden');
if(layer[skin_video_playpause].state == 'hidden',
tween(layer[skin_video_playpause].alpha, 0.0);
,
tween(layer[skin_video_playpause].alpha, 1.0);
delayedcall(autohide_pp, 2.0, set(layer[skin_video_playpause].state,'hidden'); tween(layer[skin_video_playpause].alpha, 0.0); );
);
</action>
<!-- context menu - http://krpano.com/docu/xml/#contextmenu -->
<contextmenu>
<item name="kr" caption="KRPANO" />
<item name="fs" caption="FULLSCREEN" />
<item name="cc" caption="Change Controlmode" onclick="skin_changecontrolmode();" separator="true" />
<item name="nv" caption="Normal View" onclick="skin_view_normal();" showif="view.vlookatrange == 180" separator="true" />
<item name="fv" caption="Fisheye View" onclick="skin_view_fisheye();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="sv" caption="Stereographic View" onclick="skin_view_stereographic();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="av" caption="Architectural View" onclick="skin_view_architectural();" showif="view.vlookatrange == 180" />
<item name="pv" caption="Pannini View" onclick="skin_view_pannini();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="lp" caption="Little Planet View" onclick="skin_view_littleplanet();" showif="view.vlookatrange == 180" devices="flash|webgl" />
</contextmenu>
<action name="skin_changecontrolmode">
switch(control.mouse, moveto, drag);
switch(control.touch, moveto, drag);
</action>
<action name="skin_view_look_straight">
if(view.vlookat LT -80 OR view.vlookat GT +80,
tween(view.vlookat, 0.0, 1.0, easeInOutSine);
tween(view.fov, 100, distance(150,0.8));
);
skin_deeplinking_update_url(1.0);
</action>
<action name="skin_view_normal">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.0, distance(1.0,0.5));
</action>
<action name="skin_view_fisheye">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.35, distance(1.0,0.5));
</action>
<action name="skin_view_architectural">
skin_view_look_straight();
tween(view.architectural, 1.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.0, distance(1.0,0.5));
</action>
<action name="skin_view_stereographic">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 1.0, distance(1.0,0.8));
</action>
<action name="skin_view_pannini">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 1.0, distance(1.0,0.8));
if(view.distortion LT 0.1,
tween(view.distortion, 1.0, distance(1.0,0.8));
);
</action>
<action name="skin_view_littleplanet">
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 1.0, distance(1.0,0.8));
tween(view.fov, 150, distance(150,0.8));
tween(view.vlookat, 90, distance(100,0.8));
add(new_hlookat, view.hlookat, 123.0);
tween(view.hlookat, get(new_hlookat), distance(100,0.8));
skin_deeplinking_update_url(1.0);
</action>
</krpano>
<krpano>
<!-- Version 1.17 Design -->
<skin_settings layout_width="100%"
layout_maxwidth=""
controlbar_width="100%"
controlbar_height.normal="40"
controlbar_height.mobile="38"
controlbar_offset.normal="20"
controlbar_offset.mobile="0"
controlbar_offset_closed="-2"
controlbar_overlap="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x000000"
design_bgalpha="0.5"
design_bgborder="1,0 0xFFFFFF 1"
design_bgroundedge.no-ios="0"
design_bgroundedge.ios="1"
design_bgshadow="0 0 20 0x000000 1.0"
design_thumbborder_bgborder="4 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="3"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
design_text_shadow="1"
/>
</krpano>
<krpano>
<!-- Version 1.17 Round Design -->
<skin_settings layout_width="100%"
layout_maxwidth.normal="900"
layout_maxwidth.mobile=""
controlbar_width.normal="-44"
controlbar_width.mobile="100%"
controlbar_height.normal="38"
controlbar_height.mobile="34"
controlbar_offset.normal="22"
controlbar_offset.mobile="0"
controlbar_offset_closed="-40"
controlbar_overlap.normal="7"
controlbar_overlap.mobile="2"
design_skin_images="vtourskin.png"
design_bgcolor="0x000000"
design_bgalpha="0.5"
design_bgborder="0 0xFFFFFF 1.0"
design_bgroundedge.normal="9"
design_bgroundedge.mobile="1"
design_bgshadow="0 0 9 0xFFFFFF 0.5"
design_thumbborder_bgborder="4 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="5"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
design_text_shadow="1"
/>
</krpano>
<krpano>
<!-- Flat Light Design -->
<!-- modify the <skin_settings> values -->
<skin_settings layout_width="100%"
layout_maxwidth="100%"
controlbar_width="100%"
controlbar_height="40"
controlbar_offset.normal="0"
controlbar_offset.mobile="0"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="0"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x000000"
design_bgalpha="1.0"
design_bgborder="0"
design_bgroundedge="0"
design_bgshadow="0 4 10 0xFFFFFF 0.3"
design_thumbborder_bgborder="3 0xB2B2B2 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial;"
design_text_shadow="0"
/>
<!-- adjust the design of some skin elements -->
<layer name="skin_layer">
<layer name="skin_loadingtext" width="100%" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:20px;'" padding="4 6" textshadow="calc:2.0" textshadowrange="1.0" textshadowangle="90" textshadowcolor="0x2D3E50" textshadowalpha="1.0" />
<layer name="skin_control_bar" alpha="0.7" />
</layer>
<!-- use a fullscreen map -->
<action name="skin_showmap">
if(%1 == null, if(layer[skin_map].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
mul(mh, layer[skin_scroll_layer].pixelheight, -1);
if(show,
tween(layer[skin_thumbs_container].alpha, 0.0, 0.25, default, set(layer[skin_thumbs_container].visible,false));
set(layer[skin_map].visible, true);
tween(layer[skin_map].alpha, 1.0, 0.25);
set(layer[skin_map].state, 'opened');
sub(hh,area.pixelheight,skin_settings.controlbar_offset);
sub(hh,layer[skin_control_bar].height);
sub(hh,0);
add(mh,hh);
sub(hh,skin_settings.controlbar_overlap);
copy(layer[skin_map].height, hh);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
,
if(layer[skin_map].state != 'closed',
set(layer[skin_map].state, 'closed');
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_map].alpha, 0.0, 0.5, easeOutQuint);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_map].visible,false) );
);
);
</action>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
border="false"
roundedge="calc:1.0"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
</krpano>
<krpano>
<!-- Flat Light Design -->
<!-- modify the <skin_settings> values -->
<skin_settings layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset.normal="20"
controlbar_offset.mobile="20"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="10"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin_light.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.8"
design_bgborder="0"
design_bgroundedge="1"
design_bgshadow="0 4 10 0x000000 0.3"
design_thumbborder_bgborder="2 0xFFFFFF 0.8"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:lighter;"
design_text_shadow="1"
/>
<!-- adjust the design of some skin elements -->
<layer name="skin_layer">
<layer name="skin_loadingtext" width="100%" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:20px;'" padding="4 6" textshadow="calc:2.0" textshadowrange="1.0" textshadowangle="90" textshadowcolor="0x2D3E50" textshadowalpha="1.0" />
</layer>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
border="false"
roundedge="calc:1.0"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
</krpano>
<krpano>
<!-- Glass Design -->
<!-- modify the <skin_settings> values -->
<skin_settings thumbs_scrollindicator="true"
layout_width="100%"
layout_maxwidth="680"
xcontrolbar_width="-44"
controlbar_width="-20"
controlbar_height="36"
controlbar_offset.normal="40"
controlbar_offset.mobile="12"
controlbar_offset_closed="-40"
controlbar_overlap="10"
design_skin_images="vtourskin.png"
design_bgcolor="0xFFFFFF"
design_bgalpha="0.25"
design_bgborder="2 0xFFFFFF 0.1"
design_bgroundedge="13"
design_bgshadow="0"
design_thumbborder_bgborder="3 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="5"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
design_text_shadow="0"
/>
<!-- webvr button style (adjust to match default skin style) -->
<style name="webvr_button_style"
border="true" borderwidth="2" bordercolor="0xFFFFFF" borderalpha="0.25"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0"
css="calc:skin_settings.design_text_css + ' color:#FFFFFF; font-weight:normal; font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
<!-- contextmenu style (adjust to match skin style) -->
<contextmenu customstyle="default|default|default|0x77AAAAAA|0xFFFFFF|0xBBBBBB|2|0x7FFFFFFF|13|0|0|0|0xFFFFFF|0|0|4|6|7|0xAAFFFFFF|none|3|0|0|0|3|0xAAFFFFFF|0xAAFFFFFF|0xFFFFFF|12|8" />
</krpano>
<krpano>
<!-- Ultra Light Design -->
<!-- modify the <skin_settings> values -->
<skin_settings title="false"
layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset.normal="30"
controlbar_offset.mobile="20"
controlbar_offset_closed="-40"
controlbar_overlap="0"
design_skin_images="vtourskin_light.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.0"
design_bgborder="0,0,1,0 0xFFFFFF 1"
design_bgroundedge="0"
design_bgshadow="0"
design_thumbborder_bgborder="1 0xFFFFFF 0.8"
design_thumbborder_padding="0"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:lighter;"
design_text_shadow="0"
/>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
border="false"
roundedge="calc:1.0"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
<!-- adjust video controls to match skin style -->
<layer name="skin_layer">
<layer name="skin_scroll_window">
<layer name="skin_scroll_layer">
<layer name="skin_video_controls">
<layer name="skin_video_seekbar_container">
<layer name="skin_video_seekbar" height="1" y="4">
<layer name="skin_video_loadbar" height="1" />
<layer name="skin_video_seekpos" bgroundedge="2" width="6" height="6" />
</layer>
</layer>
<layer name="skin_video_time" y="-4" />
</layer>
</layer>
</layer>
</layer>
<!-- contextmenu style (adjust to match skin style) -->
<contextmenu customstyle="default|default|default|0x7F000000|0xFFFFFF|0xBBBBBB|0|0x20FFFFFF|1|0|0|0|0xFFFFFF|0|0xFFFFFF|4|6|7|0xAAFFFFFF|none|3|0|0|0|3|0xFFFFFF|0xFFFFFF|0x000000|12|8" />
</krpano>
......@@ -15,14 +15,67 @@
</style>
</head>
<body>
<script src="pano.js"></script>
<script src="tour.js"></script>
<div id="pano" style="width:100%;height:100%;">
<noscript><table style="width:100%;height:100%;"><tr style="vertical-align:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>
<script>
embedpano({swf:"tour.swf", xml:"tour.xml", target:"pano", html5:"auto", mobilescale:1.0, passQueryParameters:true,onready : krpano_onready_callback});
function krpano_onready_callback(krpano_interface)
{
krpano = krpano_interface;
setTimeout(()=>{
add_hotspot('完善的设施',128.862,4.478)
add_hotspot('宜人的气候','-144.129',-5)
},1000)
// setTimeout(()=>{
//
//
// },3000)
}
function add_hotspot(hs_name,ath,atv)
{
if (krpano) {
var h = ath//krpano.get("view.hlookat");
var v = atv//krpano.get("view.vlookat");
//var hs_name = //"hs" + ((Date.now() + Math.random()) | 0); // create unique/randome name
console.log(hs_name,h,v)
krpano.call("addhotspot(" + hs_name + ")");
krpano.set("hotspot["+hs_name+"].url", "/images/pano/diy_hotspot.png");
krpano.set("hotspot["+hs_name+"].ath", h);
krpano.set("hotspot["+hs_name+"].atv", v);
// krpano.set("hotspot["+hs_name+"].zorder", '42');
krpano.set("hotspot["+hs_name+"].distorted", true);
if ( krpano.get("device.html5") ) {
// for HTML5 it's possible to assign JS functions directly to krpano events
krpano.set("hotspot["+hs_name+"].onclick", function(hs) {
console.log('hotspot "' + hs + '" clicked');
if(hs==='完善的设施'){
location.href='/show.html'
}
if(hs==='宜人的气候'){
location.href='/show.html'
}
}.bind(null, hs_name));
}
else {
// for Flash the js() action need to be used to call from Flash to JS (this code would work for Flash and HTML5)
krpano.set("hotspot["+hs_name+"].onclick", "js( alert(calc('hotspot \"' + name + '\" clicked')) );");
}
}
}
window.func = function(){
console.log(3333333333)
}
</script>
</div>
<noscript><table style="width:100%;height:100%;"><tr style="vertical-align:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>
<script>
embedpano({swf:"pano.swf", xml:"pano.xml", target:"pano", html5:"auto", mobilescale:1.0, passQueryParameters:true});
</script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
<krpano version="1.19" title="Virtual Tour">
<include url="skin/vtourskin.xml" />
<!-- customize skin settings: maps, gyro, webvr, thumbnails, tooltips, layout, design, ... -->
<skin_settings maps="false"
maps_type="google"
maps_bing_api_key=""
maps_google_api_key=""
maps_zoombuttons="false"
gyro="true"
webvr="true"
webvr_gyro_keeplookingdirection="false"
webvr_prev_next_hotspots="true"
littleplanetintro="true"
title="true"
thumbs="true"
thumbs_width="120" thumbs_height="80" thumbs_padding="10" thumbs_crop="0|40|240|160"
thumbs_opened="false"
thumbs_text="false"
thumbs_dragging="true"
thumbs_onhoverscrolling="false"
thumbs_scrollbuttons="false"
thumbs_scrollindicator="false"
thumbs_loop="false"
tooltips_buttons="false"
tooltips_thumbs="false"
tooltips_hotspots="false"
tooltips_mapspots="false"
deeplinking="false"
loadscene_flags="MERGE"
loadscene_blend="OPENBLEND(0.5, 0.0, 0.75, 0.05, linear)"
loadscene_blend_prev="SLIDEBLEND(0.5, 180, 0.75, linear)"
loadscene_blend_next="SLIDEBLEND(0.5, 0, 0.75, linear)"
loadingtext="loading..."
layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset="20"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="10"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.8"
design_bgborder="0"
design_bgroundedge="1"
design_bgshadow="0 4 10 0x000000 0.3"
design_thumbborder_bgborder="3 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial;"
design_text_shadow="1"
/>
<!--
For an alternative skin design either change the <skin_settings> values
from above or optionally include one of the predefined designs from below.
-->
<!-- <include url="skin/vtourskin_design_flat_light.xml" /> -->
<!-- <include url="skin/vtourskin_design_glass.xml" /> -->
<!-- <include url="skin/vtourskin_design_ultra_light.xml" /> -->
<!-- <include url="skin/vtourskin_design_117.xml" /> -->
<!-- <include url="skin/vtourskin_design_117round.xml" /> -->
<!-- <include url="skin/vtourskin_design_black.xml" /> -->
<!-- startup action - load the first scene -->
<action name="startup" autorun="onstart">
if(startscene === null OR !scene[get(startscene)], copy(startscene,scene[0].name); );
loadscene(get(startscene), null, MERGE);
if(startactions !== null, startactions() );
</action>
<scene name="scene_vr" title="vr" onstart="" thumburl="panos/vr.tiles/thumb.jpg" lat="26.20434422" lng="107.80451219" heading="0.0">
<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
<preview url="panos/vr.tiles/preview.jpg" />
<image prealign="0|0.0|0">
<cube url="panos/vr.tiles/pano_%s.jpg" />
</image>
<layer name="mask"
type="container"
keep="true"
parent=""
visible="true"
enabled="true"
handcursor="true"
maskchildren="false"
scalechildren="false"
zorder="1"
style=""
align=""
edge=""
x=""
y=""
rotate="0.0"
width="100%"
height="100%"
scale="1.0"
alpha="1.0"
crop=""
onovercrop=""
ondowncrop=""
bgcolor="0x000000"
bgalpha="0.2"
bgborder="0"
bgroundedge="0"
bgshadow=""
bgcapture="false"
onover.addevent=""
onhover.addevent=""
onout.addevent=""
onclick.addevent=""
ondown.addevent=""
onup.addevent=""
onloaded.addevent=""
/>
<hotspot name="mytext"
type="text"
ath="-144.129" atv="-8" edge="center"
distorted="true"
renderer="webgl"
html="宜人的气候"
css="font-family:Arial; font-size:16px; color:#FFFFFF;"
vcenter="false"
padding="8"
zorder="3"
wordwrap="true"
bg="true"
bgcolor="0xFFFFFF"
bgalpha="0.2"
bgborder="0"
bgroundedge="6"
bgshadow=""
txtshadow=""
mergedalpha="true"
oversampling="1.0"
mipmapping="false"
onautosized=""
/>
<hotspot name="mytext2"
type="text"
ath="128.862" atv="0" edge="center"
distorted="true"
zorder="3"
renderer="webgl"
html="完善的设施"
css="font-family:Arial; font-size:16px; color:#FFFFFF;"
vcenter="false"
padding="8"
wordwrap="true"
bg="true"
bgcolor="0xFFFFFF"
bgalpha="0.2"
bgborder="0"
bgroundedge="6"
bgshadow=""
txtshadow=""
mergedalpha="true"
oversampling="1.0"
mipmapping="false"
onautosized=""
onclick="func()"
/>
</scene>
</krpano>
<!DOCTYPE html>
<html>
<head>
<title>krpano - MAKE VTOUR - Virtual Tour Editor</title>
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, minimal-ui" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="x-ua-compatible" content="IE=edge" />
<style>
@-ms-viewport { width: device-width; }
@media only screen and (min-device-width: 800px) { html { overflow:hidden; } }
html { height:100%; }
body { height:100%; overflow: hidden; margin:0; padding:0; font-family:Arial, Helvetica, sans-serif; font-size:16px; color:#FFFFFF; background-color:#000000; }
a{ color:#AAAAAA; text-decoration:underline; }
a:hover{ color:#FFFFFF; text-decoration:underline; }
</style>
</head>
<body>
<script src="tour.js"></script>
<div id="title" style="width:100%; height:20px; padding:5px; font-size:16px;"><b>krpano - MAKE VTOUR - Virtual Tour Editor</b> <span style="font-size:10px; font-style:italic; color:#777777;">// 1. set the startup views / 2. add hotspots / 3. edit the titles / 4. save and overwrite the original tour.xml</span></div>
<div id="pano" style="width:100%; height:95%;">
<noscript><table style="width:100%;height:100%;"><tr style="vertical-align:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>
<script>
var vars = {};
vars["plugin[vtoureditor].url"] = "plugins/vtoureditor.swf";
vars["plugin[vtoureditor].keep"] = true;
embedpano({swf:"tour.swf", xml:"tour.xml", target:"pano", flash:"only", passQueryParameters:false, vars:vars});
function resize()
{
var th = document.getElementById("title").clientHeight;
var ph = (typeof(window.innerHeight) == 'number') ? window.innerHeight : ((document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight : ((document.body && document.body.clientHeight) ? document.body.clientHeight : 500));
document.getElementById("pano").style.height = (ph-th)+"px"
}
window.onresize = resize;
resize();
</script>
</div>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment