From 0bbe958685399feb476e1d2bb164c5eeb5c35829 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 23 Sep 2013 22:28:16 +0200 Subject: [PATCH 01/50] input readonly support --- index.html | 4 ++-- js/jquery.knob.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index d003bb0..7184b74 100755 --- a/index.html +++ b/index.html @@ -257,11 +257,11 @@

jQuery Knob

× Readonly

+readonly (or data-readOnly=true)
 data-thickness=".4"
 data-fgColor="chartreuse"
-data-readOnly=true
             
- +

× Dynamic

diff --git a/js/jquery.knob.js b/js/jquery.knob.js index d101d36..88a4d47 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -92,7 +92,7 @@ min : this.$.data('min') || 0, max : this.$.data('max') || 100, stopper : true, - readOnly : this.$.data('readonly'), + readOnly : this.$.data('readonly') || (this.$.attr('readonly') == 'readonly'), // UI cursor : (this.$.data('cursor') === true && 30) From bfa2abafbc8c5a3f11ff53a79786b302d64188bb Mon Sep 17 00:00:00 2001 From: root Date: Tue, 1 Oct 2013 22:14:15 +0200 Subject: [PATCH 02/50] fix #118 --- js/jquery.knob.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 88a4d47..df8209a 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -105,7 +105,7 @@ displayInput : this.$.data('displayinput') == null || this.$.data('displayinput'), displayPrevious : this.$.data('displayprevious'), fgColor : this.$.data('fgcolor') || '#87CEEB', - inputColor: this.$.data('inputcolor') || this.$.data('fgcolor') || '#87CEEB', + inputColor: this.$.data('inputcolor'), font: this.$.data('font') || 'Arial', fontWeight: this.$.data('font-weight') || 'bold', inline : false, @@ -120,6 +120,11 @@ }, this.o ); + // finalize options + if(!this.o.inputColor) { + this.o.inputColor = this.o.fgColor; + } + // routing value if(this.$.is('fieldset')) { From 66eb4d31ac57d0e19d7f24154225823175ee80d5 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 4 Oct 2013 21:33:07 +0200 Subject: [PATCH 03/50] precond thickness opt #121 --- js/jquery.knob.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index df8209a..e55fb07 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -98,7 +98,11 @@ cursor : (this.$.data('cursor') === true && 30) || this.$.data('cursor') || 0, - thickness : this.$.data('thickness') || 0.35, + thickness : ( + this.$.data('thickness') + && Math.max(Math.min(this.$.data('thickness'), 1), 0.01) + ) + || 0.35, lineCap : this.$.data('linecap') || 'butt', width : this.$.data('width') || 200, height : this.$.data('height') || 200, From b2aa1d42bb5af602fe9a074cb2613674d34f5167 Mon Sep 17 00:00:00 2001 From: Jason Walton Date: Thu, 31 Oct 2013 13:55:22 -0400 Subject: [PATCH 04/50] Allow dynamic resizing of read-only knobs. --- js/jquery.knob.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index e55fb07..d6fa7b7 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -421,19 +421,19 @@ } ); - if(this.relative) { - $(window).resize(function() { - s._carve() - .init(); - s._draw(); - }); - } - this.listen(); } else { this.$.attr('readonly', 'readonly'); } + if(this.relative) { + $(window).resize(function() { + s._carve() + .init(); + s._draw(); + }); + } + return this; }; From abcca720494091436fb5a0f946417e209646b91b Mon Sep 17 00:00:00 2001 From: root Date: Mon, 11 Nov 2013 15:07:57 +0100 Subject: [PATCH 05/50] fix version, license in a separate file --- README.md | 24 +----------------------- knob.jquery.json | 2 +- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 8c6dd33..05006fa 100755 --- a/README.md +++ b/README.md @@ -129,26 +129,4 @@ Set the value Supported browser ------- -Tested on Chrome, Safari, Firefox, IE 9.0. - -MIT License -------- - -Copyright (C) 2013 Anthony Terrien - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Tested on Chrome, Safari, Firefox, IE 9.0. \ No newline at end of file diff --git a/knob.jquery.json b/knob.jquery.json index 28f295d..780e111 100755 --- a/knob.jquery.json +++ b/knob.jquery.json @@ -9,7 +9,7 @@ "ui", "input" ], - "version": "1.2.2", + "version": "1.2.3", "author": { "name": "Anthony Terrien", "url": "https://github.com/aterrien" From 9181358b0a30c13adb18ae40dccec18a127d79a1 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 11 Nov 2013 15:08:46 +0100 Subject: [PATCH 06/50] fix version, license in a separate file --- LICENSE | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f5db321 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 Anthony Terrien + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From f6ce33dfddd9b238644572073a80d2718b3e621e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 13 Nov 2013 22:02:51 +0100 Subject: [PATCH 07/50] Adds LICENSE --- ._secretplan.jpg | Bin 0 -> 4096 bytes LICENSE | 0 secretplan.jpg | Bin 0 -> 33487 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ._secretplan.jpg mode change 100644 => 100755 LICENSE create mode 100644 secretplan.jpg diff --git a/._secretplan.jpg b/._secretplan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2382b55e7cbfb5480d8b7c5748b1df43b6af1f9e GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqnz} zh3H_I0aWgQriBs6hl-0P=jZAr78K;9>J^qI7A5ADWagzZ7#J8BTALbK7^j*W8CtvN z=cnhSDmZ5p<>#ha8yY(qni^V|>N-0+yXu-4n!D;+IJueWI+>fB8kxJ9xtN$+qS-gf z9Swoe5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVB`Apq)Zf-o4!g=AzFD-@*`=a&{G zrz)i77iBAC=9Q!ZyPf%Yi8(oy3OT81B??J7iFw(;zA#kRkfu=m5BG`;gWUiB068W# A4gdfE literal 0 HcmV?d00001 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/secretplan.jpg b/secretplan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e6f98dece5e1be83898eeefd08cde56fffe61b25 GIT binary patch literal 33487 zcmbTdc{r4B{69KlF!pt1Xzaq!VsFM4${J(eh9tWoj6s%^U5#n7hB3CxVC+OlN@)z$ zps{A@BSc7&rD*&4o^!6>xvulqIp=<^=lSQkpZj{h?)CkCyNK4C!-5n(}LVbK#XaZ!k*n6NNZ z4k{@nB_ksvDlV@mFRciZmXZFSMu5kkf;qtgTwDUu5MhY)|L5|rA0W)dCc>5u0?Gr} zgn=Mo;J;S@82|vtacu4X82o<~ARCDN*h(&L9^T^$ok9RMAPB^EZ2vKU z93pZWCY+)U*TC{vh-OM|6_ckbfz@(T(d6cv|{9#&JR zHMMoL`u0a1osYY^d!D=;ctsy%3=O|#jZaKYP0zfa{kXKe@@aML^ZLfl_uakygC9Q+ zkNyW25CHl=Vf}Ap{|{Wk$GF&zhlL&dKe&KwH;!+RFgu5w2B(OL1Na(NR9-WM3u2mE z)%Jp0LCf)*m~YfOo)e1NA5ZQ4548US+5bCWssF!_{cm9ZH?CO#9|(9ncpzcG1;AnH z4a|9;=+#_W53O5ZA%BRX+_r9MVc;mtU}ev9ETphfadYMKERJPX!J<@TU$0$+O~8y|aW}7T!x*!`MqxpT~4w0G=>r(W#$72TRe;Cnh>QCh(Z5 zBdhJZ(|_TtDloXnXRD=-U&RI0_ZX0j_Lqc2N1uJVIPV?7w;?PXKG zRAe+Escr_u&fSqRT&I*joA4po*Gj2OoYh;nQ|2DqJZjn#aYl$Q*UMk^=4A8ez#T4j z{Oe|hx5TfZ$r7oFPgrNDZ=}Z9w6UMl39H7?i2-uL6nELapI?N<%`mpd5`Rr~S6Uh9 zwT>X4%I~4^0(&FK26;XzV#G_J8no_A=35i1+W;zvnJ)vd6Fiwr3D9eCS)So%b&uM$b%CJ)fQIlFWBkIO= zY~vFSk!L)b{n@AfkT@g`8r3*X4XRalUR_v&h)KOp$X< z##XIT!_T+n)8?~$tKy9I$(AD_(}E>-Izk51X8L3o>FR9%6#+BtE+kzcrrLmKZ0O2+ zC|l8OC|%w0pmq#=qMt4sfr;3y^?!l$!sLm_TgQFAZ;LdHOt() zKECn>Gq~(+(=`BF4vtkeilo@%Y-L4ZSldA)KAVAgsC+WOY~nju`Ha2U2n z0ipC+xkv8^th!MLV?Ju_ZK35(IYxK^z=s%oH2&ngwY@$I$cd;S=NJ`y0gk}?WA|!6 z7B)`Fzv~#_HB%f=zlHN#%8G@NKOiJ(YG`;o(@n}p2`R7sDNR+mkA_5 z7G&QGpCkL5<}B%B(czekBjrPS<4HH#Do%-h@??K zJo>J0{FEABJAHfKIF~=w(E=7LL~c6B6E+LqNH+T-p-qD4aM4u{d64^!GZ0+?O+86d z2rzfH@pb*lo%%=ZEo`}_4ar!17blJ$*ne2Srm2Pk8-s$N8>-daCkk&lIY%T*h$(ix zOEr#|dem~xd5!eg&av<_K!)nt6+x!0+x9-;|6QMlI$=B4JC-Y&d+Yltja)n(+sO?5 zLsdMfMXEh*yt35bB=z3iuTO<$=ZsAUfoHaL#pfme4^ELN5fhb!XiIVbAsdGP8znE{@Fb*|v>4s9oMINVL1Egz+ zZM)+8>Jve8q|d}Vi}^Q1m8oas_A3)yyq7>ZTIG7IHD!rC%GCr1x^{o$rd57n3KjIBfR6?2-g{VvR{?G6H;BDB6)L}N=cv`y6!Qpxa}LUg^?iCu z>3#x(Ke2{psK#s0VklfskeaNM-SH5A;MY9c>GwG*OpkH-WF_9MJe(u7lL7Jv%~6&;nxop5yua9rw`6F&&KrR4mjp#%a0-$ z+SSjIRF_e0fkf9oe3@&q`$w$BLPm>rcclOjlHbb3sq#L53)Q~|>8k_wnn#6D_?9RX z1(Nak7L0vQEs#|NMO1Pw`X8y#c6A3(ecY7 zEau^&$s>cQgVfi6VWxjrKg?x8=fKF2|8l^KS<5f7#skwj;jD9KGFADNS9wnMg=!~S z8ci})HWKy%;vO_rd|Kac0O!sj>vL9OX4kqwS~=h*7z^Ylo}0=!e}8tH9M!D`d|bEWpxo6k7RO5Bw3S6WEt&PgIh zxYupFOtB=-hNR6cw0yX4>7mC@<rEpzYg6oO3{N+Qd}n z1W3^j|N2SSi=i6ADQxQ%z1IR86PGKO^WE2_1?6iTjr(hcJV_!(tI*nWhPy7l1``{o zxVo^ZPj?O*bl>Hf?AL$$4sHrDey*b3CHCe-NEXbs_2nxLhfctG>t~zacUZK0P|5nQ zeso+>{~~^KA8PTy(}46zCk(Fr;G=Gj4L4&1bGGnwy10%6!+Il=!QOT9rz2}`HD4$8 z(p_Q_JOpbdD|9qwVN}pDZq{%5-#rjXW83y~q#g+hMx#y0OJy_rRe+SZmGR`YZ&X13 zWxOO%9l->|LKgLS)HTgcs*6%pAl<{Ye&1;k_LAb-i%$cKxdCKJmH;< zV5`T^J)M*1?Gyc-PcOEve8*a?`s3!^QgEM7D{kiQ_t%TQl583}^b#gwderv&DKlY# zUUS$vYQVyK0!#qeoNC{Q>3Am)si_)Ytb@Z(ggvS#aMPl>=l1e46V5Dj%PzVhX`Zky zv2oOO*gkxI_pmzprf>c_`gnsB2vsDw(X4L{OJA}4{#Xv;$IV3G0ZYv*T*xEGJ&8&p z+*pbqpj*I4y7G|Bp~26VIf$%HwyY}HO|f1UmAMBsDp(Xa?xsO?5I%M`(rf(X4hfKb z{p@T}h#ITVF$20baLWFnR(j#)B)C^|o9qA4>Iph_w)0MkRS5U`jt6%u1WO^g< zuJ*#%a1YZV=i^~Rdt~>TRDyY+ym*a%bR&a;}ENZll7oTR*`%97_HlEX^?# zpGW?ryq!mko8vyx6LPv&lCfjX$-kfOI55Wdsw&QWpz#*NQpn3<^>R>#SN_E@9H@ z&_J>pY1yK&ICY)1vg7s%+~-J^o_HtH=jw zQtDp7goh?NK3Qx|n11Khawiy3lTSYZ42CLeC$Dv?Kn#mfRG^JjWcN0w3ZxC!dCCnF$5YsH_yI=_cE5vbv^Lt8!R2sX zpM8n-pOcaQ0LwOkhdpZsf7JSWw&%-Tfn4mroRRwHLBo_F=;BxU`N$Fd1Xe=k^2rMy z=;~ycqiDI-mP6Z$Nc?J%%7I+3y>n~h88dUczHn!Z+<49V)uU2hD&#e3`v~$g)_&D(` z>f&5vZXxPfjai16+;c-?p#{S$&YGxnY2!v3d$j?nMX?=#VcC>wnR}*xRwcL73^8}( z1u@}kd-YZ#@2?jN)78uMCZo3I?V%)B&9GKz8r_b2o9SX~)qrKwpr5Z)jty~dc8+NR z#1cEvuYC0$IE`?a1U8jJU9LMiz^>;zqNQ?OmG1=ghe@7R`a+OG?R7Ll@NfLOS4bAV zthP;(Y2Rj?2Q0sE25YN8y5X&2aJ+AD%z&-%85*3B6iv_$`!4%*{jO#H-G zhfl)p2?c4ZvOgNm7fG-Ow(hH?r7=UG`X#SJB=jgHoUN8`@@#{zzJ`)rV1a#lLhTks z-flVlJuBm>tPI5^sxz{=jKC?M=roD7b1~Ggv)mno^93OI_$D6eNYQ?YOR02=jVj<{ z`E7)w5Vaik3CdrSzz@0q!YYVC&*Bk@l#V)kN zw8@qFdTrT%QVpaC5D1aTpe$9!!u<=$#p%iU>6y2yeYRX-!NM0q~ z8xHF|p>=WW9sf+hNpMPQ4(V1SL6hI|J7kh6u>* z`k~EQXOKg1sMW8b#AkMot?IRwv7_Ot^Zx)F!~H{z>odC}@y&3lcQZ=*evSNQ&-~E& zmaqJDN~21Np}O}(wemE#@$Ir_=023cd|)Z5s{M<9qve~Tdb*@STG&#C8ZPY+_aRLa zPQ30_+Ny~>qupJOp=h_II_m+YCZ5%hF33Q*q3VvrDrphOsH(ZtXdjBT?{HstD?M^P ztJ0Hw3ELvyRC#DzC!RtoS0I^M4;J2inL=t!!^&8ldB*txcv9G;!2><#v~S|D9UegD|K(sPJZU@%!lIZ5mNfMAApDKOn}In5fk z5iIp57+5I)xA4MQrxC_?MyUYpm{Dtcb&ZPxIFh#>-VIvJu(n4)s>dNR7yw`?)e!y? ze+~PTwN%tynK%YAepp6_aEwy2Z_fV-AoIY!i*0yE;^x4mP z$1DEdur5lyjElAdj$YZ{y&_F?Ojp;MZ5_IwZsza(XxwZV$RD+4K}t2soU?Bf#eqo! z&w5UCfwkwd^H%C~JPPkC^}<sKyc!gWQ}nXHdF z9i%WSX*M^7;+Pr?_T3@MjJugn2Vs7VYCej;mT$Ozr)~B6Kfvbr4<9yur~f{r$gPuN zC8CW4!$WSqAkkJ~Jm+=v`MREy^Xbw)ARVXp7o*nfCF>XOh!_62W#E`KdaLuwdFetG zQ*kkVo|TQC22O=T$HzncSN;z*cTy9_9lD!Q(DFSWQXcg3o|CKVWN%Z5kJgMP*=KjE zLZ;6<_%lksY(B;7{~5HH7YO(d-Yun#d?KY$6s$?>#^1elxWb%0wLDKXj1sP zV_TiuX4&E)vTdduzVTqGP;*{WY;s&f?7>9^5NY~R=b^H3|7A zW?i#nl?&*q_=p@UwhEJ(<#Y1-$x`)+kq+D&fYGUDTfq`sD}iUSlQsDf;jISWxEC_W zvRMmPJgK`3?rEIMvyIqz%+D?BzdYS{4JBZy!%&&|N~CHHua+q4XJVX^XS9D4gs1Vt z8)y}SL=(hnweM}7CyOUuth@N%Z`LA}W!nlx48SHF)n!R;>^pcrc)g9SSdgDH#bEOA zp>j(?{m!z{WN@aN;?YDz9%jJ8p&fvzx!7|hYXrPzW7sn)rX@RqV`>HJW6kci_G_xT zi<;)Mv$h8~z1TUh@mGI|4t`|7z;&qg=8pNW@Af z@ULt9eKFT3@*PN3>n~Axdib2^EeD#c)5JdWd{v2(zHdHW-<~sspuvQ6FXiQM1xrtq z0kx}<6t-nzh(^A(6{u2szN_;D(3IGt&CZd9<_@3W`^s4i0GvlVm`G3=2>>%F7~;eC zH@ce&HE<%H;SZHEuU3BXeabCr7GFHK1dbgJik zxnwJP=Z?Xz{kqvtJ?wv7`e{2z8#FDcQbAUoITw7XcSiI@VB^8H)qHF?Aq zD()L{9kujGi-N-RjlRxOY94uhUaXWRA_|y1h1Gt2UuBbY=XK|myQ>dx64lH^F5ili z`TN8{Z&KK??r4&t^aZ^;s9_l{psp&!O>;GhOc-xF&mOO+Zx%B1-XJ|N-?~GN6(v)A@UtC(U~dc zTUF1LOObrh^^T%u?$_N2DiRF`kC!7r&(Y;7;~*W(0$?e7-c_yGJT`@C3&DujgeVY^1Ff4QA(@d$TCz@~H*s-B(-jQkpDo;ZGEamVSZ zS?BJkm`SNbvuh*sF#A%fQQ=8}!#Yr|bwEE&(m$NjN+!cB89`HwStB)%XkxADI1s)G ze$r~WeBwtb2wMNh>IK9db@5bqC#ZFq>H=wSiU^rnU(&>SeSJDFiJf;$fKeHm zZFRj9d4G1tCVY}`S2Sjp5{Y0j`4+JDgv4hgjjen_L}hE;TF+6)Ol6%3656$pSSo@! z@&K;EST$HCyxIU~oVIEEVweuUaMlj3skb<$4&A=YShj=@Kma0u>exg_mT$6nA0$XA zWh$A+9&5!wYZ(KWQjg4Up*aBOBtX=&8WVVv>A61sRGcNp?_dhZP^Ho$upT!~n5ggL z-bCHgU#hYEv#E8-ypEfeelxnZG3J`QA(pO|reOIe!?G=~(c*+TCOS)c&r3v2QSpFg zP`&P^kWGxE=AE-HEqv`lROiHwlZgHRzs{@fe;qMTKVu0_HmCjP?~~efE@u2z3*WLd zNZV_)4f+}`rRUl@UjqHPR6Ibs0j6% zYU8VThHg&I9sk@az%4fA{<4ZAYF4|%;fi@VLu}Lu7Z(;bYn)+Bw>{H-{a2?{>F!i* z;fO$}sB>Ux<1Sf%q<_|DpCYL*#)yT>Yg%rorbj%Gv6-y%x;|V# zb0+HK50xlA$&t{sr{yILq_p49tzYNs)CYzu6{bH;>+K7horkU65F2?<8~UMB%L_41 z^sQga?K#M4_+E~AKsB=8G6Zir`}evSkZ9Prrd~d-qbXe3Ju!U(e$fn%-SW2yhY_5`!LqF{ zBt}_}9eema$l+~4yRb7+Kd|k{#UCvu&(gKX#F?XMEt&`U(RGDyjmqGt0%Aag*hwS( z$5vb-M|q(*kCzrAn0#Y+~xK>%}ZMSX~JF z+tCR7-2R;qQ)g4M?eaG3L%Q$r-gefk+e$Eh%=KQwSres4KCjtNb9pn^&VDt)g4Z#6;7AMme{|io0rG3-l{P9(8BoGBtLtiuzF$i z)_!=s^`Q4lJExH|m0>Fc7iv~{A?s(pHBn1!;R%4^v()}TK8_xOvZ{u^pwEotvFY(- zR3it~ye*BqF^z3Fday~kGm&2*Qgz&7RK6-^E!SB1cCN_^5pG#M*C{K>X|;_T zv_7PyY+lCOjTC%^`Q|W`0IT@GTQ&I8;7W4@-Tj{NmhHW`2H}>jKL7W@@-_zz4sg1z z4kP0BNR#o?Kx%t&F6}dB-r<|3%02MdWN{8lEZzN2aNg-ND99Gfu~7dun%7e-R_651 zZ2kN>#i>k0eHTcM2$xNS-XQB-3-vNfnd^)eZ`gIa(8S;RSFGc_=7T|rbsK}UEtCX> zVL)0pw=tQJbRbK5#cmr{3F%WWa}R*l9dhx}eu{z#Y)55hvy`B2S8JH#>t04=Yq8ZQ zp4{=?wm~|$;IgEWEAynM8?_Mz(}n@K&P?0jlkbT9zVA9NYsiXRklKixxqyCq-l7iU z^VIOXA658dV6|-~UDsn8tknK@0{T5l{}0^1RO8QAEE87s)@34q?c%5u26|Q_rQ#pp zib>odAI|yh9LlcA%lFd4`zJ;0i)&O*Vw98E2p!v#Wgz)}eDE7D&UG?Z^$Ks`iNd=E zM@|pN2a(4|oUeK{;>VH8y=9nm;snn9y*wfI8mDnTZ2X+lYp0ZcF-l`10He0IAZ{4a zQ}B?e;Mx~AQ=ji~@Z-By6hlhw;wyWR6%N4B^abF|jDeeu`44Tpj?H_8xfE3D$K?W} zNHt`D_SQ-rJL#on$oztt`<qMX; zXoMxqLO?s#;|8rq1K)9kkKVvEc5&L|B%h;(Z(MqlTkLi~Ehv;|RGZTUEBZd^tu!UO z__yL?U!}>n7g`oUAEiBgoSz3-Npumu7O&>37IZ5~ZMw*=-3&bJn1r?UzbkM;U3~Tt z?%BY~v$aCAk4&^5y#cuG)RMMuF57$B=hrk<2wObF9;JHz>U^?0A*$bDR1TqtJ@J=Y zfitviPpmd%@sFmGkw4)lZ1st8HG%;qJGQ+zU7OETR&u;+K5&tBeWv135E0mL*RQsA zq08Q)(^lkBK=F4A$n=#a=Gnl@mhqWFhFde?zUB7Ejv~&DyL^ z=e*OgO(B`)7;-hTncg`P*cdP@!@g8MR6bdYIK)sI%7Yat!&^3U)A$b8Vj;eFK5B&r zHOu(cVY>O7G`#VpU?kJ3tFFe6#Caal2Y*TWqv8udRzJ5!Wj@FOY%;-sF@$!XEl3DB zRZxzg4hljtvjNX9GG)qm%LcSXD@Ic8;^B*Y4yYx=69yF{O%`;wJN}b(gSI~J>y^_3 zn_hOZt8HNBt+Au%yt`HQ36pmiu$WB;QwmR~qOn&`{sBCv`*6?X_#a)5c5B!r-*Oq<^^CkgHzZ6c+ooez7$v=Nmbq|fa5a-+CZ{+%xLP8hYDo2KTg_t-|H99uRqb~%$ z)i3g`WutZb&i~aJ8$Iq^F;h>UmZ>al{DDmts%yTV^tq`((GM(kmoHn~s1P|}zEI27 zR(QGLq#a6%^uKcNO+GJ?D(B)}lk} z1g!5DkeexR4ZOje1#92D-mTw-lHh{b-q1X~;EPb<3wdX``9Xe}iXhUxL~N z#cs38!3$?*V(P*M;wdsUD#9_}!D5aMyEHIi*X@+PaXryI$^u%IDv?K7Q|>%D%WquR|Y6AO#jN!I|l#cK>D*=5)q=ez=osn=9{{ttl8 zr%`iu_iFB=0bFadqyh30Wf?LBDHawotk<@S1J`Z*f?<2wt59~yVCZie7xJ^9b_4kjztT89atH$GIohWfMybfMQfvW~ zcNS9LF7Uup)`bq1ng)h{W1!B`li}?B>t1i)pOC+b!c3Svan?BZhAjDr%V_^J_cE9m z*Px=mT4}5?-seFG0K<;#lk-juzo>Z~#kCKccz0IcNy!xAmyf>=$psoK)QiXQB!O>R zzq?jI54v(ZhxW8HuYIT}CKitTOv_knigrs|1AXWj71|rrckS2@#Lc{7|K*e$$5cYB zqnuLk8x}};1(<@JeryfNq>pv76SXSn~!Iq&!3raf0Yi2S4Ry_;NjPU{GlSZQ>loml-& z?y$iPos*tv!%W*jpV5=a8iN)W(3YoHf~14xl0swk1L6xUIgECUQuCG+V$|s2x-V;$FS>0J<@Hd)hwFz%m)C->_+^n*7q9 z{FS)0(VtFk-PuC?a2tg#w$)XhA2zmvaV_(ayEiz)9cUrsrN{mR06X!)-hbvHd1qTTboh4K{3md|SHC6vQJ+OoA#BlwtlG^3sx_M>*(m>K|Jtez!4CM zv*HRg^2)Ua7>2B1S^1UgHqdzw6xaZFY zjj2ZwNT;d1lN#p)puZ$npPDAfj6AtK`qT_}OKv6EFccH$G{e|NF>V!n(7LEjkFMtR zntWFji`c%>e2>egTY9j23(S7MuK6F}lD)CmJ=YLhOf)*6y^s&soH{bD3XsBN7D9!A z+xX8-_KKdp_yJt=f$T5&hreIBc)S-nVA|Dr9a^K}8|%DAbrS_TpUPL$O7jDXbE(%~ z9q+k*P-W^BAGs_;M6;du1YQKV+R?+ldj+n%T37ZRtaF!tK;J)qwC@VhCWXXon{Q`j ztQND<#(vM#DTTGjplRBaScDWt!tHe53$HX*5CO5pv*7QxoiIAvmCdTGTV|XL@agPE!;ggYXLiuV1ETG`T z;<%sX8~-lt<~gF9A%Z5!t&Ss>)SQQvXHnq;H_OX{H^4XXX8a@L{i9+EYZ9BI+Ar?C zmnT0JBqht|v+vcB{YZtykfE=U9GWPU7SkrV`PKnSRVh6FcgU+xy}l%&-k@nx%Dh;Q zqlMQ}qslN-evtbrCJrnsh>qpGW6`IM)f_Ibh0-GJ$>V@u# zP5}#6&R#zynb3@2YM*;UIG_n47+zT0t)G*5=F23<*yl~iJD;#jQwCtosD#3vf9=_| ze!4LuM8>*6_bV9NU-$Y`mQ)W#J0LDg(D&Z`CzEMsb#IBWHr2&hRM57v&Ks~mnsjkf zU5B3sS2Z{NqRM72N`ymE)ZwzM>{OmPd?v)3Q^RF-a}Yjg50p5llls2sO!?}R*ZQ?= zJx{Ql+?1nbgJTBg=KI?Y;4HC3_!g_0t}g=cS<{B?EjOLj)Ub@yLecsBW^++sYqw47 zK9$yVPQuDwtuS2<_6=DDD2>~!KnviE5!)sTO@bzPxPTTOIO=3+%2CWIO8)SvZb&w0s@eQFNltaX!$(NMED0t6%CJA37e&Cw z0}L>jykmzE68UBau3RnA00{rrr>B*ncu?1zuvl(YdDcux_t#Xw#|@5POJj+~Hv`k! z4?aP=vetCoZmxij=|}xXMHkSkH;r${0g$VYGgomlZzPyXZ^|&}# zi`3>=2f)}7*-wu&l9upM8|yFta0IvnhuY!VSOtZHdgLUvq>-5!;{N?=C1;px*_>Fm zbVn8c*=SwgjVKA3VCwkG`mJpn>@!EprF+9CleT}@I#-xpF3JnflG?mGRkfg@JoP00 z>ll2sr_Vd!jWAPb?^FqfjSONn&prOi;s2ER^vHS4D|sFk71vlgVgC4J?euQdBA+Js zjl*nDUdux)zEb_{(ri@dS#tnsT}P#rlH&EH4jAFZlE4k*ZRL6Gt)sEYefobpOFw@8 zq0Nw@hb*QIHOGIAkh<&Ak0Kw`em$O!W-@Qz|E_oKH~2y8Rl%iw>e;@W4E5Pt%ANae z;N&oT<&_L3*bSBxCx2Jq-B2ZtVUlkfHnbvx<}8tsQTc7F-R$0G;7c|EgMX7k3~!I9 zD(*{o*bCIAq1bs&ZQ6niRju2uoy-wzqq*@QH<{RY&BO#|vEp{-zmO&;5wTOvyGwlSM97Rt?{{uXgi?1sP_>-aV%o9O%G_7dz6nd(* z&s6@P&}pD@8fVL35)%GuE2`atC0St1K{urIonGGiFU!u_w8WQtDMeT_@6|p79c;69 z5m7GYBZi`hNiL)S{k@j z)@K^M)stM>-uee%DFS4knq4{bc4LE3LV2;&Fs!RT*-$KFz*B|gB~Fe%vw^+(%CB!U3>CNPRrAu6o@O#IR1_avIVuJFFGx*|If+^Mx#Hm)(P}HOUzj z@I@%DL8Qr&n(>u_)@RkghCP&FCR|oPZ_My>_u#I12t$h2k&s*|un?@E@F8b+itx@K zxX*;t?mjF_Pbe_N%*#x;1PhpXW`#$Y;iNcvqt5&9HDJ?n?3VZITY>9tLQ5$kjHyOG z|HKL5a_ly#4C!d+U@Yi${e=|&#Ym?cUZfK6YfjaUr_0kYR;v*6N9fu8Zk<}WLqRb9 zb>Bv?8MNrkZob#E*7v2P^&sW==BsXD^T&yaiK!YFsa%IA*l9?q)hfvjK@*itnSJsE zI=}Gkuk$WFK_(OO`n87lbxK>vJFsKu^l$M%Q#ppxqk{Mj?M%X#=mzYk6k=)_O|WR) zZOKWj8ziNs;9BI198nK-r<-#Y^_0Y)j@@u4yBQ|dS4M$?cIwOJCZJ!y1UM4dyk^< zaNK{MGZb^KmySc@mf4=@>&~avac$>E2@@0DG!jotU+@lX>hY?AHYfZwY!|Ueu%Tqe zMSmf=>^C`T%6w}KJwgA*poU}}LVrz(@rMx2XE_Yo!jC!Ai{y+8=)x#tFTo;GHc8-a zyLp1&9!))p8@ZHk;Fv$=ckFZ9P74p zQ-IU11|vBUOhZu9g`)JF^D4p0>E)nqe8xVODJS2O3>s|UUD%* zJ9W95uX_aE{w?mWp8W$r4u+vRr?CVP?2mfidVwg!!+uBh zObO^Jbr8rN^Vdbwyjayv=d=k>N?-1)3+k5gEOhmv-+IAIFV9JOai z_*6UuCQ4quaN}DY+SlaI8=QT~inl?gcDhF-gmWZGjWl6@<_kU{pR^!;9u_DqKGpN* z>WJs4uG!#5oxXbB6N!VEh>uLSQq)539h6f30rd0hX=;8@WzHx zxPqbD*jk4x3eecgG{AkIyjpdZ6eN;Tu!zq&uhWCAiMr*jc6MWUX?TuB(!$COeF@=p zwuw}?&`#;DSN648St{6Z$fEvd$pOj>xo~HB^KvfUq7D~eG31)lBmF~~uyl|18q6;tgkDCh5L=*640toCySKD%_TK*gW)am`L17oPuC zqxEdeG<$knST~MghT3if*gq6h*r(Y~C?J?fEz-LB6AO#Q&A{&GU8bUeTqh2*b)lM}M2) zdgeIGY~?Y;t1dZ3;rqq4XVzWMt(-n4C?}QH^Fr~9Ox_R;SC5~6I}0Jj4H`qQ2+}I5 z8?Q#rcUj+mJrHyps+YY=I2tbrZq4Yp-VU05BBf`uL!L&QSNk>f?79k!Ahx zwB13@Q_*}oQJ;V|R{P*;RHT(5X3PRRwoC%FHw`Xok**o7?2@7#EJXz(J8FZS(sIYf zTfbUF?{GZ}Jj`$=nvUiUHK_4LY2=Q?>uBDYOg2{Kw11V631(3}XQ~|7?K>I@Vox? z8hFzb+&UNBy3(eYIGNWl2O9?tA!{B94`S|e^Cl88Mp;rAo3C=XVZ?7Zmy1^}2|&nT zbS1c~d}SavtxdnITa|0ra3DswD00@(YuX~%LsnX{oxKV$L$vwB9>enRC9zN!IC@Ox zwC~#R%(=-*tLw*708y5!HPJw;QEkSRMhgsgn*@LZvSfd+du=Lr90?jfmbt2YNjUza zV&Rn^ZME&G2hSgZ%~LT$j?ix2ylNQMdB6MBY}h98JsW90=oIf_s@~*Gkbbh_UgMn= zxhFdxnlHUyakGgr7kO9u&I<-SR?}vj1T3{bECL^QnrIMmf2l09JfpMIO&Q=~c+ut* zr?`Aa^g0lsY~XtTL7uWTv<3He|1#M8I*rv1)7&ArQ8A>1XS-c}QF_lF49lq$*Gfo? zC<%N`U^OI6=GQF1a?gPR<2y-Xfs16o=REs?dD3Vz+2s70M;1)$CK%iHB4#Y%-ofTbRTK)iQSFa_LDbzyv` zL5P?*8NCwIAUwrME&PI+xanI@Mc>&qKCvtV-yapzOd7+@Ryvhi+~Tlq`kudO{7z2s zEaZFKTHnQUA6#W|!$%YM3w_>ilUj7Kgz@e#78e$b{;0|SsA{qr9THsgaO>k*Ckeg3 zi%mxNB>CT_q-|d@8#=rfb;S66Q^0W3Jv_k4x5S~VNe}Y2uDXY=4kJCHHvjs0EXA9) zMv@GRKGN?HS(+AN8`kXh(iYUnXB=4plxta-FDYEv=P^? ztqngt0Jt>edgkOjOxyI@lB~C*G2efdOn<;>CuZYx(_{a4-IkkqMFwyy!cZTcLw&$BL{0XaIMP#xMll9$*%& z|9QpyPJQl%0H*M8XeDNI+w10e@f?)`)S~c9Qpc0Y4-1W;W!heYi+=8xtEP!VcZZZy zT*Lkb7p0L#u3H7j=w08ZyR*XmZm2y44r*N@1s8HFg`W1WRo;LPHRaXoO}?^3#pb*h zlUEGcZ#=ZsQMCwvOA)lT>=@NZiPfp%8W2ekwq~VE^w&I0AD8`gs;~896z1_izy~1> zeDp5TFzy1?#Y(_L;W5U0(duk0c|!4K_ZN)q+{B7spAkF1W{Y=xO|kpKxAkoP8DNs9 z$K|;!Fj<23Y4-L4U8XU`^F+Q6@m^DTvu-%p{gk}scPJ|)s1<{VN_ZYPaCbVlFma_R<4*6-R zoEs6v3McO?v+@keJ@XRBZBAeA3K_kMwg4wvA!=84et+&a*az6lpZ;BWK=}(R@5smk zwQizbC<@zf`sds_miNv708GRW_>$Ln8Gfcf<5QM~D&b^F*G6$7aYaG8;T_b3u+aF z7i{ZFl%RBoxO*5}o2U6~i8-z>Tk&0((PX4$iC63U8J3tr8zZ$Z$be38}l zdh2F}qjD1l&@@F0{F=@M?#mLVfJbicx=53kvmO@s1(kKJq0pWdqi^*;3Li*b6j@SfZmIo}IAgnA1mnBth= zR0}Hqf3v-!t8R$dN3EikTuOw%RQ+F$Koo8kZ(8}?4Dv-`N+|6^ttt4Ei)fmYl2tP< zQQTKHmx)eaZfSD7Bdt1t{2IbZpIC!_zHMEEgl^e0#?t1fHs;23bx)#SH^Ifj(_oDd zSYuR(j`-X4(d43%a)g7&jemgXU9_mQhQ|$NP7=H_Q9|@FHxs8f%(*7J;%0#zZ^EJ5 z=*P_Z*!*B3gyG#u{aE~VwjDUv7r2|dc||7q%&RAlmxrLtXvF~0g{LaAosaI-DrAf# zVIKE1Tb%yjWt=iw_x96i5L}LJXWMJjAkXeu&2`ER`_#_&&C{u-?u27%IBd|BcM$NR z@zYCnP(C`=t~FfN6`LR76!`G5+ytZwWOUfrLw>;F?laZ-d#575`6JWb(lZ zGvn6i`bqpSe>>9uSH9P$Vb_x4NXpKZCwl8OdnrZ=q?gACEFm5rw3oMX*%=kt9u zm-}q+rhxdhy}G8t`)@xK8d)y#(6x-OQ?33A&o;C!ke?xkXcR@cdS=gkz>3rAsXXhE zWyOzfRA<^XGodE9j$2L-+L zkH)v}>^cbg<)h3^-+~t;=ojZX2!u65PWZ*B<0Pjl>D0*Arh2?p6iGK=%zd^visC^@Doy9EM-M zyEZ@L$j>O6blPu_GnQEQkPO&weD`&?DE`;{6ea4?kR_IG57?qP>k=44K;BFkK=}Q zqI`Qs1=6=$`V{yCo3R$Sy&BnomlY);xqP%0Eb2qArUfK-u|c?BJ{eXWiv-vkONG?R znG!(1Y33+ynK-|1m7IlZb(Dyrh{qxS0A)JQ0wNB~E&4!+bE5P|UL~3FAe~|^U+0}G z;m-pD$(Ed#*=%ucv4e2LYA1f|b>e5mvpB*oT0?3X*;uH5HO;N*Dj~4LQ^M#|(Wgkg z38Y-IPEeqE5{A0~wC$WCc_1JurnuTXEZ^v7xT$4_NWr`s;qytbA1sNm>DHKsk04vT zzY*HrNE(?7Tu|MCN|5XrQ+?<9C3DQ(PZ?y+{hW%q#uN=kz1>dRyfU&%k_Xn>Q}YKX7Hn|1SXhKm@;4Y1y6hpE2j&Ab}42E-TGEPi&!Bk;fvv zLtktmCcMwZ4h&>uV<){7?{qrrL(Oi`B=Q4}PZbHl>E5jB12+wdtO3Ridi0y+JZg*H z3}TSy80ky(qX)k=q98yx>qR&YD5M9eCnVK`;}uyC>sBK?4r`p~MWpHY)tGUCRb$BJ ztwcr#>qtzu85rxuPCo8Bb5*0j1op=@V>@%7T4EU8a7|aZI49e!Oy>vJ9MyZ4{pjQG zb)cj{J9Vs!)AF3wr00TbGW(RKg!VFLu4_>_xFfZ6lk_>RXHpwy#cxk@8NCQN$*%X| zt(IdF9zT)RSJh@b=kbwYO#%+IrVP6xG?e;t9e1%w%j;#yx8aIXVrvHK(j1 z`Q)!}O2N8zNqDR(OO>9TC1hy_2a?>1nme7UKztEcsdCPCDw0pNUAD5BmwbevtU0b} z%870#2c6uS&XP&D6B%MFRtT)(8{`|XdYYxFYPR4s7RnbL@k4U3a-?Ek!*wvpR>AL7 z?O<4jWqxY&>MxNQJRY@H=0Pdr(z2GNi6z=70Z84OGqs7R_uL>Lik(EwYneB`H;yU?o6SC07*IOaaFxeg)QfNc_ojuh zJ*$+|RgXQZptG7bo3<;N3=3o)YTOevYrFNW5GHkUNQ|LJ;%kcWOu~D@ihk!6b@eF~ z8xNC?mCjzu%_dp7J?Y$1WxXa+E-{`lT?K^f00y~TIrgz9sp(w>n`K8e41=Syx!{6( zRruT$>yCf@bO=CiMFOl&Rf2J43J z{oi_|46!xTcJU4Gm+U=ii`-t^W6DjVJ!(q}A1G#aGfu}W#9yrHCj@0@PuX7pn zr@EPAx|p*t+;!K2!vq%t6uFf+LO)yr@luBII$U5bC5T1EMCdjXnPET+0mkai0Q zT5ZOf;O5>^qz<0G)u6c&A71qGcpP>V?k0?badiWfok{JHSFPt+qYenEX4@oWuv5k> zGWON2l*?_C-xSl(HZ&c8RbqXGAs`RO6;jseZeUR7YmT|8f!x^o)UYQ^@;#|se*XXj z{JlM?IunoXif|;8&r|%U1~-yAbmQF89y;Qbmf8qB<2(vsY<2x9h*uelr#*2(ft-MS zsS9!GNfR8J0FZ^}1Czm^a6M_Ex#Uyi!melm7~>cnIjH&$I8)x5UxGbN0kXLDprls3 zj63wm0=fNG)MVE6)V^LaahlA%aLP?-4UDI`$;%$e4+f-x@M>K{0g25}NkD4VBPkoU z@&Y+L8gz@1z^v<*EM#~l*d~*RqKyxStK~?P=njjk((((x>-TMON$n%g8q1{oE@R*y3}snz91=DVz`M!>hWGv2)0#9ETd%oWB@r%JD@>r%?hp}DSl zd7efkjXE?fxfQV&RzkaOB>K}k{uF?bP8~U})U2#=y>%1(DGq-saT!zer05UQs6vh? zr5!qEia>g7eRETx$3Kl%jPsAutj0$Gj-#z}9U7KlH~@DQZZZhXQ;2d8PAc4EJW?f= zqsBV^H8)d()7q=XNY6Dkamc0!M$fn5RVM01T4p#n<3FuaoxW-cL{j6N)?MM?k804E z^Zjc&>jNayLXnv_LtMV8lXPpRn2u|i)bK6|&2LR=V<)AEtOuES5_8Gsy{p4%Lr zQ^2Hwk&nW!Lg)|z-qe&6)t$HHRz^(mL2e600*rCZR7rs^B!>$aCm!{0S#Oz&kbMPZ z#)ep>iMqHIP6-K3kX=c>0E6zL{V0|;-d8b0D7zw$2A)eXypMg zHjIjmkx3$){{S%<>E4?8C9&IzL2?&`0`vx}%Wj9aHF_X22d5^h+&9niiW0aoi`%*k zsi?)o@MIMvRmUfKkM?Sv%dk<7YKe9$-D*lujk{X1Wt__WO=}xhnB*X*rkH=YC??I6 zY@IKQK`}=?@kx%x{2z34SMABb=Chz61;Ncq>knwt{K z!N*!9e8hRG+r<$;@rcE%nlnDgqG_(hyCaH9`v0(5|-9G)Q z3p-bheD_jkah&>9D~J1juN+Lkq<=FHdfrY(eX;bdIupAPDN)m$b5BMQqq6X=hxDyAsr7m$>~p4Bm@3)P;k+M zoO^oHqI{ldfb;ix70{w_xf@n4UBFUJZ@{joD;L8dS=gTa>#K?%ka11u5!9lY4f9hN{KpkF z(v*HW)pl$Q)EaapLKVRst8-3r6FqANEI&>=*1nR=PS)u{dIB%pDQHO@YnIjHW4vV7 zPa_@VXWtcvsmJ@qCa0**F6DO2z}0dvIIS&C5VCH^TA;$MBQ{6R=gla|=eKG?G0FUC zK;w>`s=5eVO4H-ewAFztMn=XBYCPp5GUQ|mz@7IyA5&1mOxduViYaHS@k~{-och;0Z0sWd z8ow0IDp`{{NMzimrzhnAn#i-9l)*gJ$fYD;nwG?iV30U8$uh{tLkzxT1v=x z#UzH=U&Ao0qHDI!;~`(dx*z~ijMg88`O>#9Lishg0)@iXx6;Bus((7WZUPO*gV0q) zAU8b+H7iI+0Cwc!r2#Chxq9a$pP{6S&~`Ye)Sf}_QecE6cA@Qvv!6=cU%I4n zdsTN-b(%NjTyyVD17tdM!s5m`zXSED`2-$DYbV3+gL7@1>~0pd8TmNuDY8>1P#AO6 zbu`H`3FDJZjPd~_1J;qxe4PC%M{(hBerC=)dehLZ;=tmo;JloZw-q9Am?Uy~P#`Df zIc`sXK~c{6UzdZ>Q0VN~!0Gu?`31V3X)%!y8M4&eg*n`Er;JsvAaZk_DLjbANgU9Y zpvsGfa-DZ^URSH{k5agd=ON8|1QEup0bX(|%e-$I$Kq?XQGvTPtvBx()c6b{O&HDy zG!vQtuCs{M&~7$P25>W7-L=4y-FE&p=1|IFkTBx9ts_t-*ON^vqTuY!tMC~K2D2UV z2o)pU2?06lP$=g;Y9$*QwoPipz71>Gu?zt`RwO(~dB$sA#O0SG9jZ|#tfP?LwVkM@ za%)Yo<>a1gKIi8{>}fHawy7V=#EzWSBXFepS5K)Y%6P77b-^psnxx2?6LLLiGfpEN zDW<8AC^VzJH?=6@kjHH;&T&OF=87%{rN-DbIyPGZs)Nl+q=VMEj*FKS{c6l@(x@r? zYQ#)Sb4VGX8Q>b2x66U}RalN{U~~N`q6awzaoVa)_sOdcz%5mC^J19DE)8Yho;e&= zmB&&mGW=yvrBVm6jd*`{M|0Mt@GaA$UfPei_#pd?)EB1+Nc+{j;0+O{jo6Gk@(pbT zp_+D*V=f;D81L4jNeFEIwLZCTC5`jj$_kNGmn?c>vzoIz;X9*3JFG4k@l(Zj6JzJ( zb*#ByV;=_wtF?{UAGu;P*WRM-6{9v~x*5jqD>m}*DL*$9w)#G=aKHsWTHLVkhSyVi z`^g#Go+^@*wkGyDIVWj9)hn^~6%4RnH&~cgqMbg**4+6qDv{q6&t6<+atGb1aBe`=LRHn65O^8?6g>Ymyo!Br>eP&JeVa$_Hr0b`mso47fs{PIr?T@0Fi zsRt;vT75RxZUDzL?k-auU*4xi_oqvzs-Kbg#ZkD1c$_K{PHKs1nu#IDCZ4Qz@mR(? z-l`5Me9b`@l{7MwHSVST!B2Y3$YbkKv)xF!Wg`^JeaQa+HBE%segH;2D^3MWeA&%a zwF*L>q}9mdEsSt!GIuN~3PBZNCIgnL$q7@)EGohreaHrV>KeGqaZejy1I;&3VAfL} zc^!o;K6W#)6W+d1SSJx0e5#-l6meD9 zm5*sWntcYCD9fI4PCkQ#ha=Ok(v-=8k^cbeq!$O{*rP4z!NPa3`-y zW_okMpe{~@S8-;?AC)mM$kKt5dI8>}$=XJFG+S~)6M!2(T5EAL1H<)w`*gZ`|{{SgKGlFURvPsVe zoK%epr;-D7>r$eebK0R%`_YcvRi@!c2Ojk7F^agC+tQ^trY}sM^sL-tr=|*_Dq45ztVsk+Aj`X0^S@fmP<@m#^tptY#><2a3-J)~2>^ zo7$;pBWlup&I4AIWMG{16@dfoaC2KQKIHr{QzGt8PSyl-TRL#h2kz#vT!ID#ZCEzQ zKqO?=JxfNLIP&(@G{X`pvdz|^v~%Y2X^gF?Ly*|?u1fWG&eh!BNAi)^HOK2Q?477W zk)COuwC>)tjl)&k&529KN4+8G)_{9dfVrZAaYa?Y^mRX-J$))QBdP1wo}QkS%58GY zc;cszk`HRGgpy7w)O?(F?Lh8Xh~u2p=s3k!j~MBmYIQjTb)g6!r{Pt4v8zsS53N%? z9!WIDh-c3}qO&i~6#5F$xIcR%tz_yA@)6XUXiTXEyItG}RAlFx^-l`v%V}u1z#w(5 zJHdK-%`u(Eb6xG+i)mt`qhkiTDYvnk+~@pbZw>nv!ik4^<- z<8Dv2QPlMWKouP48O=j;a0-&lb69swUCvJ=^GZ`u(F=1@`s8G@gSAj@1HE#WQ~vdc zTx9gEZBFC&eqK&Ch0m>Xw=)gkb{&1|DalD1#w&8$&Nt`KQZ&1W#b^1Yv*}W9z^p7= zk$D^glS521fK5;mbIk@(pL#4Smflbfb4`+Q{5>k6lp0}`Nyju;O`_3tDt&WRr+(NJ z*OUSE_o}nXq~j)w1<-H+ttfK8!fAqKrxE!qLW;^_H*f|sS6*Dgaxqk+`PgHgXkuo?nyH8!V2?`Cg?>@; z)jK8mKmxU5TmVgFCL|G|-SY~vk*+xHNgC%F6=75WI3}cGBx{hY4_dHdMg|<5kxT=* z>z*paUw9Muvx=m`<=!)|TPL&U@pT?zns&rj01n_u*8eps+^FC+TbK?`AdJa(!h zsc{1BqXTiksMW>;XM<19I`yP6#3=v~^{STk<@h`l_whreoiT_z~JQM6Q893GFJ+4d(<_(xxXGpB(k?9PD7FWsm1Dn?0NXlQN=iX zr=Du_TH}(m&$AMK?@H{B#{{=4sQ0I*%6+Nr5eKDD6{&AtYLgHna0eYLQpxh5`c(q~ zOdM640&qdA8Z}g83|53Qkb|DpLfG^^l7t^(6YZz$TjL;*SJ!ypVPJSGLOdaZx4{$v6q$8SI zC=do*bJmJ$91+KAC<&55JVIjb>ds>V)gbu0xSxotT- zdeo@HBb;$nm9PLOuQejRPHB$Bj{NggiS6GNBOVPwxRxi>W8RB}h^|lGBhs?vQ*k_T z0g`I{%XJ>S{uMTXW9HroSbVB@HE|OsSofAZN8tZ+6hzylbDEtt9>8+<_WP#^h(OKU!hB8P02;YwqCwwHdvWuryenbD{fCKgCQpi_fid>v1XQ4k$9t zPXPW@>`SO^OL?C416>^TtiWbt-j{5 zR~-#XbrmD-fmvEzl-GBQ4tr+0AM6EQ7}6cg$u3Ns3b&>~yOJ?i7fXsE$2ES^$8f@_ z#Y-5F0Jy=eOL34mrp0IwVAYt@2RZ3kv8Q3kG27`=C>W$w%{UG!OHB#~Ph(TU2I0<|L^s7WOXJ;^;YCV^C$Cy82)fb+ObUsywCANqk_KsHAjI7E z=8(vV1cEuFU-f&)C<;cML(c#D*2n@21-b@MS(y1a}k)bXD<2l7eBM}1<4@_dD zD~|OY!Q&Kx4U3QuOm?BzU}TPzk>_zE(-jjg;(e)HWs7164u6N5wY;$Bw-s3i-ZB6` z=QT1g+wa&@6@+qrrlBr&_Z2Lsjll8Rt4MN4%>xD?%fabUIpg`#6NWVuk`DY6QouK3 zJ$S6Y765eAez=qJtL6SuYdggtoeEa}0BB>{sw-3{vCZuS2E``C4T_E?$_{B&viPp( ztr5j7#?J@`j+LQhZVv~hMMCMgioI+$uc4ucCbU)r0n^&Eo-aA z9x0)YvpHH>Gm4JaDhTxAr99L~q=E)vCQV!~?^PffYMh)J%w+bj%MN*}+J`DdNp636 z_*8eKm1+iabBr@_QB|A4iB4+2ZhdOj#68B*K^)PHigpmt2YM*Q6oB+}H~{{2C~TF- zbAeE2sHs=BGsmrSvr>3id0_ff$lPM91A**nRBpeWAT29%QUmfFcBms^<>vs?!vMJ* zb4a8~pOZQI8i1Z^LU5Z$0-$5b?b?_K5$BjFhHBybOAGtvl=S z3_Afi$7#wuEtEdRnPa0R+mV*##rLIOL_9&Hy|D;x}P9`II2v|qmP$Ob>WRdbob44Zy9-h zZj}|*)ZtWM_4cCVxR^^|bI7YdWQ`Xm9V*k$8gP1#)~e4lN^pY$mBnO+BuGX8T3Hno zV~mQHD7JFqqLFtoZi1c3u^8m=DP4Bb?nL_3Qd}vb<48a|oKqxV4@zTAo&^XpMn_Xk zAvTe-;OP~0v@O$VuBK_jxgxnO5kS9E1_-W=RFX&MQpX)hN6z^7t(#~>aR55wtyI(D z1Lj~WNmLL|Y;jQ8pum9gX>dhKqY>ney(y2JRDmpNIL8^u&#ow8^KsvbjwboK)3S3@ zU_+FQ;PTvYakzbeWqadUvH@xip6i4@}eCe8Qp<2a9)1a4C{pDlQquX>x_j z8Nz>_ewCl8PF5qexd)t7a$jY3MTT=p4U4-hles>|s=;!#tP)%~o>9T*4Q*SDOOAjg zMv;IpqviIe!Vck_gN{ugu_@%$d46XkbgNB(H+B_UZgSbjImfjF7{K6Qb50n^$9e%J z_#7`kT0_AgeJNN6E_209gf4U6iiI+xCZD}P=717ns+jevp@An9>0fc@>s6XSr;Kw< zK_iZ8yS7avjnC^$Bm;v}VUNyJ80}fw=w{L912`BpeGfeTHD6G{(e6}?orKjcf_ofY zn-VeYRupDIP+JfVIH{uL&V6gPGSM6|-I`D)SQA$<#&K2ch6?-C`@l~9C~o6If_D$f zlI1;Vh5lvDPaxcxIH5ZXr5cs%QsaY~9CJr}deq3IEO}9!Q@3aN(l^}$(xTnT9`!c3 z*=pbK)9zC$N3Ax<*ARS}qzhA$)Kd@5QEs4qRjsYYR!sAX%Rb_?TM;eBatX&l z(u4m1*QXFM(vpTD3KQOnUVps9=xC$|pp0-&T9Hqws6o$KesRYf)&{AQsr0Gi#y?7| zrv!n< z*U@a8#l40JJ?f&az(u!MVaXigvTs?QPzlKCTKcrYB4b=+Rx7?(lUv%zmPT?9(9zWY z0QKn@l5^`)FKU(+9y(MkPIFR{delvkNrD)vNyn{0sX*a30m0(0#;14Iu11M8Os=^d zs*)-@oISyOl?rMI)$@)(uB!gRINKp{SvOJ&>3lu$`EnJwrmg{Ur>c0+9(I5bvDRYpIz0-Xwz-hAXUfAab4B4VOx%w%|wkOBE`CG zUX?oVFe$6*dQaDdG03P`3QVk;VX#|s8k?V@yR8o3$=~Bi&c1}BHj$vC;g{6cr z5&TRBIjatPXE~*QppVX)2xiB8(rl!KQ?znvV_}oUHF4DXoYaZ8BO@8108Y!~g#(5^ ztwA#sRbVrbfm6tSVH$yedi&E9DQ)f11_13qm`J88b&I``ds9B{ zN$c8xLKVh(V;_;K^2vY~I5_5?JM2zQ4hw!Yoiy8+k=~HWWRpD95;jdnWI4r0<`M@O z??u3ruo(5G4!J*tFp)rEpK(RQVo-L9itOgX;2wo}rQFAF1Db8f0?uRGZ99qVaIi7l za%$DFCR|krSZ_aC(y~P}4r{JEBZ^B_YQ_mg#YjOIrz!w|4@xn*m?AY&(cCL2Mo0SLFyBj#e+X0G0iN*Me*}3DVYUbDx#d;3AYB1RytAxFeWUM$G)gY29 z?c`HCQ;9gH5^0%^3_zlppYw_-f#0u6c6jzQ(fw(7tP3PVmgM56jjFofo;%d3!Ry~N zin(P-+A2)v12qEn=A}Scf&r3EOBr`av^Q64xL^wEt^!$FhAV@N;-c{NlEDC#`wGkP zMx-6Qh{?x8T@;~Z%*k>wuO{=Z8HwQ382R#kr`m|YC!bn+FQqo_JBSoxk@cr2<0hq5 z7~pY=M;$TT;-m<%N|7DeJ*q@ZoF3IS&Zn^ySWIFd4V>TuSM4mMdr2k$g-{5j(=8hE z>0(9iU5=@17M&$U$|E#s0ao{~lkcX68N=a4*mx~UvjGpWYW zxjm|CBX~$_Tq3ViRBkVJXBjmM%hxqh;ei>=Vrb+SdZXj+ky*DF?&F$Em&qck^)w?X zNR}2dNHfrywJbrR&urqW!T=m&Ca)3}*PeKxlC?8uhidxOSrCqbx1IqcYTbyc9!BX( z)g~s4<aqSHwICVX|h5gU?mtd$*~eCZi1}mWO&CkwtibkK%}|^6M$%2ktd-2 z5V!X2r#zRhPDsxDV*?fDIw|t?%O)yFGJ#&HCPd_pl{E^cIB>beBXLdKc7a2lK9z~k zhYl%N{Gk44)|jV^W|CII@WZtOxd|tEImb0JoMak|AjV0~O%gU3M@>S^e352)=x3~}<1I`yc|LIc#) z^QkHbndQ_k(Wn9%j_`xHsOA`|(rYJ)s za${F;GJmZqg0X}>&osh($51+M=A?c|0QCl#hLe$==9zJ}IKvj}QeY4cap_rFl;q4J zQgDNxttK)n+03$WzylRrb_dd$at}0{z~G*=Tm&Gp_3J|(e;Rh>!NKWKNKP|@?MZ-V z2L#i;QOWO3jU9$U{wAdsjh~$3J*cpr#0@Dd0{T)-BfX@&92GU9wy~~39Y38@@g2h0 z>2mpCXKvrlgtb8QN1bol{{W3>Sk4i_CbOAxe_YV4ROA}(iqRZW-0I`H3JOf(L&Q)`oq=cEIHg3T^Y3fu0Gg)TikaJ7+u20QOtCwbFCjzTTKm=1GaP6GZ zN^{b(Yf*`u5_@`7u@ly-WaMV7!bo4QN$1GcoB!>|0tKs|*q;gmY8erq(=Sp+2={ z4OnSjdYULXG*NLK?noa>a`eSCjtx0QVrV!F9Mq|j;EIfPK9w>NxO2hjNsSVzP(8cW zu7hvq+^9XPAwKrg*RZbJ!xlm~)rij>Xo|bA*{gb@(@Z1};jcQDMwao*obz4(0Elh_ zLShGuSD(zKE?9xyyJa3&8TBVc?nf0epyP^(BmsHip4TH7ABA%kNI)EC>qIb1aUoPv zPAbigopX00{Ddj4-@|$|HtX{!Bmr7MY9@10XcMKsn(Ny&0Mi_efO0F)_2g88%Y|`{ z4m~Rt!rytvL!V07!o>3s_(M!ENM(_7-9f2-B1q8qa%Tj6%noaNZ`tj@P%~Vo#L{2G zt^ptc&*Rdxgn433^*r}NmG1On&yE{|RkaAi0uMEz;b@h#3@O8URXfym-MA5o<03V{OWSqK)$CYlPJ9({CloXN~9Pq*{d>=uw+#NtYi!+Tn*b6k8jU|SX%6;*JLL_ zS`ijlx3Rzjy{x>pQWLBliIf>L9?%V(HOmq`yZ23 zwR6#B2E8e-6uAfcx%_L+8Ft*p!1Qoy(IbGkM#cdGvZ!4$Rh}|C)78-T=dB`J0muWb zIUv9oUU69+D`5hm9G;Y|0v?Y;!Uy)eRZaL0kqGzE#06$2ZFag$5rg1H`?)Jh0r z+*5|`fbov>40;6wb*qrW#&Bw)Cf5vD;}vo_f4an;_@!Z7f0g=DqzqhRu6d<0j2{00 zH4#lAn6i$P#!O-=*v3fdO;`aLJ@}$oCQ*`riep_!pl(7vJ?Q}<&Twl^M}>-w!;@K)7HjuJQp!2V=}2Up61eSA zNCy1ljL?x>N;gKNRD#CuzdUA|6DqX0#~rCexn4TepW zrj7SV2emb!80Y)cDO4MP;~e`?fLCCkW3Ot%mwV3S4hLU)){*k8-80g&$vc1^`K0#( zA#U&2ichjClahU^%M+gTjmhswWF{m{xF1?`#->0q#wZF|xv5bJIqUuuAq*e|JAEnR zvvw5hChTVbQ(J+N)E=I+-obGsZL7GN=6qo}{>@J2Njdsf?d*z3h<46vnemi^eY^nj zqb*Je-4i$Nvzx}|7(J;>M2eai$6VCRfmKE;u^dfmMP!Yfo|Uf@Oh+|N$SzQH^{xAO zl%VO&Ty_MEw~T?%(>%8Ht+%&Q205YaS7i;@s~J#&y=mlsssVYt#4{D?pnf?O13J}Fp(GwjztuwIq5}F2Xq^c z^O}0}s);D+o)76$EWCd@#iG$ZKpm;b*yQp%R9n{o=A5h;;C1w=y@qONuo>>d5s(gg zSA7(VZ)iJYaa`Ah?Si5^j(gUosd3K1ThU!Xl{G7p+lX#!pSfMcu{_qa> zAmfaRaHZ9bcbQiM-)mJzGdeIxVsVuLkNwqh0 zz^;46=q`LaI`ufMd$~hfrUnVD$#XWJCAsG+M>OZNLOjdE7a?rqh!6_5N_L{*ivfe0 z#hu?x)@~p?0^AB&uZH1+&(^pnqdKX}-Loj_gK0csux`HdW74`S*Gc0iBY5jv<>pdD zijBdti}B4j7^Qx+)?j!P(G8Ns+~%yu^Eeev2=(T!SrNk;Olg;A<`)>K?PJP<{2lNWEEvQW=tMKgI=zL8(0_)83rrKWgKqqIj>jK+sx7|<^KSt zK-P6OHK(~U^2{mS6c9NStTvK;=^2g*6@k!3PdLcpo7@xpM+Sff{{V04Ll0la>p%=6 znsN+~JJSCE`soydAQ{B~NWkz9Pg<50D!Io#pVE;JKsw->SkB^#xj7tA1f>ZfRAid6 zphXtZjmNDuHpaLI=QSLxau9M)S_0(Y?*n%ur7)67UIsdGP9Q8p9jSx-`%p2GA~Ns* zKT3huZv<7IF@sGi8{E(ZLNkEJ0~ARz#1QbHkDDFpS#W^64c&nEs&^6MF(Vz)G2nJl zNLMy(?hvZ%Wdm=eIbW=zzma5Va-Ov2OLuXEs@7w)CqCW;($SHRBXK|fgxj@;+Z6cVrK8gDRNlx z&F<8=2I4 z3m5|ilI8HcQ(|GXRCh;;=s85TpZCC5Nn<`j^IVKM^Q&^sU8*XU!@1I<0y>J4M#ObS z#!c8Yc5D>-@lzs`GA~>AwOBSA6*c~MW1bCFPrXurv62Tt=}u9C0Hy=lrh#)Jj8bJS zj*mxDBVH?@iHMAJtZh9uqT;nf@BryjQY|}^7Apr)Y?3ot^R^=%gZfq$q;OmCq*^lX zV+Bt&&flq7PC(|mo0Z7Vu&fPME=k8CtuiExx+pYLGB;9VkN&+(laNMhEo8ywq!S!t zG@2F7gqs}ZuIX90xw~gwGo%9YA=^aj#yS# zmn5#OFY$G)JE&r}j5BaR6}(pL#@$0Y%YW1w^iJC_snwgSG4?|Ph>8&FMH0(>2%C^xo!~nI`XgXp< zqE}uK6`>$vff-ls9#T31&{Zip9N_(F^0{X$d8nDbY*R~75tS!6 z1M#m;@bGr<{gZLTc>Y!9Yo58UPVk>T7_-k{f2B=Li-zUfls&PEtt)mMRjZ<^qdt{K zmSRt>bF-_U?D0)4lS_^<-jL(ckcMtKBh$4@1~;!6`qVvGj8w4$yCaS$0!Cm15!XCa z*5k{|9=%0H65wTqa%y4@@H+}XIareJ$EWE}w;P*zsI#6b#A9rE9qEB2n8ih(n1jbZ zojOi1I?@yK9QNc;7aG{w4{nr&f-4r|03Io2E;$um0(SN9 zRwetR>01~TqW=I{T5&$q7_8L)09#i#ZBS?fdrFY7;sqE8q7xgb6eUZd;{OL1zg;Ng~zp7 z-Z{sps>2H&Xh-9khFUL9{{XohRt})q2iCP@keI(3$G>lwk9tK7U!E*hW~CNX)%!-v z?ax|m<{%{?;)-`Ou^C*_rzVgRM-=ruj0$OyVrxi@lcFdmCl%@5 z9=8_u%DBRX=D1%C+j*1kBRDt}=mJHG#KfoOBdt^yQQJa=@q3G}EM(=eUB`y(OjgUd zbBg7>HEs62OfdwE^InwFaD|O?jtG5%Xh6{i&D+=~c zHHgo8-K!!=Eu=Hfq@FmfYq?{J5u9XlD?d$$DBec`v$fl@(iBGNQ_Y|)OurH8jV%6J zzXqvUI*X{Ve(9>yMjqoVbIn?UG)a`_70)?cmXX*&F7Uk7eSNn^8$9Bpv~U3D=|-yC z)95RB=>i_+MZ2FitXzMtUV8Pa*0D1?HcmTJq?058_muRh>2VeOP>Xfp`H_b~#dx5Y z!**BD*S+en0in*%#!!m+`uhU5S6I=g<-FShmwLi~?%Wx;+Wz zvO~En&k=8)F;%4&hxh;{nIyStf!ieUNsi;)ZM!Em8Cd!%0ZlE(JQ@}9ev|qIQTQm~8m;I=rY>aIn;4Nqwv7a63!h)Wq<^r^XaIr0Dm;B$(!OB>rgF#~5riN_r0m=O;M9UBdIqOV!5+)_idIOBqg|WaG z6;&lH%!3>^N}X8a9Yq2j6cA5(Xo~jvklh3s=mui#FJ5Z1jv&NnC$Q0F;2^&E? z;}oJbCnRSTA}XjGR}Je-1Po7O%|j^!lkNIc&fxAN)}ek!G=Q%s6u?R5q?8_kyZ)6J z`-eS^AP@nbdQ^8LDxNu~=PR6as?$hXOr9}K0UU}rCp5wrB!GD7PIe^qqy#jZd)1Q6 zFBC{bu|hpEMPN=rBzLR+Be>nFy5}2stcH*oGHX~~$30ESVn78xXTYRV0P9tze79QA z%$6hbW~Op+)~nldQcBod(*pjLAxQzxdg^VaK3L|sn>jYPIj!3ZvQug4nhHj(%eN%- zth<)aHFj4G80NF*IW!Dgf0=;yuB%B*Mn09x>C3uNp4Hab9gzx=qRht&Q6p!Xj^bc) zDUiN!J?eKXy(?lY6Yp5p@AIB(M&-ay!m=+U1;;(=SnfXEwz{|HR_9!Ih~;)-Lj&mKOM@yXgbB-Cfpq_O#~(Q%&jc18zh;hTMy>&Lxr zOium1x>ao&9hU2!nBuh|fSsY2=Bl=u4BPNzK3NACBxg0&TstuvP6kIFm5<@uZINVg z+*YOADlP%&b6e0(#K@z4F5C?D$*koi+WI)P%2$MA%iQ925V*_#qGk`*c_g5 zTzvN?RxZaGJu6GZS8XJL0ULcQ5z{0n&my^MNv#JFtVRQ8nzI?pfu5AnYsTZ6f0eW= zGhp>KidR=I=G;xO2YPMH+t8Y9P5z3EPI#yZCCNDAw~O~|LuI`Z<|}uRWh z(`*JL`MOqSh|1ONwoAJeO+ek8S4XWvzE0}r7~!xg;j1D;U%x!pRpE_!MWkAE>w_4= zx2?M_*A@DBT1dncaDt$T`3!lw|hex!oI8^3+9iayuVN=tC12D8Ykt z=DDQ{9Wjz*if{ov>P5qH4lz)%6q(vED?1j+*Omlvfr_3L2WZYQP{O2uPC3UE>zDGO zAxPe65gp{dYk&{R2TF?_J0D6#;1W6d(3#tg^Z|atExVZY&sv?wPkv1@Fi>MWaZhuT z$E7eB<99!WL4MmK3!b8^DFY0zc9>H(XSMJLm$! zKOH&8S`V*(dSdkLPM`%Ip0peW;~DKpN&d8l2Z~@aOaMn}kFOZwq?4{{KKaci1$RBV z98_zUbSnfG}*>fuUvk#39^VdVUyCC<^?6X zU}V$YJ+05yt7@am(`I4AV--l2aax3)ZRFA(Np7`Jed?Z3z%;~Moc0}Ssu5N>r0&N% z9ldHJQk2i(NL1D6i5526xfIuO!`hv<9q1A9jL~o#8O5gKBE;Gokdru@2j)JrvZdeqb3D8t&C20B$6`3iotQpgVO{{V#)4CLD#1wO!))FJdInqv&p ztw|S<9P%2h#Py96%WGU@bgd{I0A5COSsE7>eGf{R8N}(HxxuX#!#xK^Wm`~J9XT}) zqWrK2p481Pir9irQ;M&7A!p8Wn(3$TnaS!ygDmAi_ceCm{F_~)t|~hS##xwls5Kc! zQg|Fw^9z{Qs3dhexjkvA60gn2wKC#f!;JHq&$+#2`2}-Na?zo4FhtL4&7SR?>=`&b zR4pS&hb~Xnooy1CGJR`1jOeZ8RMSH?0LKH`p|&zi#P{!2u5KcV*es8DR~ZA5n)2Tsc)hM<8v80l+mZXfPWUR>n~x67^|Z0glxsi&8y7^K3&NYbMgkrjt8K=C$4*J;o1O*RisW zC~`+NtvK9?vm!emE5uz0xYnr;3dz^HulCdjt7e6`Yk6O^ub&0K< zM=32ALG4+j=8dPfHH$4XySADuh=au8ffX)5Cb*3@`g<*lr;A6-<^2e}wbJOCjLr zy+I>`$T{YdV?;=Qf6q!T8>r4RQOPJ)&MGNPlLDY)JOfEwV9k`;I+~UxP@umA(nO&_ zU^0E_k}{A>pSpAZ0M@5qu{78-uehfmC59=7Dusw7vB0Oq3WfT9Q~@fm9CaVgkN*Hx zX@HZEa4Gw;xdneZ1OW7?u zf<>A6jr;GI*s?geNsE*cn=MEV=GF z)g5HUblG<+1T6{Iy}PegLEuLC1AzyLf|tBA*${VFY| zt_^iS<#CY#HQAJW9^*;=AXV0OlL;ZSxy+swG*rawAfAQn^RZ;hs z>S&_6Y5XQq+|XVke0mDU)c)&#y+st>z_&3je(C=JdaN7LNQaFvU>^~aduU*QFyB>R*D5^xVIDp&Jy=cG&Iu4XkR)G>=Qa?dO6vkJRy;hU0 z6j9JjjMHE4AFUKrh*8$1hwo8E12nBVQ{R~|XriQLs5ljLf2*R3Ph#Rvrvbfqt+_ad ziYTs{8yU}Ym)1$%YaPD*6jGMrLLP>nAKf2XD6F3419klCM?hv<)!M{y*wIBx8a5oC zG0skE++>KjJ*c9&>U>93eiT^#16Jby08pPwD5P01>G)Jl(9uN%G6}x*RLSz!pW>p5 zLqt+_{Ay^v>iuYt zMIbZ0K+Le6tVcbKV4hqQmS69z#iRuta!QB(+ZBT+>F zM@(*piYNnbP5%H?pGvhq-84}{8YqwThMZ`kpkt%!_|w;-{S6dSdkqd91xTNF@uG@? ZkoD Date: Wed, 13 Nov 2013 22:13:42 +0100 Subject: [PATCH 08/50] Adds LICENSE --- ._secretplan.jpg | Bin 4096 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 ._secretplan.jpg diff --git a/._secretplan.jpg b/._secretplan.jpg deleted file mode 100644 index 2382b55e7cbfb5480d8b7c5748b1df43b6af1f9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqnz} zh3H_I0aWgQriBs6hl-0P=jZAr78K;9>J^qI7A5ADWagzZ7#J8BTALbK7^j*W8CtvN z=cnhSDmZ5p<>#ha8yY(qni^V|>N-0+yXu-4n!D;+IJueWI+>fB8kxJ9xtN$+qS-gf z9Swoe5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVB`Apq)Zf-o4!g=AzFD-@*`=a&{G zrz)i77iBAC=9Q!ZyPf%Yi8(oy3OT81B??J7iFw(;zA#kRkfu=m5BG`;gWUiB068W# A4gdfE From bb8ffc75003f5ae0ebb907fa746bbb37e865259a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Mui=C3=B1o?= Date: Thu, 14 Nov 2013 14:25:37 +0100 Subject: [PATCH 09/50] Make change event always fire as the user interacts with the knob: - touch - wheel - typing (by binding to the "input" event) Previously, typing did not update the knob until focus was lost (and no change event was fired), and using the keyboard arrows did not fire any change events. Also move event triggering to val() and change() so it works always in the same way and less duplication exists. --- js/jquery.knob.js | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index d6fa7b7..a7f5453 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -141,7 +141,7 @@ s.v[k] = $this.val(); $this.bind( - 'change' + 'change input' , function () { var val = {}; val[k] = $this.val(); @@ -159,7 +159,7 @@ (this.v == '') && (this.v = this.o.min); this.$.bind( - 'change' + 'change input' , function () { s.val(s._validate(s.$.val())); } @@ -302,15 +302,6 @@ e.originalEvent.touches[s.t].pageX, e.originalEvent.touches[s.t].pageY ); - - if (v == s.cv) return; - - if ( - s.cH - && (s.cH(v) === false) - ) return; - - s.change(s._validate(v)); s._draw(); }; @@ -345,13 +336,6 @@ var mouseMove = function (e) { var v = s.xy2val(e.pageX, e.pageY); - if (v == s.cv) return; - - if ( - s.cH - && (s.cH(v) === false) - ) return; - s.change(s._validate(v)); s._draw(); }; @@ -516,7 +500,13 @@ this.val = function (v) { if (null != v) { - this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; + var newValue = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; + if (newValue == this.cv) return; + this.cv = newValue; + if ( + this.cH + && (this.cH(this.cv) === false) + ) return; this.v = this.cv; this.$.val(this.v); this._draw(); @@ -558,12 +548,6 @@ ,deltaX = ori.detail || ori.wheelDeltaX ,deltaY = ori.detail || ori.wheelDeltaY ,v = parseInt(s.$.val()) + (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0); - - if ( - s.cH - && (s.cH(v) === false) - ) return; - s.val(v); } , kval, to, m = 1, kv = {37:-s.o.step, 38:s.o.step, 39:s.o.step, 40:-s.o.step}; @@ -691,7 +675,12 @@ }; this.change = function (v) { + if (v == this.cv) return; this.cv = v; + if ( + this.cH + && (this.cH(v) === false) + ) return; this.$.val(v); }; From d3fef4c2eca256c3b8813aae590e8d5676df8cf2 Mon Sep 17 00:00:00 2001 From: aterrien Date: Mon, 18 Nov 2013 22:32:27 +0100 Subject: [PATCH 10/50] Workaround for #56 #97 --- README.md | 4 +++- js/jquery.knob.js | 2 +- secretplan.jpg | Bin 3 files changed, 4 insertions(+), 2 deletions(-) mode change 100644 => 100755 secretplan.jpg diff --git a/README.md b/README.md index 05006fa..da0dd70 100755 --- a/README.md +++ b/README.md @@ -129,4 +129,6 @@ Set the value Supported browser ------- -Tested on Chrome, Safari, Firefox, IE 9.0. \ No newline at end of file +Tested on Chrome, Safari, Firefox, IE 9.0. + +![secretplan](https://raw.github.com/aterrien/jQuery-Knob/master/secretplan.jpg) \ No newline at end of file diff --git a/js/jquery.knob.js b/js/jquery.knob.js index d6fa7b7..276fa1b 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -718,7 +718,7 @@ c.beginPath(); c.strokeStyle = this.o.bgColor; - c.arc(this.xy, this.xy, this.radius, this.endAngle, this.startAngle, true); + c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true); c.stroke(); if (this.o.displayPrevious) { diff --git a/secretplan.jpg b/secretplan.jpg old mode 100644 new mode 100755 From ec052922f12517cda89217fe86e2761b11d6b5e5 Mon Sep 17 00:00:00 2001 From: aterrien Date: Wed, 20 Nov 2013 00:08:03 +0100 Subject: [PATCH 11/50] Revert fix regression since #140 --- js/jquery.knob.js | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 091a52b..376a138 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -141,7 +141,7 @@ s.v[k] = $this.val(); $this.bind( - 'change input' + 'change' , function () { var val = {}; val[k] = $this.val(); @@ -159,7 +159,7 @@ (this.v == '') && (this.v = this.o.min); this.$.bind( - 'change input' + 'change' , function () { s.val(s._validate(s.$.val())); } @@ -302,6 +302,15 @@ e.originalEvent.touches[s.t].pageX, e.originalEvent.touches[s.t].pageY ); + + if (v == s.cv) return; + + if ( + s.cH + && (s.cH(v) === false) + ) return; + + s.change(s._validate(v)); s._draw(); }; @@ -336,6 +345,13 @@ var mouseMove = function (e) { var v = s.xy2val(e.pageX, e.pageY); + if (v == s.cv) return; + + if ( + s.cH + && (s.cH(v) === false) + ) return; + s.change(s._validate(v)); s._draw(); }; @@ -500,13 +516,7 @@ this.val = function (v) { if (null != v) { - var newValue = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; - if (newValue == this.cv) return; - this.cv = newValue; - if ( - this.cH - && (this.cH(this.cv) === false) - ) return; + this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; this.v = this.cv; this.$.val(this.v); this._draw(); @@ -548,6 +558,12 @@ ,deltaX = ori.detail || ori.wheelDeltaX ,deltaY = ori.detail || ori.wheelDeltaY ,v = parseInt(s.$.val()) + (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0); + + if ( + s.cH + && (s.cH(v) === false) + ) return; + s.val(v); } , kval, to, m = 1, kv = {37:-s.o.step, 38:s.o.step, 39:s.o.step, 40:-s.o.step}; @@ -675,12 +691,7 @@ }; this.change = function (v) { - if (v == this.cv) return; this.cv = v; - if ( - this.cH - && (this.cH(v) === false) - ) return; this.$.val(v); }; @@ -746,4 +757,4 @@ ).parent(); }; -})(jQuery); +})(jQuery); \ No newline at end of file From 1d82b10c54b3252bcfbc9fbac8099757cfdfaa97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Mui=C3=B1o?= Date: Wed, 20 Nov 2013 10:53:09 +0100 Subject: [PATCH 12/50] Make change event always fire as the user interacts with the knob That is, when using: - touch - wheel - typing (by binding to the "input" event) Previously, typing did not update the knob until focus was lost (and no change event was fired), and using the keyboard arrows did not fire any change events. Also move event triggering to val() and change() so it works always in the same way and less duplication exists. Similar to #130 but fixes an issue with `diplayPrevious` --- index.html | 5 +++-- js/jquery.knob.js | 43 +++++++++++++++---------------------------- 2 files changed, 18 insertions(+), 30 deletions(-) diff --git a/index.html b/index.html index 7184b74..9352ab0 100755 --- a/index.html +++ b/index.html @@ -60,7 +60,8 @@ return false; } - } + }, + change: function (val) { console.log("Change: " + val) } }); // Example of infinite knob, iPod click wheel @@ -309,4 +310,4 @@

