znc-1.9.0/0000755000175000017500000000000014565511777012561 5ustar somebodysomebodyznc-1.9.0/zz_msg/0000755000175000017500000000000014565511765014067 5ustar somebodysomebodyznc-1.9.0/zz_msg/CMakeLists.txt0000644000175000017500000000204114565511765016624 0ustar somebodysomebody# # Copyright (C) 2004-2024 ZNC, see the NOTICE file for details. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # This is implementation detail of CMake, but this install() runs last. # Details are at https://cmake.org/pipermail/cmake/2011-July/045615.html install(CODE "message(\" ****************************************************************** ZNC was successfully installed. You can use '${CMAKE_INSTALL_FULL_BINDIR}/znc --makeconf' to generate a config file. If you need help with using ZNC, please visit our wiki at: http://znc.in\")") znc-1.9.0/znc.service.in0000644000175000017500000000030314565511765015333 0ustar somebodysomebody[Unit] Description=ZNC, an advanced IRC bouncer After=network.target [Service] ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/znc -f --datadir=/var/lib/znc User=znc [Install] WantedBy=multi-user.target znc-1.9.0/znc.pc.cmake.in0000644000175000017500000000121414565511765015356 0ustar somebodysomebody# You can access these with e.g. pkg-config --variable=moddir znc prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} datarootdir=${prefix}/@CMAKE_INSTALL_DATAROOTDIR@ bindir=${exec_prefix}/@CMAKE_INSTALL_BINDIR@ libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ datadir=${prefix}/@CMAKE_INSTALL_DATADIR@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ cxx=@CMAKE_CXX_COMPILER@ version=@ZNC_VERSION@ moddir=${libdir}/znc moddatadir=${datadir}/znc Name: ZNC Description: An advanced IRC proxy Version: ${version} URL: https://znc.in Cflags: @CMAKE_CXX_FLAGS@ -I@CMAKE_INSTALL_FULL_INCLUDEDIR@ -include znc/zncconfig.h -Dznc_export_lib_EXPORTS Libs: @znclib_pc@ znc-1.9.0/znc-buildmod.cmake.in0000755000175000017500000000734514565511765016570 0ustar somebodysomebody#!/bin/sh # # Copyright (C) 2004-2024 ZNC, see the NOTICE file for details. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # http://stackoverflow.com/questions/18993438/shebang-env-preferred-python-version # http://stackoverflow.com/questions/12070516/conditional-shebang-line-for-different-versions-of-python """:" which python3 >/dev/null 2>&1 && exec python3 "$0" "$@" which python >/dev/null 2>&1 && exec python "$0" "$@" which python2 >/dev/null 2>&1 && exec python2 "$0" "$@" echo "Error: znc-buildmod requires python" exec echo "Either install python, or use cmake directly" ":""" from __future__ import print_function import argparse import glob import os import shutil import subprocess import sys import tempfile if sys.version_info < (3, 0): class TemporaryDirectory(object): def __enter__(self): self.name = tempfile.mkdtemp() return self.name def __exit__(self, *a, **k): shutil.rmtree(self.name) tempfile.TemporaryDirectory = TemporaryDirectory parser = argparse.ArgumentParser( description='Build external ZNC modules and place the results to ' 'current directory. Several modules can be built at once.', epilog='Adjustable environment variables: CXXFLAGS, LDFLAGS, LIBS') parser.add_argument('-v', '--verbose', action='count', default=0, help='use -vvv for more verbosity') parser.add_argument('files', nargs='+', metavar='file.cpp', help="path to the module's source file") args = parser.parse_args() with tempfile.TemporaryDirectory() as cmdir: with open(os.path.join(cmdir, 'CMakeLists.txt'), 'w') as cm: print('cmake_minimum_required(VERSION 3.13)', file=cm) print('project(ExternalModules LANGUAGES CXX)', file=cm) print('find_package(ZNC @ZNC_VERSION_MAJOR@.@ZNC_VERSION_MINOR@ HINTS ' '@CMAKE_INSTALL_FULL_DATADIR@/znc REQUIRED)', file=cm) if args.verbose > 0: print('set(CMAKE_VERBOSE_MAKEFILE true)', file=cm) for mod_cpp in args.files: mod, _ = os.path.splitext(os.path.basename(mod_cpp)) print(file=cm) print('add_library(module_{} MODULE {})'.format( mod, os.path.abspath(mod_cpp)), file=cm) print('znc_setup_module(TARGET module_{} NAME {})'.format(mod, mod), file=cm) print('target_link_libraries(module_{} PRIVATE {})'.format( mod, os.environ.get('LIBS', '')), file=cm) if args.verbose > 0: with open(os.path.join(cmdir, 'CMakeLists.txt')) as cm: print(cm.read()) with tempfile.TemporaryDirectory() as build: command = ['cmake', cmdir] if args.verbose > 1: command.append('--debug-output') if args.verbose > 2: command.append('--trace') if args.verbose > 0: print(command) subprocess.check_call(command, cwd=build) subprocess.check_call(['cmake', '--build', '.'], cwd=build) for so in glob.iglob(os.path.join(build, '*.so')): print('Writing {}'.format(os.path.join(os.getcwd(), os.path.basename(so)))) try: os.remove(os.path.basename(so)) except OSError: pass shutil.copy(so, os.getcwd()) znc-1.9.0/webskins/0000755000175000017500000000000014565511765014403 5ustar somebodysomebodyznc-1.9.0/webskins/ice/0000755000175000017500000000000014565511765015143 5ustar somebodysomebodyznc-1.9.0/webskins/ice/tmpl/0000755000175000017500000000000014565511765016117 5ustar somebodysomebodyznc-1.9.0/webskins/ice/tmpl/Header.tmpl0000644000175000017500000000010114565511765020175 0ustar somebodysomebody znc-1.9.0/webskins/ice/tmpl/FooterTag.tmpl0000644000175000017500000000000014565511765020675 0ustar somebodysomebodyznc-1.9.0/webskins/ice/pub/0000755000175000017500000000000014565511765015731 5ustar somebodysomebodyznc-1.9.0/webskins/ice/pub/pagebg.gif0000644000175000017500000000175114565511765017651 0ustar somebodysomebodyGIF89ax(>] 2$8,Ef.FQ,B&;X *@(=##6P%:W!3 ,Fg+De 1J0)>)A`-*A`!2L#6,Dd)&:V-D(?^&\,*,Eg,(=\+-Gj0*Bc+Bc,Fi,Gh!3M$:U)@&=Z+Dc"3M&9$8T-Gi!,x3?@#/A([[ %..4uK~2ʾ2`2`!!! !5J JJ66Ѣ 9(䠆,dђe" n.dIsc{!B'S  \ʄ#@6q>ɳN <5JHpE+MJu ;Hzׯ^X@vAҪM< U](׃~L  ~˜q'1̬Ay„3k̢s ,2"{PYڊ+TP`6 cA܉}L3e9,`qС\GA ! $y$$U$9# h'a ! 680aBpQf؄M|hDB0!&0(.J@*Ȩ@IdFKхDAD|^ᅕG1`)dihFlp)tix|矀;znc-1.9.0/webskins/ice/pub/linkbg.jpg0000644000175000017500000000125314565511765017702 0ustar somebodysomebodyJFIFxxExifII*C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?਩vQ^Zph#ڊ=W4 znc-1.9.0/webskins/forest/tmpl/FooterTag.tmpl0000644000175000017500000000017114565511765021450 0ustar somebodysomebody ZNC "forest" Web Skin - based on "dark-clouds" by David Precious znc-1.9.0/webskins/forest/tmpl/Banner.tmpl0000644000175000017500000000007114565511765020762 0ustar somebodysomebody znc-1.9.0/webskins/forest/pub/0000755000175000017500000000000014565511765016473 5ustar somebodysomebodyznc-1.9.0/webskins/forest/pub/forest.css0000644000175000017500000000046414565511765020513 0ustar somebodysomebodyh3 { background-color: #049712; } table thead th { background-color: #007700; } #banner { background-image: url('forest-header.png'); } #menu .modtitle.active, #menu .topitem.active { background-color: #049712; font-weight: bold; } #footerbar { background-color: #049712; } a { color: #049712; } znc-1.9.0/webskins/forest/pub/forest-header.png0000644000175000017500000065510514565511765021745 0ustar somebodysomebodyPNG  IHDR d~QTsRGBbKGD pHYs--tIME +k$tEXtCommentLEAD Technologies Inc. V1.01~Ѓ IDATx\wdWy ]չ{r4AHB 0& m`k0\"PY49LO\uQVի{UsI="3GJ$mX6Ҁ)h%$- [ xb>/k;K},k`I0C(H?'@eXCxyt7d &9lScdx펢Vmc;>hcR H.q&RpplD^Ofa˗߰sS?vܿcStr$ϙt8]@_K/{9gY`+֭[Aբ:[ RmcK8 F!`Yep6iF!q@2-A;{T̓)mS*}$I4Mi|Ų,:s􍎒% vi[D(,n@mnSlűs`ۤX( *<"PHTF )mQ@&VZ}}??ŦK_U7_AIۻۈ˜ܜO%2yBD):1iT۶Њ8S`I,'KSz)H{)Pa@ w~B٫PvJ+tu7Tm`˲0ƜnqRӗsMӳl 1r"}Fh7&r* *#ضFa"bK\9?=CkM% CRb _"TF aC)ef4/%o=E_hKL%W^3>$!yϲH.q7$^y/>J?ٴy#<3=XO&W2'o: w&Yw/|c'WG|kl9{;vbdvuVU>p(<*? ?|sl/qDż?>g,9ͣcw篻W[͍?(bY%gmt=3N#~(_z}Sԍ?G_~hn⦅W{>#l\Ⱥ19 1lhsT yz07"E|xgZ{!]~,Mhݘo>7qc?׾7tW=xi>Pï=&,''CȪķ6nvz<~k⼷7d^7c{q/k//3EVcWw~Hʓ*fL⬶(#rݴ{U$DNg8ƶx=앗Ν?x$ekov|Nхó|<@؉Yj5ss(+hM/7>BR, D)ZKJN AƆ8. FuqId`$ e\hcB &ҷp䱅MF(24Tab8O.솖E+OخtF.?IE5I8b$IhNB a&C6(Qh7ÄDj"uN"2dl-4>8ͨZ*\iKJQI]\i#7غn$MQJ#4+;!dVEe`n'b y2Kʑs- (%Yi--= H.A8{lNɲ$H!Q*! V2\caJ6$1~*@Ze駑t8QL# Rb[Q &3! Fk֨,#IS,#35IBe,ItOIz$qR 4M$II8i6[Ԫ5 s}i4mZp=|HiN-,R6:(K$([`|P Gea!$ӈl"-ISb` `B X<1+磍a՚)Ć z(IͣڔC!gfgxh E681ԗ5YFޚ&{mo,ל'nx#}5֝t^`~>q5AWaӤIĖMSGѝ^qxZRvuhMә]d|f(b0׿u~#'f [CܜO\X\*icl?X*!p|4zw$`;aK FQLզ!tpN'Ƶ.&ː!6e @) d% h@(cPFi6e12 mtI#l!BZP[:w~3:Y<3WL_LRE!gd` ,i8e;Hi!ɂ)Zu( 0ҳ*j~wY!2m=ã T V'"6"RC J˜eB`!G.s1,a8SاݧiOTI) ZaT4aaa6aDS10O]O24/;j35bj8q8)8tڴ;242J1C֟Y4K O O͟ OL7nx[g>B}6mG ?tuN?^剹'uմ[6|XȰ=}i Ej`>i1z[^–s( 2t{| x`ǃ=ϡ1ɚ~.x;lgl< ) P+0w0괉[MLaZE)(z|k֯j4sǺիT- hmzXnH&I26qP,Ѥ6"53M\fhx\'Mξ|ڭv-2kh#P6Na)%IoEHhzf;g֠50e!-g,cRJBB(L]FRV !bVnF&>BeGQDQ6v\I Df)Q]F&ƨNR ) hCC*%gR'XR/; Jir\OS$(j R(;UZ'Ҍ,HҀ,-]gXF Ҙ\)O#R(IvI"Ili<<ݰ@V(vl! #62Zio}WiTb6 6mD)"p (zI`\gIC&#c1x 4aI:1ɒ,10'8 HR$)=l:^z)۶og .`pho? wVVH+>.5:\r| ]wvz /dAlҲpp3B`l%mJ?O}d2}"eԣ:9Tjw_~Th}^jًwdH8d\`LiԜ&⤉М7-9W_ɠEr<7pl8, 8:wkXwfN",tp$bߦ4CK{,O&34tB6X0u$ %%rj4qV)qMVgafsbE[w3dlVZ!%2q;&4aiBCj 8R"Yv@Hm(LNLD)I36(EV\a|t 3C3H(Z]n0+aI%$^aY {pp-e46hEB,^&)`Bg *KV &}~Z`)J82kTAY {ɇc**+gȴ! ( ^4Y_/搖X8`[ IC7l t&q2H!`9=wQkfˆ>d!ZX"ǒDA8 %h&!Rm , NB0D)Blq]sEٵpGl#ȹ9  +5Rg :X)A8bTT *0zܾa߫4ZmT~#m8apx2ÞI1II'A0:2J\&R:Q7|.Of!Bh!0R224CbL1*QoQS;KE[Ł4,#Kԫč*iT`[r R0^cN ~'}2{KŠ 8I|n lش sظn:8}zRLZy˸ҫ(2gԲ1J$1IX 50I${> IDATX=pqq8oեq~{yU<]A{GSqTm`uBX{.%7O8;,B {k4Fzj[a@|]o9>_WFg7Kun:mg`2;/}\`T৥&Z} q+Q/?/Գs-Z|`,Ϯc˯5MͶT봣6q3Ġ6m$ B4 L1+v+_Ggy1o8o_GuEu7?JE<>{!8c@8le,*/ffݽ'b|{|>x+8I_p~7>=s 6oĉ!IVI8{-SEor5`ݵQ;Dg>FWjEM<,k6no`\ |el:}-B^ܵ_K\8VC~6oVb;ÓGe *`Ʊ{9֝Rb!],Za}H:M9.Qulc[t-"0 5,Ҳ@4 r"0,C)iSTH$"*3SSdbzrYIIdU@ OaggY/}@B(J!sLoؽqN s|Nda[i3(*=Z&CCTE ^$b֤kM&$v>GO#ch(1;y1kS{YaV0<6AԍhV\d*uli#B/ @`-a,3RZ PiBbقfhQYAѡFdiʆm[Xe+YarA_ 99KH\@xyض8Zcق\G u{}ᬧ`ŲHe lX,KyKއ%z0SѺֺwVoA'$qL HǶIIb XH,$-Kٽj( R%5)#mmĩKWWW˒$d9[rvrDi,.RNߺϽD./1 DocMXYOebqEZlxdVqϲ(NߕRNcx(Ǐ'^8a 2Ʈ9Ʒ 3Eqʳ _(R 062JY[լb 7G?Y.:c=7.sb~/?Gln8|aӋl;6K/=φ㭯XiE|=C>xΕ{y<N~^y8A̞Nro[M`b-Gyqĺq?Wh972ZCTU@PN²鉎R*Y2x"#5k4 CHCW浜~,t֮YCT&M"[iMfXJ2H0A zi7ZJl!Tm)˲jI3AN4sX$EP!+YN{^Pqa ~*ȠaVdiDv1i 6%R@)liy`@yŐaow|0Da`]\Krb 37y<:BMI96m =Vgra"iQ*Q/.Z4!U4k L>HjqQ7~dů~;kvO-F3uj:%ITͳYO2ʢ#Di.~+_}?i˸]lT}{Q^q|W}%7^ɡ"[n/aYTe@:UT(x|[37w+gP3~.y7 Ni @ e,13^'<*'/;H*Rݐ-)^Ņֿ >u{N.+x~_ރp6_1:浟s>yˇ9Wr4 YXl1B1q()mSA sOJ7#9/<^~~#ˎ+ ǟ{&֮ai4C72>6AqM(ȾU\ӛ98C"{aՆZwit>ƉS73VD; ) |Q!Vju$Ä1cx.|׵z R`KR=TCXPc 4Ii..2ION% \sZsbf*8K #pv7R BCe!Zt 8er'Zq%|}kx5X}l RFVa^ii9$qBӡ(mDq() rbjB_kI֟C oW]Eb[,1jnB!WYk&́-ѡzbP M^o狸PY[΋:8Ojl!4s>+7sկ9V?g|; XZϸ_DgnKYjd1bA>l-Lkd)0f4%w,HT7 Rlw}n7< &KuoqI\|08Ip3A)t{DjaJev$ 4ʤQ6[Zd•,  ^`6`Y(u:ꕫya7 8aP,lꖦ*"_8[<} [Watzf.UugΡ'DyRhs+q=hJ58haKuVmx!A#흳Q8Dtc( T9|sm $Z ?IQD%$@z~/r`'*3Aj+aZ5>-W_K Z9m>?c{>ҽ^2~F'z|:aZ3Vr֫.IglH,2{(V'&QF8`;$ZnwucSr}$\>mۄaKBNEH҆$hwt8%`I~ACT-,K1Z!rX rV ۲(&ؖETabdJ϶]b1 NclacԲQ5 cA?,`z,#^^N1*IAufn[)"r6aø=zA,c,<@f,EvЌ۴M*I`e$Mv8N:᧐VB%@iQHLJe5i2Wh<2\)Ea/}tfZ$ Y##VQa@._s H[j,׿#@^j9QlAkC/UfYY;}r:gRl M3 #bGEqc@}0:QQTD &4S|gv5·XUWyZ^B[t&dI<;dQƧ2IK;M4֍-51b(9m[FӔ-HFJPPĪW!lN 1km'yl~͟* 'ؾb { ܋y?O}= `Ck0Zk] cl>4V付j̑*QV݇3Ua3`Rm _HujGen2ڵ Wsۛn`kGF7DjNnnBf!(*չ9g1NY.#lyAD%ae=8Kl6&Sffv|їYy_ EKxG?/fӶssa #w\vbWb1~`slZL&H Qy9=FpƋ+y3$9 zotBt|MFll""YwU*6bygf$)l'do36$;: J$ DfR_v/ɣNLsd|~CÛW,_15QVP.+07W)0|@lVPT^[}6 cJe<,A@gn 'D!ˆN0;L|"A"I#RoYuT5EHHr ^oz+;u;7q9c3LLL:톉%B:BT$tw]\W/ŮArzibaFQcY( (Hn"&&0kԏq*i/;Wy9[Y̒8gJwk cOmJœf1UV0}xEqqK<)ɋ̳= ]'Lj n(A&#* "!h18*#N⇠a az |_̇$!Aq<}s#anp740#2QGE]idz&&9|B&ݍZ.13>Nz`ϱ_})B2$H( kb|tsuzsŕK D|[lG?GPȑi,`#7mU$A`כs 1B 7\Tw+u-/ӯ/pwqɧჷ]{l/FXz&ۻ8Xyvl0㡧?%A$q v\}5 M"Mȫ;cǟC]䲋H vBt< cy!tmaǡC)t(v*he|{ YoJ5WN1M"ai*auϦ22 ],ȡ HO(D1.tC$d:Za;lH7g`d$b79͠23+z)L$xu"*_|t7<('L3}_9d= h]XU7\ş}#eɦҌRTҩT QB0I:NqCVw59#&u\!n7{HII@ @AcÓ"!j 1,1&DTAEYD"&i!s\" fЮUi*45foѵ By01~t@iHFDN8(!D4ETQ"!H BaZ!i2NC)E"`arl XfZ&mb @-\"Bڝ*u< " AdYEe0"C)rOR)Kow!-.eVkŝ$Ƙ @ I&dF|lgĄNҰU' |d%F<[F1n%ESFg"u R+""KҜ$E&IKHF U7[rbΝ 7SZG85OWzSh ?1t}I ?ě 拨4.?WfjnPMr$彨DiXh(gop31 o'_a@|&ʹkY>s3w+OמdKj7]~>&U\s oF F'9]ʐHiX&ɫ:d$"r$0㛨4rA(4UI`G:[ KHlZu+̕T rk#g~lvklǹ?ѿjl'lXt k37=CE&C>0%Ced_<+t5M\=t\}{ [ k-&0I5 ZKd2%$:/iLКfj1r tDNͤ=@HT<K[ WbhY]+7<se7g#OQq޶Ё=|DJ?%K062N E ׳j S9Ů2 Fy5$G@biϋP?l2I:F$L"pPE$cßx6À JxH^hNUE7 Qth7|r9Uq:.]š<"Aޮݿy;ݜr-7xgSϑIgP)L\FKpjq g7Y{芎"_z[608Qbt/hv(N9q?=CV27:EUctӌo§Y.z5y6]r3<(3.of3f$~_3v1b4BQk%N0׮њL$ IDATӕ9* = N]]EdէZ"<193mMiZCIy(J:AKHP.9>Vt8h qjyT}NJC aunqQ2IO Erg`mXGXw˿=Ʋ]ǹvi; YOq;onXtw|5ez˜$$|1NsjVA_O/BITI* nEб1B*I`j:A BzV,e햍YP˶}ISR DC%T$?BRUd]CԕE]^H" ȲDpTI$8M&u]tMh " m6,i*ZʠSg&{>7"1F@FL@D ] I'R,|d!BD\ {I.YB 3ӈG"1<_QplAtjt&k6)WAv BE$CC.dP=%zx={؎M3qxexXVj!h6yyd)r{,' i! LGW_PB"K2A8(Tq#EFUTD F࢓bdET6ATE3⠽ 0+d̷jOv=*)O-sBC) j~2,z.ىM2>BZ2p>a5zYh32Xn9բmV5+M…oʞ5xe'&w?Q&uMWk7~?>o8,y l\K}_rK-pP!qZ>x{x'>c8H]7wro0d{VL]Qbu7ĺQz;;gP]=ݴ%v݉QEشHKJ$Иf([:6INH 4Q`p 5r!K:r6TJ@/ ˿zmglsK໏?J5)Ho~'眂vl8w;R%T*5>g"2o53ӈ4Q.P7#uv(vuqTHeXpt<׎2nN!Bi:d>cV^i UfALgi8cT4vJCG%4,a[.5H̍@azl#G>Qa5,ٲط0$RL";,xأ#+ٲc/Hc>Ư~y?C+l VYJSCQ"~?]iU $B8E~1|Y_Fl!+!gұeRe~b >vn{n||ovhZf ?Pj*b$ATU %DEEG $U i.:Z2w;MY%ӱ;h񂓅DQD"kD'׳)(9^. A7:sB,vScbI"Ӎ`$tQ=0Y:!Eݥlm5RUG y4q+Bg o;ǿ#~_ߣx9lZ_{)oʸ<[3Ne_\.Jࡥ2OXf+%д}F*zɏt' $QDdzq|/ A$͒NPsB"ADP4TfH& $I I( sZ&+.:vOKduĝ16p֤xML(+؀N;rp?{WU9Wn_E1n"'Ȓ@D@^`Ye GTlO/!l1 Z L!B$I@D! T!|*,TQ&2]Ïxۨn-p#-2v]CVDLBNHAD DD 0pt8) i  DlH!dP:;IKIFnZ5gBR"E"I$0=\߃ .l_ؾJn\Qukzdd]:94CT= # 2O|s}LݠݜBd$ 1ZD,IB,!X ""ㅈ.AϬymDC5@Q$HOetIqŀeVv` /?2Ǟ~U7kS_Xs\ FD*(FF5fͦS9ހYFӛK *GZY6r}$|˱%֟K!ι-<{x=wyϽ"Jb*>_amrݵ,Qf>W[n{e{q ]~=+v $LWp[~Uʵ7_&) 6j%Ü MǢq f[DjHز($ t\h{I%R,R_ʳhsr ,{gTޯ?|Sa-l,MHSX^k|'ݾv\w?ja*~-8qz Ӎ잞b%#u1;7GōL! 'R5Z]y9 ucY ںLǀ̋PZGo v!Ef0u1ď|ryܹr$WMSӋƿ]'MX213%-V࢖Eh[sɱ: >EWG4sPl2?" CXUr}6 c C1t,vӱP IR즬(y*5ʂ<+BgdNgoDZ9D{H'(*diL>Q$V(G"2 vd6E*)xv@"-HQ Ii#R@&/A(FH$( (ȱ( !$Pp%ӍI9O1E2a<4tYw=̆Kw(^? MB*Emf8rOrMogaX2k$nL„nݢ3"-'iE>+``$@@O 9guD _P "l{( =1pFp-z$E#]s=Wf𫰴ȍS\𹩸~S|?ao!.#2Jt*OԍiZXG"r,f$"Jc>>Qe͖b%dIEE_~2JJ:Z1m"G :6zBݐDI@ 'ɲ H16(;H +hD$0 pQ=Qh6r%$M2M"$Q̳nz$RNRHJ r-k56m܄Lb91fcius]Ŋ+N 芆Qƻ**w?A]yXXzv> C*a]&~ \O0^l7jN4XuNّqH+1+MWlgs9kru{>^Fǹ_oMo}MV~.6,\yK>GիyWgs3?";܁z|KO3hp}Ѩ l2f_˩`1 x&Z)Ka>O"l.(u(2K!^K.3=5EzqeB&;>avL|?xx~/DK&?>G=<‘\m/Hn Wx#9X|Tq3 k"=Ϣ_Ky / 0STToy ^>4j6K\84Ñer4]=NptMCs&~9O60O&_(Gw̱CG.D-"]SJ:2Յy܃%XvxgD`u(tu!a`J(@Dzqm; * !0?;Xhq>#Ui-d9 E("/ #$ID DV4$Iƶ-D1@UYA$֬'*DaH؁J:6;HXȲUXv$i#ky(BPѨ1=z`NOG( kz"!྾Nھ\ myE9?>MO5bf1Uw? K1g7 Kȧia$3idvq=cG3ZYDTAOƶ0?YIQ31z+E}(㵉|X6 *q r=]h+OYO@5 jWODTu:<"U=ZVuA|.Gm >|vPW.!BYaYOzn\ɞ% })pޭp3ͅ}+c&,f㌿|cN0ݗ%;Ȇ`2LIJ(wƚ<8˿/⪫wp̧d9?Q>/·m`u.anv_KHt=s >|ӛyup{n{ijԤQgKq-P';@XZo`M2$Ɍٞi̐\v.S9?GmnM17}DOgǹ /~R='dEy)n+3sJ/?rUU ]vfz>_s4uWE~v;2,cop榷=?.ˮ8{+Oa}2Ǧm)zPzk99$JQD&$PDv'\.FcaZfff] *me1+rYը5xbH8 8Q4[&+ BN۲6̎25Ek R-TD"ii6k: d!dnNDuIDb|~h1B%C( _h[mۊ)EQcT?1ȪI0SoOW!K)#%ZL!)A$7>KLH&qdI֐E1 ]׶ N?@PX f(V D1Hbqh* vD3t0@bre_QeFC]6u\{?vݢ>7gNmv|#'#s<7*ì;c Ol^M1Pi51]y~nzP)JDB˨FPԈ"t:z6* $P!M$UG8G䚈.EA MYiy>Or9[:k& t]V>ٲE5dڤ53%K8~Ycjj( 5Vo 0BvHSDyqrg9d9I²0BQ5ҩ j]CײL !YQd EAxVlΒ].'5l/mQĴ8@ Dm HJ&"a$ufaҩ6v%\"K =]90v( SQfgѨ|ۙ[ ?W~e7h̼r'lH۠>2οOn.ȑu"d\k < aygʤԿt];pfҟ٘ƨ{ *A5Q->fh7RC"CBA:QHB3Dr 1}x+fCv+(B C֦Jس,U][\f[W}?`fF+K=Ư< L  #qx[o]%,٩g0<~Ajck&|!@M,TPD9fGgWId eTzLJV .| e3~tv$Jj:e-ۤ{hjn*N3m܎CuvmR(*"If;б;HTaYz5ӣ(F*==E@Sn8. n56/  /BQ-x3q\dM7K2"B "{<\Y)V G" >,ZY!fբ0GO|Yv-mfU:_3uF^xYǧp,$NuI<Ś y -˴H51bKR%|EXJ۶ÈN#Qb#+^$ IV%HZC$QEU"ICR>Poz\$.8dEDAE!]BG4P#Y -j t /S (dtdىQt]F&(˴:6V L@JeF AH3hLDDf&EsH {X7z:;2|Y+z'rrV&rޘ-g2 ?kc?zszW?3- <1v@é<-]׿}~P=~7̯^+9x虗7 /,rULEW=iy }/~Lrp \z>9ȴy䧿}ۮٕ_a9ژtMyD,{G_\&45d2@*n GiPBti6ۻ~8 +K4xO0hG?KϳV*:#j ={);%MsGn癙|ַ9bDikA-/_=Z\/t)z֑qDA 3rD͵hUhB6·]DghLO!2}2IUw!+Xi"!k2z&M*ǏlNZX*Չ'[dQK#x*j#vǦpɣGX~Յ8i YF5*B%BD"(vڋ$H"8""&|B",ApCFO$ĆI }!!qlv(@6AVdZf3?av^7DJ"a 22h*{h`ä$ A+W0y$(v0ϣc6 mIS$n>q-t ވXaZ}9sފ>7 3bz?4?g^yCȔ{@06a$/tqX]޴h'y#}LuD:G_p˦|5<|/f^pĦc<ч(Xqiz2n`ٗ3o]wsÕムwM;/a9:og8mx/eA7.aܨwWN׸7eNG8zJ5@nmoC_~W)l}|k_.6ll'ٶW-_j?%gN:#s3򱻸I]+UMrd3s%sK{W}Z,CPh\|u^Y־ mS|?O|> 6oU﹙ V|yV ᑔ$BF%If _/I$NCÇq;W$oo}|ɳΎ|tRk<0O?Omxo}'`כKl9LdEkZܺR6cyny fVh_`/!H1R =93jIg *l2Yq->C[62b9~qhAGwF"Anfǵٶs}9xfP-p2ڰL:4z #Gkd)1?,1dV'3S #߬ИNjk" iitE׈'^ɶAHf$S)&tutϢetwP=\B} S|uoֵw5kM'~o~<ڀz{j5lC24@|<#rihi٨Ȃ(EQ$CςP& wH&oA+fq_r AHH*ų\!:섥YHRH(D%:JBTA$" 5TUF}' =,(H@l cd:Id@AuoX.P,h6,P׍t[W]md&8 HRH26$Iv.˿kϰa9zp23|L.*gpHP}H~gA"ڇ(XKYA(U Ukd+? i| ;9c'?K}lr:67^ői }<&h'L9{v_'2:7^y%/ɶwt Cp;9vb}mB}cS6M_dz gf<+<ڛ1J9w\{ͤLJYy/ґ rϳ|r? Jgp K'7RJcvj AM0TTxNvUo͢omlX2Cٶa+#|?SLrtCX 3Ԡ697S'2?(H7(VJ C҈ђ."B3hc4m),ʔJ%y p'gI(лe R mZG@ @{[;}!"I$H |Lih7 5[n`FJ[=%-}kF"Xe)LC4i˴P婕MMOGĕEK%4Jqɶdbdl\HkW܉g;Kl$O!vv]UFu4IACj U*s C܈t\!]KI#7Q'N ۥx*1MRR A}΢]cwSi_4/x_rZ_+ս\b$s|sE @|a|pUOk \Gfdl`gm=={C3ՉdAӷPɦ[)-.&mԚ6^(c6fH%uϱ14" >H>"x>a !qlhLӪ@4iNQT?lJqӧ&u]y1X%@T2j`p X\<.|JVr#*A:ޒ]@TD$EBV%dIҡOz˯y7ϜF:;)hH K $ȢQS#/B$ H,$Z5" rs0TPw(x^ D|׉@*B ] CjVǵ$H!^D2hXC&Jy~FNwG}N~pM4chNZK"$0b: ! ˟%/a(׵2l?3 7z9z?q,b,7ɕF s5\A8H:xvx*Ԃ"w }}7=ر}\~Ga5l߄vtn5`MqՍ"b-ު{铇Q"{8m['qMJG88˷v_|vL1IR"K>(9d rn6nR(q]5u` l>FZFsly_ʱEV+0u6{gk?6L-żt V0:;ˏ ]{3[/))TIY39Z ץ%K AX[ "zى $EZYPp,|V{;Xy[/S4Uۺ=vHP_cZ̠ QUYgPCBD)l:ڨM¦HS'wa) xC*>1!*ٖ6AimKQ1EҖ*\!Aw=GT'D" @]F ¨ ؖ&H(8Ie3dRi," V|Ym4-ZNJ(zDR(j؎hdY&)ݲa-|"Gȕ,Fw@\zjyqFD% $aʴn*@; GOc)  ʑEQdD!L<ы!Y' dBQm @tEA$6lTJ/=WC|]]4M%RmqD[31Ҧit-"Jd?ymOBʏjL9UjӘ-0]S~׊$4c\D>/TmC' lvி4%v\{ ?~ |m̏9/=4m\pӎةS@ N r a( %dL9oOa2 ]⁇d˻npCv?X-=,g-t?̿wiȐge _d+)YU'u$G 3Qj& _:}>q ^~5_J#_+磟[Z8c54g`aa4oZy7^7Kfͥ۩Js_FHVF-4^*rb(VS,ZFX} ]gfdiCkK+(..">չ.֭[G~@2fM PDl0mqR"XLVtQ (7$R Sg"i2?5b.OoO7Rm - "bZDiq0O2:2BsrPIT&'GpK:ͺK2!ݒej|fSo"3z !* !TF$hF P 1.d5ՆA%CND } oGWtoZLg\9hǦh_ 'ϼ$wRw :ؽ0~ wq׾F{ww~N.~)9Gn AY[ϝ`q2[fkУŸrOBLJe"+qTQ2HJ@Q@KK&鄲N(X:1MBtT$&Mhl8KGwMǦo*܄/Z U8INV.zшQTa4 F<\u|󍌍Pŵ{zq\t&jDIb@$QI Bi,V]Kst2Ynk֮bdlx"" !j\GR#љd3i4M#D^r-0{/2šjK:ߦA =$ƬW <l!>gMFh HVj6~*V.ݶ ?j4s$;~3̜>CijZ9؊$J2$S,`M\ER8~^|Sp%rl-ݜ?+co7>ZJ>`xH}vP_l(o!I#F:Ǝyzl*% 6\O| ]ogmC~Vir|o?J>Gk\*Ύ8#xil=,ϝoO;TX69_|Kd9n|*<1c䋳lasޱ>XҰ]|⾳}0'Np}L)R+V;r}L\y`itfI&FLAmkX,$;D (_2XBySy/o,YEDWxKxm8/e0c_Bީ1eΔ)mGZ76 Js %(j ߶q]x< :V%T<'F۬CR{D"A4M,!f:r©[ N$ Ҷ a೟?Ý7Ƣ63=3φAcg5MD /ѹblg'Q5}%EJBx,CaaJL57x] /[oh6$ ڻHRGJGΐ/Qd.y T֮N:rX 'g|z_~Ju.lҞi#ea|$3v ԫE֮YNkkoB$z.) 8CnrF"cZ4U|C Z,c7`;*A-̝>X!h*A/-`:儈膔&gRF\F@᪂# KEqАU A q F \ CR E"v(-#HѻDsDKC %, i:Ɂ>O_ ޺K6~r}|#dhY?xn\r~jN6/%1SO$xaopk8Žz7nsE~o3MMU;l1lE@7fw  !m-H+8@VPD~0W/ P1|Pid ϥIzmplJe۬۸> Y.2VÐrBWwdYTUw J I pKMnԢb 8=:ʡtd*KcF"Qj%dE!N>":~H%q)g4JHETId8f,mcuvj$id]nՙ4zABj2CT&vI7peFFibXk񘜚DO{O.eG8[#pNne#_)J$s[6vcTM$YZFet] ¡]9bPd$YY"@'#,Fi",$oA1P`. 1,!I* ͺűG9ʋE><أ\|ջټa5xuڻdΎMxf p|x5Cߪ 9: ڌg<;{y)MTRNYW*,<W /L8y`/WO2Gxƿ?ЖOwp fx+{O<]8_"ml9rs(H2c0 RX:AӦ/,d,@1 3'6ȒBLF$RU!H;.il)#[nF@U4HtKdX$L4XMixcіDk*NG^B.j"SKEYʏ"(l@ۊ=|_Y \vXrNqA)dE E˶cfmv> |ow1ZsnQn&fdY+?s%־<96LR[}%#vF\jmV\X*KPkZkMTR&WX/ĐQaTy$#U2$с#TjMtDVP9E.XJ C¯V oViJbGLZ+gx}鬀5^4m$Yb)<~DX*yX+:ڳɮFIix. S3T&8SǩuX`*(IE"jdiZ&Tb E7Hj*D0 H6}IDUѐ.5| zIcM*hh]ރ  黸xg*$;!,7?JrM6\6 Dq\ry*}}{:;JBЕI"[cGۋ$@lw!š$1EPbrBɧ4[BUBGTbF MLPIRsb@FmѦG&eTuZI,$TI"бj C(7 ؕY!tfmI誄HDHECO2(ckH B waL:Iap-w9eQbnf>sFϝmٳg9o$Ya/k p<ˠIa|VlJh>céduuuj͆I qZVnFvlooaeOF;]j-\t\Oq+Σ׾מev3d>{3gqDd %$w׊% G5C"s̤y#Ç_ y~.~?.pnxj晹x<8]1{3/<*=x'!O?XU_ϫJz>oH۳G_Vpyc|ߓ#p];V1Gk ( 0b;]_~׼{[5xwto{3B(HVH7wY Ep=WzN`bxaz{iiMW-#e*9-v4 j:I }2cišKh$\9CC=jKm#W,p]dElXTJUҙ "( O0gpʠd|"H- \ƒD=}ȱ$ĭT0G1uҶafx*$*X"(jh8V[ x"4%,\|&iA ĵ0%nZGTHRly$] oRŵ$A&#Ь7 (2x.>AuI.=APP EH Kba M|'EP%%B% ΖQW/aX&F֭_E& WR\RD:M*-n޴>~㧘|Dى,VmLj^\ezbL 28orAC2.a."(-r:dw*n`x4f`2},jW VTSw!De|u\:*nD@Pj0A( a%ZH3BY!'4=BD#(@""G\,=D`{43%[ ?47bO5ye?fo fS IO T]ؑA U@\*`z>루*y5u-$+-?{/xWzE7GV;xn&gRxI6޽s1L3*L$0@ |QhqFՅ15ugōWr;?rO7r*5Yaaï" t|}8qw]yp7ח0{8|jN{Rh֏,?9v;y|'v=*cWj dTԻ;x38q4+i.<3mZ*ucgq)4Zԏ0!`Xu,ĨqI4M\ \oiIYA%lۦR,- `[6?o~+br<˿̩|yy+4글&~~h/Ű $6džG&˂1ʼn_u>g50p6 Iy=mxxi\_cÖkpb% X *WŸ1t5ov]T5Wmg gc177ETBtdExkHDO--1??m[sYUAIYTK Ms $l Lץj d =EB@ E|E[BPi)Iu46 -ɈDAd!l­ *$dd2844J& &J Uɡw5#+'<;4YA'hH#2u&HSulNwoi;R)j2o?8$ z$ *Uz@WaJ%eW;v~:zzJ^@ki@b~xo1'tM}d-H" At 4#b]bDruL#z^%CBݥjU2ܧx{^cn,oq;=H] ƧYaXWLgp jB9_X\dJ&97Ú^Ć$FTO 1`+Gxǿdy:șWOg>Ic͕6A:EXO+BG#31' Ý>Μn8mLPTI $MZoI Ra&O+"'s՜r57y77oeF<>s{˺[X |nx>JlL#)7C9ɫEĺ⋿xn8tx?ˮ̚?y ^~˨nꠔ3340Q!bݦ+94vGq֬HXC*ϕgZnM"jGjYcY6&Y?~carj"D~X TdXh[nd oU $vl窍sVb̓=\z:3#Vc$)$Qs}4U¥GHd2̑c|uN:-Atw=ϦkX9Im[sc|DG #\wZtv~wE7]ׇxРI\bP[-dٵ ó$zЂ8  IXcf,<],_rbY.)Tbx\G#{cvqϵLdžzB<GDjuֶnΝH.Wm 4U$Cd-(x`W;i.i! Q!A'+ -5G+QZ (\GVO@Jk˸U)2 "UZ\M VR:D3~6%E!Kt$=N1GQ SΗ#raK$YF #PLQK""Bn]y\9Bqv.9@i%Bx!Bc\w)\ŵ!*bX ,KF%v=P]E$D%TgAW9woS% ŲΣ?Fhp-7157˹QTV X5(4 Ubzf!U!ih :XgœO0+Yv&ԆƐ _CT"N617esp+H\gF8Cg,#:JExdfHeCgP&5rU!7+L͏}-[e-=VCVjg?I_<Ɠ 7E:~ozq2ȯo&OrɝZ*Vևq~cWbd5uwE_g, Q-Ds~ݿ _CGaZmgN.߿3j&twqMkxm4?+ã$ذi%šӴpI>?`8dO@ni|nr W5uF6u, LjRq*$2\u MMMr9I?p*u]\MwmzuEs<MH" #HR  K5o4!bEM990J%Ir 7ۿiՃoϿ9yo|{lVVn^Ń]_NWF۳8SbO©a 06:ɏ(m8u byզj|=O1rX|eѪDIZ5tS0虝S;b6& 4m'J, (8ZV ?n*ڠ4^3"a$F1z="؎C$  YF&G l (^AA'$RbS ޱsg)b/}I[qoX%Scn 95H_>WBҭ5<az9VcF=S̼<;R[ngilo{%ϢJXmz P,V i=N:1©(Q03vX~9R,ihgW` R*6Sc1, ij5j\4߰'If U!dߙyu2\`셃P |}Yl =;jA.^A(#S%>%w@Ffp L;5^8ZRo !%sW>\W` SqX7w3qr7&{3ϱpy,Uˮ!o+p~3?dHɮΰx+^ũزi#}twuDKw7_1@g?$rr*9JfOlȮU֒tC a-e*z!("ܹ1Os0o>nx~_r'8;-+瓟4/|Qccߝ`Ex re 0$u{*CGygXӺ^9u︝ܗO|S^Z*r͕WR[DWQ[·it ǿWp!e#{oaŪ9q7Ć?_XYjCGOE*ܱWtPRebrLP};qÐ8 nlA,:z/Znz8 JDî $0-X"Aww7͘Een5>)/TAIuD)yUEؑ46|Voby[ZM(Ó|?FHxuk[$9Bq=27Dqkd2ct'DN~S@.g>$fz)&ϝ)T]NSe!Y C?ok-=Es-g-aBsgS*UH2vkqm$ \REcnW E$EI($r d"M\*, E]qurs3 3Ab*jCx*C2( =EK :=ϏRe EU/%|Q.xB!.CQ!@ȊL(8g9~ʁGZXj{Uϕb:YTEs#E0Ӵc1TEBǗpQs.B(m҈{(\J6B" ?B047vK2v`{bid /eQT.(S^A@R5$5N JVOu]%:a(bƒHEAmDᲒٳ g'c)*)䦧۶~iR-y$B,uIAAV0:Pef$L5ZⲆvΝ8mL3,V]d)b't:A`zq˵4iNÊ.r~?~}vӳGwU^a}T(희VVıIҨt q7tҝiV%fb+W22|>,Nh% #Ƚpm֤?H3l||׻&BL^52._צF83t!J 5LmC7-׬ca2 :11W1g#{|S>LSSY9;r9S #8ϖ&aA"=2{qO}{ZY<{eڄKP1L-rIMN=i*E9NA$E”$Q{^-KOK">砧4v"K@\E,/b0@X%#P8We,y9jeZ]EBQ5Bë$UTq^XI=e8$iAF #bexjti7E@GC|/zyAD|袋& 3xGcqauUT4qJλoa[nu1(M)*uLקX)ST L 1Q E0%T 9z$1՘TB4ojG>9O2 6uQ, HKPQ#i}|ϖڜؾ2EP5y{9  Bnrz~mɃGyg9q,89ţ?|vQ0Ξee}EbJݬzG<,eipӦ~|_G;|cݷmZKPZ JAg_/<\T5ݝ$ZTTDJ7!(jw\aGf"8.F:W,E5MIBּ6όgHuׇ)KyU8 S,ӬOQu ۳ABq==W$X(cɞª1Hv.N(N\0jXHrt.FH KVpIHhVe%.K  ,X>Ql{JՅJPfhGQU4]AK;_Y߼dQA/YmzN Ojgi.KrQ 9R ܲgx;d[_R ɓX+|Bd0xnA:T.Da2D,ZhqL$HśV*tӬzbds$[[IAT&3A~ ~w3#mJcyF8SfnDR=l\}Z6K2" 7C!\JOuTXk7NQTIv'1+!ZqϧZbh( 8 FʼntATѴŋ³TUA,x^Hݨ96.!!2碪 a8R\ē10A,ij trpt 9xX(4BC kaA  dϳ1èW\}1[MTsY*ȞH G06Kc2EQЗ BPdQA I.(zx[lDKUaEv 3@(MC5 "_ǟk|[[8R2l+Gm '~]Wc|OM3ís;ٳWO"|HdmTcV]~O_?{;+~-_8p![U xa4u5cxhY4Fz ۰HS^"EَmS-ȊBScFԶh Z8F}v3c0S&,=w$q)x|5H5tLryc9'ۚ8̩3{vIK:N{GGt1n~ٲE=orM硽Y -Tѷ<ɱ&3h&Mæ[v5#u&?o=W_j.8a)Ԗf‸O2m|0==s/?Oʹ$M7a*ӣ|?`sjSsm7`) 9Iw}FetjH3ټ*gfW]ͮn`ÖuLOMsv~ǝ s(F)ZQ64ꢂ, ۃ@B:Z'Rܱ[}'"x3ED^B*USnRk"pG gcv4:5K ,l*Hд;=x'K3D@0]ij(Ȳx-\if fd%2\< JWIe[QZID_ɇ|5R"b Q"*:U@-@ՐV-‘kQvs|"VU{P~rkG`ݾXh,2y bt2 㳌 &@J$rfCP e i{." qK4$qr&QT%Uh6jD*DqH^868-$&?@tuq ٰy3#KÈ^LцDi1m{G.M …/ }YO !=}-(! 1 mMҝi")љoSTTz W/# ;,/,P[^$ "I2F1f B`&x$IζMa IX2 /2ѣ(BJYزkݽ\|(2iiF4^OΚ.^ZehvfNn5뮹udLW_7,(*2ky y6BܭП1 TRMA<3˒GΜ!}P`&NY6h;Q"gzY(mw79Ã3I.Q451]]=~;Q m~u*| g#ѷu'8oȆy#8HM~b歜y\NoK|{9:C[ة16IM60KR;w)m^[5Zme69HAPM=g.W)$@V#FYRXZX(%bHҌ(Hxe ;:>a"#P5rIJӋ~)Niv~ܴu'_6 7Zn2aLء4RR ,t:W*Q] K#6뮧 h"o!k E#GA5(db,M:M6 Hq)T QRS(#01u2\Nmov:XAmvtUh7xv ^̮.PYUaU%Kxn܉xv@PdhT < rez%$Q&B&LAtUCJ#b?-qg̨.#Hj&CBC* HِM/F7 BgXl 5(BUO!#DT%OGEMOOj5C342#p |W$ZHbݥnZU=8nOW6֗ӕ%KE_PC8=J1g"D.n&aah )i ~!>"2q*ٖuJWQX؅hI@$NcRDY"d0YiLQY;L:O}v wiJ!G{z6݈ -M;o`!^ƩyrJqI쀙 h@hh< L GϳV[gY.h?C7>|L~oc*(cK,a;Gۛy\ EZ,2^) Vo۶º̉@Zj0AVA ʒ%̜)P< heBrZoaɗ9VcO&#FC'Jz65Aw?ZF92|=T!%KʛO$k=¼ij_'~w_Džf?|ۻQ#jng`M?nI~?ĹitHnΚ3gx;QQt!Gm>BO|]8ٴ*܍'>ɹ72w"_?D|S†-׿3@-x7C}Nh]=6/`Wk\xXEX*hvW`*N>c*iMnY-XhJ#LӤ|>uKL}Y^'Ý7|fO_~~a^ۏ fjf+oe&ڵ /nf"r_Aah7m%-щ#SSCsZk`b#AVu0q\j,;KK(rCdQCzT4,@2o(dؒ( Q) #%*+WLI+vRCIE[J i^|lsVn{+*ɗ#_ꗩ^{L>Y%24GyO!%NJvh;Mff.Q/Pg r&.aavE"n{" )Q*PYk0;M\D4\Dz(ip/Ӻ `%%k-Fw4eڡ)DؚDx~U,+!2-2gX u%&S:NDWW͖M7"`AZ,! %ZMdwI$`尸"D1B"#M4"RXBPe:&-?)v(/ڲn}kY8;:i9 aff즍na$ TAI6%$MamY| zҘjJώP=Nߙ#fp?< of )S^bϮlBT>y#uC|Fb?sG:G>W>[=p;4}jGP RQh#8;N-ч7¥]O!8Ep<%$d(MľM[ X>~|;']΋G'fp@kGYh5Yh {xWƛQ6?X{Wx_?w ~8~}'Cl~v~RX_2/տr/k6z kO>gcxz5j:KSs|C_XxlVms hY8"ܶ 6AQ {8&CAR/3ȝwΖvz?ދx™xg8c`:4&cM7,.zo`"J]x,A#r$h'ϰqÆm[x䖷qg͆ofzC$)РޞcK6 ܳ {j<[nYzRO/2pٗ/sKjԡƭ**R 4QOD0VC×M\ETȹ&IA%AR $$MdEE3L!%]%i,IKp88K2 b*!&,1yMbYQ 707?`曯{eۜ=wn?~>!~/r+%%OkFvEz+HbJ,vcoa1?5RER4UBVC( $IBH+ rD%HIĞrE'B>o*ͺDCvHg :qQ-PTԖ[D\,S!TŷTiu\%$!I2b$ ry4U%B8Au$dMVc6P5!i5 YCNf5H@K%[m^{e^yY*v&fgQ q( eHdYFx$ K$"eiQxq' 1ix$0 )vĢϺ ɗ{zMP[L~|)~pϚ-^3ðj̷3/.2 }iz# t$B/@-P%jKYMka6zĶ[/U$KxgO{̮ Zޠ~Z4'*tx m" <;+ hC97rٗ;2K%*9 <_{eFx7yh{K>3˦kw"%!92o ]wn;vqӘ*P4sDL# ~ꯨV$(LL>A d'gizf$銏$F5 J"HA@q>lBt4!壏~z|ϞkЍK&KK瘯*<7Rcd.Mh" K~}"@Yw܍nX,/5p;"4E€8! R#GFHXa*$ai3j, &>rQ j& YQ:6YVk_N!J7Z[{|*3Kഃ4#ki,2XC, (97XZ݅U[n@^ŝ#E##B/cAG|+ fY mcہ8Uopy]5]³/c&.$q(9\>"4*("H"+q$`:Q -n|;pB0:;<_d91xfVp |?=]]tZ=EDQ0 rny(f|٧! pC\OwZ4tb(J'NIw88̹P{y#I`tx5jڲυKUj3gǘZtP~S.8=Ì?hܲ^7ec_=C$,$NFް8 =YBm#$>9+ l-(!HD\2n.]|0U0R,GaFIH,cGYMJ, a&G"mţ [{}%/axEfȧ" y(_ z6n3#Y,^|wl=81z+Ts# [zRFId߯8I5C+d "DQB` R(n"+2wJ*d#Аsi&~R4-je,Efw1 q?]CβkP㲁RH+8UV82,g["+WWD)kXT b(GZGST ]ڝQѨMM# j!'!G cYe$ \Ѓ$"#8ALDV$\׽", \3Gc0AuA:Y4BAUױUVΨX?_ \#~p0՚$*-$J)C3rtI51@ѱ]`q4 =uUR]3>FzW|ha)R%N,+/d0Iq! D A"b|!hwuo[ C5M4E'ctd(Mmfui >4ä69MGݹ03=CҪϻ?yyo_9s/W}|?t4޾׍>P9_c۷<ȗ~r+&y_}'>k<-[=&_g^zM&J:z2a 6ͷ݆BGqt3˻܅4)7y'[`AYzr?ٳ?³9!|u[˿gqr_:I7m7Fpڴ:֯bÆ>%kl`;3B*iU ]e/^d뵛YwGx1FW]"-ؿ-_$<{;t'*:ͳ'I8~`sb9uT䷱9ڊEV6)u?1Pؔj=ƎGmt'đ2=Xd(<ΞtPwh"S'dkɓtk},D!f`F_Ag.@TeieBkp$ Yy6]ٔ$JV@#"Q#ٹ[I6]E]?dVղ/;Y'Ouq=ĜIa6L+OZsq,[]T=$z]BÈ$QRI'pWPNDӘ(@SB%ꠥ'5|ط3z*D*bX=HyGX5U놸]w(p0 {in*P\ضg'Ab֭lذfIDlٲ -nӶYj$]7%U1\i:.7b9S\GA>Ѧ n֬^COw/8_\b߾s} koS0"ib˔vHEN$ t I7Hi۸viaF#IJiYcDwHGנ Ȧٸ/ 9N?FN/;N䶨-  CPqiO>$3ǎ~v({&+(L]IҔX ѭ2;u{n:D9"Dkyu3;wcvveV8m;D~@BnXH(FΚFsOKSrz%T=[XV ("E-0 $;2ah&3x+Ŀ|yzl3,M7Ҍi~_vM usɓ_W?@ĖIʨEW !4EWsn`ZR:KB&8vǦѬ. 4EFȂА Yg4EJ9+:bL vn(p(sc0rnenTv/PPt\Xs;NčcADW|LyJ%|ϧn##ۄ$a(r Db"R(+m3g!*`t(aw=W6a඗tj$˴urR1"pĔ@bO|F8~ BZ H4CFDÀm70R5$E2ܬ[} 2&J4󎭄bV*I(IȐMS1MMqmB/@HBǧSk" Yn^9(q]|'\AW2BrYzde"g F$%L|D4#ImG$AHR8Fc(EUT LKKn]UÄ$LD({ HUY <$ ,tΕ#IV2yt ||? L$?Zct,/܎MgyfznkSXLA$daH0ij2Rq`IS0rfޠ2"!k*ס=7O$r,N1?;C b6rBzDqhAXv:O*fybdY4 dE$"Arq̑7߀A$KcT74u[n$ii<]AzAyt i-)&X\B5JV>~f? 87;&?w?@wG_#4^;х3˼kfyz;>^C̹%&ΎQ+z5U^.6슋 G''png^D,ExU;7,z^}9?qr ϔ*o~=R{)ꓳX]}Mk_JW[ڷA(D U|lSwZ^kamg+<| paj #J\Ŷ \eHC:ܸg=My.M˯3X^%C!\}(Dk;Y&u Eq︆N^y`@ p bȑY:Og]b O0.//pmZ6AQ;6_ [o[sbps/U/xs?~w~!~Th1ܾ-n9YQJeQĕIgP@QY!(JOe~IH,YW $3 H$3Q&Y&gF&D?p7yo"}=^InBJ#y;Tq oDȅ sc͈ޛ*fJ}~"q"ӱ=VMSQ ?2bjʁ#KPow4s鴛aWҐ$tIkz C;ajZU?8P0e$1836jO]rq6$&yf&'-GgرK_ak.G'`Jde6c3>6eشy2a2v4aZ94 2ifEͰe $]y( ma;m8K|ndAfa N#gY=ȚԫXDW(*MR|" ǖ&aH+ 4W|YKd87QD4"N|tSÿz N&u\'GH/vh1w`3wi/~s"GU+V躝9T)uҾ`#[V],L^W?0]L,QϠ l,JDqP%%+%'J$:I#LMKFYP$ E1ȕU 7_iB!MHRỴ*"p,NOƙڂs=Cgb 7UW_+/Gt6g0}qM .\!%CdUG &cZn#2"9H"R6nYU,|2WJE:BEQZ<$IPePϼ(!bj`sD:mI@?NHUR( %:=j, T:.I P%r}DG*L,&Jxnmwv躁z2,ĊJwvMs NVUU|nш l(x"eq:$["]h^\9^ ~(;˒` M,o;~{8y_~LݝEݒ,ɲd˶,q$8zB1^%ْeծN3qFy}xu $|HJa»_$( q;GS8DqNOBOi6 ifIFbšFE3cۄqʋ~i2i躎e%ÈÈ;$ VSϱ$M9:Vuq{ocpM\#gOuԛqs\rt_YwFt;%(b^AORD>/ĖӪ#1zDBfm1#x-~6׮kcXChrMW14pTȢ׆?SFT$<;Kt iI2ح&#+2T1~$ve[F:;LצM3'JBCH#-4):Cl l|vnoҨ371Nҝx*$~*tx>B:㳓>N8T|{C{%^0v2^9=6J~ѰDO{{IP՘+}~C8&t0_qqVtX:`z׿,sl۾7)|K_]3/},p>j0x>|ukӮ(@,n1ʙi96FPƪ މ_HUz9w[ bz: 2P{?dar9|nbɪ D|޺KY]/γeV._郇Iwʖm+W?\su[Yf<\U[oD*m DyQϐ6dFCaYB5,*:.b(ctIedR1;z)SevfzvQw3%Ýt/[O gO4Β IDAT =qe|};ȁcyaCI G9:(Q8n gU1(#i:n"k:&N$QL=QL!0FEi$IĄzXvwБ{/ۺ9H)L]ɩqff& 87r)2 ~1=?E;Gkx^d+w 1:C6# ]2!ʴjAx6Q &tj6R6 DxADdMA҈QU#՞c㖭=:ܟs2J'qvv eR+{6mz};0,a5ۨ0~rZO:,DVnv- $z6,eHץ|Cm$fI<3<_HL.,=HN8wf:Eu6v{Ɇ6qjx Xd 0He2RtMK6JqLXV% ߷H rDefd\ E\\㢫#s>Ɉg~F2MIբXJ˲$% ESdpҔΕװo9}QͽY')-0wvS^<=;Ԣ2KF Tr \4]K8L@D˶14 jI1LESQT%ҲB7Tf(U(v#1 K"iӠR^@Tv USfEyF&k9ڭyf/x90ѩ&lwz BҳDc& 8X6JNJAqm'Da`"f*dUڰ䡲e5i6UG0 o*]^~E{}xx:Z*moYLr =jH-s)7'>uX\Bwgg0s' !> CX`u,~!K2n{u)ÉCUBGE!  w}0 eQq]Up- U =h86r T/Ui"XCGq*K1sL:ާ,vtt Y.F9g횥qQ9aDjbGvEX-Et(_Et ^K^Kr8~LK~0D 7A0!}Qrz>-n6I&aa`)0ƲZȒK"$9jAA"$fEDb8I^CFqL8H.'"  ? $HQBEa1nHz%JucddӠ>{E׈US( c0T\LFEAz4QUfAI\F$<QP8lQJѲ*ld#NQm?NX@"=͆Mirb.u-+/m=U+WU@I3)m[ QS$Ӣڨz.^QVYzoG~]LRɧ:s٢ 5WG1T`D_[තWg>;OrDZ' i߳7޺5KtA<]\k7 m ^x-\TC?c58pkWaY:of 5$0ղ]}Iv:ѳM/M^f_{)mUB@ }6N"/sN2{%CͷI , lA%T=EE5uN "BIObA" (yIz2ؐ,Gs/u=KAY|9RۊKLUl ( 3MN"S[T WFRT2j5@L{dUqANb%z%(|O?3‰I)^Hsd#vI;϶˷%ՔBL^PBD$\Y4,vOfffgvHRHb2kHXJA)dU |LMGZ5d EU/ (h)4"A%Rrq5 uDU% ĪU^uYCLZn#p;'Wpqgߋ|D34c90MYCdDvWvybMDp?8l%bT]#AO G D1!bZ56pUeoڐ@eжUT:WܾYvoߩL4knUv-&.L":#q{>(qB$)vf}AW($#"?)۫Ba"8t 4@@Bґ2&*&JF.6q<(fBbB!& H]KDIBRbbcE (Dd! OIi*sKSwĄa 3!".&(!FtD~߽b71;+t޺a;S}&k{p_0X,kk~a>Eͷza^}+ģoۯHg=q6._ŪgM2Ј{?ˉ'U9Qy/7-w|ƀH@)v,c4?ՃxǹٶRx=|߿sh.m^ӳz8$'8oڱ _?/3?QcLՖe0>^c|Ic֭ZM1q7m#o/ЩnjL`QA|_]t`>Ej5+Ӽ/a??e9< ٹ>Ym\}q en(zZa~ǸYjc6F}2+h@J#g*T??I5 I@T!wQ@+A#$b!&端}/B}ŤE╏<;0@_OŎ"RuZ &1?3M{bO/ SGk+My9J'L7\}%켍&o|~O>dbL3]44U* t A͐J ]hYU2Uj MCWfpZU\yȒD$ (zx*A !k)D-HcUC.\_bŖuz4'+dF\Goᥣ/~ͯ ?|j >(Q.i5-*Ie0SY\E0ZCN MbuUT_/qvet@dʵ } USh,j*a՚}o,1*cfMڻ L'eXsyʳsD]# Hb%@ t Aw  2H) Be*^dΧI>OT*siRfپdIGpdȹ<#Qzg '#Vfnn$/2o:,FMiY͌ro5_?qZ~_}:b9ʱMF R9}϶D)aeK1!Ŏd3`C`5l&"tDt Y48s()v1Q)!h)TEQTks&16|kf@o_q9Z"GV͑cx~ʑ21r3cb;9>g45BCL rm2""n"211CO VLp=yP@VDzDQ$DCbDat@DAB(FUuB-L@D(b;f-E̥,Huh,A[o7>iP&FGx`#8Il% "/1''$!+JY<_^Š,2+HK1i"1/ ʕ зRTň(I0LnD!"$'t]K^"F!"hz0ZL #yȵm]1Mq1"1A DGi+199óOߔ}൝G[ÁM& 7|x#QsE]Cس%|]K<"$0BT4THP7mt$Q  !x>JaH2ASnT)S[>yt"b2qlh8iLN":.a!,c{F03u+8N@HQo&ɵwunOߢa z.%]VUR4s <<:BMGn.P!~U">q&>ĥ;|Yp06]Ba.2Tҵ$犡UM7p|ȋ%[7]ʕoMR\K_=҃,9nP/5.pݕ+9ɰY2:5|FcY'76ӍU_~v?Ae9ғ: $::ih!Q@ƔBaw%d%~QDQa2HD(D,CZZ 1RtH?q%-:SY.?\3HlZVDU\0E )<+2쓴`DQ`޾m3ݚ^ׯֿ˓0DL:@Y'r;pP1tT+3n(eQBjyt6K 9PiˤhM㢓(;-) nNF NFRF m{xcn[owbҵO x=\]6vfZ %Хa\Ty٤k`VfUWlj5i H'Hhy-DIDQd$Q@" BףOqoc\fZGL!Jh^L3 a&fKDDdIQ.^B$+!rU-:2.F>VEL:ݎ˘ f=!ʬZ3=7PIpbb;d_2T\KDY,*N #yk@>n:HHi{>ՅNsgwW`px/ۿ{NY3ubd}rqM ~NٹQ\!xRM|/"@F!0D)#"CZ(#Lc..jl BJ:rJ{KV-gHk:8®5XO>>6_$o?!_{ mj'1i>v@ 5;P9u$VFi"XFq} t 1ӘL٧ک1^>Md98:RJ%pl* ˖u$!bhRKm"*sy)$C:-koccHt0~">bZL,ҵlNwJ&r M+v09D9gy3wVIbS@ $n!y3t,CYI ubǩgo8zy|wd͛ۋb9i=[L_yqR]a3\1dO?$WgOSY *:K'OwEIc|/P%ETJQG^RdY-\=9eH:9| 人PWxVդ>5l ;.&""ЦUmOgPAHR!!DZv UQZ6Q0 ~ IDATu@B0(YHHؒ囜9ac[:{hMF5RDDG)#" JϏv(!ڰmUSAhVkض;5NCUeTE#E$T@!\a+ǎg Vn\ʹ]'DB౹})/@fYq3L@;u̮< *vI&jD:8aa{E"UjM]k4U"!2nK2'B"Yr"nUL7GTZ% QGCjv?qE6%W6K#t.g8f`%<7)k\3T ,k{,,2O<Ve1/̌DOSy/e\*4r_Nqht>mLZ,{Jٳ-֐g"~qbCW}/#u9=sOp{?~5i5[HJx|,ESve\+YC9BJ]'B.E;4d!""&!i A b>]"!!" M|ڋ]4*]=W4?I!~BZv{ ]LLNifrCb@4&gύr0-O%Hj!Ki.]7݀K3::A:XV QUQ@R19:;4ChDKXC&bTFOZQS O`,v"-/j&!(y58 Jn0nY߿gv~ קkX_9s(f,`e8pzoMɘEJHNOi"Z0LxYQ7 D"MWQ^%!aCiluWT&Xvr j]"c?7293MñZ>==$J6! Չ1Twr(@VMRԫ{?9z &MB/l06]&s \wtvv319G{?\B $h$)-gUS(-#d5Iӳ#_) BCWTbgnjo!:!" bdÐ}{s<(:6]ȚI>I_\Iec#3,,D;{\QU&ӳ4[<$/]G7zB"\!x9Zyux]waML1PqĐsDT (qDqEXCD+I;"mJ I1s 2v**vFVU2;vA]oaw./-e6r5v ￙ʉ=8͕K?JGIwM+~֣xi!dU,n`fay gbz6mjaL}4d璭~;06 d.Ύ` LzgIk+8|(B,g2[b|/Ջ)DlW /k;v/~aV>?5Ns(.#9g82s3Q|ic;j7|mܳN~}d7|~rՃt}h]}n2iZ0ˬ|Cfknϲ$e0;ie 9/~33}޿gEbcr%Oc5|얛j=w˯ځT8i\.>v{Yw|u7:%f7eߏB4P5VajzC>ロ:G*~''yp ,XAճlܵ^y7^]̶5,(SK1Ss& lf1uхAf ֐CQ$ 5_U$$D@ @W5K:Z*j&WkPHeI3lx)Y o݌C jMmE(&_,`d \I@}frO=.g~DT+ĩضCauP4j" SA$C8O*cPH /YF T5$IЅ' Ă >o#5DID4l/$24F~Oad {6t_x^5.2;>|brSAZjh40sl4M0eD1Hl΢cHNbDEQb\O7w?} "t]f'' bjlGBUAE̱,+bb  I&H<7 l(1!hOj6DQDHHmlY<{/̣<;Ł3kyiNNΒ/v -סZ󳳴;WkPW"Pnwsse܅904DY QȤ3 tB*Gf5 |wmqYVi2:De=;snJWK%ۘnl"! d$L@7[-[f{9^vyf̋s^%iIK_~s'H2@(MADdD| 0(.P"rKƶ\$Q!>Պ: 5!JI@um|lj[2O=+&Ƨlp:SYA QVcȪc[xwٯ\fzGsTG(7&2ǞWտva`iJ]"tJZ貄"GM0Z' AJ$Q 3X2J.#|M,FJ&B *u^ʭ+M#BzC|Dҙ&Q0GL_7B1?58J_?[N]sjbM̍wg7}l۵ *'ƩGuLMN1KX\!܂J6ZYWG?J[O㳳KukA6<§s 퉀퀅z| ص܋FAq4 <XɅ ضU02I@VB|w $Av wUuE&2 YDlCޅcȲD*@WU%V$L!"ӓ㈾ݨ%Μ~u+tea7X~z"x@\"X~N#ZCBt&4d2Imn$S@ ,{>Dks Pn H*|1$KZbYK#7ը8Nx4*c,, lYď:/Ƣ Q=C%?$m]} %AkM*4*K"C#3$PQ%. jDžx21?7,EDx"}DhEDxJ+8~h W *' D֮+wη8\>ԓžj#z(v4751;5E9'Z ڛZ<R:(aD|`;ncHRqm+D;!1m08Bnv "L L HRniD)(=hYV\~+" baX^8E$QMu3,KDXJ|d 4$m"-"琼f'-j;B]g/ Քb8;BX}D5rK4ې%$DţRq({0Ut]u]F\-<YEqBYTQ }$Qdi), Ԫ%G6rt.  K!- \otNTej U@FAhx !ʡҶd)Ie A/1-iJ0"nTѬrՕ|\j=LCQZI2,Q qRm_v<\ mی^$7:I$ٰ4Xͮobq4ϣ9b*z}SXZ57Pp 2Cc.|VZ-[HqIĖ4%aZWӶ:Ρ//|ӿzQg%/RӴM,.-оg- Q]W6#7'*QN8˅I:WjF> Yr_8 _;Dd >3}߾5V ~S8Ę)R@Scњi/b7L5j&-:&RD_@"a^D)6DPU qruM$Nž"Z8X.|bxFT2E15,c~~bײIS F@J4[)!$Hmxlô|^dUEDjH2ԋ/'ȸ+DEԈFTDSKg}Tp|!pk$ZZ Dz$E׳׫PYķmFS5EŶ-TEa]e oP ym ;*$xaݮLc͏)^E(Uʅ<9 YBjmbpVȪGp<YPT"MAQPelZ>,YҙVbuc +(",e'I˝$1$QΗx$9 * (UCŶȢΫG_E6[Q|b~ CW}^.,3| R%{nrrahCi]A6W`no9wo<3+AӠ9~޾ v\3hXg'a&ScU|m]~ _og~k&8> J#]|{#OÿC/#Sbs Wg+|UbCX\F0z[vloFư.g;9"J"Aq Ob&14RKt r󮷳krĶ:7ݰk 3xQutޞ6Z)cnjW@K5|)Jݑy*-+(5"(SDA&TıTUöl\#%PLRYяcP(Si$#+a>ыjZd M} 3ڂiBL*RϠe&//vm_"Ԫ3[5*tD0AU!XVr5Mfd]CҲWtUAU5\/y%PDYQ%T\vtbI 橎ejl_a@5}ڂ-"2"S^f5xhanS IDATʲ pqd7% Qe`Z&$.cET"Q*u.^"H የD#1U|YIIo_bI x*٠ZS10LXB:Z5y6H"B2dx"CTLΪիF2qmzqYXu q,hX(ۉ[[ii&=zL4p]FA8 ?`wվ443;51$UF?u\:X%tIFd$D4IFA'\AA%45$'~z6Npz" B%ek(ep"#(:kO*b- i*r,lY I8n2qwfEO,ax[ !Dhd|f5BLWAp2z_+MVQPz1Ο! ̢<" KKFˡeiI]<b*; E7@lE^/'UoӶfDzG+n'7@_ 0}Qr  k^@5` w!1Qe.[⎫o_?E^${.vY4/_?0WHql } >Ɗ-j*u ۳ w-l_Sq_Ժ lyul_[| })ϼD͌8ˁA'ΞpϪ}yG?ϱi6J傤2gcuB>"xF(O?LkUSgX&w>J`{?={Ao?O)c]^t( ,_v9rE_vK|3H.rU?w.4+7`W Sct#agL HhH|y&$DQa0LӨ.ACedIA|_gB xJx$)k&OI%b5k՛wQ7Hf2 ]"rprL6H"!^R(LMiQ@frr(찈h|>OTDY% +QM!|f9YDTb$H&U+Tr9"8d۰Qhx;/JmYNxHϱC(!ad Q@C|)8ײGך>U ;yK PcQ4Mô,t]ȍ4 "(y.gQw,$]́>Pdę˝!MJiE6oLWO$0tvۍeh|&Ak]riv͟mOLHD4n+ג@è38~HH2S)18C`$gN,dt|Hi48Uj+0q<6^Q=B8䐈,ḄdPjHe`Y(2 ~@q 5zXc!,< |쪏Og7u/ꥣ)#gM۶ ~lFd، 䗲TjedI³\,#SDA AHoql5k:t/Pu鹸4)V-I]2˲CA¨z>e-:A"p QVD HUA$lqŸ4Q sAUQ(>&j"gϜѳJϮҜLЕHеz U=ub|UR'.EFQT*P-M[4EK/?4 ӋL^ 'JԍbvVVGBX~=wEJzxw/8xmٵo' +"W]^ب2Жs`5]}4Ty?Nk7l6uL|L\aוе== M#gZ[In5O~kZϖW#RY,S}j;3DUID-D[,/> =<ǟ~{lC">E&" ( LӤaV02kѓٸzX۬b*S(D1b SZ.H""k֠3)k<ƅ ڳs?_HJ>.r8N^j+/?l5MõPJدx aTe՟J4MCVD{&gNt& {$7ok_QIkEbu1:H$\l;""JnD|FYQ*x($\ih4Hd"I2@DLuMUʫDEظu=ͭ)~ihL,iLON251EX'zi.e/m%Eڈ:k?k>bMAOT]"ABga\x#8Iɰp_Dy""+",kA>rz^z D7@W5ƇE"**|\Am $ZڐcV`cd9T(bH%gaaφRض˅3p fZ#qF"T^ T'Cy0ZܯEOK_G^>s1$Sosv<}SCDT.̨ȺzLVG+py_!)ؙ^΍.Qm+Y Й릶x7 ;2Tg_:>E[['ժԚ ֌Q//+J ]/DynE +ҲgG@Qddyh;G75!b KM=i_Wn{:<'ȟH~J_70ı?2~ 탼>;SK1wUYOş̱3G)Me ^eY戮y&1γkn|ѵu#Eg'? )*i_??=9L]SD2$fuQm~R 2Ͻzw<Յ,@[KO?m;޿ij<)  FSg&q䅣]~;]Ei35]Oc lG?M}b|kӻ~/ ˝fݭ{9:7kKtǏ!:ƭ{7@ɊЕ>y39_zW»wCƔl7I'"Ns?9DwiK*p{r lGxiL ͱT?8zy\.Ww3Tuzbmj!W܅S\܌kC!:Xvd%ە tD",naՊ-ra__bƄ2%A38%D{`; d9n9Xf $M%UlBǐgYCze"Kiߧdx gM&~=x~4ھd ILObd7%X YWTZ;ϏcC\9MSSbaVj,J2cQ 4E\Nŏ҆(4 YB&T@UlL'xA^BPk brHss+XZaFimuD]Q"N O >C]/wгG59}k|ߢ97Nҙh %PˤAh4,,[ˋ8EDDAv\2_NNLВIqc|sB]670czz0J%M$EB6iafyxI$IX>J!ɬ y)IfۆUzo3|zo;n<XKTb/ПƊTFAMbUZZ 2 \e \gzlD2ID)*,,,ߗp=V\rXDr")fQ@Pq @IQF&bq$AZ,:TEAE\AdXA D $/dĆgh+`xIr󋘕I= Kvf\%Kпo'jK@9As'rSDg I pM `- *BZFIx dtdL74HI )XȤZlh  ø<NJD"hFeB,4V41!KqC(:gfN&NR0>MP|*|x>RL] K$8'kx[L<R؛n@-_"iڰ:VQ1<5P4ʔ2=$Z{(4jb+ hmO5ܜX-u`k*C#CT\o淼>s SI֐޽ڌ==Iљ擟35JHSNLn" }pڤIS['vNk<?x?GS".صW )naS}63.{;vy#vZJNk_ 1FI41:7AwV_2|m5ڹ!LO|{5N?̾yFFx&~pۉaU5޺8X#H^<^S|5~]+yryч48v]s߆$k 8 IDAT215՛صv3{o:s$qA:[[@euܼf5}-[%>uܹ{#|sÏyucG^h:sq|r &<{|X G ~FO|zf6&yz-;0K&lp~J-+'֫i۽u~{ouy|ܱ3< 4|.^86ƙSlbut&(;w?wH|?"˹W^~/soeWA}||oݚRCRG2!APE}Vm۹V۶EEd02'U֝3SoZjԹuO=g<|t$B=:3K\ !#`YN`IV,{ ibFt%j$'(T.h!ɠ^Bc|dj.! g*ML\EUUBiR+f󴵵qyb|qwZ<$ңC*tyXHJ@T jY є$?>khl:rYr%FU,_SJWu2Y<ƒ.Ȱ]4¬ & s-\R.Q%R(  ˸>h//""kcu8FυBC&'t`E9T 5k) $;6x-[0<1B`= dx{/< iQ/a,-FEB,YĎ'h^-Qzi1{+)l_@w&9Vk`ƙy#)*b )n4u_r$E'Q)e=p%h3ydE#[(EssQlӠz(Ʊ=J, Ep]QFeBU0j5PUWt*~a,jfK<ݬ"Gw@߼L=2W &r*r-G| +Hurb -[5zȉ ;0m,v >M<"sy8q`2jh?WNU޽qT'3=R&Q¶&L1-e{&<.n||[Fd,[d\p|2/~sN!Zo~^F4S4Zl:Z$S/ R7kw*xՍ|_MV&1MLsO4_ϡGS2ܱ,j8Ukur6\/? |n:_7^X]&$'pNLapT'xhJw~%u5,dgvxdJ%2oY?~†p?|g~'D-8Ag* 8~JdΜbݢ6nl\yPy)â^OyD y4q;صyjU}xq$ՃpeLOfkD.cRƢ[:n,0Zi4Ln])YKVg^`||1pOa55u0sV_c`]L mVroA;Uء'* _2|mm|od7~aϘC7񣟿>u0Tt!QC[!,)?LJڠ4)#8yL]nm ]Q # HRXR< I8sK -'sr$18ɲ}p'>Lf%2 n v=_"ͅv֤~ͷHtͣ8vLuƊ>F¤Ri$blӶp|$YRjvDZ @QrLM ,D1y2x\~#C'85;'hu$˲prNҰHbBj >:@5|2bppkPĮVDjRqJ ^RzvM7]IFӽ#^utRZA}PDzt<$d5H24j${i( F{su|EH?FYVp\'){-nbK{XKL?4 ("Sijup^`$UEFuj# 4uv`)]KEc(2Y \y(}ۯӶ~"n8Z˷pMlede._8;mjf\}[Hhj%oeѢV֟{)D+^E""c1iB?ΫΧv*k3d1f*P*8n*dž&2۵'vFt:r۹;wl,93Y\y~}mMeQ>8*C^Ȱv*NN=0@Y E$Z0%u9}V^4\w$ŷ@ò=wz)F7XdI ~j 4 7h~C(cѲ$g{˂@eHRI>?6#Ps3-paxl]cG k6xDÌODzj6gyUrpb C3纷^O;vj!wN712|ə,DBHhH0eh؁(g<4$I?xX7} x{Oϳdf #s#,_^Ͳp",4Q |'7ʭ$(R4%n#x_~"brHG4M}H&F *edY EpmIR->G4Lzݠ׵hnn/aA$1 tTTM@}?tWJXӐ /B6X],œp9,!(2JXn"ѹqIeZrYpI4&0&v"kQIz:||>CݨHS z0Eqͥ+Hz7E8݀" 3|uDQqp-EUQFfdxAH8(*Q+șg΂8p ;?W,[wM} 2% Q%rh4LSS3X*R8/ XK4NAé+OPXGb8JDQJQ3(c fNRfXDP,@=J*Hp$A)_)ٌm9DBR 3<;Kj`kS9B(DQH:' (UQоc2<ױ_B%\LzDhh4мh9F'V|^| r2ӤM$qJ@MVHD #,*sg`|=|ӼvڰMR8 cCcqYIL4+baʹBUsM|Z-cClijngü5%Waxe/7#[:B.fǯԿ^=2U,)7~q_P&%u9~8$~:^>q~3??̯p Jgd`LfHBj#пx֬ ^=!&)xl"ݖfC1b4\ӗYx5<*5Z]BU=R*믻bgCUdPe骵B\;_$]i-2G3L$EB>wrZcCwEQ+Q My2${Xw5c5Ǧ"/fJufl.Z90L3>Zzs\ˏ rl\"^Jʡce $_|t#k3Vf3gc8Ԙe)]1@e^ӯƳvqū90ĞC5+'99:@( 8#Hj(IAgdfͳSS}FSeFgL$7U] ,HO}/|ns.2#ֆm4[e :h84 $E!  ᇢ(K/db2 ̪F\C5eX,FVEDin93ɜ@T\ <=t(0jV$ҨשHa2A2LDlDaer} 0==%7,6-K#/Z|_glX35J·Ɇ[8SLX Oqd_ɍ7_r!W6!$l/uF!qCW;y,man[A3-゙BYɳпMy/V"mR?$'K<7}̎WP.pKa ?Gy_wUsGa~hZE,bY,̔ٿ`=[-#aq?y)y3lik6Įml]M7t8K/ϰ2֎UiGgs'>y'[y26G^٭I g92xD '05"0!#'9n@s]<szA "(~] ʨ Q4l>˸u/ߊ/lW4w2"_U&X}.uK X5N)\`.U<_ͩSq5طݯbthחgՀw0Q\k0==:zO5Unxm8/aU DD7'h}\g֬K? MGG=x$ DcIǣj94yڋ/?~GXؒ`ztd ͝2y:[=xTSrݢ|z{(Tb IpKH;/G igQM: 089D B.lAB!2dN,q/uJ0|ET.E%"HP(m43${ 9X(dyb9<M!Y||Ŷ\N(*"c *hѨ2e"i~5 p85Wv>]7K { G7vRij j2'y O\avj: ՆaēqN"%3=(tutU%r RPs޲<|}{yI_C>١&}=Fc$b:d(M-IN75b5S5FXrh˝˯eȷ;7qQ f^?ď?؞W.ٍo!nڮK&cIJ/\_UѢ\(wj]Ͼ(lݴٟn0?²%*SmgI|lKü/QkQ7!kU}#yk:.| l0Ρu6q֪;l$֡\m6u>gaAsǦW W zl?>'bfj" %t`keYHD2Ĩ74 v@FeP0Tb.=\ ΂yQpc (Dmv~Hn! wض́u/O=W/},jD^bj0PBJ`p9'R@GfLץp}Z::IQ)\=wnr{e;U&*2 Aȗe8Xm4G>~̖vM)WEpLL(W+,[|۬YyLڋk:dg l&O4EEbz<,FFB"&R()s4tR(0MիWK&q\::: (m; 1;7 +A'3i+YEz WYu,@]lD<QDDXddxs(IĢ)T]#LEEQpuT2ȲBtH&ض(Ju 'oUG@9e`n< ӻ/HApq Dg3JWR& \w'bzzc3˼SeB)AQds8^;) ] #C>衈 "6!M %Uű\$Aƶu] V=Gtʘvâ\,6pH4F-Sq<P$yt-#3viY~FRM\xEET>>ї^dv|4bilWxAE"O|39Efo%&Ѣ'L6oX񱣐UPeM2c(, _A r%V(* >,"~`r]QETT$ECq,]DGP$jS9Lɧ)& w(Uc8Vcᢩ gC X۵EFJE9ofZ:.9`Hug4b E8QLa|A@KB$5xfk[C $ШVp, 2CgѠK cg ,h+/?nzn<:_dye|穇yWpbzw[;{+~1{2ֶ64=!ϵIve3DZԓdNCzqCО 90,{꼰'sҫ#~ uT*;DZSCȪL[{ ?'?x'GE]D#38Bpho!ɢĢ,^z+FNa]y EV 1[u+_oeF:!\+sB|~A.zx-al+g]u9>J"=ll ba4ā(t?ӹu%;rwٺv,N5 >K^Ec'8fDq8VE Yѱ,3!jnh2BOo&=+RqtQ9pz_3t(,^{6OL! iH;4Mo};'|XHpy=3ӿ.T[803H x["[o4>J ݽ&4>?ܓ㶍K鎶o}?,KC=t /3obQ%!9t\eepusxgMc9/>BUbWO}1s ]M/nm'ή_߼Rg3nٺ~$Ζ9wZc4>*{y]}>?ycQ8Con]˥g//aIfM.^C#:6Iwg_`L3OkXg-˂^ZCED\q,|G5ĚeBc~UEKW`sV* 0r(6>x?:$Gb<+ZZ;iN$huHa?=ca4ⴤ)a)@TEj"zQo3_;nmgdr\@C䧧Кbd&GgltlfPX˲D**222 XF\abbL&C(FL47p.:52Ȓ Y(^PK$oUE]QUeT*Eт(Qb68iX蚆)9HMәDl T?v5B|C0]7O-yB`` . &cb+WX63Sw =T)̜"h6Dt$d+ŋsrtP(L\]\l :o3+-؍:mH Bp-o&IpM hnkCVUꖁ' J(Es[+rX8k-dDݣ(mb ?*3w|9dW lTd_GSS WQjKQ ߩpђfq"Cl2uŧ\/ 2HlFMGۃE$)@X{,+bg;$ {8 *r86(GuBے¯?H5js8]-vwRpq%_(z4'jg夓Q9RSSbI :vD<ꔲYdE/_(QCs=>r3_2Ky=g)+HpQQq}qeU"k#Eul$E|L&n7$YlQ4_PM ,X&F;Ahm c&\rC{ /K01ƪ8 .F>EѨx"1=9!I8L@0#axlJ@y(5xu_4Lv)HCW$~=I]7sav`ATvEeIV,rwo\b'qN\دcݖز%N);  @Db{>~{qns|<9GY۹3fr5qFbKͽDrDP CH}q?Myʙ).od[K;_{(%tbҦFA4:,_}_PQ=g&9ٗζ#&{?Zÿ|?u/sQC'}R}+jU̩Yn7c[H q={D#u]|8oÃCxA(ݼ}+~ю4 8jDYiK2A=FS{ s38_sSsH͖\E[cZsH<O;T5#J= 7_8a~$g G|[n`&^H|޶Fqf̍E9v/Ou\ic';y8wO}WMgim^}bVѷSvN2(VT\35kMܴs xOt519m=<~h^xyS3u>jYw5 ?>;C dԍ |S7J)(|e]'ε[/+pŚ>y۬cO7};n)2+<Yw<ӬV);u붲-G" >.14]6,jx^(g2IYAE"JXȈey(Xt`&J6py؋H2fFX"D40|ᏰKyK4ౘ{AHETR*W EaXQNsg8R'I"A M ,Fl_~CRHO"HC3fuuQ*dȘ.bD5@URoqF5Rp<YVo`bjx"!_ˮ" Щ&MOcX2zk L&Rz~{ikjgnn-*p-\sUzq$׼M<|W~fDcO/Moc|;Aox_ИiNMdt'SGmU+(@ I(5ԐDѴ/`VMED0D _Tam"a(.VW i#u& (NyYdBD"UOR&d#n8ADXDPNa.G$Ԉ(ɼ7Ll=^=ts y)tE4+/o%P!kyRtL,#2T PVu0&Wm=kFM;KfZ70 @V &Ց|QHt$|ۤV)a/db:EbMdRR@~&hjU9?!S5o_= ϾNb4C#s|ijU6Ptrkg8uo}r_ 8'f&O׎Pmq;;YöjC967b&.U=O]DbeF!$\t0Rk<8OdQdo6+FT^ٵq3/3;4yͷR䷿  ֮PX| IDATfջ6sU{<ƭw-7̇?qobHz|U}[_\˩X=$FӇNšT 58D'=l͠5rd$b*dl66-_q9t(GBmLGZ.^{-~!R$AuE7 _7QM5>LbD4c-",(m 5tmkaſ?K߅1O(?Ŷ+/7#>?ݧNP^qrɲjZ#~2295'X1fm%sv(zw=j׮S<|̚Ȯf?7Wm/ɞq th]R=-M h4DۡWc󮾾\@,AEZ~Ɖbh5= Q$Q BZ\&kR.5"JHv?hlFMj}+B-`"ɿz'gy瘙aT qZD )N-XcGS,maʳ풙{j$ 76s/H66K I0%D544j4FZX'hoauk'$?~x?}̔ r QGSj (,܀0oG S`;&xA(,<ö]|FEtu5\_O:/a֭Z [Jjc/f2,r=y؎)$4"P I貂"yl\7\q#^t1]?7ma긥N3E&,|6Ϛ80FƘMsS b#HXm+.z*={h۸+W!L""S)"D(O Y‡ FZ9(D1oDI S-U eLyrh!,dEYb8XܴkZW#Bd`J弩_UU =ګ'K[Qq/8>8> &?j7'ziO0=I5rhvǗ"q\6r, _=ƧP*cA$H0&#ղBhR.+h1A4_pmϴQ*SeACd]cY*2.mԺYDU%kTfhk]g _W/_L [{WNp+?:U"uCG'ف!&yۛ7@$Ӧξ ~ijsx =,RO|**{N01-p)o +.ėǬ龜IJnan${NLO T t ֧1q\ffff腈G0g!2vLCFDQ/LԅqT#KŢTqqLPp&"qb7a,Z24E]Q% 4mU9SʰtѳClڴh[? oU#0J*\ȬaaY6{"8 *fD#-V%+ZG_ũ!yg(L>3:3 *Zs]VSS-'^fŝtZE O8 L`%hk`OO6: 2j4F9n0 $7Ή'`4nױ'QR|W6c핻7O<2W \TSvnMɶ/a*35ۯWM\\[~e>OoujyY.ϡk+f=+IJSJ/kO0LnVX;>]ࡧ>WFTky>r$Wo).j~O+QEw09&+N+I40WcdžMtIfr4m~ Nq'X 3[s=؞>dk5,ǡ.݂hT*%]%H) mk#d4O:5 r1=Yoř%VI+ mᗰ" 3'?3Ϸ5714:ʩ3#9:,5M| s37wO:u1]g/ˇV=4-N>(SJ|X4:C>s⹋ !a(K>( O xGx;ߍ+JܴEQ} o㧎11yNgljPax,(B ۰Pq<%˱s:rٙim܀LU+ɗ*c[.V$D|/_}KuL1jͅ$KH,!Fq|;4ߺJ2"u=LFX92e#.mTpduUqlӄEb]"?S~1燲 @B 3$Il돌Kl Aa"](8*--M5A1~Țd!5X-⦨j(8ц:t =]O.k 8OhT5ZejaDt-&{ء3KDg+\T&/MXwo=9VmYs$['(l^W?_; H)7"ԯࢭ;hN727Yj#'C<,;|~^%r仨z AV,õT Đ($ArTŬUr44bU`d,N&uuEl#/dJ1CVtfDv|"s J ؅<__$F,21=AV"kWqvv=;oC'Cӎs5!?'8uo⅓nb:v#=tvwC(Q&-t lټn%7"S/Dj22?R.ߏc.EVخD%ZKKyS\NK:18;:+?H+1Ow._:x-2TE>O?z'!ݲ~.jcS'jJ0bڤVof99TMg0ժGsK'b|DD5.o!뿡T "!n( xd;xmNS)~;WrKO❜=C}C+{DY׉Y-:FǙ'EYP5+W075L63.KaT (i=TL1WR!ֳ\\ eqE⹋`òv >l ؜8MV%s>$j JR1 4Mȋ#q{k0Dz5GִhW71Z |p lQ%dt#S$&׬gǞ+1 (TTRHDT3|% ϶QdBjL>R1=!|Dc(U|kCmX؆g9ʘ ~FT*RmO(֮daٲcy`JeIKS+1=A9A!_ݿ~aϺ_~#^|%NFo̜gp F^8Lan^}C60&';)'1tt'շL|;qjدfYVn-o-[Wn992èUРw77Op*Ng.g~>1.eW\rU,I%|FIȹ>:`4x"uDcs;~fxYBѡ3([0ge%r%=o9pv#^Co-Óstjif .⭰N9W=+TeCQӲ|zK=Qif&d +^K^'l0 ?%ZqKeS>n1{E,<;P$k8zvL{\ahl!E&a ѡ/0{x|߹OrqocCCln涿 ǟG}1Y[bصf+Jg#B@rs X%D]e~>b EI&K!"!1j@ms] ͋5G0Q-c5| I$+J/󨗐GKvEV0OcE^=E}k7瑌g}W2?7AO}cɚM[D$>Gf\}Ӄ9rA"i U( 2 t]LFVuF8ՌFi*5"H IpmjqVW+IǞ5D lǦum9;@%XFp\4ly7%[ׯ㾇G4U%%l$,Zto>r/9X,;ܪyk_:seaYV]5pm<?UөevPu 6+Yr~2p$AzZzfHqyFǨ+TUyjiCAj*3==54t2=Eֱ,#P'!Ka&aqbf&AHb䇾#D1D9V..n,l   J;/3΍ R1߳g&O1AưAi],S[&"(XnD# KD- *TdD!QK ^`zNFȈ%- %B"$u/jh" Mz#B\x^ήz>krE X-81x's,s84QYcv|:ZM,S4-}bz|cHiĂP&b1zX?:9¾cNb nX2 L> ,T qFO#*JjBDc:L&욁je߰U*9eugyL2jR#+ђ+8}l#87ej҆HE>y$IN ejұv5U' hogcL8e"&rZVfS,6`%hlafRc2/}lXT"+ӏMwI*0~v5vqy5 %|gٓS&oborR'ZXۺ&`f>;84 Fr}^u/gvrIJ=,'ѧ-*5njfaKG cecfJ$]S㇙'TT }l?W]w3+&OOһn%XnP D-Jlާ'FǞ(q9WVn"eyݕwr[96ӜKW~q^Mxg7- tNݚkKsM{Vsrxt7-V:oa:_s2v͗^ھ ?EP]-VrH4Jc2DS b.*aKjah*A@ *E<EE"HBy $J!i2?gg{WZyQn[Yl9all&8&`0ƌ3900Á16 YV$R+UG{ku]}]kUWpn3ݡ* m ?%G $ ||?$|܀|X$i%Qj/o;FEdQ"+2`!,$ j\2LL{p1j \[7J\GFhTʤF<*~I%yZQH%K!30j0$A@4yɘ&+HbPR@Dp)G$dUE5T]C5 dM^Z?Y]j\μ?o 9pV1bTjdL?R@DBB[M,4_JD< YD}|óL,DEB!wپ'[5+$pτQHv&,Mɍh2E%nĘcq~ yA(@\lqQj:t-'N'vlX)"aQR;(N[-kꊴ. Tz(i!* 6Dq=? QT_&lϣ07GTD#j\dC0?I0*E?M9h0s,%{41 ! i< dO]J'JI?UU%IzBeTEYj8K:s)9nLf _oxTB@=Px$G" e6RZŶLEw'q{pWq=A#-3=R9|r$ 2* 1]EF>;=k>3r]CҗTqGH~ZZ UQ#B!* c'0bq&$lV,ӗΒ"͙Y䖅_*3g<]FPP3=Rk E#1N>`4Ӈ98>w?5\;^q1"'bOhWcIVdO1YDI7%M-V%*8aBf hWs QU Rؾ21hK>O#0D ]lfP0a @9A&Gh&8H@Joǩ (Aۏ"\V.Zrrav=<#fI1VI%4&vȥR8F[O'ud&gd%ì7 75:P, ^v ǟZbqn?#BfA3i>VB0^>#xp}z=݀z/}kx zyՉ)NMtkkc\ $xQWp5wFi%il-HH́]%^J*en@ < Fɡuj!R,Rp"2?1շʅ} ۃ$Vb1_TyZפ'G֫#wf@Um,O%V$Z{Kk$#Q($,M $0_ u Cy菏P,fۓϲg%b#->xRJVYf]t-CЈu11ݠO;rTTNj,fdE$Y' 2,cQ/H0U30 c {{? ixj3SnH+ 1O]\9F:ڸ_᪷DG]:{Aέ9w".!b_֌Ff0X*XH;N|aLffv*"T0W\to{ްU*|_VB(,}膊vEb.tPTPE K(nKT!*R@լ41x`45p=\zL,y$CǴ Qu׍xqld6 + 묧C\D9,+"Q  ((i"Ⱥ eIr2ͷBjI*U+f,>[ddJd&(`M,!P$䘆|J"mzYTj@<1x%UʡMoz+֎2>9zJ B2B7 #( ᘑ|1"zkhD=ub"L8O=exEuN f]ʪJ!1FuN ox}V213Qfx5WTAGZhsU%ڙsGoRmUa<ޝeUgow*B'J>غoGHbZEl IDAT%j\L! E@#>k6j<Pf1dU<C4]}RaXg1o߁iI 6+XJI=EЄP/.}f& AoqNM}o|s5M!&GhnI:F (v ST9x@8w|柾ExF(("qJdUưB!֓C@T#hiKx H&ؾo;53Z\FRu$sqd5xDP<"Lr]c[N#$pحJO2YhYd(jW3p @\AWP1mYmYtS9qb\#Mb\|Cglnz( U`!O.J\Ig4M!DmZdj"q 2%k$TFF:a5[8-ϼLWg;ʲrujF“ԩ,\9s:ϖj|涝T&O h3d~Ә-l=-txEs,ǷO5&SuAMS-v&q#A1_2]45&ȴ_\ QUo7^cqO!!V4i' n-`T,?wOH{8k?c4эNQ/UJ6=ɗv3_rl8m9>"(#2й5 SX9N 0YTxk_e[?kcH~x"Qn("zBETkR٩zz+iV즼8E-$O`Wں[}\fŚQbmi9ep]EWeRQ>bēX()W $Osx0@iZuvsPuMVL%0@,UCgFB"D@sT5꠨Hb5ZE:DPc^*Gح裿aM$Ws\\U}F\v`Om0V.eb`;x}ӄ4^+ĮBӓJbP$g[UD'M}0~*AOb wɵ6 Z hD u9]EBߣI"*`3k9&~{^ bC:ӄiS`8D Ⱥki^@ ZHi%-R^("}I4HO'37FZ@c0y4)_ :'O *ݝEp|%$qE%pLdPV$U!2"!ġf.l1LN=m\/v:wlc`ZƷgoM.sSm 1gVʪKֱ+?McDuRAW92qXu ɀؔC5.bthH*̜@޼IoK_yK~`OѮp+"SN2wA4%D@dAATPQOq]'ȪFQ< cRL24rVAe;GH ^-KVЉ8̄ kd[.x>?絇Tx0r3O?"V4[ڡs=  HU\7qGo~s2ٷ0O=l\&. Mϗdb4,֊ttu3}j]ڱBtQQPU]TU–I\Q#$'HDɫ!J]zi$T*M`KyrB?J'Z"ֈFJ5tUFLɜկ'cP q`$q]lc.fm65I.|-$ST %̠IRnZhNآ0hfJQc:B7 q|P5 Pj t=2ͥKxzѓ* "z#X.ImH_Ͼ)\~%JS{q:_u^;77Gs0f8ح1MO it-˶^͏>cFnoĄIn8X@~mTZljF# DrA|N5h[1'*ET 2ll嫹pJN}{a&v.Xҡ< TgN&ցQZ:h4BMxTL%o=Cezg6OQ3*݇HwJ{ G |DwV!Xr `k):V3='.~8:ľ,B$|^&+If15`Ǿ9vvY/ ⚑nzHQy#\5Ts+[5s*{Yw kǶryx'.5Fi[9ƶ/lyLp0S==ۖ"}ygY%a %# e]lviFQb1O@c4PDNI"|IAь !R9v闣IĒId%ɗO kˬ* @$ϧi71*N< a'FW9fc;vejYxLqZ6RzF@R5DUcznJAR&""b|]#1 G%2۵Z-t-JV!I_yGǯ?|(e6dM" JVRa`a$ йVG#9@p?8LZ"=s~ߡ21-Ap&>Wz9_{-/݇$)ga +* *" "zxlB˧UR5z !p6008D\$24 \!O&qlAQC#(6xL*H * "E JE%BDH^) =BY$%dCC8a:b>A˩d2Ct.QB :(*@໔Jypq*u.diqdοT$ehMdU4MBE:W!D#vwI_: Jš|I.YnIg5#c߾}{>w9ZMs\V0і^c-ںۘxi?z{nzz?|Y*ӱrVqjqơӤMٞ$V3q8*Qm6+yl6NLw}mPYtlT#hh8Mia*$ftEZ7Hqz,yυ[/%A<^9NnJAR^a@ژJ(zL ;ٹm8) WT)P/i,jaHKn2>n]v昞+fs{jncn9ge^=$)4M,DSGEBQ0@ HhȒ 6#oX:"$jX2Aӷ44##4zri:*J=Vy?,ۧ}b,Sr̽4#TXK֚R2_%IGmo*A_>ƒwFӴpCQp!|ǡZ+$ G4uj:.œB!Sb H*6c1|QAuG GT9@>8D^ЏOLʕÈ*\+FYeC9c[^Oq$;v^\v&:͗^_MoYu+}!G<-V|`zn,Ǟ~F(ȤAײ4P(WvdajCgg%f*kn敯#KItQ 0dٙ?Htũcpbej sϝ}/w?-s8c+֠yal(JDBDG!R̗9pC"eE(yǹ..z9"'݋כNdQgR,6f[^wHcvRIgh 33S(1O>ɓ m6~c˅ӔBoqn#ۙwz[.#{\;.~035{0Md[V MY(J$b[v*K~U 2+>o "k !z "1 ~|8CHew5ku8AѨhMW@AAǑrم<c:f 1cYH*ÈhHR àQWQaF!$ z~部|E3_l`7a$ct p<EWQdT2u$SЕLT4>zH/=?$#{e2+v?/"  7l IEE.z:}߾I9ʩ?yD1vF XulՃiَH!- M0 TQT "bh.zЋ #~8.{HdYFdtCGWudI$R^ YAH$*+Q9n=cv>#]2QPd$MG50 }dM!K.Gb8fgHRF `L X'G7·jy70s%dg͋ڈr #pӺ1~w5b9qng8WÝ׳ q&Nb,R4m,BU%sDQC"mLTdckf:d7rŶYnл􎟳O<9FbqIn>K%9vWY>@W,|~Xo$o=p:{փt .D! ^o6=|IspQ3p@#1r $jfIe2r9fǏ.*"'P1;Hpk6>/;L!tJs8y|t;AXjpWRyMO~McRI 9ΉlBiԋ6Z\;V_ 㙅9FVt&u#OLlY覍_X0☦, 8M<òLDQ%$0ZtGm%Pw6oCX=hO-0X]$U+C#˪ 60a57gGͼד QzŴeF\TضIcrIih8(N @vȵu`{`:Z YUh4*<'t#FpF@YSȃ*(]%z)^@OVBBR &Z lVpLsVE vm{xIN)Fc6 y=<{/&ݯwkWŽag}X5o|Θo EeZ4uj `910@\ĩ6Q#(6řYTJ2VLN18 P5Y3H["oJEdU'P2*%jdl0TX_ O.^9ƿ|YU<3OrhI^w#^+z 8}ޱB%o.jB%2p{z]ÌOMS ht_侗QeClRt]gqj_ DV'"6< %9Us5[Vo~ 'D">a=IIܳkcK>y[M4ٲjS[6ͺEgGޞ=})LVYz z1$l?<_p-od`ܰRNj6ppM,G&}ť.)Ƽ _}~UȖO~nml| <ǧٺCUSPU e)/,-#xgg|.F]:,Gy\O|y9}#|o?ƁH^"{z@RCtP?$CDDTIEU4Ia9$bi$Acvjn:ۻH%4j qK>w0|DP*"$ "H"߼??wTT#JZ B/0 B'A´B\ABǡZ.4M bc؞}0IJ1?({0:>NŮaz0a$$Aw `g]] nUfpQf{BOT9|i}y~oSu7|uΙPP퍌o·_/#M!I2HQ\sMQJ,A$PsYs$3Kd_ʷ]Ή: HMâ\mP)Wd۲&Gţ8^@(勸&tm|!@EţB2=cXAV:>zL"]Ʒ| ؅*<GNThٙa4%az&Np*wy{ Cr- O>Uz#Ͼz4gXo}QKj ?CVeժ54]p.Ӟ"YG_x|\`p:o-O0<-ۅD!W NRC4Uö-z-t~H "~!.z$B:a>.yі8kx>>]9btn c#a;6l+LA:;|x;yJrA;26'8u?pѹ:Ud1ĩ.zGC("7m,a -TRp{oy&۾emYgQhFz4# Ⱥ>6^KT#D@ _"ZIS3D*kD>k>ix>bT."(2Nlp A85 |2Gt0 G4fjsE `*VP( EuLC"sh1R` !`Z&uhgOH ! * ;>S-1ebɮ'I S-L2svnjvB"Ļ:ҭ8#*Ԇf܇:zT1>GYx© {:yu0-20,^KuRe9[eWsk9.^Yoo=1/ƹm{)-pޭW32^$p<#wbӴ#(ѵҒm]j*rRMϑ:ˣ+riI5a6tde24 hjs&8 oy~Yx?l<'(BK9"7 xat]V-sՕ9qHY֬>OQ<+׮E^ɥҨYyեx9V .{ hMh4cbZ -X '&茶Y~O;Hnbln?>b!Q7Ȧ;r+RN:Mv<c-CQ9rVd=8)jFb\r=)%˧vMmDkqpQ-y|?}bm?G:exx x$sSht #]~f4a&x;y??w> C6ʣTRD%"Laf5E5<←(*,z!_Ey9^Te?'oX6x>4[r]B{OǾu(?H IFðeCV4 ,(Eô(ϕenX-CkxA1-EF@B#e躎8|Abҁ7}x{85&o5 I  7;ӣDtF/tvwڊvQ*Vhv9{~Nz[sxjvz$iێ7n<M]hM>>">wk?9(K,χC ]*ChX y BXJ*5*{$[?۲A!iKj47z8OQpDzwަ-SE D4l>Ʃ7BS BB_ D$Ap=!"IG-(i)U+ֳ.Ԟ<Ӈ:Fm|Ciky DKDM Z9k1-"<]k];u~ ’K8T?<ӿ,^[$eE;L!7x#F\L^J{xk~% ¢ex:;>N YdQN~_!J֯T0J5-]w{v%P,[b8\^K039ͫ{vҞ̲.Sq5ӷn 3G'ɦ39~FJ2lX,cBNLI@>IdpR@Vn4d1JeIJRY6mmtuwHaZ`" cd3x8g3tG33tL6'r,V2 .;1F&X5޻Bn1^W&HE-/ӭ44j(V63~G˒4IK{4En:<⺷]?*/Ibvu.ڳ %/_؎E,SBTX,9{>̯بR8uj[Fh"<. rY&!HسK-'~?aɏHfzOLSLZ&HQQiR,hԪT*:MLѰb--@ZEV#JƢ؎ԛMtE"<,φ7M$E&pmYy.ejP,:"3B!ppR%=$Sm=+;|OR #xgf&qe6u!b;`[gBROa,љ ,":q]!h]T'':53=2J5<Yl%ld2FGAxyvCfoK\eg}eKd)&FRmHm锂6Y{BR'ϰK9M=yfNE̞9gtntwнl!@bQJE+HLri אP)xܶm⒫Y:H˚N2-Hvy&FNx?K˅_H[;= igIˏK8w#v (VRjO̧> f|>SnJU;'M-1{ 1E 3(]1g9u'+TglY<^΁ebըe#pB:ߨ0 +`^ ebYA0?M xd׋׷TUn4yoX 1EC-Jd<]M!-|D^ " ˠXPnԨM&m"*. ===[J0 E\"J\mzavE7bvBiW4E uȬ28!taxp>B~lb&͌FYaV"_s&?#:#*SGt}<%̆KDO0s0])64421:A+ƵPjGN49*{!>{]!syZ< _0=GZ[bxrC;ȏK;9|0fGӐ10g /fpW3̰43pun曏>qysd 7\ȱAf:(K(2GK2T'?ޗذn1xz.0gGO3'۰dZ#Ø<[&~+.cҥ¶]xB#/mcq[o`6_R`Y$JnfEl;xߴi0,##Rq!K"ރ{:W*&qTRz ֒SfRj3Gg1 F?'O#PC,E-|Ώ_??l>d `嬻h5фJBJeZ+V 0=1k;n&>`'xGqlq,^NcQ?f݇ZNPB$$1r%fG%@PޘY8bMUCB(*,66zaP=3[  kȩ ,[¢KspJ{zD%zB+dU;vsqr5Fx2+ d;Q[S0$*VmHx'&P]TupdZbt-䜍9{ Csj‰aR W]3hQK$)\Oaœ<[Sכ}gwp/@6^yQ]W]/y Cfqe0ubQI٬`ְ`zLVcZ&; 57?Re|wI/$IDMAȺ}w9!2* | /? \Q YBH%Lvi `ڸF  4_Cܡ4FDl¨5`ލaXf8u0 Xh]D,mna~=:Tu}p=B^%EF4|qp B H2¼[Qr AQpCўڈ  цIUO5}b/V6XgdlRѡ7Xߤ^b-ԏeC{?1,!,Y~ Qb^+zimglb ')|"ݛe|kvZZ%3#؎=7FOBU:{._}˺:Vr>" _`y"`cy"cyOg%]E4Rz5nr\}9gu`sj ^"f %JIq`NE궃12F5X4\Yʣ#IJ,K.V)Og  A<ǴEz3+yλ`SGa**NGd2h$l'l!ߨ"/&+GY&%)O1qᲕ|"cҀWnb?"#}~1flktd;v*XurեW~ktZgr7a7M<ľ|7]Z_G7,/ErShz E QFAT!ʯg@ RD= +(ES*(# 2D+Ҵ\yV?H>EQ5AVG%+ &>=FE`v "Y޹>t3W&>K#Odg>.f>->珩 Eu-aD%ZRt>;9D:==}r+eZ)$BDlǦ(AGKnjJRE̦E4?Dps3ȮM+Ȃ;ܚEUu,rl}D d)~^I+GImרhQs17[bdx\IvXzJ*H&nI332ڵk)ss3tdR禨 Ȳ}2;θ&)m a(q Za~HFh:tIƱ DRBedt ӓi'[#Il""+SI:Xp!,ZΡ-%3KU+V$\w#2{pgZ /%jLaȶ(]s٥7pUwq쵝>%=7ߎok (\d:ś I12~}Ys\y|a9+XÆy~b9vZE}\ hgnH- *Eɦ( ؞Y U1{_USd) \~嵼6AZ3rv6Lt)hEappB ޷x^N3~(N#DlB_ƚR))+۹9ULb:.b3}=l8of,XOa28z,aMj*݃emaj$Qqtf>-lg*.i?%¿"glݾS9?D08y<[:Ͻ[K5e7wU vɫUfqPO ӧ1~W;}wЈ\k8St1k:͎bNpύP ~Y~Sr` @&<(z){Hb4I ɂ}EFCS(jX|]?Ǯ,Kaw=Th U*3KEZ/YȂeӝB IDATuok0l/gQ?Z2FYekVaPӏ$+RHPj4M\ǴmTUR-øȒ~տ3o U67\eYGdRu o$qBKx^HS/@q]7 Vh;a.Ar#<1@- jUh6 ߥڸ1SSeϫ;8p~w[ghVxs$ sDfEbO |~ﻘƜ}G9[ˏ\*~//?6f:wW(7M38d9앋pךxNk]9Yw(NhjLL:v l{z/{B<|B<8/mR,_. Fb\ܚa{XE㨲JDV7 "JhB}9',(}P4հhX 6fJW]trbt1^MP NS;}=br%ȝK6ʏ%9{|%JYx'z ɪW$QM!  lwnel_i`Q$G5Buj>; GK*]I >]c\wl{AkK;FkZd2;^#aff]7,z3!"/`%r34*E9]ĖVtY5 lV >3UFDl5-3(6,[x;8s5h|?+`M a&s_>f'm'^ :>r5,xճ_|N~QNGu2] ._KYcI.YE}LΎӧȖug~?o6<[1**BDG#Axpuu1c *D4&E7m+${}ua,x"Aٸʼ r00Xk/EDJ-\tkJQr\EB.X ɴpe:"Q"t-—oafdkSgPRY\QŒV ֈ#zim_l͇MݿSqDzR;@FP1 NkfS:KJNqSWJMd]TIBТ-Ȟ]6> zzFRtDEGT&~TE̎'h8.DQZ#?͊Nnru ǻTz Aq:ݭD:j 0У14I^*!1ݝؕeB4#$cH\iX*Zډi2@WP^^U!c1kŲD2 ITflDYDRkI+(F;z&s9DeK: yxmJ1ޖsVߴR{_چ;?=,g+.8kϼj2(VKh3r 8 뙘"%pORKC[kŹ'ߑ=?|хˋ6 g^-cGVP?JGKd7w.yz' v)ryz] 1! ea+i95;{>'VMt#Dc ~;ӧ.1ĪLly+.fx N:lz>-̪2" 3t`?df%BPSDF<ӂ4Nn H3t!bʌPĵAIƨaW В:3NgJ -,Q$ xZ%9>zu̾m/di;6ft]5׬㥭O"&`5E?rOLq$Vr).BΌAvLZ4L1d!dzC\8w.YZUiI$qq&R&+8 ~( \UQ(zEU":DBB<$ј)8Xx2iJ I`Eo5 :xUsZ3d=t| eP`Ч;ɖl~ M9I)h ? egY{H@Ɯa/F$JLB0Jgx{4F_zEbm(LHy ghSLJ F "AB]&0eh-չ1/#|j#$ZY E4 zg1F'ߢ^4Ͱ(>?7R.VG^xAv"qf޽/3saTc J#*N;2VӨ#~ G$-8MMfa4 K=}s]䨀vݑ-KYݻv߿ )EA@dt=ʊ NgGF4Z{d['iE)M$1@7O@5@_B۷Й2j4ɏ5{ի;vQl6 dSgȤb s m1>sû/犿'^ŝ~\"yGe`bgXț#R}[X%ނX2Ӳ,7]>+exlC'7uͯ'H4jjjT? 2:;+!8MR\4Q"g'dKH$ JrH xj,KR"c6 |Ih4 FFǰ}1=TU|? ѩȖSq߀iZL̑LJ`Y!S#Su|ö˨]i*K{F[V:sNg*00 e]@P,nLH$Kb45&cl(M0 ӘzNo)|ޟ+Cw_'z5ְzs33ضm HȲ J, )tg\rw F%R5.k,aS+SDQz(T+Ut]"5}k5^գ˼x@z^}=b jKKl\5g?um n/È=w'8;[m]ϧ>a^zf6"QUJo٬djb^eՖA4MRccL@U\æs]mc;ȢH$|4Uk E*:miED1]Geht#^tdMu5g@ř-9a.FGow=}.{1@KgGs]2RŪ #D#qr" Jtu߬)> :vˊ4%Qd EQ#:^R dvFNg|aS'OMfx} ZnpNI F[G;&]\GE.DQ0M;CJl  ~(E fY;x8k8﹨mI$ƪ7`7[MajjF%1QDs7ݶRL1z2(b>eS- Ӧ4Q413[ƒD4, |h p\$"RL\])W|4 }$5Hq(Xtuw"D"vvP V5%M%br Os@nHnd? dj w#rs?!?+.{-|G?=ˇڶt&jgUGo iFC?7&_{/?˽{nXU0 r,9Mez E G\z1ʼoHc w1&( D ?XZ^frjQ۶׎,0ZTGZ53q,F0:DVLLLp): >Iv.#d[Z0M4( 6š3aNM1*S^q`7 sx޻qW2TeUo'#mx<*1P4_r.ӌMLey $(}Rk^x7N#Ih׮'ȴbTǏӾdr׻>JֽQ3yOqw"E+MI`6h`:@4K*4u!$^^ ތ_&W XerHT z"d[:]eÖȋl`;ehD*CR\mmak}Ă8t-4Eh-;9y$XJHD|K 1>H*xm~8E Q&6DCN8O&R, }[ 9B믹unl7QȰ^.Oyh*U!@7d箷@K&7m_8_[Bǟۓq\Rnz})ߺCerWCP|YB pA@|Ų(z!vB?I@4Q = #ކp_u\YQQuI~nr$LabĎ;Œ+ya˸+®emmTE܈ (,"eܼZPbpzJcaw $ӖnGp<b8S*U 4sezSlZl?G7{nJ9wc]f?IwV2j4 Bwȴ1-Y{i(2P%T>reH,K1Wζ%-xh$X1/${QL~mun`FT&Qs^u9'ȋ*H+@TEPhW6LN2خW`F2o/1n[G47\ Յ <{|an_ʟ(HBR?}2ॉ9 w*t1i??~!2'\wˬ5MckioCKc x'ܰjt*+ZIEJ..D΅T?Y%JVݤT:'O"biZ@efq<,oZZt]ѱ-&2;\4`z\i2>vYOeUODz'R Ƈn|M}[Ońg/`[nP(Q,V(.Fb4 h@qmsC$% }u%%! |Q!pY1mDO T=Ӡ+x3c3hZH$Rڻ%Gf9r 'ޏ}~<'a>U[} /=(q x6TC$?.lZd@'9Z&W!'xH(~X4p^?QNU):.e Z xiۈ ci_;3I4?y  /ƝG\"x [.:D'ub1W!+ӒbT4ez$+`KjGOa.8ˣn}} R)5P#6('ȢF\/|硨қ<.F " J01fFIQUa`јΙӌhyJԢHndUoPx<͉7N'wU1%j(7\wKGQ^ĬPQ)Q"6Q/21"M%瑟 .m[pi{?\-]͹gzl,r2B1 م%d2~ޛZ&-e㖷u~aO3|xa,AC;A\fX=#79C q:() --E#U.l07?˦ؼe+=3ԗsEY%ՅY26B}GN;\sɤX\'Ѩ > F2D%$bPq?xn>{;.KQHm< M`;MƫO Ә:Z+>KӨmp&-eKxJ)ƗUZۡlg [/[O@'lvf-q.2{q|`?BBc5DPl@:sXL#K/ϟ'߸121MQcZt /}޶k{170w 5l`sw'ޏObѻp'AEdQAǀ(²klm_Ke(OZbOf+BRE<*SKOu) m6}?8Ҽǚ]4\6f7υS<䯹30dX߼"bIJe]rFJam\K pVQFT5dE מM J$iJ2 W\}MA"HM$R֖vJr^H@qU=<Ԩ*%^mD:86tGP#+EPsDD"@J"FaSc4ubNľ,9k6{9 ͍ }7@BADFBv < /V"M\CWw7MBRBY)K,/.b6jw$c14]Dz,ǰ4%N4G4TMv]\ömFUɕKDIXHD*^)\|4Gtm/šKeV\BV66׸}_}|TK|w]y ױ!Uxiۿ%zq)*|d G\/=NI^=~3/ pjja3vẙ̎>:ϾK֜5kȑ#c1g8!zQTE. &D"q2Ei! 0uR8(= ?+{zCU,Ζ"fvmI"-1" bM>MUPk6@$X, \F w5e{j@Kq$GȘ!iݲM>{/4U~/~]lWA|4&|fʲ^T^?uCg0k Z >D%ɹªIZJIDiQ'QUصtfU~ 1d;YN7܃z5s&JV&hP h( PEm"@RP$׶pL+!"ˡg]. @$E\q!AOXtQGjtN;%_RB9۷Q7jlXw6GGϧt {e58[26= X>K[, $,rΚ~ן@I^s'( $;q%JKX$˴vcVFK{7r$:*k3 Җ{v, j\o,I.`8˙ ^p>z~w7b'mMG*M{:IG\|7c}['S?%@DBDB:$Ȳ/++hEmBRPȄW@AQdqٸCyN2 ;khE#I1ti2kQ[2QD?%rKhNbQT]#5{.#UU%|FieQ3t4L.5 ޖ*4Z*YX\0@ivufiN"**W_=-̳Ģ) ~qq=_g&bD2I@@"4JHr-0ݰX!l! AQL dEFQ$"# *G`4LMP %l03{j?_9pr|*1RRװ(x;w~}nNgquLQTH4>&Q܁ ,"k4}+P::\DTx!!*2J@|A \5[7k|'xJe]Zum+ѻ>dòcqEk!V\AH%Bp@_) I( 9<ĄNӳg "2MkhfcB2B3p 6'1qvkH.hH^[|R 7& %EFV8t EUh4cQH\!GsWd[;Mo`d`yDioB*V@4(WX"Z<V֛4p(LXBU=3t wXvr_w.vWͫeŗY&7|7zdv퟾{?_7NŸ悭[ͮw Y[fy|dG7`[(?hI%ٴo3v8шJR@"ӿ5a$(%HQFLRTyopybuye^L=*CqIT9­(X*5AlI$~C>TE׽GdA%%Ǩ8r dӣy(ި34> Bx 4"ȒȨV@ 'D2T]GUpkxibM(ohE?@tt-B:"N"ٰ]!IiR'tmqqbe4pŲ\:;q-|RiPTC_([؎\\JI(oO E.!z^׬!&8y{.J bkrvbYT.J@IQFH%R=KluCkkgxY)7E;ڃ֣q#kzoD?\{ŹyQ2rldJO- Ms-l[Q%^{ 6cN|n; ̳\wхMLky?tI (BLkYҶmrd4"JQhTWX0JS4,NU-*1|riQimZ d2Qlkaux ID"b؛X,FKK F_!ܧh!vl7L EA,%m6iOk\pN;CV}Z=͂9͈kCR cf~t;?^y[w܈4l\#_G ,y;og17K4qobM:Awu>~{xZ{ߍ"O q`|FU}eX]# ;;mޤ`h(Xm" xC}dADRXZ =svg(Rfimos3_gl0ć04f+/sj|K- /FHe^l}Z!Mcҧٲv*zٯ?kgqrXI %ZѣibߨQCLjR |A&ݛ?kbeU!4K5FΓzj֘-.oJ#H--XK4@TX*I2`˚:WѢ:M DUf<)Hm6V~ˈa _'IH)sn (4UDIB%ű,lDA$$(c[jnDut]ӸCuvϓhkm ױ)MX4J2%p}Իwj\s, 9VTbq$-bH0Q"1exE"|BROd6R/q+_gl*"3Q_}nԡt 3*,%ݞaԙb839d̸4q$(f,HNtӳUjn'bo}3bkoMT+y/觜݇.ʕ/~Ɵ~Xөz&ɮNebb/}2^I}uǿW1 G~5sֻxgqM~SwZ1χY/Vy$GXu {96#- /p#tAڶsfn};۷04oc U܋ǹG :oh{71^)=|oH3)NNc7 "[6lfA„Odso(sEl!ɮrp}J7g(GdU|T=lk@$v<Q$TQDC'PRf߱@m]ȲDut634Z=gZ`z:vd _4e''֩TdYBQT@4?)I8VE jGu,̌bՋ"m+x@8x %Q>h(*~ǝM hֱ QM\!2HcZ&zA$8vU#ʬ ~ov>AXA:CLTL+ ӵ:Fh4FhKWjB4)O|vBM($I]\]T%CîRpdpx_q "8.@fip}3EZӠwlN abnja)m$R):0 dIƶl&igM=ZJZl:tS]c~)G gD 9UyCs1N6[)nwNUvl7F,q*bT3Д,Sl?hZc N;Eqf̯xųt#PD:::zmۤi,KKK2D%-xcۡ8vmB֣YJET pLl.Wޜ;U5aHx~;5EBD9,:Xfl,M*FGIvӿi-^~ '&W`p!ZkSx?ikMssmUYz(fx#j=jYWvΌ ֿzlʩ< =B=_7M.l#;zh?Ao͒ IjSKL?ÉaZ8e#[HP5\/<|HvQ (Hq0 DB1JDXocWt9½^ H+" bRDQH/ul\FUe l۾J0W^u =,͏ԓ.814i"LՙsHsG^:1ZӝD#i4ˋy'+v~\6Mi'Kp";@6#*z*YlPr9W]Κ} \9C-` o'ӽ|魉8#X`KJ6.l;8˫Nr7N[=||AqA0k%V,XʝaCֆEx3:s|x%<+n^LJ]~T/斫oᓟG*a(LRP,2 g13|;qy۷_Sv˷8Sws{8q й8pԶ^GavD(ڸ^-gs;}p]Cb7躋Y4!veb1=Fj8z^}֮-f0hU9q=xm]O]Bxmp;-U/\~-ۺxzۓwQ !1;:U`|x%nDa ȪF*!lF2c14iOIXtr Q8vyAOѱ$smq ιLL drt / R-Y,~~{fψmdH*34Jز"|fVFb8|4 1Y1.#lʂ'ߵL&o]ҩQ/QEl/Pl:8 yٿpŞ/ҚHڴ s'ٛ;¶#1=R ihXM"Ϣ*P"#,+xx(tpb.;E~ZЭ԰̨ xQ !mRj~pQ*(O@0PdǶÀT*(5\Ɛ3xCZ%NSבE˴IXBa@d ވj.DEE Q.R+)J :JnRR`40=E(e //K)5mT@#j><'(1 +MeÐ cc$HbضEhU)癵d uD&''=yKcdN{%ڈ&3G #"eqۗ]Qu}s%xWNYb{g^|e)n\V7?Ʒ~ ]k۹/-'0T{?7]u'I.[ WȽt:K->:7{{׌e׸qߴ8մå\3QL fS-]\k9>1LmqbiY5&_,2kB';&'ɤ2RթTu݈gf0mZ <$Y0 4=z%QZ ~Heڲ EfӒz>dEVȴ013-mĚu$f *Z@,\BE4M0 $ NöCiIP L8JtwV]y| UyNz/\—1xǥ\ދfZ PD_ x>/[>D_ ǡ_zŐ??$ڠx|WvӺv9q9~lןy0XwM<~(h1)9ȖHm%MUUQ4hԱJ%\;Rd0HB-4Ca7$Sj6zx`[!޷51:2B2gq(b`vU |iy_sXzIGw"@AA}#'SneIxk.h@<]5/]~ /HhUs;x^ޠp1;w/tE%̮yr;4]i1p77\eȿ'r|ľiSoXAKW+zҬ_T150"H ! Z("P$w_>Ǒ!\Χhe[re7p=LLoEネǟM[f9)0[.bki<=Ouq͇c}1R3RS#yIpQeGlv+AR(L.)QE g|۸S{xlrOf-aъ՜j-W!VHN=j/ǐ2~^nı%־.]k/&G+Edd!ZzYY-6HĒTRϚ3gc4 v>sg ɱN=ewr[۫'~b߾v=8G*%zãMK#PmYb†Ha簿PX ط{}dMt.ނd2ujsd1&NBnZm031֎w se,9cVt,`3̕$HIT`>?KFKq5:4_=_:go܄HX-\]C`-}Maˊn+~]l ţ w!/<2gA"x8]Kt0u@K[b5G<luN6 oorppa҂J8IK6 q3plQDŷ0TޠT :grYgB5)r|`#yB%bdASQeѱInD(E ˑzäT,S.Wy.o7 QH[t:!m)+2,PnqdXUּ -lxORJGW(xxIQ BID EVHc||UK{~m[͂00$JMqqmlabhW, sanH IDATC4j6y¢6◯!C=vsfhȍ7jD2H1Z1fRB ,9Lc39bO`e]v)[Su6Ztq'z(8~mi 6 n_:49q2m `ĬY60&$8q@Euľ\K/~@HfNb&[%Qq]Z.Hkl^ok_˒,t̜ 2 sӵ|n*6.ES/_fdj#3n'|sOfr!ok]dC\~-K,1BGy.d,e*4* r@ÞaA>fe)e7wh5996X EX_}PJ+g++u:l&g2;X]ȝ";UQ(ΐQ= fF5(x8 ׋,bv7jLDx,(5c2i2RD솅oacڔ E̺I"M1-ٖ-f5%-r*No$ qP"r+I,Ju&~ޛo<0cK)N&HȩCGN0 F"w"%(}ddDHjų\ˢZʫYa  ɡ{A_wyp;iCDQe&'s< p|Ko?>ML5@³$-fqI:j S"Է,Cţ71O{n@<hDz(26 o~nEyۖdewjռ .؏ڨ?C?Ū̱i~}8kszX8k9۞{Tdx|9TkU,?T`w (6'nβR)i(F;25GdA }"--Hʕ˹w_#Ҋ؎ (JP}5 wMlX@TT$Ww.mmdqλzQELX;PdRI| l!_(QԸKo˦6-dV:Cnjzc85u v3Y@(?RR<0a{k-Gɴ#dlHxud]Cc3ނSg5X:?͍]k1rIWĩ1.>|lvxx:H1yRYVQQ ,סP)S*%vZ;H{nDTn iCñX:BӜl넂 ԪըhNDQl[T$4G:MD8aB}V5E"Se1) jR3W)ѱ hKvMRY 5<%"{&TuQO $xru%Յ b1dUlpFLoU=ǶAp|E=,bFXxfZ#=Z !4 ( &aKzofhJ,r]ap~~Sr:M9lfuQQ̋ [P.ʹ3J)ݠW(bt2Se CLak #n :yd_'pwfzJɠ.hDeq&q'xQVO>+drǿs块ȦKeסcǘӧJ1=k gqlB=8ZsitRN=Aev}4L6cTQ_`!rB?6yb^a6^γ/m=$egoA'9̵ !J!DR$lCQ5t#x*b)e<;t]u"[Ҩ[VTx"IL3PDE ]˴m꧷jIܝs Clˊ<v3;Na6= ͠D2I8zu^_?HgBZOQm==i&&B1_FD\pޅȑt4zqjŐ#yU8pQVXIuFЮ*RÁQ~/K.clc0Z%j#nȪ/ L}B 6 !#(iADZ$@Ѝ : DL&y?z,\ FےWvtt`kJ%f|d'333c\|ҩQBAcq2 *%YbޒU]Ky* Kd<6?i>έu0]L+yr*IXmKǒ-#Nކ1B.G>G!HB=?9wJ{ ?dy߇YXt߿v{v/=8&xX_?=>*:ϼ^S՘) Lܠ r֚ni_ڒJ2$x.zQI&D"||7JOhiig)jt %ϰϾY~oĒaM3wR K//Ohәnsov *VPD|qV+: ' گ\(kop NC-fkR_é`iO2_6f^k&}ZNyĆ_}Sm^ƛ71ӌ%z/ngu%1Y%AmJcS0Yp֧^)аXIe흠H4:Gu#f<37np楟},JΡOt5FXW>䧏=|cV~|=ȊF(ʈ"cY$M|n|S]ρ#Tu )S!XNiw|1gbb^*^tKsz{Sd6N9H[O+C$.2zQS\2ˡ 137!ӭ"h.390)T}cNٗGNd<C#øC[G'y@UUZjk;Qʺؔ4ѥo0$Մ\%47lzX6h*~(%8G#Cnsè( !N$)6q@,s}ↁBZG=%( M]eY`H*ض$ITU\.2ɥ=ـ92u t&U)2аL\/*iwDYBӲN j "#H"4@HM%o6 ~uiMe "*̸I:=Rs^DJT*(˲H$JfFA$IȢD |2 U!K[KQ(pIC%l tEErB9$1rj 5{X Ӵ,#CMeuPD ZSo +*X,[m*n%ADޔE@xsr7sk=(Y!)2cT*PՠZ#NK6KR,HNٜ%\rλfϿ4ƶȻ笣O>ŏ13q9H>]t-VI 63cH\2~x׿0<0/?ofKiQBj8V@N}&dZ˿<{Iʟ`A_ ʁ*?t/yV.< ;o^:t'^-0o6^|}[1;CwO7 x5Z''G l@ 4M\FTDb1͈S5iq(ȲJ,SN'i4Te$I i!ZJVDH,`ʳ4uw .T᜵Y6'Ŝ9x^ o& /ffjKu֝7,ß8nNrdfsw1 "v#:ɖv l|^܄S$RY䵍F#'TЇ_{A"Y!Koz= >G;5Mul2g Hqlw_}-G9Vhۑ+c]i$M,] :sHc;zG&/~}䎿c=y& }eS*wOp˲ LT&phC# rDVΛǢ9{_ɧelࡇ+Q1}l+'x]R&\~&:Z˯*KqWv =by^l $iR19acض88K( ȚJئLCPhj""3CSSd&S;DC= |dBS_?s'f ps|Oywk;]C\׉<")^v&?`vo?~#G 6xft'a\e|zT6Frbq:e>w>Sj0Y,saE%mhO3V*WIjHXWY0j:KL@~jJaQFEn$W <$^ZDA2kLG"ڄbMRyČXh C06xQ·ڶFTItnQ$I͔\IBRу0lRC) % YQf$Riu=I;D3t?4e~th[GFd? DM&2nǦ≦7!"@$P$ ߋD)A@؅2dUϏs87A(VFXuzj8驡zMU3̯)B"GCuL׎/Ϩ t+ GP c=:˻߳mьzl˖lnm ؀ ` `-MjHByC @(N mlK6j3i2am x0k_Kk=}BOguQ@ؖ[{.:q%U׈Pף0hH F2PT9}@lTECUT45i)")%n&$edg0bEmAt.J:M@/籲8Ϛk"[JѵaD]&~u7x+csv-7w]Ɓw3@sq:MT4JB2ӏ2^hB2LDOuC#ߕB%dXiPvDr!qYǗ!,}=XY 7pqedoSޣ$FNVO TCǴ- B-hX 6IpKnK\\;J99=MJFttwvӑP(X-tKyK(QH2!uVm[8iŒ |l/[0Hi6_Lp?8i})4_=Lbҭa ]8WjJaR(?˯| ]/ko&Q#óZQUOfJj7-#ec dYr(hSH+V,z q,Y&OqΗؼB>uC|+_fx`-?t/鍛)d3]s]IrC$ UC8g;ֲF9G IDAT|+a^hQ ߺ -u78o=Ud!.U:"k .ln^4"dO ^=5Ïw |7И~j)+s| r tEjDCPE:O*! V2ΓNMN?/)؇껬34RdVmz;:)[қyKpl_vyARi4 q~"ϘץCiU$1MiS--Qic>2”YUx$TWF(,MG8 N5t2,: 8w)HpIG[XJTUlt{$74#6hvuRc/H+y,s 5E%ܷ1rj}K$EG*ƩVXn#+^FlbWj{<O慕C#[9NV?5G}dK>c*>ȥ}]9w&׿yx;8O7]==\NU c0ThF+=Ez\|E\},֗㎷2;saCr˫^wfN5}zpU:r (1+aR&mI) LEF דHi)#Ű C٬U m̑9gl|F=kb9 D7tTUK" B *HJ0\EJfHB jIf+L'pt1u A8j裏0s8~S-vh Tze%@LOJkWS..s޹[)--ı#3JE;]9SgXeYؽiJOB OgteްT$n T4);jnriTlz{X|K@uLUxx잙vII(69!U4&~NDf bWf#ǓBt1ʿifh$'p?{#98QኋH^d(] nggv׬c|4LVE&'Kß f ֨Ѩ Z~ vvP=$˧g8o?'eQDiRڨ"tPAUq2N4ᠷ2pHX "\#ܦCQ-Wd3$MMH-aYhN$c(BBSPuAQ)B$$ae߉\'El[6LqQbȘ6olnC+UEQ5PԶ!Z` ʛS3+EycK5R@zR)2#oK!P</7)v۶)*G:CUt<=ט` ΏOsg?@+/}9.8ok<1^w?CUtmgv+Cb 䑧 RVާ9o%-8s'Xsy?G5¾'qc 9zhu( zԆG\Y{.\='蜘Cŋoz)G (}{Yx Hu |P!2b.%T9S'"CV`gs(^ 98x !;7٩c2LGU\qdJ(}@HHbAGQH,T5IL 4 6Jl'o6NMpۥ/|ٓ3 s_$)bR'zs՗p5WȽB6ϟC8+ z8#kF9y).>J_gAluL}Z Z'X3np5&~yc#8&BŲE9IԔ^O:Dg|ayBL$(J $ 1JS ZCSľ"RXFKYĦFK#L?pB7dLFm#yr=[V6n (VQTfa3B-Bq'9"cy(kRD<2ICM"t1R45I bA PJ/zf 2(2Fj>j;&0Rd'ZrESʟaYiԙ0 <  /g I\$mX( CEXv`iRv],Nӱt!vK3'Y5HeG avvEHfu9,;CW-b;B.iKR*bQCJ #T6CkF6XDk؊JBǣZ+fF5- IFh6,,OdiS,`3`BR'REF abhzr.Ad:;)4T47$X.ahL*b ehbXV 3#Toh(/-y*F@Xn م#W~{u-;._h`sŪ5L[>sO|D\੟~e#CCoGF[(\8NW] y~2krf Y}E{X=cbYe T,qΪm,8IAA~`:Q^):aa*v6Kt34Hs4|s-.̡i:aJ4l6dHFx-UQ F8^$&BQ]IjlFQM"6nL.I !hNҐT+J2:pDd$?:{pg ݗiPjf>3;5 y3OL;`tS1,&Nc|!^|/?wlRY*3s(Dj z>MQ;g*Hf0h%8ƶmT52iĚ+M\5&H\&G+$Z⩳LbUKB,"d1^iĕ`\(ΠT* ,-/us5RB6c4,-X%3]HH LE TDEw,S-q&OV5vuNDԜ:,-AhB&I0RiΎ{4hJ^]lEC n #l"".Ozxr\V]5[#KKt<} 7s8Ycpn?\ϼy? 2n8RNJ%L&%M)HU<(kn>_>{Cj-OIکqo>ķ8g`:DK9O 7]G8ph?}. \yٍ&G_!|?ჟ*u82.6PQ-U8bq),ӕD"Ll:w 캐y^xj JYT^ K˨nȺ}z2cer==X:IapuuD  C?HiВq\zeu(5ZĨXMmPG'jUJLk34D@Q4WqP@T=DS'pMB#ڌuvVȤ;YCZS#r'>JrG_c .siX;72y?UfCnYGts~UenLdYPwtàR+Gocǎ1ط Y^,O|FG`q4 E'IwuӹxgAN9pz'*IwueVVu݃CGP4?CBxؖI"KQ_<A@^'"3юm bȥ3RRVhfP{P$/E@h6 C04a$-,bC2 ( BtW 4%A$p.kFЪ;*u",#,-1?BGc6񈈱t4ij1i%Hwhtgi5=yԜ$\p4Cٶl0 GN@ݥ`"F.I5m1 dR>FHE{T޴, -bIlh) .Pv"b9NjI`DGUUuP͢{чkfX.@& Uiaڨ+cZaH\sxenğ_(BPt0uF}m!?$e܅r]\u{=}-:rDj:j{%ʾCGx ѕUD܎l RDŽ İ E9.T 8t8_6ZlY gayOy3{0e6[q*z^QVyA%: ^pd8vEC.DIStHoQ[XZSp'vZ8{/G9Pd1hC73u-!is,j@h`jt1rl'jPXYd9CvuomWk6g+pV}9cB_%sb/G&~7\`q=(˷qGѼ>v.a8v?z>|_fppuk=~BIqa٩fuvV 3:1CH=aĵ*"[ xqlڵWuN]oGKla?FF^_z~ abxVFٹr>rsަZBPuFS).Wx_{x J]yozxݫG`l'ÏOc,9.ӁK͔c|b@ IDATyqWsk*֭d.)*%*nF&fQL'y@i0N1Q4:r J1\\)KaKTlНULn4 @Ī0 tF5 U#TCE8PFALU T!=6W~|4_n$23yLramR51\(Zy MCm"1((n3vtp2)t@FA|2ġG:ľ{v" E =4$bm&(`Zr-RljQM,+yšxk*Ex '9+ O9?ǤN R]Ãbh F3FbKDAxEg+!@t$.NBA:m!NLg(mHQq'qRhFq}=I5lsY$G.*IgRd(}DJ"k ("B!;.%QgR ä@b|aPU!mJY0Tzs6:-f  HG w|#|g v2[3`fL1IeY#>s2[ė0{|8(d{f@ V-(%"#ǰWU&4UGb^︑tZa m\G9sCؚ8 S/iflۢjf|r a&q*T"ӧ26mb(Ic&hi[Rj C#F"M%7B; a칸++J⦳]Y̴ @Q$TCÍBrJPsn_kpv M0Г<;2&BFn6D1)DBFO6| 5ѣ3T'Tj*x=LA]<٣uwQ\\DL% % vE JUв~~<(Jʲl).j(? ڞו$ yZr=W7@driPniF1 'ZEѨ{.N60-nlU>5q(xߛ_ФAEt{dRYTap{q@>:;G ֎sjzIij3!'2-,qˮ/]G> 1(B$#($k;Y)Si")2N&s%g柾u/}^B|/~I Dt#Y8~߿%r%ؽ*<5|VEd3}/Ns0Ì}]|gbFY%!桏?2ЛSs:j*c Nq27‚crx4a( 'P{rDMjPe'}\wU ؽHҖN0Q s/Ϳw#߻^w1hb֗v av;gqV 2!/󲭗P8ĉCkm]LƹEQD۠,? x>^(M3:ϋy+=z8g +2ab:Lb/Elzj?;.??'X(8eÏ9cDh4j-K;pFL%> >== IK!]F +T:Eq[u"MC(B3IbӯN qr \z"5 tU((&t}"G!#P n$!M K$_(m慢AH> "$+>1{v3}%:D|"TXɐXdy"KeT >Zl%a&AmKش$qUS8yAE&YH$ ǰWE$+*V:*۸^N./8qZ$$ Z^uHyzaLAB Rv $`@1ȥ2ؖH>?&#=Q4 ja)q,(ة4H0ghm Gh0Yo&j#)hR5({0x(@QQB$EA*2aI|Ma0T:;\/VQ4hi՚ 4l,# C HCQHRtd Fƈ)aZMݙ \rlgfq~ޞJz*twK(5JFweW9av>?,^tx"oR5)=5GȮY4 ǰYlԵKB@owbPTS 7_"52H(/R5d Q;9@?'Io'VJpUPo9>yS#aiʭl:{X<4ɛ^F:GgO3]_A"L&C,4 ٨˥Ѩ!Y 5K /c-\sَz^\% CR4ilhe(aοirۓf]אH2,l UOxHȤMV]OP_Zgi5*${Ie!aRQDl|g>j*N@M(2,j ? ME}\2 l#IB 2&Rs%sO?7Ǖwrm /Yɿ?0\!&'9!aaY)L3McZi(D2D44~#$϶mV;ЋЂO($& 3 IuM`f5/}C@Da" hdGWM:J!BID2~a:t7X]"q+;{Ie͗Y/Q@lZ~nZvw…!Z|JB6%1=sMQ5*%~N= &8ۑA!#KU|' 6@sva0jЏR&ZJC sty"2)Bbd-zzz(, u$kڏ$%3ab4T MQg +.h6tUJ;yڇ0L>/q]sf_>Co#JETa/yfnʉ#X%Jq֍l۰bU/Yl4tZGޠlX(ogSOSTB)ϡ!" Yr3Ѩ0V+wɋR/ap^FQB@%js Ǿ?~Oď<} tiͶm24TVgw?3[ l^aX,n-Dp81$L YP.7ގ90|߸w,0=w8 ;<8?=ʕ 2//pWЎ3+gX>6 lt0i G s:/F**%U<sart*Uw{i"d|-+`٠S*G궫o~_^weqUg9j_$wߺws=o{﹏p}²jJf^^==ZY/|-7ɟ>M9\RcT0fY9?=u.w^|+_r:&ǩW.208Nׂ"Q:k-$%Y^0n7cfnpml۹C bTi$n"p0w.,ae֧8I4!D3_FAa$-`}z/B ˱iw;R6ERCzMR$E:R&q4`2%%|^G-Z&\˵0I](L _F]gر/)T2_z-ϡ.߃`E0-gşO>(}4FQZAhKMEBC 2#00L5-5z.*ئNmʊ+d3M8M|4-S,ϱq5-gOѢZE[ 2<< JJ4ٺmy;+O>4' _|㣟5n3|ㇹvf>V{g9oZχw\W<̷WrZS~-x<+}/Ɇ+6XB5Om`x8i^lR UT̝kw,zm2BIڽ6.p蕗)]Pٴuh+K4k%M hQ{Ł#}%-[v?Ik1}%(J^4Ӱ)Gn@\211*v XW_wgΞg cJ5Ief޽{9~xfۊC칆ZKLLL*OGNgw]M؍Z="bUkKaHXZRgYRyNK êe 0X;{Iӓ!>=& i\˲0;dϠmzeIa[Rz\F)85E+@ _TѥI`KnRAƄ - K>0:$Iu=VrȎةDWDא@M~@>=]dJpA nv+[w~RRCd5I4nfU]BhHٰJ vJ@vh\\ZcldM,/D AuhYX*v.J!4ڭqJ MIC'CJ ͡~)>X4;8[kb hVQ:$2Dk ||?<~JdJ"S! t&7#"X^aYP2 #L3+]%]CBC ta0\V=k9s.P)eaf&:A@S([a t:mR/ >o>Ru,CG)eZ,/7]oųNQ3e5k_$hJD!abY: uª ;>ioєoglr= km āWYb)ЩnfxpNNDJl+6䱐QBoqUo"[f' # νtUcsjI/r2jX뱰QE[f>'˞w||C07=»V&v&޳m XIu +,8jYhX̆g;C|߽xᇨRw֒:>O9ta珜b!P\{ۍみ֖f6Bd9Uu^<~ 17n&(Q*7_Ms.Dϙlw5 4DWȵE6髶;SgmٴJ7KT9Z6gΝeqF$A"]NDҿ@Ymض}yv1RH'c[ <4#h_Iyppe"If=}&6\JuR}˃)|BCɔ$0-o2 EdRӈH1|v1LD} ad)z$I򚠑 H^v| F) Y4SV2EFeCm2{OnYEpia\V+T_jkQ*$pL h7BtQK W3}F(ہ0&bb)[XtIUvuiTGu..2Q>N>`990ca$Q1Btv 0 RQFLn"S@O#T`n%/ Ʋ?l:A. fh@MjCf,)%gܟG\.& dI4Th,FR r*Q$if*F&ց(M>f΢<\-%-z^|R1f9XZYv=SM*4=~U8Wレ\q|ޡ*4G'9G gb)6)iZLֺI-3n2咅z':;jg .|nfkX9zuҧ;W#"/<Ok\s/ ?-s8\ _sΝС L:y74 8Fpr6O!"GՖ/9bX$ #[,2d{]"\H:$Ձ2Uz-˲ ;L M%m[)(B+kI(WKnSHMP04mP{א*E WTV@iSS(M#A1%I` i$(c %:Qt?! '1I>IO Hsɲq*l(M2TXM;o瑟#,.ZksT2~*\){HI \cx\;R~X c8 bDBL'È4 IzkKL`;|5(^QoYϚs-yž}Xc$);]0mLäVf]DTd&S&BmI0@XYF*㸕 px~:}AfH#, UDtTrJeA4$%/RX8ad c;# l!M 4lqCo4^["bOreG=o|ۿSGe?M3 yo1ƳDZoaZe;QDy, ʼSaeDJ(swïcXFWH49Fcd| >gOgifG(46[ozz,<֭W IDAT2yE5e1y qҤݛgrd [Dy=*\sլ șCo릮_OΞ#oe{=mnz^x&{ zXKhuhTFnˣ'YjBA37cepzֳɉo)9nڽMp]sN2Pb"2Y;K`]8+4E!Akk`8\Cj:ga~Ã;r%jΝ;Kwm$m8M=nf14Qs<J*\3Yx)z '7Zk8.[jNXBIE#S7iQl߼-1a`^jm%ˋ%31IS4O$E%1fnEID'$&RKH-e5W1<9vؾ}3o{uw~\'92[nƴ^q]R n!ЕN3??K%XE9_dǖ͘ 2֒--e,?CjhضEMl, \(r2&EII26Z"S,])kDJRa"g똆ü#.]8OJ N(V%5lNhS'OdVí[&.yI-H2f(K#ҾJr:@l^4l3>6>qu"L,I4(Gkk&S E Z +-F&MNs 8ciyFe\Bzmc)\t$RM~dLDaDD7 kn&zbKKH$Wr;gbS= la;w񳧸p#ǹ+T|BrLmNapOᙧ/>Kp?[84>ƹC(q'%0 ^Kr+*q̍ 8y.$>K{q͈_9̎ \3n93@\^C]\D|zv1PRƵ~c^{ak,זI%g5rf ض}GȝT*lvWXW|-*jul76ʓ,YA|r%ɓ\VnA4[w_I\䑟<+<ۮU6n¹3 ^H冤AZ&DIp%ow/)8wnT]yB;Żm]m֞~9ST!O/,:d۴6׿fx k dWs9腗;oF[|d"ob=~ ~^NbxJ;'q+2~C=xU<%8qGdǶ0EghQ4H< $i5Ā0̂-mF&GZfpb ,/Y@r2FnDdh!"J Ib՗ J,L.m";0Ltʚ6aN")<2B&aG v1=I3( *#|'1d;HR?ieSĥM} 3X]Ť}EIsG2 j]!,0 v$ SdFh!Y5T)a1>{ŏfW(Tp, Hq^9WϲR,R n(0 4u{[>x(s\("*N!}Gޢe+GEF JٳarԿ>D-Qg:ܲwϟ&߶kk,3Wt =#l(K]=/ SLaiP*:G4ugtdVyEץ|?F)9ץn.Xn=y"},+4 n|} `í~c<n{y?̟=M@_Sg6s#~] O39_c`vnHaxPƙCU142C,go;ɝwX<%(ԓwX># cG\AFY:M;0atj={.sqarb)Oط:<,'_|{n+'9t"v߈a#'冱rYZĖQx^ ) EȩN sǸ M"H`z'80>9 k4"/wK38V StiZN l6,pe2P $8Z}nJ!\A6zBƊ r6 6[MPH*W*bĹ̯+Ef_S*JA(L#k'4 H%RDwq]D =,?hHaJ"-B.ҴBҭūKlaЈa9:r VPkt[ .ƴuB Ub2UdC)D"d غB & 3?uB*ۙYҰ(W"귈)M#I`mq{ $gA,e,- 0$fCE(V$iAiFp6 AwE0 ) QRb6`%.Iom`) C&q' A'TGi.1 q"5LSX$j<"lc\D$ eF4HCZ88-`,Lǡ[oa%PP&QlEhA r{8<,7}GVX:|V'Cw/U;t)-v]=ϽAμ\#gT8v9. 4pz_r>G+Qr\g1 }Un_cp[89qaڭ%>O|Uu{;\n)Nec۸gffkȃ5ÄikKϲ(aU^S {,-iRk Vj#Z8x'_8M'hM!5`[%4,RP& &fX.zyf "_*>5ʃ#m,@եTF Ye|t ߏjLoX|ˮp.\Ef&drm{)L@!I8. A]'N|TIBa5)DIJ4JR^dP=k IR(8XE jv.N5?& |ßG'yӏyϧo)'og5a`F̞`pb\sG[id[e#,Kffh;g~i^>q\#4O)jc4*8~ ]fMed8$%:ĪT7fNxY޻_1wkuSGX u;pK-]?zc3~|/bH]qˍlxJ&}"NR0"YX*|v{q]G-rκ1&n0TeǞ]\x|u]2%5 ֲuϚɔHJ6U.?хyֺ=ziR^}I+Mjcf:GcE`&I*xg v{,9m1fxjlx _ lwAi5_"I0;1PU.n/b~e(Z):h60JVы#*c#2N%C&hhwL1WbU'N)2M-f`a*\âhء$]i4K3%iFcti`:i}Uwz$1Y Y,A,1E\Ә(IѲ$aYc7\KRYQ̵#119/+|RPʳqLˤt}rYk0,bAq֭P)>J VXKP`dh J80LDa^2kJ0LuSf=RQ*UAMJBCG])뚘oƘ _ވC8[gs\S'CxGͮX IDAT^k-np,Onb=3l0{sk'O.bf#}+1`W(%|e4BhW:!Q#@vcH- e]4$纙 4,!V>l&} ĩB($T^L޶C̥KM8J]jy']IJyem8IM:ZpcM+8Ͼۯ`3Gx7=xao9/F|;yṐt#S*O~=}ӍԗiԖy;>|Sp"2Ia˫ob!rx,O697L}p׾v>JNm݈y2SppH)Ɏ9u[0Put]i䝐;o,?cVE}{m>^Y̓8ItCqn"6ײk8~,zѡxtN=r 6̜?ĕS+<{%=:s{v/G3UXd˖"wi6 tN !H(N$_H'p7lnݲF޳ޫX#\.sߜ>~#r= &^.owtF4=ԡ&'_5KXc7߹nGA[#lv>Ee ț$Nԙ;9)gѰxH"fσ1<q P% ^GSDw]xَ{((&vkl|]]Tk%dܺIVT, w}֛gffoWz m]H4Tbiޭ;BfcK4pUQ6%GM0=VKﰦnjM"`xaHi6M u}ZeǾ(>)( c ; y՟]1B4$>f?D2Ik&a !A`Z6~Kl=Osb3,,Zn} _r]S_Cc, :$#">}CUi.>}+9ˠ2\+.v`A@ddEB94$\6GѓxJSgT X&dT&Ha(j 1-*H誎&}x{>=,~-\(yDtd- w!N#[o2¶Aب֏rOM ]};<8{J-d*"|XBWΒf;|\*cO/P\*#) :zNlG.ϻT_eY<4@Ĩ~x.*afiu׶1l\w7.l6G:85C:w||Q|fOo2T7ixcǶY_B"i,.4VyY_/4&ϞebrQYfl[;z"_b|f6>1N6Hr]:Sd5Jm*f^O~oo?|oFfM/^>uZzkW_Da_}|}\{/=nA*IƳ|SfM9ŭ}szYi l Fض"j2ys<+Zdlcӝ72N>oCGߠa]9}w Fi"RJtcfQPu -QyZRd *c[VĵM|ω๨@4 \]"|>cR=Ew3cǘ]!*n3,IrKP5)+(HO,CdEM< ӳk#n_ k9_M[y+_|gWJtysS/K!Ns'70B@,"/15SҜa0FY\) p%/|FQԤݗȗcyfinnZlĨ4 !xM TUJ iZ*m]=dyLE=dS(I$q|!* !^B7/PLR""˫hcuRGtKs(nB DEUo"ɘ)%I1IBk BJ҅- ~ WetF:X.N6J:&A2~6 rn @%C6up#if-(Jg?+ e,EH`.[ zYQp\UUt::;h5Z YCE"(g;AOʤrHJ wd! ](GrM!2)_Qu$$\!|T-Ie$ĸDîiJ$kT і*OLWu8Dײ&|j˶$USd sm."042]]l"N7 2FW}5,,2;xZm QQt =GOĨժYKL58ȣԚ&3ANr< 2={4;yj=ٵYVpc3qJw-oPamOܵKms5+5~u9ԛMrxV3_ ]je}Fe76m$yl1JWYce4v0F"8ə< p˭Cطi3Vz<4O5z<ͪɡ,K&\}'i-%bϽJ(k?za_y\oq?NMN;/ބ<C]wwɳXDo,MV#myXBQJK xFn[&"#*4lJRx$qL jcWd&,"qm?E\eyoL_ ܤMߊ{_!XӗfhCeWB0Br )8CLYx)ea룺R@\BN$Kn`-F\tw7m׳nFZd+xO(xCR6ip(Ӫ mPZPV-i@!ƮDq-%aDd*Է4es)ݷ9G>fnb"TcG`6[΋ژ`䪫/G"o:L;rZ(8G*L H I 4Uj5R2EdD1 =A1QVPuAF=\TC%>Be,ޑ$Б7cP=XyCrۇ>SXj3(eק4~'!ϿE?5 y$D$4BG=G9FBH-21:0uIv jer#h)zǵ&Vbyn YPH%SثO$wk=AvÁfRp}ya8E3Cmq+yX_&?TṳDMdYX^&T$j*˳1q0AQkmm?;fv1x0i}~a}u9}z M+)V}.OGNddYՐTwaK" zW1S)Pjnfx^]+RgixCeyD.r7r+tWblqܩIƎ"PE|"ft>gY<ӟ`nt1 {GGH%ڲ&^0|b|u̞845Cid1@U]ըW+ȒB:tؖU$^/rz)nݰɋ<@ޫs˘<\&Ѿ1&\0jzAHRi.ǿA:Օ͈_G};6AfF:sG(ktu9Nz2 3lL&EIULN!1b?x;]\c\뇸q[8OI/,eI/.V',?0bȲJDz$vꅅM(pwGn A*! ~(!ųXFبi!Tu\CA},BdIB?۵F a2 \\_b4y%?CQ aL0҄K 8Colۺ,*88UW̮+qQL︁3'+v֬q]FvK@/>Y Qq˭7sɍWCx/Qe@'/p| IDAT&CG_KeN4O_.6b릍\~Z^~O<թןwwx_7cL:/.2LKS6܄$ 4rY7 O 'CϿeQTFiWG p !^t ]RK~E|:)2i)="6r`f~5Ē9nb=F09=KieZBi~2m"L;jM׈5:E,,.!t0plt !PCMXUY@bщ\u,At<0k5p auC/QY2d'ޟgpz@T%K ,ϐ L:FX ]v}/8E &_mG^˴9R)# @3mDƪU wFj_u}j)ťɄ"م疨/Q*VjXnT#4hFP5#"iڅ pa¤au;~$ #ܮx{j\gxpم*3*Od5W1u 3g-=~Wco8rOHV/>?>x17|;`o% %V1#KhO(&G^|cut~ ~CD:_;_MCzqJMppw/HqaRyM[T8ZϮbgu^ʼB+݌46wcK;KoN4gI7mze .Mj>Z9+ӽ=zYIv{0rp wzMͷ+g3:\鷎171'\9Cqy%z{I*Uzix٢0:*rd7_9Ƀ?COIWM23O=ņvRm.oZc~ܭS<~۴"|(XJT ʚ#M1<{}4o@Ha❙|_{`Qv\Oҕ_Ypm9<%@";ػg;]VRA6݅x8Ó\a%{47\dP%}v? 8Swby_mFQejocN'ϱqxkYT(b96lOIti"LsF{}%LE **Rm,+zwDfjE[C|4#9U߆}y"&;yE ?i % QQ@Z$T+Q^YbW ^GdB\ v\ lfrn@U z\FU|l+|gVّO8z7'iL48w|>AsRăj$B!n6Y?Bo!`Y- Ɋ ?m[Ȳ@躆8hJC %|*K&ƲlC_2=Ϻ#x'GNĜ_%ҩ fd.G>paSTuu*`(2bT󘙟giv9&gfmUI: r,'ױRbdSY,l6u*#j*Dj8Unf`{f4C誄_(a{~@^ORCznRw3?-4NefevM4_W~Wos}mKig3 6~Scm墑&wڛ5^elqXO}حzSiÇ/|{YJKc|?W7V(YZb^ѿoD{Z埿5Rx $غ}өoOӿdʹo]w}G}k15q3UM2:~N88ӘG020y2==YBUA2 JLځTNюo4fg0q~?Oѓu6^z)/A*Ge4I5]3̝b`kQk)epxGI( 391AK.zUiJEZM ylt1z,N(!HɦsMlበt<ѧQQ ivMg1MEr=}S1Gdml۽K3a3-%TZ E&)O#-zbi$Q%l9KDLYn-(z{ma8Nb8NdZGB] llƳKثcqD"ԗYԜؾjص: E3'54"}ĩ GOOҧوb㊽W!/-2_!n(Hm$9Jssx@.Ѩҙ2vKӴu Jtϱ\ |UQ^^ZQ);&,bd=NDcخKBp i.E|0JrOm˒̜X#O?Xu 'f!3˗24m۱FF[f=L )JBM5-2J\%@[# V$mEӖٸNGs $̀gQS ײD"IggPVqk2F"DjfM/HМ<Ķ6G(UU"Yb#OˉA6!OtS$/E[7>Ś\qF6?w||I~yH197>= *}7{[whk|=1}g^S|[4 . :US~~_a9Ȳc9Mv`yv YC$N#:A&ũ3ZUr;Y ܱ#U.yoCz6~IUۮe HJ&I؏c$.CdϦ!~|8놈7KshnǕx-z G9d! At UǐOM7HTu rŦDT9@cѿ<DX%). :"QlI} YSDd"Ri d}@wDZE#d VAHDTUn zoW68`I&J +h<3 󈺎E]~z 2g?mY9w_/Ri>q?|ܶ|_bp}/k'?}?I[9~Ϝx08eUٽO|(P;͵l;>O8M rrdiR+/` 60{䅇ϰ2t,뮡$78X$-CsL/T'E컊5G5X[t>(Hhw? >IenC#tu,>I[e2I|UfcL5TZU&ϕh6`ia #cyb[ Ov\v;NaFUS+rA]Cd_ZoQ\Zm6)AgR ݬ=HuXY߹Ͽ@a7He,;Gs%>;ΉC,ʹ g^m tѵy`z:(J8-J ܢ^`6ค Iв(-ѨIISiT݈`Ox<8.V0 %\:v#z"Hb4ԬvEF`Jw~Wutf+:4X4|_1EYiKu3v7޶ZsĜ3#+J{SxuBQ\L׎@qEӘ#H癚@B4Lt IFD-i,YwrAiY6 $ .c$e6+qzvIM)>qJ~ ޿k6OE Y0`)C3)azqw婇)|Wmp!*|X7B4UBGIT[&JLY5 Бi&6NTa\CXGdK:"հ-$)@EdAAW P6Ac9Hࡂc:5$!Dv}f D"qu;5#=yM&gs5|'WXg^!YX"(Y^TUH//ok=?uwv >lX'=uޭn@rYmܻOWҢ'BN5)Υ(/#!BEOiZ!j#Yv4ݭ1>noɇk\y-o lK}'̢]$Zil[>NvfXqΏl{jH/eoҽf-#r'x?]7o' F&8w,l4ARk ~G\xO֫YX@LM#/pDIE"&77L Z2pt?-LnqP*"P3r]W3)窵̝yҳ| (p1$F4e -:ؤ1'fxg囟}75cϲEk^P ʧǟ7?[L6Ov \߅;[%qNoMlܽ_<,X|aZ#md&QH4OSJXGGw:fghv].Hn]f V'w1W/2PuF22׮eY3EbY?5'ϰ|fFdϓ]X0.qcM mXb>eװ+hW7*e9O5@qe>$ѨDIr-,@ ^$M*c5d!PT 6mA KpiyƢ,HآDcZx Y\eajK8 HU(XĪ ^cCŹ~},#/3/]⤟&&p8Y93z lXŇmhJp$pЏYdT' EQȕ(QDڲr~ C". hAѲL1G6R*)rHXyęTXKskqK|{e*9jco`M<-_s 1:ct50i߹+\ȫOoѽ*ګ'ŒYme7M x h )(2a9H)<>~X!fkL]qX, {n׵!'QbZ5n4sE/CLCPĢ*I\D )*>ݦ4)DAD[ DUZ⤳sc 3[JIW+M85Oq"PCEgq.Zky;M>v2v+rsآu|QL\{e Y#JԢ 8AY7d?8RU]\]#AIBDv$o# 8e!^ҨbKvmįrMP8Uou6J:anf33*>502D5)u/ˋ!J:1l]$ziCT$]SG4 5L!Њ"" 8>_`0iV.Z(P_Ls 9r$&8qãi_87hQc47ٸe#kn7s=妫JH+z0_϶6W)zx7m#D&GV%:WU˨~m "xyL\e1_$Φs| kzz\r3'_>@k0[IOИHuUMJdc#dR6"=1,nضjub16u*z466,Q5,* ?meTw2Z2{n~S;ٹY<̣Uv;hoD9F"l[IP%$g>#/ӃXXFOӦ$tLz{?͝Mٱm eZۜfΜMcvzHGR*"[7#6 2-M BHC{;\0K'F]Mj!Eê(28DŲH D 5AT9w B͍L;=wN1`B\s̨:7er]#wgۖyg_#Q?~^<9KA i6272IŨsnW8pnO#IEY}F~}evlʵ/jǾ }t$Oe8|]>.ruc3 LTMDF'O?GKk`_}s'rݪul[M\9kMMIϟ2^ 37mo1E(Ǐa1F-ж %5_zap367m:9O~p !WƵL a!4hUnlF/T?t;>7Sfi kXϥ^(rdDž9>SΡ6P.0bG{@*lz PiJMZQі,.PWɕ5ˠpq aV,L͡ X Oe:&#%+$5m<=?mZZ;`ha];0`fz(pYC_Q0ݶm/ar|o Q U" .X"ڎXK˱++,u%IKQ-Mih`FXT. hm]T*J, Q#3c)145 $0(Z$5 DI{S.Y\ T: [Xbz? hE"5$oBwB")T1,5}a(gOq妭n،Ԉn&XGTF:N8B,JU$uv6s$ZQ^|O{_DTffeՋ}9^Q@DeKmnQZ[XsM4??y(##9rP$!d3Xn' $ljLjǓԌ:m།NTTEQQUp2cQpfؖDuC6; !pu퍤/LP*ո/=G:}G,ZnQr6˴e^ּv?n;ǿ&O0'8<ƫ<pIl(u7O3Af&ihJ 4 ,,RYdse&.MI~]yv*@R?5}VhoѨSA&fsNijcob%063'cO\SU2 yB~?Vz֬cR!ZQԱ ?L^Ǭ[DBQ"03ck9QkWMf.I66es~TM!ԀjdsE,=()hE!2+, xҒ]zyuq\/v#KރxBCQ@,QDTWkTtçx\\xS;U%Ы8AݰqI&]L}&ț:"F*,[/F Ä0:IHYQpk+ (g5?l۲.F@! kLBT:fso-RF\< !P DY4޸|/HlvBOmo#w:EVA:w"&l}U/^x'SD_#WtyײF|ܤs߇>O޿3lXN(ie9,K|Vy |y:Ns5٧r>ٹj HZUyת`diFjY #3Z rd`߼߻]gs\uģܺ=^oz'W8"[7TRMor )pUήe$5&\N.;nriHfrYout޸تN}+nN5366.Lc{z#=Ev>͆ص: EH6еc56QSR yMMk:jvtä^өUkX@0!#i*㐈54 f@ZR^AQ$E^-b`A8'uF&/11&(9Udc6GYL)3|\NҶ m8H)S ).jpQTpMU*HH(&/ \܌a8J8܈刘 a x#`C7)+}Q%V%"0ڬߺl%Lz7CGGSShH,_c8zj1̓Z{¬zO e~2U+ÿs#;1^O=7nXRU۴q] u'\6^_bd>@8.T(K:3h୸nKL^A b펫)6 Se=۶! 9$>r͍-`:r,YƧyxdKc[: >MFEUE\¤*BA3Y "Z̾سE <8{|S ]~ٹ~څIvTd闙Gr/.@j.auc^UYo$Cժu\A@i5\{.Vx>v,oR_VĊf2u6"zB1?RpUuTRm+Y&C#ħ?e<~3{lm[o`S&ξk72ulߝKݳۖ9w>ܵyw6/?=W]@umuw^E'[{i/<(_OXc̰,R%@!?/) C! )]8bBF<܌OP(f 1Ffur+[v)C!^G=*pYjXI0Z 2V{5x|ck97K+Qi_&1} <ױQ0Ivחy9YNS\s;+zWq-'Q]ۺhfHBL8b[GE"s|,CCu䠏Zqw#ȶۨzz;q\FF0uR@g{;~M#N!"!vJ-^,Pc MHDf+띻(-330+ |-! R( B^Qsz`4"j -2u$S8S$qq Ѷ "bJUGq#DVrE,,* R ɸK.Fl29fF'(u!F[Zy{rXizzF[a~n;iRPEƨ/n1?4Q*(/, Kkؾ6o?93߱t"toq"7>Ė|;bUiۀѳo-F7kHfyw/>xC[N=~WG}:~cu;sCS"s' J琦xчYAl05>ˮz@/17ښqm]ETkyTTMcٮ /bQ\XYXm]FcɊ'4mdYAV\AD%D #(ʒ)Dq%-,˲v<]>O7 FbQ7k?i3IENDB`znc-1.9.0/webskins/forest/pub/favicon.ico0000644000175000017500000000206614565511765020620 0ustar somebodysomebody &(( @"""""""""""""""""""""""""""""""""" """"""" """""""" """"""" """"""""""""""" """"""""""""""""""""" """"""""""""""""""""" """"""""""""""""""""" """"""""""""""""""""" """"" """"""" """""""" """"""" """"""""""""""""""""""""""""""""""( """"""!!!!1 """!331 !33333 !3"""!!!""""""!znc-1.9.0/webskins/dark-clouds/0000755000175000017500000000000014565511765016613 5ustar somebodysomebodyznc-1.9.0/webskins/dark-clouds/tmpl/0000755000175000017500000000000014565511765017567 5ustar somebodysomebodyznc-1.9.0/webskins/dark-clouds/tmpl/LowerBanner.tmpl0000644000175000017500000000000014565511765022671 0ustar somebodysomebodyznc-1.9.0/webskins/dark-clouds/tmpl/Header.tmpl0000644000175000017500000000011114565511765021646 0ustar somebodysomebody znc-1.9.0/webskins/dark-clouds/tmpl/FooterTag.tmpl0000644000175000017500000000014514565511765022357 0ustar somebodysomebody ZNC Web Skin "dark-clouds" by David Precious znc-1.9.0/webskins/dark-clouds/tmpl/Banner.tmpl0000644000175000017500000000007114565511765021670 0ustar somebodysomebody znc-1.9.0/webskins/dark-clouds/pub/0000755000175000017500000000000014565511765017401 5ustar somebodysomebodyznc-1.9.0/webskins/dark-clouds/pub/favicon.ico0000644000175000017500000000206614565511765021526 0ustar somebodysomebody &(( @"""""""""""""""""""""""""""""""""" """"""" """""""" """"""" """"""""""""""" """"""""""""""""""""" """"""""""""""""""""" """"""""""""""""""""" """"""""""""""""""""" """"" """"""" """""""" """"""" """"""""""""""""""""""""""""""""""( """"""!!!!1 """!331 !33333 !3"""!!!""""""!znc-1.9.0/webskins/dark-clouds/pub/dark-clouds.css0000644000175000017500000001266714565511765022337 0ustar somebodysomebody@charset "UTF-8"; html { margin: 0; padding: 0; } body { padding: 0; margin: 10px 0; background-color: #444; font-family: verdana; font-size: 12px; color: #fff; } img { border: 0; padding: 0; margin: 0; } /* TABLES */ table { font-size: 12px; border-collapse: collapse; width: 100%; } .section table { /* we can't selectively remove the border from left,right and bottom so we make it look consistent at least */ border-top: 2px solid black; } .subsection table { margin-bottom: 15px; border-top: 1px solid black; } table thead th { background-color: #EC8E00; color: #000; font-weight: bold; padding: 6px; text-align: left; } table td, table th { padding: 4px; border: 1px solid #000; } td.mod_name { white-space: nowrap; } .evenrow { background-color: #555; } .oddrow { background-color: #444; } /* !TABLES */ /* SECTIONS */ .section { border: 1px solid #000; padding: 0; margin: 0 0 2em 0; } h3 { margin: 0; padding: 5px; background-color: #D49712; color: #000; font-weight: bold; } .sectionbody { padding: 0; margin: 0; } .subsection { clear: both; border-top: 1px solid #000; margin: 0; padding: 8px 10px 5px 8px; } .subsection div { display: inline-block; padding-bottom: 3px; } .subsection .inputlabel { width: 150px; vertical-align: top; } .section .info { display: block; padding: 5px 8px; font-style: italic; background-color: #777; border-top: 1px solid #000; color: #000; } .subsection .info { margin: 2px 0 2px 0; padding: 0; font-style: normal; font-size: 80%; background: transparent; border: none; color: #fff; } /* !SECTIONS */ /* FORMS */ input, select, textarea { font-family: verdana; font-size: 12px; color: #000000; border: 1px solid #000000; background-color: #999; padding: 2px; } textarea { height: 90px; } .submitline input { width: 180px; } input.full, textarea.full, .full input, .full textarea { width: 430px; } input.twothird, textarea.twothird, .twothird input, .twothird textarea { width: 370px; } input.half, textarea.half, .half input, .half textarea { width: 280px; } input.third, textarea.third, .third input, .third textarea { width: 100px; } input.sixth, textarea.sixth, .sixth input, .sixth textarea { width: 50px; } .checkboxandlabel { white-space: nowrap; } .section .lotsofcheckboxes { margin: 0.5em 5px 1em 10px; overflow: hidden; } .lotsofcheckboxes .checkboxandlabel { display: block; float: left; width: 100%; margin-top: 0.5em; } /* !FORMS */ .nowrap { white-space: nowrap; } /* LINKS */ a { color: #EC8E00; text-decoration: none; } a:hover { text-decoration: underline; } table thead th a { color: #000; text-decoration: underline; } table thead th a:hover { color: #000; text-decoration: none; } #menu a, #logoutbox a { color: #000; } /* !LINKS */ #wrapper { width: 800px; border: 1px solid #000; background-color: #333; /* for the menu column */ margin: 0 auto; } #banner { background-image: url('clouds-header.jpg'); padding: 0; border-bottom: 1px solid #000000; height: 100px; width: 800px; text-align: right; font-weight: bold; font-size: 13px; position: relative; } #banner p { position: absolute; bottom: 0; right: 20px; } #infobar { width: 800px; height: 24px; line-height: 24px; border-bottom: 1px solid #000; border-right: 1px solid #000; } #infobar_ident { float: left; padding-left: 5px; } #infobar .loginbox, #infobar .logoutbox { text-align: right; padding-right: 5px; border-left: 1px solid #000000; width: 270px; float: right; } #infobar .logoutbox { text-align: center; width: 100px; } #infobar .loginbox input { width: 60px; } #infobar .loginbox input.submit { width: 50px; padding: 1px; } #infobar_ident .user_name { font-style: italic; } .successbar, .errorbar { width: 790px; height: 24px; line-height: 24px; border-bottom: 1px solid #000; border-right: 1px solid #000; background-color: #900; padding: 2px 5px; font-weight: bold; } .successbar { background-color: #070; } #subpage { padding: 10px; } #content { float: left; width: 640px; padding: 0 0 1.5em 0; background-color: #444; } /* MENU */ #menu { float: left; background-color: #333; width: 160px; padding-bottom: 1px; } #menu ul, #menu li { list-style: none; display: block; margin: 0; padding: 0; } #menu li.parent span.title { display: block; text-align: left; padding-left: 10px; background-color: #333; font-weight: bold; } #menu .title, #menu .topitem, #menu .modtitle, #menu .subitem { text-align: center; padding: 8px 5px; background-color: #777; border-bottom: 1px solid #000; border-right: 1px solid #000; } #menu .parent { padding: 0; border: none; } #menu .modtitle.active, #menu .topitem.active { background-color: #D49712; font-weight: bold; } #menu .subitem { text-align: left; padding: 3px 5px 3px 10px; background-color: #999; } #menu .subitem.active { font-weight: bold; } #menu .subitem.active a:before { content: "» "; } #menu .subitem.active a:after { content: " «"; } #menu .subitem.active a:hover { color: #000; text-decoration: none; } /* !MENU */ #footerbar { clear: both; background-color: #D49712; border-top: 1px solid #000000; height: 20px; line-height: 20px; text-align: right; padding-right: 5px; font-size: 80%; color: #000; } #footerbar a { color: #000; } #breadcrumb { margin: 5px 10px; padding: 5px 1px; border-bottom: 1px solid #000; } .textsection p { margin-bottom: 0.7em; } input.channel_index { width: 3em; min-width: unset; } znc-1.9.0/webskins/dark-clouds/pub/clouds-header.jpg0000644000175000017500000007446514565511765022642 0ustar somebodysomebodyJFIFHHExifII* z(2iVCanonCanon PowerShot A80HH2008:09:09 22:21:592:0220BVj rz   |f0100 d 8 2004:04:07 05:37:572004:04:07 05:37:57I   .`"$\ d  4 "\@ DeII &fff)))IMG:PowerShot A80 JPEGFirmware Version 1.00D @ 2!V"@R980100(CC   d !  S !1"AQaq 2 #B3$Rb(5C%'46DVgw2!1AQ"aq2#BR ?Փ2TFZ' W>3K wvbnvgT߹*/YgKrH6툕,q&io5pMElǰEJs $8`785ha( ž71+oTu ԈM6|&$R 6O刼miV͔*AK^'o MAG2q]T-WTث 7f-!WװC`q"Nd;dW=ٮTUoISMQ)idapK8rsYKbJs-.& ZzU`uǓIzTf099cNcӘ:t1Acssg-zkjM55i|y\_{ĝ5݃T5(Ox45-Ğ!ɥ멪 0-L~UG$M(K77ƅ;^geATخs)$-T%a53cPlL>Zz"Mr{aQLZFum`5\+t:M݃7 u]EͬvQ+e#c Zb.u/Sq~ ;j p ҅P%D~xT/Eɵ4،My@{Ԩ˨2Q>XeWq+bu /0Za` *oɤP-ō AWY s젓ac3]@*N ,9%ePVۀ:YW&t[|].0d9%N,fE^V'|(A6ɲ),K/@ mSm*N+SkaS/zM`oc0|X̲T0 $1$#ʟVKz #;ٺ]B}& p;Nvۦ.ٖ-$vk60X0 @xJgU_#ȗ5i1G'Ao@n`n8m,gԵKXvK7ᯒ꺅ٵ(>9VY F)c#H _f-j,ʟ1Dﲖle[ z4m2tT$v]$[y%tco KQAaF8)Ym8[JWoZ۝5$*F8a=ڂ{X^x{0m|+8Al1FNURFך!$ Ȭr]稃+RǸx]U,zi=,3݆1OVyh1?I^Zf9 ' O*PҰe`;|CWr61HWNHB[+#J|C[8A-*6zg[޸DK)[_sj0<en " :o,6A؞f_ݕ]SEk ;4jI(ւ@TQlH E,1 ||߮ R$o6)6Rq&F*<`xYnڐ_ eNo:;C`ēKN46h@)o~8m*g<SQK"@cv$6xkkcxZIg*UI9aufx&Y2bt6#PVU y}˩P1]>x6x~*{c&>qNTg5W SXj@hfӅC};vAIP[B1ً%Z)9b_tm{oa_a8rki#>x:jT2QqlcMkstV:e?_ VYt-T8  $$7C|Pc @281T8e4cm#Ul81/5*qu 61,Xo R,Wz^'Sq9ccӘ:t9:il/fl 'Vn23"UQ犋XeRN~vF$Oax`,w[z`mb ʐoQ)c{?,!6-!`[ A3J =sabX\}u$X3'Rծ01,IRM'ۅ(Enǭߝlof(qF{Ϳ8#mMm 狡 1! &7n-ͳ\1.T]d ]۸7%vb$?`PA 1YBP JF݌ӈd#׶l`i1&Gt%o !Is!T(J,c+8p,EvSN̝vn\7b]Moٟ0CVI-k[P)S;,<})q{X6 K) j*-p؆rXe4HmV8<`kvC`3QD1a=a#Qˬ.9x _+98u Pr54o3h}qiEF+A&qpXQC3m4=~~uw6#ۇ(9Y$)nSJg,dq!EʑߨFfmN gS|l,R.)ᘡDuC=>൛O~&}MMr,~Đlm{|,ϖH-:* Do1Ո?Im`#1=MfV{O. ጋ/%| 'QZ Z*{eGFUuILAeWE#\-Jh@5=N'"](6$ f063e_c.OM"6wy\f`)8; MY OTFn̾eeѱ|bNgjR+hT+Fso]8hưu'l]T*ժ-7~2b\gǞۉs:sN1ӧ1t eE,MmZ߻kԶ@3A*Z>t7cbVs{}HK[FFDGmr-4)iP/ÝS,U59X iӾSpSS3*":EG ԯxsJl-x^!PaUyY|tY bQ$"A~{醤}zў]DG*M2FMO zUP!zb 1x 5#9Fnvw*NzIsY%R^M]~F9VE4,1% ;!)WTm;`Ӆ(w7J4,ZB`";XZںRH!f+?8P\c䙗Rߺl1 oA7HrH &_gwH&mTZh,5@l r` l2kSeE~d6bD{X0\ aw܀m? eѨդnv Z'Jd5242&m_*jbEJ _'ͶlIT1 @X-Ea$F~ CB7171eH"ĽJd H-jqS XfC~ؒ$Xu"&uZIg/uXjEql1 fbSq # Nˁ3Uf9TnXzZKd0e!#˯۾N|V-X9TDMٮ -3?5 PX[m8Ҩ60Ml^Cynn׷h}1!HkIfc}~J-[ @Au)4xXbjʂ?$8+i֡gN[4|[Q bYM'OTUcvI,MxMs>GKG!8_sx>b{[ShPI锖בW5pM%DrI], fc6"Me4#3gȌ>zXB\i53-6}V d6NA]&uLUP0GA\IZFҌw.zZޠ1zh,,jp%lfdTҬ]Ci4ߥ}J&8 n.l2v_N.of!*`O1zX`cې1Ԭ F$7X[WDž*p)XQmcy{gIiIdz|JwNV״$`A|^D]]@86aI ̀0: h*vX8"ĕ$86ھHR`d\%Iyr:%bXT[-fI kA>+|?-ܧ3^(YV9v`]g XV#`5u8ͧMfrY`'bͳr $Ɲ$[PҺY&݊1X[ R j\W5D@ ^fÞy̱?UZ)&/remVPJ: PRxJwKyW&[GQd̨E{t?̪U.VDspp60BlXjd9:Is2+C*5 /b);j!G<1 sϪnwp8uiG3m PUBB#oI(u8sK{Ԣ1: !B{,I =|/dsO`ɖv]b'n|F Thmk0ZLq(s0DۦxlN@Z OPJg.c#nYT(فKX ְfZe + D >8THt7*3*M)ia!tܒL !C0Rq/!iHT4koAo4m4!ީR\kjvs)ON*{4EU@]S`x-E0;CYi%=I;)hf7F7C3s3ajq\4-Ru~S)ju;ű|kMs ^!.~*%|XkY :fT\d _] /vkB[w+]uq\i OFPX=ꘊA*;GQz0!͵t'ԵU-0l(;j:c;ub[8 $3K+XFǠWA [Y+4_bN@>8gA cD*v9MC ׶Go*yNf{Lp'/!O9NcRvЙ);H]$MwGVtE$Scc+t 43IOPxDfvO/̟??'oRNeR5AKSE31)) evWϙ'Ws8r>mFcAG_!yϯgc<ʾ+)㼯,֎. ?ĺ=M٘z!'QJ }|}9Fniq矿v\UUv_kե43y}$2 yKr@{IS)CO{l:*$BtC{H4=rnN(9b;|wl-jdRGw@'#M3?La&6b/%%MOe 1}_E*G~>\W$Pl3}\Eg.q/_Ui('$]Q̤\c_GRRE,Smo.lzn K`(2bnbȆEqO2.}J{oa)ӰrfrocPœ-~8˩k /pGo*ڝHmѥdF zMUTM>*“N`f xaZlTʲ-E Ze+;[i925f_$jZEض%袪`X2$f2]Dl0d#KLE Q1EgEAIቭBiߣ2^SmQ )Oacmꌆ,|xߏ$Z?N-h23xI ,H8z˳2u2]oǟJ?̱ m-4"8 φwnZy^mƢDpIE{[)ljWIֹ11ISSxR[S-ǡFXO6nneדg䢩T XH-|6:,3q0Ԕ&ܣ \ :""\]zQgzHHJc'N:qy݇WmǦliHfXYX% \{p0 kU$d_<5JQc3UO42$5ǶFcwȥ_(C $.1s3xL2~&˵'7 f-R0K!kY xjzaqp! szf)MU/n3Wk̍(u_uzT99&Iù 벉%i%gP/\Vy*ĵGMOP5R[-fjE̲WN?{%\UM Ci@O< EhJ#@X/Nv}?kiR'$m<ǖ3LUZj9״xCU2/wˮ3TU+*ZuL 6[zrE"8Xxuo\?SkCJjbKŘ)sñM~o?NsPg37Wk&CT|$grPlkѪAsG@bRDٻQahE)q jV6N&sH2=' >twJ(Xa AOQMfm>c0(H%TBUZs87 }ŏƢTfNV \܅ةS}bӲ N:G_׮ p?*sÍ`N!MBTŕ.m1Sui2H#$  rTYFv@}Z~?'xl6?AIP3xؑ{cpr_E{@t;W }_˃׍xG=ے~lk?_6a{9}߶akIٽYVu&3#--K{ҍk-ouߣZG{Ck_Ĝq)Gvw|SYYGC5eNwW+(a#"I; %armgg6/19e=y3 s9a8qd=LLiSX%FVTN*sc|_/|Jß|_ܼ4J$Y)v7&Y iؒPI麯= Դ\r'jnQԱiأxy}?~Mă*0xkΫfX!lf|nOz(?ggKF>}<_gٳc./WWs,$RKLt gTz YNC9؊?H/ғ~œ]96x8ckQ'Ed[TMK R`gIb\\^Q>JľG#5УJ1DoU+HSw?%4k&H=g>ynDc8Xsg.~{_K-7~ϴ굵< {JSjk):}7斐)]׼gżMq Ǡ1`onʡhi*@pP6[I/lG,밆qe&x$ XuSlBYP 2=<~WKJÐ@ZkC35í٪DE#P>  )se*`BxP68 Q -ن;zl-L_g:ij4.vk|l<4 (㊚ E0m\#^Lx҆ªŗs|"q5!4x* M";ERʳK8ߪ|a9Ru,,<\WJ&62S)뇺T,fR7ٿD+(]s H cE>YjXmR܏{2[PyNP1 G3Wjn'УCbꚍy=KNj,/y0iԹFZ_ 2iƴ{̢mo@COLF+ Iq6, x1.Y!b7ǽ1+21 :~ ]MY0?1Zl1@I+0`"q3h楮FY2-cT w~qJM 3T,F ^_p]F]Bgx+:u_Sx޸W\E 6kAO$u W49dB-27m^[qt絳EE"o X oaw6jK#gP g,Q _ پhƱ%(AsSaLTəxl}v?K*=Oz4PcĺH]2&KF*De`F[emU m AyaSCmyʱ,I :Xå@LmRk;e #0mph[`իK~"Th{oi24 dtuw[Q JS+'ka=>aΙV>~92i@bjWp͸7zm8PnfN/:~) x=D0 to>=u+L︛]PKs}Q^]pQH m:GF Q9pE;|LpACu܀/厹|LuqbIͭ2zMN \ގ$D) sH $n7Hor$/Ęwo,gdc/B<{Hչ,:۹٭8iJsRw.ҧ2_FI~8{VnmOC D@đkewSruh#`.S{ʼnCYmb:x8j.BXlE XҁjP[*|F Lڎ͘3(Q )4QIOaI@7;t:GN Xȷ\s*"͢\8珶72rU/'lnΧ;'OAtEc[UbЮo$I!T>~WGCMĐSQs/4}߉媧)W[Ie>p՜<&GѢu^ OȯbN[MrY\|r\}XvRW\ ˩dVy'9Vl.~IywSnV2Uu2ưD@Z3?[_HOhSDDH;o?6;^Bz{Gͧ}&1nfU\8%'g72}DuZT^fA&31L߅x,ȸ뗜}ïmWgWKĹmL~ +ck'b;_pn ~_};߉}y',U$278ZP1I LI-&/L?@L7´]48K5I@cCUQjry(*?I}.a7lu@iToC S{!p{/1"O-1;<똵ޖ"J;" ]6iN$C"9u#alȼ _S4:Dln^TLn21RI\.Ԗr Uf 83F -د^,+#H7#1Q,*-,Џ$䫈F0E99)x'bPHpB*o|rI3P\evLxYh b-xJ\$Tb{qJJ&m{5RL5 $Q9KC[qH잎z:a"h%DomP$7YpbeΥr0Hy zj1Tn5ϡʋ D_*c~Si{"Ӥ_6M$XkhQjuCċm"QeI)Ylfi h#Y:l@pq9UcqE6D +6ْq92LF7•ų{F(#mtX(|F1xcPqT ^3)idbFmĊLh$@ws-};V UZpEΠN[u}ݢHT$gRN/cRʄ(Sr{1Z}@[S7{`{PRۏ0PÎbzILdM!} ei%ҳIH ۦ~DžRy3>qUBt!1u]8;a@J.1̨jaߖWng9qĭ/{{ځFCkfu:ڶZ c:BS ٧s>yUȾ >QV5gi ٍeQ{}fFƪIalxwo33I⒳T$[Řfru@!֕HpVݔmۯ{w ߴ\/f\mƹ@")c_MN=MݙѴ=A(s4Zy'ǭZ$צꑌRp+x*6jvrAЈEAupLzOUkUHN,mM#v$! fMA^z$yk-6vAezIl2X'@G*:q{&Gg$8Ñ|ERq6]s<t *7!Dᄱ@1B͜T& >/WLLǙ[}9#.r&* pzE%1zN f3[5/_,#XUٛ'9#<JKW1\ּfb5 T%ʟ3T; ..l鉍F\Hpv0@}4A%j'1;Jdz0j4SF%5}>6#y-)gIKN~c̵*??n VUrBJtv>\3V]=n182d|Jih6@bOJ}F> }qq@TeSQv`M7@LN\0Vy⢏jux9f¤ 9e{xou?2gk0ʀZ"@r!R+s+AW k*A= #'.DC!fx.\12Ǒ⚢X%IF]oS)Lί].{ne|e QK<2VP'1&%B\axzR[ 3n?HL34#XWIT2SȻ]dE@fv lTD5ƚY!TSajcޞ&G*֦Gy*ZMWUVޘ8vT11I }vLw˛ziƱ'Dъ 7|JDp^OгgΤ8W3(*c`#.,]GEq.!)RTzi>*U^냽S$es/N]YቔW=Y%70`?H opKr{Yz X8{"/U;E*G=2I̻I|8*2H>wouIXl#Mwav#p؟Q8yI,]<1aG R:M)[1Ūw[_PD%u'ǧV}Rp$}TJ-y[UզVE4ĆB3k׌:tXX mCzUZ+xҵfh+7ո_sҙZGk׸l(sԩs,=IB[~+͡QQ۬'N@1gʼ"4갓g!{0RCHyCsئݔvUj2KUO5Vȃe?\lB3_u)ݝo^knv" ]$š K%o[mҎz5zjOr LyS[n &OO<1ƀ| Vv*n~",c&ֵ1654nYOWC}KV'>=ǵifI,~F"s7FXF<Ll5Z`'W dkd&f,K\鋄z ["U5R1 l+L[~2LRT^ ች+$2&h*:! ,sp gX mܵr(jUPUx_pp0A6 0$6c MT;vGxmnM\S(QwjE|e,KxSk_ '[O#7q*Kfj C!EQuT=½7H#]Mƅ5޿X?)aYTHMUL KZ ="$`R\@]^71Rʌ,@Bn[o,/8 @H'VkJvleqdBOۧ/Nn%ul_p1=y%/OKpqkX󬪷;}0Y`D:H6cb? yG pK t9FE] %6KI(" F '%|MCPrFi@3L0 e~^3 )h~WRa:c\{ I}G9q/,xx<5γ\[UQUJ婖g,Y$ImC5ZߺrՄ[g2n{NoquXH~RW%'7̠SO??Mg"~,8K98;xAQORj̧Үѕaok]A&s&=y"NspXbf#W4IhDH\9]azP =żIy<X,+ٴU%uCEwZdgrM&q.oVLŖYC uHŷPQ#ضl!Rv]BP[, ; ͿL4)$:C{CМ m6J[v1wo;ϒL"$/701k0}V$kl8k)M%\٥InXjr>IWIK\8dz)8=HI8Gyx``jTf6IΞ Z`୵$m{u@Jey{ex#gvb~C6ak086hR ɤi6P6UH(PwϮ6#ȩSk<¤J$+a3JY]|ywI[Ht+Ƭ@{}j`-5<0yK kK!C]x=*kHM4@X@!@į*rFuE"v(sXW #Q.׿ۆ]Y2$ƲZYag@[1OdUNM^6 sg02*mʕ 00ߺ\]qԊ}\Kd1e53uPgxL諣h>[a~sr݀s,\`I4n>?~+Әqh= w\(^c QK,DH(xZT*!7Z=%8c5Ge&R銷3VGL&Qb Qo,}fq5SUQI.kIR fIm4ZCZP:w>$`6~V2p{iKSiHssxZ0RIJCc|0Rlҧ[N>n5#73桬V4MlhS%58\~f ^W ana*&Ѡk|~Emu59TTTUK1Gv{w}7ƥWԓjcyb VM#E@ը-;d~%AWAKNc=Gͱ\,/}Icp-b1olHm3=Lɥ5c VHC0:;錒6)>(.c,F*K$'~Ю6,sInf|AžՂ2bTBv)lPm TMI%GLj&Fz^؜ zJO8B 7RQ$\0c9 |L -PE1n!H*Kx)I;.l:o^lM눵e <˯&%XwEYP}̾1xA r%AR4#?yĬ9*x92<.`du-cO΍K3h6a+H!q`9I>vXi{9U< yB_ ftHut6Š2 T6 }X0|'!263cȀֺ!)} ٳqL% b0VԾС#Kc_ZV6+h w(9uk^\ӂW?~t|{ݱ &[P돎Y^mV@*6k6 ͩ]Q#d>o{FĭW/;CXeGlc0KF\)>8 VF .E* {T0I`m~qFcGvX_8u{f*j{pd\y6Y4RM+ܰs τD:,iAS\X~8TIxꅳ Ԝ!UK#%aÅ6kJ:(3yi);9nt0P{40לceɁZC% ~U,)Rc0;L'&(Yj?ŗ}kJ}K|q{:/"$;:Z d_oLK{]13TfՓZ6ijI'`~mDVahJ2X*%h?xI Ele릙\hɸ=/勹RӍ<_8s:ڸr梡CRH27iXJ2҆vqK U6 Y|MMG2b^In *]wCmE3|(f=O ;]/ i(i*6@H{ڄ dR=pyMSiXii&K+^3Q{yx"P<>]$TJPi H-&o?j9o-YT,'cƽq\9 rÔi w4fINgBR8 _ 4Qeӫfc R׋r4ӈ!ħxzan4mVl.hЫc]Mlf`RapRSI](vY܀F8`)OhŞ'&ij֚Ue3>^rRapCil5.,f︚,(d+ +&kk6>{g|W]U<󰹿fv=Wrf+Slqm̷iZq>/g%V H9erq6lI"퓵fK^5(:x|1 O\&sÓuD~o=ѫ%PB};Ǩ<ߩ]TMp:/auq=Lol#cf$s8 2i :$q?/^Vnvq$p&"p/qeV+;PIu;x/$R񒫪&q,n9E/gC56ߩÍ]t]o/MʜiewmOv^# (o;mĘĂ[}kr5nHX4Pm$- _㔅9ɒ=E*0Qx|~8}GM=O3$oAΤg1];ΎX' HE[_vq]bI(ɴl }l2V|he5}=ǜTMLp8%)+.a\QOz\V1&PDYm# |G˾%GM Y:FYލ{3CX Eus\zNj*b4 I{_ ܪ$nAZ u 8'e\**%x< g|L)I.@ ]?J0!PO= , IViS+o8j8y(yh{8o/ isRL)SUUh[o㏜|sLʨc$ ;zbZNz7[+J|.t;F*l=Gl@1"UFPDp"iuO. SF$ze]'P~8^MSbG(5}6cHi6^ُxLť.mz46ĿNkkO[#mLoq7zĬ?vcHE@ 2_YR4SeUQm\owx4/xb^HAT%M>fgtSKHao| JJ]pT_qY7;E P upHJyu]ڄ;84F eKLeԨ}ϏpREN6)حoKz4h2D'vV'ṿUYm'bdؑjZyb&B[7Ɲv!Dˌ3̄f۞AWJCqN~%'&gOh+= 'fU5tםaH@X S):Վ|fd83*|'`XGk<=\7eX)\70 5?߉eˠX왉&m0CEۨyW<4,IRǧWγ4hj2G{m#l+ѣ(6ѯzWљgv!a755f)`Ǯ])ss+ʹ,G\H!lޱxe0tHMߖ؝mro8u"7&$b$PB:_,rdI %ְ;zcpA 'ĵt.]-aTV%CC97!\u錦Ğ$/2qs1 m;\_\NA,`1i%.E7/c-!Ir_Q/(0ݢfX pɒ冡%K)[qErPߘJ)}؜C:/ǘȤ,TјYCv_S2EI=-n6WޢXy"Ka! ۓ?enTk˛:0[ϙWC#k:Bۼul>|$}P7ո~s 04p& \iSf%i ^ V3E"U2Q۝1re֌Hm;bOr3h2" :׹8>j[ pTu?"ud LbK0<|m8kJpCj|d>o&qc$F)FFWWwg"/RADbCޢ0[t(PtW˪,`w|8 rKUK${;1P:x}}'˦UbZa.>W34㴌bz*}R3t,|t :/5"I*섆d 7uoGR9Vt_7:rSq}>c3w$z`G ' w[=o"͒ԋ,-~Wp}0×dK_TTm%CS?|<E%B8GlIBjjD 0iS1i&VxREOqv_SWs$, cm~RRf3A&c**GDOm`u^-|sM]4SQٍWKG=\YPnæ,+ R^pì ( $bUM ?d蒸;pD[a Q0fF тUĚ_9S:F=&Cl^44K $oL8,"6VPOtRD#_ǁ&3O} ;鿖)~*G稱ZQ~LVt 6‚s$ZjXS-ɣe]o 6v {(UoSB=,@ ͇ =*rJ] { L"_z12&u9\o(XgJ @$'LmWƩP:(٣Hi1S\x7vIT.ٛ}}G4Y|V`'}o1 T9{38RUنy&yAC\IКblv5ڤΨU9M7SW$uV'#c0ղL@n-5v.c_ T4i4{***i*`o3߅%͸36;EeV6np̒!SI3H!mNCnI71)TVbljlyS?y+kMϖi2VHjdb #~ǡDZ`-EjkHY=OO ¨;w0P1/\)&壼Q̉m` ^*fUAKzX]ZVV_,@1Ťvai&a|_w*9W5S%s^Uڙj :Xy?iz?#^`EBĩ%-cׯ.L LFosf|~[ $Y/r@ WK~"Ͱ#S _~XU9u`6]#/6,@ŅALZ$.pK^qY(n0,JHqF[Q6WFd|uJ9`*ok~c[1$*w# (ɢb`-=hTBP;|鎬 4#M؞7z( !Kj*H? .*IB-lj(Bw-m6 9ssISCy!Њn]U]ظ[ ./cJ.T3rXBCĐ/F,2"xXH(wiXTȊ QqvD)`tۦRۚI3*Ev3 T(r, >$l,}V7lJ?/ҪU~eC9;%1&u<-z/r;?LWwBOjV`AaD=?fJhD]XN]7%[p4­S\:wv ;|41HHLjMŭLY.9"LM6 Pg`5#*v6XrG`Z!v[oޡٻ IEC!DQ{yA]T)1s$+*>V\?$CTZe aĘs'U2& *xr7c4|YE( ]%ͽn VVe*zXJTv]Ĝfz5] ~d|*g+i!k_~5tD-5WW&:ǝTSAR\\؜Ls1+RWk87ceR-З+ߊ)j ڪ8fu2cvxK4/唲JC3ݛZGˡJWe,;-pbG /ć52 i4L/$=7^fm,.6jX*ca.\[–}_Qm-$NY뎡!kH4dmF0mx7/i] iUUBXu6ֶqbIV#" }VyaJF Z=Lqq {N˩I0aV*Nًn8q \ͿzjoQcpRWfqK.+[èǟ#zzt8fG=%diV@t7q{0q-i2hsz]%z1qs>dumEQ0 m{k8|h̒35_H k5F %mTL EоQ YQm;ݙTP0dP)Bmaf͑PĨ®adZJwcQT( Ɣ,qc ,Y֬6!SQ[43%b5n:Ʀ[Il\6-Wʂ{{R^.jiK?VK<K~8xߦLyal?1rۈM$,;6*w&I7c{x6 bF{uv(] C1[: L4WQ빰S!Ze`%A\q+@>"]|ui=/6U׽ͮ#,8s3)+{^$B b˅x c7JI*K MX|be  QYjf$':&B<xF(Eɒ tjn dP[i_1*%MBBj5`a6* Y_A т 

