From dce90fefffc4d8c0a4f7eb73c227f64f610d37ce Mon Sep 17 00:00:00 2001 From: Robert Kaiser Date: Fri, 18 Nov 2011 02:21:37 +0100 Subject: [PATCH] update LCARStrek for browser winstripe changes in Firefox 8 - real changes --- EarlyBlue/messenger/threadPane.css | 48 ++++++++ LCARStrek/browser/aboutSessionRestore.css | 28 ++++- LCARStrek/browser/browser.css | 72 ++++++++++-- LCARStrek/browser/highlighter.css | 105 ------------------ LCARStrek/browser/places/places.css | 5 + LCARStrek/browser/places/unstarred48.png | Bin 311 -> 309 bytes .../browser/preferences/aboutPermissions.css | 23 ++-- LCARStrek/browser/preferences/preferences.css | 2 +- LCARStrek/browser/tabview/new-tab.png | Bin 201 -> 0 bytes LCARStrek/browser/tabview/tabview.css | 34 +++--- LCARStrek/messenger/threadPane.css | 48 ++++++++ LCARStrek/mozapps/places/defaultFavicon.png | Bin 191 -> 183 bytes 12 files changed, 217 insertions(+), 148 deletions(-) delete mode 100644 LCARStrek/browser/highlighter.css delete mode 100644 LCARStrek/browser/tabview/new-tab.png diff --git a/EarlyBlue/messenger/threadPane.css b/EarlyBlue/messenger/threadPane.css index ab34fb87..d53ffda8 100644 --- a/EarlyBlue/messenger/threadPane.css +++ b/EarlyBlue/messenger/threadPane.css @@ -222,11 +222,35 @@ treechildren::-moz-tree-image(subjectCol, new) { list-style-image: url("chrome://messenger/skin/icons/message-mail-new.gif"); } +treechildren::-moz-tree-image(subjectCol, forwarded) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward.gif"); +} + +treechildren::-moz-tree-image(subjectCol, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-reply.gif"); +} + +treechildren::-moz-tree-image(subjectCol, forwarded, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward-reply.gif"); +} + .tabmail-tab[type="message"][Attachment="true"], tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach) { list-style-image: url("chrome://messenger/skin/icons/message-mail-attach.gif"); } +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-reply.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward-reply.gif"); +} + .tabmail-tab[type="message"][IMAPDeleted="true"], treechildren::-moz-tree-image(subjectCol, imapdeleted) { list-style-image: url("chrome://messenger/skin/icons/message-mail-imapdelete.gif"); @@ -241,11 +265,35 @@ treechildren::-moz-tree-image(subjectCol, new, offline) { list-style-image: url("chrome://messenger/skin/icons/message-mail-new-offline.gif"); } +treechildren::-moz-tree-image(subjectCol, forwarded, offline) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward-offline.gif"); +} + +treechildren::-moz-tree-image(subjectCol, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-offline-reply.gif"); +} + +treechildren::-moz-tree-image(subjectCol, forwarded, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward-offline-reply.gif"); +} + .tabmail-tab[type="message"][Attachment="true"][Offline="true"], tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, offline) { list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-offline.gif"); } +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded, offline) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward-offline.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-offline-reply.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward-offline-reply.gif"); +} + .tabmail-tab[type="message"][IMAPDeleted="true"][Offline="true"], treechildren::-moz-tree-image(subjectCol, imapdeleted, offline) { list-style-image: url("chrome://messenger/skin/icons/message-mail-imapdel-offline.gif"); diff --git a/LCARStrek/browser/aboutSessionRestore.css b/LCARStrek/browser/aboutSessionRestore.css index 7cb7b437..f77f9be0 100644 --- a/LCARStrek/browser/aboutSessionRestore.css +++ b/LCARStrek/browser/aboutSessionRestore.css @@ -35,13 +35,39 @@ * * ***** END LICENSE BLOCK ***** */ +html { + height: 100%; +} + +body { + height: 100%; + text-align: center; +} + #errorPageContainer { background-image: url("chrome://global/skin/icons/alert-exclam.gif"); + display: -moz-box; + width: -moz-available; + height: 70%; + -moz-box-orient: vertical; + text-align: start; +} + +#errorShortDesc > p { + margin-top: 0.4em; + margin-bottom: 0; +} + +#errorLongContent, #errorTrailerDesc { + display: -moz-box; + -moz-box-flex: 1; + -moz-box-orient: vertical; } #tabList { + margin-top: 2.5em; width: 100%; - height: 12em; + min-height: 12em; } treechildren::-moz-tree-image(icon), diff --git a/LCARStrek/browser/browser.css b/LCARStrek/browser/browser.css index 97b7e51e..75f3430c 100644 --- a/LCARStrek/browser/browser.css +++ b/LCARStrek/browser/browser.css @@ -131,6 +131,7 @@ menubar { /* ::::: app menu button ::::: */ +.tab-drag-preview::before, #appmenu-button { background-color: #FF9F00; background-clip: padding-box; @@ -148,6 +149,7 @@ menubar { border-right: none; } +#main-window[privatebrowsingmode=temporary] .tab-drag-preview::before, #main-window[privatebrowsingmode=temporary] #appmenu-button { background-color: #6000CF; color: #FFCF00; @@ -458,7 +460,7 @@ menuitem.bookmark-item { /* ::::: bookmark items ::::: */ .bookmark-item { - list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-item.gif"); + list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png"); -moz-image-region: auto; } @@ -1071,7 +1073,7 @@ toolbar[mode="full"] .toolbarbutton-1 > .toolbarbutton-menubutton-button { /* sync button */ -#sync-button { +#sync-button:not([status]) { list-style-image: url("chrome://browser/skin/Toolbar.png") !important; /* for making the palette work */ -moz-image-region: rect(0, 324px, 18px, 306px); } @@ -1276,11 +1278,11 @@ html|*.urlbar-input:-moz-lwtheme:-moz-placeholder, } #page-proxy-favicon:not([src]) { - list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-item.gif"); + list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png"); } #page-proxy-favicon[pageproxystate="invalid"] { - list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-item.gif"); + opacity: 0.5; } #urlbar-throbber { @@ -1391,9 +1393,13 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action- border-bottom-right-radius: 0px; } -#urlbar > toolbarbutton:not([disabled]):active:hover { +#urlbar > toolbarbutton:not([disabled]):active:hover, +#urlbar-reload-button:not(:hover) { + -moz-border-start-style: none; -moz-padding-start: 4px; - -moz-border-start: none; +} + +#urlbar > toolbarbutton:not([disabled]):active:hover { } #urlbar-go-button { @@ -1617,7 +1623,7 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action- .tab-icon-image { width: 16px; height: 16px; - list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-item.gif"); + list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png"); -moz-image-region: auto; -moz-margin-end: 3px; } @@ -1645,7 +1651,25 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action- outline: 1px dotted; } -/* Tab DnD indicator */ +/* Tab drag and drop */ +.tab-drag-panel { + border: 0 !important; +} + +.tab-drag-label { + margin: 0 !important; + padding: 5px; + border: 1px solid #8050B0; +} + +.tab-drag-panel:not([target]) > .tab-drag-label { + display: none; +} + +.tab-drag-preview { + border: 1px solid #9C9CFF; +} + .tab-drop-indicator { list-style-image: url("chrome://browser/skin/tabbrowser/tabDragIndicator.png"); margin-bottom: -11px; @@ -1758,8 +1782,7 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action- /* All tabs menupopup */ .alltabs-item > .menu-iconic-left > .menu-iconic-icon { - list-style-image: url("chrome://global/skin/icons/folder-item.png"); - -moz-image-region: rect(0px, 16px, 16px, 0px); + list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png"); -moz-image-region: auto; } @@ -2292,3 +2315,32 @@ panel[dimmed="true"] { #content { background-color: transparent !important; } + +/* Highlighter */ + +.highlighter-veil { + background-color: rgba(0, 0, 0, 0.5); +} + +#highlighter-close-button { + list-style-image: url("chrome://browser/skin/KUI-close.png"); + top: 12px; + right: 12px; + cursor: pointer; +} + +#highlighter-close-button:-moz-locale-dir(rtl) { + right: auto; + left: 12px; +} + +highlighter-veil-transparentbox { + box-shadow: 0 0 0 1px rgba(0,0,0,0.5); + outline: 1px dashed rgba(255,255,255,0.5); + outline-offset: -1px; +} + +#highlighter-veil-transparentbox[locked] { + box-shadow: 0 0 0 1px black; + outline-color: white; +} diff --git a/LCARStrek/browser/highlighter.css b/LCARStrek/browser/highlighter.css deleted file mode 100644 index 6a3236b9..00000000 --- a/LCARStrek/browser/highlighter.css +++ /dev/null @@ -1,105 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Mozilla Inspector Module. - * - * The Initial Developer of the Original Code is - * The Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2011 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Campbell (original author) - * Paul Rouget - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -body { - margin: 0; - overflow: hidden; -} - -#close-button { - background-image: url("KUI-close.png"); - border: none; - padding: 0; - width: 24px; - height: 24px; - position: fixed; - top: 12px; - right: 12px; - z-index: 1; - cursor: pointer; -} - -.veil { - background-color: rgba(0, 0, 0, 0.5); -} - -.veil, #veil-middlebox, #veil-transparentbox { - -moz-transition: 0.1s; - -moz-transition-timing-function: linear; -} - -#veil-container { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -#veil { - width: 100%; - height: 100%; - display: -moz-box; - -moz-box-orient: vertical; -} - -#veil-topbox, #veil-bottombox { - width: 100%; -} - -#veil-bottombox { - -moz-box-flex: 1; -} - -#veil-middlebox { - display: -moz-box; - -moz-box-orient: horizontal; -} - -#veil-leftbox, #veil-rightbox { - height: 100%; -} - -#veil-rightbox { - -moz-box-flex: 1; -} - -#veil { - vertical-align: top; -} - diff --git a/LCARStrek/browser/places/places.css b/LCARStrek/browser/places/places.css index 39a0fafb..1d207e67 100644 --- a/LCARStrek/browser/places/places.css +++ b/LCARStrek/browser/places/places.css @@ -81,6 +81,11 @@ treechildren::-moz-tree-image(query, OrganizerQuery_Tags) { -moz-image-region: auto; } +treechildren::-moz-tree-image(query, OrganizerQuery_Downloads) { + list-style-image: url("chrome://browser/skin/places/downloads.png"); + -moz-image-region: auto; +} + /* calendar icon for folders grouping items by date */ treechildren::-moz-tree-image(title, query, dayContainer) { list-style-image: url("chrome://communicator/skin/history/calendar.png"); diff --git a/LCARStrek/browser/places/unstarred48.png b/LCARStrek/browser/places/unstarred48.png index 05886ff1deceac994997579322466c10dadab856..059cd66e050e6d6e2cbb5b93998f9375a20aaea7 100644 GIT binary patch delta 170 zcmdnaw3TUs85aWsLqos@(+;2M6CEr$x!FXywC?I>xJ_)*sW0+$aSV~TJoo%Y-Ub66 zmq2MQE473PA!nxWp2$d>?4jep&U)y^z9}XN-aoxQinP8cwOW#|*`XkMbE5Fh3AfKX z_V0M{Y(gpT3e^WrH;sco`D`;=yw>@4g??Ph!-lC$X$QWraxGwhAh(E*N2keuW@vb? Wve+ciNDAmG1`bbGKbLh*2~7a7p+e9A delta 172 zcmV;d08{_90=EK?HVP6Ye}GW1LF@mykw7^K1`Poz5`Q}HrICUxe{@MiK~xyiozJli zfItX^VbH?P2^{1qXK{qvz#9!WF>wJqEsO}fD{T}KzgYYsNAx-kXe$K>SiufXaDm&u zogVR{n}@7RgjyzNrtFNAoWa(nxAo9A?!`qGj&P;8m=UHgp&%55f>00&LO~d?;)#_X a^8gQTBqNmk*aiRq3IG5}MNUMnLSTZdHby}J diff --git a/LCARStrek/browser/preferences/aboutPermissions.css b/LCARStrek/browser/preferences/aboutPermissions.css index eda69e09..ebaf8115 100644 --- a/LCARStrek/browser/preferences/aboutPermissions.css +++ b/LCARStrek/browser/preferences/aboutPermissions.css @@ -1,14 +1,4 @@ -/* background styles borrowed from extensions.css */ -#permissions-page { - background-color: #000000; - color: #FF9F00; - margin: 20px; -} - -#permissions-content { - border: 1px solid #9C9CFF; - border-radius: 5px; -} +@import url("chrome://global/skin/inContentUI.css"); /* sites box */ @@ -17,6 +7,17 @@ width: 25em; } +#sites-filter { + margin: 0; +} + +#sites-list { + -moz-appearance: none; + border: 1px solid #9C9CFF; + background-color: #000000; + margin: 5px 0 0 0; +} + .site { padding: 4px; border-bottom: 1px solid #9C9CFF; diff --git a/LCARStrek/browser/preferences/preferences.css b/LCARStrek/browser/preferences/preferences.css index 53673daf..bb0c7d78 100644 --- a/LCARStrek/browser/preferences/preferences.css +++ b/LCARStrek/browser/preferences/preferences.css @@ -146,7 +146,7 @@ radio[pane=paneSync] { width: 16px; height: 16px; margin: 0 2px; - list-style-image: url("chrome://global/skin/filepicker/file.gif"); + list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png"); } #cookiesChildren::-moz-tree-image(domainCol, container) { diff --git a/LCARStrek/browser/tabview/new-tab.png b/LCARStrek/browser/tabview/new-tab.png deleted file mode 100644 index 679e7d7b615ac85bf75f85900d7cd2508b29eaf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q#0(@S$S&Ulq!^2X+?^QKos)S9f zkN`6OpJ!Oo$iE1rq9n*Kn8D%MjWiG^$=lt9p@UV{1EjpbBeIx*fm;ZK886+f`vVkY zFY)wsWxvfP%pfmr?s4D`VzGbCJmmvo>)toY#`l-~X*-8BiaCr>mdKI;Vst062^^&;S4c diff --git a/LCARStrek/browser/tabview/tabview.css b/LCARStrek/browser/tabview/tabview.css index 3018c2db..84a4f96a 100644 --- a/LCARStrek/browser/tabview/tabview.css +++ b/LCARStrek/browser/tabview/tabview.css @@ -68,6 +68,7 @@ html[dir=rtl] .favicon { height: 16px; border-radius: 3px; background-image: -moz-image-rect(url("chrome://browser/skin/tabview/close.png"), 0, 16, 16, 0); + background-repeat: no-repeat; } .close:hover { @@ -167,7 +168,7 @@ html[dir=rtl] .expander { ----------------------------------*/ .groupItem { - cursor: move; + cursor: pointer; background-color: #000000; border-radius: 0.4em; border: 1px solid #6080B5; @@ -179,6 +180,17 @@ html[dir=rtl] .expander { .groupItem .close { z-index: 10; + top: 0px; + right: 0px; + width: 22px; + height: 22px; + background-position: bottom left; +} + +html[dir=rtl] .groupItem .close { + right: auto; + left: 0px; + background-position: bottom right; } .dragRegion { @@ -328,25 +340,6 @@ html[dir=rtl] .guideTrench { /* Other ----------------------------------*/ -.newTabButton { - width: 16px; - height: 15px; - bottom: 10px; - left: 10px; - cursor: pointer; - opacity: .3; - background-image: url(chrome://browser/skin/tabview/new-tab.png); -} - -html[dir=rtl] .newTabButton { - left: auto; - right: 10px; -} - -.newTabButton:hover { - opacity: 1; -} - .active { box-shadow: 5px 5px 3px rgba(255,207,0,.5); } @@ -364,6 +357,7 @@ html[dir=rtl] .acceptsDrop { } .titlebar { + cursor: move; font-size: 12px; height: 18px; } diff --git a/LCARStrek/messenger/threadPane.css b/LCARStrek/messenger/threadPane.css index 6b9b73e1..b6995f12 100644 --- a/LCARStrek/messenger/threadPane.css +++ b/LCARStrek/messenger/threadPane.css @@ -226,11 +226,35 @@ treechildren::-moz-tree-image(subjectCol, new) { list-style-image: url("chrome://messenger/skin/icons/message-mail-new.gif"); } +treechildren::-moz-tree-image(subjectCol, forwarded) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward.gif"); +} + +treechildren::-moz-tree-image(subjectCol, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-reply.gif"); +} + +treechildren::-moz-tree-image(subjectCol, forwarded, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward-reply.gif"); +} + .tabmail-tab[type="message"][Attachment="true"], tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach) { list-style-image: url("chrome://messenger/skin/icons/message-mail-attach.gif"); } +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-reply.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward-reply.gif"); +} + .tabmail-tab[type="message"][IMAPDeleted="true"], treechildren::-moz-tree-image(subjectCol, imapdeleted) { list-style-image: url("chrome://messenger/skin/icons/message-mail-imapdelete.gif"); @@ -245,11 +269,35 @@ treechildren::-moz-tree-image(subjectCol, new, offline) { list-style-image: url("chrome://messenger/skin/icons/message-mail-new-offline.gif"); } +treechildren::-moz-tree-image(subjectCol, forwarded, offline) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward-offline.gif"); +} + +treechildren::-moz-tree-image(subjectCol, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-offline-reply.gif"); +} + +treechildren::-moz-tree-image(subjectCol, forwarded, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-forward-offline-reply.gif"); +} + .tabmail-tab[type="message"][Attachment="true"][Offline="true"], treechildren::-moz-tree-image(subjectCol, attach, offline) { list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-offline.gif"); } +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded, offline) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward-offline.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-offline-reply.gif"); +} + +tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, forwarded, offline, replied) { + list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-forward-offline-reply.gif"); +} + .tabmail-tab[type="message"][IMAPDeleted="true"][Offline="true"], treechildren::-moz-tree-image(subjectCol, imapdeleted, offline) { list-style-image: url("chrome://messenger/skin/icons/message-mail-imapdel-offline.gif"); diff --git a/LCARStrek/mozapps/places/defaultFavicon.png b/LCARStrek/mozapps/places/defaultFavicon.png index 412208d9eaae6023ab05a6a81764ae1c5a43e2a2..9daec6a05cbead960c12a3101ab0d68e53cc4409 100644 GIT binary patch delta 114 zcmdnbxSer=ga#us0|SGqZLSiKVk{1FcVbv~PUa<$!xrEZ;tHhy&u4h6CjEV)vxWU_ zZgvJ<*4gilssY7iJzX3_IIbrrBqSJ|PAo`ZQdDR#o^VruEkKf)nIYg3b7=daFZDo$ N44$rjF6*2UngG%rAfo^P delta 122 zcmdnaxSw%?gf1THL15uRMvk`( Y5=;24mbz+u0IFv2boFyt=akR{0JOp+^8f$< -- 2.43.0