From 40eb57f94c833b1f0d445fbbec844123ceecfda0 Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Tue, 14 Jul 2020 18:34:14 -0400 Subject: [PATCH 1/4] Correct scaling on Linux and other minor fixes * Fixes #5081 - Initialize MessageWidget::m_animate prior to use * Fixes #5021 - Don't change tray icon type with unfocused mouse wheel * Fixes #5029 - Only use HighDpiScaleFactorRoundingPolicy::PassThrough on Windows platforms. Prevents significant scaling bugs on Linux. MacOS does not support fractional scaling. --- src/gui/ApplicationSettingsWidget.cpp | 1 + src/gui/ApplicationSettingsWidgetGeneral.ui | 6 ++++++ src/gui/MessageWidget.cpp | 2 +- src/gui/MessageWidget.h | 2 +- src/main.cpp | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/gui/ApplicationSettingsWidget.cpp b/src/gui/ApplicationSettingsWidget.cpp index 8d958ab7a1..cd2b48c65e 100644 --- a/src/gui/ApplicationSettingsWidget.cpp +++ b/src/gui/ApplicationSettingsWidget.cpp @@ -126,6 +126,7 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent) m_generalUi->faviconTimeoutSpinBox->installEventFilter(mouseWheelFilter); m_generalUi->toolButtonStyleComboBox->installEventFilter(mouseWheelFilter); m_generalUi->languageComboBox->installEventFilter(mouseWheelFilter); + m_generalUi->trayIconAppearance->installEventFilter(mouseWheelFilter); #ifdef WITH_XC_UPDATECHECK connect(m_generalUi->checkForUpdatesOnStartupCheckBox, SIGNAL(toggled(bool)), SLOT(checkUpdatesToggled(bool))); diff --git a/src/gui/ApplicationSettingsWidgetGeneral.ui b/src/gui/ApplicationSettingsWidgetGeneral.ui index 7324c5ab7a..8d5ba8ad7a 100644 --- a/src/gui/ApplicationSettingsWidgetGeneral.ui +++ b/src/gui/ApplicationSettingsWidgetGeneral.ui @@ -626,6 +626,12 @@ 0 + + Qt::StrongFocus + + + Tray icon type + diff --git a/src/gui/MessageWidget.cpp b/src/gui/MessageWidget.cpp index 494a815423..6479dd280a 100644 --- a/src/gui/MessageWidget.cpp +++ b/src/gui/MessageWidget.cpp @@ -103,4 +103,4 @@ void MessageWidget::openHttpUrl(const QString& link) if (link.startsWith("http://") || link.startsWith("https://")) { QDesktopServices::openUrl(QUrl(link)); } -} \ No newline at end of file +} diff --git a/src/gui/MessageWidget.h b/src/gui/MessageWidget.h index 2c8c9a217e..f7067904ae 100644 --- a/src/gui/MessageWidget.h +++ b/src/gui/MessageWidget.h @@ -52,7 +52,7 @@ public slots: private: QTimer* m_autoHideTimer; int m_autoHideTimeout; - bool m_animate; + bool m_animate = true; }; #endif // MESSAGEWIDGET_H diff --git a/src/main.cpp b/src/main.cpp index 31d760be42..7e340da4da 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,7 +52,7 @@ int main(int argc, char** argv) QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); #endif -#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) && defined(Q_OS_WIN) QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); #endif From 6f57cb8384528f941ac6c9b6efdce7b828ea36c9 Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Mon, 20 Jul 2020 21:27:23 -0400 Subject: [PATCH 2/4] Fix entry level Auto-Type window hiding * Fixes #4962 --- src/autotype/AutoType.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/autotype/AutoType.cpp b/src/autotype/AutoType.cpp index 913a3c2ad0..310493cf28 100644 --- a/src/autotype/AutoType.cpp +++ b/src/autotype/AutoType.cpp @@ -233,7 +233,7 @@ void AutoType::executeAutoTypeActions(const Entry* entry, QWidget* hideWindow, c macUtils()->raiseLastActiveWindow(); m_plugin->hideOwnWindow(); #else - hideWindow->showMinimized(); + getMainWindow()->minimizeOrHide(); #endif } From f7f1af64170c676901c2c1da966eaa1e1eea3f0f Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Sun, 19 Jul 2020 10:08:43 -0400 Subject: [PATCH 3/4] Fix and document AutoOpen * Fix #5017 - ifDevice -> IfDevice and correct behavior of negated hostnames --- docs/images/autoopen.png | Bin 0 -> 35040 bytes docs/images/autoopen_ifdevice.png | Bin 0 -> 19407 bytes docs/topics/DatabaseOperations.adoc | 25 +++++++++++++++++++++++++ src/gui/DatabaseWidget.cpp | 23 ++++++++++++++--------- 4 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 docs/images/autoopen.png create mode 100644 docs/images/autoopen_ifdevice.png diff --git a/docs/images/autoopen.png b/docs/images/autoopen.png new file mode 100644 index 0000000000000000000000000000000000000000..a825accc2efaf45437874b9c924543738a4f6d64 GIT binary patch literal 35040 zcmbTdbyStX_cwY#5ou65rKHpYC@6vwf*?pY2oK#YC2+9Fo*O{0e&CSgj*?5di%%P;D z?jfQTJQ>`R)M@ExIXSsi;4DZa^7Ql+n+eHnifn4{&S{8fYinCwU5$wNeu`AQxImVd zS0pDVV|%!f7Z*;o7km2$wHFr_uG+}BkFty`-^VX!W)?4MT`n$a4C5bX)P`IlwF#_nNYOwMv9xmz~M6| zcV4vO#pR#Dfl_^G+M*K>!QX^K|x_Y>0^9eepu^jqWq(yCUPux9<^5A zfW!B4cNHYxYf0PD*72$gH}vT9~0-W>;IzGD#E(A z*Q!=#3fIqM!n$ecWzgv1%kh}7kZ>j6O2?==Cix`qpm5}O>7P>r5#K9RJ_U6r_&I;F zoeP85*CX3!=jFp*GGqrL`>akfAACpj>L!SFmnLHis8+8oXB*_)+&mS$Z84aQ`L42_ zX7eyFy6!O9^+Fr?kM!m>lymuptruN>$9#;wO=~`VPlD~*W)V!gRUxmM$+{4=z2=-c zoaN$EX#MDQNi?HOctF56>%w*P+7PrkTd5QAIstB$E$(uGS2?sw^R=L^=}Sp%L-o(^ zWnb(aij)<+-#dRU$c?4r4UhA1`4R5=W%f7JqPH$QHdQCn>UVUMq2iYEaI}9O^!1NE&k{X`VyW^}6{Ea9BRXr(5qW+qhLpf3iN}eqOw1H=T?%^ts|C{{s zd?U`=<4_Y#2N}`58HY#+kIRCP?)>^~8pzcq4TNs%|L~#rwCU!fyS%w`as1k*4z%g6 zYoavg&I9~$oL)7cc?b2SQxn#z2KIQ2AdLNnV7)i$V`6Vrnl}>ClC^tU6mGQtP5 zNuhPRFQuBSF#bD;NS~<4HJX2FtDP>-K;tJfWZY(3{dsj9-{*WQZ1be3;nj^6u50_l zcV(8UHdrX)3M`Y{;h{-?WplX01mQ8GDKTE9`|ZzYE{mktS$fzY$ye-!c62QsN9eP& zGi_!AuSNDL8GnMuTn*s#V8KgkRUDxlQrls&ZI|g$hHa>f>Uym8jl!?^55TP=VK2^E z%ftl6&0lnCP{PL#E2}-MzkYDfI5ah>xF#~q`w(t|-|CdRPf@>@PJ63mo%uHAfxY=~ z;;kN^=A&sJJg5u87|~FKp9hpMGGMK4UXjb6$(BV zj!a%YhDp|jPMsJf#`brq7O8AZcuVG!FZPhk*n2W^&3C-MdirVb8Bb)>mJ%hrqk6AO zX&zOF3zszTG&f#?O#`*os~(3!Vg`g=KnR**PFMofq3X#+R^WVIPkWvBafi`su3^3* zQJLLXEc>rP)K#N~u*I^cWQPelX8G-T%7ZxLUC`m|txCB2LQ|>|b4=``o?~$@Xg=-eiy^tj zAGb!xeD!;@&aJFUxrQ~~?w!j&fU5k{{3uLK2p?b(e%*3yJBdRg3g5geYKI0a$!$ln z7D2wf5{O5)nhM|~1YL5`N$}wzg89c)$>}-v8&dxQPNXq54~-MDe^ojhTr6bWn$}<+ z45jHb;mCn@vtg)!vF|~dvC^*5{KGU0`*p1OJ!U`Oz#;05*uz4(;TRhy|F#F;&~LDq z;!e7L4O#x2IMt|=KtEdV58VZ3_;sN6!c=pC+zBY2KWSzHalsLAm6AZUNdxHM2(p%7*DwJC10izk9N9=YVFX zk8O#QmAy57_(f0Du$&V2@-5DSmkJ}FobVd1f;9M+%)=`9#Fm3wC~y5DX-XWc>2wiI z&+@GWP<@qv&RMmHmhtsuAbf?XUqmBbJ-{xS5lm_T^FenIOzBb|J>r-lcw0U+-67zS zs)%f>0wtd5$|J9FoTO~-&;7d>3*3KhF0`VT5I#{>wC}qr;E37Xn{ zfu~{Fee9JB*uy1}jEoAxuRbn+SmG^Q$pO?|;ecNdpQ1w>HB-{{Qr-%${ z{kC1hmEASgH=%b@!6{q=edV_I-+DD(~>-F)4~dzkD58aBF!) zW?1f}3Bon{wv_-=%uB{KD;aT^?p4P;Q_c(G4rj(_M*=0%CP}izZPslK$>rHQW^TM8 zI?^%zhAr&p_fsB_6Hp4|t_Eie#<6l>y8#a=!ow#|RYi;5L>0uidI{-iDAzk^g(5|0559LSQiQr;A`TnYJ?LP{xKK60w#^ z;7hgG9)#W=nDIKGv3{)wPMpnu4S;@z6IZsm4(vPo=D@4-dGY2kWRCnv)AN_& zm{P!}!sDD*<&G+CyuI2rA$3J=NmI4Kd`oBR`@6;rci4XE+z**(^^XrcFv_}o&>U!F z-@G&Y^T<-Lg4YbK6r1s3eISiupY>-!=coJP7syYWnm8K|^jtiED%1zK>K~$lCd*Ne zTJ|aZh@&nMt++$|d8Rn)A#qVI-J4$8&qo?486icDd~7aQfU@)_#IV7K0FR6OJ4D_S zZP{q^h&oRj%ysjz;~3Drc5t+T>IkbGu{46ynLbM|1TUM)4lEpsIJOt3J{xi=HWYk! z&Yr1AZX0Ell1`*Lq%kdw4%;6JRaHEhe8}95!(JK2kko%UCn0+_Y$vChn{FV$$~hF* zi0Ww0vF+>v?Efu4{S{yxH5|)dA7EyS+C+SHrHnVbjpDW9cdfjzf7*bf-jsW*Ru@@@{+yso zrnh&zJ!j{|gDr%KR0O7G4)F3^=4y#hPR%n*{^4HCsgGw8>7^S&!54=Ko7K@kxxq;v z8b=CP{1`*U%Z?eLI18%0o{SJ&XNf3t3bu}MqdQDH+Y7R)Vi`@^&|`<|-Kp~#auI#< z@U?IJ3$HoC9mYx`5OEAYI=)($cAO;O@-64Y#0U$?!zolK4z=HU(VO-?wmweWRDe52 zcHzmt>ED8qPL9*o`}HWdpC-CH=ea+_MuD`C3NMmM%Ax4^hu4bma-Ch8qn~J*g47E; zdg{0C6qoxY-Z!D;ymIZC`HK5UQh2P=0YDxpz>xbF7?YwhL**Vby9wAd8!1Pu>2;q+AXIePzqg)W-K)Py+Uq zoYNY!WbvjWO5Ag3Vm$<3KM2OCgbX-YeoG^kxA>S4h&IHH~zS&7rz^e;RVUe zD1E0?Kgy|G6;=7bClj71IHz^UjkY+QDC(g9l2mK*paYek7d}>y>ZGmw0NX>LwxP_b z^A9ZO4^D#z&Ch5s<#8)t>L!+JRpwmp((G@ysC96#w+PV{mG2zt3nTP-W3%?CC zmAa*$&agl-N*tbrT(GA#t%*Wcw_^l5lS+)>Ps_mw0SmrKKw%d#xH~RDa{K4L?Gd*0 zVnFI4KaNBom<~dCQFs!uAcXsv1|oyO&FlsslvhN4Y;YWvRVXCvf7jV*$TTBy|BfW( zxCr>ePnbKsm3vtVH&w@FakyFgZoMnl#Gh~d>a4w1I_yxSG^N|)95pOvrHyts_;^H{)`gxY9;@-^}@eF z77c}qovEh9r@%0pZ4SB@xCQgohI;lAH^P#olB7>T`^f#o^Zx(Y8Ue%GH=M4SZTO3= z5vm8KUtaj5=}(^)i9bre)MAXq;% zbv9_n@6|I)MN!7HzF;#;e`mMe6~E~(5};b@hm0?_KHSZ>;@Hv)fB@Au!&9M4-yT?+ zZK^z7e}XC45akFEue|bmZEBuao2ok&xPK!gDcM;rZ9Jj~wikcRbZ6s^{jbq^fW-mQ zlJUCLKDh3_GbiO3t~WJ&%=D)E)E-g;W-5gcYYR$}x!Qv3!hU9^~?Q;Vp$-c{Z;R3C9r~4U8>clRrA7ZDS zF^!uv++Un4iFZOG5nX`4*#FDFyvh}}=x>;LPm>Et(r=YKm6g69D;m$FT zWuEb*PROrJ{olGci*F1mN`K?4(VuhSDBx3` zhmPVqt)AO*sFwToTnY2KwC^R-vUu#o{qd@&ENkKR_3++x(4-WX48(nb{A&;$H~>eV-DePwaytf zZd0A73rib*4Tia>7eV=!zuZ*wgpXRD^RC-z_1^*kG+1-|N zgBL!B;5Eu|=L*u>ijfmweY?bq3LMchNYwEHZ6K70@B7EgOW zKsY*NNEH>m8~;+*aquD}yU<}Tfu!RbO+A-uD%|_OYk=|I{uFE_Q5=psw3gOQC#K?6 zD%iJ+EWJj3B`{LBc*t$1$R^0<09FLSe(MjU=K@;WUkLn~JSy;GJPmD*ZZr*9?`VO2 zmuM1(KQo#lA|!3DTBK9;0T;ER!ZQ~N9A%@;)=FFtTpVns+v*@S_@iR&kjG3Hy*UUm zNf4KyC0qH%{CB`AwK~BhwQpHf7VM$blwa!nt3tgA$sW3R3pM6}1fjLF-jcWc7x*pd z`<9Qni;3yK8J+XR^rI_wN0m?~FcNzodD1I%b`D7$hZZ=|%_OJW&fP(zM%rC6bHNwT z^g`itXwz?NvReGr?mk6!BW&2Mj~#~ET<2brEUYP3#{C1%2R3AU*$Eeu@vmL1Kb&Rb zB`(*|uv%*Ce51_5C(AaJcG=EqAD#d9=9G5VT3N=+YRZ;KW?CKVcU}gU%4#}~wmLqZ zo+_S7GBbIZawUPLI1^F7TCYt0a$>CO5Sn zug)RN+-oTw^5-vkVg_BzSLV+0U+LzF-Z41rmp#-k0%jgpZSKeh{FP(2h-k$K3MaL8 zs$9^#kX2AQL7wy$Lf;V46LGGzt$XiuH52w4Y$2 zY^hq#-{+JjKGudhk8X4PdzL6?40q#?SK^$252u(b@iXaOvP|5EMDToX4vS_vC;#bB z;L}WNM6E~0^NF~w@A4i;9-b39?x!WN1 z{4Eb5Rf{GbaPV`sG}Dr?->7=G_-qz5qi>i>*OQIO_w1b{ygY+>Grs#1;EVlnc@@f> zcc~EcWrW5O8B+dw@N$V(d8mIMVLFB$cPIB1rZN785xk4@Eqb#`@;ht7SfW^Dug;fu zM}agueEJ1ieEB|&!jw{sDiy*0nB`}VA6bs%Aa&S-YW@euDNPF8W!A^ja$St7cuV|~4> zgC|A8_@EsUCH4D?DCMRkuvrurFGzGyvTKG!vICf1E6w1BOs#oc*@olHv|_epmR&?1 z##WNf$(g?4gu4N#zcZ4lt4B26>)}wTlEYtg`=yc_7n)<~-9hhHC~F z^m3HZVtjYy4@i67-6;G8OfU9W2UqC3S{LwJP9L?KO6lTdcJ^Ww&L>? za2VL${tuWUbb0dmS18Yzd+s{Uo5j&CdQ=XqmvsXs}ioz=6$bjh6+wE zmlS+8-BIKcr@?K_I0s}N$#@Aqq4OCQ6`YL4i+VgT7rALlwgFf13j?zBTx8 z@b^Y##LPIQh!V%%3G`@{J?%(i)Z*ChIYKsB>dtS(_bpt`LdD_lMx4oCp42IKeC1lE zEM^%CMu!E3LKNt07ed3+Tcydm>q|p4_pI9`v1_^KcjkkpHlra?4gQRkd zyc#Tns6Ggs%=f6rvulezaW{x?UWyJeO zDOd%Trr@zf4Xi++=3f(ySsfx!m=psEbb)T`RIU73&h=+AM)=Mb{e^5>CnI7Nsr%eg z2QmX;b&@8}Ajh?ZJ2HKXLHi9RyI)Kxn3})RfqiJrQzUihULCrcQ7C*YTCY)4+$Kv) zoL7nT>(Lq&kNjJzI+V;5^E8kW^UtQbUNjs`(CVQ@KFV#?NCCY@fTqHUgS5w+3cq2F z`D52j3a>Zx=1bc|h&vyzi#Smb+DUw@$T#x~k9IL|97ONjwnS zH=#b%_P!9Pw7qjvWOJjf6n(0hi{{&s+IX86g#0iqk85ip@HLs1|2r&C_;-~}WN2~k zDGklg>yVRc+i$E5vp3p$k-o>6_?w{I3b=ViOCB55Gx%k9ZQOnAJ8l|1f=-Od!r?W7 z9X=e$U>!oLihh@%+XsAHzBa$^d4yXMJt5rS)Oz&pOTw(o@o z^V<15?IQaib=vs{T)j&RPv03-*TTHJ2R}MZJVy!*ziXeF#ay3PfsIvoh9uId)W3@RAH1pM0{p~@xD&@sl`)?4xs2vfsy{XxjKJy z)+)4$Rs13GVGy~C$I2r}L6uFJl9^K|#{aJa>v1VyD7*an(HukEDT7Orerz{%7ziZ( zRr#_s;jgFIe!?CiH;_w?PX7rAa}0v7|0He9u3Unzewobgm`YD^FZZ~+=73KuM8Kf0-z`5cx#wdgm9U*P59~XVX;C^P? zG!&DquHbU%uMiMe5=7??r_KRE;ao|ztbBXX$|G7wG{tovn%2<>AUG-=$AhP#bn5w63vuPSi`MLQ%o=>eVuHP z)T^1!@&Jj-G0h9ch{L9%$rFLr4}>@HPCbrbz1y6f5YDl`;EUF7Hw&O3wM^!&E%bp4 zkvj`1ndNRmUo8@ls`%;K2vqND-6*J&QKB@TWjjj&xN6-R5px~vv#hJK|4}v<4bJCd zg3LT6f_j|!;|oD!6W+WYWm86_&0as;(~{K6f!k0No-c^OwenE6N^}->6z^vqv2cVd@~zIoA5JEbl!PJViwC^Bz=Du^<_g znpPaOtC6ImD_T{lKBV!u8nA0?7HiaO%;Vf@m(S!(Z7bOM5@R4-}(h|1V)l`6ezR3^|w@No@%T2AVd%+ ztub<(^v{Z$UaSl>dAXW^n1e}ZmowvyImp=M9Hk^YkI;Xqe1Oz`JHK!rRND0w*F@$w z9|&P{cN14$4aA=9SjaaB0fTDw^#rgcdFum>!|KG5qRy!EUS~$j6ZAIlHqqPXHAUIt z&eWXZ;m$NE4pFmvsgQdW5Vi6O4|ewO^N}6JOHV3o60PaU0s_V1srKYZf=kJBCPu=}6 zCWyObi@h+BsFkWEWO)e=gzsc$@`{LdCLO@F)AxzLIy*lfq^WF+);=uyipULY(=7$p^Ct+7e-Ea{gFcsJ>i_r&&Wj|pRj?tvoDwQWyMbIAFR|7&8VkBdapPX8px z^Q0L&TidGa*}LWQ$Z*9?^Zo!*@22etC*+{BMLSmL2@Q`TkwDEw9<$GtvU6zflzb<)f6;s*$8F^PPNT_~xQm#SIkp_ZhwW5VRCLjdhX@|kIud0y2Vr(fNa(v5RnNr2e+E$)d zEYg)dE`>g}HffAnsqpC#xK;z#%lq`!QDMMcd7*2eBGzIuSECxg@Cc^$qPOoI{{v8O z7E7NmHvx5($i^FHX9gvj^6Y8zWF*t-TWrO)NCcR=Y?Jem?LwVvmxL{0D1WFm6aSAh zqCwm5cMZS2XFBEkexcwq{@?htP!Ci;{s68gxWKV!*injxMw{#gG*#qYBfHPzE-B{bZzg3VPO?Asz=*JUu|VA5!_*&-}+gwNO%74aEQ&g-PVS>i7}D zTb6ScT2x6ks$jE1+gB`d7O9q&bhBD?&u&9L6v)y@9Sw>87R~{#2cLr+59*dP|EMA! zgZp;@oJpqtvA_^%%qqGkLtKL@pUMr94L^Fm9!CB1skNej@H@o|h&XdY@!^DCFnwFQ{)fF{ zEU(~bUBtjS#>oT4V7eDEGYc16D1~ zMNlhX8y##4x+Ezn_EL4(_%a$c?`R*P&Hc`9gb>J(wK=-b?%%MroOxjYopL8ZeJ~l! z4UCm|D!SsJpBVeMw?l~F=dG=+I}17V!>YIYo|k`H{{t~ySl66#6!5CI7Ug_iRe+6X zLaLTV4cek{xot0YKokb4TL^%^#vSbcJ7y0(MC%2>a8T7n`smjgw?8DnQz8g@S`3Xl z1V!U+2E*+CM@TJQwr#s;W zqVKI~iC12wa<-Sp5UT}C4Gz`4q9w0);~poH%L-6eT3lUES3hMl>>BpZystJLlhW)n z_#EB~_q=+_0-@NuiN}$6b<68NHwym$eL^vee(IaZz;2u&gx_&x<44W(UDw_pKXwm4 zg3p3rBG$c6Uw#7FMxb2wb!$O8+S1o+zn<34I-$elz|^X>1cp+8Vk_}S&8$n?86O+k zWh6o0;SWsa7oarl(o2Fwgxr>3^&RS#uBl@GpUlWc5Q*n!3O}=e{LlXxcKHa+TRUD` zON@S9Tj6@!l74zPe?6`h@3(~%*DLvtG_E&|wJ`f4n+wyM(;3ga2Ab!6l% zg5$X03nXH0HRfjoX-V=Mnw+&2Rm~J(WdDmaSpQ46rex7uWt2TV9ntka8Q0ZigJEwd z4{9rK)+nGfJF2RbIcIFKu=o`($K7AzQ=&g79{cl04ay*Ao}E7c^nQkf`Qzt)ljaYr z$mD+W>yfQwVaS;Up-JP5jLh7{j(65~@4&wK+=Uv7-QbAbU+(zvG9wx5{&?nNMY4Ox z)ZEoOkGv_8)8sGd8?`4D`j&N-jqO2}orurYCQ6;C?QgC+gf`aNHBy5+)i-DjdqU#;@jJS=lTGcDd4TNeL&s)hK2H6wp5k~MFe*59Y$SGr40>0J`ekHY#fEl= zEd@B8X0849@HHcFVvB3Ubntaw{?&4`!?X1iAphO(QR}FZj~c4_c1-uT?h(Id&JH@P zGfb;}`fn6#2jkt1>j%K>8zRM)1Ml~eb4Sq~M zBx)*M(PjtUI(9?BLMb0Yu#-M#2xT&ut>e+9)TFS46eR)G2;9y?SG0LS8_DPouvjli zdkYxJaW_KWSgMv0jJT2^XtMUU=$=F&=v$?igyGbFaCe*(Qw_`CO-*4!(wkaG zBGq`hO0k%J8kC-G#br*Da(IXn^U-qa9Lej@pVyZ~=k~;MYc#Vh=b}3wF9YWT9CNxB zmkZc&%jiRNCU07g3j|;W%S}-*>Zg95!5gjC|8h)WOYyj-;cfRTBdXOSBs^D8y~k%6bJjS6c}J}ycoCM`Oc@2gKW(bp-y3_Mg` zN^~LULTJE@cRKN^F*3xTcL25MM#3=Lpo5H;8;Nsf|NOU3B`HI(x4 zQ)N=oI9ARncnDtVfqr%uX)!!YDC|%pX<+JK-#y*nQf6-Iql|w$x2yK0+HVKYJtl(2 zq*P&tn#98bC9!(Bd%i+fSl}^A?I4RyK}GlrHm{S_(aKV#Kk<{4hI$V zp?c&nJYr66UtHRQ{Uyy(i5fj@m|`@`^oC583!FG4!oROsKWhQK8bq~{6DfOt{WLjB z;kfcgCGXKpK?XTzlICCWpRJHgdX?3}$HHhW$q9B_5LMJY!i`C3}{`D&GdJ7}Xwp&T1O)>9{V0*TZMWV}bsNh?LNK3G?XH z_86`0YZy;$!eD60)Gnv)(T+JGXt;gV@u9j|Zio=qkg!B0O)1-O`@#`reh}sS@SZ;; ztUhFiQX_8GKb1RC?jN3uDL;F8g_#kjdY{z-A_fu~E#`AL?YZQ+>tmJ!0;3Bn*q0^( zqGxqs4Z^#5$SB?jvND~Tg-z|*FVnMdT4lw$Wl#_hsX;R56SbT8F0Jf)T~k#U`#RM0 z?o9^5Rxlz4o;wTkx-g9H?NgO>0aWiySv975T5nk-e{8|!?Kq+hyORL~6F4S`pLDa9 zg1dSueaR0O<`A807b1xS*JtH>v(GRH_UA*WPGK-mm%nX+MUsbAuu}Y z^}f&@ZJEFp!lk6`8pmSEjV(^6p0AiOpLV{Nc{uTlm;VS zd|q!qD`LAg|CRils}!Ib{+}GXi6NV^;0XU6$Z64|6Bl(FV?z20tXBJPrLi9)e%{}iNRMFKA z8%)qJ&^I$cp^3jv{>X=d*sriaZVF6i0w-kAe+cnc4pU*+lWhcfMues(9)wM~n0I!E z3FuxyN$xlaY$A;~=C67pT$3XFaQ@Jq+VVdb+&eQ`B{<2X#Jl4}aog{Croh8)n@ozM z?-1VfH0us|S^Bjb{5itoGs|CjpY7a8J0n-`zX@Ni^$qVs?rVsn>(gH}L@iE1b1SOt zss`e0_L0JFtGJNXF=cT5hsDYL_+K~IDJACN)f4?hPm~Rw@I$_40|CS3z`#-2+Bfd) zsquIkne+`}eh7{z9AswKcyLe)#rjR1ENSV;=skdt|2nw{N3Tsm(QMewTpptiNwD*j zNTTI>3(0=713y#P%DJjeG3;=Df!-%AOZLUJ-AnW((kF!6SG@(7Ru!W1;q_bC)77u} zil|FMPe&POt}or}la*WKVQ;rZZ#JS4DXITz zz;;A`Fvbm8gFW28W6s3uXTu1F70w+OeW}16nzfT8Y0U~e^=y|LqWrBkqZBToY_?Z` zK6smH!UI`itHukH`zd@uRJ%~B(Aa11wvx!-xwVi4f0`<0sqw}fMYcDuqt)_EEYx&g zmZAeSO;*(dgHZH#q4+<2NK67&5;rfE8-$zJ<#dA!3txl*H)QJZCPK9+o7B6{_fl}( zEmHXPBvL3wCqfL#o&p_D|Xn`x0Fg zXKZIHiGMT&u_<+J$xXHny$F^yq`t6=Pc+c2d`#33VRqwqO!QFv)UiRBek0~MoTAH* z@INAxgjZc?Yp?yDAiq%89-+OZ-tT@ZdI_jWehPaQ-uaG~&3c+rGJi>i@mOrtus*jG z6=rTv5fCNP{8Rtlq0HifQTf-vxc~RP}inWmpYOuXo z-^?{6Ie}JKFRM-U3mcAXx_$~#9O-9$9mPx1yh>w*Y~SN>U z9ffBvCpHGK4z7QGqvc~M#$I)pSXA(H0z?ID7g)BqAt-H3$~DbrUeb^f(QEjV6%p8Q z>J~jV%Z1K_QXAZN*;6|1s$D$t?5XXF+2-cgB|zi%FoM*)nz8$h^riS3n;(an2Skl7ER24lT(Tp-5!u3?;W zQLVTQOr1_w!{Rl@h3QLnPUU>`&lp*HsdTQfD>QG(rY8p&#hIF)lfv~lOB7LTa```B z+V@)J%O6Qpdl)+e^J;xA3q`uw@+Qh3Mb@~(v?WFD2R z4(W^#l8pw@Gtr)uJyqtgU^i%jlV^LEVG!YpT{;=YyQ~)u0qmrF&Lc{K*HCI9`^uPi zj~4MG9^4@vP90%U>$_Fqo$~bZxz9P(I-3vGEQSJnRj~D)3B|+7_q(-O@QtUdb_;a* z_ghts$ls5Z$>J$i>Dmoa(7IpSuM~~7U?Z$qc^IS@!F80xx4H(x`LcNad!(u zU89L~BoYZ;XS3ZqQkW-8n@9p|@dv?{_~#-2#_AcZ&OKZf>{hhym0dB5pDgc2*d>_p zaL~2g?o4S~kia_4W5%QK7f-Z99_gXjTDoq5Hv3L1a{1`KEmn*j8-%ibAks7*8UDEp z7yBt6R^q~)daU5L{$pE3==D>|ZTN`2n91M3T`uPDFafHj_#ykIV7Ts(enr1jrFCAv zZ{>5>VE11_?j+fbNr0sX%OX8NejqAat~og|h-5qtu6 zF-LG&N$U-br1>gtAlptm5W|jKkB`ezftTGqu4&!ge^fEA(CUV9xR_)I4WLH& zo#xF%`a<%NdF5RwLi?H`)*agvCZ6RCCf;eGi;v8@%e;#;vgw3ED?HLhCnsXGVVk;9 zKra6G-G#-`)Tok+Lj)1;58hL1;&jI`>Nu(QWSxa4c6!eudpVhNLT>|F%|tIx(odaC zEtFSkMfmf}_#U4NN~vd-Bh6Et#imyp#2VK5_$+t#!tzdb%#Y`h1sf05zvvDiWY?ej-GSxEqfs_;4@g=152+P$7BCpy@ac#_{HyH0J| z(3`j?hkY=CZob310%tv z*v=lz6f*MWuBq-V+~4B+GF^lnh(?lMC^gs37d!-4EGRYmNu2SG>*esajBkKV_O$RC zT@Ixex=`t6J*-DI~3_i2N1jcc- z>UMwH&(h<;O5Fh^8KY#fOMZKZJuWJWinG6GvmT+b zP)19B5}r4Uf2Wa4-k38>e{PP!xa?!U=PCCOy=>^!y&q@L^l-FqG+?a1E?0r+=--=< zpIaGW{73aP@y<>BU2@l7Q*1uz(7#aiw1ZCU&L%JDdpYiUBh3+Z^U5VFvBaQry>vg6+K z5D6ujUbC$Z3>R1+eb^ElrSJLEl7I)i-+{_@`4s{O3hTXdx^7lvBO8b5Z7}ngw%8E! zfGcwuT|<@bbd7o?wGXeF3k#!v3;5#|;pC8$SS&6v!sS3Lq zHt0WFM;2e?b80uYK~2Z&1NkPTQ6{5V72k|jkl-!u>hvvbM5AIJpbq!Obl9~G2>#F> zbd;^JnvC_VdBx*}{o7=`@uHpKiVS5^8~^e{^`mX+h59ePhoAFMgztLyg?q9V)_Y=F z6XFS*Z=YS?hbcBU`zps-2Y*bK;NeF6u;lz|{?@%1Z`s_73LNrO;!bzy3b0&COpCd_ zn^Sa|O3z8GsGZ~3A!+T-dPc^;!VZ0FJDqioO3xu|1)&4-{)2`P_Q8t?1Q zREBN+Pxwr)N#eHLSjD6Saa^swYz_BSrf@n1$>SgPMv1+Grd5+ZrwhZq){<%nz&H|8 zm+C&0m)uRQ`3|0PJ33h5d#xiJ-IZA>fe=FW+SN8Qi>WF8zv-QSU_szhjHIxqW}ddt+D{4bz8_ z!a-CudtOu(=p5z_p%y7GjI zkx_qoQddV`{}R{k38&M9e}{3oAr*D$1qtJ?@;ca!{^<2CYCUApBDqcBe9%XngP&Y3 z*)cuYn8y0>o{5(0I-lstina$hpe{B54%a@s5=z=XV9fg+4MSr%&Kl2)pz1!%2LjjC zURi$eGP2D*pRPvEjl(@+`vGhEtxFk@-~P?H?MuXlDEN`o%RXPv`Tkboy|Mv<;_fE^ zzB0J_y7UA=`g#P0h0{ns{t3MfG`^_?faod2nU}Bgk@|3boweZr=Zdxj*w>Tcr`uA4 zU+Q31=T0_`xFbA)0C*q~lh)T~+rK?9!=L8rl8ff+YU^%NtGwUN=l^5L0bb)Y{9nzz zc|6qL`!GBdDx%HuL6)KgHBnmZSt?XY7=*XTzGYwHJt9k%M7ETDD`Mwd48|wxu5%=;eD3toa>zHT-Q10S`OEcQ;&@Q7(D@} z-->sGdI3X&4Yx=w7A0MiL=WC zI)~muP4eOU3=Q>vG@}s?Td`4JZ6~uh2MpQKWY7H(tl@c1-k7%)G|bvG)G1)rs$Iyn*51Y-pJC#J@2m=+$Vs)jjkoi^w5x0PM$g z@4d-#-p1nZD(M)6%2GjC)oAJ`QU$t?~+=yJ%Ew z1{9nLv#{MfpUj`Blc}N=?pA_*C8e#(|pZUfnXIaObtcn#Z(Td4992 z+yo~~DQgspBC7;6Ec6l=HrYeLcTk~)xfjiJnL5J@qGJQ2{A^`R{C?^QXeV`9i>s^# zoD6!R+^B|J11filEby%C#vNp+-J^kXCD8%sMKYk{z`v5l4;20$qqxm-7rP(IYfoV& z;00s#xE25S{s|&`#x~q}8lKj58;w&-2IVGjib6BSsp16zstBrf2@|1=H#T+EK1^Zh zc16tYP779B7LCZ5F}|G;UGjUJ=5B>7Y;6jvXv=aOieL@ay7T>eeL z;k`*+ofJ2HwtZmOmqu_}D(4h`js+=90Y%6L4{L ztb(Q@m;Fy+H#>+LM+6qdXsYjVNdq$${vGgskbmLF2!+&DBmzrB@0Ro0>~-(4K$s~S z2+Dkoc4(Q_pKdb^TUE-Ocy;EFgB?<9R!HzQ<1fxk;vb47w$I=t1QajJDb(=koc#h0 zb)JvJ^2ztyY>L1ke8>a&EcqJui#GusBXie+tJLeEYSlwp2_YaoN3-l7i9gU$oK<>A z+w4SX5}8og`O2gW&uT|7{)V73HV21rWS0qSPP=L<>o;rrvvZNJ$u1t{d*k0|BVu>R z>6!+Yu2eVMO|#BDn5yyvt=WDg5w+h?k`hc`p2i#zu#}+a*JI5r#MwhMkWjB;acqvW zjELsTy5H6m7F2X~9{emRMn7R(!MNvUmyKp@$*ZMz5wPY5G0V8qSK3QVye8vf>(9S? zT^|E8sr*WylGG@b*Pb{eK8A3X5!21))3EO`0;aGZt;4{S>Gdo|ei?J(S>=sUqINZA z39o)7fhIR$v#o$yh=|^TwO;6ac*<_LV5ThmmYXUbLV=LpRtqroUM<%svMKX=dPME7 zf1>AXeG!uyIk$JU(A-I1>=96zx|FnM?5Vcx$u_e;0tM5wxXt)ZL$9K~f`ughcFY^L zrQ%vZ2qm60H_7nLP&FH#e~c7OdeNsb{uG|<+g zYp73>1&qUwA876mN5f0a8gmlL1N)^U@6p% zlgoloD#&~|BctH>|1_g9l|o8{i$Ve6D|;=a%SNB${JFuES@G+ts*0_4(H`qZ?(KSU zQcqMegW}`eLRIo#s%Ss@@K!tVvS%C5KFx`%8R$=^>$GQZe? zZ2taTkC~t)-!%8%R!KMokWoQ zSN4^Z1x&(!R%+RzR2nEv3=g+y$$?7YHb~j>=o2T+lK`ty6J`G@0_S34wO9ziTcH3- zpXtLDtuGD5uxJW{0eAvNX*sT-yKp1^4Z#@?R^0- zJ8Mm_#xuD8sdKBg%0H+#?`@Ws4WVB6BoeiM4@JtQrDcbn+9`JnnK#oj%{x`(40wH@ zBF%Uui^rOPX_9u!mbV`7rlHSsE&+PDA>lv~XB!`Sa?|ote5BAo_kQW@Lt72&?nFz= zJJo^!y{BdQknZX=t@UCyIY|MzqS=STZF2{nrDVTKrg4^6&$46Z}f&!**`MJ}P$(h!LQYWz>sH6Eji6I&vvNeIb2D5^75P2wv2lg@8TS=)r&DZaf?DvD(1d6zTGRIs}F|qnUx0O zNADiFyKUPkJb!Dip$M;#I>!X73%MsKEC&W~ zrtUN#5QZEPFrl=43?qvKhOCza0)7^=vjNzV`oLRO1p#3d0%386{MTaa5B^^-C{5$< zB82Mhr7?%k;b~<{W)fg1q-k>WY(2nudMPBn24Ar1UN7MboqiM_U2H`hl%wq$i0n!W zqtZG*RQSSN3w2)|_f!?R8pS8`oBf=D=?g;%Z`Et6M~9LRScpa@9QCwaWhxV$%#}(# zxJ!*~0oU!wz3YDU_yoL{NAv1i-35oViJxL*aYA-o`L2u}njDw5cj@SG{#p`+d(mY# zuC#Whq1yzkWCa5LtF?)*NxKvC#R&F$-1b+f0w9^kXpu&7#rD*5YSgr|9cNErzW6PV zI$)Q2N&^|dU7G>?QKe;j5Vs(6+N1f=>F4D=)tBZmRXP4`D`z8v3w|A+)&>Ylm8DQg ziqbYIu+`=espEusVu=E0LG7|P$jexQ1GHYM`WcLWj7_4|mLDw{1AVJ0Iwzl5egDUk z@|w!A(lavA%1Um+BURheoNU30@|pK2OzR;TFzDdc9Nx-UD~;^nP2SROvST|jGQar2 zn43vnNzM>GQ3%xsdtP#LxKEp()8G}NkZP)nMk*s~!5D$M{`cGw*nTPDGJaCT%aQhI zla<7g1^Yx$i!t=h< ze^)vwmm^!P>b=;08GXk(jr5uyP|RyfQSfY=0Q}6@_+Eavu#FXJwsOz%m7T&o5ythv@-|mO_8dH1#RK>i%SzQ1 zLfC^3M5{BJg9elbqF4gt5nC*VfS=RllI^O zoQ9oVnmv*>j`guP)Azuw?hA0Ly>Gy=gSj77_T$aNntf1q?+zs@r# z>2f+Z18X>I87KqBL?;sdTsR|G+nW>8_gdx8Fgn@}wUgYz{eD7mfo-)IJG5A6=1#!R zo7M64hR^ZRm{B;2td%pZ_eR}6IR_b3>Vqf%))5GA?nwPrAXHJ5=^feMaUIOvY*Gv; z)r}V3k-SQP^{62JJM#D6RR~mG7**C5cp%vL_ZyR_#@9PCr{XfhBQ392tA0K7=+y3< z;Bpb!mm949hl>NQ{wpYgC{dx80deMPotz4+X zcar#5k(TnlU3PQ~rvQ#Yp)@(HLMm?}+heM1joiCy;1p!mMl5`E;AKewjh`m~R2=Lm zf+k#Suu><;e(8upj17T?`w-Q2)~~+sWr0J>%8b(|DzKJ&VTp`a!+dxB^vem^$#K!` zuJQK0k9%;`DLY^JCE=v~eds{z8=wzmW|ur?E_tDaIr9qJ2F_WVm!f&9&4`jqpM$36 zb@}FbRn&5NahC&p%D1=tbL<^tc+y{ov`j|Aodsd~qlc6+I0*F*xzObDRtKz6c(Eg# zkXS#mZG6e$T)mP6V!O?rA*wrv8N%Zvbbd%jDzpTr(juGzsxN;J;@O|j;|VNZy+rgNE(?)+XKmfG@xgi9 zVa<(`0X^0dp+8#_Kt=Z!!>OiXTW-(}O(f~mZCNjK-samKbS}zRRm6OM9(&W;3$@1J zqek)3IVs`Zoh{Aum2qdTi3drqHvhm!Eib2l&5RMP_R)RBtTn$yr>{;Q2xJgPXvPg* zdc5JcKn|C^iJ;;rAq;UV!#HpMuMoF^Rg}soTBYk;Hy|5|EODFTC>U#FB#&O_^uy0@ z2A&5QWQr_;?k@m#_Adr;5;Q{K`c0o1W6uyOlWV;-^%+b>C)ci_Z*KW<7*qEx0S+(k?HcUbp@D`76Q zhU)I&To*aTW#y~jO!A$|-PR6o-uiAwjii$P2Df`|IF-Y59F{KWj6>WqtU;g-)YK_z zB|^(*sa!(B)iBul-Z9EumyGkI$;}btzWR3(wTDVX&ZCz==<-Bl{D1{ zfWf@bsibmGFJaJ2#5{+bhRO~~{O7q-W6j#9UC4Qz3q8ya!#tPXV@fA(Haw|_Jt~jK z4O2Rl+LaoCquqKE;GhzjpJ9!-a){?_b?)U`?s*UX5Y$4x4s;5Q#@#@@ViE>FA4 z5vj=Qd*?aUSrwVVXfuS$%{`xVC>!+-YLEPrrFVrt|9i2c+>JW%!>N)#(2Kv)q^vHU z23IyJN(qY?u}y03bli{Gd~yEA!*K4C-n6BoM~isd)V~kIb3M@&Ml6-VUsrO`8;*2l8!U6HLka*vVYN%;iDc~msf4tdNN0!Ew|&bn@Yn?M z5+zBk^j@Gxl>*+6;wIp;f!PDFQ(+uQizp-@wbTGThn3Oz6>cERM;OFSfb0FqA|!he zL6LRBb0#%mlWV(Zz=3iRqlJGlgSf8FHOU7JUr zj){U6#?}iBgk@h$yfp*lU&2ePwf(x+z~QS#{U8v}C8mgy%LLBA=h1CsACa&n0%*9z z3Q2SRf&1A2p?hJ|2d^q1G(d2nX<4{yoiM*Yv91$KO3-cceDFx`E zhU&0`C#HbWjqzFO=KW1-w_XH3ajH$-r~0=&|)>C;>9iv2t96>79nY5dO3>Kq1Z?u%FAC~ z+LvDDH+D7DwF&eqegggdhfwXo=Ee9x-;-3U&DszS#-=%b94%1az%ll8l2_nU*$mFL z!TDGMiO|KE9V@c-CV$PlYkvcMV_~C)V$o>sC_wVBXu9b<|Z@4qg zhVN*)4PI={c}>n@=4NFO=M)3_D0;f^oxjyT7XrR_q#<81`~Yk&0Bg@R_AK;hIt=LZ ztLq4DRsQ&;)*DP63;4g2!knPu8!g0vG@Jn;AX=0qSUx7aVoo-HzWaqthn#OOBqUOU_W*DTZOVuyhKe|U7-*{^dpJCwi z_!|VkttL#MCv+?RT=Op{eXf9u6m7i}aBnvWBq}BJe9=Iy?`r>*dkho@&}W1P6Gz2J zl1pmkzw*fr$|oV}?cQ?lWj{Op$D1cM2WQry(-w*|Qs4x5#~D$&`2$y2Y41ui4ybu0 zb0@(6E!?s?Ky`nV$9xUkDSn143u9{Y$I&77E%a%!_VHJFXxZ*HWg4( z{t|v_+P>~B936%uO%xedHvhD%SE|Y~>frQy{@j2*Saba{YD}A`djM{^inUK@$gzC%gfg* z$ulv8iz8y(11lOX=-_ei16uED=9hO-u#?1XWTM2mb6;UTJV%o==qBD>wCTTY{m11Y z7(eSAD4K1%8|^xEL{j|JFm5F%?H`wBDKxdb2I^sR~eT^7)t4++{T8dEOk} zAonfIlCY0#XM6C@8Fp&!o))t0?kj!O$<4eM(-~!THfhH8QtNBf0m%6XnR>U~fKNss z$HP`pH^hR<#Vu8OX6Lh!er^h1pn_r=HBor^DuOc+vCsMM9 z{7Ht$>&%v`M{%>Nrfk=)oZt5{ucUJ&LAKcWVlrT*<2PNm+jFlGoB_Rg-;d7yM#TvI zAs1dY)=)Uipvz(OVg^nMJK}zFi2CqX(qh^=I)_YXhi^B`f)h~SF)H`cPunrYk=HM9 z*^jogmXq8+rq8VmWip5#1_n_DPHJ~iUk0wKs)c1~Ka({)kiZ$jamaSw+;l~c!)zb3 zRe^zWppcr&3(?1E*{|o~@@=84>nDxlwC<`}dhDOjd4Ze&e%Nmu+=*Xkz21+WdSSRb zT~}91P8Xz(vA%n?kfd;5=LOV*24w9rjt*dXUjZk0v_A9q)SRBlZSaN5puU}sz9e?! z(DquKVX9Mn-cK-C)$f>l@Phv&#q%PA?SMPBz}%}tT8$CKR|M1h3EdtczY7!m+khqy zWJlf4fIwa0bBIJ-am|&{iF%Cpdf4kc?TGf}wSjb@UPkMOd1mnkN&*`0D<8SJRa<}1 z7)Lrgq5M0N!RwOC)REA@1h46J7VX+%2mZ|$MA9mzs^5R7-+esum~DQ;k7L?R^92&D z`uf`SY>Lx3^Eb{9T79vExF9m zF*u^|9pmflbU*Zg6sgx=@jTYl|1)xyf#3(IoiDY?!p<-!$F#J|?An^FBG%N@{2Moz z!+Y!6|D-luyn5iXs*;ljxz{iH8|1SWpmcH>f9|Q~=Xih7iRX&p|7uJRiT729H~VgxXzI@ZqA;1o zdmb=0#ppCx@5&R{a^eHq(MMU3U-P+-jgPh~96-Ar>kfyn(~2i#|I7+$3bY99Bz5E* zDjEDE`K`Pv!9SNl^l>y@zq*7+0tv~yPHOeLqQUOLybV6RR&q-Ei^ACP)0;pJ|5QPu zjyRS~`u#anyZaTm=wPSC1x?C=*mO*RhiUwLHRsmQhd`%B=acT7pemltc42%hVyNy~ z1i&p&G&u$xj}nrSX#XVng1yF1XJpFJWC7#_*3q=eUEi^R&MlEU9%f%w0-J-M9>{oV zEtIZo;`g0OC%vAL0ok174u^8-MfJ%3>FsqwBt26&eHIUqmkcYNPH{A^^u)z==GN97WjulsFtO|PFvci-7ISHU3D+}tfB{DRC2b3xQ&UbqDPT`~tj82- z`bHTu>iA(BL@#ACXEqb^@~D0Ok#QNPOTgm?;a6_w3AxaNYQ?7;U|zyYpkWD@GW+Eu znAC@xqmTo_g~06Zp>nH^iz$ra#tf=IptB8Qx#qc8R21H&$G&cTL#JdW7xnx$VsQJMfwh#0G$Zi75*?yfbH_YR;c{wt5&|9 zJ9~2BU)G_9dT9Lh*kDSo)yws7v&q(Db>+G6J4ZPm9MrH(OF2?%b_WdL0ZXLpEG>l( z5%O8@2s1k?d*k?BB>oD{bZu>IWFuTyvfCL|on9-rNp@jQa;_^asPR@+7x zuOb)vY25LjJ)B2Sd%I4!gN4U=9lg#V`NAes<_Rg>8*92I;yPz6BaD1T8kD^&R5)J7pp-6<~`M$6DvlX}QA^qnU z4JMRb+!@{N2qfUv{!|NlC4Cd{1qpnbAD{;b+lwa@VvE_IGZZ_QsoZ{BGaXh>m$88S z&t>=_7lCBcF!StM1?yDB1>D8*o3*zoeP4zRCZGLzDgB3$TtSmD`nq+J9T0dogp9vo zRbU0MZubVjyTB;S;%C9IXF#U`#Fh7OKo+!1UY_y)H@H3<;sTXcDDyPRHH6ix$`F+N zNyoSWp3{vx0;uj^)j-U{oqMj_or^K8or|%AV_`Tu`XMJI%!xBul0L_Te?{KSEvn{VpnM3_L&4-mIK z<(U;Tk>`wz<5;E*0*K5>msTK_dAx!I>Rx>8 zC7RrG5Tu|W>LVbPC(aoetoySOqYq0S0}ctXZNXmqzpOd+25x{tc-3=W}~2m(NgzW>EH(aLum{&sLLim#Qv zT3D?A_jI)BSjA0L<7INvefOe;oa~=0e5jK{kh9ZuivB)EF*k?vy=ZRKx#zTLgPeqD zkKg`*dm8tG;voi!sRjXd=i5<@7s2N%x`e=+MyAI7;QyNEKliAk21}7qu#8PCu{8;E zLMJzvR|=}3xt{&hj=Uh4Y2`f*B8WM9&}y^StoR~T?vc^*eQ-VU8 zd-jzwM{BI|8*;=wSiXr&zYyif#p=2}&v3N)(`DDZ?4Q*(%RHW-ZVEdkVlS~ zZ~mk-*U#(C;0sT{A^aGF+yv$l%!!NlgUkz4o6r{^QRIWnT1T0|3VUGc_Fp<~Y+f@J zsuoD>mmajar8$2*NJ6X7h<8g~7<<_DZAHk-Vg-h-^<_sjvlgujRqxP zrV``H^GHF?ZHM#c-ZY_C)%F&5 z5s4!T=S+tl0s#B~z*969YuQTCYrzMrokutowI9nPtctJV@}Hmd-hX+v3191NJI?{f zaz$g>aMZclZ|Dw+_txtACGz_u0wTnMgkFPB7s0;%K4N6ypMjx&WzOb}gq)w|{bwd` zOZOF&NYY6cmfIdFmq=If53v2kYZ7r!H)iO1laSLUe!1|Hwd%aouIYcCuxiPMzJX%{ zJ*5?Dncj%9a!aU}H(q_S7fE(7wwQF3zW53EJM_vFMlLcv9J4g!2)h4;B+!MB-}B;b z@5A*Keh>44V>fR0&y=2H>j4kO^cn8|@ptK67y6j>otq*BA0j4q9d7Q~9d$G0Nw~hv z3j5`>x&!Pse3DWGN-z42>+22KFEMV-0KJhaczhGzK$;_qe@ugcMU2qtggyS9u2G?) zxMsB{YPc7H_fp6?BH61BO-v&Ezmm@v87*|qV3kLcwfBG4sb9Mg)72U9xj;S`YLt$S z=$;elk{PSLOuJ0_1FQeO;3>Fzi$B{zE{Staw-dDHwOzJ`OC?<2M_w9xOg?jIR)*I0 zVgBvRW!$Ip!&)Iw@cZ_r-H-0h@J{o``u4=K2!9PZnzp5}Zhl5uqU$LX1wYQ2i-TNv z*cQ+kdA|pFEzX4t@SbEq-k{zE<5Tn#U#GuS>;CYGxcq}AHqK9I8SZypKi_WkvThho zWB6Nq_Fqq6a~?2Cg>s_2UG{kgL_`v zu0$SFo#d6y>9R6*8)9<#lVs&YTbHEK9cF5O;`@+E-VEEBq$s1e!Cy|mf0Z~sSFCBL zo<@A`a&JT&-;&r!iL{)?pd6mwX#4dF!>IfX{d?JEi!BJk8HWXhD)DxfSlmrpwp9>&VQOSrBH`pS3S7pS?_)4JN8#}CTSgso-7RNr|&wm zC1<)V0N)+XCkY&7SGv`x=^%FD#N(&FMY6O!I5^1TTE4Ti;NhD_JJ|enikW?SuZ_c1 zu%y}T@ijrp4luq@{FX&7MW*EQ+W7tdA)3m{jks5 z740{tk??;mi9BD4yfc|O6y(0krOw*d?A2&8lsLWBVgCz1_hVvBGNK>7j`l9Y`i8m> z@bBG|kA5{Z*1hKOP^QX@MM>-Kgh|S5{3R~--_FVk63Azx%5!BVU*d(|=-S8S?`iFK zG3l5!sghrdTNuP2-*fxcE2nY9(Wnb)D0gp_+pBh$uXVY%MW5}K;p-CHDcupxL#(Wa zuCt{#y&4E<>l`>B98_&i6dm+rGqHFUYsyHe17sO`Y&@N`~ZO zOa)S!r9a+m{-@=o+}mpM9y8CIb~V>NDz~ULWy~qpKS_G`RqyaYSl>lA9eQBJ&)J_~ zY`>~+QrK>xztFMuahNxkD?Xlz5dR^bc!Mx?V>4-+zMjWM27ZUkY!-0$#AnT3iz^;% z`|!-K{KHlNI{hxUR>^zahwq2JwfJeifGQJC8&_1FV53zQe8Y0JEpJBmUyo0e5b7ux zI5m2RuDp8|={|>yTuPCYHqO|Zx3)s55+U0}NYYy`rI|fd35jS&5&39I0qwX-`KpQ& zMz_-;Un>-40iod7Rtw83wmXI|q`cH=kc9zz1JW^I@0Y1l4Y+BcFCY8z|hlK+`6++KoE}K#Ro2z#0sF z+OwhmDDZ!lhk>n&!;!0eU;b)w=^ASucou&0pv6CjFAE4Lhl&hE2sfFnNQt=xNWA`4 zt5UoY(Z~~)bGWjEoeVPpo5lQJ&Sh@ypB8<6g+48Pqb}vqq|0A^JGv9g$|!RPS7V7V zqE<;Bp~`wMB+=XiZ9*)NKV8@ZGw^Ve^5F%yyORy%lo}0jB;}0)#PxU>$uXi!wK}|hh zaC5ZVfh%=cx75$|Jw9HmXR$F3I-Jr9SH@Z+OT?wL`!}7u$>M{3*Ly}@-hC&9ki~|{ z4Q2-CC(y&<&3s|awAC=efLCOLOT1nwL!edrQfeP13&u<#`VNKsDax={xMjK zB=O#~b0eRQ9{5?`Gu)YJeoy@C>v*mabgR+w5RRw!CvV~VqIP1F)1Ao4o5eKc4rwgK zx-iSM0UD8idb*0HmCWj+5fYWn$J?giDb)~9wB^V~1AFj8*OMz;Ga&UV+XFY z)%I&0b>=wUXM&t__)M9916}xl37-7dNO)v6wO3;?? zqU69_I~=7BTw5vJ+<36+keC9!lWIODF_!gen)gVjOye01ZyxJbsV=!`(dQA6Lj0q9 z`$pSIk$wNDQ%rvIO5~nVrAU1$fSnF80HvkT>_t0aCpNVih+%Vi^5X9j{`Tjd;lyc`#2-G*Sjw4FM>jY1+xjWYQ@*%hB? zm7_m&u|VFW|0^ujk-!J1bw6`@I9`pN912Ve3f-&Qd?2cc@Aqnus`{Fg*i8NCy8g-g z#n{cRhF?{4m_dHpz8LT8TnF>`%*X`)D->>CFPDxPuH%;`Y5h5B6&7}qbZa3ci+j%_ z;g;iU(gT;Tr7J&nTS!YR!nUNh=6e_PumkUJpyq$7|P#5lL8>7@5@11Z^05I2(*?<3uPjI}{gR69`LKV$n z4l?YBjuwrh1H0&Cf(8;tWdG^+5t|?l0!Br^+~8I-Pgs8S>}96SIeO~xN!ywCE5&VLNNrt@V8Qe(W^!bf!o|L-cx+`(E^ zuM6)6{j=d0bSV|EyntlGnC+5!Z)v)UeIB834>VaKE{Ct-i4(UB` zxD@%OvBeTuPakQ3NAyW_(mkrf(;?{O=ant-^&#jFM2+N#YFDcBAX8fC{NiN%UTFpF z*vG2mVdzgfh23@T%hEc2?K^rA_v`_He0`Od>xo6Xh<4na)~iBOJkl3Gi#za#YYfMe z{XBk8_vL&K*X0$^DBcvS6)ZQEsHdGi=<7sx(7=H^FRyXH-m*L_tMCQ$w1c0%RbSQ8ZA#bZL{1)l=44-(Bhxzmcd*h$dpx5 z#LtmQ{=CCfhj_s@NUjC)+oL|%1I4(AZxDC~Blf?`pL;p9pyn9ghmK8^JU@6tO2O!b z2*&tP2Irs^U4K*iN4H4g6gr?==9FM4U8^S~_0^$8davg8My6C*y#B@BSTWtr!gi$U z@`*R6;Qa18S*(}5^bQ>1?{3LWWj>h9JY^StOocO&Ui-N%)U4)>T`QemvUL^1v*=Ev zatBQCQdaMs`i*`v;jC1bHCO7MJ@ zf@^+6b-cCK1sY53;di5T>bss@pymF$l_}~Jlwf-za?!S0G(7nccnOH(rtXbUjaU56 zH@-#`zwMU2b&`y~d?gOqNOU*mY>>)A9!2eo+{^N{KSfmI%XWW|(``?Dd0za@f?{cI zdCuItP~?Sf&GA$Bu1qfIMgIDhW4q3K$sr$k)bZz=YaMb&@NvPrlMgKS#EDqk`A1X( z`E9Chq3&Vyr7co;+>cno%NTI!?N17Jx@86rDt48s+p|TM1&&6Gkam@yh*}cOI;o(a zT$!aHc2{cIb|bPsYU&f@VtHN6G&#BfukP<^VATxL&+jE_918n01o za9H4~&Dtrk5JX7}N`7Ao2iLP6RrDK*q{-fXK83R%bTD1#)jD1!V_JyxH(%LG5Y388 zR4_BYdMKgb;~Z``eS^I`j^DsC$=CMRfWW<9FOIwg^9)_rbh^j@`|faz&{8v<|2Qu>DL!LaR+EQiRjvJvLA;{BsGWj|<{P;RP|**XMs3x6JEE(9LuKTGNZqFk zh231&ZSW`TH*j-kDNN>?9&d|d!cpFL7?+z|OT!i|lf$GiUmP-y$%Z!yE4r#ydGBA) z01Jz~NxFPs4)?(#IGeJ?%WFgLSPmvxV546~QXLXdE^P{iJSqF2$A;d2pzbAfL9F3n z$9sm71NTA`LI!51?kC7@wd4g&^K0Jz_G&79{iC0y-{;3XhH>qwx%W2N<*<|kSSQ(S z@s_VfQZFW|=_Mv_pRClq^0xmWP;oP)wxcw){<8t1IF{o5-`OS8(5HKxeUpzwZtup@pcGtuHdGyDx z-vsDWOx&_xTBn2kHXfxsY`LYk87UySOysTMVP@~snFvxY>GeO(=K3*GLf2^coM4jX zP$XLK-0vG2uMyj@FRHX9`ho-55^dCC!AiB&<(5rkkpJndg=A2GweG%t=9_#@peP_~!w4_P4;tyV`5sa?->rZE!(f8(!du%TH;y=V_lF4}FWdK@*4+ ze;7AY?(kA`&u*a;=S9KhK?PCW(HVv8=#2L5=#04kr88m}!p~yDRhRJT@i5b=s|dg3 zPgs0CQo)?7*%5fUluhoUF|RPu?B54cW#g-uPdx3RrB814k}yH{`iaK%+JJculHy2e4o(iG*bhzS8*LPwz5FzG9~c^ju!uxGx1Z z;7Nd-3TRH(P04)D`sIU4}8T@r<(`L_ZpID?N&VJC<7K`p%i-xX%vymhn&LN?!!q^3I-Rj zrwqJw>JI-OeB zqK_rs^y0g_?+Q*_V|}k{bR%BM`cT#0Ju=no-d2}I%^$cNmUmJu=@d3U&QoPT-+$47 zF0hGy8W_#fa0wb8s}uA#dKB3?y1r{EX1Kasvb<|%eBq4^UG;~D?box)&Q$jbi}5C1 z3;X>?4yh&>U$TGf^Ps}SCHS&VwvNZlR;BXw7jy3uew3=#KOJS&z_1eW;e6dtZKLwm zM=oq-WW&|1&Nl>*Dhs^9hDOrtq=&+`jO2qP;kt$ zX&REQHu@Gl5V~UX+`xlgtEcm-vQ`#5w~yuRI@-&b${rC^vch~TI#1w0qGbQr#cs$- z1sfgC)XKF!(fBa4_=S@`60_)&+HuD9nROM%$50a~)^2aQ!frB3EnIQtd$X=}wk=Oc z?!xnn*C(xGQ(|LF-mpb}*X_M_C$Z-W_Nu|9UjIGif7Ld$zgM@r)tguSK@S|>5})}U zCaPs+T{*(7HM=r>rdB`oOQT*n9fq&q@ECTkdO+2X4uQYH3}CKr?><5RATns6`%w;d{pA z7E9Od^`HmLgiU%!F_+vHw@Uq)eKNl|K1-KQ;dqM5rMFd&TT~IYe?wPVf{=wNK6Jm} zH{M=I{3@V^$t|n%96icDdo?;f7q5PpBzD*T`sBd6#@m&c+(2JNpv}`N=5Mec9{XV5 zIl{)AMJ*fY*>4c3KD_u=?t{W*#6#a@9g|k=di0PNcYGU4Et-!~s4|N?C~ZrxyrFCH z3AUFz{LknMNByEs<@b`9p&w9MJ`?k=b;OI)?x6Bfr8#&}IA5=58uI$wRg9kzb|&!_ zKZfHA2G;Mp`kk`LdO?@qqBy8?%%FcuzT_H)2AM9vUSR=zRVEH3nr<}ZeH@*>%3SC3 zd18A+;|+3d_)+Och0@Q%RBgQR)^T%6-5T%wC$+jUXleibV5YAE{xe3npX_tExC{h5 z@<(SrIPp^kJWGVaC|pa9~p(6c`yJahkr=^ znJEt+LEZJ-7brwh6LnFo1%T+M* z?amSj*W`*npuLOFzde(l!!kv${|E77+LDX~3VY14ZRQo6I-TVw^lXd05jm7gb2$33 z0}1>CS&7pManzxCI?Dz||2rs~ zyn$HpRWxc_>o+h6Ncakj85qrdTo}D-KY9+_FD!dJJ7OPnFYm=!8-?!o?!iJC*H6`J z>+}UDI2ZhF?(g1vIX*mpl6vt_*}8I^Y&N9GaNL>SIakLpB(UGkks3JebmN2=M{E-C z@u3$&6GVrTH0GhAs|ZZM-=?sv?CaukNnrR?{Hqp`Op}Y(?dn+goB3vmEzo%mbIggN z|D})?(Xxi>W&{3=w~(y+c#3R776igcOU7QKNnEEfQ}Ur_7v}Kzu+`1xJjnfB*WC(x zU!Qf8cJg04)YogsA-i5&-#Q5IeH}Swe77js*~Usx36`L+{LX=%Rm|aIW^|wT;AZc6 zYL589hP=luJe`b%Mrr)0vL2lJ2$4Yl>lVaEOPP|J5)GZj%Y7pi4f9HiNP_O%MG{ps zkVK`H_2OSAObT5kN@aK5xDFcZ$BAQ<@$k_wdpHwHx)iC%_aYYfWEMc4Z_UQBEeEp9 zcd39|k{g9^3y;GZ%^|{J?Vdt(i`;XyBR7%2rvNo;TEye9?NMcge(7Sbr>@DZ9d+R1 z8Fcu~zkHRo(B#?KsW;FZ%h=j|+pNiR|WH8ITT* zAH0sSpn}ke4q%m(@1pq;@L+jZQ#^rY;n6!tnIa3Ec!rdn*aa+ literal 0 HcmV?d00001 diff --git a/docs/images/autoopen_ifdevice.png b/docs/images/autoopen_ifdevice.png new file mode 100644 index 0000000000000000000000000000000000000000..96af037fccdf8370d206301a7c752f3c10bafd92 GIT binary patch literal 19407 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 Idwr7s1ZeE{H~;_u literal 0 HcmV?d00001 diff --git a/docs/topics/DatabaseOperations.adoc b/docs/topics/DatabaseOperations.adoc index eafe861b6e..919c1ae76f 100644 --- a/docs/topics/DatabaseOperations.adoc +++ b/docs/topics/DatabaseOperations.adoc @@ -235,6 +235,31 @@ image::edit_entry_history.png[] NOTE: Restoring an old history item will store the current entry settings as a new history item. +== Automatic Database Opening +You can setup one or more databases to open automatically when you unlock a single database. This is done by *(1)* defining a special group named `AutoOpen` with *(2)* entries that contain the file path and credentials for each database that should be opened. There is no limit to the number of databases that can be opened. + +TIP: Case matters with auto open, the group name must be exactly `AutoOpen`. + +.AutoOpen Group and Entries +image::autoopen.png[] + +To setup an entry for auto open perform the following steps: + +1. Create a new entry and give it any title you wish. +2. If your database has a key file, enter its absolute or relative path in the `username` field. +3. If your database has a password, enter it in the `password` field +4. Enter the absolute or relative path to the database file in the `url` field. You can also use the `{DB_DIR}` placeholder to reference the absolute path of the current database file. +5. To restrict auto open to particular devices, go to the advanced category and enter the following: + a. Create a new attribute named `IfDevice`. + b. Enter hostnames in a comma separated list to define computers that will open this database. + c. Prepend an exclamation mark (`!`) to explicitly exclude a device. + d. Examples: `LAPTOP, DESKTOP` will auto open on a computer named LAPTOP or DESKTOP. `!LAPTOP` will auto open on all devices *not* named LAPTOP. + +.Auto open IfDevice example +image::autoopen_ifdevice.png[] + +NOTE: You can setup an entry to open on double click of the URL field by prepending `kdbx://` to the relative or absolute path to the database file. You may also have to add `file://` to access network shares (e.g., `kdbx://file://share/database.kdbx`). + == Database Settings At any point of time, you can change the settings for your database. To make changes to the general settings, perform the following steps: diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index 3e1d3192bd..b929cfaf09 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -2060,18 +2060,23 @@ void DatabaseWidget::processAutoOpen() // Support ifDevice advanced entry, a comma separated list of computer names // that control whether to perform AutoOpen on this entry or not. Can be // negated using '!' - auto ifDevice = entry->attribute("ifDevice"); + auto ifDevice = entry->attribute("IfDevice"); if (!ifDevice.isEmpty()) { - bool loadDb = false; + bool loadDb = true; auto hostName = QHostInfo::localHostName(); - for (auto& dev : ifDevice.split(",")) { - dev = dev.trimmed(); - if (dev.startsWith("!") && dev.mid(1).compare(hostName, Qt::CaseInsensitive) == 0) { - // Machine name matched an exclusion, don't load this database - loadDb = false; - break; - } else if (dev.compare(hostName, Qt::CaseInsensitive) == 0) { + for (auto& device : ifDevice.split(",")) { + device = device.trimmed(); + if (device.startsWith("!")) { + if (device.mid(1).compare(hostName, Qt::CaseInsensitive) == 0) { + // Machine name matched an exclusion, don't load this database + loadDb = false; + break; + } + } else if (device.compare(hostName, Qt::CaseInsensitive) == 0) { loadDb = true; + } else { + // Don't load the database if there are devices not starting with '!' + loadDb = false; } } if (!loadDb) { From 9f28304ae62fad92dccadc65a7b659b21e38d38b Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Mon, 27 Jul 2020 22:28:48 -0400 Subject: [PATCH 4/4] Fix documentation * Close #4206 - include search modifier `!` * Close #3868 - explain Auto-Type under Wayland * Fix rendering of admonition blocks on mobile devices --- docs/styles/dark.css | 7 ------- docs/topics/AutoType.adoc | 2 ++ docs/topics/DatabaseOperations.adoc | 3 ++- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/styles/dark.css b/docs/styles/dark.css index 90e632b3ab..2c5b50a29a 100644 --- a/docs/styles/dark.css +++ b/docs/styles/dark.css @@ -470,13 +470,6 @@ video { max-width: 100%; } -@media all and (max-width: 600px) { - table { - width: 55vw!important; - font-size: 3vw; - } -} - .exampleblock > .content { background-color: var(--background); } diff --git a/docs/topics/AutoType.adoc b/docs/topics/AutoType.adoc index abe1afeefb..6e608a9ab1 100644 --- a/docs/topics/AutoType.adoc +++ b/docs/topics/AutoType.adoc @@ -7,6 +7,8 @@ The Auto-Type feature acts like a virtual keyboard to populate data from your en NOTE: Auto-Type is a completely separate feature from Browser Integration. You do not need to have the KeePassXC browser extension installed in your browser to use Auto-Type. +WARNING: Auto-Type will be disabled when run with a Wayland compositor on Linux. To use Auto-Type in this environment, you must set `QT_QPA_PLATFORM=xcb` or start KeePassXC with the `-platform xcb` command-line flag. + === Configure Global Auto-Type You can define a global Auto-Type hotkey that starts the Auto-Type process. To configure the hotkey, perform the following steps: diff --git a/docs/topics/DatabaseOperations.adoc b/docs/topics/DatabaseOperations.adoc index 919c1ae76f..17640e3cea 100644 --- a/docs/topics/DatabaseOperations.adoc +++ b/docs/topics/DatabaseOperations.adoc @@ -141,7 +141,8 @@ KeePassXC provides an enhanced and granular search features the enables you to s |=== |Modifier |Description -|- |Exclude this term from results +|- |Exclude this term from results +|! |Exclude this term from results |+ |Match this term exactly |* |Term is handled as a regular expression |===