/msg *status help” and “/msg *status loadmod <module>”). Once you have loaded some Web-enabled modules, the menu will expand." ?>

znc-1.9.0/webskins/_default_/tmpl/_csrf_check.tmpl0000644000175000017500000000011514565511765022425 0ustar somebodysomebody znc-1.9.0/webskins/_default_/tmpl/Options.tmpl0000644000175000017500000000003114565511765021624 0ustar somebodysomebody znc-1.9.0/webskins/_default_/tmpl/MessageBar.tmpl0000644000175000017500000000031314565511765022205 0ustar somebodysomebody
znc-1.9.0/webskins/_default_/tmpl/Menu.tmpl0000644000175000017500000000411614565511765021105 0ustar somebodysomebody znc-1.9.0/webskins/_default_/tmpl/LowerBanner.tmpl0000644000175000017500000000006614565511765022417 0ustar somebodysomebody

znc-1.9.0/webskins/_default_/tmpl/LoginBar.tmpl0000644000175000017500000000122414565511765021673 0ustar somebodysomebody  
znc-1.9.0/webskins/_default_/tmpl/InfoBar.tmpl0000644000175000017500000000064014565511765021517 0ustar somebodysomebody
znc-1.9.0/webskins/_default_/tmpl/Header.tmpl0000644000175000017500000000124114565511765021365 0ustar somebodysomebody This is a wrapper file which simply includes BaseHeader.tmpl so that new skins can make a Header.tmpl similar to... ...this way a skin can base itself off of the same html as the default skin but still add custom css/js @todo In the future I'd like to support something like or even just do a current file vs inc'd file comparison to make sure they aren't the same. This way we can from the "derived" Header.tmpl and not cause an recursive loop. znc-1.9.0/webskins/_default_/tmpl/FooterTag.tmpl0000644000175000017500000000000014565511765022057 0ustar somebodysomebodyznc-1.9.0/webskins/_default_/tmpl/Footer.tmpl0000644000175000017500000000051014565511765021431 0ustar somebodysomebody
znc-1.9.0/webskins/_default_/tmpl/ExtraHeader.tmpl0000644000175000017500000000023014565511765022366 0ustar somebodysomebodyznc-1.9.0/webskins/_default_/tmpl/Error.tmpl0000644000175000017500000000011114565511765021261 0ustar somebodysomebody