jQuery Knob

jQuery Knob is © 2012 Anthony Terrien and dual licensed under the MIT or GPL licenses.

- \ No newline at end of file + diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 376a138..5a2ae3f 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -141,7 +141,7 @@ s.v[k] = $this.val(); $this.bind( - 'change' + 'change keyup' , function () { var val = {}; val[k] = $this.val(); @@ -159,7 +159,7 @@ (this.v == '') && (this.v = this.o.min); this.$.bind( - 'change' + 'change keyup' , function () { s.val(s._validate(s.$.val())); } @@ -302,15 +302,6 @@ e.originalEvent.touches[s.t].pageX, e.originalEvent.touches[s.t].pageY ); - - if (v == s.cv) return; - - if ( - s.cH - && (s.cH(v) === false) - ) return; - - s.change(s._validate(v)); s._draw(); }; @@ -345,13 +336,6 @@ var mouseMove = function (e) { var v = s.xy2val(e.pageX, e.pageY); - if (v == s.cv) return; - - if ( - s.cH - && (s.cH(v) === false) - ) return; - s.change(s._validate(v)); s._draw(); }; @@ -516,8 +500,13 @@ this.val = function (v) { if (null != v) { - this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; - this.v = this.cv; + var newValue = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; + if ( + newValue != this.cv // avoid double callback for same value + && this.cH + && (this.cH(this.cv) === false) + ) return; + this.v = this.cv = newValue; this.$.val(this.v); this._draw(); } else { @@ -558,12 +547,6 @@ ,deltaX = ori.detail || ori.wheelDeltaX ,deltaY = ori.detail || ori.wheelDeltaY ,v = parseInt(s.$.val()) + (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0); - - if ( - s.cH - && (s.cH(v) === false) - ) return; - s.val(v); } , kval, to, m = 1, kv = {37:-s.o.step, 38:s.o.step, 39:s.o.step, 40:-s.o.step}; @@ -691,8 +674,12 @@ }; this.change = function (v) { + if (v == this.cv) return; this.cv = v; - this.$.val(v); + if ( + this.cH + && (this.cH(v) === false) + ) return; }; this.angle = function (v) { @@ -757,4 +744,4 @@ ).parent(); }; -})(jQuery); \ No newline at end of file +})(jQuery); From 7896719d019b809f3bfb7c00f58a4825d1ce9458 Mon Sep 17 00:00:00 2001 From: aterrien Date: Wed, 20 Nov 2013 22:26:45 +0100 Subject: [PATCH 13/50] Disable log change --- index.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.html b/index.html index 9352ab0..472b50a 100755 --- a/index.html +++ b/index.html @@ -60,8 +60,7 @@ return false; } - }, - change: function (val) { console.log("Change: " + val) } + } }); // Example of infinite knob, iPod click wheel From 4537561ead35b8c156db6f3c7ffb8063b59082ff Mon Sep 17 00:00:00 2001 From: T2L Date: Tue, 26 Nov 2013 19:21:57 +0200 Subject: [PATCH 14/50] Follow-up Android browser fix: fixed full knob display. --- js/jquery.knob.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 5a2ae3f..f7e86ee 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -717,14 +717,14 @@ c.beginPath(); c.strokeStyle = this.pColor; - c.arc(this.xy, this.xy, this.radius, sa, ea, false); + c.arc(this.xy, this.xy, this.radius, sa - 0.00001, ea + 0.00001, false); c.stroke(); r = (this.cv == this.v); } c.beginPath(); c.strokeStyle = r ? this.o.fgColor : this.fgColor ; - c.arc(this.xy, this.xy, this.radius, sat, eat, false); + c.arc(this.xy, this.xy, this.radius, sat - 0.00001, eat + 0.00001, false); c.stroke(); }; From 4ba17cf70c6af274a2e308c6efd93467c916427d Mon Sep 17 00:00:00 2001 From: aterrien Date: Tue, 3 Dec 2013 23:51:40 +0100 Subject: [PATCH 15/50] Release events on mousewheel --- js/jquery.knob.js | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 5a2ae3f..f49a261 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -540,14 +540,36 @@ this.listen = function () { // bind MouseWheel - var s = this, + var s = this, mwTimerStop, mwTimerRelease, mw = function (e) { e.preventDefault(); + var ori = e.originalEvent ,deltaX = ori.detail || ori.wheelDeltaX ,deltaY = ori.detail || ori.wheelDeltaY - ,v = parseInt(s.$.val()) + (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0); + ,v = s._validate(s.$.val()) + + (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0); + + v = max(min(v, s.o.max), s.o.min); + s.val(v); + + if(s.rH) { + // Handle mousewheel stop + clearTimeout(mwTimerStop); + mwTimerStop = setTimeout(function() { + s.rH(v); + mwTimerStop = null; + }, 100); + + // Handle mousewheel releases + if(!mwTimerRelease) { + mwTimerRelease = setTimeout(function() { + if(mwTimerStop) s.rH(v); + mwTimerRelease = null; + }, 200); + } + } } , kval, to, m = 1, kv = {37:-s.o.step, 38:s.o.step, 39:s.o.step, 40:-s.o.step}; From a04ae2d91d497d5d466639be78f1a13481c17916 Mon Sep 17 00:00:00 2001 From: aterrien Date: Sat, 7 Dec 2013 22:01:50 +0100 Subject: [PATCH 16/50] Revert call change on val() #143 --- js/jquery.knob.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 9e1f5bd..ddb5273 100755 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -500,13 +500,8 @@ this.val = function (v) { if (null != v) { - var newValue = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; - if ( - newValue != this.cv // avoid double callback for same value - && this.cH - && (this.cH(this.cv) === false) - ) return; - this.v = this.cv = newValue; + this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; + this.v = this.cv; this.$.val(this.v); this._draw(); } else { From 921c78a0359c48e4152989de5070826044c9fe36 Mon Sep 17 00:00:00 2001 From: aterrien Date: Tue, 7 Jan 2014 21:36:46 +0100 Subject: [PATCH 17/50] add bower.json --- bower.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 bower.json diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..f0ab934 --- /dev/null +++ b/bower.json @@ -0,0 +1,12 @@ +{ + "name": "aterrien/jQuery-Knob", + "version": "1.2.3", + "main": "js/jquery.knob.js", + "description": "Nice, downward compatible, touchable, jQuery dial.", + "license": "MIT", + "ignore": [], + "dependencies": { + "jquery": "1.7.0" + }, + "devDependencies": {} +} \ No newline at end of file From 354ab5e184884af3d959c2eec59507aa6477e405 Mon Sep 17 00:00:00 2001 From: aterrien Date: Thu, 9 Jan 2014 22:49:30 +0100 Subject: [PATCH 18/50] Fix IE8 #150 #153 @zitrusblau, input blur, more consistent release hook --- bower.json | 2 +- index.html | 15 ++--- js/jquery.knob.js | 142 +++++++++++++++++++++++++--------------------- knob.jquery.json | 2 +- 4 files changed, 83 insertions(+), 78 deletions(-) diff --git a/bower.json b/bower.json index f0ab934..5d2f91f 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "aterrien/jQuery-Knob", - "version": "1.2.3", + "version": "1.2.4", "main": "js/jquery.knob.js", "description": "Nice, downward compatible, touchable, jQuery dial.", "license": "MIT", diff --git a/index.html b/index.html index 472b50a..4434ba4 100755 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ jQuery Knob demo - + + + - + + +``` Options ------- Options are provided as attributes 'data-option': - +```html + +``` ... or in the "knob()" call : - $(".dial").knob({ - 'min':-50 - ,'max':50 - }); +```javascript +$(".dial").knob({ + 'min':-50, + 'max':50 +}); +``` The following options are supported : @@ -58,11 +64,13 @@ UI : Hooks ------- - + 'release' : function (v) { /*make something*/ } + }); + +``` * 'release' : executed on release @@ -92,40 +100,44 @@ The scope (this) of each hook function is the current Knob instance (refer to th Example ------- - +```html + - - + 'change' : function (v) { console.log(v); } + }); + +``` Dynamically configure ------- - + } + ); + +``` Set the value ------- - + +``` Supported browser ------- From 4fb9bab8d87c4e705cdb1ea47d00b5190191b29e Mon Sep 17 00:00:00 2001 From: Felix Milea-Ciobanu Date: Tue, 14 Jul 2015 10:54:38 -0600 Subject: [PATCH 45/50] added basic package.json for npm package --- package.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..28b7fb1 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "jquery-knob", + "version": "1.2.11", + "description": "Nice, downward compatible, touchable, jQuery dial", + "main": "dist/jquery.knob.min.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/aterrien/jQuery-Knob.git" + }, + "keywords": [ + "jquery", + "knob", + "dial" + ], + "author": "Anthony Terrien", + "license": "MIT", + "bugs": { + "url": "https://github.com/aterrien/jQuery-Knob/issues" + }, + "homepage": "https://github.com/aterrien/jQuery-Knob#readme" +} From cf505336e7c50e3b6eae1210d321d27832d5ff90 Mon Sep 17 00:00:00 2001 From: legitalk Date: Wed, 14 Oct 2015 10:04:42 +0200 Subject: [PATCH 46/50] Update jquery.knob.js Missing ";" --- js/jquery.knob.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 5294ffa..44220f2 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -472,7 +472,7 @@ // Utils this.h2rgba = function (h, a) { var rgb; - h = h.substring(1,7) + h = h.substring(1,7); rgb = [ parseInt(h.substring(0,2), 16), parseInt(h.substring(2,4), 16), From 28bb63e72a2de1571fd6d1e25d9f1855d820fa4a Mon Sep 17 00:00:00 2001 From: legitalk Date: Wed, 14 Oct 2015 10:11:21 +0200 Subject: [PATCH 47/50] Update Missing 3x ";" --- js/jquery.knob.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 5294ffa..8bae662 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -297,7 +297,7 @@ } return this; - } + }; this._draw = function () { @@ -472,7 +472,7 @@ // Utils this.h2rgba = function (h, a) { var rgb; - h = h.substring(1,7) + h = h.substring(1,7); rgb = [ parseInt(h.substring(0,2), 16), parseInt(h.substring(2,4), 16), @@ -669,7 +669,7 @@ ); this.$c.bind("mousewheel DOMMouseScroll", mw); - this.$.bind("mousewheel DOMMouseScroll", mw) + this.$.bind("mousewheel DOMMouseScroll", mw); }; this.init = function () { From 148307aa5475980dbc85133f16e7cf88cf03fde8 Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Fri, 23 Oct 2015 16:58:23 +0100 Subject: [PATCH 48/50] adding height to dial documentation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d20c58a..2257ff4 100755 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ UI : * thickness : gauge thickness. * lineCap : gauge stroke endings. | default=butt, round=rounded line endings * width : dial width. +* height : dial height. * displayInput : default=true | false=hide input. * displayPrevious : default=false | true=displays the previous value with transparency. * fgColor : foreground color. From fa1c321fd1a9a471130a1a56746462c8330bcf7b Mon Sep 17 00:00:00 2001 From: aterrien Date: Tue, 3 Nov 2015 21:13:28 +0000 Subject: [PATCH 49/50] Release 1.2.12, fix bower version and add npm package --- bower.json | 2 +- js/jquery.knob.js | 2 +- knob.jquery.json | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index 7969769..ef03e4e 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "aterrien/jQuery-Knob", - "version": "1.2.11", + "version": "1.2.12", "main": "js/jquery.knob.js", "description": "Nice, downward compatible, touchable, jQuery dial.", "license": "MIT", diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 8bae662..792313c 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -2,7 +2,7 @@ /** * Downward compatible, touchable dial * - * Version: 1.2.11 + * Version: 1.2.12 * Requires: jQuery v1.7+ * * Copyright (c) 2012 Anthony Terrien diff --git a/knob.jquery.json b/knob.jquery.json index 26564ad..c442552 100755 --- a/knob.jquery.json +++ b/knob.jquery.json @@ -9,7 +9,7 @@ "ui", "input" ], - "version": "1.2.11", + "version": "1.2.12", "author": { "name": "Anthony Terrien", "url": "https://github.com/aterrien" diff --git a/package.json b/package.json index 28b7fb1..de9f0ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jquery-knob", - "version": "1.2.11", + "version": "1.2.12", "description": "Nice, downward compatible, touchable, jQuery dial", "main": "dist/jquery.knob.min.js", "scripts": { From 755309e933d326ffaa5a2d758dc377147b766515 Mon Sep 17 00:00:00 2001 From: Anthony Terrien Date: Wed, 16 Dec 2015 21:12:42 +0100 Subject: [PATCH 50/50] Changed bower package name to jquery-knob --- bower.json | 4 ++-- knob.jquery.json | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index ef03e4e..1eeb316 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { - "name": "aterrien/jQuery-Knob", - "version": "1.2.12", + "name": "jquery-knob", + "version": "1.2.13", "main": "js/jquery.knob.js", "description": "Nice, downward compatible, touchable, jQuery dial.", "license": "MIT", diff --git a/knob.jquery.json b/knob.jquery.json index c442552..01a9063 100755 --- a/knob.jquery.json +++ b/knob.jquery.json @@ -9,7 +9,7 @@ "ui", "input" ], - "version": "1.2.12", + "version": "1.2.13", "author": { "name": "Anthony Terrien", "url": "https://github.com/aterrien" diff --git a/package.json b/package.json index de9f0ce..fbb4245 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jquery-knob", - "version": "1.2.12", + "version": "1.2.13", "description": "Nice, downward compatible, touchable, jQuery dial", "main": "dist/jquery.knob.min.js", "scripts": {