From c842690051f8b0c3f727bf682f2b63ebbd7a5ee0 Mon Sep 17 00:00:00 2001 From: foudfou Date: Mon, 4 Jul 2011 00:00:07 +0200 Subject: [PATCH] proof of concept version --- src/chrome/content/options.js | 2 +- src/chrome/content/options.xul | 4 +- src/chrome/content/overlay.js | 369 +--- src/chrome/skin/icon32.png | Bin 0 -> 1514 bytes src/chrome/skin/icon48.png | Bin 3139 -> 0 bytes src/chrome/skin/icon64.png | Bin 3588 -> 0 bytes src/chrome/skin/overlay.css | 12 +- src/defaults/preferences/prefs.js | 2 +- src/install.rdf | 8 +- src/modules/LibGtkStatusIcon.js | 81 + testing/Makefile | 4 + testing/firefox.xpm | 3096 +++++++++++++++++++++++++++++ testing/gkt_icon_example.c | 45 + testing/gtk_icon_example | Bin 0 -> 67281 bytes 14 files changed, 3255 insertions(+), 368 deletions(-) create mode 100644 src/chrome/skin/icon32.png delete mode 100644 src/chrome/skin/icon48.png delete mode 100644 src/chrome/skin/icon64.png create mode 100644 src/modules/LibGtkStatusIcon.js create mode 100644 testing/Makefile create mode 100644 testing/firefox.xpm create mode 100644 testing/gkt_icon_example.c create mode 100755 testing/gtk_icon_example diff --git a/src/chrome/content/options.js b/src/chrome/content/options.js index c547c00..a7ebca0 100644 --- a/src/chrome/content/options.js +++ b/src/chrome/content/options.js @@ -1,6 +1,6 @@ /* -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -Components.utils.import("resource://sce/commons.js"); +Components.utils.import("resource://mozt/commons.js"); const Cc = Components.classes; const Ci = Components.interfaces; diff --git a/src/chrome/content/options.xul b/src/chrome/content/options.xul index 98d8175..a43d99e 100644 --- a/src/chrome/content/options.xul +++ b/src/chrome/content/options.xul @@ -1,7 +1,7 @@ - - + diff --git a/src/chrome/content/overlay.js b/src/chrome/content/overlay.js index 05ea1eb..a767eb1 100644 --- a/src/chrome/content/overlay.js +++ b/src/chrome/content/overlay.js @@ -1,63 +1,39 @@ /* -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* - * GLOBAL APPROACH: - * - * since we can't avoid the about:certerr page (1), and can't shortcut the - * internal request to about:certerr gracefully (2), we: - * - * - add the cert exception - * - wait for the full load of the about:certerr page (that's the tricky part) - * - load the initially requested URL - * - * (1) certerror is hardly avoidable since it may be displayed whenever a - * newsocket is created, see: nsNSSIOLayer.cpp: dialogs->ShowCertError, - * nsNSSBadCertHandler, nsSSLIOLayerNewSocket, - * ./netwerk/base/src/nsSocketTransport2.cpp - * - * (2) a raw reload of the requested https page works, but is not very clean - * since it shortcuts the internal request to about:certerr, and produces a - * harmless *no element found* error (displayed shortly and not too noticeable - * though) - */ - -Components.utils.import("resource://sce/commons.js"); +Components.utils.import("resource://mozt/commons.js"); +Components.utils.import("resource://mozt/LibGtkStatusIcon.js"); mozt.Main = { onLoad: function() { // initialization code this.initialized = null; - this.strings = document.getElementById("sce-strings"); - this.overrideService = null; - this.recentCertsService = null; - this.notification = {}; - this.stash = {}; + this.strings = document.getElementById("mozt-strings"); try { // Set up preference change observer mozt.Utils.prefService.QueryInterface(Ci.nsIPrefBranch2); // must stay out of _toggle() mozt.Utils.prefService.addObserver("", this, false); - - // Get cert services - this.overrideService = - Cc["@mozilla.org/security/certoverride;1"] - .getService(Components.interfaces.nsICertOverrideService); - this.recentCertsService = Cc["@mozilla.org/security/recentbadcerts;1"] - .getService(Ci.nsIRecentBadCertsService); } catch (ex) { Components.utils.reportError(ex); return false; } - var enabled = mozt.Utils.prefService.getBoolPref('enabled'); - mozt.Debug.dump('enabled: '+enabled); - if (enabled) - this._toggle(true); - mozt.Debug.dump('SkipCertError LOADED !'); + LibGtkStatusIcon.init(); +/* + GtkStatusIcon *tray_icon = gtk_status_icon_new(); + GdkPixbuf *default_icon = gdk_pixbuf_new_from_xpm_data(firefox_xpm); + gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(tray_icon), + GDK_PIXBUF(default_icon)); +*/ + this.tray_icon = LibGtkStatusIcon.gtk_status_icon_new(); + // var pixmap = "hi"; // TODO: read pixmap from file + // LibGtkStatusIcon.gdk_pixbuf_new_from_xpm_data(pixmap); + + mozt.Debug.dump('Moztray LOADED !'); this.initialized = true; return true; }, @@ -65,30 +41,12 @@ mozt.Main = { onQuit: function() { // Remove observer mozt.Utils.prefService.removeObserver("", this); - - this._toogle(false); + LibGtkStatusIcon.shutdown(); mozt.Debug.dump('SkipCertError UNLOADED !'); this.initialized = false; }, - // since we are using a TabsProgressListener, it seems we do not need to keep - // track of WebProgressListeners as indicated on - // https://developer.mozilla.org/en/XUL_School/Intercepting_Page_Loads#WebProgressListeners - _toggle: function (enable) { - mozt.Debug.dump('toggle: '+enable); - try { - if (enable) { - gBrowser.addTabsProgressListener(this.TabsProgressListener); - } else { - gBrowser.removeTabsProgressListener(this.TabsProgressListener); - } - } catch (ex) { - Components.utils.reportError(ex); - return false; - } - }, - observe: function(subject, topic, data) { // Observer for pref changes if (topic != "nsPref:changed") return; @@ -102,301 +60,6 @@ mozt.Main = { } }, - _getCertException: function(uri, cert) { - var outFlags = {}; - var outTempException = {}; - var knownCert = mozt.Main.overrideService.hasMatchingOverride( - uri.asciiHost, - uri.port, - cert, - outFlags, - outTempException); - return knownCert; - }, - - _addCertException: function(SSLStatus, uri, cert) { - var flags = 0; - if(SSLStatus.isUntrusted) - flags |= mozt.Main.overrideService.ERROR_UNTRUSTED; - if(SSLStatus.isDomainMismatch) - flags |= mozt.Main.overrideService.ERROR_MISMATCH; - if(SSLStatus.isNotValidAtThisTime) - flags |= mozt.Main.overrideService.ERROR_TIME; - mozt.Main.overrideService.rememberValidityOverride( - uri.asciiHost, uri.port, - cert, - flags, - mozt.Utils.prefService.getBoolPref('add_temporary_exceptions')); - mozt.Debug.dump("CertEx added"); - mozt.Main.TabsProgressListener._certExceptionJustAdded = true; - mozt.Debug.dump("certEx changed: " + mozt.Main.TabsProgressListener._certExceptionJustAdded); - - mozt.Main.TabsProgressListener._goto = uri.spec; // never reset - }, - - _parseBadCertFlags: function(flags) { - var tag = ''; - var ns = Ci.nsIX509Cert; - - if (flags & ns.NOT_VERIFIED_UNKNOWN) - tag += ', ' + mozt.Main.strings.getString('NOT_VERIFIED_UNKNOWN'); - if (flags & ns.CERT_REVOKED) - tag += ', ' + mozt.Main.strings.getString('CERT_REVOKED'); - if (flags & ns.CERT_EXPIRED) - tag += ', ' + mozt.Main.strings.getString('CERT_EXPIRED'); - if (flags & ns.CERT_NOT_TRUSTED) - tag += ', ' + mozt.Main.strings.getString('CERT_NOT_TRUSTED'); - if (flags & ns.ISSUER_NOT_TRUSTED) - tag += ', ' + mozt.Main.strings.getString('ISSUER_NOT_TRUSTED'); - if (flags & ns.ISSUER_UNKNOWN) - tag += ', ' + mozt.Main.strings.getString('ISSUER_UNKNOWN'); - if (flags & ns.INVALID_CA) - tag += ', ' + mozt.Main.strings.getString('INVALID_CA'); - if (flags & ns.USAGE_NOT_ALLOWED) - tag += ', ' + mozt.Main.strings.getString('USAGE_NOT_ALLOWED'); - if (flags & SCE_CERT_SELF_SIGNED) - tag += ', ' + mozt.Main.strings.getString('CERT_SELF_SIGNED'); - - if (tag != "") tag = tag.substr(2); - - return tag; - }, - - notify: function(abrowser) { - - // find the correct tab to display notification on - var mainWindow = window - .QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIWebNavigation) - .QueryInterface(Ci.nsIDocShellTreeItem).rootTreeItem - .QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow); - var notificationBox = mainWindow.gBrowser.getNotificationBox(abrowser); - mozt.Main.stash.notificationBox = notificationBox; // stash for later use - - // check notification not already here - var notificationValue = mozt.Main.notification.type + '_' + mozt.Main.notification.host; - if (notificationBox.getNotificationWithValue(notificationValue)) { - mozt.Debug.dump("notificationBox already here"); - return; - } - - // build notification - var temporaryException = mozt.Utils.prefService.getBoolPref('add_temporary_exceptions') ? - mozt.Main.strings.getString('temporaryException') : mozt.Main.strings.getString('permanentException'); - var msgArgs = []; - var priority = null; // notificationBox.PRIORITY_INFO_LOW not working ?? - switch (mozt.Main.notification.type) { - case 'exceptionAdded': - msgArgs = [temporaryException, mozt.Main.notification.host]; - priority = 'PRIORITY_INFO_LOW'; - break; - case 'exceptionNotAdded': - msgArgs = [mozt.Main.notification.dontBypassFlags]; - priority = 'PRIORITY_WARNING_LOW'; - break; - default: - break; - } - var message = mozt.Main.strings.getFormattedString( - mozt.Main.notification.type, msgArgs); - - // appendNotification( label , value , image , priority , buttons ) - var notification = notificationBox.appendNotification( - message, notificationValue, null, notificationBox[priority], null); - - // close notificatioBox if needed (will close automatically if reload) - var exceptionDialogButton = abrowser.webProgress.DOMWindow - .document.getElementById('exceptionDialogButton'); - exceptionDialogButton.addEventListener( - "click", mozt.Main.exceptionDialogButtonOnClick, false); - - mozt.Main.notification = {}; // reset - }, - - exceptionDialogButtonOnClick: function(event) { - mozt.Main._closeNotificationMaybe(); - event.originalTarget.removeEventListener( - "click", mozt.Main.exceptionDialogButtonOnClick, false); - }, - - _closeNotificationMaybe: function() { - if (!mozt.Main.stash.notificationBox) - return; - mozt.Main.stash.notificationBox.currentNotification.close(); - mozt.Main.stash.notificationBox = null; - }, - - - // a TabProgressListner seems more appropriate than an Observer, which only - // gets notified for document requests (not internal requests) - TabsProgressListener: { - // can't see the necessity of having QueryInterface(aIID) implemented... - - _certExceptionJustAdded: null, // used for communication btw - // onSecurityChange, onStateChange, ... - _certerrorCount: 0, // certerr seems called more than once... - - // This method will be called on security transitions (eg HTTP -> HTTPS, - // HTTPS -> HTTP, FOO -> HTTPS) and *after document load* completion. It - // might also be called if an error occurs during network loading. - onSecurityChange: function (aBrowser, aWebProgress, aRequest, aState) { - var uri = aBrowser.currentURI; - mozt.Debug.dump("onSecurityChange: uri=" + uri.prePath); - - if (!uri.schemeIs("https")) return; - - this._certerrorCount = 0; // reset - - // retrieve bad cert from nsIRecentBadCertsService - // NOTE: experience shows that nsIRecentBadCertsService will not provide - // SSLStatus when cert is known or trusted. That's why we don't try to - // get it from aRequest - var port = uri.port; - if (port == -1) port = 443; // thx http://gitorious.org/perspectives-notary-server/ - var hostWithPort = uri.host + ":" + port; - mozt.Main.notification.host = uri.host; - var SSLStatus = mozt.Main.recentCertsService.getRecentBadCert(hostWithPort); - - if (!SSLStatus) { - mozt.Debug.dump("no SSLStatus for: " + hostWithPort); - return; - } - - mozt.Debug.dump("SSLStatus"); - mozt.Debug.dumpObj(SSLStatus); - var cert = SSLStatus.serverCert; - mozt.Debug.dump("cert"); - mozt.Debug.dumpObj(cert); - - // check if cert already known/added - var knownCert = mozt.Main._getCertException(uri, cert); - if (knownCert) { - mozt.Debug.dump("known cert: " + knownCert); - return; - } - - // Determine cert problems - var dontBypassFlags = 0; - - // we're only interested in certs with characteristics - // defined in options (self-signed, issuer unknown, ...) - cert.QueryInterface(Ci.nsIX509Cert3); - var isSelfSigned = cert.isSelfSigned; - mozt.Debug.dump("isSelfSigned:" + isSelfSigned); - if (isSelfSigned - && !mozt.Utils.prefService.getBoolPref("bypass_self_signed")) - dontBypassFlags |= SCE_CERT_SELF_SIGNED; - // NOTE: isSelfSigned *implies* ISSUER_UNKNOWN (should be handled - // correctly in option dialog) - - var verificationResult = cert.verifyForUsage(Ci.nsIX509Cert.CERT_USAGE_SSLServer); - switch (verificationResult) { - case Ci.nsIX509Cert.ISSUER_NOT_TRUSTED: // including self-signed - mozt.Debug.dump("issuer not trusted"); - case Ci.nsIX509Cert.ISSUER_UNKNOWN: - mozt.Debug.dump("issuer unknown"); - mozt.Debug.dump("bypass_issuer_unknown: " + mozt.Utils.prefService.getBoolPref("bypass_issuer_unknown")); - if (!mozt.Utils.prefService.getBoolPref("bypass_issuer_unknown")) - dontBypassFlags |= Ci.nsIX509Cert.ISSUER_UNKNOWN; - default: - mozt.Debug.dump("verificationResult: " + verificationResult); - break; - } - var dontBypassTag = mozt.Main._parseBadCertFlags(dontBypassFlags); - mozt.Debug.dump("dontBypassFlags=" + dontBypassFlags + ", " + dontBypassTag); - - // trigger notification - if (mozt.Utils.prefService.getBoolPref('notify')) { - mozt.Main.notification.willNotify = true; - mozt.Debug.dump("onSecurityChange: willNotify"); - } - - // Add cert exception (if bypass allowed by options) - if (dontBypassFlags == 0) { - mozt.Main._addCertException(SSLStatus, uri, cert); - mozt.Main.notification.type = 'exceptionAdded'; - } else { - mozt.Main.notification.type = 'exceptionNotAdded'; - mozt.Main.notification.dontBypassFlags = dontBypassTag; - } - - }, // END onSecurityChange - - _getTabIndex: function(abrowser) { - var tabbrowser = abrowser.getTabBrowser(); - var tabContainer = tabbrowser.tabs; - - var tabIndex = null; - for (var i = 0; i < tabContainer.length; ++i) { - if (abrowser == tabbrowser.getBrowserAtIndex(i)) { - tabIndex = i; - break; - } - } - - return tabIndex; - }, - - // "We can't look for this during onLocationChange since at that point the - // document URI is not yet the about:-uri of the error page." (browser.js) - // Experience shows that the order is as follows: badcert - // (onSecurityChange) leading to about:blank, then request of - // about:document-onload-blocker, leading to about:certerror (called at - // least twice) - onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) { - - // aProgress.DOMWindow is the tab/window which triggered the change. - var originDoc = aWebProgress.DOMWindow.document; - var originURI = originDoc.documentURI; - mozt.Debug.dump("onStateChange " + this._getTabIndex(aBrowser) + ": originURI=" + originURI); - var safeRequestName = mozt.Utils.safeGetName(aRequest); - mozt.Debug.dump("safeRequestName: " + safeRequestName); - - // WE JUST CAN'T CANCEL THE REQUEST FOR about:certerr | - // about:document-onload-blocker ...SO WE WAIT FOR IT ! - if (aStateFlags & (Ci.nsIWebProgressListener.STATE_STOP - |Ci.nsIWebProgressListener.STATE_IS_REQUEST)) { - - if (/^about:certerr/.test(originURI)) { - this._certerrorCount++; - mozt.Debug.dump("certerrorCount=" + this._certerrorCount); - - if (this._certerrorCount < 2) { - if (aStateFlags & (Ci.nsIWebProgressListener.STATE_STOP - |Ci.nsIWebProgressListener.STATE_RESTORING)) { - // experienced only one certerr call during sessoin restore - mozt.Debug.dump("restoring"); - } else { - mozt.Debug.dump("certerrorCount not sufficient"); - return; // wait for last (?) call - } - } - - if (this._certExceptionJustAdded) { - this._certExceptionJustAdded = false; // reset - mozt.Debug.dump("certEx changed: " + this._certExceptionJustAdded); - - aRequest.cancel(Components.results.NS_BINDING_ABORTED); - aBrowser.loadURI(this._goto, null, null); - } - - if (mozt.Main.notification.willNotify) { - mozt.Debug.dump("onStateChange: willNotify"); - mozt.Main.notify.willNotify = false; // reset - mozt.Main.notify(aBrowser); - } - - } - - } - - }, // END onStateChange - - onLocationChange: function() { }, - onProgressChange: function() { }, - onStatusChange: function() { }, - - }, // END TabsProgressListener - }; diff --git a/src/chrome/skin/icon32.png b/src/chrome/skin/icon32.png new file mode 100644 index 0000000000000000000000000000000000000000..39ddb8e90e86e2eb2bb66d5cc7aa86920e482cf9 GIT binary patch literal 1514 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 KMNUMnLSTYOTlxC{ diff --git a/src/chrome/skin/overlay.css b/src/chrome/skin/overlay.css index 3f44ad5..0bd176a 100644 --- a/src/chrome/skin/overlay.css +++ b/src/chrome/skin/overlay.css @@ -1,22 +1,22 @@ /* This is just an example. You shouldn't do this. */ -#sce-hello +#mozt-hello { color: red ! important; } -#sce-toolbar-button +#mozt-toolbar-button { - list-style-image: url("chrome://sce/skin/toolbar-button.png"); + list-style-image: url("chrome://mozt/skin/toolbar-button.png"); -moz-image-region: rect(0px 24px 24px 0px); } -#sce-toolbar-button:hover +#mozt-toolbar-button:hover { -moz-image-region: rect(24px 24px 48px 0px); } -[iconsize="small"] #sce-toolbar-button +[iconsize="small"] #mozt-toolbar-button { -moz-image-region: rect( 0px 40px 16px 24px); } -[iconsize="small"] #sce-toolbar-button:hover +[iconsize="small"] #mozt-toolbar-button:hover { -moz-image-region: rect(24px 40px 40px 24px); } diff --git a/src/defaults/preferences/prefs.js b/src/defaults/preferences/prefs.js index 95039ac..e912d8d 100644 --- a/src/defaults/preferences/prefs.js +++ b/src/defaults/preferences/prefs.js @@ -1,5 +1,5 @@ // https://developer.mozilla.org/en/Localizing_extension_descriptions -pref("extensions.skipcerterror@foudil.fr.description", "chrome://sce/locale/overlay.properties"); +pref("extensions.skipcerterror@foudil.fr.description", "chrome://mozt/locale/overlay.properties"); // Extension prefs pref("extensions.mozt.enabled", true); diff --git a/src/install.rdf b/src/install.rdf index 6c4b0b5..4fd1786 100644 --- a/src/install.rdf +++ b/src/install.rdf @@ -1,19 +1,17 @@ - skipcerterror@foudil.fr + moztray@foudil.fr false 2 Mozilla Tray 0.0.1 Foudil BRÉTEL - Hua Luo, Francesco Solero (Firetray original authors) https://github.com/foudfou/moztray - chrome://mozt/content/options.xul - chrome://mozt/skin/icon48.png - chrome://mozt/skin/icon64.png + + chrome://mozt/skin/icon32.png {ec8030f7-c20a-464f-9b0e-13a3a9e97384} diff --git a/src/modules/LibGtkStatusIcon.js b/src/modules/LibGtkStatusIcon.js new file mode 100644 index 0000000..cd30195 --- /dev/null +++ b/src/modules/LibGtkStatusIcon.js @@ -0,0 +1,81 @@ +/* -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ + +var EXPORTED_SYMBOLS = ["LibGtkStatusIcon"]; + +const Cc = Components.classes; +const Ci = Components.interfaces; +const Cu = Components.utils; + +const LIB_GTK = "libgtk-x11-2.0.so"; + +var LibGtkStatusIcon = { + + _lib: null, + + init: function() { + // If ctypes doesn't exist, try to get it + Cu.import("resource://gre/modules/ctypes.jsm"); + // If we still don't have ctypes, this isn't going to work... + if (typeof(ctypes) == "undefined") { + throw ("Could not load JS-Ctypes"); + } + + try { + // Try to start up dependencies - if they fail, they'll throw + // exceptions. ex: GObjectLib.init(); + + this._lib = ctypes.open(LIB_GTK); + if (!this._lib) + throw ("Could not load " + LIB_GTK); + + } catch (e) { + this.shutdown(); + throw(e); + } + + // Ok, we got everything - let's declare. + this._declare(); + }, + + shutdown: function() { + // Close our connection to the library. + if (this._lib) + this._lib.close(); + }, + + _declare: function() { + // Types + this.GtkStatusIcon = ctypes.StructType("GtkStatusIcon"); + this.GtkStatusIconRef = ctypes.PointerType(this.GtkStatusIcon); + this.GdkPixbuf = ctypes.StructType("GdkPixbuf"); + this.GdkPixbufRef = ctypes.PointerType(this.GdkPixbuf); + this.Pixbuf = ctypes.PointerType(ctypes.char.ptr); + + // Consts + this.INDICATOR_MESSAGES_SERVER_TYPE = "message"; + + // Functions + + this.gtk_status_icon_new = this._lib.declare( + "gtk_status_icon_new", + ctypes.default_abi, + this.GtkStatusIconRef + ); + + this.gdk_pixbuf_new_from_xpm_data = this._lib.declare( + "gdk_pixbuf_new_from_xpm_data", + ctypes.default_abi, + this.GdkPixbufRef, + this.Pixbuf + ); + + this.gtk_status_icon_set_from_pixbuf = this._lib.declare( + "gtk_status_icon_set_from_pixbuf", + ctypes.default_abi, + this.GtkStatusIconRef, + this.GdkPixbufRef + ); + + } + +}; diff --git a/testing/Makefile b/testing/Makefile new file mode 100644 index 0000000..b257336 --- /dev/null +++ b/testing/Makefile @@ -0,0 +1,4 @@ +includes := $(shell pkg-config --libs --cflags gtk+-2.0) + +all: + gcc $(includes) -o gtk_icon_example gkt_icon_example.c diff --git a/testing/firefox.xpm b/testing/firefox.xpm new file mode 100644 index 0000000..cb8275e --- /dev/null +++ b/testing/firefox.xpm @@ -0,0 +1,3096 @@ +/* XPM */ +static const char * firefox_xpm[] = { +"64 64 3029 2", +" c None", +". c #456EA6", +"+ c #3664A1", +"@ c #295B9E", +"# c #295B9F", +"$ c #2A5FA2", +"% c #3165A8", +"& c #4173AF", +"* c #254D8D", +"= c #3F669D", +"- c #295B98", +"; c #27619B", +"> c #387CAE", +", c #4A95BE", +"' c #54A2C5", +") c #5FAFCE", +"! c #64B4D1", +"~ c #67B5D3", +"{ c #75B7D5", +"] c #85C7DF", +"^ c #7ACEE6", +"/ c #6BC8E3", +"( c #59BCD9", +"_ c #60BACC", +": c #52B3D0", +"< c #40659A", +"[ c #3D659A", +"} c #285A93", +"| c #3274A5", +"1 c #4A9ABD", +"2 c #5FAECB", +"3 c #85D0E2", +"4 c #9AE3EF", +"5 c #A5E8F2", +"6 c #B4EEF5", +"7 c #B7F0F6", +"8 c #B7F1F7", +"9 c #C6F6FA", +"0 c #D2F8FC", +"a c #C5F2F8", +"b c #B8ECF5", +"c c #98DEEE", +"d c #74CCE7", +"e c #62C2E2", +"f c #62B3D2", +"g c #669BBC", +"h c #476796", +"i c #254D88", +"j c #1C4A87", +"k c #2C689A", +"l c #4DA6C5", +"m c #6DCEE0", +"n c #96E8F5", +"o c #B6F7FF", +"p c #BFFAFF", +"q c #CEFAFF", +"r c #C9F8FF", +"s c #D4FAFF", +"t c #E6FDFF", +"u c #E4FCFF", +"v c #E2FCFF", +"w c #E0FBFF", +"x c #E0FCFF", +"y c #E1FCFF", +"z c #DEFDFF", +"A c #D2FAFE", +"B c #C5F7FB", +"C c #9DE9F5", +"D c #76D5EC", +"E c #3A8ABA", +"F c #2C69A3", +"G c #2A66A2", +"H c #24477D", +"I c #133973", +"J c #173F78", +"K c #2C69A2", +"L c #4094C6", +"M c #68C6E3", +"N c #9DEFFF", +"O c #A4F2FF", +"P c #A3EFFF", +"Q c #AEF1FE", +"R c #BAF3FF", +"S c #D5F9FF", +"T c #DBFAFF", +"U c #DAFAFF", +"V c #D9FAFF", +"W c #D8F9FF", +"X c #D7F9FF", +"Y c #D0FAFF", +"Z c #CFFAFF", +"` c #C9F9FF", +" . c #A2F0FD", +".. c #70D4E7", +"+. c #5FB3C5", +"@. c #4592B5", +"#. c #1B5B9A", +"$. c #29629D", +"%. c #294B7E", +"&. c #133972", +"*. c #1E4A85", +"=. c #275A98", +"-. c #408BC4", +";. c #60B6DC", +">. c #88DEF6", +",. c #99EAFC", +"'. c #9DEBFC", +"). c #A4EEFC", +"!. c #C1F5FE", +"~. c #CAF6FE", +"{. c #D1F8FE", +"]. c #D5F8FE", +"^. c #D6F9FE", +"/. c #D7F9FE", +"(. c #D5F9FE", +"_. c #D4F8FE", +":. c #CDF8FE", +"<. c #CAF7FE", +"[. c #C4F6FE", +"}. c #B1F4FE", +"|. c #89DDF1", +"1. c #7BBCC9", +"2. c #79B3BF", +"3. c #5E8FAA", +"4. c #3A6F9F", +"5. c #3E72A1", +"6. c #5886A6", +"7. c #1F4074", +"8. c #0D3069", +"9. c #0E3368", +"0. c #1D4887", +"a. c #306CBA", +"b. c #397CC5", +"c. c #6BBBE5", +"d. c #89DCF7", +"e. c #88DBF4", +"f. c #9CE6F7", +"g. c #B8F1FC", +"h. c #BCF2FB", +"i. c #CBF5FD", +"j. c #CCF5FD", +"k. c #CFF6FC", +"l. c #D0F6FC", +"m. c #D1F7FC", +"n. c #D2F7FD", +"o. c #D1F7FD", +"p. c #CDF6FC", +"q. c #C8F5FD", +"r. c #C5F5FD", +"s. c #C1F4FC", +"t. c #BCF3FB", +"u. c #9CE8F6", +"v. c #6DBEDD", +"w. c #569EC0", +"x. c #91ABAB", +"y. c #DDE2C2", +"z. c #ADC1B8", +"A. c #44759D", +"B. c #376D9C", +"C. c #5D8DAE", +"D. c #123269", +"E. c #072962", +"F. c #11356A", +"G. c #1A4079", +"H. c #295CB0", +"I. c #3672BF", +"J. c #488BCB", +"K. c #78C8ED", +"L. c #7CCFEE", +"M. c #80D4EF", +"N. c #97E4F7", +"O. c #BCF8FF", +"P. c #BEF9FF", +"Q. c #C4FAFF", +"R. c #C7F8FF", +"S. c #CAF5FB", +"T. c #CCF5FC", +"U. c #CDF5FC", +"V. c #CEF6FC", +"W. c #CEF5FC", +"X. c #CBF5FC", +"Y. c #C9F4FC", +"Z. c #C4F3FB", +"`. c #C0F3FB", +" + c #BBF3FB", +".+ c #B6F1FB", +"++ c #B1F1FB", +"@+ c #89E0F3", +"#+ c #79D0EA", +"$+ c #367EAF", +"%+ c #84999C", +"&+ c #DADDB9", +"*+ c #F6F5C0", +"=+ c #7E9B9B", +"-+ c #3E739C", +";+ c #8DADB6", +">+ c #CEB199", +",+ c #F59C43", +"'+ c #19386A", +")+ c #0B2B62", +"!+ c #0D2E63", +"~+ c #1A407D", +"{+ c #24509A", +"]+ c #2F61B5", +"^+ c #3E77C3", +"/+ c #569AD6", +"(+ c #6EBAE5", +"_+ c #74C5E8", +":+ c #75CEEE", +"<+ c #93D3E3", +"[+ c #B6CFCC", +"}+ c #BFCDC1", +"|+ c #C5C9BA", +"1+ c #C5DDD8", +"2+ c #C5F6FF", +"3+ c #C8F4FB", +"4+ c #C9F4FB", +"5+ c #CBF5FB", +"6+ c #C9F5FB", +"7+ c #C7F4FB", +"8+ c #C6F4FB", +"9+ c #BDF2FA", +"0+ c #BAF1FA", +"a+ c #B4F0FA", +"b+ c #B0F0FA", +"c+ c #A5EAF7", +"d+ c #8BDEF1", +"e+ c #7AD4ED", +"f+ c #5DB4DA", +"g+ c #2367A6", +"h+ c #547D9C", +"i+ c #D6D8A2", +"j+ c #FFFFA4", +"k+ c #BAC894", +"l+ c #618E9B", +"m+ c #7B6B76", +"n+ c #B1634F", +"o+ c #DB945E", +"p+ c #F5933C", +"q+ c #F48C37", +"r+ c #E99C57", +"s+ c #08265C", +"t+ c #06255C", +"u+ c #0A295E", +"v+ c #14356D", +"w+ c #234C90", +"x+ c #2B57A2", +"y+ c #3262B3", +"z+ c #427CC6", +"A+ c #589CD6", +"B+ c #61B0E4", +"C+ c #63BEED", +"D+ c #77B3CD", +"E+ c #AB7C63", +"F+ c #C46B3B", +"G+ c #CD642C", +"H+ c #C8895E", +"I+ c #C1CDC1", +"J+ c #C0F6FF", +"K+ c #C3F3FA", +"L+ c #C5F3FC", +"M+ c #C6F4FC", +"N+ c #C5F4FC", +"O+ c #C3F3FB", +"P+ c #C2F2FA", +"Q+ c #BEF1FA", +"R+ c #B6F0F9", +"S+ c #B3EFF9", +"T+ c #ADEEF8", +"U+ c #A9EDF8", +"V+ c #90E0F2", +"W+ c #7BD3EB", +"X+ c #71CCE8", +"Y+ c #64BDE3", +"Z+ c #4297D0", +"`+ c #317ABD", +" @ c #44688F", +".@ c #CDC881", +"+@ c #FFFF80", +"@@ c #EFEF8C", +"#@ c #8DAC95", +"$@ c #5F4A5E", +"%@ c #A33623", +"&@ c #D37E49", +"*@ c #E99650", +"=@ c #F47E28", +"-@ c #F17A2A", +";@ c #F38333", +">@ c #A36649", +",@ c #001D59", +"'@ c #011F58", +")@ c #04245B", +"!@ c #0A2B62", +"~@ c #153B79", +"{@ c #224D93", +"]@ c #28559F", +"^@ c #2F60B1", +"/@ c #3E78C5", +"(@ c #4B93D9", +"_@ c #6799C4", +":@ c #8F7E82", +"<@ c #A96650", +"[@ c #D04001", +"}@ c #CF4B09", +"|@ c #CA652E", +"1@ c #B7D3CE", +"2@ c #B6F5FE", +"3@ c #BCF0FA", +"4@ c #BFF1FA", +"5@ c #C0F2FB", +"6@ c #C1F2FB", +"7@ c #C2F2FC", +"8@ c #C1F2FC", +"9@ c #B9F0F9", +"0@ c #B2EFF9", +"a@ c #AEEEF8", +"b@ c #A6EBF7", +"c@ c #A2ECF7", +"d@ c #85DAEE", +"e@ c #6AC7E5", +"f@ c #69C5E4", +"g@ c #5DB4DF", +"h@ c #4799D3", +"i@ c #3E8CCE", +"j@ c #185AAF", +"k@ c #486687", +"l@ c #DAD074", +"m@ c #FFF96D", +"n@ c #F9F78A", +"o@ c #94A48B", +"p@ c #4C3655", +"q@ c #A75536", +"r@ c #DD945C", +"s@ c #ED7A2E", +"t@ c #EF691C", +"u@ c #ED6418", +"v@ c #F16514", +"w@ c #C6521D", +"x@ c #44283A", +"y@ c #001C53", +"z@ c #142B5A", +"A@ c #324166", +"B@ c #425076", +"C@ c #4C5B86", +"D@ c #4D6190", +"E@ c #4566A4", +"F@ c #4070B7", +"G@ c #5D76A6", +"H@ c #A45C4A", +"I@ c #C53E0D", +"J@ c #C93F09", +"K@ c #CB4F12", +"L@ c #C55C22", +"M@ c #9DABA6", +"N@ c #A7F2FF", +"O@ c #ADEEF9", +"P@ c #B5EEF9", +"Q@ c #B8EFFA", +"R@ c #BAF0FB", +"S@ c #BDF1FB", +"T@ c #BDF2FC", +"U@ c #BDF2FB", +"V@ c #BDF1FC", +"W@ c #BBF0FB", +"X@ c #B9EFFA", +"Y@ c #B7EEFA", +"Z@ c #B1EEF9", +"`@ c #A1E8F6", +" # c #91DFF1", +".# c #90E0F1", +"+# c #96E7F5", +"@# c #61BEE1", +"## c #5EB9DF", +"$# c #51A6D7", +"%# c #4288C2", +"&# c #6094BE", +"*# c #75A1C4", +"=# c #3B6AA6", +"-# c #687A77", +";# c #EFDA5D", +"># c #FFED64", +",# c #E9E782", +"'# c #A5BC93", +")# c #7B5A4D", +"!# c #B74C28", +"~# c #D2683A", +"{# c #E1B267", +"]# c #EE6517", +"^# c #EC5B13", +"/# c #EA540E", +"(# c #E8510B", +"_# c #E74906", +":# c #A73917", +"<# c #4E393E", +"[# c #70564A", +"}# c #A37251", +"|# c #B17B58", +"1# c #B58264", +"2# c #B4866C", +"3# c #A28883", +"4# c #817283", +"5# c #A05645", +"6# c #C73C0A", +"7# c #C44110", +"8# c #C54610", +"9# c #D35810", +"0# c #967561", +"a# c #81D4EE", +"b# c #A2ECF8", +"c# c #A5EBF8", +"d# c #AEECF9", +"e# c #B4EEFA", +"f# c #B6EFFB", +"g# c #B9F0FB", +"h# c #BAF1FC", +"i# c #BAF0FC", +"j# c #B8EFFB", +"k# c #B3EEFA", +"l# c #B0EDF9", +"m# c #A9ECF9", +"n# c #89DDF0", +"o# c #73CFE9", +"p# c #7BD4EB", +"q# c #81D9EE", +"r# c #6CC7E5", +"s# c #5AB6DE", +"t# c #56AFDC", +"u# c #4A9ED4", +"v# c #367ABB", +"w# c #5681AC", +"x# c #CDD2BE", +"y# c #AFC2C7", +"z# c #526C89", +"A# c #A29B59", +"B# c #FFE955", +"C# c #FFE765", +"D# c #FFFF85", +"E# c #8F9A7A", +"F# c #944332", +"G# c #BE3017", +"H# c #E0A757", +"I# c #D5946E", +"J# c #EA510A", +"K# c #E64B0A", +"L# c #DF4106", +"M# c #DA4507", +"N# c #E25A0C", +"O# c #DE6B15", +"P# c #CA6D1F", +"Q# c #D17122", +"R# c #DE7625", +"S# c #E1792A", +"T# c #E28035", +"U# c #E3853E", +"V# c #E18D4D", +"W# c #C45F30", +"X# c #C44616", +"Y# c #C33E0F", +"Z# c #C54410", +"`# c #CD5213", +" $ c #B16B3C", +".$ c #6AAAC4", +"+$ c #8EE2F4", +"@$ c #9CEAF8", +"#$ c #9FEAF8", +"$$ c #A7ECF9", +"%$ c #ADEEFA", +"&$ c #B1EFFB", +"*$ c #B5F1FC", +"=$ c #B8F2FC", +"-$ c #B6F1FC", +";$ c #B3F0FB", +">$ c #A8EDF9", +",$ c #8ADDF1", +"'$ c #75D2EA", +")$ c #6DCBE8", +"!$ c #6CC8E6", +"~$ c #68C5E4", +"{$ c #5DBBDF", +"]$ c #56B0DD", +"^$ c #51A9DA", +"/$ c #489AD6", +"($ c #3C87CE", +"_$ c #3575BC", +":$ c #64809E", +"<$ c #D1D2B1", +"[$ c #CCD0A8", +"}$ c #999B76", +"|$ c #CFB857", +"1$ c #FAD755", +"2$ c #FDE261", +"3$ c #E4DF76", +"4$ c #927959", +"5$ c #862727", +"6$ c #BF6331", +"7$ c #F1DA64", +"8$ c #D5875E", +"9$ c #DE3E02", +"0$ c #D23604", +"a$ c #D13F06", +"b$ c #E87714", +"c$ c #E97E17", +"d$ c #E77717", +"e$ c #E66E14", +"f$ c #E16612", +"g$ c #DC6211", +"h$ c #DB6311", +"i$ c #DC6713", +"j$ c #DD6C18", +"k$ c #DC6C1F", +"l$ c #CC4C12", +"m$ c #C4420F", +"n$ c #C34310", +"o$ c #CA4F12", +"p$ c #D65D13", +"q$ c #798384", +"r$ c #76D2EC", +"s$ c #91E8F6", +"t$ c #96E8F7", +"u$ c #9AE9F8", +"v$ c #A1ECF9", +"w$ c #A5EEFA", +"x$ c #AAEFFB", +"y$ c #AFF1FC", +"z$ c #B2F2FD", +"A$ c #AEF1FC", +"B$ c #ABF0FB", +"C$ c #A4EEFA", +"D$ c #7ED7EF", +"E$ c #6CC9E7", +"F$ c #68C6E6", +"G$ c #64C2E3", +"H$ c #5FBCE1", +"I$ c #59B8E0", +"J$ c #52AADC", +"K$ c #4DA2DA", +"L$ c #4592D4", +"M$ c #3D87D3", +"N$ c #367ECA", +"O$ c #1F56A0", +"P$ c #587082", +"Q$ c #EEEA8F", +"R$ c #EDED8F", +"S$ c #E2D472", +"T$ c #F1C951", +"U$ c #F4CA4E", +"V$ c #FFE35E", +"W$ c #CCCB6F", +"X$ c #736054", +"Y$ c #982514", +"Z$ c #F3D660", +"`$ c #F0E97D", +" % c #CF6E4B", +".% c #C82D01", +"+% c #CC4007", +"@% c #E46F14", +"#% c #ED831B", +"$% c #E77519", +"%% c #DF6414", +"&% c #DC5D11", +"*% c #DB5C11", +"=% c #DB5D12", +"-% c #DA5E13", +";% c #D95F11", +">% c #D9610F", +",% c #D25812", +"'% c #C74911", +")% c #C4450F", +"!% c #C84B11", +"~% c #D05814", +"{% c #D96112", +"]% c #5F8AA0", +"^% c #7CDCF2", +"/% c #8CE7F6", +"(% c #92E8F6", +"_% c #95E9F8", +":% c #9BEBF9", +"<% c #A0ECFA", +"[% c #A3EEFB", +"}% c #A7F0FC", +"|% c #AAF1FD", +"1% c #A9F1FD", +"2% c #A4EFFB", +"3% c #9FECFA", +"4% c #9EECF9", +"5% c #91E5F6", +"6% c #7ED8F0", +"7% c #7DD9F0", +"8% c #69C6E7", +"9% c #5AB7E1", +"0% c #54ADDE", +"a% c #50A5DC", +"b% c #53ADDF", +"c% c #5BBEE8", +"d% c #469DDA", +"e% c #3982CA", +"f% c #2765AD", +"g% c #224E87", +"h% c #969C6E", +"i% c #FFFF71", +"j% c #FEF779", +"k% c #F6DB67", +"l% c #F1C34B", +"m% c #F4C94E", +"n% c #F9E262", +"o% c #C5C268", +"p% c #7B221D", +"q% c #D5A24E", +"r% c #F5E76A", +"s% c #C06247", +"t% c #CB4507", +"u% c #EC7E18", +"v% c #EA7919", +"w% c #E26714", +"x% c #DF5E13", +"y% c #DB560F", +"z% c #DA570F", +"A% c #D95811", +"B% c #D85911", +"C% c #D85A11", +"D% c #D85C12", +"E% c #D05412", +"F% c #CB4E11", +"G% c #CA4C10", +"H% c #CF5412", +"I% c #D55E15", +"J% c #D66316", +"K% c #964C3B", +"L% c #6FC0D6", +"M% c #7EEDFF", +"N% c #8AE9FB", +"O% c #8DEAFC", +"P% c #92ECFD", +"Q% c #97EEFC", +"R% c #9BEEFC", +"S% c #9FEEFC", +"T% c #A1EFFC", +"U% c #9FEEFB", +"V% c #9CEDFA", +"W% c #98EBF9", +"X% c #95EAF9", +"Y% c #91E8F8", +"Z% c #88E5F6", +"`% c #86E5F5", +" & c #7BDDF2", +".& c #70D3EE", +"+& c #6BCFEC", +"@& c #67CFEE", +"#& c #66D1F0", +"$& c #60CEF0", +"%& c #55C0EC", +"&& c #4CB0E4", +"*& c #3481C1", +"=& c #1C5499", +"-& c #4E6874", +";& c #E7D55E", +">& c #FFEF5D", +",& c #FCF172", +"'& c #F6DB73", +")& c #EFBF51", +"!& c #F4C84E", +"~& c #FDE15B", +"{& c #997241", +"]& c #B35E2C", +"^& c #F6E159", +"/& c #D1885E", +"(& c #EC7D14", +"_& c #EC7B15", +":& c #E0620F", +"<& c #DD560B", +"[& c #DB530C", +"}& c #DA540F", +"|& c #DA5610", +"1& c #D8540F", +"2& c #D7530E", +"3& c #D6540F", +"4& c #D65610", +"5& c #D55712", +"6& c #D25411", +"7& c #D05311", +"8& c #D15412", +"9& c #D35A14", +"0& c #D66215", +"a& c #D45F15", +"b& c #B32E06", +"c& c #BC491F", +"d& c #9AAFA5", +"e& c #88E1EF", +"f& c #8DE0EC", +"g& c #90E3EF", +"h& c #8EE9FB", +"i& c #90EDFF", +"j& c #9AF5FF", +"k& c #9BF1FF", +"l& c #98ECFA", +"m& c #97ECFA", +"n& c #95EBFA", +"o& c #91EAF9", +"p& c #8EE9F9", +"q& c #8AE7F7", +"r& c #84E5F6", +"s& c #81E4F6", +"t& c #7AE1F5", +"u& c #75DEF3", +"v& c #6FDAF2", +"w& c #68D7F3", +"x& c #64D2F2", +"y& c #5BC8F0", +"z& c #52BFEF", +"A& c #4EB9ED", +"B& c #3C97D5", +"C& c #225C9D", +"D& c #295281", +"E& c #9E9D69", +"F& c #FFF362", +"G& c #FCEC5A", +"H& c #FEFB74", +"I& c #F1CB5B", +"J& c #ECB446", +"K& c #F8C84D", +"L& c #D7BC51", +"M& c #6F3E33", +"N& c #EBD950", +"O& c #F5DE65", +"P& c #E99541", +"Q& c #EE7D15", +"R& c #E36610", +"S& c #DD570A", +"T& c #DA5108", +"U& c #D95009", +"V& c #D9510C", +"W& c #D8500E", +"X& c #D64F0D", +"Y& c #D5500D", +"Z& c #D5510E", +"`& c #D4520F", +" * c #D45311", +".* c #D35410", +"+* c #D15511", +"@* c #D25712", +"#* c #D55D14", +"$* c #D76316", +"%* c #D15C14", +"&* c #B42E04", +"** c #C73C05", +"=* c #D35010", +"-* c #DB6520", +";* c #DE671F", +">* c #DE6820", +",* c #D96D2A", +"'* c #AF7852", +")* c #728F92", +"!* c #81CAD5", +"~* c #95F1FF", +"{* c #92EBFA", +"]* c #90EBF9", +"^* c #8CE9F8", +"/* c #8AE8F8", +"(* c #85E6F7", +"_* c #7FE3F6", +":* c #7CE2F5", +"<* c #75DEF4", +"[* c #71DBF3", +"}* c #6AD6F3", +"|* c #62D0F2", +"1* c #5FCCF0", +"2* c #55C2F0", +"3* c #4EBCF0", +"4* c #4BB7F2", +"5* c #3C9CDB", +"6* c #2765A3", +"7* c #164786", +"8* c #656F6B", +"9* c #FADB64", +"0* c #FDE453", +"a* c #FEF65E", +"b* c #F6DB5D", +"c* c #EAB14A", +"d* c #ECB348", +"e* c #FCCB4B", +"f* c #A18849", +"g* c #ECE150", +"h* c #F3D65B", +"i* c #EE7F16", +"j* c #E46911", +"k* c #DC5509", +"l* c #DB4E06", +"m* c #D74705", +"n* c #D74A06", +"o* c #D64B0A", +"p* c #D54A0B", +"q* c #D44B0C", +"r* c #D34B0C", +"s* c #D24C0C", +"t* c #D24D0E", +"u* c #D24F0F", +"v* c #D25210", +"w* c #D35511", +"x* c #D35812", +"y* c #D86216", +"z* c #D15B13", +"A* c #B52E04", +"B* c #C63E07", +"C* c #D84C08", +"D* c #E15509", +"E* c #DD5308", +"F* c #E15508", +"G* c #E6590A", +"H* c #CF4C04", +"I* c #6A432B", +"J* c #51A1B9", +"K* c #7EE4FF", +"L* c #79D9F4", +"M* c #78DAF4", +"N* c #76DAF3", +"O* c #75DAF3", +"P* c #74D9F3", +"Q* c #71D8F3", +"R* c #6FD8F3", +"S* c #6CD7F3", +"T* c #69D5F3", +"U* c #62D1F3", +"V* c #5BC8F1", +"W* c #57C3F0", +"X* c #4DB6EB", +"Y* c #398ECD", +"Z* c #3281C2", +"`* c #399AD9", +" = c #3695D4", +".= c #1D5E9E", +"+= c #1B3A6B", +"@= c #9E9464", +"#= c #FFDE58", +"$= c #F9DD4D", +"%= c #FDEF57", +"&= c #EDBD4B", +"*= c #EAB45D", +"== c #F2BA48", +"-= c #F7C742", +";= c #FCF14E", +">= c #F8D64C", +",= c #ED8C2B", +"'= c #ED7B14", +")= c #E1600E", +"!= c #DC5208", +"~= c #D94C06", +"{= c #D74706", +"]= c #D74A07", +"^= c #D64909", +"/= c #D4490B", +"(= c #D3490B", +"_= c #D2490B", +":= c #D14A0C", +"<= c #D14B0D", +"[= c #D04D0E", +"}= c #D1500F", +"|= c #D25511", +"1= c #D35712", +"2= c #D55C14", +"3= c #D76116", +"4= c #D35D14", +"5= c #B62F04", +"6= c #C73E05", +"7= c #D84C07", +"8= c #E35507", +"9= c #DE5308", +"0= c #E05408", +"a= c #E45303", +"b= c #827968", +"c= c #51AFD4", +"d= c #71D6F8", +"e= c #6DD0F1", +"f= c #6CCFF1", +"g= c #69CDF0", +"h= c #68CCF0", +"i= c #66CAEF", +"j= c #63C8EF", +"k= c #62C8EF", +"l= c #60C8EF", +"m= c #5EC9EF", +"n= c #5AC6F0", +"o= c #56C2F0", +"p= c #52BEEF", +"q= c #46A9E3", +"r= c #2B6CAE", +"s= c #2867A8", +"t= c #2D7AB8", +"u= c #3598D8", +"v= c #2673B3", +"w= c #0D326D", +"x= c #827E62", +"y= c #FFD858", +"z= c #F8D048", +"A= c #FDEA51", +"B= c #F0C748", +"C= c #EAB75C", +"D= c #F0B94C", +"E= c #F9CA43", +"F= c #FDF24D", +"G= c #F8D545", +"H= c #E59E57", +"I= c #F18319", +"J= c #E96B10", +"K= c #DE570B", +"L= c #DA4B07", +"M= c #D84807", +"N= c #D74B09", +"O= c #D74A0A", +"P= c #D3470A", +"Q= c #D2470B", +"R= c #D1460A", +"S= c #D0460B", +"T= c #CF470C", +"U= c #CE480D", +"V= c #CE4A0D", +"W= c #CF4E0F", +"X= c #D15211", +"Y= c #D15512", +"Z= c #D45A13", +"`= c #D56015", +" - c #D76419", +".- c #B83104", +"+- c #CD4B13", +"@- c #DF6D2D", +"#- c #EA8E4D", +"$- c #E37430", +"%- c #E56E25", +"&- c #F7B674", +"*- c #D4C39E", +"=- c #5F91B2", +"-- c #459CD0", +";- c #64C6ED", +">- c #65C9F0", +",- c #64C7F0", +"'- c #62C5EE", +")- c #61C4ED", +"!- c #5EC1ED", +"~- c #58BEEC", +"{- c #56BCEB", +"]- c #52B7EA", +"^- c #4EB3E8", +"/- c #49AEE7", +"(- c #44A9E7", +"_- c #41A6E6", +":- c #358ACC", +"<- c #245FA0", +"[- c #2463A2", +"}- c #2A7AB9", +"|- c #339DE0", +"1- c #2778B9", +"2- c #043379", +"3- c #535F63", +"4- c #E8C052", +"5- c #F6C142", +"6- c #F8D649", +"7- c #FADC46", +"8- c #EFC24E", +"9- c #F6CC57", +"0- c #FADA48", +"a- c #FDEF49", +"b- c #F7CF3A", +"c- c #ED933A", +"d- c #EF6A13", +"e- c #E3650F", +"f- c #D94C08", +"g- c #D64304", +"h- c #D74A0B", +"i- c #D5480B", +"j- c #D2460A", +"k- c #D0450A", +"l- c #CF450B", +"m- c #CE460C", +"n- c #CD480C", +"o- c #CE490D", +"p- c #CE4C0F", +"q- c #D05210", +"r- c #D15411", +"s- c #D45B15", +"t- c #D7631A", +"u- c #DB6B1D", +"v- c #DC8B63", +"w- c #EFBE9B", +"x- c #F7E4BA", +"y- c #FDFAC8", +"z- c #FEF6C3", +"A- c #E5D6AD", +"B- c #858A93", +"C- c #3C6090", +"D- c #2A6FAC", +"E- c #51ABDA", +"F- c #5CC0EC", +"G- c #5CC0ED", +"H- c #5CBFEC", +"I- c #59BDEC", +"J- c #58BCEB", +"K- c #54BBEB", +"L- c #4EAFE4", +"M- c #4CAAE1", +"N- c #4095D0", +"O- c #46A9E5", +"P- c #43A8E7", +"Q- c #3DA1E2", +"R- c #399DE0", +"S- c #308DD0", +"T- c #2470B3", +"U- c #1F5FA0", +"V- c #1E5C9C", +"W- c #1E5E9E", +"X- c #1D5593", +"Y- c #0D4184", +"Z- c #3E5066", +"`- c #CAA64C", +" ; c #F8BD40", +".; c #F4C442", +"+; c #FAD943", +"@; c #F8D142", +"#; c #FBDF66", +"$; c #FBE047", +"%; c #FCE642", +"&; c #F5C733", +"*; c #F18622", +"=; c #EC6F16", +"-; c #E05F0D", +";; c #D84907", +">; c #D54304", +",; c #D74908", +"'; c #D6490C", +"); c #D4470A", +"!; c #D2460B", +"~; c #D1450A", +"{; c #CF440A", +"]; c #CE450B", +"^; c #CD460C", +"/; c #CD4A0D", +"(; c #CE4D0F", +"_; c #CF5210", +":; c #D55E17", +"<; c #D9671C", +"[; c #DC6E1F", +"}; c #E8A171", +"|; c #EEBA9A", +"1; c #F3C89C", +"2; c #F5DDAC", +"3; c #E8D5AD", +"4; c #8C8C91", +"5; c #204E8C", +"6; c #1D5799", +"7; c #3D89C1", +"8; c #55B5E6", +"9; c #58BBEC", +"0; c #58BBEB", +"a; c #57BAEB", +"b; c #54B9EB", +"c; c #53B8EA", +"d; c #52B7EB", +"e; c #4296D1", +"f; c #3D8BC8", +"g; c #357AB9", +"h; c #3A8DCC", +"i; c #3A95D5", +"j; c #399CDF", +"k; c #359ADD", +"l; c #2F93D9", +"m; c #2987CB", +"n; c #2167A9", +"o; c #1A5291", +"p; c #195292", +"q; c #1B5392", +"r; c #114386", +"s; c #354A66", +"t; c #BD9B4A", +"u; c #F8BB40", +"v; c #F1BB40", +"w; c #F9D140", +"x; c #FBD33E", +"y; c #FDE569", +"z; c #FAD840", +"A; c #FBE13E", +"B; c #F5C331", +"C; c #EDA148", +"D; c #F17D1C", +"E; c #E77115", +"F; c #DD560C", +"G; c #D74508", +"H; c #D74809", +"I; c #D6490A", +"J; c #D3480A", +"K; c #D1470B", +"L; c #CF450A", +"M; c #CF460B", +"N; c #CD470D", +"O; c #CE4B0E", +"P; c #CE4F10", +"Q; c #D15513", +"R; c #D35A16", +"S; c #D7641D", +"T; c #DB6D21", +"U; c #DF7628", +"V; c #E58635", +"W; c #E9955E", +"X; c #E1976E", +"Y; c #796E7C", +"Z; c #315289", +"`; c #175BA4", +" > c #3280BE", +".> c #3F96D0", +"+> c #4CAEE6", +"@> c #50B3EB", +"#> c #4FB3EA", +"$> c #4EB2EA", +"%> c #4DB2E9", +"&> c #4BB1E9", +"*> c #4AB0E9", +"=> c #49AEE9", +"-> c #3C92D0", +";> c #3581C0", +">> c #2D71B1", +",> c #2969A9", +"'> c #2564A4", +")> c #2E8ACD", +"!> c #2E92D6", +"~> c #298AD0", +"{> c #2373B7", +"]> c #1C5A9B", +"^> c #195091", +"/> c #164A8A", +"(> c #2C568C", +"_> c #345B8E", +":> c #1E3863", +"<> c #AC8947", +"[> c #FAB73C", +"}> c #ECAB3A", +"|> c #F5C03B", +"1> c #F9C936", +"2> c #FDE868", +"3> c #FBD742", +"4> c #F9D237", +"5> c #F4BE2D", +"6> c #D2915F", +"7> c #F2942E", +"8> c #F07F1B", +"9> c #E46814", +"0> c #DC540D", +"a> c #D64308", +"b> c #D7490A", +"c> c #D5490B", +"d> c #D1460B", +"e> c #CF4E10", +"f> c #CF5211", +"g> c #D35B16", +"h> c #D5611A", +"i> c #DA6A21", +"j> c #DD7325", +"k> c #E17D2C", +"l> c #E78D37", +"m> c #E99440", +"n> c #87757C", +"o> c #014595", +"p> c #1F63A8", +"q> c #3990CE", +"r> c #45A8E3", +"s> c #48ACE7", +"t> c #48ADE7", +"u> c #48ACE6", +"v> c #47ACE6", +"w> c #45A6E1", +"x> c #42A2DE", +"y> c #41A3E0", +"z> c #3FA4E4", +"A> c #3A9DDC", +"B> c #2A6CAD", +"C> c #2666A6", +"D> c #2463A3", +"E> c #246CAF", +"F> c #277EC2", +"G> c #2372B7", +"H> c #194D8E", +"I> c #194F90", +"J> c #184F8F", +"K> c #0C3D7D", +"L> c #586F89", +"M> c #A2B0AC", +"N> c #213863", +"O> c #A27E44", +"P> c #FAB63C", +"Q> c #EBA63A", +"R> c #F2B537", +"S> c #F8C032", +"T> c #FDE664", +"U> c #FDDC49", +"V> c #F6C836", +"W> c #F5BB29", +"X> c #D8C670", +"Y> c #C86447", +"Z> c #F09537", +"`> c #ED811D", +" , c #E16213", +"., c #DB510D", +"+, c #D64609", +"@, c #D6480B", +"#, c #D4490C", +"$, c #D2470A", +"%, c #D1450B", +"&, c #D0440C", +"*, c #CF480C", +"=, c #CF4A0D", +"-, c #CF4C0E", +";, c #D05010", +">, c #D05212", +",, c #D35916", +"', c #D6621C", +"), c #D8681F", +"!, c #DC7225", +"~, c #E17B2D", +"{, c #E9923D", +"], c #EF9E46", +"^, c #405F84", +"/, c #2679BC", +"(, c #338FCF", +"_, c #3CA0DE", +":, c #3DA1DF", +"<, c #3EA2DF", +"[, c #40A3E1", +"}, c #40A4E1", +"|, c #3FA3E0", +"1, c #3480BF", +"2, c #2D6EAE", +"3, c #3284C3", +"4, c #2F7EBE", +"5, c #2F82C1", +"6, c #2565A5", +"7, c #225E9E", +"8, c #1E5999", +"9, c #1B5696", +"0, c #1E64A6", +"a, c #1A5394", +"b, c #184C8C", +"c, c #0C3A7D", +"d, c #4C647B", +"e, c #F1EEA5", +"f, c #A19C77", +"g, c #A27940", +"h, c #FCC44A", +"i, c #EEB344", +"j, c #EFA832", +"k, c #F6B42E", +"l, c #FDE85F", +"m, c #FDDC43", +"n, c #F5C33D", +"o, c #F4B928", +"p, c #BF9B5C", +"q, c #BC3D2D", +"r, c #EDA149", +"s, c #EC7B1B", +"t, c #DF5C12", +"u, c #D84C0C", +"v, c #D6490B", +"w, c #D44B0D", +"x, c #D1480B", +"y, c #D1470C", +"z, c #CF460D", +"A, c #D04C0E", +"B, c #D04E0E", +"C, c #D35714", +"D, c #D55C17", +"E, c #D9651C", +"F, c #DE7024", +"G, c #E17729", +"H, c #E68532", +"I, c #E88B37", +"J, c #EC8E39", +"K, c #EF9B42", +"L, c #F0A54B", +"M, c #6E8993", +"N, c #2A8FD6", +"O, c #3394D4", +"P, c #3595D5", +"Q, c #3697D7", +"R, c #3698D7", +"S, c #3799D8", +"T, c #3899D9", +"U, c #3899D8", +"V, c #2F80BF", +"W, c #2A70AF", +"X, c #2665A4", +"Y, c #235F9E", +"Z, c #215C9B", +"`, c #1F5A9A", +" ' c #1D5595", +".' c #1A5292", +"+' c #19518F", +"@' c #184D8C", +"#' c #184E8D", +"$' c #195192", +"%' c #164888", +"&' c #0B397C", +"*' c #425B75", +"=' c #E9E07F", +"-' c #F3DC5F", +";' c #E2B34C", +">' c #F7CB4C", +",' c #F4C64B", +"'' c #EDA231", +")' c #F3AA2B", +"!' c #FDE658", +"~' c #FBD639", +"{' c #F6C43F", +"]' c #F2B628", +"^' c #764135", +"/' c #B02C1E", +"(' c #ECA14C", +"_' c #EA7419", +":' c #DD5710", +"<' c #D2450A", +"[' c #D44C0E", +"}' c #D0490C", +"|' c #D0480D", +"1' c #D0490E", +"2' c #D14F0F", +"3' c #D15110", +"4' c #D25311", +"5' c #D45814", +"6' c #D45E18", +"7' c #D45F1A", +"8' c #D1611D", +"9' c #D36621", +"0' c #D26724", +"a' c #D6702A", +"b' c #DA7C32", +"c' c #D48E48", +"d' c #DF9546", +"e' c #F3AD4C", +"f' c #6A8894", +"g' c #2688D3", +"h' c #2E8BCF", +"i' c #308ED1", +"j' c #3290D1", +"k' c #3292D2", +"l' c #3392D3", +"m' c #3492D3", +"n' c #3190D1", +"o' c #2B7ABA", +"p' c #2361A1", +"q' c #1F5A9B", +"r' c #1E5898", +"s' c #1C5394", +"t' c #195090", +"u' c #194E8E", +"v' c #184B8A", +"w' c #164687", +"x' c #154685", +"y' c #0B387C", +"z' c #3E5771", +"A' c #DCD16F", +"B' c #FFE752", +"C' c #F9CD49", +"D' c #F5CD4C", +"E' c #FAD54D", +"F' c #EEA732", +"G' c #F1A72C", +"H' c #FCE353", +"I' c #FAD137", +"J' c #F7C436", +"K' c #EFAF25", +"L' c #413145", +"M' c #A62517", +"N' c #EC9645", +"O' c #E86E19", +"P' c #DB530F", +"Q' c #D4480A", +"R' c #D3490D", +"S' c #D1440A", +"T' c #D24C0E", +"U' c #D1490E", +"V' c #D14C0F", +"W' c #D15310", +"X' c #D45913", +"Y' c #D35B15", +"Z' c #C34C12", +"`' c #B43B0F", +" ) c #A52B0B", +".) c #A1280B", +"+) c #9C1F08", +"@) c #9C1F07", +"#) c #6B3A3F", +"$) c #4F5267", +"%) c #686366", +"&) c #997E5C", +"*) c #346798", +"=) c #2481C9", +"-) c #2983C9", +";) c #2A85CB", +">) c #2B87CC", +",) c #2D88CC", +"') c #2D89CD", +")) c #2A83C7", +"!) c #256FB2", +"~) c #1E5A9A", +"{) c #1B5191", +"]) c #1A5191", +"^) c #194F8E", +"/) c #184D8D", +"() c #174A8A", +"_) c #174989", +":) c #164787", +"<) c #154586", +"[) c #144484", +"}) c #144382", +"|) c #0B367A", +"1) c #39546C", +"2) c #D6CB65", +"3) c #FFE04C", +"4) c #F9D143", +"5) c #F9D64B", +"6) c #FAD13D", +"7) c #F4B62E", +"8) c #F4B833", +"9) c #FCE14C", +"0) c #FACD35", +"a) c #F7C02B", +"b) c #DE9F23", +"c) c #152257", +"d) c #9A2013", +"e) c #E78E45", +"f) c #E56A17", +"g) c #DA5210", +"h) c #D3480E", +"i) c #CF430A", +"j) c #D24C0F", +"k) c #D14A0D", +"l) c #D14B0E", +"m) c #D14F10", +"n) c #D25512", +"o) c #C64E10", +"p) c #A02407", +"q) c #8F1103", +"r) c #8F1102", +"s) c #921202", +"t) c #971402", +"u) c #8C1C0F", +"v) c #073B83", +"w) c #06428E", +"x) c #013785", +"y) c #083980", +"z) c #17569B", +"A) c #237AC1", +"B) c #247BC2", +"C) c #257DC3", +"D) c #267EC4", +"E) c #2880C5", +"F) c #2880C6", +"G) c #2881C7", +"H) c #2780C5", +"I) c #277FC5", +"J) c #257DC4", +"K) c #1E64A8", +"L) c #194F8F", +"M) c #1A5697", +"N) c #184F90", +"O) c #164889", +"P) c #154687", +"Q) c #144384", +"R) c #144281", +"S) c #134181", +"T) c #133F7E", +"U) c #0A3478", +"V) c #375066", +"W) c #D0C75E", +"X) c #FFD947", +"Y) c #FBD03B", +"Z) c #FBDA44", +"`) c #F8C735", +" ! c #F7BF2D", +".! c #F9CE39", +"+! c #FCDE44", +"@! c #F9C930", +"#! c #F8BC25", +"$! c #C08624", +"%! c #001C65", +"&! c #942612", +"*! c #E67B35", +"=! c #E36414", +"-! c #D95210", +";! c #D2480D", +">! c #CE420A", +",! c #D04B0E", +"'! c #D45813", +")! c #D55B14", +"!! c #CE5612", +"~! c #B0360B", +"{! c #971905", +"]! c #931404", +"^! c #981904", +"/! c #9D1B03", +"(! c #A21C01", +"_! c #852D21", +":! c #084A96", +"~ c #384C5C", +",~ c #D4C14B", +"'~ c #FECF41", +")~ c #F7C644", +"!~ c #F8C639", +"~~ c #F2B328", +"{~ c #F5BD2C", +"]~ c #FCD233", +"^~ c #FACD2E", +"/~ c #F4B823", +"(~ c #FFB91D", +"_~ c #4C3437", +":~ c #414F61", +"<~ c #E4BD2F", +"[~ c #E15918", +"}~ c #DD5611", +"|~ c #D5480E", +"1~ c #D0460D", +"2~ c #CF470E", +"3~ c #CD420B", +"4~ c #CF4A0E", +"5~ c #CF490F", +"6~ c #D04D0F", +"7~ c #D65E14", +"8~ c #D05A13", +"9~ c #B2370A", +"0~ c #9F1E04", +"a~ c #A31F03", +"b~ c #A82403", +"c~ c #AC2603", +"d~ c #B32D04", +"e~ c #B42C02", +"f~ c #DC6512", +"g~ c #545466", +"h~ c #0A5EB2", +"i~ c #1B68B1", +"j~ c #1B69B2", +"k~ c #1C6AB4", +"l~ c #1C6BB4", +"m~ c #1D6CB5", +"n~ c #1E6CB6", +"o~ c #1F6DB6", +"p~ c #1E6DB6", +"q~ c #1F6EB6", +"r~ c #1F6EB7", +"s~ c #1F6EB8", +"t~ c #1D6EB8", +"u~ c #1F6DB5", +"v~ c #1E6CB5", +"w~ c #1D6BB4", +"x~ c #1E6DB7", +"y~ c #175499", +"z~ c #113E7C", +"A~ c #113C7B", +"B~ c #113A79", +"C~ c #103878", +"D~ c #0F3776", +"E~ c #0F3574", +"F~ c #06296D", +"G~ c #3B4B56", +"H~ c #D9C344", +"I~ c #FCC83B", +"J~ c #F6C449", +"K~ c #F5BF3B", +"L~ c #EFA924", +"M~ c #F7C22A", +"N~ c #FED42D", +"O~ c #F9C527", +"P~ c #F4B320", +"Q~ c #F8AE1A", +"R~ c #2D263E", +"S~ c #C4B13C", +"T~ c #FDCF21", +"U~ c #DF5619", +"V~ c #DA4D0E", +"W~ c #D2460D", +"X~ c #CD410C", +"Y~ c #CD430C", +"Z~ c #CD440C", +"`~ c #CE4A0E", +" { c #CF4A10", +".{ c #D04D10", +"+{ c #D35A13", +"@{ c #D65F15", +"#{ c #CF5813", +"${ c #B23507", +"%{ c #A62203", +"&{ c #AC2604", +"*{ c #B12C04", +"={ c #B52C02", +"-{ c #BC3303", +";{ c #BE3301", +">{ c #DD6915", +",{ c #C46C28", +"'{ c #6A6469", +"){ c #0C60B4", +"!{ c #1763AF", +"~{ c #1A65AE", +"{{ c #1A66B0", +"]{ c #1B66B0", +"^{ c #1B67B1", +"/{ c #1C68B1", +"({ c #1C68B2", +"_{ c #1769B7", +":{ c #0F66BA", +"<{ c #1564B2", +"[{ c #1E63AA", +"}{ c #1B62AB", +"|{ c #1061B3", +"1{ c #0F63B6", +"2{ c #1A67B2", +"3{ c #1B66B1", +"4{ c #1A64AD", +"5{ c #134385", +"6{ c #113B7B", +"7{ c #103B7A", +"8{ c #103978", +"9{ c #103877", +"0{ c #0F3676", +"a{ c #0E3474", +"b{ c #0C3171", +"c{ c #00226A", +"d{ c #414C50", +"e{ c #E8C539", +"f{ c #F8BD33", +"g{ c #F6C444", +"h{ c #F4BD3C", +"i{ c #F0AB26", +"j{ c #F7C327", +"k{ c #FACC29", +"l{ c #F6BB23", +"m{ c #F3AE1E", +"n{ c #E9A61D", +"o{ c #B68E26", +"p{ c #F3BB1B", +"q{ c #F1AD17", +"r{ c #DA5E2E", +"s{ c #D6410B", +"t{ c #D3480D", +"u{ c #CA3D0C", +"v{ c #C73B0A", +"w{ c #CD450D", +"x{ c #CE4A0F", +"y{ c #CF4B11", +"z{ c #D76016", +"A{ c #D05813", +"B{ c #B73707", +"C{ c #AF2803", +"D{ c #B62D03", +"E{ c #BA3203", +"F{ c #BF3302", +"G{ c #C63B02", +"H{ c #C83B00", +"I{ c #DC6B18", +"J{ c #E57518", +"K{ c #D57121", +"L{ c #726566", +"M{ c #0F5BAC", +"N{ c #095DB3", +"O{ c #1760AC", +"P{ c #1761AC", +"Q{ c #1761AE", +"R{ c #1362B1", +"S{ c #0B60B5", +"T{ c #215EA0", +"U{ c #64656F", +"V{ c #9D7452", +"W{ c #B8864F", +"X{ c #B7925D", +"Y{ c #8A8876", +"Z{ c #536D86", +"`{ c #155CAA", +" ] c #1458A3", +".] c #144D91", +"+] c #0F3876", +"@] c #0F3674", +"#] c #0E3573", +"$] c #0D3372", +"%] c #0C3170", +"&] c #0B306F", +"*] c #11336B", +"=] c #243960", +"-] c #595845", +";] c #F6C32D", +">] c #F4B12A", +",] c #F8C63A", +"'] c #F6BF38", +")] c #F2B127", +"!] c #F6BE25", +"~] c #F7C426", +"{] c #F3B21F", +"]] c #F0A81A", +"^] c #EDA418", +"/] c #F7AB13", +"(] c #EF9E10", +"_] c #E6A422", +":] c #D4795B", +"<] c #D33907", +"[] c #D64E10", +"}] c #C83C0C", +"|] c #C13308", +"1] c #CC450D", +"2] c #CD4A10", +"3] c #CF4D11", +"4] c #CF4F11", +"5] c #D25A13", +"6] c #D66015", +"7] c #BE3D08", +"8] c #B62E02", +"9] c #BD3302", +"0] c #C13402", +"a] c #C63A02", +"b] c #CD4003", +"c] c #CF4101", +"d] c #DD6916", +"e] c #E0751B", +"f] c #E2751A", +"g] c #D87321", +"h] c #A66C40", +"i] c #5B6174", +"j] c #235B9C", +"k] c #185BA4", +"l] c #1E5BA0", +"m] c #3C5F8A", +"n] c #6A646A", +"o] c #B16D3A", +"p] c #D77928", +"q] c #E5892D", +"r] c #ED9C3C", +"s] c #F0AE4D", +"t] c #EABF65", +"u] c #E0C471", +"v] c #798883", +"w] c #1858A0", +"x] c #1455A1", +"y] c #134D97", +"z] c #0E3775", +"A] c #0D3371", +"B] c #0D3270", +"C] c #0C306E", +"D] c #0B2E6D", +"E] c #082A6A", +"F] c #1B3262", +"G] c #6C6953", +"H] c #997E35", +"I] c #F9B625", +"J] c #F0A825", +"K] c #F9C52D", +"L] c #FAC32C", +"M] c #F4B524", +"N] c #F5B822", +"O] c #F6BB22", +"P] c #F0A91B", +"Q] c #EFA418", +"R] c #EE9D13", +"S] c #EA940F", +"T] c #E9920F", +"U] c #E69F1E", +"V] c #CD2E04", +"W] c #D34D10", +"X] c #C83E0C", +"Y] c #BA2807", +"Z] c #CB450C", +"`] c #CB470F", +" ^ c #CD4D11", +".^ c #D25813", +"+^ c #D45D15", +"@^ c #D45E15", +"#^ c #CB4D0C", +"$^ c #C33A03", +"%^ c #C83C01", +"&^ c #CB3C02", +"*^ c #D14302", +"=^ c #D84802", +"-^ c #DC4B00", +";^ c #D85A0D", +">^ c #DD6B18", +",^ c #DF701B", +"'^ c #E2751B", +")^ c #E1771D", +"!^ c #D17426", +"~^ c #C5712E", +"{^ c #C07031", +"]^ c #C06F2F", +"^^ c #CA7029", +"/^ c #D37021", +"(^ c #E17218", +"_^ c #E27418", +":^ c #E0751C", +"<^ c #E0791E", +"[^ c #E17E23", +"}^ c #E8A244", +"|^ c #EFBE60", +"1^ c #EFD676", +"2^ c #677A84", +"3^ c #15529D", +"4^ c #114C95", +"5^ c #0D3474", +"6^ c #0C306F", +"7^ c #0B2E6C", +"8^ c #0B2D6A", +"9^ c #0A2B69", +"0^ c #092A68", +"a^ c #032363", +"b^ c #293650", +"c^ c #CFA938", +"d^ c #EBAC24", +"e^ c #ED9A1E", +"f^ c #EDA221", +"g^ c #FBC426", +"h^ c #FCC323", +"i^ c #F4B11D", +"j^ c #F3AB1B", +"k^ c #F2AA1A", +"l^ c #EE9F16", +"m^ c #EEA015", +"n^ c #E78E0E", +"o^ c #E4860C", +"p^ c #E88E0B", +"q^ c #C9300C", +"r^ c #CA3A0A", +"s^ c #C9400D", +"t^ c #B21F05", +"u^ c #C9410C", +"v^ c #CA450E", +"w^ c #CC4B11", +"x^ c #CE4E11", +"y^ c #D15714", +"z^ c #D35B12", +"A^ c #CE4706", +"B^ c #D04101", +"C^ c #D44601", +"D^ c #DA4801", +"E^ c #E14F02", +"F^ c #E35202", +"G^ c #D44B05", +"H^ c #C24E12", +"I^ c #DB6919", +"J^ c #E0721C", +"K^ c #E0711C", +"L^ c #E1731C", +"M^ c #E27319", +"N^ c #E27318", +"O^ c #E2741A", +"P^ c #E1731A", +"Q^ c #DF7219", +"R^ c #DF7017", +"S^ c #DF7015", +"T^ c #DD6E14", +"U^ c #D96913", +"V^ c #E56E0F", +"W^ c #F27810", +"X^ c #FF9E27", +"Y^ c #76635D", +"Z^ c #144C95", +"`^ c #104A97", +" / c #104791", +"./ c #0A2967", +"+/ c #082765", +"@/ c #062463", +"#/ c #011E5D", +"$/ c #393B40", +"%/ c #FBC127", +"&/ c #F7AD21", +"*/ c #E78A1A", +"=/ c #EDA11F", +"-/ c #FCC524", +";/ c #FBBE21", +">/ c #F4AB1A", +",/ c #F0A216", +"'/ c #EE9D16", +")/ c #EC9913", +"!/ c #ED9B12", +"~/ c #E2800B", +"{/ c #E38009", +"]/ c #E38C10", +"^/ c #C83D1F", +"// c #C12503", +"(/ c #C9400E", +"_/ c #AB1703", +":/ c #C03509", +"( c #C45011", +",( c #C24A0F", +"'( c #BE480F", +")( c #853D28", +"!( c #313258", +"~( c #0F397E", +"{( c #0C3F8B", +"]( c #0C418C", +"^( c #0A418F", +"/( c #094091", +"(( c #052A6C", +"_( c #04215E", +":( c #04205E", +"<( c #031F5D", +"[( c #011D5B", +"}( c #001756", +"|( c #192247", +"1( c #BA8D25", +"2( c #FCB11D", +"3( c #EB9719", +"4( c #E58815", +"5( c #F4B01B", +"6( c #F7B41B", +"7( c #F7B21A", +"8( c #EE9E14", +"9( c #E88C0F", +"0( c #E88C0E", +"a( c #E98E0D", +"b( c #E27B07", +"c( c #DB6A03", +"d( c #DE7606", +"e( c #C22503", +"f( c #BC2907", +"g( c #AC1F06", +"h( c #A61602", +"i( c #C0380C", +"j( c #BB330A", +"k( c #BF3A0C", +"l( c #CC5011", +"m( c #CE5413", +"n( c #D15813", +"o( c #D45E16", +"p( c #D76317", +"q( c #DA6112", +"r( c #DC5B0C", +"s( c #DE5607", +"t( c #E05A09", +"u( c #E15C0A", +"v( c #E05E0B", +"w( c #E5640C", +"x( c #B43608", +"y( c #941403", +"z( c #9C1E07", +"A( c #A62B0A", +"B( c #B1370D", +"C( c #B43D0F", +"D( c #B8400F", +"E( c #B8410E", +"F( c #B73F0D", +"G( c #B83D0C", +"H( c #C14109", +"I( c #8F3A21", +"J( c #272C58", +"K( c #03327D", +"L( c #083D8B", +"M( c #093F8D", +"N( c #083E8D", +"O( c #073D8C", +"P( c #073C8C", +"Q( c #063C8D", +"R( c #042A70", +"S( c #031E5B", +"T( c #021C5A", +"U( c #001B59", +"V( c #001A58", +"W( c #001350", +"X( c #26273F", +"Y( c #E9A81D", +"Z( c #F5A61B", +"`( c #EA9417", +" _ c #E88F15", +"._ c #F8B61A", +"+_ c #F5AC18", +"@_ c #F6AE18", +"#_ c #ED9711", +"$_ c #E6870D", +"%_ c #E7880D", +"&_ c #E88A0B", +"*_ c #DC6D04", +"=_ c #D96600", +"-_ c #DA7A0D", +";_ c #C12B0C", +">_ c #B92105", +",_ c #B12508", +"'_ c #9E0D01", +")_ c #B22608", +"!_ c #BA2F0A", +"~_ c #B42B08", +"{_ c #C84910", +"]_ c #CC5013", +"^_ c #CE5414", +"/_ c #D15914", +"(_ c #D76416", +"__ c #D86616", +":_ c #DC6212", +"<_ c #DD5D0C", +"[_ c #DE5D0C", +"}_ c #E0620E", +"|_ c #E16410", +"1_ c #E06510", +"2_ c #AA2E09", +"3_ c #9A1A04", +"4_ c #A62507", +"5_ c #A82907", +"6_ c #AB2C08", +"7_ c #B1330A", +"8_ c #B1340C", +"9_ c #A03413", +"0_ c #722F28", +"a_ c #3B2744", +"b_ c #0F2969", +"c_ c #023381", +"d_ c #043786", +"e_ c #043687", +"f_ c #033586", +"g_ c #033485", +"h_ c #023485", +"i_ c #023384", +"j_ c #023182", +"k_ c #001D5E", +"l_ c #002269", +"m_ c #002775", +"n_ c #001959", +"o_ c #06144C", +"p_ c #6A4F31", +"q_ c #FFAA14", +"r_ c #ED9B17", +"s_ c #EC9715", +"t_ c #EE9B13", +"u_ c #F3A715", +"v_ c #F1A314", +"w_ c #F2A413", +"x_ c #E88B0C", +"y_ c #E37F09", +"z_ c #E58108", +"A_ c #E27D06", +"B_ c #D66101", +"C_ c #D66003", +"D_ c #D16939", +"E_ c #BB2104", +"F_ c #AC1C05", +"G_ c #A21604", +"H_ c #A51804", +"I_ c #BD330C", +"J_ c #B12707", +"K_ c #BE3A0C", +"L_ c #CA4B12", +"M_ c #CB5013", +"N_ c #CE5513", +"O_ c #D15B15", +"P_ c #D56116", +"Q_ c #D76517", +"R_ c #D96818", +"S_ c #DC6514", +"T_ c #DD6411", +"U_ c #DD6410", +"V_ c #DE6512", +"W_ c #DF6914", +"X_ c #E06B15", +"Y_ c #87331B", +"Z_ c #62181F", +"`_ c #76211A", +" : c #71221E", +".: c #50212F", +"+: c #1E1A44", +"@: c #051855", +"#: c #001D66", +"$: c #002771", +"%: c #012F7F", +"&: c #013283", +"*: c #003182", +"=: c #003082", +"-: c #003081", +";: c #003083", +">: c #002F81", +",: c #012F81", +"': c #002D7E", +"): c #002A7A", +"!: c #002878", +"~: c #002A7C", +"{: c #00226D", +"]: c #02236C", +"^: c #38344C", +"/: c #B87D21", +"(: c #F19A17", +"_: c #EEA72A", +":: c #ED9A15", +"<: c #EF9D11", +"[: c #EE9911", +"}: c #F09D10", +"|: c #F09C10", +"1: c #E6840A", +"2: c #E27B06", +"3: c #E37E07", +"4: c #DF7305", +"5: c #DA6100", +"6: c #BD4E14", +"7: c #D0513B", +"8: c #BD361E", +"9: c #AB1603", +"0: c #A01204", +"a: c #A11504", +"b: c #B62E0B", +"c: c #AE2508", +"d: c #AF2809", +"e: c #C84811", +"f: c #C94C12", +"g: c #CC5212", +"h: c #CF5613", +"i: c #D25D15", +"j: c #D56016", +"k: c #D96918", +"l: c #DA6A18", +"m: c #DC6916", +"n: c #DD6A15", +"o: c #E06E17", +"p: c #D9701C", +"q: c #5B383A", +"r: c #001153", +"s: c #00175A", +"t: c #00206B", +"u: c #002470", +"v: c #002978", +"w: c #002C7D", +"x: c #002B7B", +"y: c #002B7C", +"z: c #002979", +"A: c #001650", +"B: c #002067", +"C: c #00134A", +"D: c #00062F", +"E: c #000934", +"F: c #012168", +"G: c #05226C", +"H: c #00226F", +"I: c #132560", +"J: c #BA771C", +"K: c #EF9510", +"L: c #EDA327", +"M: c #F1B839", +"N: c #EB920D", +"O: c #EC930E", +"P: c #EB910D", +"Q: c #ED950C", +"R: c #EB900B", +"S: c #E27D08", +"T: c #E07706", +"U: c #E27A07", +"V: c #DF6802", +"W: c #A64B0F", +"X: c #8B3332", +"Y: c #C75A42", +"Z: c #BE432E", +"`: c #B21D05", +" < c #9F1003", +".< c #9B1103", +"+< c #9D1403", +"@< c #A21A06", +"#< c #A31B06", +"$< c #BD3A0E", +"%< c #C64711", +"&< c #C84C12", +"*< c #CC5113", +"=< c #CF5714", +"-< c #D25B15", +";< c #D46016", +">< c #D86817", +",< c #DA6A19", +"'< c #DB6C19", +")< c #DC6E19", +"!< c #DC6F1A", +"~< c #DF7019", +"{< c #E1721A", +"]< c #8A4E30", +"^< c #493446", +"/< c #20295C", +"(< c #0F2465", +"_< c #09236C", +":< c #002575", +"<< c #00287A", +"[< c #00226E", +"}< c #001755", +"|< c #000B3A", +"1< c #000833", +"2< c #000731", +"3< c #000428", +"4< c #000529", +"5< c #000429", +"6< c #000022", +"7< c #382731", +"8< c #734E36", +"9< c #282449", +"0< c #85522B", +"a< c #F58906", +"b< c #E99118", +"c< c #F3C03B", +"d< c #EDA524", +"e< c #E78408", +"f< c #E7860A", +"g< c #E9890B", +"h< c #EA8A0C", +"i< c #E58209", +"j< c #DF7406", +"k< c #DE7205", +"l< c #E57302", +"m< c #A24B15", +"n< c #341E4A", +"o< c #AC372F", +"p< c #B51F06", +"q< c #A61605", +"r< c #9A0F03", +"s< c #950D02", +"t< c #971003", +"u< c #9E1705", +"v< c #AA2409", +"w< c #C03E0F", +"x< c #CD5313", +"y< c #D15C15", +"z< c #D66417", +"A< c #D86818", +"B< c #DC6D19", +"C< c #DD7019", +"D< c #E87518", +"E< c #F17915", +"F< c #E07017", +"G< c #B05C22", +"H< c #67403B", +"I< c #0B2063", +"J< c #001F72", +"K< c #002275", +"L< c #000E41", +"M< c #000123", +"N< c #000227", +"O< c #000228", +"P< c #000226", +"Q< c #020425", +"R< c #030321", +"S< c #20131A", +"T< c #E58C1A", +"U< c #D66F08", +"V< c #C0660A", +"W< c #F28202", +"X< c #E48613", +"Y< c #F0A927", +"Z< c #F0B32F", +"`< c #E89118", +" [ c #E37A06", +".[ c #E58009", +"+[ c #E6820A", +"@[ c #E58109", +"#[ c #E07506", +"$[ c #DC6D05", +"%[ c #DF6E03", +"&[ c #DD6500", +"*[ c #382749", +"=[ c #932827", +"-[ c #CD6A47", +";[ c #B82E18", +">[ c #B01D08", +",[ c #981104", +"'[ c #960F03", +")[ c #950E02", +"![ c #950E03", +"~[ c #B12D0B", +"{[ c #C54511", +"][ c #CA4D12", +"^[ c #CC5213", +"/[ c #CF5713", +"([ c #D25C15", +"_[ c #D76417", +":[ c #D86617", +"<[ c #DA6B18", +"[[ c #DB6D19", +"}[ c #DD6F1A", +"|[ c #D86D1A", +"1[ c #AD5922", +"2[ c #734030", +"3[ c #392943", +"4[ c #1B1F52", +"5[ c #141E57", +"6[ c #0D123D", +"7[ c #0B0823", +"8[ c #0B0720", +"9[ c #0D0821", +"0[ c #140B1F", +"a[ c #29161B", +"b[ c #432319", +"c[ c #522D16", +"d[ c #E1820D", +"e[ c #EF820A", +"f[ c #E06C03", +"g[ c #E46F04", +"h[ c #E37A0B", +"i[ c #F09D1C", +"j[ c #F0A222", +"k[ c #EB9A22", +"l[ c #E17A0B", +"m[ c #E37E0C", +"n[ c #E4830F", +"o[ c #E17808", +"p[ c #DB6A05", +"q[ c #DE6903", +"r[ c #C75E0B", +"s[ c #6F3B30", +"t[ c #532F4A", +"u[ c #B85529", +"v[ c #E8BF6B", +"w[ c #B52B17", +"x[ c #A71302", +"y[ c #990F03", +"z[ c #950E04", +"A[ c #8F0A01", +"B[ c #8E0801", +"C[ c #9C1605", +"D[ c #BB380E", +"E[ c #C54411", +"F[ c #C84B12", +"G[ c #D05713", +"H[ c #D15A14", +"I[ c #DA6B19", +"J[ c #DD6E19", +"K[ c #E26F16", +"L[ c #EA7314", +"M[ c #E57113", +"N[ c #C86317", +"O[ c #9A4B16", +"P[ c #763916", +"Q[ c #6A3316", +"R[ c #6E3413", +"S[ c #783912", +"T[ c #A04F10", +"U[ c #DE710D", +"V[ c #E3760C", +"W[ c #EA800B", +"X[ c #EA7A09", +"Y[ c #DD6904", +"Z[ c #DC6A06", +"`[ c #E3760A", +" } c #ED890E", +".} c #ED8710", +"+} c #EC8A14", +"@} c #E68412", +"#} c #DC6A03", +"$} c #DF7207", +"%} c #E58B1C", +"&} c #E58D1C", +"*} c #DC6B04", +"=} c #D86202", +"-} c #E36700", +";} c #683630", +">} c #161F65", +",} c #AF792E", +"'} c #FFDA47", +")} c #EED956", +"!} c #AB1A09", +"~} c #9D0E02", +"{} c #970E03", +"]} c #900B03", +"^} c #8E0901", +"/} c #920D03", +"(} c #A72209", +"_} c #BE3B0F", +":} c #C64610", +"<} c #C94D12", +"[} c #CE5613", +"}} c #D35E15", +"|} c #DB6B18", +"1} c #DC6B17", +"2} c #DF6D14", +"3} c #E46F13", +"4} c #E16E11", +"5} c #D86A11", +"6} c #D16710", +"7} c #D5680F", +"8} c #DC6B0E", +"9} c #E7740D", +"0} c #E8760C", +"a} c #E6770B", +"b} c #E67309", +"c} c #E06B08", +"d} c #DB6607", +"e} c #E1720C", +"f} c #E5790D", +"g} c #E87D0C", +"h} c #EB7F0C", +"i} c #E97F0E", +"j} c #DE7108", +"k} c #DB6803", +"l} c #E27E11", +"m} c #E79623", +"n} c #E18013", +"o} c #D86102", +"p} c #D95E01", +"q} c #CA5F07", +"r} c #7B542F", +"s} c #836B3D", +"t} c #E7B522", +"u} c #F8C52F", +"v} c #B53525", +"w} c #AB1807", +"x} c #9E0F02", +"y} c #900A02", +"z} c #8B0801", +"A} c #8C0902", +"B} c #8A0702", +"C} c #9D1907", +"D} c #B9360D", +"E} c #C2400E", +"F} c #C4430E", +"G} c #CA4E11", +"H} c #CD5212", +"I} c #D66216", +"J} c #D96717", +"K} c #DA6716", +"L} c #DA6715", +"M} c #DA6814", +"N} c #DA6914", +"O} c #DB6912", +"P} c #DD6911", +"Q} c #DE6A0F", +"R} c #DE690E", +"S} c #DD680D", +"T} c #DD670D", +"U} c #DB650B", +"V} c #D65D0A", +"W} c #D7600C", +"X} c #DB670E", +"Y} c #DE6B0D", +"Z} c #DF6D0B", +"`} c #E3720B", +" | c #E37208", +".| c #DF6B05", +"+| c #DA6906", +"@| c #E28011", +"#| c #E8961F", +"$| c #E48B1B", +"%| c #DB6B07", +"&| c #E37605", +"*| c #D08313", +"=| c #EFB116", +"-| c #FFC413", +";| c #FAB919", +">| c #B13121", +",| c #A71708", +"'| c #930901", +")| c #890801", +"!| c #8D0C03", +"~| c #8A0802", +"{| c #A11C07", +"]| c #BA350C", +"^| c #C23F0E", +"/| c #C6460F", +"(| c #C94C11", +"_| c #CC5012", +":| c #CE5312", +"<| c #D25A14", +"[| c #D35C15", +"}| c #D66315", +"|| c #D86314", +"1| c #D86413", +"2| c #D86412", +"3| c #D76211", +"4| c #D65F10", +"5| c #D55E0F", +"6| c #D35C0E", +"7| c #D25A0E", +"8| c #D45C0E", +"9| c #D56012", +"0| c #D35D13", +"a| c #D35B0D", +"b| c #D55D0D", +"c| c #D8600C", +"d| c #DB650D", +"e| c #DD680C", +"f| c #DE6A0A", +"g| c #D65B02", +"h| c #D86104", +"i| c #E68B16", +"j| c #ECA323", +"k| c #E8951E", +"l| c #E17E0F", +"m| c #E47A05", +"n| c #F09B0D", +"o| c #F5AD12", +"p| c #F8AC11", +"q| c #F7A510", +"r| c #F3AA17", +"s| c #A82A1B", +"t| c #9E1105", +"u| c #8F0902", +"v| c #890802", +"w| c #880802", +"x| c #8A0903", +"y| c #930F04", +"z| c #A01B05", +"A| c #B4300A", +"B| c #C3420E", +"C| c #C94B10", +"D| c #CE5412", +"E| c #D15814", +"F| c #D25C14", +"G| c #D45E14", +"H| c #D55F13", +"I| c #D65F12", +"J| c #D66012", +"K| c #D66011", +"L| c #D66010", +"M| c #D55E0E", +"N| c #D65F0E", +"O| c #D6610D", +"P| c #D7620D", +"Q| c #D45E10", +"R| c #D25910", +"S| c #D1580D", +"T| c #D45B0D", +"U| c #D65D0D", +"V| c #D9620A", +"W| c #DC6809", +"X| c #DD6C08", +"Y| c #E1790F", +"Z| c #E9931B", +"`| c #E68E19", +" 1 c #E88A0C", +".1 c #EC8F0A", +"+1 c #EF990E", +"@1 c #F09A0F", +"#1 c #EF9A11", +"$1 c #E6A31A", +"%1 c #E2AF24", +"&1 c #A41E11", +"*1 c #9D0D01", +"=1 c #8E0A03", +"-1 c #890902", +";1 c #880902", +">1 c #8D0A03", +",1 c #8F0B02", +"'1 c #971203", +")1 c #B6300A", +"!1 c #C23D0D", +"~1 c #C3400E", +"{1 c #C5430E", +"]1 c #C8480E", +"^1 c #CC4E10", +"/1 c #CF5311", +"(1 c #D05712", +"_1 c #D15712", +":1 c #D05611", +"<1 c #D15711", +"[1 c #D25811", +"}1 c #D25A10", +"|1 c #D25A0F", +"11 c #D35B0F", +"21 c #D45A0E", +"31 c #D45A0D", +"41 c #D55B0C", +"51 c #D55A0C", +"61 c #D1560C", +"71 c #CE520D", +"81 c #CD510D", +"91 c #CE530E", +"01 c #CF540D", +"a1 c #D2590C", +"b1 c #DA640A", +"c1 c #DE6B0A", +"d1 c #E3760E", +"e1 c #E78011", +"f1 c #E78314", +"g1 c #E5891B", +"h1 c #E48310", +"i1 c #E68208", +"j1 c #E6850B", +"k1 c #EA890B", +"l1 c #F28F0C", +"m1 c #DE9517", +"n1 c #9D352A", +"o1 c #A22317", +"p1 c #9B1006", +"q1 c #8B0B03", +"r1 c #8B0B02", +"s1 c #8D0C02", +"t1 c #9C1603", +"u1 c #A92306", +"v1 c #BE390C", +"w1 c #C6440F", +"x1 c #C7450E", +"y1 c #CB4D0F", +"z1 c #D35912", +"A1 c #D35911", +"B1 c #D25810", +"C1 c #D0560E", +"D1 c #CF550E", +"E1 c #D0530D", +"F1 c #D0530C", +"G1 c #CF530C", +"H1 c #CF520C", +"I1 c #CE510C", +"J1 c #D0540C", +"K1 c #D45A0B", +"L1 c #D85F0C", +"M1 c #DD670C", +"N1 c #E2700C", +"O1 c #E5760E", +"P1 c #E57610", +"Q1 c #E3750F", +"R1 c #E47A13", +"S1 c #E17C0F", +"T1 c #E07507", +"U1 c #E37B08", +"V1 c #E98108", +"W1 c #E3870D", +"X1 c #D88F17", +"Y1 c #9B2D23", +"Z1 c #A0180B", +"`1 c #990E02", +" 2 c #900D03", +".2 c #920E03", +"+2 c #910B00", +"@2 c #940D00", +"#2 c #A31B04", +"$2 c #B12A09", +"%2 c #BD380C", +"&2 c #C94810", +"*2 c #C9490F", +"=2 c #CB4A0E", +"-2 c #CE4F0E", +";2 c #D45910", +">2 c #D75D12", +",2 c #D85E12", +"'2 c #D85F11", +")2 c #D96010", +"!2 c #D9600F", +"~2 c #DA600F", +"{2 c #DA610E", +"]2 c #DB620D", +"^2 c #DC630D", +"/2 c #DD640D", +"(2 c #DD650C", +"_2 c #DE660C", +":2 c #E0680B", +"<2 c #E36C0B", +"[2 c #E46E0D", +"}2 c #E36F0D", +"|2 c #E26E0D", +"12 c #E26E0E", +"22 c #E16F0E", +"32 c #DE6F0D", +"42 c #DB6D09", +"52 c #DD6B05", +"62 c #E17103", +"72 c #DD740B", +"82 c #D47713", +"92 c #914039", +"02 c #A31C0D", +"a2 c #9E1002", +"b2 c #920C02", +"c2 c #951004", +"d2 c #951104", +"e2 c #930D01", +"f2 c #950E00", +"g2 c #B62F08", +"h2 c #C9470F", +"i2 c #CF4F12", +"j2 c #CD4C0E", +"k2 c #CC4B0C", +"l2 c #D04F0B", +"m2 c #D3540D", +"n2 c #D5580E", +"o2 c #D95D0E", +"p2 c #DC610F", +"q2 c #DF640F", +"r2 c #E0670E", +"s2 c #E2680E", +"t2 c #E36A0C", +"u2 c #E46B0C", +"v2 c #E46A0B", +"w2 c #E2690B", +"x2 c #E2690C", +"y2 c #E16A0B", +"z2 c #E16A0C", +"A2 c #E26B0D", +"B2 c #E26B0E", +"C2 c #DE650B", +"D2 c #D75F06", +"E2 c #DC6605", +"F2 c #E36400", +"G2 c #DF6900", +"H2 c #D46015", +"I2 c #C55E2C", +"J2 c #934940", +"K2 c #A22313", +"L2 c #A61503", +"M2 c #9C1203", +"N2 c #981103", +"O2 c #991102", +"P2 c #9B1203", +"Q2 c #A31904", +"R2 c #AD2506", +"S2 c #B9320A", +"T2 c #C5420D", +"U2 c #CC4A0E", +"V2 c #D3520F", +"W2 c #D4520D", +"X2 c #D4520B", +"Y2 c #D55409", +"Z2 c #D75709", +"`2 c #DA5A09", +" 3 c #DD5D09", +".3 c #DF6008", +"+3 c #E16208", +"@3 c #E26308", +"#3 c #E16309", +"$3 c #E0640A", +"%3 c #E2660B", +"&3 c #E2660C", +"*3 c #DF640B", +"=3 c #DD6108", +"-3 c #DC6408", +";3 c #E26E02", +">3 c #E16500", +",3 c #C3590D", +"'3 c #91482E", +")3 c #A74228", +"!3 c #BA452B", +"~3 c #B55533", +"{3 c #8E2F22", +"]3 c #A31F0C", +"^3 c #A41703", +"/3 c #A01503", +"(3 c #9D1503", +"_3 c #9C1403", +":3 c #9E1403", +"<3 c #A31903", +"[3 c #AA2005", +"}3 c #B02606", +"|3 c #B32A06", +"13 c #BD3306", +"23 c #C63E08", +"33 c #CC460A", +"43 c #D24F0B", +"53 c #D5520A", +"63 c #D85607", +"73 c #DB5807", +"83 c #DD5906", +"93 c #DD5A07", +"03 c #DC5B07", +"a3 c #DA5A07", +"b3 c #D85907", +"c3 c #D45706", +"d3 c #D55B05", +"e3 c #D86702", +"f3 c #D26404", +"g3 c #994C22", +"h3 c #59374D", +"i3 c #6A3846", +"j3 c #A53E24", +"k3 c #C05220", +"l3 c #AA6126", +"m3 c #853428", +"n3 c #AC1E06", +"o3 c #B01900", +"p3 c #A11804", +"q3 c #A01704", +"r3 c #9D1302", +"s3 c #A01502", +"t3 c #A61B03", +"u3 c #AD2105", +"v3 c #B12505", +"w3 c #B52805", +"x3 c #B92C03", +"y3 c #BD3003", +"z3 c #C53A05", +"A3 c #C94006", +"B3 c #CB4306", +"C3 c #CD4505", +"D3 c #CE4505", +"E3 c #CD4604", +"F3 c #CD4703", +"G3 c #CB4903", +"H3 c #CA4903", +"I3 c #CA4802", +"J3 c #CA4C01", +"K3 c #CD5400", +"L3 c #D05B01", +"M3 c #D15A01", +"N3 c #B54D0D", +"O3 c #643D42", +"P3 c #7C4C44", +"Q3 c #AA5627", +"R3 c #CE6510", +"S3 c #AC6B1A", +"T3 c #6D4841", +"U3 c #7D3C2F", +"V3 c #A6250B", +"W3 c #B81F00", +"X3 c #AF1F03", +"Y3 c #AB2005", +"Z3 c #AB1F04", +"`3 c #AD2002", +" 4 c #AE2002", +".4 c #B42502", +"+4 c #B92C04", +"@4 c #BD3105", +"#4 c #C13505", +"$4 c #C33705", +"%4 c #C63A04", +"&4 c #CB3D03", +"*4 c #CD4002", +"=4 c #CE4503", +"-4 c #CF4803", +";4 c #D15305", +">4 c #D15606", +",4 c #D25D06", +"'4 c #D56408", +")4 c #D76A08", +"!4 c #DC720A", +"~4 c #DD760D", +"{4 c #DB7A13", +"]4 c #BF7215", +"^4 c #B36F15", +"/4 c #63524E", +"(4 c #74463A", +"_4 c #9B341B", +":4 c #BE2903", +"<4 c #BE2904", +"[4 c #B82905", +"}4 c #BD2E06", +"|4 c #BF2F07", +"14 c #BD3107", +"24 c #BE3205", +"34 c #BF3204", +"44 c #C23503", +"54 c #C63904", +"64 c #CB3E04", +"74 c #CE4204", +"84 c #D04504", +"94 c #D14A04", +"04 c #D14D05", +"a4 c #D35307", +"b4 c #D85C08", +"c4 c #DC6009", +"d4 c #E3700F", +"e4 c #DB7210", +"f4 c #BA7012", +"g4 c #B07013", +"h4 c #956616", +"i4 c #744135", +"j4 c #963B23", +"k4 c #AC3211", +"l4 c #BF2E05", +"m4 c #A63110", +"n4 c #AE310D", +"o4 c #C43105", +"p4 c #C53506", +"q4 c #C33505", +"r4 c #C33604", +"s4 c #CE3F04", +"t4 c #D64605", +"u4 c #D84A06", +"v4 c #D85007", +"w4 c #D85408", +"x4 c #D8590B", +"y4 c #CE5F0C", +"z4 c #C6620C", +"A4 c #B4670D", +"B4 c #A86A0E", +"C4 c #A56B0F", +"D4 c #6F4E45", +"E4 c #7A483A", +"F4 c #694F47", +"G4 c #6B4D44", +"H4 c #804635", +"I4 c #8B432C", +"J4 c #9F3C1D", +"K4 c #AF3913", +"L4 c #993C1D", +"M4 c #723F2E", +"N4 c #663D31", +"O4 c #613E2F", +"P4 c #543E28", +"Q4 c #454020", +"R4 c #3A4621", +"S4 c #384A24", +"T4 c #3B5228", +" . + @ # $ % & ", +" * = - ; > , ' ) ! ~ { ] ^ / ( _ : ", +" < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g ", +" h i j k l m n o p q r s t u v w w x y z A B C D E F G ", +" H I J K L M N O P Q R S T U V U U U V W X S Y Z ` ...+.@.#.$. ", +" %.&.*.=.-.;.>.,.'.).!.~.{.].^././././.^.(._.{.:.<.[.}.|.1.2.3.4.5.6. ", +" 7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.n.n.n.o.l.l.p.q.r.s.t.u.v.w.x.y.z.A.B.C. ", +" D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.V.W.W.W.T.X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+;+>+ ", +" ,+ '+)+!+~+{+]+^+/+(+_+:+<+[+}+|+1+2+3+4+S.5+5+S.6+7+8+Z.9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+ ", +" p+q+r+ s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+Z.L+8+M+N+Z.O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@ ", +" *@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@7@8@5@4@Q+9@0@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@ ", +" s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #.#+#W+@###$#%#&#*#=#-#;#>#,#'#)#!#~#{# ", +" ]#^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H# ", +" I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$=$=$-$;$%$>$,$'$)$!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$ ", +" 8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$z$A$B$w$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ ", +" %.%+%@%#%$%%%&%*%=%-%;%>%,%'%)%!%~%{%]%^%/%(%_%:%<%[%}%|%1%}%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r% ", +" s%t%u%v%w%x%y%z%A%B%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'&)&!&~&{&]&^& ", +" /&(&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9&0&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O& ", +" P&Q&R&S&T&U&V&W&X&Y&Z&`& *.*+*@*#*$*%*&***=*-*;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*|*1*2*3*4*5*6*7*8*9*0*a*b*c*d*e*f*g*h* ", +" i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*#*y*z*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*`* =.=+=@=#=$=%=&=*===-=;=>= ", +" ,='=)=!=~={=]=^=/=(=_=:=<=[=}=|=1=2=3=4=5=6=7=8=9=0=a=D%b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C=D=E=F=G= ", +" H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-1-2-3-4-5-6-7-8-9-0-a-b- ", +" c-d-e-f-g-n*h-i-j-R=k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;%;&; ", +" *;=;-;;;>;,;';);!;~;{;];^;U=/;(;_;Y=:;<;[;};|;1;2;3;4;5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;A;B; ", +"C;D;E;F;G;H;I;J;Q=K;L;M;m-N;V=O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>+>@>#>$>%>&>*>=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5> 6>", +"7>8>9>0>a>b>c>P=d>d>l-T=U=V=p-e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>s>u>v>w>x>y>z>A>B>C>D>E>F>G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>", +"Z>`> ,.,+,@,#,$,%,&,*,=,-,W=;,>,,,',),!,~,V;{,],^,/,(,_,:,<,[,},},},|,1,2,3,4,5,6,7,8,9,0,a,p;J>b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,", +"r,s,t,u,v,J;w,x,y,z,A,B,;,X=C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,T,U,U,V,W,X,Y,Z,`, '.'+'@'#'$'b,%'&'*'='-';'>',''')'!'~'{']'^'/'", +"('_':'@,#,<'['}'|'1'2'3'4'5'6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l'm'm'l'l'n'o'p'q'r's't'J>u'#'v'%'w'x'y'z'A'B'C'D'E'F'G'H'I'J'K'L'M'", +"N'O'P'Q'R'S'T'}'U'V'W'|=X'Y'Z'`' ).)+)@)#)$)%)&)*)=)-);)>),)'))>)>')')))!)~){)])^)/)b,()_):)<)[)})|)1)2)3)4)5)6)7)8)9)0)a)b)c)d)", +"e)f)g)P=h)i)j)k)l)m)n)X'#*o)p)q)r)s)t)u)v)w)x)y)z)A)B)C)D)E)F)G)G)F)H)I)J)K)L)M)N)()O)P)<)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!@!#!$!%!&!", +"*!=!-!P=;!>!V'|',!v*'!)!!!~!{!]!^!/!(!_!:!~,~'~)~!~~~{~]~^~/~(~_~:~<~", +"[~}~|~1~2~3~4~5~6~x*7~8~9~0~a~b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~q~r~s~t~t~p~u~v~w~x~y~%~z~h!A~B~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~S~T~", +"U~V~W~X~Y~Z~`~ {.{+{@{#{${%{&{*{={-{;{>{,{'{){!{~{{{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{7{8{9{0{E~a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{", +"r{s{t{u{v{w{x{y{e>9&z{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{`{ ].]9{9{+]@]#]$]%]&]*]=]-];]>],]'])]!]~]{]]]^]/](]_]", +":]<][]}]|]1]2]3]4]5]6]5]7]8]9]0]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]$]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]", +" V]W]X]Y]Z]`] ^4].^+^@^#^$^%^&^*^=^-^;^>^,^'^)^!^~^{^]^^^/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^8^9^0^a^b^c^d^e^f^g^h^i^j^k^l^m^n^o^p^ ", +" q^r^s^t^u^v^w^x^y^Y'`=z^A^B^C^D^E^F^G^H^I^J^K^L^M^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^`^ /D]9^./+/@/#/$/%/&/*/=/-/;/>/,/'/)/!/~/{/]/ ", +" ^///(/_/:/(,('()(!(~({(](^(^(/(((_(:(<([(}(|(1(2(3(4(5(6(7(8(9(0(a(b(c(d( ", +" e(f(g(h(i(j(k(l(m(n(o(p(q(r(s(t(u(v(w(x(y(z(A(B(C(D(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z(`( _._+_@_#_$_%_&_*_=_-_ ", +" ;_>_,_'_)_!_~_{_]_^_/_a&(___:_<_[_}_|_1_2_3_4_5_6_7_8_9_0_a_b_c_d_e_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_A_B_C_D_ ", +" E_F_G_H_I_J_K_L_M_N_O_P_Q_R_S_T_U_V_W_X_Y_Z_`_ :.:+:@:#:$:%:&:*:=:-:;:>:,:':):!:~:{:]:^:/:(:_:::<:[:}:|:1:2:3:4:5:6:7: ", +" 8:9:0:a:b:c:d:e:f:g:h:i:j:Q_k:l:m:>{n:o:p:q:r:s:%!t:u:v:w:w:w:x:y:z:A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y: ", +" Z:`: <.<+<@<#<$<%<&<*<=<-<;<,<'<)[ <,['[)[![~[{[%<][^[/[([;<_[:[k:<[[[B},}'})} ", +" !}~}{}]}^}/}(}_}Z#:}<}x<[}H[}}P_z<:[k:l:<[|}1}1}2}3}4}5}6}7}8}9}0}a}b}c}d}e}f}g}h}i}j}k}l}m}n}o}p}q}r}s}t}u} ", +" v}w}x}y}z}A}B}C}D}E}F}!%G}H}T/H[i:;|,|'|z})|!|~|{|]|^|F}/|(|_|:|G[<|[|`=P_}|||||1|2|3|4|5|6|7|8|9|0|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r| ", +" s|t|u|v|w|x|y|z|A|^|B|/|C|F%D|G[E|<|F|G|H|I|J|K|L|5|M|N|O|P|Q|R|S|T|U|W}V|W|X|Y|Z|#|`| 1.1+1@1#1$1%1 ", +" &1*1=1-1;1>1,1'1)1!1~1{1]1^1/1(1_1(1:1<1[1}1|111213141516171819101a1b1c1d1e1f1g1&}h1i1j1k1l1m1 ", +" n1o1p1A[q1r1s1A[t1u1v1w1x1]1y17&x*z1A1A1B1C1D101E1F1G1H1I1G1J1K1L1M1N1O1P1Q1R1A/S1T1U1V1W1X1 ", +" Y1Z1`1 2 2.2+2@2#2$2%2&2*2=2-2W';2>2,2'2)2!2~2{2]2^2/2(2_2:2<2[2}2|21222324252627282 ", +" 9202a2b2c2d2e2f2+<#2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2w2x2y2z2A2B2C2D2E2F2G2H2I2 ", +" J2K2L2M2N2N2O2O2P2Q2R2S2T2U2V2W2X2Y2Z2`2 3.3+3@3#3$3$3%3&3*3=3-3;3>3,3'3)3!3~3 ", +" {3]3^3/3(3(3_3:3<3[3}3|31323334353+(6373839303a3b3c3d3C_e3f3g3h3i3j3k3l3 ", +" m3n3o3^3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3 ", +" T3U3V3W3X3Y3Y3Z3`3 4.4+4@4#4$4%4&4*4=4-4H*;4>4,4'4)4!4~4{4]4^4 ", +" /4(4_4:4<4[4}4|414243444546474849404a4b4c4z2d4e4f4g4h4 ", +" i4j4k4l4m4n4o4p4q4r454s4t4u4v4w4x4y4z4A4B4C4 ", +" D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4 "}; diff --git a/testing/gkt_icon_example.c b/testing/gkt_icon_example.c new file mode 100644 index 0000000..0e0e1ef --- /dev/null +++ b/testing/gkt_icon_example.c @@ -0,0 +1,45 @@ +#include +#include "firefox.xpm" + +void tray_icon_on_click(GtkStatusIcon *status_icon, + gpointer user_data) +{ + printf("Clicked on tray icon\n"); +} + +void tray_icon_on_menu(GtkStatusIcon *status_icon, guint button, + guint activate_time, gpointer user_data) +{ + printf("Popup menu\n"); +} + +static GtkStatusIcon *create_tray_icon() { + GtkStatusIcon *tray_icon; + + tray_icon = gtk_status_icon_new(); + g_signal_connect(G_OBJECT(tray_icon), "activate", + G_CALLBACK(tray_icon_on_click), NULL); + g_signal_connect(G_OBJECT(tray_icon), + "popup-menu", + G_CALLBACK(tray_icon_on_menu), NULL); + + GdkPixbuf *default_icon = gdk_pixbuf_new_from_xpm_data(firefox_xpm); + + gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(tray_icon), + GDK_PIXBUF(default_icon)); + gtk_status_icon_set_tooltip(tray_icon, + "Example Tray Icon"); + gtk_status_icon_set_visible(tray_icon, TRUE); + + return tray_icon; +} + +int main(int argc, char **argv) { + GtkStatusIcon *tray_icon; + + gtk_init(&argc, &argv); + tray_icon = create_tray_icon(); + gtk_main(); + + return 0; +} diff --git a/testing/gtk_icon_example b/testing/gtk_icon_example new file mode 100755 index 0000000000000000000000000000000000000000..6c755383f8e615a811a06b14da2154bd5cd838f4 GIT binary patch literal 67281 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%0AgIN9Bm@lwGo0_Q+{+x||_r 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 literal 0 HcmV?d00001