From 7d7ed5cfd78d2d3ec43219c8466d1f38cc17b2b7 Mon Sep 17 00:00:00 2001 From: GRiker Date: Sat, 4 Jun 2011 04:41:58 -0600 Subject: [PATCH 01/54] Added runtime sequence comment --- src/calibre/devices/apple/driver.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index e1133ab929..dea5844028 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -135,7 +135,8 @@ class ITUNES(DriverBase): ''' Calling sequences: Initialization: - can_handle() or can_handle_windows() + can_handle() | can_handle_windows() + _launch_iTunes() reset() open() card_prefix() From ca3694b34ec8e8e15252898447304bf4578f414e Mon Sep 17 00:00:00 2001 From: GRiker Date: Thu, 9 Jun 2011 09:39:58 -0600 Subject: [PATCH 02/54] Updated iTunes icon --- resources/images/devices/itunes.png | Bin 25603 -> 25638 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/images/devices/itunes.png b/resources/images/devices/itunes.png index cd8579d492e85aa9f8a9777aba0c7273c26f62a4..cc0493d9eb7f5cd2216323fec6a9b1523b57917d 100644 GIT binary patch literal 25638 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%0A^7GlpqpU3D^5tE+mp0MnyiEwrLO|!9o~^w3 z3;53V`&shEFRciAXujYBJdMS(fTH=v3CAvA`XKEmEglE!?|R7}Z&GqL+<*W5ce0Ui>C0aBva>d9+!SZc zhw}*c&96B;{pwAndp`Yz=`Lj6?_1DxnDin9c1i(|QTi+x;!@jVNHtdS$@6$T3z*b{ z6;M$a}ro}t#qhL6Alu&;Xu_z+RX{xI)@?n$8Ucz^a+QJPcM1SK54-B3}TwiZAz_XAUc;j z?8%xftg+Vik4XET@XVMb#V`PHvHgqoK2l#3+{f24RqbsY>zMMCFNDIA zFzGRbmN4WMp-}sE=0{n=`Z|YzK0tMKz?X4SH(I>`eX{;F2pI=|(;D1b!t2od^`vjW zZQ8OkZ2|aRoX=AHw2qIoUGi!E;}vlHy!2BDB*3^}%R~GcffY|JQ%sj11%l@cz|FB=?H9v`)PB+*S^&)8qU8_*t-!|q{{Dqj{5`a0tIxE}btriC z3-{$=5ucKWpaE3BoGMmo9n+L_&ldFXGv|wzZ%UJ&_<}TU=ALQU()(jZ{YZiLK4;;A zzu=xb((x~UO&WFLv(f^Lo?r=_00tlR>-ZRBJY6WjM;YP;c;h8(9W_CqPG02)TtF_4 zxTc>c)eJkBe6+onA+H~+*AMW%#q5V5%CT(s=WSPC&|(e%ZR%X`mBurFNu*$CfAE`| ziq8t{kV8kOSHJkcZ2AR@Jh2fYu@W;JR292H=pn8@ITNe10_Z|s5nOiJW!L`dSHJqj zsF489G}%tHw>6~q{OjR7;p2-IJ*WbNl+Jh(Mbox}^;I8(Anpe>4dXC;?GsE zJGL;dt+5307?<(u&-&bBz9wJIU$^#wwBX)5)A6r-ZJPaxx2D?x-;YBhYqjye0J$sJ zTGax4_{J+&?kT=QNeF^I&bh^dotloLvg{i!lRYdU1Z2(kxLpR>c<@S~1y`Y{`~W|~ z0#BoMAhfQV12o&xd*5_)>VWt1SS&`39GS#Mj41eLXa4na@FxYJDufuuTmY8FY;wi> z-uJ$XF*A3%&a_ibZ1$ctBE9otP~7N3GtdMey;e=C7Yg%4S~L*9t5jwr@K9 zUH|FkK)Uy?TVmhc^Yi%(J;MT%$6cKdi(=hPxgLJrQqnJj0>!KXWlwDNMrbQtr7fkhrha|iH~U(^u;=x@8xXVur6)jiyO_XwGVvC zGtxfKeMMS7dP=&l(tKy$emz96rOVzIO^=n7UB!jRAL;gzi6(~iA+F+CCbG>U9tn8* zdFhtZLrDSM@!X-=3GaZ?0THpRQ+f=O7N>qR9Vmn|eFk&7mEQ33eOaB5Ce5q|*{C!}`L&To&hz;_!C{pUjNky?gh?aPUV98n9o_TOl52jN7T((EUloF*J~QtBDMM_P==uVvDu*1HU2k4A;cgC5KQlMsdgRI5ZDNpXeX zJERcH0zf-T1TI(>ib0$kqHOq?ssLNitxw?jetq82BQ3^@tl=@S3p133L9-OwyMPzI z@fz?72Au%-0d^DPLyv;*j?{K09P5{*r=K<8W0v!SPfv^BbvS0cP0l~q*g_6Oq8 zDGOx3GW)LcZcl%lzXKtd!bTxSxHaoo0)?Q7j}|o{2wH<-!&}%%<0s8H7T%8E(b>pr z=|~y_4hAK}*m2k2_i=3><2$^R-|VQ$)2#7^;bnjF@*E(x={gWa{M9YTiZM!EZQrrhD$b`=;kV|M{Qg=+|vfu?&Z5JUr7+xwsy- z09d*b0*3-O!kiCG;|GY2yy&8f-okGR&)UpKn;Zs)@rKX3?t%1gpPQGizi%fyfRj^0 zH5@eZ%bE&8BLdLGTbK$%GmnbH@jZfOj*2(2>(amh5)LJ^M-Rgh1b-z&{>ewf?%f*> z`8963z)%JZLlDF?Ko?ZfEJRZ63VkPCrbeCu5YkfJmy-kV(0b~&od8{83PCm$gh^nr z0)Sh}IM$c2LJ_7u`!UuB_?Ac84aeA@HUH3khow)v`-n7V6wgxJM?j*T^sQdC>i(C! zMc6M(}{U-paIQ~@!u`O5P$-_f{-=;sDs+l zN8fQ+8a_t0WVUevACH}eBu*NIPbjk&f!JMvAyht`fR=#A=u15>Ic4ZZ~E=cJhOH<;C*>M zPK@K(x&oj;AOsDZ7ieH5(ZCCO4Zi$`1&ICEco7g#v;;IXfKa$Un*{(;C>FSyNtQEl zgMm|}2+r7-ISX-3ebz`UpE8@U+#2mFdKzJJSc=bWrMKILzSlVQ%=vQ@*ute)F5ZzyrD~ zX>}ovZP<9$&&^O3L=$?L*Iz9F){6|l>e{4GAz%uZW}a}u2`8}=bv7qq#`Llkrx36} zfFDiiGv8jEzI(+6ew=7BLcoC#g+TE26@U;1!DpTs0zeb`zORiS*;)tz*1*#iYIDRZ zjcuql=Up**iA6U51d0HdQC%7QED2E#kj2~A)Ad8+qY@(g4-l&*M!fuLn&1np0uowI z9YruI?QaMna0sAW0YCBp-toUo^z=E>%`zxG?NC^@TV$d|3R}CVf);S6z=t0BoTW0?>$+0dg8bFaset5g~XD-x(OUWh)Pf z7!G2s%IV*4{_=tJg&!|V{ro!3u+FY{sKlwoK|v^hYY7Z148F390L1fp!UI?i*c_l} z1)QiU2p&9)6H}D{2%_Ub0U~J_i^QYcX?-;l14C(A6b&D3=^Eq3gyhVcnAOi zeO(BF>7bT(h%(5<5-0!xI(}$-B>;~39O)XieO)@|MYGe(&e#J1bf?v-JlxUFW?AnV z!2c@XUqK6taAmiTn?v&{{nuZQSO9FQP6*s2(h^L-%{cPNBai#+XFvO@QKP!1Y~&}@ z-NBR9ZWjISmd)v--&mNIb@S_%WB4U2CWn5>$|1oQ^tB54<2+R92lv!?Er4?Y1wvsU z8URzL$G-;Del=I1;k{Qj-yo%62)3ZrE+SfvN&p%JP74qMP?c4yW1YuM-dmN)!vJyf z3+R>h=U4NL8zy2y(UW8kXQ}Zz+j~smNefY~j3-5X%0B|d?)e$hthLjqe1z8~PYk1)gs zfkXQN+~=?!E7lT_Hefi;nkfhsh^9GVlp6RRJ`y5sq2&rlM2PDL)%@{(J(qFy1V_))rU%jqhj*rT zzGkm9Z35feY-LKGyPso5ccq037v2Z>7xK2&btEswxzWRo8GL+)eF%AE*Q2rkHu(@j zpe0ZU_82o}%t7o>z2wlt4m)B!LJ%K^B15I-Q_$&qm#<4-zGOw(xP5qP9yJC5K!y|m z<^}P&4y{5R_%R<)(*@K@@cd3-Xu0KN1Fi@_7EKC;S+C}bk0EEDU8d(?^^UHXz=0{iozzMv5_xd!lwI`kZJkAY1bs}=gIYDRo{)3*; zfPeE%H{HOF>qYCmh`|E#on`skpt*J@?#aopHt) zr!psK=|>yN)^Qte3f;YAd;0tjmZmFjqhBM&usWT{Y1w zlf768pzX!vm&qP4ZzPU!9e-G7dgF^{r+sI%hRKg+5Dq`nKfI%T+fRP-lVAVazx|sJ zckaP0!+EmTEncK2Kje8dnok{ZJ!%V3t7zzOfC|TR12>B%<7U42#V>yHTi^QDXSa8B zjNQ1gyEY`aU!XPk)gQalSAM!Y-M<=8csIY1qvIg}3W1hEt04FhF9LwCb~{Xnq+@zG zqFP1g1eK-8$}ZYm;brq5LV*CpFyOEe3mnSSoBq)Lp#l(QzMAouef=2IivXzUAs|=) z!S7{;ziBP6#-()jb7!Wf9LuZrXuV53FSmBPcq56=xUc>6r$7DUZ++`qmy^5@w*u!T zkKj|$?gO8?c8>+HBClO60csmNhNyHrJJ@6Iz4ty8Yw+v?4m|K+g}}Fged;G3&JEUY zZcIOzyEc9Iw`+N{%k4ZFY~bYvf4~}v$>4@nAkX=N;0u^(B3#V{sLq~6`Vaw#bjtBR z*dCKWA^@CUuuuSqM*&J`@?!`fKg>V*VZ!SzK{fuD@jZOfv?}gHb6_QPuj6%i&Qbo; z#Pqz=CZ;iLr1$#Nkd{0!kmGkMFtXo}0;9id%)_kyjk-z?|$}@TqV2 z3P4miXbDtHg}})nv%J_anu0(3UGI9=sV{obi%#RQ@5u5DL7t0;D}@#72GS4bu1OdF zetlZavFbE}C8G}rETBd!3?UGX*VTwB>=rPR zqdp5`0m3Sn9+Nc#2e(R<*p=(Dv6LC}7K0f&U?|=W(4nFvhL$>y8ZS3(oK!VGqLboyjT)BQA{rnFb(@(D6 zknZDsy7)E$PY2yQh;Qo)Xqb9#s05-m2Qbh25R4E2g&>-b&-kaBBSqTrv3p{_Ys>sq;bCV(d|Z=0_}h z0JRl6%4cL;J_g7R2e#s+`PU*un#)5#t#FM%E$$5=0a$p}hKy}wIo~;Df3Pc5d zfKEKdcd%j?ud{u7dcuAk>7S1qo1Sn0?+SGA`$+Y`V;^*juyy~*=e?d@~lUv)jE0w5*3%nMX;1;M2vAAyVA!%3~Jt+U?pmbX0V zInQ~{aa~=bCv>xUlvfLR14%&rsFa^TUAAUNx@z8*bj8ix>9z&EyZ{1V%~Z#RQtThZ zynuG`<2$-x@@Yw2y#(J#5rPnaN}G2T0JYpSt&9SobBy-^4sQW@P{SWqIcQdUI_dCH z=~xcO?lImjawyc}THZ(fp8fOHv5{=*Y}l}V^^bn^qpLpina}*5&$iu9ft5IS^;jO% zwsn!R-9O$_=Yy`tTmVXob=IH=fpY^ljvN-o<0kTRrgM1Eam?wbpZ)}X+<3wkei5^W zV?OzXOhAL54iCc+h8_G^)Cx|A+_s=6U3b@(bnAkxX$kM%vHQ$L6R~p8LNE=fEI|$Q zGSe@DAjpDi17c=+XgpvGxEndH-T4W;4qlI+HoiF>Ji9#|xnE~Gcuq%}JeD8IY|JNt zodS5dH{%|DJ13!r^Tlv}sCo6zfBy47@WAX^KGkv`MKtvSuemQ9J7t#tm}))k)vmvp z0N7%kHPH4tLDU+QNn#O%@uNnKn#JSJ!=L{2ryn(W^5kj!+*+e&4LnWjvxRag3@yz3 z)%KpghO}z^_OxJmAA1X&K3?97wb+(c^G@C--pA|d7gX-7%@VZ&l3|(|IDL|xC^AIz zmC^<#aZPFJxYo4i)Yi23w6-*BN^6=l+Rxos+!Mf@`S*723qygn`$TaBza7Afq&ruv zSh3{NOE0~S$K^L}+_+JV7xV&rndAw4jP>}BdUJ<59`^M&6@Wt3F4mw}1XvpL1NRPm z#O!Y3l;=M8x%)rwxz9ap{{s%#r@g(svzNo6Jw3f)UdsoeD3@`gCO>QAmq>R4v^%j| zdIuOLcJM;Sjlf|ND0?TC`{}g#_IlJP&L*#%t;YUTrTLZxer0 zt*5=(^>-71LcuPApf%8y;larw)2t8%hX~!+S+izMed<%6I_KD9kKL1N8bihyz-aN+ z^?nYcIDw2$&QUl3M-22s8Y<0=F!{C1bY&uhKwp7S9P$mGZEyxZj4f%u8iLSm!=$g9 zKY#v`tFOL#{x5#ja&3VQq3J=rxTe{C5MMw&VJ{3qXyKKqw&4 z8t9536szF#1%-i)fDj1%Q2;;gsH2XWbj&fw>~YXR2kkL!+O&yd#*XP~Yi%3B*E(9_ zG!Qo1O&2F+ar%d`J7(y0!eI09nwmZU3-aK-+xgM%-p%XQuG@f?ue$BF+m>E??X^p< zyY9M`2!dL!S$D@y!1V>)b$q?H3%uI?chz{>A96iz1fWm_5b9xZ3PBMD!)4N_FlZfy z;}i;ghYkHsRuH4ub{;)z)~v3XGiQ#TG-=Yvv17+}jvP6XX$0TT9>zMNv5`5Nj}@`S zoC@VFr|rB`J5GDC0002GNklGgnzrjz%$1RlELdfW;?Ay9u8VNd{y zD?ru@g+LdKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z003DoNkl1Q%Y}eo28h5!0J+~O*g`PC?j;xy zh#5?13ZlaS;iy#d>h7R8y13k4di?DAuUSc_+`oD0U+N#={k!>M0L%b0!?FdlZGf>? zNIDV(>bgd#o{}WNv06PmG%=pcH^*Zd8;dY85d#AFh5!8LZ+!T~##g$6Yu`p0qC$;dJu|{-ktP$;PG~;k`Dn@f6Mp6%;0)o~C-EM}B z^#LCF@)Ev!?^!IJYaK$~`yS}Qul|Ds{~ZCzV1OAGRtfMJ5j9BA0ZBL(#la166kJuS zhew*tcz$ZS));F>s5K&lk%S5eAO?f6*-G)qiB&8ub+NeA$Kqlat<4mJegU0pNHQQI zKo_&XH|8__1HhM{TEPr!0a%U+v{x`+CM8`R2J-qSQdcBNxOc1>kB?6zw7n4GGi z(Tor$5<&o3uF>vfSXt}gD-SMWX{m>`wE+Z@YB9{84_J86dV`Lm)xuwF?++9Kip#sOUJ3XBHL~4$sccF6`a6 z@5s?3M~)slcEyoHhYl?qSU51-s5cU+q;L+6wIDD+AR% zVo(V6_}R_DR~|aMer~PE$7c^tk54qm$HqcTOeUz0MNol&u|QrJXyX8T{LBWxp0Jw080U;Pgs?i&ya538d z*#L{l$%!j&zWM3Te#uK-^5PqByz#o3nb|#26ovIhJ*?O3K^(^_jv@gfGRCqo7RDG@ z3u0!nmRU+rKeM>){xF{LX32UvUI`rkgnO)EdT` z5vfp6k!x(WQmn3Z@W`W!SiI21@=70_Zh<^AFcuI}LMZ_iNXRgR6apk@bkOLG@=WCL z97-#;s$%AfbfOHOE)rb=gFz4g^2}g;V*q0q5ajKz`9DX3=jZ2ddiASc{n}T&;*~Es zcI@)Y#>N_|R!hWKqY+6JhwJSEC(iV+xV(tgdY_9-lah=$lt^NUIF=Me0#PU_3MzgY78_&y=?8J@bRXx=cd@kG!}>;wPPc&83?cy;NT@(UsQ^hBfh2)Q zfCT(`E0|&kDz*YEXve(Z5DKO;t^yN-m>kHZcvJaq0YSiEP+()d?;JiUyhiXU`tP{} zH*UJ=re{CrInQ~;o8SDF*Uiq(HUmXwd}2JxbrNs14IVn%$I0`n=yY=^%SZykcrBvo z@fcAc5GaCFfRY5I2vP!45(EK~2zlXLmM?wzEFO4x9ZV8JDX2g}g%VLcK_bMC61m%J zC6FY1HHg)Uctu_`H*;pO{ic%$) zQcPRyu2TSn{=k`!qA&mnK#}{9EWGO9euw-$0eJuX{+r(Q&UgK@SHJo@Up7A84EE2? z#4=9ezkGBPpZ!`38%q{@qZo(wL}{19b>CVf1>%ae5+&tvXQKZR!?@^(GWFx&Z*E@{M6^v{H1sxkp6# zTqh4d%g_X%bhiE;08B*VZ+`Qe|LG6C;~j6F-?xAAz~0$7tT&Q7&$jSKUp<4f=QR!{ z2`-ZM^&bv^i`_=GXOP7=g7&uz;AXRV_&@%~|M-FDzu<+> zn3?($ zF!Z5M1=wm4pBX5d1(++~Ui63j-2pr`HFd>%-}`g#f5}T;ddtDRduv54ihh3SB<@=5 z;$W0uf)qqfU@L~fyya4PSr`xsB1k4kHc+G>3_+5M0a>}9VK59kAcRlnamA?_J|CtJ zM*x!)5Q-qm5NYUC?cfp9);#f6L8VcIGmMAb4Odu3npt#vIa(c!H21{;DS=urvZaDX zz!7cr%&Y~pcQ~xA+ywudRP^(o|NQU&=RffiKlzNCpK)yO>}>rGxi0>we+r#K;F_d~ z!1=r&0ibZn7;9a7i(oIEuqc>7WiA;Ok|kgO&Z&vs6G$jHIEKJVrog4cYPT*GFz&MX#zlZ>( zKncJS;LL)-5dI39GLz%o5DSZ(0Lehk1OC;_8+`rs*T3T5{M(=Yse=m#C+7Cfj{O-P#9v_p2kkUiOBWf$02l5Kbkb#g z7X$&u+fom(Q@|D(2$C!m8%TB_lX0m=Uza@hgPS>M)1}EIaR) zy#zbGX_2#qEFCYaK*onNUR4jTjkkR+Y+_h%mq7wTNvJ@96@dZ)QXXV60#ZlK~PPwaY>3i8qmK!6~P9C_1H!1}bEVCz6FGg{UsfQTTKKoCm@a412_ zflQJh16NS!4Gfl+Q*5*f404M>W|8Lp&XEELLZGn&ptKFpp@f#UwW=CQ$H}{&j*i#%t zf1n|9;ro9Xf*33qObQkff*BUWz!hw*Q{$D`)_65d05UQz-i1NH0%U|22!<6dt7G9p zr&1Hxstr~GL8M?6fg%Y~1QANekg&3z;ne9qmRED+xyxe@CA22DNv0V7%@;`~iLGJM zFiGyEP#fng83K%OhgA;XECaH>J4^~l0|X4%qD@KM3_^)eNu<3Dn!oWJ^fv==_@4Lt ztABm%wbvcpyLYyEPxnro;S1PfE<-QX;N0hki9y1S5_n`mGW6LT0Vd(>9gET*cGpGw zo5I^=zz##Fj18n!5SqY(-0$!znS3sQjE{x=#g|GV2qlaHC=!s7gb~0!_iy6#nSlc( zR6t#g>}U0;s#|Qcp{1HN+Ns!~bg~1}O29}!3!q@2$bmrzNP9rh2SkoWow0v9#O3pK z%+&?*l&2zvKAgZ`?~)A6^(2QVN_pu?B5rd3u}xsHAEmEG8rFb*ezbP04aiu6^sPFeD6BWof)_cl9Dczk+K4;906Ni zNbM63We8)~9lAUdUKp2z>23ClTgwzaHjN$ADJ1<;&9EK`7ln~y@y5p`TTsWTrwa|mA08#*?_v+!L zFn3aEN;@e4R_-v;No1A*Y2QgCav(66pALjxeoFot1_Pj?D}QW7d5Ja(pw3#Ymc+|q+J8sNf7p=Bq9RsskB8vs^# zi7bGu3+O%|QcTnh=BFgCTu5-kktVJ@*udrU4IJKE!&E)^rh$l}5Z7OSEk5&5u3!hK z#R??d=h#v%!?!pW{iZj)>20?>^O;YZnVB5>{Km)73k!t7JURn!s+hrSoZV!GWfucm z!60kAP3B=OQ;-Eq_Nr8Xp@yLpn855nX2U4|1FV;5g0u#TB@`@7Pdk;H*(4;tpV{}!CAE3drr=|A|Ew|@WpzWJ$^zJNtM zj-;_4{X#gfr2ACX0riN)-Mz*P%1 z99x*d(S;_C?r&nM5g@35sNsZuP^sdTx=8*_n(v2sJ%%Jg5-V_7${gMS5)i?+PJ&pkfWS}zIj_~nvFr==JWNBn7p*a1VVs*w7A!1?y~?Ht zLNP1_U`P+J7`AJO43LI~b*E8hVgb?tB3AAnRxVu9hTZglcY38HtgrQ9dINwg#$(1y zo;{7rXCquT7vS(*i2c(cYOz8PNW@WqAP69201^rWLZ)4IjVk%eYF9^@c@*DdJ)qiY zr78uaI8v@#NBCHpBrv$Z7%YBk0N%H6|5Y#h_HTc|vjMI?7~=y!x`4vp2*xmsB^U-+1KL_BZJ`2-Ft7-Oa7_VV zUy$%URol|o-we1_V5g@HtiP? z#FLPah$X`a7pqI*LOo;1MGJzRpc;TJgV;cVq1pNdIWM`w4s*|d1(9=>5QM(%#^;sU z*MN=F4AMJshFAIlGKxa zeg~`?K+-;h{=;Y*#qnB>;(Tq$C2J&Lv{&715wLq~*}}rQeqZ8INabBA64ryPz*e|v z0tT!l*o>hpAb2FAWC6heh$X-l+VDt%{gtuC0y+bV9#A;VG8+BdZvRH91gd<4eHg}N zQ$Xc?-w3!RpaxrKl7{tc;j(gNx5<{gM!%2OzV7v}dHnXxAN=!Af97}pMgV{BYrpR` z*FE*d>!YwEI)g8Rl1V5iB>s;p5AEZ7Edgx_S~H3=gcRiS0}Qs#J+Ulc+;lqx85n4k zB2Um@3PDnPkV7y@cZV}z*@J8VuyLvz02zX?3Sfz%urQ`lLoL&XCil7CvTkL4IS(yweX1r zwywQHvw2XI7XHl6 z@wC=LO95ld?l+9J^1`{L^v8buov**`FaG@F$B!TX#5V-65EQ)p6|a2h?B0EIHrqr# zScZ)fD7LN~C&~$$((5B%0Rjq;0~tV2s%`-k)*Z3{3PC8e^I%C^*Z*t{j5V;(U@Ab+ z05pgS*D(-iFh^i0SO{1au$EyncVQR;#0I+9Kv85^?W|thROLN-wu~Y#kQ;*mr)al3 zpjCk&2+$a-V{&>5voq6(#~O|?$8x3N!-Gq}6Gft>)aq*4*YkChfVx_~0~IB}Y+(%Ng#vO7c;uv%Dd&PtIA5XsRInTS|4R3tYd;Z&pKKPF=8Q{Z*FFU$_ z{=kB;K(TQOTniuv!}Jl1B40aYkRp(DpO(eQqckp?3+0oL+NI+mC6Eh135F6tCS97h z5H7W7wSj_l5()zg3xakAfUHZFgt5CoHiTh7rR%Uo2g(8g6bun^-lZkdGU6mok6eCu zv7hED&9boHPvibzQ0otJ6^1|}t1A5`F)<#z+u0?6P(M_Wp) zH6sD@YPR%ngp1|LjkHZFP0^ z{!0RQ|NQ)AQ+sBnxZ6U}T?Yj*6#FEFAV4{wSrAAugz^n_5`c1rcp-S${a6BCIwS!x za^>u^k_;soc>&~tT`a5tV-1*%x5Wh*8iF*e^!7PQV6_ES*J0BxBm#f}Xlu~R7z542 z3fQ@q^y2US!;k#IB>^m+@r+xZR*#h`&Ygf^15rpo`(VPyw=Cd5mH_)RBw&;S z-AV#Uc4<>VP~>u}%D3F*015)K00<=`mq4mL*c!++gN#d)5f>mXz$jo)fK&$93|Q{L z405mtU@W1P8iY3BmtM1HWqB_bAN%Xpyt}a2(n_0W87-bU6_E;Ly;hS#DiM*z*z}k= zuy;?d)g7GP*w_r#*EeSd=^(1tYv}g+c;w;JFbDTx|4eguu{3~;eKyZnuUV{D#qRk~ zYW-_lq;@#&!lRho=M9*h+V+GnTjFk`HO8kV(cWmO^XC@Tn||O2zxR`$`1tSj`~4G7 z2yl`llh<8;!_@>p_bz~=5DEgYPQ}2PM_(!O-73;QmH+0fA;@g-dZt3ka*htYN7DQvtEsg~>EH2*5;G?-rPh>%|+cpFexu z!Dj0dcdhO(C+fHIa1t!rtT#wc=0!hPTW%VHfmE7WAm%i(~~DI zTv(pkZ1rZxC&m#c36?h72$aCgWCIz1)Bw6*SZjt7tF85R*0>zJ^|schYq#+?Y>{9P z`J05jMd2-z8pBWF9kiLfvpD_-@kAF{63R2 zQtH7bH3*?V#zJ~W0G@t87?*p7b|%>Y?xfZVhL8j!-9&lgk%KL0X`^Piq0Af5*lJtgSrG839x2tB_^ zl^`(Tf#c^ezkeFDd-tHo4UEw+C8%tnwef&gov2Z0v|Gt<^d2!Bj2U^~TibNVr!Au- zMt!UyHr6+LKkx%@{@y?Nqd)pDTI;1<0bV$G=s;s^d|VfO^kRkx>n<1UyaotsAuNM< z)Vs^Rcb9B+l*6~~2=;(FuUjaFRqiHW2~Yq?!I08Pa7fM;2OtE*2)smR1<==wG$V)& z0Mhk!rM7^Pgx6kq?S~uN`L=!tou(h0KSy5;fN=lj3k}#>&2#mDd zX>GPUy@^4Z4JMjnV{wuk-aj{Wdb8a>vEJ$(GFnShWO(3#b>z9m%R)Q9nhZDXxX<}*;t4qt_Raaeo@Y}xaIp6iy zfBl(X-xc7?F1zfqT3oB;riCJw2!q6TO4wmujXcQ0y6h17e~8$EEc?TPO*sw7upV$L z9pJ)0rU0>;D`NJ_%jzy2VO>C4d^Z=%TaEufCPUtCnEr!B*4)yWQ@ zcC{{p=IpVLnX5m~3~AYo{1}Z|7$Aw`db`tY{m>8p@LN9n*}wiUGq-n<;Dhr)5JpAO z1qlTq0tbue1O7FJtO!LE8jPNKCBn~axkr5H*&Db6<~lr|93 zU4Xh|+&q2xnq@%eS!S(H8)MC0k|Z@L(rB21=E^{tAY@raCr_OgK@>;(_U#{UjxA89 z(_U`3T2$ouLAG`^2*XtXHmTLlce>p`2)Z!Vz=1u}laI~pnOr@2`rMvoBf&O{{@Dl|hF-`Qq)H1AwuY~A;zH6Wh}ivx+CR0#n4 z%2&PWJ9Y#(48z9U+}>FR6Wa{ZjeZSv{uYP87onMWn7d@+inRM|3`?)d9k9X}m#Oj+ zPS${pakr4R5X7*;*=1D$oC5}00-+~!Fq~t5vZvS+@97k#5JuX)hU8Q} z)ELTC9OJ(GzjEJ8U+}M976w7GcmMuBYt6v2LdqMWMo(lczD>s6$CNl0#+ciAr0^L)BU~ z3=ALBh;C!p_9GqHxEt_y&f6A0nqA|eWZyyqi%1A0aV$EW9zXvDFL>tr-}g%sS(a^X zsU`(M(5TfLlkDeZ0uCS`AX&NwHcMjpgvb%|1E>ODArG(I`#G6{;dza|Ao(e&hy^-gKzxT z{cd||c5bd?jR^*W{yu=LkTOkbwdJ+-%@!M7)Z#F@=IUeTvu+Q_GYmF1v2yw>l-7`0 z4w2^&MGlqcP+1P43&!{@>jki#Q~uo{BBiZ<+%BULAwA=n9pgoPvv!8z)o zgk_FqXXj=P9X|Zji^_#j6va^#CGdrL0SBt6{O4d4{{I4!1r!I6EZpnmjR56=_n5<+g5nU$1c)*Pr3sN`gocqALPL$GE{AIhW`>kf zsX#?(nsv$|+bFTmqv|~~;o$Rt1JABxFm3*qx83%!?|juO-?YBA5;P|!mW?(^QRHLH zAfFpMG+BE0Of%dWZz;IYP79LI6s z94J6QfLK7VfM5y1<#Xv@a{vpFdu*ixngyg4qsJ_uSR!Br$;wN+16_&$BmxK-LC6RQ zA|Qw%!Wt;3frA7HVn9X+twdx6VoRu5iAY3+(|i`zS|x;#1fVF2%%@$3jtXxl(=a)3 z;5op|wOdTj*|TTv{pI)l(r-^qO&t!S=v+}0)8!0f6h)g_8%wZ}R8sC=*uROikHBhV zofZb|O@t_**a0bR4#5Q^7YI0q;=-v`Xb2cc6cA)QZH0EPlLnFT-KkD`Z5c-oAvTbt z0kV+7fh>iELXJ34kV3^zyXmHzE&^BuDv(ktXGbK+N_Y0ESXkxAQA*IQf6Ype^}t&R zVVxvPt01g|vdTY~P^=)Wg0d0;2ar}F-~fsP1PBo#MnEwnMNl$Dp{~7*p;zOug`2AROEBoe%&1fB(=IzHry6 zv9YF5QWnx_W<)ZA<*4w!`u(I>&hB*uQ8}cMkS2i83ep6S zCV(;lln(v#5X!_*Hb%fP0u{bV<7MBm^OUukw+d%2Wde>df4^H#6-l}n0~}|OiE?LdQ|lK{aC34 zSx0i^Pcg1)C~MDRk}_%=$CFR`WH+Qm^L3BKs>2fH3NVSLMxQ`;mABvJ^fLxoXz z?X}lF<-~~-w+{g>id<`>jkRovrL_1IB!!Uu{-7;{pwM+9h8T8JRDKT$C$W$1 z4z8EtzR^WaM6f(6))5hmwZ>S>gn%g&Iu|KONMzQcussNhV97N&Io(K={wgZ_LMmX} z3T+cPRvAxzW~_B8x|#y zAel25>zcmHWOtc{8}Tr@avWjQjsnmyf6A4nwPD_xQTaWiHky&7)3DR9B=B_C!lEz^ zBnyS2oz|l)6Sk3+~Got>Qs!pIa_LlBJ` zzW`*2a`d z)CETnPJ_{m_BI<_b}I6&jTzDFUjN1yk!vqwA~HjKnJq~{3@TtPTKR?=$O23`A|b)1 z3(hiF5{|k;O1CvlI3gGl%2nM+I>3F^fa-UOc-vv_UG#RkMz>t9D3OCfw6L(SUnw=IwO;Yl65Q{!TP13tIJ-Uiu>r?C{|0BCQf0z~X|7LlE)dJXlfxOUQA{5Zr*zD{Xn{2Gr$Hp=UIh|+O zW*o-d;cwg?CY9ZlytTL8-wOr+Ui-S&|L6-|{E}yOyWN4YMg=k`*cnwv;ROo7$O@gR zwZUpg3P_<51Oy%C$YCI?fPtf&aHQf6Xco#{Pw5`B@4se}eu_}|E=(FZS=;A=889#~ zejY-jva-{zD;h?*Q58>`pr^~qMNwNmDyi*x7BEizknd>RDn!y+yzipnBa3En8T z;s;8^uu4*{hOy;tzX~I(`<{fYQ0v+fY>Ws#%l9$^5CXwi1N~NK*t^`#@?^8spGay+ zZ)$e`+~Vouy?RYOHo6D5J1GQW8~N$vDmQ*uuh);g`a56q1OMbFe)4%)mJYg|&UjL* zwS^R+AQFYvnZIwP5Gvp7o=?`Y^>DIQhc*VyB!q5Q7;QmDKpFDkqku33VO)t*kY^K+ z0zxR4+7$v;2(XZ_hQQVdh0(4%q*^esurOqxNjq?TE3zeqAp^lFlx&J12%@pEv1Y5) z8dZ~yKla$;ZoJDS!dxy|RxUJoNkc`_M&+-eFcW(zE$LJ+nojWJAEgSnR1TYNrABh^ z#TMSkWPA+$yg;67e~lRH?ZJF4={z<)Gd-BzdtiRBaUnC7b(P#^I9!xvxccfVuYB8& z|H5xPe&W<-x7#TK6^Q)@4m6*7{SC*izUJDv+wJO=<>l#mz225W>aj+BevoFJVlXgL zN+DFhf`s|nxqGL2&`6|o3IDkW`2>M81{sFba8)0}kOm;@_`U>d2qOSPkR%~UzzTx$ zQZ7kA6p>RYWhSd~gEA~M7hZ;))LTD}Ysdn20I7tEqDbx8vuFD3*|Q^nA9?uUhjfu^ zsba^9gOWvNn>6uA8g046iAJ+EL%Yn_CY6=fXha-ZYKAS9y~?CrOgmy$1?zI!T)8|agO2noS~8a8Wg zf+MhwFh>|y9g@aB*A`?6(pbmfXWT?248W#L2otDq*TeyAM;3+14GR=0py8Q@M44`N zeW*4=B!mzoC`ppWmU{5XlP8a_udS@j?mIN0NkI;YHpNh)*cUe~M)sIXX&w@qk+-oW zAqpyX+!wQb?QBSYKWwGn?%s+a13QsGW2}Lq(CGCBP<{fT(5Bhz(;TfXpIlhjd)f3{ ze+G7ANDf|gvaGdoZFOa8kmY18vo(f{wJfE|>y3K1UT?G;^?Fk&6%&zNT3R0T2mRW_ z8wA85BLpE}ATXZ$+5o~3l!osb1*B#O zxqXL@u#jY6orfpHHlj5iRy~<3zG&mE6`X<~9}5^3SaSHlBi zXt6}dj937nASA>H6d`1WauYbP1`wJcj2pKV+7Hh8IVE9$Tro`G`^3wlel-Fx8Zt{E zGw*#1>1dV#7@NV6Z{BuuS7LkHZ2#VS?)mC-p7-JxFv+-p^}|_Wly5*qwGIhx%5^an zsjdjj?##b8Hcj5P6;tI^FIDGpjRa&YC>Wk}wRzgNF{r zDu^H;dS5#E@Wcl{|B3k^X(F`&^uS>9Km**YVWSH~fk31Pkpu<`h=uP)0U?41x*WMG zRk%M$6QprLt4q^ zhzyt{InL&xJLMgtEqz5y6)(BmD=^v%G#sAxuMfK!%5RWwEvVA!3*l#h2tq0-As~f- zAOVsJ(=$yp#~WB*>p_JIRvTCtWie1H00?Zfp`yrD zp6C1WqDZ1RQM0pq)x_jfXsvBoWBPyb^#^8t>saX?s6``Hy7^{Uy4$mOV2}NO{ z4IvK*nIZ(1kSHLQ3?&GW0O|oyQ?8TLcM?M~TvLDsIP-JYHBX(){_n3)30Mi}z(S|4 ziGY0A$ChF83?u{BMQ5#HYm18je&mry9yB^17%gKf5E^FRVnSP_bwtBRL%Zy#2jFwD zJiOzEQpuy;eZyfc8l@4bOyvoJ5KdYJIVxc(gnLaYs4zer6J}}&rjrmS7u#sJIv5Ok zkeorAOb!zrc55~*jN)W`&)%!s?XE70LYMUk5hh~1IZ2Ji7?LEmg3xDMES+EJ2ETv% zS12?WO z?o}WGAr+(w5QGwONT~Y}&RQffHJxB-c^O%nB9dlA>UvSC5+I^%Vq#*wF+LHpg<>!X z0t-O}*k-yY27|#M+i0ii?gy7=KKg|R=PslzH8!&cGGLf&0G1Nmq=QqS*Yz$N%h8|MVx`b4Awb zTWAOyG2|9X86K@4@hs?N*93XTi>fNP67q=QET-79%(3*6ourO{bsJKg)J72@mO$)n zjt0=P07Qg^1ADQuyn^n=s%wDr7e|-nHgf&co2_ne`yF42qA<<^74#)Zt2Lw7({f`o z3r}6>?_FxA(S>drEv5rWV*w^6reQgUO*4pk1C68CB0eyMJWs(&!B7f=9L8!ytkH-J zHr54h`~3z^Jy^r+^jv(ID5X2FWj?%lP5B$ zDT8jWKorVRn8XAd3g`wQcQpqOFo6q3#u`yF24k%5_j|q7)z!5f2f+XIPyh7K-udo- z{5ET~w1uo$%OjH2Qc{VB4P)#*;7a@P(2=5HzLkc(MJ1TzcG);jSxCRezya&HCKaTV zkby!R0Wkqlc_Vso2LncyrVxTKH#dXni5k9q`V2t*k&3QlCbiM(%(?S>)1F1qXAC+( zr(-cl8H1dVONBgCu(85qvw=)%;&B|<9Zd_H#)ya5fC%IxIon?3=h479R4W(8pg&-h= zp`(ZhDwFel3k(Jpd6vT(4Py+LE$WRLX6I%AS|4VEs-cDugt2;rSQ^+E$RePYFnWCl za8C>Lm@t4#6-u@UqZ)#V{RpP^fLXwHjB9Qn0WF35%Yp!5P2sDzhq&{<3Ox74NASb% zx)wnw(Cujy1A{^{3hfwva&3`m>!p~HW(I@Y0D^GUH50hw&K2l_v9!|nQHbwvm4pHW z6M6DECXh0)66k|46;8nvg;X%ZZRfP|Kf}CHaYWrlgVxLqaH>)T%1D4D?essc&@QhP=w+ zhjAR#aC@U+s{_% z(UFr&$hySwyBT->I^#93zY4E=(=iM(gKjH_wibnEwEL&&v2QMl>JJa(a!6FNOWTj5x1*!a#EN0wNSLLY>TgyRYE zbj=xQtElEgoS*(*#6LO{>JbB!ux*phK==>9P|bvNfJm!+dN|0 zLg&X7T`jiJ5tXs6v$G>c8}c?-DhZ|BoKjUK4^yeF9QQri!Tpc6aCWhSZt98-lg$8! z=Mr4DKgLxDV#J|ifMMYo>?+jyDhMz;y9fEWqb{}sfxHj&`#^sH^i!Z$2=uK0*dSy= z3<=9>R9j|0%Ab;(kxmHreyoGN6JvPZiw|IRJwc=)=2hQt5@85j!A`IXG*2m@jEBjV7ec{+IXkw+fh3E;}M zKG=_c;uC-TWAA+T4>c#}u1vE$?hjIoHyan*;$b13hF$w*n~Icj6hwJ1TMXB zcVJ*397hQg3L{WxLRJ995MU>{+Ay@{A;;#K^95Gc*>O-A?d_oN27&Yd6Eb##^^Wb@ zUIpJ<*1heuac$L1h;-+89)E~kKx`ET^zb<3g7qkYq78} zhFU#vfqmf?Q4LaqwT%>yJ>J1RU){i&ulIo1fp6{BO`+9K$*ut$LXZd7fh;u;kcB3J z0LC%O{6u-Vb*=bo9E2!$0Wv~adoj~1yEhEQmN@jYsT z3^>22vAE*FC53^6DBUJ*5;l@qhQ^nPo*KGzZN!LqY zOQ~)5HD3SIU&0q3>)@5Iy&T{D?m5)QLKNC!kZNR^L6*4?BQF?vZV*HY$F7{f{GkRu zd;1E`p6;X5(GVit+T=!5X$A6qZVFI_5CjZWxWV(nGQtvE(nDGqM`!FVz9fM`&tUcO z42U9h2f%vEVxZlg#R7!fkOS0ub!^IoD+J4gLJMrP8H+27EEPZ$xd`7B<(3i$wsbVY zniSf)fXM+V9794|YEXX$^E8bIFWi6OGoSg)XRAptv4ixM`RjOPW#xfie*gP^@9^OR zk=8}p*=(aIv{PkrB!yDQQF>7bNI_6#s&NRY^cg7$5?oF+2EsxTLy<*57K#i)5(r5mfIt8RNdiUBIcbm*i_1AWU4wR)(dseU zJw~_B=nUM^%lsg_0lFD*ZXI~|EaTJ?kg)`kz%2<0lsm_PJ3{5VKmvqKLaPt-azeiV zdO2{RusEC@1o9$ZUte2Uyl~<1?bC(y1R#eW{NM*a^yas`^}FWgrWY0$*LZVdllJc0 z3sK2_locT&s&x961q3lnZ1@fpw=~QHTi#)7odPfUM|Yqj6@L0XHz9}w)?1kiD{>bz zmgg+@((8{jA2~28R0xw0*+7HgHh^yJNv<>;Ra%zCu$#uwJQ-u5$+|f#a%<*eD8HoI zpn!nQa;Hs0iN}r)Fg}xFVy1?IEObff#stkkW`KSMvS-udo-`u0a3J!O{9FUne@j%K|+Vu`7= zmXxKwvLQrD&y(dp+xDK--}{TRxb2Q*{PX|tET~XmZ6otG%K?}bWvC&MY2iYS(qSpA zPas&Zl{mXnz##NthW73MVu7_UbN zBZ0gyfM6J_ap7DaShqmUI+F8HdbR7FjUky_1ytn&eCaz|GIIG?!$59<0b}7AIXZHu$da2s-Wd=9x2R9{uDeKY8nJY_s$PhXkO0<(J?8>)rOo%GC6DTJ%#a zUs&=v{83qNct|Q8KetfKOYKhdyMZ0O|l5{um>mK|m9raeyWOlt&Zp{mKKI zS(n~wY1H>-h>zr0-4y7ijDE^kw+2a1;VLb^wBZiMzWn;^ee3x8*EVqYa1*`0 zMyIRM=^AwUK&LOz9Y}Qh3Y~#MHUh0n6wZpREsj!KGz%N{w;UmzrbqgPCfwsHx_1c-oL*{cSiPQVy| zaS!SwgC-f6WMG1UCcDgz@{<6W1$r9j<=}P>bTiC6qm7ga{Y;>n5qcS6#pHM{7LXLw zJHL4T*}koIrg?6`jOY(`_%^rXHJ|>!YIPz zc-<{*79*1)E5{R+lRx~I=K({=G-G44KtHu8AW^VzaikH*jYMt*3hVYVluO5qCA9k% z>uo}>M=lK}{W6L2Umvc0l>mjl2Yb|qEy`rRzYm0T{ZT>?0?B^iC6}B*(9-b-g%HpM z;fl+eICWJQXHVupz2x=8P;F6CA=M6etDP!$5M&k@Xa{V&0M-ZK^#O2xfaVn|Q2QBa z8iGTH(gIom3u%b&yzF{hxUhKcw%a~^+k+22cpom_B)vtjo=8oXs|n0c{^U>o`>U_M z`m!5ue&*BeyYFFh;`m7!U3&$_l3=J31TKvYy#R2}qirCPICZ*@BbVpMtbk_e3ABB( zfL+>8!=)cH19VfM)noKCFN&dGF=zZ=P#XW#1I!W=&BP6n@yIzeRGAa=6(^mb(9#-I=q20gr?@f0*wqCfY@Ll6AHhd=yDe>uf=wzcgx zcze=AR1Sg*Tl;T++uMF-b8UHP@7_K6V6(+1PMm=@b{P5umjJE>(AJDr*8qXS%2I}} zeZ7PJfYD2V-hk0hfkEMpUJkVSz=ciV=j6I9M!6ZPTqrngX@|f{V zuHi)s*W%%mkDdI)$3OlT%gf6rFru;EvWZ$f0l2$))yeY8%46?*=a2v5Cq8-We;y3d z{^o_{+PSeYT)i-J$y-NC!t7xplLQ`opo`^of$^C!h*+TT%cA>+kQyMfUY)8cEBChc zdh)bSg#fJY8PgUNgt+GD7}DH@LBkJ4ZtuwKNMC@az_Dyq2pxOymmM5j)j zIz8z3ZVF2Cehes z)26NPD;EV2Dd5!70H3{c4QNEpNeTmJ$HKr>g(BgbjD21+f(t=H20{zO7L+h3_8|)S z0_;G8yBV<7g6j3~#_u?QMm>Z!<#5|p1x0WJW3E@$Y;qHVR9QLi7N`;| zJNw+&qcC+az{D&e3JZuL1^NSs!2s0nLuP#h+(%ODqcJ-xwwiCKx{`F>z30@}R`T z5rv7%Ba9sxL$WY|aC!zoGLAqg1T;V-dWZsxFb)uo1yHjB^ZFeA<=&?u%EZR!?!5iZ zU;4#g{Jl=6voxX#*t)f6y9CoN61SZJ-&B675L^+=Tq@9ym}V1_fRflV9AN`%t4( z0IeL{Nr9yv_Kg?#wr`t&@!L(sFnwB%#dzuUsv6$TTdoijdZ)~_EP0Tn`yG&@Mtw=5 zk~q^~&Ou~c%{vSc#4&;|yf<|$XDSM4Cd!8U+B$e(_2c4m6&6|Z>t zk+qf8d}(Q2Xc3P>WiWn2g--})8`K;w-0^jPj0>S)=yWK2brDrZdCyeb^v!b2@bXa zT^^CvhHt&~)(4U}s(sgYz53Yt+PYp@T9xhGB1~eaKn}N&I3`ucv78qMjTpG)DG9## zKo4tYwNuT*#mJtM+V}>i%s9IBo*t><%@o*7!L1Zn?E{NFjF0EI>X~)a8Vv{rLRf@C zAXEy05>T=P!}W&=BDV|CR>{PDk%G&P5E}J-3opUSX#wF!YlH`xBtb|Cp``CM6Hoy` zDT4Cb$pfVjMD7S9g&9MRMd1iXH`yR zmN|Mzr!mU9xKw2inu3%9N=Zn6(+MJQM9Aejo-14Uu>;SA?U)}R7zw*m} zk`B`KZPBLQ0pMXzLlt1L?JTz?rPMA*732tjy8G_CPh{CZyz&(_eq})N2{$ zZ;UW|Yz9#{jzj?eT=r1a%p2ns@k;! zyT(F6G~`F1Qp&~1p&LrOpW={0`1{0-2^h)9tly;HYaN7}k5UY>N=hepn0Qs~VZ#?#2f9=;_Ilpjd&tu2W z7z2_)5@U952F+#@MWIn>jiS&O}5H741IC*w}uRqqsLnr!J-Lyyx*QiFq zt%?sqgQRKEm=Q=O5=6~$gvk^lQi!>SIuFp44%|klPzwol-)|jO3L?@k08y493V;j8 zjbV&uyYX91jddZD1%ZWt5fUblU?srH(J)wcWN6wF3NTV(kTi<}I!r%N%!K6wHd zzicyA7M*YfZ@Fv&Z<@c7@4oxXXYRP`&WHZPzyJUKpw()f^&k%XkyajORX?`6wYCZ{ z?Er940W8`EYPp*--1b^nd5tC}#-~5WJuhGWvv)}n&~y>JDuyL=LFoxj4|ap#?<9(?$r^S|=T z@Bg2VJ@(lB9=Ix~RgkLyZ&^z$pP-_IC&+TiCppUZglU=;fAmLx^!UR3zQ#*l@}j+2 zp0Umf?)L`N>-V6PLJ)?-#%i(*G8$wY{Vu^m$_Q~(M}4e`MsotSu}ReHlc*uz#wvSzn%rrQ62Gc+4FEQTe;@WSZwG%Y_f)b^pwl+y1kd#zy923Pv8H**Dk#O z{qO(t6OTXsXk}GXsgkqGQq!u6-ZjxdyA&OE%SS&^YICQXfo}cOr%sU`o6!WAO-;d0J0v0;ak zlA~HOd~7Z3#pAPFF3d6(S)s99v~hUW;@{qUHLii|-|>YnT)6Y|cbs_NFTL+m7tWtQ zRb8-FW_c?|Q30NJ0=TRYiHgKloviKgZ(LEoapefNJr1`$Ee6PD|`E1%Vw@`%XV207$L1zVq{+KmX+~e`({{&$?yu$dSYK zUaxNj1Y2XM)9t{rMI6V7!VpSHC?ydF3Sk%^2o<7GAr1pXp+p=?B!NI2O2nZ+6bJ;8 ze1^!k-*~ANrM>l!$xAPlT+HQOq9J|ZNEU{S6GNu>i#tk(i^oe3yA0zEyS;`6=w=1Z z_t$ZFKjS?wxCYN0i}E|~xZ}d z|M|bV_nv#czRk{-fL5ioJhp?o<7%~PljEg;whMjw)16NT*-#gn1<0~tG3fV@=NSNoloBckD=Yx0432yIQn9P03KqjNhSDoa zNfqqPCXbwpk}QUumpznRs_dJt5Vn;Qmew=l7zPY83S+U^OR?N)BWmQhGPle{K@yf?|q-~F>Wcfr8-WxdCFBu);rkW9i?(NCu_I#rP?7E z9c~Mww#UrjHhWxsJaoopW@aYe@s4*~{g$`B^%@n#@%l#FkO){vrFvP4v?xGfh$N{) z1p&a0A4B{7hNaZ7wL^B>(T?8Hj=-(=D-U-Z5fg-A2;(OEY*DiHxEy++%N{KnuC8}s z6Wlfi63|4*t;I@rfOeWDxm2$yPNI;@UD62(rH(_*xT*RcVb(1>!N)0HbCPY;^LhEuKpeZfJ284&Asbg z?|RBBU-_z|Nv)BrZ?p|Wz+n`NewK-iP6wGTAXSJYsUeCYSBz(d(Z;V#=MjDJkWsI) zL$K-=m$JwsPHxhKa*c86WR>gbht8J)v~`l378b33j&?7F5f(=;pTe_mJb*)cBVIap zs`J?K6Fnm0M<0D;?Kgk(H}ARs{`()TsN<@XRsr2E!P~uOTd5}PaOYMA%`TyBXL|}$ z?f`TZxDw!CTQVfr!Mom`*A@W8+}zyc>tFx+E8g^`H(fKmXRg^FWUx#|hyaDLqL-$$ z+3jMGWgsaKh7rOrf>Hsb6vMgT5qX;(&Lxe2t*oH)<(TH`vxOi@`xVVxr*xrBt{mXyw;SWFX#V>yGxCgMP z*x0H{&bCQx`Xr8(-NjULRZ4dP7*EntyHh()unX8bNpQ3Sz`?fsHUU7hIX3b9=fB{< zwbx!d_w=VfW8rBx-Mq&#$#$n_iozHOB?@b$Hir6Xitb>5qA)OQJY9r@3IZsppp@Lg zI56^%ee7%eRA1qy`HS2j&ol;Uj$S`UQ5aYzgmHlB=_Y1oniy*)Xf%W&^aq1MH;=+d zZf>@UFMjb0iw{2Z(DGOAz4!dxci;WE2g_8{aaIAbD#6>;alS1Txtm(PXhAXU(g1m> zO?W#=w8Yk7hN=n=wt>9;X4t7xRrU0xl%oE;=RN=6%U}NOmp$uQ&tBNOZ~ug~5Q8+= z+E^O|5mXRK21HgAqTBDI*Y9JHrpSr{c~Q9SG8Oi|YB#YX7;^-oWC@a72`{e2n3!l{ ze4>HocnxtZt=5CA*KOy$UQcVSnVGrMZs%YA@|PDs`q7U)bnm_QoCVOW#HqzLP)h)- z;O3QcHCv@C>e%j<*x2rD(JqqvWI$t=>eEi@TkRsLRU5pMJq~uLTvfpqK@ik$eA)N2 zDIo>1kivqkF{UtCHYl0R1#o)FyK5)yclq{pSEF~8AT@=gG6Z!(bE9#{YEaL=AS%^PpH zVgHRcJ#GKB*IYZhuyAm4&&*6Cj$;Lo(8gLGGIbJ{#B6S#mRq4pBp{_=YYpq7U?DxX zhyb+Kw%hII%S%hWM;>`({qDQ(K7ZeR_bnYietg{+)7>Uz#kLe<72vA0R$tpmV)YXM z%TE%h3^48)TY#xw1NNcdm_v8-JyuCBD)GkU&ne5xQuX*s`!SSi7srtmk zL{h8O;##d1Dy5W^Qr7BqC5049DbhxBo@IJ4NHw#yX_giJUN2A6G+$d=8=N_FrgiSz z*>%;_iOvS!cGl< zyH&Bowh#|b5c-Mj^?)7DJ4s8`9-3{%_hJX|s*X~=g9_emV|N3UF9q0Y9E@)OP+WrQ zelqFaErB9-aoEHzU_KGJat94UI{;5l@L6^O*lq*YRMe>1q0^$+;j!Kp>X;pzC;KG8 zJ{h=tDFA*e!G1DNT^3#Io2l9@-DNd^B+ zf!)!I{${@}1@KFe@+TW#-K_>qmmsB21TI}d6mcn1Y`1}CwmC;n1m+U~%HJ%g-ztDF z^>@)FgkF~lJnaIQc!JsH-Co;?W$01><{bdCPjc`j+SP9fsDE1ke=~qzN)7snfZr(_ zcPR&+qy~N|4%c>-x)Xp;1n4&d>LmmFcLDG>E8$P3+MnnK*bO+k1k-UT7j-v)E(OFV i0+PR#pjN;B{{a9lS1Q{(Y)LKv0000 Date: Sun, 12 Jun 2011 11:24:32 -0600 Subject: [PATCH 03/54] Fix "stop selected Jobs" button trying to stop the same job multiple times --- src/calibre/gui2/jobs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/gui2/jobs.py b/src/calibre/gui2/jobs.py index 6aae892d61..20154a298b 100644 --- a/src/calibre/gui2/jobs.py +++ b/src/calibre/gui2/jobs.py @@ -457,7 +457,7 @@ class JobsDialog(QDialog, Ui_JobsDialog): def kill_job(self, *args): if question_dialog(self, _('Are you sure?'), _('Do you really want to stop the selected job?')): - for index in self.jobs_view.selectedIndexes(): + for index in self.jobs_view.selectionModel().selectedRows(): row = index.row() self.model.kill_job(row, self) From 685ef02000573dc46012fd80960d8e87e1700ff4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 12 Jun 2011 13:16:31 -0600 Subject: [PATCH 04/54] Smaller memory limit for spooled file when moving files in db2 --- src/calibre/library/database2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 926ac5527c..67c67b1ff7 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -607,7 +607,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): f = self.format(id, format, index_is_id=True, as_file=True) if f is None: continue - with tempfile.SpooledTemporaryFile(max_size=100*(1024**2)) as stream: + with tempfile.SpooledTemporaryFile(max_size=30*(1024**2)) as stream: with f: shutil.copyfileobj(f, stream) stream.seek(0) From db595796fc417e254632dc1377acc223babc9751 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 12 Jun 2011 15:16:56 -0600 Subject: [PATCH 05/54] Email sending: Allow user to stop email jobs (note that stopping may not actually prevent the email from being sent, depending on when the stop happens). Also automatically abort email sending if it takes longer than 15mins. Fixes #795960 (E-mail task hangs) --- src/calibre/gui2/email.py | 54 +++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/src/calibre/gui2/email.py b/src/calibre/gui2/email.py index 4b4c920a7e..b82f421e1e 100644 --- a/src/calibre/gui2/email.py +++ b/src/calibre/gui2/email.py @@ -9,6 +9,7 @@ __docformat__ = 'restructuredtext en' import os, socket, time from binascii import unhexlify from functools import partial +from threading import Thread from itertools import repeat from calibre.utils.smtp import (compose_mail, sendmail, extract_email_address, @@ -22,9 +23,30 @@ from calibre.library.save_to_disk import get_components from calibre.utils.config import tweaks from calibre.gui2.threaded_jobs import ThreadedJob +class Worker(Thread): + + def __init__(self, func, args): + Thread.__init__(self) + self.daemon = True + self.exception = self.tb = None + self.func, self.args = func, args + + def run(self): + #time.sleep(1000) + try: + self.func(*self.args) + except Exception as e: + import traceback + self.exception = e + self.tb = traceback.format_exc() + finally: + self.func = self.args = None + + class Sendmail(object): MAX_RETRIES = 1 + TIMEOUT = 15 * 60 # seconds def __init__(self): self.calculate_rate_limit() @@ -42,22 +64,32 @@ class Sendmail(object): abort=None, notifications=None): try_count = 0 - while try_count <= self.MAX_RETRIES: + while True: if try_count > 0: log('\nRetrying in %d seconds...\n' % self.rate_limit) - try: - self.sendmail(attachment, aname, to, subject, text, log) - try_count = self.MAX_RETRIES - log('Email successfully sent') - except: + worker = Worker(self.sendmail, + (attachment, aname, to, subject, text, log)) + worker.start() + start_time = time.time() + while worker.is_alive(): + worker.join(0.2) if abort.is_set(): + log('Sending aborted by user') return - if try_count == self.MAX_RETRIES: - raise - log.exception('\nSending failed...\n') - + if time.time() - start_time > self.TIMEOUT: + log('Sending timed out') + raise Exception( + 'Sending email %r to %r timed out, aborting'% (subject, + to)) + if worker.exception is None: + log('Email successfully sent') + return + log.error('\nSending failed...\n') + log.debug(worker.tb) try_count += 1 + if try_count > self.MAX_RETRIES: + raise worker.exception def sendmail(self, attachment, aname, to, subject, text, log): while time.time() - self.last_send_time <= self.rate_limit: @@ -90,7 +122,7 @@ def send_mails(jobnames, callback, attachments, to_s, subjects, attachments, to_s, subjects, texts, attachment_names): description = _('Email %s to %s') % (name, to) job = ThreadedJob('email', description, gui_sendmail, (attachment, aname, to, - subject, text), {}, callback, killable=False) + subject, text), {}, callback) job_manager.run_threaded_job(job) From 0d5c964ea72635b0f1cdec0357abb61838d7f70d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 12 Jun 2011 15:36:49 -0600 Subject: [PATCH 06/54] ... --- recipes/hbr_blogs.recipe | 2 +- src/calibre/web/feeds/__init__.py | 3 +++ src/calibre/web/feeds/news.py | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/hbr_blogs.recipe b/recipes/hbr_blogs.recipe index bd72a95ebf..acee567d8d 100644 --- a/recipes/hbr_blogs.recipe +++ b/recipes/hbr_blogs.recipe @@ -6,7 +6,7 @@ class HBR(BasicNewsRecipe): title = 'Harvard Business Review Blogs' description = 'To subscribe go to http://hbr.harvardbusiness.org' needs_subscription = True - __author__ = 'Kovid Goyal and Sujata Raman, enhanced by BrianG' + __author__ = 'Kovid Goyal, enhanced by BrianG' language = 'en' no_stylesheets = True diff --git a/src/calibre/web/feeds/__init__.py b/src/calibre/web/feeds/__init__.py index a10fb03f91..dbd1f74f82 100644 --- a/src/calibre/web/feeds/__init__.py +++ b/src/calibre/web/feeds/__init__.py @@ -317,6 +317,9 @@ def feed_from_xml(raw_xml, title=None, oldest_article=7, max_articles_per_feed=100, get_article_url=lambda item: item.get('link', None), log=default_log): + # Handle unclosed escaped entities. They trip up feedparser and HBR for one + # generates them + raw_xml = re.sub(r'(&#\d+)([^0-9;])', r'\1;\2', raw_xml) feed = parse(raw_xml) pfeed = Feed(get_article_url=get_article_url, log=log) pfeed.populate_from_feed(feed, title=title, diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 325fcf5209..c74a9b662c 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -13,8 +13,8 @@ from functools import partial from contextlib import nested, closing -from calibre import browser, __appname__, iswindows, \ - strftime, preferred_encoding, as_unicode +from calibre import (browser, __appname__, iswindows, + strftime, preferred_encoding, as_unicode) from calibre.ebooks.BeautifulSoup import BeautifulSoup, NavigableString, CData, Tag from calibre.ebooks.metadata.opf2 import OPFCreator from calibre import entity_to_unicode From 67964530424b3644bb14a57cc2d43f159fffc987 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 12 Jun 2011 17:05:55 -0600 Subject: [PATCH 07/54] ... --- src/calibre/ebooks/mobi/reader.py | 1 - src/calibre/gui2/preferences/coloring.py | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/mobi/reader.py b/src/calibre/ebooks/mobi/reader.py index 934e8476d2..46505de4bd 100644 --- a/src/calibre/ebooks/mobi/reader.py +++ b/src/calibre/ebooks/mobi/reader.py @@ -348,7 +348,6 @@ class MobiReader(object): self.processed_html = self.remove_random_bytes(self.processed_html) root = soupparser.fromstring(self.processed_html) - if root.tag != 'html': self.log.warn('File does not have opening tag') nroot = html.fromstring('') diff --git a/src/calibre/gui2/preferences/coloring.py b/src/calibre/gui2/preferences/coloring.py index f8376e9b84..b3c7873b45 100644 --- a/src/calibre/gui2/preferences/coloring.py +++ b/src/calibre/gui2/preferences/coloring.py @@ -462,11 +462,11 @@ class EditRules(QWidget): # {{{ self.l = l = QGridLayout(self) self.setLayout(l) - self.l1 = l1 = QLabel(_( + self.l1 = l1 = QLabel('

'+_( 'You can control the color of columns in the' ' book list by creating "rules" that tell calibre' ' what color to use. Click the Add Rule button below' - ' to get started. You can change an existing rule by double' + ' to get started.

You can change an existing rule by double' ' clicking it.')) l1.setWordWrap(True) l.addWidget(l1, 0, 0, 1, 2) From a3c461890f8fb19c29e1967ccc05e5af5e434b04 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Mon, 13 Jun 2011 11:03:59 +0100 Subject: [PATCH 08/54] Make updating the device view respect previous searches and sorts. Make using double-click to edit on the device view not attempt to open the library's edit metadata dialog box. --- src/calibre/gui2/library/models.py | 6 ++++-- src/calibre/gui2/library/views.py | 13 +++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index 72655afd12..f49c6db59a 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -1110,6 +1110,8 @@ class DeviceBooksModel(BooksModel): # {{{ if self.last_search: self.searched.emit(True) + def research(self, reset=True): + self.search(self.last_search, reset) def sort(self, col, order, reset=True): descending = order != Qt.AscendingOrder @@ -1171,6 +1173,8 @@ class DeviceBooksModel(BooksModel): # {{{ self.custom_columns = {} self.db = db self.map = list(range(0, len(db))) + self.research(reset=False) + self.resort() def cover(self, row): item = self.db[self.map[row]] @@ -1319,8 +1323,6 @@ class DeviceBooksModel(BooksModel): # {{{ ans = Qt.AlignVCenter | ALIGNMENT_MAP[self.alignment_map.get(cname, 'left')] return QVariant(ans) - - return NONE def headerData(self, section, orientation, role): diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index f59473851f..3ca898d15a 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -48,7 +48,7 @@ class BooksView(QTableView): # {{{ files_dropped = pyqtSignal(object) add_column_signal = pyqtSignal() - def __init__(self, parent, modelcls=BooksModel): + def __init__(self, parent, modelcls=BooksModel, use_edit_metadata_dialog=True): QTableView.__init__(self, parent) self.setEditTriggers(self.EditKeyPressed) @@ -60,8 +60,12 @@ class BooksView(QTableView): # {{{ elif tweaks['doubleclick_on_library_view'] == 'edit_metadata': # Must not enable single-click to edit, or the field will remain # open in edit mode underneath the edit metadata dialog - self.doubleClicked.connect( - partial(parent.iactions['Edit Metadata'].edit_metadata, checked=False)) + if use_edit_metadata_dialog: + self.doubleClicked.connect( + partial(parent.iactions['Edit Metadata'].edit_metadata, + checked=False)) + else: + self.setEditTriggers(self.DoubleClicked|self.editTriggers()) self.drag_allowed = True self.setDragEnabled(True) @@ -792,7 +796,8 @@ class BooksView(QTableView): # {{{ class DeviceBooksView(BooksView): # {{{ def __init__(self, parent): - BooksView.__init__(self, parent, DeviceBooksModel) + BooksView.__init__(self, parent, DeviceBooksModel, + use_edit_metadata_dialog=False) self.can_add_columns = False self.columns_resized = False self.resize_on_select = False From 832d0db523e69213770a4381a3ae3ee0d72ef5b7 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Mon, 13 Jun 2011 13:15:38 +0100 Subject: [PATCH 09/54] Make the news category clickable. --- src/calibre/gui2/tag_view.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index da5029bab3..a6a852fbdd 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -610,7 +610,7 @@ class TagTreeItem(object): # {{{ self.temporary = temporary self.tag = Tag(data, category=category_key, is_editable=category_key not in ['news', 'search', 'identifiers'], - is_searchable=category_key not in ['news', 'search']) + is_searchable=category_key not in ['search']) elif self.type == self.TAG: self.icon_state_map[0] = QVariant(data.icon) @@ -1642,7 +1642,13 @@ class TagsModel(QAbstractItemModel): # {{{ for node in self.category_nodes: if node.tag.state: - ans.append('%s:%s'%(node.category_key, node_searches[node.tag.state])) + if node.category_key == "news": + if node_searches[node.tag.state] == 'true': + ans.append('tags:=news') + else: + ans.append('( not tags:=news )') + else: + ans.append('%s:%s'%(node.category_key, node_searches[node.tag.state])) key = node.category_key for tag_item in node.child_tags(): From a61a916620c909f895bc13a11ed22c154ee2de35 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 06:18:52 -0600 Subject: [PATCH 10/54] Fix #796436 (Private bug) --- src/calibre/customize/builtins.py | 9 +++++---- src/calibre/devices/hanvon/driver.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index ec0f28273f..b2268d3732 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -603,10 +603,11 @@ from calibre.devices.eslick.driver import ESLICK, EBK52 from calibre.devices.nuut2.driver import NUUT2 from calibre.devices.iriver.driver import IRIVER_STORY from calibre.devices.binatone.driver import README -from calibre.devices.hanvon.driver import N516, EB511, ALEX, AZBOOKA, THEBOOK +from calibre.devices.hanvon.driver import (N516, EB511, ALEX, AZBOOKA, THEBOOK, + LIBREAIR) from calibre.devices.edge.driver import EDGE -from calibre.devices.teclast.driver import TECLAST_K3, NEWSMY, IPAPYRUS, \ - SOVOS, PICO, SUNSTECH_EB700, ARCHOS7O, STASH, WEXLER +from calibre.devices.teclast.driver import (TECLAST_K3, NEWSMY, IPAPYRUS, + SOVOS, PICO, SUNSTECH_EB700, ARCHOS7O, STASH, WEXLER) from calibre.devices.sne.driver import SNE from calibre.devices.misc import (PALMPRE, AVANT, SWEEX, PDNOVEL, GEMEI, VELOCITYMICRO, PDNOVEL_KOBO, LUMIREAD, ALURATEK_COLOR, @@ -716,7 +717,7 @@ plugins += [ EB600, README, N516, - THEBOOK, + THEBOOK, LIBREAIR, EB511, ELONEX, TECLAST_K3, diff --git a/src/calibre/devices/hanvon/driver.py b/src/calibre/devices/hanvon/driver.py index f9dec178c6..3798257c2d 100644 --- a/src/calibre/devices/hanvon/driver.py +++ b/src/calibre/devices/hanvon/driver.py @@ -52,6 +52,18 @@ class THEBOOK(N516): EBOOK_DIR_MAIN = 'My books' WINDOWS_CARD_A_MEM = '_FILE-STOR_GADGE' +class LIBREAIR(N516): + name = 'Libre Air Driver' + gui_name = 'Libre Air' + description = _('Communicate with the Libre Air reader.') + author = 'Kovid Goyal' + FORMATS = ['epub', 'mobi', 'prc', 'fb2', 'rtf', 'txt', 'pdf'] + + BCD = [0x399] + VENDOR_NAME = 'ALURATEK' + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = '_FILE-STOR_GADGET' + EBOOK_DIR_MAIN = 'Books' + class ALEX(N516): name = 'Alex driver' From cab4eb9bd2350fc972887418e801f35203ec4c97 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 09:03:43 -0600 Subject: [PATCH 11/54] EPUB Output: Change orphaned tags to

as they cause ADE to crash --- src/calibre/ebooks/epub/output.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/epub/output.py b/src/calibre/ebooks/epub/output.py index bea90eeba8..bb515f95a4 100644 --- a/src/calibre/ebooks/epub/output.py +++ b/src/calibre/ebooks/epub/output.py @@ -394,6 +394,13 @@ class EPUBOutput(OutputFormatPlugin): for tag in XPath('//h:img[@src]')(root): tag.set('src', tag.get('src', '').replace('&', '')) + # ADE whimpers in fright when it encounters a outside a + # + in_table = XPath('ancestor::h:table') + for tag in XPath('//h:td|//h:tr|//h:th')(root): + if not in_table(tag): + tag.tag = XHTML('div') + special_chars = re.compile(u'[\u200b\u00ad]') for elem in root.iterdescendants(): if getattr(elem, 'text', False): @@ -413,7 +420,7 @@ class EPUBOutput(OutputFormatPlugin): rule.style.removeProperty('margin-left') # padding-left breaks rendering in webkit and gecko rule.style.removeProperty('padding-left') - # Change whitespace:pre to pre-line to accommodate readers that + # Change whitespace:pre to pre-wrap to accommodate readers that # cannot scroll horizontally for rule in stylesheet.data.cssRules.rulesOfType(CSSRule.STYLE_RULE): style = rule.style From 7a97db1e36a2dc327eea9f73d76a49efbcbf1d74 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 09:37:36 -0600 Subject: [PATCH 12/54] MOBI Output: Set the border attribute on tables if the CSS has border or border-width defined. --- src/calibre/ebooks/mobi/mobiml.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/mobi/mobiml.py b/src/calibre/ebooks/mobi/mobiml.py index 2275552c15..493767e233 100644 --- a/src/calibre/ebooks/mobi/mobiml.py +++ b/src/calibre/ebooks/mobi/mobiml.py @@ -442,9 +442,12 @@ class MobiMLizer(object): if tag in TABLE_TAGS and self.ignore_tables: tag = 'span' if tag == 'td' else 'div' - # GR: Added 'width', 'border' and 'scope' + if tag == 'table': + css = style.cssdict() + if 'border' in css or 'border-width' in css: + elem.set('border', '1') if tag in TABLE_TAGS: - for attr in ('rowspan', 'colspan','width','border','scope'): + for attr in ('rowspan', 'colspan', 'width', 'border', 'scope'): if attr in elem.attrib: istate.attrib[attr] = elem.attrib[attr] if tag == 'q': From 4b8e1105074b31cec3951bbfe2f80281e3544701 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Mon, 13 Jun 2011 20:25:25 +0100 Subject: [PATCH 13/54] Remove error in template language documentation --- src/calibre/manual/template_lang.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/manual/template_lang.rst b/src/calibre/manual/template_lang.rst index 079af59286..02a77432c9 100644 --- a/src/calibre/manual/template_lang.rst +++ b/src/calibre/manual/template_lang.rst @@ -417,7 +417,7 @@ You might find the following tips useful. * Create a custom composite column to test templates. Once you have the column, you can change its template simply by double-clicking on the column. Hide the column when you are not testing. * Templates can use other templates by referencing a composite custom column. - * In a plugboard, you can set a field to empty (or whatever is equivalent to empty) by using the special template ``{null}``. This template will always evaluate to an empty string. + * In a plugboard, you can set a field to empty (or whatever is equivalent to empty) by using the special template ``{}``. This template will always evaluate to an empty string. * The technique described above to show numbers even if they have a zero value works with the standard field series_index. .. toctree:: From 1f1b0113b67b83010ed272c1908dbe114aecf2f3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 15:12:45 -0600 Subject: [PATCH 14/54] ... --- src/calibre/web/feeds/recipes/collection.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/calibre/web/feeds/recipes/collection.py b/src/calibre/web/feeds/recipes/collection.py index 1eb504d282..dbedef6dbe 100644 --- a/src/calibre/web/feeds/recipes/collection.py +++ b/src/calibre/web/feeds/recipes/collection.py @@ -101,6 +101,7 @@ def get_custom_recipe_collection(*args): if recipe_class is not None: rmap['custom:%s'%id_] = recipe_class except: + print 'Failed to load recipe from: %r'%fname import traceback traceback.print_exc() continue From 36710149b1d11d24c0d8edc5228d73f86c4f94a0 Mon Sep 17 00:00:00 2001 From: John Schember Date: Mon, 13 Jun 2011 18:21:42 -0400 Subject: [PATCH 15/54] Fix bug #796603: Get books dialogs to wide. --- src/calibre/gui2/store/config/chooser/chooser_widget.py | 4 +++- src/calibre/gui2/store/mobileread/store_dialog.py | 4 +++- src/calibre/gui2/store/search/search.py | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/store/config/chooser/chooser_widget.py b/src/calibre/gui2/store/config/chooser/chooser_widget.py index a9399028f8..5e7eca8c66 100644 --- a/src/calibre/gui2/store/config/chooser/chooser_widget.py +++ b/src/calibre/gui2/store/config/chooser/chooser_widget.py @@ -6,7 +6,7 @@ __license__ = 'GPL 3' __copyright__ = '2011, John Schember ' __docformat__ = 'restructuredtext en' -from PyQt4.Qt import (QWidget, QIcon, QDialog) +from PyQt4.Qt import (QWidget, QIcon, QDialog, QComboBox) from calibre.gui2.store.config.chooser.adv_search_builder import AdvSearchBuilderDialog from calibre.gui2.store.config.chooser.chooser_widget_ui import Ui_Form @@ -18,6 +18,8 @@ class StoreChooserWidget(QWidget, Ui_Form): self.setupUi(self) self.query.initialize('store_config_chooser_query') + self.query.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLengthWithIcon) + self.query.setMinimumContentsLength(25) self.adv_search_builder.setIcon(QIcon(I('search.png'))) diff --git a/src/calibre/gui2/store/mobileread/store_dialog.py b/src/calibre/gui2/store/mobileread/store_dialog.py index 8908c9bb68..749f96a614 100644 --- a/src/calibre/gui2/store/mobileread/store_dialog.py +++ b/src/calibre/gui2/store/mobileread/store_dialog.py @@ -7,7 +7,7 @@ __copyright__ = '2011, John Schember ' __docformat__ = 'restructuredtext en' -from PyQt4.Qt import (Qt, QDialog, QIcon) +from PyQt4.Qt import (Qt, QDialog, QIcon, QComboBox) from calibre.gui2.store.mobileread.adv_search_builder import AdvSearchBuilderDialog from calibre.gui2.store.mobileread.models import BooksModel @@ -21,6 +21,8 @@ class MobileReadStoreDialog(QDialog, Ui_Dialog): self.plugin = plugin self.search_query.initialize('store_mobileread_search') + self.search_query.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLengthWithIcon) + self.search_query.setMinimumContentsLength(25) self.adv_search_button.setIcon(QIcon(I('search.png'))) diff --git a/src/calibre/gui2/store/search/search.py b/src/calibre/gui2/store/search/search.py index f406b4923e..7db4d1bbaf 100644 --- a/src/calibre/gui2/store/search/search.py +++ b/src/calibre/gui2/store/search/search.py @@ -10,7 +10,8 @@ import re from random import shuffle from PyQt4.Qt import (Qt, QDialog, QDialogButtonBox, QTimer, QCheckBox, QLabel, - QVBoxLayout, QIcon, QWidget, QTabWidget, QGridLayout) + QVBoxLayout, QIcon, QWidget, QTabWidget, QGridLayout, + QComboBox) from calibre.gui2 import JSONConfig, info_dialog from calibre.gui2.progress_indicator import ProgressIndicator @@ -57,6 +58,8 @@ class SearchDialog(QDialog, Ui_Dialog): # Set the search query self.search_edit.setText(query) + self.search_edit.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLengthWithIcon) + self.search_edit.setMinimumContentsLength(25) # Create and add the progress indicator self.pi = ProgressIndicator(self, 24) From 24bf682955918bc04c92b1810ce22e6b1a305778 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 20:44:30 -0600 Subject: [PATCH 16/54] Fix #796790 (Condition in coloring not translated) --- src/calibre/gui2/preferences/coloring.py | 27 ++++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/calibre/gui2/preferences/coloring.py b/src/calibre/gui2/preferences/coloring.py index b3c7873b45..3b581be701 100644 --- a/src/calibre/gui2/preferences/coloring.py +++ b/src/calibre/gui2/preferences/coloring.py @@ -22,11 +22,7 @@ from calibre.library.coloring import (Rule, conditionable_columns, class ConditionEditor(QWidget): # {{{ - def __init__(self, fm, parent=None): - QWidget.__init__(self, parent) - self.fm = fm - - self.action_map = { + ACTION_MAP = { 'bool' : ( (_('is true'), 'is true',), (_('is false'), 'is false'), @@ -61,10 +57,17 @@ class ConditionEditor(QWidget): # {{{ (_('is set'), 'is set'), (_('is not set'), 'is not set'), ), - } + } - for x in ('float', 'rating', 'datetime'): - self.action_map[x] = self.action_map['int'] + for x in ('float', 'rating', 'datetime'): + ACTION_MAP[x] = ACTION_MAP['int'] + + + def __init__(self, fm, parent=None): + QWidget.__init__(self, parent) + self.fm = fm + + self.action_map = self.ACTION_MAP self.l = l = QGridLayout(self) self.setLayout(l) @@ -446,9 +449,15 @@ class RulesModel(QAbstractListModel): # {{{ def condition_to_html(self, condition): c, a, v = condition + action_name = a + for actions in ConditionEditor.ACTION_MAP.itervalues(): + for trans, ac in actions: + if ac == a: + action_name = trans + return ( _('
  • If the %s column %s value: %s') % - (c, a, prepare_string_for_xml(v))) + (c, action_name, prepare_string_for_xml(v))) # }}} From e9e76f962d1f184b6385a7bb59e39208e1f3e613 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 20:59:53 -0600 Subject: [PATCH 17/54] Nook TSR: Put news sent to the device in My Files/Newspapers instaed of My Files/Books. Fixes #796674 ([enhancement] Nook Touch News) --- src/calibre/devices/nook/driver.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calibre/devices/nook/driver.py b/src/calibre/devices/nook/driver.py index e09fb7eaf9..240f458af8 100644 --- a/src/calibre/devices/nook/driver.py +++ b/src/calibre/devices/nook/driver.py @@ -121,7 +121,7 @@ class NOOK_TSR(NOOK): PRODUCT_ID = [0x003] BCD = [0x216] - EBOOK_DIR_MAIN = 'My Files/Books' + EBOOK_DIR_MAIN = 'My Files' WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = 'EBOOK_DISK' def upload_cover(self, path, filename, metadata, filepath): @@ -129,7 +129,13 @@ class NOOK_TSR(NOOK): def get_carda_ebook_dir(self, for_upload=False): if for_upload: - return 'My Files/Books' + return self.EBOOK_DIR_MAIN return '' + def create_upload_path(self, path, mdata, fname, create_dirs=True): + is_news = mdata.tags and _('News') in mdata.tags + subdir = 'Newspapers' if is_news else 'Books' + path = os.path.join(path, subdir) + return NOOK.create_upload_path(self, path, mdata, fname, + create_dirs=create_dirs) From 612ea061c4896a43483b3e1f03a99f2fc489e8d9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 21:02:57 -0600 Subject: [PATCH 18/54] Fix NC driver to use same logic as Nook TSR driver --- src/calibre/devices/nook/driver.py | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/calibre/devices/nook/driver.py b/src/calibre/devices/nook/driver.py index 240f458af8..67c543a763 100644 --- a/src/calibre/devices/nook/driver.py +++ b/src/calibre/devices/nook/driver.py @@ -90,30 +90,21 @@ class NOOK_COLOR(NOOK): EBOOK_DIR_MAIN = 'My Files' - def create_upload_path(self, path, mdata, fname, create_dirs=True): - filepath = NOOK.create_upload_path(self, path, mdata, fname, - create_dirs=False) - edm = self.EBOOK_DIR_MAIN - subdir = 'Books' - if mdata.tags: - if _('News') in mdata.tags: - subdir = 'Magazines' - filepath = filepath.replace(os.sep+edm+os.sep, - os.sep+edm+os.sep+subdir+os.sep) - filedir = os.path.dirname(filepath) - if create_dirs and not os.path.exists(filedir): - os.makedirs(filedir) - - return filepath - def upload_cover(self, path, filename, metadata, filepath): pass def get_carda_ebook_dir(self, for_upload=False): if for_upload: - return 'My Files/Books' + return self.EBOOK_DIR_MAIN return '' + def create_upload_path(self, path, mdata, fname, create_dirs=True): + is_news = mdata.tags and _('News') in mdata.tags + subdir = 'Magazines' if is_news else 'Books' + path = os.path.join(path, subdir) + return NOOK.create_upload_path(self, path, mdata, fname, + create_dirs=create_dirs) + class NOOK_TSR(NOOK): gui_name = _('Nook Simple') description = _('Communicate with the Nook TSR eBook reader.') From 983cf1e52fc9f43d8cb65ed35ddd92e5831c3ef8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 21:07:52 -0600 Subject: [PATCH 19/54] Use a single driver for the Nook and Nook color --- src/calibre/customize/builtins.py | 4 ++-- src/calibre/devices/nook/driver.py | 33 ++++-------------------------- 2 files changed, 6 insertions(+), 31 deletions(-) diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index b2268d3732..bdac284af2 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -594,7 +594,7 @@ from calibre.devices.iliad.driver import ILIAD from calibre.devices.irexdr.driver import IREXDR1000, IREXDR800 from calibre.devices.jetbook.driver import JETBOOK, MIBUK, JETBOOK_MINI from calibre.devices.kindle.driver import KINDLE, KINDLE2, KINDLE_DX -from calibre.devices.nook.driver import NOOK, NOOK_COLOR, NOOK_TSR +from calibre.devices.nook.driver import NOOK, NOOK_COLOR from calibre.devices.prs505.driver import PRS505 from calibre.devices.user_defined.driver import USER_DEFINED from calibre.devices.android.driver import ANDROID, S60 @@ -694,7 +694,7 @@ plugins += [ KINDLE, KINDLE2, KINDLE_DX, - NOOK, NOOK_COLOR, NOOK_TSR, + NOOK, NOOK_COLOR, PRS505, ANDROID, S60, diff --git a/src/calibre/devices/nook/driver.py b/src/calibre/devices/nook/driver.py index 67c543a763..2fe8f667b0 100644 --- a/src/calibre/devices/nook/driver.py +++ b/src/calibre/devices/nook/driver.py @@ -81,13 +81,12 @@ class NOOK(USBMS): return [x.replace('#', '_') for x in components] class NOOK_COLOR(NOOK): - gui_name = _('Nook Color') - description = _('Communicate with the Nook Color eBook reader.') + description = _('Communicate with the Nook Color and TSR eBook readers.') - PRODUCT_ID = [0x002] + PRODUCT_ID = [0x002, 0x003] BCD = [0x216] - WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = 'EBOOK_DISK' + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = 'EBOOK_DISK' EBOOK_DIR_MAIN = 'My Files' def upload_cover(self, path, filename, metadata, filepath): @@ -102,31 +101,7 @@ class NOOK_COLOR(NOOK): is_news = mdata.tags and _('News') in mdata.tags subdir = 'Magazines' if is_news else 'Books' path = os.path.join(path, subdir) - return NOOK.create_upload_path(self, path, mdata, fname, + return USBMS.create_upload_path(self, path, mdata, fname, create_dirs=create_dirs) -class NOOK_TSR(NOOK): - gui_name = _('Nook Simple') - description = _('Communicate with the Nook TSR eBook reader.') - - PRODUCT_ID = [0x003] - BCD = [0x216] - - EBOOK_DIR_MAIN = 'My Files' - WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = 'EBOOK_DISK' - - def upload_cover(self, path, filename, metadata, filepath): - pass - - def get_carda_ebook_dir(self, for_upload=False): - if for_upload: - return self.EBOOK_DIR_MAIN - return '' - - def create_upload_path(self, path, mdata, fname, create_dirs=True): - is_news = mdata.tags and _('News') in mdata.tags - subdir = 'Newspapers' if is_news else 'Books' - path = os.path.join(path, subdir) - return NOOK.create_upload_path(self, path, mdata, fname, - create_dirs=create_dirs) From 20210f046ba65cb593620b0bac212c08d0928ed3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 13 Jun 2011 21:52:16 -0600 Subject: [PATCH 20/54] HTML Input: Ignore links to text files. Fixes #791568 (collections of html with txt fails) --- src/calibre/ebooks/html/input.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/html/input.py b/src/calibre/ebooks/html/input.py index 3d5f6c00ef..ce6c46c6cf 100644 --- a/src/calibre/ebooks/html/input.py +++ b/src/calibre/ebooks/html/input.py @@ -455,13 +455,16 @@ class HTMLInput(InputFormatPlugin): bhref = os.path.basename(link) id, href = self.oeb.manifest.generate(id='added', href=bhref) + guessed = self.guess_type(href)[0] + media_type = guessed or self.BINARY_MIME + if 'text' in media_type: + self.log.warn('Ignoring link to text file %r'%link_) + return None + self.oeb.log.debug('Added', link) self.oeb.container = self.DirContainer(os.path.dirname(link), self.oeb.log, ignore_opf=True) # Load into memory - guessed = self.guess_type(href)[0] - media_type = guessed or self.BINARY_MIME - item = self.oeb.manifest.add(id, href, media_type) item.html_input_href = bhref if guessed in self.OEB_STYLES: From 11629281159042d9865672f1e33c2a6170db4eaf Mon Sep 17 00:00:00 2001 From: kiwidude Date: Tue, 14 Jun 2011 15:18:32 +0100 Subject: [PATCH 21/54] First cut of Plugin Updater plugin into Calibre code --- resources/images/plugins/mobileread.png | Bin 0 -> 641 bytes .../images/plugins/plugin_deprecated.png | Bin 0 -> 9932 bytes .../plugins/plugin_disabled_invalid.png | Bin 0 -> 11925 bytes .../images/plugins/plugin_disabled_ok.png | Bin 0 -> 7791 bytes .../images/plugins/plugin_disabled_valid.png | Bin 0 -> 10673 bytes resources/images/plugins/plugin_new.png | Bin 0 -> 8939 bytes .../images/plugins/plugin_new_invalid.png | Bin 0 -> 13038 bytes resources/images/plugins/plugin_new_valid.png | Bin 0 -> 11586 bytes resources/images/plugins/plugin_updater.png | Bin 0 -> 18607 bytes .../images/plugins/plugin_updater_updates.png | Bin 0 -> 15695 bytes .../images/plugins/plugin_upgrade_invalid.png | Bin 0 -> 15662 bytes .../images/plugins/plugin_upgrade_ok.png | Bin 0 -> 11844 bytes .../images/plugins/plugin_upgrade_valid.png | Bin 0 -> 14152 bytes src/calibre/customize/builtins.py | 9 +- src/calibre/gui2/actions/plugin_updates.py | 33 + src/calibre/gui2/dialogs/plugin_updater.py | 814 ++++++++++++++++++ src/calibre/gui2/preferences/plugins.py | 9 + src/calibre/gui2/preferences/plugins.ui | 33 +- src/calibre/gui2/update.py | 24 + 19 files changed, 912 insertions(+), 10 deletions(-) create mode 100644 resources/images/plugins/mobileread.png create mode 100644 resources/images/plugins/plugin_deprecated.png create mode 100644 resources/images/plugins/plugin_disabled_invalid.png create mode 100644 resources/images/plugins/plugin_disabled_ok.png create mode 100644 resources/images/plugins/plugin_disabled_valid.png create mode 100644 resources/images/plugins/plugin_new.png create mode 100644 resources/images/plugins/plugin_new_invalid.png create mode 100644 resources/images/plugins/plugin_new_valid.png create mode 100644 resources/images/plugins/plugin_updater.png create mode 100644 resources/images/plugins/plugin_updater_updates.png create mode 100644 resources/images/plugins/plugin_upgrade_invalid.png create mode 100644 resources/images/plugins/plugin_upgrade_ok.png create mode 100644 resources/images/plugins/plugin_upgrade_valid.png create mode 100644 src/calibre/gui2/actions/plugin_updates.py create mode 100644 src/calibre/gui2/dialogs/plugin_updater.py diff --git a/resources/images/plugins/mobileread.png b/resources/images/plugins/mobileread.png new file mode 100644 index 0000000000000000000000000000000000000000..ec04625351cf295a020e293faf5945a05a745e26 GIT binary patch literal 641 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 KMNUMnLSTa59Uyc7 literal 0 HcmV?d00001 diff --git a/resources/images/plugins/plugin_disabled_invalid.png b/resources/images/plugins/plugin_disabled_invalid.png new file mode 100644 index 0000000000000000000000000000000000000000..f905703564eb5432190f44ba7b00207090137a48 GIT binary patch literal 11925 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 bp2YIMPTP#BmQZW&00000NkvXXu0mjfRC}&U literal 0 HcmV?d00001 diff --git a/resources/images/plugins/plugin_disabled_ok.png b/resources/images/plugins/plugin_disabled_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae52697cd9cc6ee5c25ca5718f9febc9f7b6a12 GIT binary patch literal 7791 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 BwnP8` literal 0 HcmV?d00001 diff --git a/resources/images/plugins/plugin_disabled_valid.png b/resources/images/plugins/plugin_disabled_valid.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c7ea5fb958cc244c630fe1d593a827982ae6f7 GIT binary patch literal 10673 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 Xv%S{n&PhTX00000NkvXXu0mjfQ0-m; literal 0 HcmV?d00001 diff --git a/resources/images/plugins/plugin_new.png b/resources/images/plugins/plugin_new.png new file mode 100644 index 0000000000000000000000000000000000000000..cf76fd0f6736970ae99c9744d411b8ae6e872e45 GIT binary patch literal 8939 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 FV1iHyD<1#= literal 0 HcmV?d00001 diff --git a/resources/images/plugins/plugin_new_invalid.png b/resources/images/plugins/plugin_new_invalid.png new file mode 100644 index 0000000000000000000000000000000000000000..ac9143b2b2917cf2635a9af678c965b91c911bc2 GIT binary patch literal 13038 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 literal 0 HcmV?d00001 diff --git a/resources/images/plugins/plugin_new_valid.png b/resources/images/plugins/plugin_new_valid.png new file mode 100644 index 0000000000000000000000000000000000000000..0dfea2852e4f966f7f612dd8a4350facb77f0bac GIT binary patch literal 11586 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

    _ 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

    P0iHF6cc z&er|$7@T&vc#%eko@wPa}QKH=0arUKS+NG20r zd^+YQYRA0{#^Djf5iz zug`XFgYEy?<{lX3qc_y~!LwgQ^E%5^!*q))4f*ky0jn0B?7o9pi0^U|fNO(7CS%)~ zF4EwaJn9ESo%NCKZG|8I#_YB5kaY{Z-@X7tZa629?pn(bRdoG`K=$4_7Gwr4IBpjb zkoI=q*eGI7z^X!i1?4wTAd8WQA1^+=;CT!OpK3TED2Ed0jU1wNN@q80DaFGV29dmn zB`yoSaL(at;jo4`Med+eELs+i=H=rhGK%~0qbqZM1mSoU)dm%@l&6wuN+o`*UUG)- zJ23IPMc_jbK?$)(C4s)h8HU*;x_V&eyxDLDd%u)-ACoXdQ>K=ug`I;*M}F5uvG5`R z%J-Yw@GNu<&Vbgw!<4m<&p=U|*U&A8hC0q=M(J$KB@Wb{Lm2QG*Y+wv0$@aFrunRo zNimRwHH(+~-j~h(o(<2!<)5?xRt7=!8$K6nrL_uh(#yOAuwO&W&mp8oY881bsZ>3~AGgLwHJR4ktEPbi}0`w@Uz)5qL8 zhbU^%^6Zk+w43P5Z%F_ce}%~I(^}a%fasBn2#|a$#HXD7-t3|S25M%nnwOq>`c+`2 z4%N%)%6bBl8}R>ir;;B5$gCadxzqd+0^u&iGoomDZs}s58+j9XWGbI5_#yWYmb-0P z+jg~(9{dOSbtiR>i z;|?qGI=Wbt)TWpHDcC!>+yk%gOYGh3*e|{8fQ5<69{IKruQ`?x!is{~t`k8Zm>z?W zlgo!2RebXFQ4>pe9lxYr`B|`gc)7u~HLd6SX9D?NXjuB-;#g|p6%eaBnM$;V>Huy( zKGyezeD5Hq)$ literal 0 HcmV?d00001 diff --git a/resources/images/plugins/plugin_updater.png b/resources/images/plugins/plugin_updater.png new file mode 100644 index 0000000000000000000000000000000000000000..bbd541dc03f42d103700ac71a9672c451217d220 GIT binary patch literal 18607 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