znc-1.9.0/webskins/_default_/tmpl/DocType.tmpl0000644000175000017500000000002014565511765021536 0ustar somebodysomebody znc-1.9.0/webskins/_default_/tmpl/BreadCrumbs.tmpl0000644000175000017500000000046414565511765022374 0ustar somebodysomebody znc-1.9.0/webskins/_default_/tmpl/BaseHeader.tmpl0000644000175000017500000000367414565511765022174 0ustar somebodysomebody ZNC - <? VAR Title DEFAULT="Web Frontend" ?>
In your subpage (module page or static page) you'll probably want to do something like this... This is my super cool sub page! If you'd like to add your own local css file to be included after the global main.css, you can make your own Header.tmpl like so... znc-1.9.0/webskins/_default_/tmpl/Banner.tmpl0000644000175000017500000000011614565511765021402 0ustar somebodysomebodyznc-1.9.0/webskins/_default_/pub/0000755000175000017500000000000014565511765017113 5ustar somebodysomebodyznc-1.9.0/webskins/_default_/pub/selectize-standalone-0.12.1.min.js0000644000175000017500000012252314565511765025072 0ustar somebodysomebody/*! selectize.js - v0.12.1 | https://github.com/brianreavis/selectize.js | Apache License (v2) */ !function(a,b){"function"==typeof define&&define.amd?define("sifter",b):"object"==typeof exports?module.exports=b():a.Sifter=b()}(this,function(){var a=function(a,b){this.items=a,this.settings=b||{diacritics:!0}};a.prototype.tokenize=function(a){if(a=d(String(a||"").toLowerCase()),!a||!a.length)return[];var b,c,f,h,i=[],j=a.split(/ +/);for(b=0,c=j.length;c>b;b++){if(f=e(j[b]),this.settings.diacritics)for(h in g)g.hasOwnProperty(h)&&(f=f.replace(new RegExp(h,"g"),g[h]));i.push({string:j[b],regex:new RegExp(f,"i")})}return i},a.prototype.iterator=function(a,b){var c;c=f(a)?Array.prototype.forEach||function(a){for(var b=0,c=this.length;c>b;b++)a(this[b],b,this)}:function(a){for(var b in this)this.hasOwnProperty(b)&&a(this[b],b,this)},c.apply(a,[b])},a.prototype.getScoreFunction=function(a,b){var c,d,e,f;c=this,a=c.prepareSearch(a,b),e=a.tokens,d=a.options.fields,f=e.length;var g=function(a,b){var c,d;return a?(a=String(a||""),d=a.search(b.regex),-1===d?0:(c=b.string.length/a.length,0===d&&(c+=.5),c)):0},h=function(){var a=d.length;return a?1===a?function(a,b){return g(b[d[0]],a)}:function(b,c){for(var e=0,f=0;a>e;e++)f+=g(c[d[e]],b);return f/a}:function(){return 0}}();return f?1===f?function(a){return h(e[0],a)}:"and"===a.options.conjunction?function(a){for(var b,c=0,d=0;f>c;c++){if(b=h(e[c],a),0>=b)return 0;d+=b}return d/f}:function(a){for(var b=0,c=0;f>b;b++)c+=h(e[b],a);return c/f}:function(){return 0}},a.prototype.getSortFunction=function(a,c){var d,e,f,g,h,i,j,k,l,m,n;if(f=this,a=f.prepareSearch(a,c),n=!a.query&&c.sort_empty||c.sort,l=function(a,b){return"$score"===a?b.score:f.items[b.id][a]},h=[],n)for(d=0,e=n.length;e>d;d++)(a.query||"$score"!==n[d].field)&&h.push(n[d]);if(a.query){for(m=!0,d=0,e=h.length;e>d;d++)if("$score"===h[d].field){m=!1;break}m&&h.unshift({field:"$score",direction:"desc"})}else for(d=0,e=h.length;e>d;d++)if("$score"===h[d].field){h.splice(d,1);break}for(k=[],d=0,e=h.length;e>d;d++)k.push("desc"===h[d].direction?-1:1);return i=h.length,i?1===i?(g=h[0].field,j=k[0],function(a,c){return j*b(l(g,a),l(g,c))}):function(a,c){var d,e,f;for(d=0;i>d;d++)if(f=h[d].field,e=k[d]*b(l(f,a),l(f,c)))return e;return 0}:null},a.prototype.prepareSearch=function(a,b){if("object"==typeof a)return a;b=c({},b);var d=b.fields,e=b.sort,g=b.sort_empty;return d&&!f(d)&&(b.fields=[d]),e&&!f(e)&&(b.sort=[e]),g&&!f(g)&&(b.sort_empty=[g]),{options:b,query:String(a||"").toLowerCase(),tokens:this.tokenize(a),total:0,items:[]}},a.prototype.search=function(a,b){var c,d,e,f,g=this;return d=this.prepareSearch(a,b),b=d.options,a=d.query,f=b.score||g.getScoreFunction(d),a.length?g.iterator(g.items,function(a,e){c=f(a),(b.filter===!1||c>0)&&d.items.push({score:c,id:e})}):g.iterator(g.items,function(a,b){d.items.push({score:1,id:b})}),e=g.getSortFunction(d,b),e&&d.items.sort(e),d.total=d.items.length,"number"==typeof b.limit&&(d.items=d.items.slice(0,b.limit)),d};var b=function(a,b){return"number"==typeof a&&"number"==typeof b?a>b?1:b>a?-1:0:(a=h(String(a||"")),b=h(String(b||"")),a>b?1:b>a?-1:0)},c=function(a){var b,c,d,e;for(b=1,c=arguments.length;c>b;b++)if(e=arguments[b])for(d in e)e.hasOwnProperty(d)&&(a[d]=e[d]);return a},d=function(a){return(a+"").replace(/^\s+|\s+$|/g,"")},e=function(a){return(a+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},f=Array.isArray||$&&$.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},g={a:"[aÀÁÂÃÄÅàáâãäåĀāąĄ]",c:"[cÇçćĆčČ]",d:"[dđĐďĎ]",e:"[eÈÉÊËèéêëěĚĒēęĘ]",i:"[iÌÍÎÏìíîïĪī]",l:"[lłŁ]",n:"[nÑñňŇńŃ]",o:"[oÒÓÔÕÕÖØòóôõöøŌō]",r:"[rřŘ]",s:"[sŠšśŚ]",t:"[tťŤ]",u:"[uÙÚÛÜùúûüůŮŪū]",y:"[yŸÿýÝ]",z:"[zŽžżŻźŹ]"},h=function(){var a,b,c,d,e="",f={};for(c in g)if(g.hasOwnProperty(c))for(d=g[c].substring(2,g[c].length-1),e+=d,a=0,b=d.length;b>a;a++)f[d.charAt(a)]=c;var h=new RegExp("["+e+"]","g");return function(a){return a.replace(h,function(a){return f[a]}).toLowerCase()}}();return a}),function(a,b){"function"==typeof define&&define.amd?define("microplugin",b):"object"==typeof exports?module.exports=b():a.MicroPlugin=b()}(this,function(){var a={};a.mixin=function(a){a.plugins={},a.prototype.initializePlugins=function(a){var c,d,e,f=this,g=[];if(f.plugins={names:[],settings:{},requested:{},loaded:{}},b.isArray(a))for(c=0,d=a.length;d>c;c++)"string"==typeof a[c]?g.push(a[c]):(f.plugins.settings[a[c].name]=a[c].options,g.push(a[c].name));else if(a)for(e in a)a.hasOwnProperty(e)&&(f.plugins.settings[e]=a[e],g.push(e));for(;g.length;)f.require(g.shift())},a.prototype.loadPlugin=function(b){var c=this,d=c.plugins,e=a.plugins[b];if(!a.plugins.hasOwnProperty(b))throw new Error('Unable to find "'+b+'" plugin');d.requested[b]=!0,d.loaded[b]=e.fn.apply(c,[c.plugins.settings[b]||{}]),d.names.push(b)},a.prototype.require=function(a){var b=this,c=b.plugins;if(!b.plugins.loaded.hasOwnProperty(a)){if(c.requested[a])throw new Error('Plugin has circular dependency ("'+a+'")');b.loadPlugin(a)}return c.loaded[a]},a.define=function(b,c){a.plugins[b]={name:b,fn:c}}};var b={isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}};return a}),function(a,b){"function"==typeof define&&define.amd?define("selectize",["jquery","sifter","microplugin"],b):"object"==typeof exports?module.exports=b(require("jquery"),require("sifter"),require("microplugin")):a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}(this,function(a,b,c){"use strict";var d=function(a,b){if("string"!=typeof b||b.length){var c="string"==typeof b?new RegExp(b,"i"):b,d=function(a){var b=0;if(3===a.nodeType){var e=a.data.search(c);if(e>=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement("span");g.className="highlight";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName))for(var j=0;j/g,">").replace(/"/g,""")},B=function(a){return(a+"").replace(/\$/g,"$$$$")},C={};C.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},C.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var D=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},E=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},F=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];return-1===b.indexOf(c)?e.apply(a,arguments):void(f[c]=arguments)},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},G=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},H=function(a){var b={};if("selectionStart"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart("character",-a.value.length),b.start=c.text.length-d,b.length=d}return b},I=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;e>d;d++)f[c[d]]=a.css(c[d]);else f=a.css();b.css(f)},J=function(b,c){if(!b)return 0;var d=a("").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).text(b).appendTo("body");I(c,d,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]);var e=d.width();return d.remove(),e},K=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||a.data("grow")!==!1)&&(e=a.val(),c.type&&"keydown"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=97&&122>=f||f>=65&&90>=f||f>=48&&57>=f||32===f,f===q||f===p?(l=H(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):f===p&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):f===q&&"undefined"!=typeof l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr("placeholder"),!e&&h&&(e=h),i=J(e,a)+4,i!==b&&(b=i,a.width(i),a.triggerHandler("resize")))};a.on("keydown keyup update blur",c),c()},L=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue("direction"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents("[dir]:first").attr("dir")||"",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr("tabindex")||"",tagType:"select"===h.tagName.toLowerCase()?v:w,rtl:/rtl/i.test(g),eventNS:".selectize"+ ++L.count,highlightedValue:null,isOpen:!1,isDisabled:!1,isRequired:c.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:E(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;f>e;e++)i.registerOption(i.settings.options[e]);delete i.settings.options}if(i.settings.optgroups){for(e=0,f=i.settings.optgroups.length;f>e;e++)i.registerOptionGroup(i.settings.optgroups[e]);delete i.settings.optgroups}i.settings.mode=i.settings.mode||(1===i.settings.maxItems?"single":"multi"),"boolean"!=typeof i.settings.hideSelected&&(i.settings.hideSelected="multi"===i.settings.mode),i.initializePlugins(i.settings.plugins),i.setupCallbacks(),i.setupTemplates(),i.setup()};return e.mixin(L),c.mixin(L),a.extend(L.prototype,{setup:function(){var b,c,d,e,g,h,i,j,k,l=this,m=l.settings,n=l.eventNS,o=a(window),p=a(document),q=l.$input;if(i=l.settings.mode,j=q.attr("class")||"",b=a("
").addClass(m.wrapperClass).addClass(j).addClass(i),c=a("
").addClass(m.inputClass).addClass("items").appendTo(b),d=a('').appendTo(c).attr("tabindex",q.is(":disabled")?"-1":l.tabIndex),h=a(m.dropdownParent||b),e=a("
").addClass(m.dropdownClass).addClass(i).hide().appendTo(h),g=a("
").addClass(m.dropdownContentClass).appendTo(e),l.settings.copyClassesToDropdown&&e.addClass(j),b.css({width:q[0].style.width}),l.plugins.names.length&&(k="plugin-"+l.plugins.names.join(" plugin-"),b.addClass(k),e.addClass(k)),(null===m.maxItems||m.maxItems>1)&&l.tagType===v&&q.attr("multiple","multiple"),l.settings.placeholder&&d.attr("placeholder",m.placeholder),!l.settings.splitOn&&l.settings.delimiter){var u=l.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");l.settings.splitOn=new RegExp("\\s*"+u+"+\\s*")}q.attr("autocorrect")&&d.attr("autocorrect",q.attr("autocorrect")),q.attr("autocapitalize")&&d.attr("autocapitalize",q.attr("autocapitalize")),l.$wrapper=b,l.$control=c,l.$control_input=d,l.$dropdown=e,l.$dropdown_content=g,e.on("mouseenter","[data-selectable]",function(){return l.onOptionHover.apply(l,arguments)}),e.on("mousedown click","[data-selectable]",function(){return l.onOptionSelect.apply(l,arguments)}),G(c,"mousedown","*:not(input)",function(){return l.onItemSelect.apply(l,arguments)}),K(d),c.on({mousedown:function(){return l.onMouseDown.apply(l,arguments)},click:function(){return l.onClick.apply(l,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return l.onKeyDown.apply(l,arguments)},keyup:function(){return l.onKeyUp.apply(l,arguments)},keypress:function(){return l.onKeyPress.apply(l,arguments)},resize:function(){l.positionDropdown.apply(l,[])},blur:function(){return l.onBlur.apply(l,arguments)},focus:function(){return l.ignoreBlur=!1,l.onFocus.apply(l,arguments)},paste:function(){return l.onPaste.apply(l,arguments)}}),p.on("keydown"+n,function(a){l.isCmdDown=a[f?"metaKey":"ctrlKey"],l.isCtrlDown=a[f?"altKey":"ctrlKey"],l.isShiftDown=a.shiftKey}),p.on("keyup"+n,function(a){a.keyCode===t&&(l.isCtrlDown=!1),a.keyCode===r&&(l.isShiftDown=!1),a.keyCode===s&&(l.isCmdDown=!1)}),p.on("mousedown"+n,function(a){if(l.isFocused){if(a.target===l.$dropdown[0]||a.target.parentNode===l.$dropdown[0])return!1;l.$control.has(a.target).length||a.target===l.$control[0]||l.blur(a.target)}}),o.on(["scroll"+n,"resize"+n].join(" "),function(){l.isOpen&&l.positionDropdown.apply(l,arguments)}),o.on("mousemove"+n,function(){l.ignoreHover=!1}),this.revertSettings={$children:q.children().detach(),tabindex:q.attr("tabindex")},q.attr("tabindex",-1).hide().after(l.$wrapper),a.isArray(m.items)&&(l.setValue(m.items),delete m.items),x&&q.on("invalid"+n,function(a){a.preventDefault(),l.isInvalid=!0,l.refreshState()}),l.updateOriginalInput(),l.refreshItems(),l.refreshState(),l.updatePlaceholder(),l.isSetup=!0,q.is(":disabled")&&l.disable(),l.on("change",this.onChange),q.data("selectize",l),q.addClass("selectized"),l.trigger("initialize"),m.preload===!0&&l.onSearchChange("")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'
'+a.html+"
"},optgroup_header:function(a,b){return'
'+b(a[d])+"
"},option:function(a,b){return'
'+b(a[c])+"
"},item:function(a,b){return'
'+b(a[c])+"
"},option_create:function(a,b){return'
Add '+b(a.input)+"
"}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]],b&&this.on(a,b))},onClick:function(a){var b=this;b.isFocused||(b.focus(),a.preventDefault())},onMouseDown:function(b){{var c=this,d=b.isDefaultPrevented();a(b.target)}if(c.isFocused){if(b.target!==c.$control_input[0])return"single"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(b){var c=this;c.isFull()||c.isInputHidden||c.isLocked?b.preventDefault():c.settings.splitOn&&setTimeout(function(){for(var b=a.trim(c.$control_input.val()||"").split(c.settings.splitOn),d=0,e=b.length;e>d;d++)c.createItem(b[d])},0)},onKeyPress:function(a){if(this.isLocked)return a&&a.preventDefault();var b=String.fromCharCode(a.keyCode||a.which);return this.settings.create&&"multi"===this.settings.mode&&b===this.settings.delimiter?(this.createItem(),a.preventDefault(),!1):void 0},onKeyDown:function(a){var b=(a.target===this.$control_input[0],this);if(b.isLocked)return void(a.keyCode!==u&&a.preventDefault());switch(a.keyCode){case g:if(b.isCmdDown)return void b.selectAll();break;case i:return void(b.isOpen&&(a.preventDefault(),a.stopPropagation(),b.close()));case o:if(!a.ctrlKey||a.altKey)break;case n:if(!b.isOpen&&b.hasOptions)b.open();else if(b.$activeOption){b.ignoreHover=!0;var c=b.getAdjacentOption(b.$activeOption,1);c.length&&b.setActiveOption(c,!0,!0)}return void a.preventDefault();case l:if(!a.ctrlKey||a.altKey)break;case k:if(b.$activeOption){b.ignoreHover=!0;var d=b.getAdjacentOption(b.$activeOption,-1);d.length&&b.setActiveOption(d,!0,!0)}return void a.preventDefault();case h:return void(b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),a.preventDefault()));case j:return void b.advanceSelection(-1,a);case m:return void b.advanceSelection(1,a);case u:return b.settings.selectOnTab&&b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),b.isFull()||a.preventDefault()),void(b.settings.create&&b.createItem()&&a.preventDefault());case p:case q:return void b.deleteSelection(a)}return!b.isFull()&&!b.isInputHidden||(f?a.metaKey:a.ctrlKey)?void 0:void a.preventDefault()},onKeyUp:function(a){var b=this;if(b.isLocked)return a&&a.preventDefault();var c=b.$control_input.val()||"";b.lastValue!==c&&(b.lastValue=c,b.onSearchChange(c),b.refreshOptions(),b.trigger("type",c))},onSearchChange:function(a){var b=this,c=b.settings.load;c&&(b.loadedSearches.hasOwnProperty(a)||(b.loadedSearches[a]=!0,b.load(function(d){c.apply(b,[a,d])})))},onFocus:function(a){var b=this,c=b.isFocused;return b.isDisabled?(b.blur(),a&&a.preventDefault(),!1):void(b.ignoreFocus||(b.isFocused=!0,"focus"===b.settings.preload&&b.onSearchChange(""),c||b.trigger("focus"),b.$activeItems.length||(b.showInput(),b.setActiveItem(null),b.refreshOptions(!!b.settings.openOnFocus)),b.refreshState()))},onBlur:function(a,b){var c=this;if(c.isFocused&&(c.isFocused=!1,!c.ignoreFocus)){if(!c.ignoreBlur&&document.activeElement===c.$dropdown_content[0])return c.ignoreBlur=!0,void c.onFocus(a);var d=function(){c.close(),c.setTextboxValue(""),c.setActiveItem(null),c.setActiveOption(null),c.setCaret(c.items.length),c.refreshState(),(b||document.body).focus(),c.ignoreFocus=!1,c.trigger("blur")};c.ignoreFocus=!0,c.settings.create&&c.settings.createOnBlur?c.createItem(null,!1,d):d()}},onOptionHover:function(a){this.ignoreHover||this.setActiveOption(a.currentTarget,!1)},onOptionSelect:function(b){var c,d,e=this;b.preventDefault&&(b.preventDefault(),b.stopPropagation()),d=a(b.currentTarget),d.hasClass("create")?e.createItem(null,function(){e.settings.closeAfterSelect&&e.close()}):(c=d.attr("data-value"),"undefined"!=typeof c&&(e.lastQuery=null,e.setTextboxValue(""),e.addItem(c),e.settings.closeAfterSelect?e.close():!e.settings.hideSelected&&b.type&&/mouse/.test(b.type)&&e.setActiveOption(e.getOption(c))))},onItemSelect:function(a){var b=this;b.isLocked||"multi"===b.settings.mode&&(a.preventDefault(),b.setActiveItem(a.currentTarget,a))},load:function(a){var b=this,c=b.$wrapper.addClass(b.settings.loadingClass);b.loading++,a.apply(b,[function(a){b.loading=Math.max(b.loading-1,0),a&&a.length&&(b.addOption(a),b.refreshOptions(b.isFocused&&!b.isInputHidden)),b.loading||c.removeClass(b.settings.loadingClass),b.trigger("load",a)}])},setTextboxValue:function(a){var b=this.$control_input,c=b.val()!==a;c&&(b.val(a).triggerHandler("update"),this.lastValue=a)},getValue:function(){return this.tagType===v&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(a,b){var c=b?[]:["change"];F(this,c,function(){this.clear(b),this.addItems(a,b)})},setActiveItem:function(b,c){var d,e,f,g,h,i,j,k,l=this;if("single"!==l.settings.mode){if(b=a(b),!b.length)return a(l.$activeItems).removeClass("active"),l.$activeItems=[],void(l.isFocused&&l.showInput());if(d=c&&c.type.toLowerCase(),"mousedown"===d&&l.isShiftDown&&l.$activeItems.length){for(k=l.$control.children(".active:last"),g=Array.prototype.indexOf.apply(l.$control[0].childNodes,[k[0]]),h=Array.prototype.indexOf.apply(l.$control[0].childNodes,[b[0]]),g>h&&(j=g,g=h,h=j),e=g;h>=e;e++)i=l.$control[0].childNodes[e],-1===l.$activeItems.indexOf(i)&&(a(i).addClass("active"),l.$activeItems.push(i));c.preventDefault()}else"mousedown"===d&&l.isCtrlDown||"keydown"===d&&this.isShiftDown?b.hasClass("active")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass("active")):l.$activeItems.push(b.addClass("active")[0]):(a(l.$activeItems).removeClass("active"),l.$activeItems=[b.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,j=this;j.$activeOption&&j.$activeOption.removeClass("active"),j.$activeOption=null,b=a(b),b.length&&(j.$activeOption=b.addClass("active"),(c||!y(c))&&(e=j.$dropdown_content.height(),f=j.$activeOption.outerHeight(!0),c=j.$dropdown_content.scrollTop()||0,g=j.$activeOption.offset().top-j.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?j.$dropdown_content.stop().animate({scrollTop:i},d?j.settings.scrollDuration:0):c>g&&j.$dropdown_content.stop().animate({scrollTop:h},d?j.settings.scrollDuration:0)))},selectAll:function(){var a=this;"single"!==a.settings.mode&&(a.$activeItems=Array.prototype.slice.apply(a.$control.children(":not(input)").addClass("active")),a.$activeItems.length&&(a.hideInput(),a.close()),a.focus())},hideInput:function(){var a=this;a.setTextboxValue(""),a.$control_input.css({opacity:0,position:"absolute",left:a.rtl?1e4:-1e4}),a.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var a=this;a.isDisabled||(a.ignoreFocus=!0,a.$control_input[0].focus(),window.setTimeout(function(){a.ignoreFocus=!1,a.onFocus()},0))},blur:function(a){this.$control_input[0].blur(),this.onBlur(null,a)},getScoreFunction:function(a){return this.sifter.getScoreFunction(a,this.getSearchOptions())},getSearchOptions:function(){var a=this.settings,b=a.sortField;return"string"==typeof b&&(b=[{field:b}]),{fields:a.searchField,conjunction:a.searchConjunction,sort:b}},search:function(b){var c,d,e,f=this,g=f.settings,h=this.getSearchOptions();if(g.score&&(e=f.settings.score.apply(this,[b]),"function"!=typeof e))throw new Error('Selectize "score" setting must be a function that returns a function');if(b!==f.lastQuery?(f.lastQuery=b,d=f.sifter.search(b,a.extend(h,{score:e})),f.currentResults=d):d=a.extend(!0,{},f.currentResults),g.hideSelected)for(c=d.items.length-1;c>=0;c--)-1!==f.items.indexOf(z(d.items[c].id))&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;"undefined"==typeof b&&(b=!0);var t=this,u=a.trim(t.$control_input.val()),v=t.search(u),w=t.$dropdown_content,x=t.$activeOption&&z(t.$activeOption.attr("data-value"));for(g=v.items.length,"number"==typeof t.settings.maxOptions&&(g=Math.min(g,t.settings.maxOptions)),h={},i=[],c=0;g>c;c++)for(j=t.options[v.items[c].id],k=t.render("option",j),l=j[t.settings.optgroupField]||"",m=a.isArray(l)?l:[l],e=0,f=m&&m.length;f>e;e++)l=m[e],t.optgroups.hasOwnProperty(l)||(l=""),h.hasOwnProperty(l)||(h[l]=[],i.push(l)),h[l].push(k);for(this.settings.lockOptgroupOrder&&i.sort(function(a,b){var c=t.optgroups[a].$order||0,d=t.optgroups[b].$order||0;return c-d}),n=[],c=0,g=i.length;g>c;c++)l=i[c],t.optgroups.hasOwnProperty(l)&&h[l].length?(o=t.render("optgroup_header",t.optgroups[l])||"",o+=h[l].join(""),n.push(t.render("optgroup",a.extend({},t.optgroups[l],{html:o})))):n.push(h[l].join(""));if(w.html(n.join("")),t.settings.highlight&&v.query.length&&v.tokens.length)for(c=0,g=v.tokens.length;g>c;c++)d(w,v.tokens[c].regex);if(!t.settings.hideSelected)for(c=0,g=t.items.length;g>c;c++)t.getOption(t.items[c]).addClass("selected");p=t.canCreate(u),p&&(w.prepend(t.render("option_create",{input:u})),s=a(w[0].childNodes[0])),t.hasOptions=v.items.length>0||p,t.hasOptions?(v.items.length>0?(r=x&&t.getOption(x),r&&r.length?q=r:"single"===t.settings.mode&&t.items.length&&(q=t.getOption(t.items[0])),q&&q.length||(q=s&&!t.settings.addPrecedence?t.getAdjacentOption(s,1):w.find("[data-selectable]:first"))):q=s,t.setActiveOption(q),b&&!t.isOpen&&t.open()):(t.setActiveOption(null),b&&t.isOpen&&t.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;d>c;c++)f.addOption(b[c]);else(e=f.registerOption(b))&&(f.userOptions[e]=!0,f.lastQuery=null,f.trigger("option_add",e,b))},registerOption:function(a){var b=z(a[this.settings.valueField]);return!b||this.options.hasOwnProperty(b)?!1:(a.$order=a.$order||++this.order,this.options[b]=a,b)},registerOptionGroup:function(a){var b=z(a[this.settings.optgroupValueField]);return b?(a.$order=a.$order||++this.order,this.optgroups[b]=a,b):!1},addOptionGroup:function(a,b){b[this.settings.optgroupValueField]=a,(a=this.registerOptionGroup(b))&&this.trigger("optgroup_add",a,b)},removeOptionGroup:function(a){this.optgroups.hasOwnProperty(a)&&(delete this.optgroups[a],this.renderCache={},this.trigger("optgroup_remove",a))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function(b,c){var d,e,f,g,h,i,j,k=this;if(b=z(b),f=z(c[k.settings.valueField]),null!==b&&k.options.hasOwnProperty(b)){if("string"!=typeof f)throw new Error("Value must be set in option data");j=k.options[b].$order,f!==b&&(delete k.options[b],g=k.items.indexOf(b),-1!==g&&k.items.splice(g,1,f)),c.$order=c.$order||j,k.options[f]=c,h=k.renderCache.item,i=k.renderCache.option,h&&(delete h[b],delete h[f]),i&&(delete i[b],delete i[f]),-1!==k.items.indexOf(f)&&(d=k.getItem(b),e=a(k.render("item",c)),d.hasClass("active")&&e.addClass("active"),d.replaceWith(e)),k.lastQuery=null,k.isOpen&&k.refreshOptions(!1)}},removeOption:function(a,b){var c=this;a=z(a);var d=c.renderCache.item,e=c.renderCache.option;d&&delete d[a],e&&delete e[a],delete c.userOptions[a],delete c.options[a],c.lastQuery=null,c.trigger("option_remove",a),c.removeItem(a,b)},clearOptions:function(){var a=this;a.loadedSearches={},a.userOptions={},a.renderCache={},a.options=a.sifter.items={},a.lastQuery=null,a.trigger("option_clear"),a.clear()},getOption:function(a){return this.getElementWithValue(a,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(b,c){var d=this.$dropdown.find("[data-selectable]"),e=d.index(b)+c;return e>=0&&ed;d++)if(c[d].getAttribute("data-value")===b)return a(c[d]);return a()},getItem:function(a){return this.getElementWithValue(a,this.$control.children())},addItems:function(b,c){for(var d=a.isArray(b)?b:[b],e=0,f=d.length;f>e;e++)this.isPending=f-1>e,this.addItem(d[e],c)},addItem:function(b,c){var d=c?[]:["change"];F(this,d,function(){var d,e,f,g,h,i=this,j=i.settings.mode;return b=z(b),-1!==i.items.indexOf(b)?void("single"===j&&i.close()):void(i.options.hasOwnProperty(b)&&("single"===j&&i.clear(c),"multi"===j&&i.isFull()||(d=a(i.render("item",i.options[b])),h=i.isFull(),i.items.splice(i.caretPos,0,b),i.insertAtCaret(d),(!i.isPending||!h&&i.isFull())&&i.refreshState(),i.isSetup&&(f=i.$dropdown_content.find("[data-selectable]"),i.isPending||(e=i.getOption(b),g=i.getAdjacentOption(e,1).attr("data-value"),i.refreshOptions(i.isFocused&&"single"!==j),g&&i.setActiveOption(i.getOption(g))),!f.length||i.isFull()?i.close():i.positionDropdown(),i.updatePlaceholder(),i.trigger("item_add",b,d),i.updateOriginalInput({silent:c})))))})},removeItem:function(a,b){var c,d,e,f=this;c="object"==typeof a?a:f.getItem(a),a=z(c.attr("data-value")),d=f.items.indexOf(a),-1!==d&&(c.remove(),c.hasClass("active")&&(e=f.$activeItems.indexOf(c[0]),f.$activeItems.splice(e,1)),f.items.splice(d,1),f.lastQuery=null,!f.settings.persist&&f.userOptions.hasOwnProperty(a)&&f.removeOption(a,b),d0),b.$control_input.data("grow",!c&&!d)},isFull:function(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},f.tagType===v){for(d=[],b=0,c=f.items.length;c>b;b++)e=f.options[f.items[b]][f.settings.labelField]||"",d.push('");d.length||this.$input.attr("multiple")||d.push(''),f.$input.html(d.join(""))}else f.$input.val(f.getValue()),f.$input.attr("value",f.$input.val());f.isSetup&&(a.silent||f.trigger("change",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr("placeholder"):a.attr("placeholder",this.settings.placeholder),a.triggerHandler("update",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||"multi"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:"hidden",display:"block"}),a.positionDropdown(),a.$dropdown.css({visibility:"visible"}),a.trigger("dropdown_open",a.$dropdown))},close:function(){var a=this,b=a.isOpen;"single"===a.settings.mode&&a.items.length&&a.hideInput(),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger("dropdown_close",a.$dropdown)},positionDropdown:function(){var a=this.$control,b="body"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a.outerWidth(),top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(":not(input)").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger("clear"))},insertAtCaret:function(b){var c=Math.min(this.caretPos,this.items.length);0===c?this.$control.prepend(b):a(this.$control[0].childNodes[c]).before(b),this.setCaret(c+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&b.keyCode===p?-1:1,f=H(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr("data-value")),g=[],l.$activeItems.length){for(k=l.$control.children(".active:"+(e>0?"last":"first")),h=l.$control.children(":not(input)").index(k),e>0&&h++,c=0,d=l.$activeItems.length;d>c;c++)g.push(a(l.$activeItems[c]).attr("data-value")); b&&(b.preventDefault(),b.stopPropagation())}else(l.isFocused||"single"===l.settings.mode)&&l.items.length&&(0>e&&0===f.start&&0===f.length?g.push(l.items[l.caretPos-1]):e>0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||"function"==typeof l.settings.onDelete&&l.settings.onDelete.apply(l,[g])===!1)return!1;for("undefined"!=typeof h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h,i=this;0!==a&&(i.rtl&&(a*=-1),c=a>0?"last":"first",d=H(i.$control_input[0]),i.isFocused&&!i.isInputHidden?(f=i.$control_input.val().length,g=0>a?0===d.start&&0===d.length:d.start===f,g&&!f&&i.advanceCaret(a,b)):(h=i.$control.children(".active:"+c),h.length&&(e=i.$control.children(":not(input)").index(h),i.setActiveItem(null),i.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?"next":"prev",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b="single"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(":not(input)"),d=0,e=f.length;e>d;d++)g=a(f[d]).detach(),b>d?c.$control_input.before(g):c.$control.append(g)}c.caretPos=b},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){var a=this;a.$input.prop("disabled",!0),a.$control_input.prop("disabled",!0).prop("tabindex",-1),a.isDisabled=!0,a.lock()},enable:function(){var a=this;a.$input.prop("disabled",!1),a.$control_input.prop("disabled",!1).prop("tabindex",a.tabIndex),a.isDisabled=!1,a.unlock()},destroy:function(){var b=this,c=b.eventNS,d=b.revertSettings;b.trigger("destroy"),b.off(),b.$wrapper.remove(),b.$dropdown.remove(),b.$input.html("").append(d.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:d.tabindex}).show(),b.$control_input.removeData("grow"),b.$input.removeData("selectize"),a(window).off(c),a(document).off(c),a(document.body).off(c),delete b.$input[0].selectize},render:function(a,b){var c,d,e="",f=!1,g=this,h=/^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?)/i;return("option"===a||"item"===a)&&(c=z(b[g.settings.valueField]),f=!!c),f&&(y(g.renderCache[a])||(g.renderCache[a]={}),g.renderCache[a].hasOwnProperty(c))?g.renderCache[a][c]:(e=g.settings.render[a].apply(this,[b,A]),("option"===a||"option_create"===a)&&(e=e.replace(h,"<$1 data-selectable")),"optgroup"===a&&(d=b[g.settings.optgroupValueField]||"",e=e.replace(h,'<$1 data-group="'+B(A(d))+'"')),("option"===a||"item"===a)&&(e=e.replace(h,'<$1 data-value="'+B(A(c||""))+'"')),f&&(g.renderCache[a][c]=e),e)},clearCache:function(a){var b=this;"undefined"==typeof a?b.renderCache={}:delete b.renderCache[a]},canCreate:function(a){var b=this;if(!b.settings.create)return!1;var c=b.settings.createFilter;return!(!a.length||"function"==typeof c&&!c.apply(b,[a])||"string"==typeof c&&!new RegExp(c).test(a)||c instanceof RegExp&&!c.test(a))}}),L.count=0,L.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},a.fn.selectize=function(b){var c=a.fn.selectize.defaults,d=a.extend({},c,b),e=d.dataAttr,f=d.labelField,g=d.valueField,h=d.optgroupField,i=d.optgroupLabelField,j=d.optgroupValueField,k=function(b,c){var h,i,j,k,l=b.attr(e);if(l)for(c.options=JSON.parse(l),h=0,i=c.options.length;i>h;h++)c.items.push(c.options[h][g]);else{var m=a.trim(b.val()||"");if(!d.allowEmptyOption&&!m.length)return;for(j=m.split(d.delimiter),h=0,i=j.length;i>h;h++)k={},k[f]=j[h],k[g]=j[h],c.options.push(k);c.items=j}},l=function(b,c){var k,l,m,n,o=c.options,p={},q=function(a){var b=e&&a.attr(e);return"string"==typeof b&&b.length?JSON.parse(b):null},r=function(b,e){b=a(b);var i=z(b.attr("value"));if(i||d.allowEmptyOption)if(p.hasOwnProperty(i)){if(e){var j=p[i][h];j?a.isArray(j)?j.push(e):p[i][h]=[j,e]:p[i][h]=e}}else{var k=q(b)||{};k[f]=k[f]||b.text(),k[g]=k[g]||i,k[h]=k[h]||e,p[i]=k,o.push(k),b.is(":selected")&&c.items.push(i)}},s=function(b){var d,e,f,g,h;for(b=a(b),f=b.attr("label"),f&&(g=q(b)||{},g[i]=f,g[j]=f,c.optgroups.push(g)),h=a("option",b),d=0,e=h.length;e>d;d++)r(h[d],f)};for(c.maxItems=b.attr("multiple")?null:1,n=b.children(),k=0,l=n.length;l>k;k++)m=n[k].tagName.toLowerCase(),"optgroup"===m?s(n[k]):"option"===m&&r(n[k])};return this.each(function(){if(!this.selectize){var e,f=a(this),g=this.tagName.toLowerCase(),h=f.attr("placeholder")||f.attr("data-placeholder");h||d.allowEmptyOption||(h=f.children('option[value=""]').text());var i={placeholder:h,options:[],optgroups:[],items:[]};"select"===g?l(f,i):k(f,i),e=new L(f,a.extend(!0,{},c,i,b))}})},a.fn.selectize.defaults=L.defaults,a.fn.selectize.support={validity:x},L.define("drag_drop",function(){if(!a.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');if("multi"===this.settings.mode){var b=this;b.lock=function(){var a=b.lock;return function(){var c=b.$control.data("sortable");return c&&c.disable(),a.apply(b,arguments)}}(),b.unlock=function(){var a=b.unlock;return function(){var c=b.$control.data("sortable");return c&&c.enable(),a.apply(b,arguments)}}(),b.setup=function(){var c=b.setup;return function(){c.apply(this,arguments);var d=b.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:b.isLocked,start:function(a,b){b.placeholder.css("width",b.helper.css("width")),d.css({overflow:"visible"})},stop:function(){d.css({overflow:"hidden"});var c=b.$activeItems?b.$activeItems.slice():null,e=[];d.children("[data-value]").each(function(){e.push(a(this).attr("data-value"))}),b.setValue(e),b.setActiveItem(c)}})}}()}}),L.define("dropdown_header",function(b){var c=this;b=a.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(a){return'
'+a.title+'×
'}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),L.define("optgroup_columns",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest("[data-group]").find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e
',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a("[data-group]",c.$dropdown_content),f=k.length,f&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;f>e;e++)g=Math.max(g,k.eq(e).height());k.css({height:g})}b.equalizeWidth&&(j=c.$dropdown_content.innerWidth()-d(),h=Math.round(j/f),k.css({width:h}),f>1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(C.after(this,"positionDropdown",e),C.after(this,"refreshOptions",e))}),L.define("remove_button",function(b){if("single"!==this.settings.mode){b=a.extend({label:"×",title:"Remove",className:"remove",append:!0},b);var c=this,d=''+b.label+"",e=function(a,b){var c=a.search(/(<\/[^>]+>\s*)$/);return a.substring(0,c)+b+a.substring(c)};this.setup=function(){var f=c.setup;return function(){if(b.append){var g=c.settings.render.item;c.settings.render.item=function(){return e(g.apply(this,arguments),d)}}f.apply(this,arguments),this.$control.on("click","."+b.className,function(b){if(b.preventDefault(),!c.isLocked){var d=a(b.currentTarget).parent();c.setActiveItem(d),c.deleteSelection()&&c.setCaret(c.items.length)}})}}()}}),L.define("restore_on_backspace",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return b.keyCode===p&&""===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1,d>=0&&d */ (function(root, factory) { if (typeof define === 'function' && define.amd) { define('sifter', factory); } else if (typeof exports === 'object') { module.exports = factory(); } else { root.Sifter = factory(); } }(this, function() { /** * Textually searches arrays and hashes of objects * by property (or multiple properties). Designed * specifically for autocomplete. * * @constructor * @param {array|object} items * @param {object} items */ var Sifter = function(items, settings) { this.items = items; this.settings = settings || {diacritics: true}; }; /** * Splits a search string into an array of individual * regexps to be used to match results. * * @param {string} query * @returns {array} */ Sifter.prototype.tokenize = function(query) { query = trim(String(query || '').toLowerCase()); if (!query || !query.length) return []; var i, n, regex, letter; var tokens = []; var words = query.split(/ +/); for (i = 0, n = words.length; i < n; i++) { regex = escape_regex(words[i]); if (this.settings.diacritics) { for (letter in DIACRITICS) { if (DIACRITICS.hasOwnProperty(letter)) { regex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]); } } } tokens.push({ string : words[i], regex : new RegExp(regex, 'i') }); } return tokens; }; /** * Iterates over arrays and hashes. * * ``` * this.iterator(this.items, function(item, id) { * // invoked for each item * }); * ``` * * @param {array|object} object */ Sifter.prototype.iterator = function(object, callback) { var iterator; if (is_array(object)) { iterator = Array.prototype.forEach || function(callback) { for (var i = 0, n = this.length; i < n; i++) { callback(this[i], i, this); } }; } else { iterator = function(callback) { for (var key in this) { if (this.hasOwnProperty(key)) { callback(this[key], key, this); } } }; } iterator.apply(object, [callback]); }; /** * Returns a function to be used to score individual results. * * Good matches will have a higher score than poor matches. * If an item is not a match, 0 will be returned by the function. * * @param {object|string} search * @param {object} options (optional) * @returns {function} */ Sifter.prototype.getScoreFunction = function(search, options) { var self, fields, tokens, token_count; self = this; search = self.prepareSearch(search, options); tokens = search.tokens; fields = search.options.fields; token_count = tokens.length; /** * Calculates how close of a match the * given value is against a search token. * * @param {mixed} value * @param {object} token * @return {number} */ var scoreValue = function(value, token) { var score, pos; if (!value) return 0; value = String(value || ''); pos = value.search(token.regex); if (pos === -1) return 0; score = token.string.length / value.length; if (pos === 0) score += 0.5; return score; }; /** * Calculates the score of an object * against the search query. * * @param {object} token * @param {object} data * @return {number} */ var scoreObject = (function() { var field_count = fields.length; if (!field_count) { return function() { return 0; }; } if (field_count === 1) { return function(token, data) { return scoreValue(data[fields[0]], token); }; } return function(token, data) { for (var i = 0, sum = 0; i < field_count; i++) { sum += scoreValue(data[fields[i]], token); } return sum / field_count; }; })(); if (!token_count) { return function() { return 0; }; } if (token_count === 1) { return function(data) { return scoreObject(tokens[0], data); }; } if (search.options.conjunction === 'and') { return function(data) { var score; for (var i = 0, sum = 0; i < token_count; i++) { score = scoreObject(tokens[i], data); if (score <= 0) return 0; sum += score; } return sum / token_count; }; } else { return function(data) { for (var i = 0, sum = 0; i < token_count; i++) { sum += scoreObject(tokens[i], data); } return sum / token_count; }; } }; /** * Returns a function that can be used to compare two * results, for sorting purposes. If no sorting should * be performed, `null` will be returned. * * @param {string|object} search * @param {object} options * @return function(a,b) */ Sifter.prototype.getSortFunction = function(search, options) { var i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort; self = this; search = self.prepareSearch(search, options); sort = (!search.query && options.sort_empty) || options.sort; /** * Fetches the specified sort field value * from a search result item. * * @param {string} name * @param {object} result * @return {mixed} */ get_field = function(name, result) { if (name === '$score') return result.score; return self.items[result.id][name]; }; // parse options fields = []; if (sort) { for (i = 0, n = sort.length; i < n; i++) { if (search.query || sort[i].field !== '$score') { fields.push(sort[i]); } } } // the "$score" field is implied to be the primary // sort field, unless it's manually specified if (search.query) { implicit_score = true; for (i = 0, n = fields.length; i < n; i++) { if (fields[i].field === '$score') { implicit_score = false; break; } } if (implicit_score) { fields.unshift({field: '$score', direction: 'desc'}); } } else { for (i = 0, n = fields.length; i < n; i++) { if (fields[i].field === '$score') { fields.splice(i, 1); break; } } } multipliers = []; for (i = 0, n = fields.length; i < n; i++) { multipliers.push(fields[i].direction === 'desc' ? -1 : 1); } // build function fields_count = fields.length; if (!fields_count) { return null; } else if (fields_count === 1) { field = fields[0].field; multiplier = multipliers[0]; return function(a, b) { return multiplier * cmp( get_field(field, a), get_field(field, b) ); }; } else { return function(a, b) { var i, result, a_value, b_value, field; for (i = 0; i < fields_count; i++) { field = fields[i].field; result = multipliers[i] * cmp( get_field(field, a), get_field(field, b) ); if (result) return result; } return 0; }; } }; /** * Parses a search query and returns an object * with tokens and fields ready to be populated * with results. * * @param {string} query * @param {object} options * @returns {object} */ Sifter.prototype.prepareSearch = function(query, options) { if (typeof query === 'object') return query; options = extend({}, options); var option_fields = options.fields; var option_sort = options.sort; var option_sort_empty = options.sort_empty; if (option_fields && !is_array(option_fields)) options.fields = [option_fields]; if (option_sort && !is_array(option_sort)) options.sort = [option_sort]; if (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty]; return { options : options, query : String(query || '').toLowerCase(), tokens : this.tokenize(query), total : 0, items : [] }; }; /** * Searches through all items and returns a sorted array of matches. * * The `options` parameter can contain: * * - fields {string|array} * - sort {array} * - score {function} * - filter {bool} * - limit {integer} * * Returns an object containing: * * - options {object} * - query {string} * - tokens {array} * - total {int} * - items {array} * * @param {string} query * @param {object} options * @returns {object} */ Sifter.prototype.search = function(query, options) { var self = this, value, score, search, calculateScore; var fn_sort; var fn_score; search = this.prepareSearch(query, options); options = search.options; query = search.query; // generate result scoring function fn_score = options.score || self.getScoreFunction(search); // perform search and sort if (query.length) { self.iterator(self.items, function(item, id) { score = fn_score(item); if (options.filter === false || score > 0) { search.items.push({'score': score, 'id': id}); } }); } else { self.iterator(self.items, function(item, id) { search.items.push({'score': 1, 'id': id}); }); } fn_sort = self.getSortFunction(search, options); if (fn_sort) search.items.sort(fn_sort); // apply limits search.total = search.items.length; if (typeof options.limit === 'number') { search.items = search.items.slice(0, options.limit); } return search; }; // utilities // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - var cmp = function(a, b) { if (typeof a === 'number' && typeof b === 'number') { return a > b ? 1 : (a < b ? -1 : 0); } a = asciifold(String(a || '')); b = asciifold(String(b || '')); if (a > b) return 1; if (b > a) return -1; return 0; }; var extend = function(a, b) { var i, n, k, object; for (i = 1, n = arguments.length; i < n; i++) { object = arguments[i]; if (!object) continue; for (k in object) { if (object.hasOwnProperty(k)) { a[k] = object[k]; } } } return a; }; var trim = function(str) { return (str + '').replace(/^\s+|\s+$|/g, ''); }; var escape_regex = function(str) { return (str + '').replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'); }; var is_array = Array.isArray || ($ && $.isArray) || function(object) { return Object.prototype.toString.call(object) === '[object Array]'; }; var DIACRITICS = { 'a': '[aÀÁÂÃÄÅàáâãäåĀāąĄ]', 'c': '[cÇçćĆčČ]', 'd': '[dđĐďĎ]', 'e': '[eÈÉÊËèéêëěĚĒēęĘ]', 'i': '[iÌÍÎÏìíîïĪī]', 'l': '[lłŁ]', 'n': '[nÑñňŇńŃ]', 'o': '[oÒÓÔÕÕÖØòóôõöøŌō]', 'r': '[rřŘ]', 's': '[sŠšśŚ]', 't': '[tťŤ]', 'u': '[uÙÚÛÜùúûüůŮŪū]', 'y': '[yŸÿýÝ]', 'z': '[zŽžżŻźŹ]' }; var asciifold = (function() { var i, n, k, chunk; var foreignletters = ''; var lookup = {}; for (k in DIACRITICS) { if (DIACRITICS.hasOwnProperty(k)) { chunk = DIACRITICS[k].substring(2, DIACRITICS[k].length - 1); foreignletters += chunk; for (i = 0, n = chunk.length; i < n; i++) { lookup[chunk.charAt(i)] = k; } } } var regexp = new RegExp('[' + foreignletters + ']', 'g'); return function(str) { return str.replace(regexp, function(foreignletter) { return lookup[foreignletter]; }).toLowerCase(); }; })(); // export // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - return Sifter; })); /** * microplugin.js * Copyright (c) 2013 Brian Reavis & contributors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at: * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. * * @author Brian Reavis */ (function(root, factory) { if (typeof define === 'function' && define.amd) { define('microplugin', factory); } else if (typeof exports === 'object') { module.exports = factory(); } else { root.MicroPlugin = factory(); } }(this, function() { var MicroPlugin = {}; MicroPlugin.mixin = function(Interface) { Interface.plugins = {}; /** * Initializes the listed plugins (with options). * Acceptable formats: * * List (without options): * ['a', 'b', 'c'] * * List (with options): * [{'name': 'a', options: {}}, {'name': 'b', options: {}}] * * Hash (with options): * {'a': { ... }, 'b': { ... }, 'c': { ... }} * * @param {mixed} plugins */ Interface.prototype.initializePlugins = function(plugins) { var i, n, key; var self = this; var queue = []; self.plugins = { names : [], settings : {}, requested : {}, loaded : {} }; if (utils.isArray(plugins)) { for (i = 0, n = plugins.length; i < n; i++) { if (typeof plugins[i] === 'string') { queue.push(plugins[i]); } else { self.plugins.settings[plugins[i].name] = plugins[i].options; queue.push(plugins[i].name); } } } else if (plugins) { for (key in plugins) { if (plugins.hasOwnProperty(key)) { self.plugins.settings[key] = plugins[key]; queue.push(key); } } } while (queue.length) { self.require(queue.shift()); } }; Interface.prototype.loadPlugin = function(name) { var self = this; var plugins = self.plugins; var plugin = Interface.plugins[name]; if (!Interface.plugins.hasOwnProperty(name)) { throw new Error('Unable to find "' + name + '" plugin'); } plugins.requested[name] = true; plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]); plugins.names.push(name); }; /** * Initializes a plugin. * * @param {string} name */ Interface.prototype.require = function(name) { var self = this; var plugins = self.plugins; if (!self.plugins.loaded.hasOwnProperty(name)) { if (plugins.requested[name]) { throw new Error('Plugin has circular dependency ("' + name + '")'); } self.loadPlugin(name); } return plugins.loaded[name]; }; /** * Registers a plugin. * * @param {string} name * @param {function} fn */ Interface.define = function(name, fn) { Interface.plugins[name] = { 'name' : name, 'fn' : fn }; }; }; var utils = { isArray: Array.isArray || function(vArg) { return Object.prototype.toString.call(vArg) === '[object Array]'; } }; return MicroPlugin; })); /** * selectize.js (v0.12.1) * Copyright (c) 2013–2015 Brian Reavis & contributors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at: * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. * * @author Brian Reavis */ /*jshint curly:false */ /*jshint browser:true */ (function(root, factory) { if (typeof define === 'function' && define.amd) { define('selectize', ['jquery','sifter','microplugin'], factory); } else if (typeof exports === 'object') { module.exports = factory(require('jquery'), require('sifter'), require('microplugin')); } else { root.Selectize = factory(root.jQuery, root.Sifter, root.MicroPlugin); } }(this, function($, Sifter, MicroPlugin) { 'use strict'; var highlight = function($element, pattern) { if (typeof pattern === 'string' && !pattern.length) return; var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern; var highlight = function(node) { var skip = 0; if (node.nodeType === 3) { var pos = node.data.search(regex); if (pos >= 0 && node.data.length > 0) { var match = node.data.match(regex); var spannode = document.createElement('span'); spannode.className = 'highlight'; var middlebit = node.splitText(pos); var endbit = middlebit.splitText(match[0].length); var middleclone = middlebit.cloneNode(true); spannode.appendChild(middleclone); middlebit.parentNode.replaceChild(spannode, middlebit); skip = 1; } } else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) { for (var i = 0; i < node.childNodes.length; ++i) { i += highlight(node.childNodes[i]); } } return skip; }; return $element.each(function() { highlight(this); }); }; var MicroEvent = function() {}; MicroEvent.prototype = { on: function(event, fct){ this._events = this._events || {}; this._events[event] = this._events[event] || []; this._events[event].push(fct); }, off: function(event, fct){ var n = arguments.length; if (n === 0) return delete this._events; if (n === 1) return delete this._events[event]; this._events = this._events || {}; if (event in this._events === false) return; this._events[event].splice(this._events[event].indexOf(fct), 1); }, trigger: function(event /* , args... */){ this._events = this._events || {}; if (event in this._events === false) return; for (var i = 0; i < this._events[event].length; i++){ this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1)); } } }; /** * Mixin will delegate all MicroEvent.js function in the destination object. * * - MicroEvent.mixin(Foobar) will make Foobar able to use MicroEvent * * @param {object} the object which will support MicroEvent */ MicroEvent.mixin = function(destObject){ var props = ['on', 'off', 'trigger']; for (var i = 0; i < props.length; i++){ destObject.prototype[props[i]] = MicroEvent.prototype[props[i]]; } }; var IS_MAC = /Mac/.test(navigator.userAgent); var KEY_A = 65; var KEY_COMMA = 188; var KEY_RETURN = 13; var KEY_ESC = 27; var KEY_LEFT = 37; var KEY_UP = 38; var KEY_P = 80; var KEY_RIGHT = 39; var KEY_DOWN = 40; var KEY_N = 78; var KEY_BACKSPACE = 8; var KEY_DELETE = 46; var KEY_SHIFT = 16; var KEY_CMD = IS_MAC ? 91 : 17; var KEY_CTRL = IS_MAC ? 18 : 17; var KEY_TAB = 9; var TAG_SELECT = 1; var TAG_INPUT = 2; // for now, android support in general is too spotty to support validity var SUPPORTS_VALIDITY_API = !/android/i.test(window.navigator.userAgent) && !!document.createElement('form').validity; var isset = function(object) { return typeof object !== 'undefined'; }; /** * Converts a scalar to its best string representation * for hash keys and HTML attribute values. * * Transformations: * 'str' -> 'str' * null -> '' * undefined -> '' * true -> '1' * false -> '0' * 0 -> '0' * 1 -> '1' * * @param {string} value * @returns {string|null} */ var hash_key = function(value) { if (typeof value === 'undefined' || value === null) return null; if (typeof value === 'boolean') return value ? '1' : '0'; return value + ''; }; /** * Escapes a string for use within HTML. * * @param {string} str * @returns {string} */ var escape_html = function(str) { return (str + '') .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"'); }; /** * Escapes "$" characters in replacement strings. * * @param {string} str * @returns {string} */ var escape_replace = function(str) { return (str + '').replace(/\$/g, '$$$$'); }; var hook = {}; /** * Wraps `method` on `self` so that `fn` * is invoked before the original method. * * @param {object} self * @param {string} method * @param {function} fn */ hook.before = function(self, method, fn) { var original = self[method]; self[method] = function() { fn.apply(self, arguments); return original.apply(self, arguments); }; }; /** * Wraps `method` on `self` so that `fn` * is invoked after the original method. * * @param {object} self * @param {string} method * @param {function} fn */ hook.after = function(self, method, fn) { var original = self[method]; self[method] = function() { var result = original.apply(self, arguments); fn.apply(self, arguments); return result; }; }; /** * Wraps `fn` so that it can only be invoked once. * * @param {function} fn * @returns {function} */ var once = function(fn) { var called = false; return function() { if (called) return; called = true; fn.apply(this, arguments); }; }; /** * Wraps `fn` so that it can only be called once * every `delay` milliseconds (invoked on the falling edge). * * @param {function} fn * @param {int} delay * @returns {function} */ var debounce = function(fn, delay) { var timeout; return function() { var self = this; var args = arguments; window.clearTimeout(timeout); timeout = window.setTimeout(function() { fn.apply(self, args); }, delay); }; }; /** * Debounce all fired events types listed in `types` * while executing the provided `fn`. * * @param {object} self * @param {array} types * @param {function} fn */ var debounce_events = function(self, types, fn) { var type; var trigger = self.trigger; var event_args = {}; // override trigger method self.trigger = function() { var type = arguments[0]; if (types.indexOf(type) !== -1) { event_args[type] = arguments; } else { return trigger.apply(self, arguments); } }; // invoke provided function fn.apply(self, []); self.trigger = trigger; // trigger queued events for (type in event_args) { if (event_args.hasOwnProperty(type)) { trigger.apply(self, event_args[type]); } } }; /** * A workaround for http://bugs.jquery.com/ticket/6696 * * @param {object} $parent - Parent element to listen on. * @param {string} event - Event name. * @param {string} selector - Descendant selector to filter by. * @param {function} fn - Event handler. */ var watchChildEvent = function($parent, event, selector, fn) { $parent.on(event, selector, function(e) { var child = e.target; while (child && child.parentNode !== $parent[0]) { child = child.parentNode; } e.currentTarget = child; return fn.apply(this, [e]); }); }; /** * Determines the current selection within a text input control. * Returns an object containing: * - start * - length * * @param {object} input * @returns {object} */ var getSelection = function(input) { var result = {}; if ('selectionStart' in input) { result.start = input.selectionStart; result.length = input.selectionEnd - result.start; } else if (document.selection) { input.focus(); var sel = document.selection.createRange(); var selLen = document.selection.createRange().text.length; sel.moveStart('character', -input.value.length); result.start = sel.text.length - selLen; result.length = selLen; } return result; }; /** * Copies CSS properties from one element to another. * * @param {object} $from * @param {object} $to * @param {array} properties */ var transferStyles = function($from, $to, properties) { var i, n, styles = {}; if (properties) { for (i = 0, n = properties.length; i < n; i++) { styles[properties[i]] = $from.css(properties[i]); } } else { styles = $from.css(); } $to.css(styles); }; /** * Measures the width of a string within a * parent element (in pixels). * * @param {string} str * @param {object} $parent * @returns {int} */ var measureString = function(str, $parent) { if (!str) { return 0; } var $test = $('').css({ position: 'absolute', top: -99999, left: -99999, width: 'auto', padding: 0, whiteSpace: 'pre' }).text(str).appendTo('body'); transferStyles($parent, $test, [ 'letterSpacing', 'fontSize', 'fontFamily', 'fontWeight', 'textTransform' ]); var width = $test.width(); $test.remove(); return width; }; /** * Sets up an input to grow horizontally as the user * types. If the value is changed manually, you can * trigger the "update" handler to resize: * * $input.trigger('update'); * * @param {object} $input */ var autoGrow = function($input) { var currentWidth = null; var update = function(e, options) { var value, keyCode, printable, placeholder, width; var shift, character, selection; e = e || window.event || {}; options = options || {}; if (e.metaKey || e.altKey) return; if (!options.force && $input.data('grow') === false) return; value = $input.val(); if (e.type && e.type.toLowerCase() === 'keydown') { keyCode = e.keyCode; printable = ( (keyCode >= 97 && keyCode <= 122) || // a-z (keyCode >= 65 && keyCode <= 90) || // A-Z (keyCode >= 48 && keyCode <= 57) || // 0-9 keyCode === 32 // space ); if (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) { selection = getSelection($input[0]); if (selection.length) { value = value.substring(0, selection.start) + value.substring(selection.start + selection.length); } else if (keyCode === KEY_BACKSPACE && selection.start) { value = value.substring(0, selection.start - 1) + value.substring(selection.start + 1); } else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') { value = value.substring(0, selection.start) + value.substring(selection.start + 1); } } else if (printable) { shift = e.shiftKey; character = String.fromCharCode(e.keyCode); if (shift) character = character.toUpperCase(); else character = character.toLowerCase(); value += character; } } placeholder = $input.attr('placeholder'); if (!value && placeholder) { value = placeholder; } width = measureString(value, $input) + 4; if (width !== currentWidth) { currentWidth = width; $input.width(width); $input.triggerHandler('resize'); } }; $input.on('keydown keyup update blur', update); update(); }; var Selectize = function($input, settings) { var key, i, n, dir, input, self = this; input = $input[0]; input.selectize = self; // detect rtl environment var computedStyle = window.getComputedStyle && window.getComputedStyle(input, null); dir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction; dir = dir || $input.parents('[dir]:first').attr('dir') || ''; // setup default state $.extend(self, { order : 0, settings : settings, $input : $input, tabIndex : $input.attr('tabindex') || '', tagType : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT, rtl : /rtl/i.test(dir), eventNS : '.selectize' + (++Selectize.count), highlightedValue : null, isOpen : false, isDisabled : false, isRequired : $input.is('[required]'), isInvalid : false, isLocked : false, isFocused : false, isInputHidden : false, isSetup : false, isShiftDown : false, isCmdDown : false, isCtrlDown : false, ignoreFocus : false, ignoreBlur : false, ignoreHover : false, hasOptions : false, currentResults : null, lastValue : '', caretPos : 0, loading : 0, loadedSearches : {}, $activeOption : null, $activeItems : [], optgroups : {}, options : {}, userOptions : {}, items : [], renderCache : {}, onSearchChange : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle) }); // search system self.sifter = new Sifter(this.options, {diacritics: settings.diacritics}); // build options table if (self.settings.options) { for (i = 0, n = self.settings.options.length; i < n; i++) { self.registerOption(self.settings.options[i]); } delete self.settings.options; } // build optgroup table if (self.settings.optgroups) { for (i = 0, n = self.settings.optgroups.length; i < n; i++) { self.registerOptionGroup(self.settings.optgroups[i]); } delete self.settings.optgroups; } // option-dependent defaults self.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi'); if (typeof self.settings.hideSelected !== 'boolean') { self.settings.hideSelected = self.settings.mode === 'multi'; } self.initializePlugins(self.settings.plugins); self.setupCallbacks(); self.setupTemplates(); self.setup(); }; // mixins // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MicroEvent.mixin(Selectize); MicroPlugin.mixin(Selectize); // methods // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $.extend(Selectize.prototype, { /** * Creates all elements and sets up event bindings. */ setup: function() { var self = this; var settings = self.settings; var eventNS = self.eventNS; var $window = $(window); var $document = $(document); var $input = self.$input; var $wrapper; var $control; var $control_input; var $dropdown; var $dropdown_content; var $dropdown_parent; var inputMode; var timeout_blur; var timeout_focus; var classes; var classes_plugins; inputMode = self.settings.mode; classes = $input.attr('class') || ''; $wrapper = $('
').addClass(settings.wrapperClass).addClass(classes).addClass(inputMode); $control = $('
').addClass(settings.inputClass).addClass('items').appendTo($wrapper); $control_input = $('').appendTo($control).attr('tabindex', $input.is(':disabled') ? '-1' : self.tabIndex); $dropdown_parent = $(settings.dropdownParent || $wrapper); $dropdown = $('
').addClass(settings.dropdownClass).addClass(inputMode).hide().appendTo($dropdown_parent); $dropdown_content = $('
').addClass(settings.dropdownContentClass).appendTo($dropdown); if(self.settings.copyClassesToDropdown) { $dropdown.addClass(classes); } $wrapper.css({ width: $input[0].style.width }); if (self.plugins.names.length) { classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-'); $wrapper.addClass(classes_plugins); $dropdown.addClass(classes_plugins); } if ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) { $input.attr('multiple', 'multiple'); } if (self.settings.placeholder) { $control_input.attr('placeholder', settings.placeholder); } // if splitOn was not passed in, construct it from the delimiter to allow pasting universally if (!self.settings.splitOn && self.settings.delimiter) { var delimiterEscaped = self.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); self.settings.splitOn = new RegExp('\\s*' + delimiterEscaped + '+\\s*'); } if ($input.attr('autocorrect')) { $control_input.attr('autocorrect', $input.attr('autocorrect')); } if ($input.attr('autocapitalize')) { $control_input.attr('autocapitalize', $input.attr('autocapitalize')); } self.$wrapper = $wrapper; self.$control = $control; self.$control_input = $control_input; self.$dropdown = $dropdown; self.$dropdown_content = $dropdown_content; $dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); }); $dropdown.on('mousedown click', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); }); watchChildEvent($control, 'mousedown', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); }); autoGrow($control_input); $control.on({ mousedown : function() { return self.onMouseDown.apply(self, arguments); }, click : function() { return self.onClick.apply(self, arguments); } }); $control_input.on({ mousedown : function(e) { e.stopPropagation(); }, keydown : function() { return self.onKeyDown.apply(self, arguments); }, keyup : function() { return self.onKeyUp.apply(self, arguments); }, keypress : function() { return self.onKeyPress.apply(self, arguments); }, resize : function() { self.positionDropdown.apply(self, []); }, blur : function() { return self.onBlur.apply(self, arguments); }, focus : function() { self.ignoreBlur = false; return self.onFocus.apply(self, arguments); }, paste : function() { return self.onPaste.apply(self, arguments); } }); $document.on('keydown' + eventNS, function(e) { self.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey']; self.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey']; self.isShiftDown = e.shiftKey; }); $document.on('keyup' + eventNS, function(e) { if (e.keyCode === KEY_CTRL) self.isCtrlDown = false; if (e.keyCode === KEY_SHIFT) self.isShiftDown = false; if (e.keyCode === KEY_CMD) self.isCmdDown = false; }); $document.on('mousedown' + eventNS, function(e) { if (self.isFocused) { // prevent events on the dropdown scrollbar from causing the control to blur if (e.target === self.$dropdown[0] || e.target.parentNode === self.$dropdown[0]) { return false; } // blur on click outside if (!self.$control.has(e.target).length && e.target !== self.$control[0]) { self.blur(e.target); } } }); $window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() { if (self.isOpen) { self.positionDropdown.apply(self, arguments); } }); $window.on('mousemove' + eventNS, function() { self.ignoreHover = false; }); // store original children and tab index so that they can be // restored when the destroy() method is called. this.revertSettings = { $children : $input.children().detach(), tabindex : $input.attr('tabindex') }; $input.attr('tabindex', -1).hide().after(self.$wrapper); if ($.isArray(settings.items)) { self.setValue(settings.items); delete settings.items; } // feature detect for the validation API if (SUPPORTS_VALIDITY_API) { $input.on('invalid' + eventNS, function(e) { e.preventDefault(); self.isInvalid = true; self.refreshState(); }); } self.updateOriginalInput(); self.refreshItems(); self.refreshState(); self.updatePlaceholder(); self.isSetup = true; if ($input.is(':disabled')) { self.disable(); } self.on('change', this.onChange); $input.data('selectize', self); $input.addClass('selectized'); self.trigger('initialize'); // preload options if (settings.preload === true) { self.onSearchChange(''); } }, /** * Sets up default rendering functions. */ setupTemplates: function() { var self = this; var field_label = self.settings.labelField; var field_optgroup = self.settings.optgroupLabelField; var templates = { 'optgroup': function(data) { return '
' + data.html + '
'; }, 'optgroup_header': function(data, escape) { return '
' + escape(data[field_optgroup]) + '
'; }, 'option': function(data, escape) { return '
' + escape(data[field_label]) + '
'; }, 'item': function(data, escape) { return '
' + escape(data[field_label]) + '
'; }, 'option_create': function(data, escape) { return '
Add ' + escape(data.input) + '
'; } }; self.settings.render = $.extend({}, templates, self.settings.render); }, /** * Maps fired events to callbacks provided * in the settings used when creating the control. */ setupCallbacks: function() { var key, fn, callbacks = { 'initialize' : 'onInitialize', 'change' : 'onChange', 'item_add' : 'onItemAdd', 'item_remove' : 'onItemRemove', 'clear' : 'onClear', 'option_add' : 'onOptionAdd', 'option_remove' : 'onOptionRemove', 'option_clear' : 'onOptionClear', 'optgroup_add' : 'onOptionGroupAdd', 'optgroup_remove' : 'onOptionGroupRemove', 'optgroup_clear' : 'onOptionGroupClear', 'dropdown_open' : 'onDropdownOpen', 'dropdown_close' : 'onDropdownClose', 'type' : 'onType', 'load' : 'onLoad', 'focus' : 'onFocus', 'blur' : 'onBlur' }; for (key in callbacks) { if (callbacks.hasOwnProperty(key)) { fn = this.settings[callbacks[key]]; if (fn) this.on(key, fn); } } }, /** * Triggered when the main control element * has a click event. * * @param {object} e * @return {boolean} */ onClick: function(e) { var self = this; // necessary for mobile webkit devices (manual focus triggering // is ignored unless invoked within a click event) if (!self.isFocused) { self.focus(); e.preventDefault(); } }, /** * Triggered when the main control element * has a mouse down event. * * @param {object} e * @return {boolean} */ onMouseDown: function(e) { var self = this; var defaultPrevented = e.isDefaultPrevented(); var $target = $(e.target); if (self.isFocused) { // retain focus by preventing native handling. if the // event target is the input it should not be modified. // otherwise, text selection within the input won't work. if (e.target !== self.$control_input[0]) { if (self.settings.mode === 'single') { // toggle dropdown self.isOpen ? self.close() : self.open(); } else if (!defaultPrevented) { self.setActiveItem(null); } return false; } } else { // give control focus if (!defaultPrevented) { window.setTimeout(function() { self.focus(); }, 0); } } }, /** * Triggered when the value of the control has been changed. * This should propagate the event to the original DOM * input / select element. */ onChange: function() { this.$input.trigger('change'); }, /** * Triggered on paste. * * @param {object} e * @returns {boolean} */ onPaste: function(e) { var self = this; if (self.isFull() || self.isInputHidden || self.isLocked) { e.preventDefault(); } else { // If a regex or string is included, this will split the pasted // input and create Items for each separate value if (self.settings.splitOn) { setTimeout(function() { var splitInput = $.trim(self.$control_input.val() || '').split(self.settings.splitOn); for (var i = 0, n = splitInput.length; i < n; i++) { self.createItem(splitInput[i]); } }, 0); } } }, /** * Triggered on keypress. * * @param {object} e * @returns {boolean} */ onKeyPress: function(e) { if (this.isLocked) return e && e.preventDefault(); var character = String.fromCharCode(e.keyCode || e.which); if (this.settings.create && this.settings.mode === 'multi' && character === this.settings.delimiter) { this.createItem(); e.preventDefault(); return false; } }, /** * Triggered on keydown. * * @param {object} e * @returns {boolean} */ onKeyDown: function(e) { var isInput = e.target === this.$control_input[0]; var self = this; if (self.isLocked) { if (e.keyCode !== KEY_TAB) { e.preventDefault(); } return; } switch (e.keyCode) { case KEY_A: if (self.isCmdDown) { self.selectAll(); return; } break; case KEY_ESC: if (self.isOpen) { e.preventDefault(); e.stopPropagation(); self.close(); } return; case KEY_N: if (!e.ctrlKey || e.altKey) break; case KEY_DOWN: if (!self.isOpen && self.hasOptions) { self.open(); } else if (self.$activeOption) { self.ignoreHover = true; var $next = self.getAdjacentOption(self.$activeOption, 1); if ($next.length) self.setActiveOption($next, true, true); } e.preventDefault(); return; case KEY_P: if (!e.ctrlKey || e.altKey) break; case KEY_UP: if (self.$activeOption) { self.ignoreHover = true; var $prev = self.getAdjacentOption(self.$activeOption, -1); if ($prev.length) self.setActiveOption($prev, true, true); } e.preventDefault(); return; case KEY_RETURN: if (self.isOpen && self.$activeOption) { self.onOptionSelect({currentTarget: self.$activeOption}); e.preventDefault(); } return; case KEY_LEFT: self.advanceSelection(-1, e); return; case KEY_RIGHT: self.advanceSelection(1, e); return; case KEY_TAB: if (self.settings.selectOnTab && self.isOpen && self.$activeOption) { self.onOptionSelect({currentTarget: self.$activeOption}); // Default behaviour is to jump to the next field, we only want this // if the current field doesn't accept any more entries if (!self.isFull()) { e.preventDefault(); } } if (self.settings.create && self.createItem()) { e.preventDefault(); } return; case KEY_BACKSPACE: case KEY_DELETE: self.deleteSelection(e); return; } if ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) { e.preventDefault(); return; } }, /** * Triggered on keyup. * * @param {object} e * @returns {boolean} */ onKeyUp: function(e) { var self = this; if (self.isLocked) return e && e.preventDefault(); var value = self.$control_input.val() || ''; if (self.lastValue !== value) { self.lastValue = value; self.onSearchChange(value); self.refreshOptions(); self.trigger('type', value); } }, /** * Invokes the user-provide option provider / loader. * * Note: this function is debounced in the Selectize * constructor (by `settings.loadDelay` milliseconds) * * @param {string} value */ onSearchChange: function(value) { var self = this; var fn = self.settings.load; if (!fn) return; if (self.loadedSearches.hasOwnProperty(value)) return; self.loadedSearches[value] = true; self.load(function(callback) { fn.apply(self, [value, callback]); }); }, /** * Triggered on focus. * * @param {object} e (optional) * @returns {boolean} */ onFocus: function(e) { var self = this; var wasFocused = self.isFocused; if (self.isDisabled) { self.blur(); e && e.preventDefault(); return false; } if (self.ignoreFocus) return; self.isFocused = true; if (self.settings.preload === 'focus') self.onSearchChange(''); if (!wasFocused) self.trigger('focus'); if (!self.$activeItems.length) { self.showInput(); self.setActiveItem(null); self.refreshOptions(!!self.settings.openOnFocus); } self.refreshState(); }, /** * Triggered on blur. * * @param {object} e * @param {Element} dest */ onBlur: function(e, dest) { var self = this; if (!self.isFocused) return; self.isFocused = false; if (self.ignoreFocus) { return; } else if (!self.ignoreBlur && document.activeElement === self.$dropdown_content[0]) { // necessary to prevent IE closing the dropdown when the scrollbar is clicked self.ignoreBlur = true; self.onFocus(e); return; } var deactivate = function() { self.close(); self.setTextboxValue(''); self.setActiveItem(null); self.setActiveOption(null); self.setCaret(self.items.length); self.refreshState(); // IE11 bug: element still marked as active (dest || document.body).focus(); self.ignoreFocus = false; self.trigger('blur'); }; self.ignoreFocus = true; if (self.settings.create && self.settings.createOnBlur) { self.createItem(null, false, deactivate); } else { deactivate(); } }, /** * Triggered when the user rolls over * an option in the autocomplete dropdown menu. * * @param {object} e * @returns {boolean} */ onOptionHover: function(e) { if (this.ignoreHover) return; this.setActiveOption(e.currentTarget, false); }, /** * Triggered when the user clicks on an option * in the autocomplete dropdown menu. * * @param {object} e * @returns {boolean} */ onOptionSelect: function(e) { var value, $target, $option, self = this; if (e.preventDefault) { e.preventDefault(); e.stopPropagation(); } $target = $(e.currentTarget); if ($target.hasClass('create')) { self.createItem(null, function() { if (self.settings.closeAfterSelect) { self.close(); } }); } else { value = $target.attr('data-value'); if (typeof value !== 'undefined') { self.lastQuery = null; self.setTextboxValue(''); self.addItem(value); if (self.settings.closeAfterSelect) { self.close(); } else if (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) { self.setActiveOption(self.getOption(value)); } } } }, /** * Triggered when the user clicks on an item * that has been selected. * * @param {object} e * @returns {boolean} */ onItemSelect: function(e) { var self = this; if (self.isLocked) return; if (self.settings.mode === 'multi') { e.preventDefault(); self.setActiveItem(e.currentTarget, e); } }, /** * Invokes the provided method that provides * results to a callback---which are then added * as options to the control. * * @param {function} fn */ load: function(fn) { var self = this; var $wrapper = self.$wrapper.addClass(self.settings.loadingClass); self.loading++; fn.apply(self, [function(results) { self.loading = Math.max(self.loading - 1, 0); if (results && results.length) { self.addOption(results); self.refreshOptions(self.isFocused && !self.isInputHidden); } if (!self.loading) { $wrapper.removeClass(self.settings.loadingClass); } self.trigger('load', results); }]); }, /** * Sets the input field of the control to the specified value. * * @param {string} value */ setTextboxValue: function(value) { var $input = this.$control_input; var changed = $input.val() !== value; if (changed) { $input.val(value).triggerHandler('update'); this.lastValue = value; } }, /** * Returns the value of the control. If multiple items * can be selected (e.g. or * element to reflect the current state. */ updateOriginalInput: function(opts) { var i, n, options, label, self = this; opts = opts || {}; if (self.tagType === TAG_SELECT) { options = []; for (i = 0, n = self.items.length; i < n; i++) { label = self.options[self.items[i]][self.settings.labelField] || ''; options.push(''); } if (!options.length && !this.$input.attr('multiple')) { options.push(''); } self.$input.html(options.join('')); } else { self.$input.val(self.getValue()); self.$input.attr('value',self.$input.val()); } if (self.isSetup) { if (!opts.silent) { self.trigger('change', self.$input.val()); } } }, /** * Shows/hide the input placeholder depending * on if there items in the list already. */ updatePlaceholder: function() { if (!this.settings.placeholder) return; var $input = this.$control_input; if (this.items.length) { $input.removeAttr('placeholder'); } else { $input.attr('placeholder', this.settings.placeholder); } $input.triggerHandler('update', {force: true}); }, /** * Shows the autocomplete dropdown containing * the available options. */ open: function() { var self = this; if (self.isLocked || self.isOpen || (self.settings.mode === 'multi' && self.isFull())) return; self.focus(); self.isOpen = true; self.refreshState(); self.$dropdown.css({visibility: 'hidden', display: 'block'}); self.positionDropdown(); self.$dropdown.css({visibility: 'visible'}); self.trigger('dropdown_open', self.$dropdown); }, /** * Closes the autocomplete dropdown menu. */ close: function() { var self = this; var trigger = self.isOpen; if (self.settings.mode === 'single' && self.items.length) { self.hideInput(); } self.isOpen = false; self.$dropdown.hide(); self.setActiveOption(null); self.refreshState(); if (trigger) self.trigger('dropdown_close', self.$dropdown); }, /** * Calculates and applies the appropriate * position of the dropdown. */ positionDropdown: function() { var $control = this.$control; var offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position(); offset.top += $control.outerHeight(true); this.$dropdown.css({ width : $control.outerWidth(), top : offset.top, left : offset.left }); }, /** * Resets / clears all selected items * from the control. * * @param {boolean} silent */ clear: function(silent) { var self = this; if (!self.items.length) return; self.$control.children(':not(input)').remove(); self.items = []; self.lastQuery = null; self.setCaret(0); self.setActiveItem(null); self.updatePlaceholder(); self.updateOriginalInput({silent: silent}); self.refreshState(); self.showInput(); self.trigger('clear'); }, /** * A helper method for inserting an element * at the current caret position. * * @param {object} $el */ insertAtCaret: function($el) { var caret = Math.min(this.caretPos, this.items.length); if (caret === 0) { this.$control.prepend($el); } else { $(this.$control[0].childNodes[caret]).before($el); } this.setCaret(caret + 1); }, /** * Removes the current selected item(s). * * @param {object} e (optional) * @returns {boolean} */ deleteSelection: function(e) { var i, n, direction, selection, values, caret, option_select, $option_select, $tail; var self = this; direction = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1; selection = getSelection(self.$control_input[0]); if (self.$activeOption && !self.settings.hideSelected) { option_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value'); } // determine items that will be removed values = []; if (self.$activeItems.length) { $tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first')); caret = self.$control.children(':not(input)').index($tail); if (direction > 0) { caret++; } for (i = 0, n = self.$activeItems.length; i < n; i++) { values.push($(self.$activeItems[i]).attr('data-value')); } if (e) { e.preventDefault(); e.stopPropagation(); } } else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) { if (direction < 0 && selection.start === 0 && selection.length === 0) { values.push(self.items[self.caretPos - 1]); } else if (direction > 0 && selection.start === self.$control_input.val().length) { values.push(self.items[self.caretPos]); } } // allow the callback to abort if (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) { return false; } // perform removal if (typeof caret !== 'undefined') { self.setCaret(caret); } while (values.length) { self.removeItem(values.pop()); } self.showInput(); self.positionDropdown(); self.refreshOptions(true); // select previous option if (option_select) { $option_select = self.getOption(option_select); if ($option_select.length) { self.setActiveOption($option_select); } } return true; }, /** * Selects the previous / next item (depending * on the `direction` argument). * * > 0 - right * < 0 - left * * @param {int} direction * @param {object} e (optional) */ advanceSelection: function(direction, e) { var tail, selection, idx, valueLength, cursorAtEdge, $tail; var self = this; if (direction === 0) return; if (self.rtl) direction *= -1; tail = direction > 0 ? 'last' : 'first'; selection = getSelection(self.$control_input[0]); if (self.isFocused && !self.isInputHidden) { valueLength = self.$control_input.val().length; cursorAtEdge = direction < 0 ? selection.start === 0 && selection.length === 0 : selection.start === valueLength; if (cursorAtEdge && !valueLength) { self.advanceCaret(direction, e); } } else { $tail = self.$control.children('.active:' + tail); if ($tail.length) { idx = self.$control.children(':not(input)').index($tail); self.setActiveItem(null); self.setCaret(direction > 0 ? idx + 1 : idx); } } }, /** * Moves the caret left / right. * * @param {int} direction * @param {object} e (optional) */ advanceCaret: function(direction, e) { var self = this, fn, $adj; if (direction === 0) return; fn = direction > 0 ? 'next' : 'prev'; if (self.isShiftDown) { $adj = self.$control_input[fn](); if ($adj.length) { self.hideInput(); self.setActiveItem($adj); e && e.preventDefault(); } } else { self.setCaret(self.caretPos + direction); } }, /** * Moves the caret to the specified index. * * @param {int} i */ setCaret: function(i) { var self = this; if (self.settings.mode === 'single') { i = self.items.length; } else { i = Math.max(0, Math.min(self.items.length, i)); } if(!self.isPending) { // the input must be moved by leaving it in place and moving the // siblings, due to the fact that focus cannot be restored once lost // on mobile webkit devices var j, n, fn, $children, $child; $children = self.$control.children(':not(input)'); for (j = 0, n = $children.length; j < n; j++) { $child = $($children[j]).detach(); if (j < i) { self.$control_input.before($child); } else { self.$control.append($child); } } } self.caretPos = i; }, /** * Disables user input on the control. Used while * items are being asynchronously created. */ lock: function() { this.close(); this.isLocked = true; this.refreshState(); }, /** * Re-enables user input on the control. */ unlock: function() { this.isLocked = false; this.refreshState(); }, /** * Disables user input on the control completely. * While disabled, it cannot receive focus. */ disable: function() { var self = this; self.$input.prop('disabled', true); self.$control_input.prop('disabled', true).prop('tabindex', -1); self.isDisabled = true; self.lock(); }, /** * Enables the control so that it can respond * to focus and user input. */ enable: function() { var self = this; self.$input.prop('disabled', false); self.$control_input.prop('disabled', false).prop('tabindex', self.tabIndex); self.isDisabled = false; self.unlock(); }, /** * Completely destroys the control and * unbinds all event listeners so that it can * be garbage collected. */ destroy: function() { var self = this; var eventNS = self.eventNS; var revertSettings = self.revertSettings; self.trigger('destroy'); self.off(); self.$wrapper.remove(); self.$dropdown.remove(); self.$input .html('') .append(revertSettings.$children) .removeAttr('tabindex') .removeClass('selectized') .attr({tabindex: revertSettings.tabindex}) .show(); self.$control_input.removeData('grow'); self.$input.removeData('selectize'); $(window).off(eventNS); $(document).off(eventNS); $(document.body).off(eventNS); delete self.$input[0].selectize; }, /** * A helper method for rendering "item" and * "option" templates, given the data. * * @param {string} templateName * @param {object} data * @returns {string} */ render: function(templateName, data) { var value, id, label; var html = ''; var cache = false; var self = this; var regex_tag = /^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?)/i; if (templateName === 'option' || templateName === 'item') { value = hash_key(data[self.settings.valueField]); cache = !!value; } // pull markup from cache if it exists if (cache) { if (!isset(self.renderCache[templateName])) { self.renderCache[templateName] = {}; } if (self.renderCache[templateName].hasOwnProperty(value)) { return self.renderCache[templateName][value]; } } // render markup html = self.settings.render[templateName].apply(this, [data, escape_html]); // add mandatory attributes if (templateName === 'option' || templateName === 'option_create') { html = html.replace(regex_tag, '<$1 data-selectable'); } if (templateName === 'optgroup') { id = data[self.settings.optgroupValueField] || ''; html = html.replace(regex_tag, '<$1 data-group="' + escape_replace(escape_html(id)) + '"'); } if (templateName === 'option' || templateName === 'item') { html = html.replace(regex_tag, '<$1 data-value="' + escape_replace(escape_html(value || '')) + '"'); } // update cache if (cache) { self.renderCache[templateName][value] = html; } return html; }, /** * Clears the render cache for a template. If * no template is given, clears all render * caches. * * @param {string} templateName */ clearCache: function(templateName) { var self = this; if (typeof templateName === 'undefined') { self.renderCache = {}; } else { delete self.renderCache[templateName]; } }, /** * Determines whether or not to display the * create item prompt, given a user input. * * @param {string} input * @return {boolean} */ canCreate: function(input) { var self = this; if (!self.settings.create) return false; var filter = self.settings.createFilter; return input.length && (typeof filter !== 'function' || filter.apply(self, [input])) && (typeof filter !== 'string' || new RegExp(filter).test(input)) && (!(filter instanceof RegExp) || filter.test(input)); } }); Selectize.count = 0; Selectize.defaults = { options: [], optgroups: [], plugins: [], delimiter: ',', splitOn: null, // regexp or string for splitting up values from a paste command persist: true, diacritics: true, create: false, createOnBlur: false, createFilter: null, highlight: true, openOnFocus: true, maxOptions: 1000, maxItems: null, hideSelected: null, addPrecedence: false, selectOnTab: false, preload: false, allowEmptyOption: false, closeAfterSelect: false, scrollDuration: 60, loadThrottle: 300, loadingClass: 'loading', dataAttr: 'data-data', optgroupField: 'optgroup', valueField: 'value', labelField: 'text', optgroupLabelField: 'label', optgroupValueField: 'value', lockOptgroupOrder: false, sortField: '$order', searchField: ['text'], searchConjunction: 'and', mode: null, wrapperClass: 'selectize-control', inputClass: 'selectize-input', dropdownClass: 'selectize-dropdown', dropdownContentClass: 'selectize-dropdown-content', dropdownParent: null, copyClassesToDropdown: true, /* load : null, // function(query, callback) { ... } score : null, // function(search) { ... } onInitialize : null, // function() { ... } onChange : null, // function(value) { ... } onItemAdd : null, // function(value, $item) { ... } onItemRemove : null, // function(value) { ... } onClear : null, // function() { ... } onOptionAdd : null, // function(value, data) { ... } onOptionRemove : null, // function(value) { ... } onOptionClear : null, // function() { ... } onOptionGroupAdd : null, // function(id, data) { ... } onOptionGroupRemove : null, // function(id) { ... } onOptionGroupClear : null, // function() { ... } onDropdownOpen : null, // function($dropdown) { ... } onDropdownClose : null, // function($dropdown) { ... } onType : null, // function(str) { ... } onDelete : null, // function(values) { ... } */ render: { /* item: null, optgroup: null, optgroup_header: null, option: null, option_create: null */ } }; $.fn.selectize = function(settings_user) { var defaults = $.fn.selectize.defaults; var settings = $.extend({}, defaults, settings_user); var attr_data = settings.dataAttr; var field_label = settings.labelField; var field_value = settings.valueField; var field_optgroup = settings.optgroupField; var field_optgroup_label = settings.optgroupLabelField; var field_optgroup_value = settings.optgroupValueField; /** * Initializes selectize from a element. * * @param {object} $input * @param {object} settings_element */ var init_textbox = function($input, settings_element) { var i, n, values, option; var data_raw = $input.attr(attr_data); if (!data_raw) { var value = $.trim($input.val() || ''); if (!settings.allowEmptyOption && !value.length) return; values = value.split(settings.delimiter); for (i = 0, n = values.length; i < n; i++) { option = {}; option[field_label] = values[i]; option[field_value] = values[i]; settings_element.options.push(option); } settings_element.items = values; } else { settings_element.options = JSON.parse(data_raw); for (i = 0, n = settings_element.options.length; i < n; i++) { settings_element.items.push(settings_element.options[i][field_value]); } } }; /** * Initializes selectize from a ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("