1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-23 14:42:29 +01:00

WPrefs: new Docks pannel, to change auto-expand/collapse/etc delays

This commit is contained in:
Daniel Déchelotte
2013-04-12 01:42:34 +02:00
committed by Carlos R. Mafra
parent d24cbc79ee
commit 5a6e1653ac
8 changed files with 1252 additions and 61 deletions

292
WPrefs.app/Docks.c Normal file
View File

@@ -0,0 +1,292 @@
/* Workspace.c- workspace options
*
* WPrefs - Window Maker Preferences Program
*
* Copyright (c) 2012 Daniel Déchelotte (heavily inspired from file (c) Alfredo K. Kojima)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "WPrefs.h"
typedef struct _Panel {
WMBox *box;
char *sectionName;
char *description;
CallbackRec callbacks;
WMWidget *parent;
WMFrame *autoDelayF[2];
WMLabel *autoDelayL[4];
WMButton *autoDelayB[4][5];
WMTextField *autoDelayT[4];
WMFrame *dockF;
WMButton *dockB;
WMButton *clipB;
} _Panel;
#define ICON_FILE "dockclipsection"
#define ARQUIVO_XIS "xis"
#define DELAY_ICON "timer%i"
#define DELAY_ICON_S "timer%is"
#define DOCK_FILE "dock"
#define CLIP_FILE "clip"
static char *autoDelayStrings[4];
static char *autoDelayKeys[4] = { "ClipAutoexpandDelay", "ClipAutocollapseDelay", "ClipAutoraiseDelay", "ClipAutolowerDelay" };
static char *autoDelayPresetValues[5] = { "0", "100", "250", "600", "1000" };
static void showData(_Panel *panel);
static void storeData(_Panel *panel);
static void pushAutoDelayButton(WMWidget *w, void *data)
{
_Panel *panel = (_Panel *) data;
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
if (w == panel->autoDelayB[i][j])
{
WMSetTextFieldText(panel->autoDelayT[i], autoDelayPresetValues[j]);
return;
}
}
}
}
static void adjustButtonSelectionBasedOnValue(_Panel *panel, int row, char *value)
{
int j;
for (j = 0; j < 5; j++)
{
int isThatOne = !strcmp(autoDelayPresetValues[j], value);
WMSetButtonSelected(panel->autoDelayB[row][j], isThatOne);
if (isThatOne)
return;
}
}
static void autoDelayChanged(void *observerData, WMNotification *notification)
{
_Panel *panel = (_Panel *) observerData;
int row;
WMTextField *anAutoDelayT = (WMTextField *) WMGetNotificationObject(notification);
for (row = 0; row < 4; row++)
{
if (anAutoDelayT != panel->autoDelayT[row])
{
continue;
}
char *value = WMGetTextFieldText(anAutoDelayT);
adjustButtonSelectionBasedOnValue(panel, row, value);
return;
}
}
static void createPanel(Panel *p)
{
_Panel *panel = (_Panel *) p;
WMScreen *scr = WMWidgetScreen(panel->parent);
WMPixmap *icon1, *icon2;
RImage *xis = NULL;
RContext *rc = WMScreenRContext(scr);
char *path;
int i, j, k;
char *buf1, *buf2;
path = LocateImage(ARQUIVO_XIS);
if (path) {
xis = RLoadImage(rc, path, 0);
if (!xis) {
wwarning(_("could not load image file %s"), path);
}
wfree(path);
}
panel->box = WMCreateBox(panel->parent);
WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2);
/***************** Auto-delays *****************/
buf1 = wmalloc(strlen(DELAY_ICON) + 1);
buf2 = wmalloc(strlen(DELAY_ICON_S) + 1);
for (k = 0; k < 2; k++)
{
panel->autoDelayF[k] = WMCreateFrame(panel->box);
WMResizeWidget(panel->autoDelayF[k], 365, 100);
WMMoveWidget(panel->autoDelayF[k], 15, 10 + k * 110);
if (k == 0)
WMSetFrameTitle(panel->autoDelayF[k], _("Delays in milliseconds for autocollapsing clips"));
else
WMSetFrameTitle(panel->autoDelayF[k], _("Delays in milliseconds for autoraising clips"));
for (i = 0; i < 2; i++)
{
panel->autoDelayL[i + k * 2] = WMCreateLabel(panel->autoDelayF[k]);
WMResizeWidget(panel->autoDelayL[i + k * 2], 165, 20);
WMMoveWidget(panel->autoDelayL[i + k * 2], 10, 27 + 40 * i);
WMSetLabelText(panel->autoDelayL[i + k * 2], autoDelayStrings[i + k * 2]);
WMSetLabelTextAlignment(panel->autoDelayL[i + k * 2], WARight);
for (j = 0; j < 5; j++)
{
panel->autoDelayB[i + k * 2][j] = WMCreateCustomButton(panel->autoDelayF[k], WBBStateChangeMask);
WMResizeWidget(panel->autoDelayB[i + k * 2][j], 25, 25);
WMMoveWidget(panel->autoDelayB[i + k * 2][j], 175 + (25 * j), 25 + 40 * i);
WMSetButtonBordered(panel->autoDelayB[i + k * 2][j], False);
WMSetButtonImagePosition(panel->autoDelayB[i + k * 2][j], WIPImageOnly);
WMSetButtonAction(panel->autoDelayB[i + k * 2][j], pushAutoDelayButton, panel);
if (j > 0)
WMGroupButtons(panel->autoDelayB[i + k * 2][0], panel->autoDelayB[i + k * 2][j]);
sprintf(buf1, DELAY_ICON, j);
CreateImages(scr, rc, NULL, buf1, &icon1, NULL);
if (icon1) {
WMSetButtonImage(panel->autoDelayB[i + k * 2][j], icon1);
WMReleasePixmap(icon1);
} else {
wwarning(_("could not load icon file %s"), buf1);
}
sprintf(buf2, DELAY_ICON_S, j);
CreateImages(scr, rc, NULL, buf2, &icon2, NULL);
if (icon2) {
WMSetButtonAltImage(panel->autoDelayB[i + k * 2][j], icon2);
WMReleasePixmap(icon2);
} else {
wwarning(_("could not load icon file %s"), buf2);
}
}
panel->autoDelayT[i + k * 2] = WMCreateTextField(panel->autoDelayF[k]);
WMResizeWidget(panel->autoDelayT[i + k * 2], 36, 20);
WMMoveWidget(panel->autoDelayT[i + k * 2], 310, 27 + 40 * i);
WMAddNotificationObserver(autoDelayChanged, panel, WMTextDidChangeNotification, panel->autoDelayT[i + k * 2]);
}
WMMapSubwidgets(panel->autoDelayF[k]);
}
wfree(buf1);
wfree(buf2);
/***************** Enable/disable clip/dock *****************/
panel->dockF = WMCreateFrame(panel->box);
WMResizeWidget(panel->dockF, 115, 210);
WMMoveWidget(panel->dockF, 390, 10);
WMSetFrameTitle(panel->dockF, _("Dock/Clip"));
panel->dockB = WMCreateButton(panel->dockF, WBTToggle);
WMResizeWidget(panel->dockB, 64, 64);
WMMoveWidget(panel->dockB, 25, 35);
WMSetButtonImagePosition(panel->dockB, WIPImageOnly);
CreateImages(scr, rc, xis, DOCK_FILE, &icon1, &icon2);
if (icon2) {
WMSetButtonImage(panel->dockB, icon2);
WMReleasePixmap(icon2);
}
if (icon1) {
WMSetButtonAltImage(panel->dockB, icon1);
WMReleasePixmap(icon1);
}
WMSetBalloonTextForView(_("Disable/enable the application Dock (the\n"
"vertical icon bar in the side of the screen)."), WMWidgetView(panel->dockB));
panel->clipB = WMCreateButton(panel->dockF, WBTToggle);
WMResizeWidget(panel->clipB, 64, 64);
WMMoveWidget(panel->clipB, 25, 120);
WMSetButtonImagePosition(panel->clipB, WIPImageOnly);
CreateImages(scr, rc, xis, CLIP_FILE, &icon1, &icon2);
if (icon2) {
WMSetButtonImage(panel->clipB, icon2);
WMReleasePixmap(icon2);
}
if (icon1) {
WMSetButtonAltImage(panel->clipB, icon1);
WMReleasePixmap(icon1);
}
WMSetBalloonTextForView(_("Disable/enable the Clip (that thing with\n"
"a paper clip icon)."), WMWidgetView(panel->clipB));
WMMapSubwidgets(panel->dockF);
if (xis)
RReleaseImage(xis);
WMRealizeWidget(panel->box);
WMMapSubwidgets(panel->box);
showData(panel);
}
static void storeData(_Panel *panel)
{
int i;
for (i = 0; i < 4; i++)
{
SetStringForKey(WMGetTextFieldText(panel->autoDelayT[i]), autoDelayKeys[i]);
}
SetBoolForKey(!WMGetButtonSelected(panel->dockB), "DisableDock");
SetBoolForKey(!WMGetButtonSelected(panel->clipB), "DisableClip");
}
static void showData(_Panel *panel)
{
char *value;
int i;
for (i = 0; i < 4; i++)
{
value = GetStringForKey(autoDelayKeys[i]);
WMSetTextFieldText(panel->autoDelayT[i], value);
adjustButtonSelectionBasedOnValue(panel, i, value);
}
WMSetButtonSelected(panel->dockB, !GetBoolForKey("DisableDock"));
WMSetButtonSelected(panel->clipB, !GetBoolForKey("DisableClip"));
}
Panel *InitDocks(WMScreen *scr, WMWidget *parent)
{
_Panel *panel;
autoDelayStrings[0] = _("Delay before auto-expansion");
autoDelayStrings[1] = _("Delay before auto-collapsing");
autoDelayStrings[2] = _("Delay before auto-raise");
autoDelayStrings[3] = _("Delay before auto-lowering");
panel = wmalloc(sizeof(_Panel));
memset(panel, 0, sizeof(_Panel));
panel->sectionName = _("Dock Preferences");
panel->description = _("Dock and clip features.\n"
"Enable/disable the Dock and Clip, and tune some delays.");
panel->parent = parent;
panel->callbacks.createWidgets = createPanel;
panel->callbacks.updateDomain = storeData;
AddSection(panel, ICON_FILE);
return panel;
}

View File

@@ -18,6 +18,7 @@ WPrefs_SOURCES = \
WPrefs.h \
Appearance.c \
Configurations.c \
Docks.c \
Expert.c \
Focus.c \
FontSimple.c \

View File

@@ -32,6 +32,8 @@ extern Panel *InitKeyboardShortcuts(WMScreen * scr, WMWidget * parent);
extern Panel *InitWorkspace(WMScreen * scr, WMWidget * parent);
extern Panel *InitDocks(WMScreen *scr, WMWidget *parent);
extern Panel *InitFocus(WMScreen * scr, WMWidget * parent);
extern Panel *InitPreferences(WMScreen * scr, WMWidget * parent);
@@ -663,6 +665,7 @@ void Initialize(WMScreen * scr)
InitPreferences(scr, WPrefs.banner);
InitPaths(scr, WPrefs.banner);
InitDocks(scr, WPrefs.banner);
InitWorkspace(scr, WPrefs.banner);
InitConfigurations(scr, WPrefs.banner);

View File

@@ -44,10 +44,6 @@ typedef struct _Panel {
WMLabel *posiL;
WMLabel *posL;
WMPopUpButton *posP;
WMFrame *dockF;
WMButton *dockB;
WMButton *clipB;
} _Panel;
#define ICON_FILE "workspace"
@@ -57,8 +53,6 @@ typedef struct _Panel {
#define CYCLE_FILE "cycleworkspaces"
#define ADVANCE_FILE "advancetonewworkspace"
#define WSNAME_FILE "workspacename"
#define DOCK_FILE "dock"
#define CLIP_FILE "clip"
static char *WSNamePositions[] = {
"none",
@@ -82,10 +76,6 @@ static void showData(_Panel * panel)
WMSetButtonSelected(panel->newB, GetBoolForKey("AdvanceToNewWorkspace"));
WMSetButtonSelected(panel->dockB, !GetBoolForKey("DisableDock"));
WMSetButtonSelected(panel->clipB, !GetBoolForKey("DisableClip"));
str = GetStringForKey("WorkspaceNameDisplayPosition");
if (!str)
str = "center";
@@ -123,12 +113,12 @@ static void createPanel(Panel * p)
/***************** Workspace Navigation *****************/
panel->navF = WMCreateFrame(panel->box);
WMResizeWidget(panel->navF, 365, 210);
WMResizeWidget(panel->navF, 490, 210);
WMMoveWidget(panel->navF, 15, 10);
WMSetFrameTitle(panel->navF, _("Workspace Navigation"));
panel->cyclB = WMCreateSwitchButton(panel->navF);
WMResizeWidget(panel->cyclB, 280, 34);
WMResizeWidget(panel->cyclB, 410, 34);
WMMoveWidget(panel->cyclB, 75, 30);
WMSetButtonText(panel->cyclB, _("Wrap to the first workspace from the last workspace."));
@@ -144,7 +134,7 @@ static void createPanel(Panel * p)
}
/**/ panel->linkB = WMCreateSwitchButton(panel->navF);
WMResizeWidget(panel->linkB, 280, 34);
WMResizeWidget(panel->linkB, 410, 34);
WMMoveWidget(panel->linkB, 75, 75);
WMSetButtonText(panel->linkB, _("Switch workspaces while dragging windows."));
@@ -160,7 +150,7 @@ static void createPanel(Panel * p)
}
/**/ panel->newB = WMCreateSwitchButton(panel->navF);
WMResizeWidget(panel->newB, 280, 34);
WMResizeWidget(panel->newB, 410, 34);
WMMoveWidget(panel->newB, 75, 120);
WMSetButtonText(panel->newB, _("Automatically create new workspaces."));
@@ -176,10 +166,10 @@ static void createPanel(Panel * p)
}
/**/ panel->posL = WMCreateLabel(panel->navF);
WMResizeWidget(panel->posL, 140, 30);
WMResizeWidget(panel->posL, 200, 30);
WMMoveWidget(panel->posL, 75, 165);
WMSetLabelTextAlignment(panel->posL, WARight);
WMSetLabelText(panel->posL, _("Position of workspace\nname display"));
// WMSetLabelTextAlignment(panel->posL, WARight);
WMSetLabelText(panel->posL, _("Position of workspace name display"));
panel->posiL = WMCreateLabel(panel->navF);
WMResizeWidget(panel->posiL, 60, 40);
@@ -194,7 +184,7 @@ static void createPanel(Panel * p)
panel->posP = WMCreatePopUpButton(panel->navF);
WMResizeWidget(panel->posP, 125, 20);
WMMoveWidget(panel->posP, 225, 175);
WMMoveWidget(panel->posP, 290, 170);
WMAddPopUpButtonItem(panel->posP, _("Disable"));
WMAddPopUpButtonItem(panel->posP, _("Center"));
WMAddPopUpButtonItem(panel->posP, _("Top"));
@@ -206,46 +196,6 @@ static void createPanel(Panel * p)
WMMapSubwidgets(panel->navF);
/***************** Dock/Clip *****************/
panel->dockF = WMCreateFrame(panel->box);
WMResizeWidget(panel->dockF, 115, 210);
WMMoveWidget(panel->dockF, 390, 10);
WMSetFrameTitle(panel->dockF, _("Dock/Clip"));
panel->dockB = WMCreateButton(panel->dockF, WBTToggle);
WMResizeWidget(panel->dockB, 64, 64);
WMMoveWidget(panel->dockB, 25, 35);
WMSetButtonImagePosition(panel->dockB, WIPImageOnly);
CreateImages(scr, rc, xis, DOCK_FILE, &icon1, &icon2);
if (icon2) {
WMSetButtonImage(panel->dockB, icon2);
WMReleasePixmap(icon2);
}
if (icon1) {
WMSetButtonAltImage(panel->dockB, icon1);
WMReleasePixmap(icon1);
}
WMSetBalloonTextForView(_("Disable/enable the application Dock (the\n"
"vertical icon bar in the side of the screen)."), WMWidgetView(panel->dockB));
panel->clipB = WMCreateButton(panel->dockF, WBTToggle);
WMResizeWidget(panel->clipB, 64, 64);
WMMoveWidget(panel->clipB, 25, 120);
WMSetButtonImagePosition(panel->clipB, WIPImageOnly);
CreateImages(scr, rc, xis, CLIP_FILE, &icon1, &icon2);
if (icon2) {
WMSetButtonImage(panel->clipB, icon2);
WMReleasePixmap(icon2);
}
if (icon1) {
WMSetButtonAltImage(panel->clipB, icon1);
WMReleasePixmap(icon1);
}
WMSetBalloonTextForView(_("Disable/enable the Clip (that thing with\n"
"a paper clip icon)."), WMWidgetView(panel->clipB));
WMMapSubwidgets(panel->dockF);
if (xis)
RReleaseImage(xis);
@@ -261,9 +211,6 @@ static void storeData(_Panel * panel)
SetBoolForKey(WMGetButtonSelected(panel->cyclB), "CycleWorkspaces");
SetBoolForKey(WMGetButtonSelected(panel->newB), "AdvanceToNewWorkspace");
SetBoolForKey(!WMGetButtonSelected(panel->dockB), "DisableDock");
SetBoolForKey(!WMGetButtonSelected(panel->clipB), "DisableClip");
SetStringForKey(WSNamePositions[WMGetPopUpButtonSelectedItem(panel->posP)],
"WorkspaceNameDisplayPosition");
}

View File

@@ -8,6 +8,7 @@ EXTRA_DIST = \
configs.tiff \
cycleworkspaces.tiff \
dock.tiff \
dockclipsection.tiff \
dontlinkworkspaces.tiff \
ergonomic.tiff \
expert.tiff \

Binary file not shown.

View File

@@ -9,6 +9,7 @@ EXTRA_DIST = \
configs.xpm \
cycleworkspaces.xpm \
dock.xpm \
dockclipsection.xpm \
dontlinkworkspaces.xpm \
ergonomic.xpm \
expert.xpm \

View File

@@ -0,0 +1,946 @@
/* XPM */
static char * dockclipsection_xpm[] = {
"48 48 895 2",
" c #000000",
". c #FBFBFD",
"+ c #F1F2F8",
"@ c #F1F1F8",
"# c #F0F0F8",
"$ c #EFEFF7",
"% c #EEEFF6",
"& c #EDEEF5",
"* c #ECEDF4",
"= c #EBECF3",
"- c #EAEBF2",
"; c #EAEAF2",
"> c #E9E9F1",
", c #E8E8F0",
"' c #E7E8EF",
") c #E6E7EE",
"! c #E5E6ED",
"~ c #E4E5EC",
"{ c #E3E4EB",
"] c #E2E3EA",
"^ c #E1E2E9",
"/ c #E0E1E8",
"( c #B1B1B3",
"_ c #DEDEE2",
": c #F2F2F8",
"< c #F0F1F8",
"[ c #EEEEF6",
"} c #EDEDF5",
"| c #ECECF4",
"1 c #EBEBF3",
"2 c #E9EAF1",
"3 c #E4E4EC",
"4 c #E3E3EB",
"5 c #E1E1E9",
"6 c #9A9A9B",
"7 c #FFFFFF",
"8 c #9798A8",
"9 c #9A9AAA",
"0 c #9999A9",
"a c #9697A6",
"b c #9595A5",
"c c #9393A3",
"d c #9192A1",
"e c #8F909F",
"f c #8D8E9D",
"g c #8B8C9B",
"h c #8A8B9A",
"i c #888998",
"j c #868796",
"k c #848594",
"l c #828492",
"m c #818291",
"n c #7F808F",
"o c #7D7F8D",
"p c #7B7D8B",
"q c #797B89",
"r c #777987",
"s c #2D2E34",
"t c #EEEEF0",
"u c #9B9BAB",
"v c #9798A7",
"w c #9596A5",
"x c #9394A3",
"y c #9293A2",
"z c #9091A0",
"A c #8E8F9E",
"B c #8C8D9C",
"C c #898A99",
"D c #878897",
"E c #858695",
"F c #838593",
"G c #818391",
"H c #7F818F",
"I c #7E7F8E",
"J c #7C7D8C",
"K c #7A7C8A",
"L c #787A88",
"M c #3B3C43",
"N c #F1F1F9",
"O c #9D9DAD",
"P c #9A9BAA",
"Q c #888A99",
"R c #868896",
"S c #2E2F35",
"T c #DDDDE3",
"U c #9D9EAD",
"V c #9B9CAB",
"W c #999AA9",
"X c #9495A4",
"Y c #8A8C9A",
"Z c #878997",
"` c #858795",
" . c #808190",
".. c #7E808E",
"+. c #7C7E8C",
"@. c #3D3E45",
"#. c #9898A8",
"$. c #9D9DAA",
"%. c #9E9FAB",
"&. c #9C9DA7",
"*. c #A6A7B0",
"=. c #ABACB4",
"-. c #A2A3AA",
";. c #A4A4A9",
">. c #ABABAD",
",. c #AAAAAA",
"'. c #B8B8B4",
"). c #ACADA7",
"!. c #9D9F94",
"~. c #7D8073",
"{. c #474745",
"]. c #747682",
"^. c #DCDCE3",
"/. c #9698A6",
"(. c #8E8F9D",
"_. c #7D7E8A",
":. c #6F707A",
"<. c #6C6D78",
"[. c #6B6C77",
"}. c #81828F",
"|. c #7D808D",
"1. c #A2A3AB",
"2. c #F2F2F2",
"3. c #F8F8F5",
"4. c #FAFBF6",
"5. c #FFFFFA",
"6. c #FEFEF3",
"7. c #E9EADD",
"8. c #D2D3C6",
"9. c #BABAAD",
"0. c #A1A293",
"a. c #888780",
"b. c #6F7072",
"c. c #5E615C",
"d. c #989986",
"e. c #242516",
"f. c #56575C",
"g. c #767886",
"h. c #2C2D33",
"i. c #DBDBE2",
"j. c #9394A2",
"k. c #9597A6",
"l. c #6E6F75",
"m. c #242426",
"n. c #0E0E0F",
"o. c #060607",
"p. c #060606",
"q. c #070707",
"r. c #111113",
"s. c #4F5057",
"t. c #828392",
"u. c #A8A9B0",
"v. c #C2C2BE",
"w. c #574B77",
"x. c #42385D",
"y. c #241B41",
"z. c #08003A",
"A. c #070039",
"B. c #070034",
"C. c #02002E",
"D. c #000027",
"E. c #000023",
"F. c #00001E",
"G. c #090A25",
"H. c #BAB9AD",
"I. c #2E2E1E",
"J. c #747684",
"K. c #2B2C32",
"L. c #DADBE1",
"M. c #9696A6",
"N. c #9192A2",
"O. c #525258",
"P. c #010102",
"Q. c #212123",
"R. c #737581",
"S. c #717380",
"T. c #6F717E",
"U. c #767887",
"V. c #757785",
"W. c #3A3B42",
"X. c #AAABB2",
"Y. c #A1A09D",
"Z. c #060048",
"`. c #14014E",
" + c #312755",
".+ c #1D1931",
"++ c #1D192E",
"@+ c #191821",
"#+ c #282639",
"$+ c #2A2746",
"%+ c #171636",
"&+ c #010222",
"*+ c #0C0E27",
"=+ c #BBBBAE",
"-+ c #353525",
";+ c #585A5D",
">+ c #727482",
",+ c #DADAE1",
"'+ c #49494E",
")+ c #202021",
"!+ c #B3B3B3",
"~+ c #A8A8A8",
"{+ c #919191",
"]+ c #050507",
"^+ c #787A89",
"/+ c #737583",
"(+ c #393A41",
"_+ c #8F90A0",
":+ c #A8A8AE",
"<+ c #A3A29F",
"[+ c #0D004D",
"}+ c #3C305E",
"|+ c #0F0E0F",
"1+ c #121212",
"2+ c #A9A9A9",
"3+ c #7E7E80",
"4+ c #191927",
"5+ c #060727",
"6+ c #BCBCAE",
"7+ c #3F3F2E",
"8+ c #414239",
"9+ c #747685",
"0+ c #717381",
"a+ c #292B30",
"b+ c #D9D9E0",
"c+ c #747581",
"d+ c #2B2B2B",
"e+ c #FEFEFE",
"f+ c #FDFDFD",
"g+ c #818183",
"h+ c #767987",
"i+ c #383940",
"j+ c #8D8E9E",
"k+ c #A1A29C",
"l+ c #160057",
"m+ c #1E1A2A",
"n+ c #121112",
"o+ c #D2D2D2",
"p+ c #F5F5F5",
"q+ c #3F3F4A",
"r+ c #070727",
"s+ c #BEBFB1",
"t+ c #4D4E3B",
"u+ c #404033",
"v+ c #6F7180",
"w+ c #6E717E",
"x+ c #292A30",
"y+ c #D8D9DF",
"z+ c #9899A9",
"A+ c #19191C",
"B+ c #D7D7D8",
"C+ c #0C0C0C",
"D+ c #6F727F",
"E+ c #37383F",
"F+ c #8B8C9C",
"G+ c #A7A7AD",
"H+ c #A09F9B",
"I+ c #1C065C",
"J+ c #0B0814",
"K+ c #161616",
"L+ c #373737",
"M+ c #4E4D4E",
"N+ c #D9D9D9",
"O+ c #FBFBFB",
"P+ c #6F6F79",
"Q+ c #0C0E28",
"R+ c #C3C4B7",
"S+ c #5F614C",
"T+ c #4D4F3F",
"U+ c #6C6F7C",
"V+ c #6D6F7D",
"W+ c #28292F",
"X+ c #D7D8DE",
"Y+ c #82838F",
"Z+ c #FAFAFA",
"`+ c #292827",
" @ c #737683",
".@ c #6D707D",
"+@ c #36373E",
"@@ c #8E8E9E",
"#@ c #A4A5AB",
"$@ c #A0A09B",
"%@ c #1B055B",
"&@ c #0F0C18",
"*@ c #656565",
"=@ c #FCFCFC",
"-@ c #61616A",
";@ c #080929",
">@ c #0D0F28",
",@ c #CACBBD",
"'@ c #6B7158",
")@ c #5A594B",
"!@ c #6A6C7B",
"~@ c #6A6D7A",
"{@ c #27282E",
"]@ c #D7D7DD",
"^@ c #55555F",
"/@ c #2A2A2A",
"(@ c #6A6A69",
"_@ c #6B6E7B",
":@ c #35363D",
"<@ c #878998",
"[@ c #A3A4AA",
"}@ c #140055",
"|@ c #302B41",
"1@ c #090909",
"2@ c #696969",
"3@ c #F6F6F6",
"4@ c #1D1D26",
"5@ c #0C0D2C",
"6@ c #0D0F29",
"7@ c #CFD0C3",
"8@ c #797B63",
"9@ c #5E6152",
"0@ c #676A79",
"a@ c #696C79",
"b@ c #26272D",
"c@ c #D6D6DD",
"d@ c #55565E",
"e@ c #464647",
"f@ c #575757",
"g@ c #565656",
"h@ c #555555",
"i@ c #787878",
"j@ c #686867",
"k@ c #6D707E",
"l@ c #6A6C7A",
"m@ c #34353C",
"n@ c #A2A3A8",
"o@ c #A09F9A",
"p@ c #19035A",
"q@ c #110D1A",
"r@ c #CECECD",
"s@ c #C5C5C5",
"t@ c #252526",
"u@ c #0F0F15",
"v@ c #0E0F2D",
"w@ c #D5D5CA",
"x@ c #808369",
"y@ c #606253",
"z@ c #666877",
"A@ c #676A77",
"B@ c #25272D",
"C@ c #D5D6DC",
"D@ c #53535C",
"E@ c #B9B9B9",
"F@ c #F9F9F9",
"G@ c #6B6E7C",
"H@ c #686A78",
"I@ c #33353B",
"J@ c #838694",
"K@ c #A1A2A7",
"L@ c #A5A3A0",
"M@ c #200C5A",
"N@ c #2C2641",
"O@ c #2D2838",
"P@ c #43414F",
"Q@ c #757380",
"R@ c #666470",
"S@ c #312F3B",
"T@ c #26252F",
"U@ c #242432",
"V@ c #0E0E2B",
"W@ c #14162D",
"X@ c #DDDED2",
"Y@ c #7F836A",
"Z@ c #67685D",
"`@ c #646775",
" # c #656875",
".# c #25262C",
"+# c #D4D5DB",
"@# c #888A98",
"## c #7D7D8A",
"$# c #BBBBBB",
"%# c #30302F",
"&# c #666976",
"*# c #32343A",
"=# c #9C9DA2",
"-# c #E9E9E4",
";# c #CBC8D0",
"># c #CFCCD3",
",# c #CDCBD1",
"'# c #C8C7CC",
")# c #C3C2C6",
"!# c #C1C0C3",
"~# c #C2C1C3",
"{# c #C0C0C1",
"]# c #BBBBBC",
"^# c #B5B6B5",
"/# c #B5B6B2",
"(# c #CFCEC3",
"_# c #7B8067",
":# c #6F7171",
"<# c #636673",
"[# c #24252B",
"}# c #D3D4DA",
"|# c #8C8E9D",
"1# c #18181B",
"2# c #D6D6D6",
"3# c #0C0C0B",
"4# c #696C7A",
"5# c #646774",
"6# c #313339",
"7# c #818491",
"8# c #808291",
"9# c #8E8F97",
"0# c #D1D1CF",
"a# c #D1D1CE",
"b# c #DBDCD5",
"c# c #E1E1DA",
"d# c #E7E7E0",
"e# c #EBECE5",
"f# c #EDEDE8",
"g# c #ECEBE5",
"h# c #E8E8E2",
"i# c #E4E4DC",
"j# c #DFDED6",
"k# c #C3C3B5",
"l# c #6D6F58",
"m# c #656868",
"n# c #636674",
"o# c #616471",
"p# c #23252A",
"q# c #D2D3DA",
"r# c #848694",
"s# c #838594",
"t# c #686B78",
"u# c #626572",
"v# c #313239",
"w# c #80818F",
"x# c #7C7E8D",
"y# c #767883",
"z# c #8D8D89",
"A# c #8C8E86",
"B# c #909088",
"C# c #88897C",
"D# c #828173",
"E# c #7E7E71",
"F# c #7E7F72",
"G# c #6D6E62",
"H# c #4E4E3E",
"I# c #696B5C",
"J# c #6E716B",
"K# c #5D5F66",
"L# c #5F626F",
"M# c #606370",
"N# c #222429",
"O# c #D1D2D9",
"P# c #848695",
"Q# c #6B6C78",
"R# c #45454D",
"S# c #151518",
"T# c #434344",
"U# c #545454",
"V# c #454545",
"W# c #D3D3D3",
"X# c #969696",
"Y# c #656876",
"Z# c #606470",
"`# c #2F3137",
" $ c #808290",
".$ c #6E707E",
"+$ c #828389",
"@$ c #7E7E75",
"#$ c #6E6E5B",
"$$ c #565747",
"%$ c #2E2F20",
"&$ c #1B1B0F",
"*$ c #2F2F21",
"=$ c #5F5F4C",
"-$ c #4F5054",
";$ c #57585E",
">$ c #606371",
",$ c #5F636F",
"'$ c #5E616E",
")$ c #222328",
"!$ c #D1D1D8",
"~$ c #4E4F57",
"{$ c #0A0A0A",
"]$ c #C0C0C0",
"^$ c #707072",
"/$ c #040404",
"($ c #5E626E",
"_$ c #2F3037",
":$ c #7F808E",
"<$ c #9A9B9E",
"[$ c #D7D8D6",
"}$ c #D5D5D3",
"|$ c #D7D8D5",
"1$ c #D6D6D1",
"2$ c #B2B2AA",
"3$ c #88887F",
"4$ c #67675E",
"5$ c #3C3C32",
"6$ c #454739",
"7$ c #6F706A",
"8$ c #616470",
"9$ c #5D616D",
"0$ c #5C5F6C",
"a$ c #212227",
"b$ c #D0D1D7",
"c$ c #838493",
"d$ c #4C4D55",
"e$ c #4C4C4C",
"f$ c #DBDBDB",
"g$ c #E4E4E4",
"h$ c #ACACAC",
"i$ c #282828",
"j$ c #616572",
"k$ c #5D606D",
"l$ c #2D2F35",
"m$ c #E2E2EA",
"n$ c #757684",
"o$ c #6C6E7C",
"p$ c #676977",
"q$ c #646672",
"r$ c #636672",
"s$ c #636571",
"t$ c #61636F",
"u$ c #5E606C",
"v$ c #5A5D6A",
"w$ c #202127",
"x$ c #CFD0D6",
"y$ c #6B6D79",
"z$ c #4F5059",
"A$ c #4E4F58",
"B$ c #4C4E57",
"C$ c #464851",
"D$ c #40414B",
"E$ c #5A5C64",
"F$ c #6B6D76",
"G$ c #6A6C74",
"H$ c #4B4C55",
"I$ c #3B3D46",
"J$ c #40424A",
"K$ c #42444C",
"L$ c #40424B",
"M$ c #3F414A",
"N$ c #3C3E46",
"O$ c #5B5E6B",
"P$ c #2D2E35",
"Q$ c #707280",
"R$ c #696B79",
"S$ c #595C69",
"T$ c #1F2126",
"U$ c #CECFD5",
"V$ c #727582",
"W$ c #5A5E6A",
"X$ c #2C2E34",
"Y$ c #7A7C8B",
"Z$ c #7D7F8E",
"`$ c #7B7D8C",
" % c #797B8A",
".% c #777A88",
"+% c #757886",
"@% c #707381",
"#% c #6C6F7D",
"$% c #6A6D7B",
"%% c #5F6370",
"&% c #595D6A",
"*% c #202126",
"=% c #D0D1D8",
"-% c #787B89",
";% c #767986",
">% c #727583",
",% c #6F717F",
"'% c #6B6D7B",
")% c #676A78",
"!% c #5C5F6D",
"~% c #2C2E35",
"{% c #989898",
"]% c #19191D",
"^% c #191A1E",
"/% c #18191D",
"(% c #17181C",
"_% c #16171B",
":% c #15161A",
"<% c #141519",
"[% c #131418",
"}% c #131417",
"|% c #121317",
"1% c #121316",
"2% c #111216",
"3% c #111215",
"4% c #101115",
"5% c #101114",
"6% c #0F1014",
"7% c #050607",
"8% c #131317",
"9% c #121216",
"0% c #101014",
"a% c #0F0F13",
"b% c #0E0F13",
"c% c #0E0E12",
"d% c #0F1013",
"e% c #0C0D10",
"f% c #0B0D10",
"g% c #0B0C0F",
"h% c #0A0C0F",
"i% c #0A0B0E",
"j% c #090A0E",
"k% c #5D627C",
"l% c #E7E8EB",
"m% c #FBFBFF",
"n% c #F8F8FF",
"o% c #F7F7FF",
"p% c #F6F6FF",
"q% c #F5F6FE",
"r% c #F4F5FD",
"s% c #F3F3FB",
"t% c #F2F2FA",
"u% c #F1F2F9",
"v% c #EFF0F7",
"w% c #CACAD0",
"x% c #EAEBF3",
"y% c #E9EAF2",
"z% c #E8E9F1",
"A% c #E7E8F0",
"B% c #737477",
"C% c #E6E7ED",
"D% c #747480",
"E% c #62626C",
"F% c #878898",
"G% c #858793",
"H% c #595A65",
"I% c #666875",
"J% c #444550",
"K% c #43454F",
"L% c #545560",
"M% c #E6E6ED",
"N% c #9192A0",
"O% c #2E2E33",
"P% c #676772",
"Q% c #8D8E9A",
"R% c #2A2B2D",
"S% c #3C3D43",
"T% c #E5E5ED",
"U% c #9899A8",
"V% c #828390",
"W% c #0D0D0D",
"X% c #9A9BAC",
"Y% c #898B99",
"Z% c #7F8190",
"`% c #8A8B97",
" & c #545561",
".& c #2A2A31",
"+& c #27272A",
"@& c #3B3C42",
"#& c #E4E5ED",
"$& c #9495A3",
"%& c #858593",
"&& c #7F818D",
"*& c #4C4E59",
"=& c #5D5F69",
"-& c #E3E5ED",
";& c #82818F",
">& c #7B7781",
",& c #747278",
"'& c #85848C",
")& c #3E3F49",
"!& c #E3E4ED",
"~& c #8B899B",
"{& c #8F8A9B",
"]& c #888393",
"^& c #807A87",
"/& c #7F7985",
"(& c #7F7B85",
"_& c #9A919A",
":& c #727179",
"<& c #52545F",
"[& c #E2E3ED",
"}& c #7D7F8B",
"|& c #908DA3",
"1& c #8A8494",
"2& c #A8A5B7",
"3& c #B3ADBA",
"4& c #7F7B80",
"5& c #575A62",
"6& c #5D5E66",
"7& c #726E79",
"8& c #686870",
"9& c #7A7C89",
"0& c #1F2025",
"a& c #E1E3EC",
"b& c #828592",
"c& c #878796",
"d& c #9B91A6",
"e& c #827985",
"f& c #797381",
"g& c #4F4E54",
"h& c #46484D",
"i& c #8D858D",
"j& c #6B676E",
"k& c #60616A",
"l& c #72717B",
"m& c #696B77",
"n& c #6E717F",
"o& c #3D3E44",
"p& c #E0E1EB",
"q& c #7B7E8B",
"r& c #A29CAF",
"s& c #918895",
"t& c #87808D",
"u& c #5D5A64",
"v& c #3D3E43",
"w& c #48494F",
"x& c #5C5E66",
"y& c #706E78",
"z& c #67656C",
"A& c #62626B",
"B& c #E0E1EA",
"C& c #858694",
"D& c #ADA4B4",
"E& c #7B757B",
"F& c #898390",
"G& c #494A50",
"H& c #3E3E43",
"I& c #52535A",
"J& c #6A6B75",
"K& c #70727E",
"L& c #7B7883",
"M& c #666771",
"N& c #71717E",
"O& c #55565D",
"P& c #61646E",
"Q& c #E0E0EA",
"R& c #80828F",
"S& c #9D9BAA",
"T& c #9B929D",
"U& c #908892",
"V& c #737079",
"W& c #3E4045",
"X& c #46464C",
"Y& c #5D5E67",
"Z& c #6F707C",
"`& c #6E717D",
" * c #7E7C8D",
".* c #777481",
"+* c #777584",
"@* c #4E4F55",
"#* c #626570",
"$* c #DFDFE9",
"%* c #848593",
"&* c #A9A3AF",
"** c #8C848C",
"=* c #9A949F",
"-* c #505057",
";* c #404045",
">* c #505158",
",* c #686974",
"'* c #727481",
")* c #737682",
"!* c #988FA4",
"~* c #7A7484",
"{* c #6B6873",
"]* c #44454B",
"^* c #45474C",
"/* c #585A62",
"(* c #666975",
"_* c #D4D5DE",
":* c #8B8D9B",
"<* c #8F8F9C",
"[* c #A69EA6",
"}* c #9C949C",
"|* c #827F88",
"1* c #424449",
"2* c #6E707C",
"3* c #817F8D",
"4* c #958D9E",
"5* c #7E7787",
"6* c #615F69",
"7* c #3E3F45",
"8* c #44464C",
"9* c #595A63",
"0* c #666977",
"a* c #C2C3CA",
"b* c #4F505D",
"c* c #8B8E9D",
"d* c #B3A8B0",
"e* c #99929A",
"f* c #606068",
"g* c #414248",
"h* c #4D4F55",
"i* c #656670",
"j* c #727581",
"k* c #767885",
"l* c #98919E",
"m* c #948C9A",
"n* c #73707B",
"o* c #3F4146",
"p* c #5F616B",
"q* c #666874",
"r* c #DEDFE7",
"s* c #81828D",
"t* c #535561",
"u* c #89838F",
"v* c #7E7377",
"w* c #484A51",
"x* c #6D6E7A",
"y* c #787883",
"z* c #A9A0AD",
"A* c #918B97",
"B* c #5B5C63",
"C* c #414147",
"D* c #45464D",
"E* c #DBDDE6",
"F* c #73747F",
"G* c #535661",
"H* c #978A95",
"I* c #6D686C",
"J* c #63646E",
"K* c #767682",
"L* c #958F9A",
"M* c #AAA3AE",
"N* c #736F79",
"O* c #4C4D54",
"P* c #404147",
"Q* c #60626C",
"R* c #676A76",
"S* c #DBDCE6",
"T* c #7B7C87",
"U* c #978C92",
"V* c #7A757B",
"W* c #BAB3BF",
"X* c #928D97",
"Y* c #5A5A62",
"Z* c #43454A",
"`* c #45474D",
" = c #595B63",
".= c #656873",
"+= c #DADCE5",
"@= c #7D7E8C",
"#= c #383943",
"$= c #777988",
"%= c #51505A",
"&= c #B2A5AB",
"*= c #7A7982",
"== c #4D4E53",
"-= c #323438",
";= c #5C5E68",
">= c #565862",
",= c #454751",
"'= c #2E3036",
")= c #DADBE4",
"!= c #23242A",
"~= c #44444D",
"{= c #606169",
"]= c #2A2B2F",
"^= c #17171B",
"/= c #323339",
"(= c #50535D",
"_= c #24262A",
":= c #0C0D0E",
"<= c #50535E",
"[= c #2A2C32",
"}= c #474953",
"|= c #121315",
"1= c #DADAE3",
"2= c #797B88",
"3= c #1A1B1F",
"4= c #797A85",
"5= c #393A46",
"6= c #53555F",
"7= c #1F2024",
"8= c #121214",
"9= c #51535E",
"0= c #33343B",
"a= c #121215",
"b= c #4D505A",
"c= c #34363D",
"d= c #777884",
"e= c #757681",
"f= c #797C89",
"g= c #4C4E5A",
"h= c #5F626E",
"i= c #5A5D68",
"j= c #5E616D",
"k= c #4E515A",
"l= c #626573",
"m= c #595C68",
"n= c #555864",
"o= c #555863",
"p= c #43454E",
"q= c #515460",
"r= c #0D0E10",
"s= c #939395",
"t= c #1A1A1E",
"u= c #19191E",
"v= c #18181C",
"w= c #0E0E11",
"x= c #0F0F12",
"y= c #141518",
"z= c #121417",
"A= c #111316",
"B= c #0D0E11",
" ",
" . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / / ( _ : @ < $ % [ } | 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 u 0 v w x y z A B h C D E F G H I J K L M 7 ",
" N 9 O P 0 a w x d z A B h Q R E l G H o p K S T U O V W v a X y d A f Y C Z ` F l ...+.K @.7 ",
" < #.P #.x $.%.&.*.=.-.;.>.,.'.).!.~.{.].K L s ^.u V W /.w x x (._.:.<.[.[.}.R G H |.p K q M 7 ",
" # a 0 w 1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.K g.h.i.W W v w j.k.l.m.n.o.p.p.q.r.s.t.o p q q g.M 7 ",
" % X a x u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.f.L J.K.L.v v M.x N.O. P. Q.R.S.T.U.V.W.7 ",
" [ y w d X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+;+g.>+K.,+w a x z '+ )+!+~+{+]+q.^+/+(+7 ",
" * d x _+:+<+[+}+|+ 1+2+3+4+5+*+6+7+8+9+0+a+b+X X x c+ d+7 e+f+g+ h+0+i+7 ",
" | A d j+:+k+l+m+ n+o+p+q+r+*+s+t+u+v+w+x+y+y y z+A+ d+7 e+f+B+C+V.D+E+7 ",
" 1 f e F+G+H+I+J+ K+L+M+N+O+P+5+Q+R+S+T+U+V+W+X+z N.Y+ d+7 e+e+Z+`+ @.@+@7 ",
" ; g @@h #@$@%@&@ *@O+7 =@O+-@;@>@,@'@)@!@~@{@]@A y ^@ /@7 e+e+7 (@D+_@:@7 ",
" > C B <@[@$@}@|@1@2@3@Z+7 o+4@5@6@7@8@9@0@a@b@c@B z d@ e@f@g@g@h@i@7 e+e+7 j@k@l@m@7 ",
" , Z h j n@o@p@q@L+r@f+e+s@t@u@v@6@w@x@y@z@A@B@C@g A D@ E@e+F@F@F@O+e+e+e+7 (@G@H@I@7 ",
" ' ` i J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #.#+#@#h ## $#7 e+e+e+e+e+e+e+7 %#G@&#*#7 ",
" ) k R t.=#-#;#>#,#'#)#!#~#{#]#^#/#(#_#:#`@<#[#}#D R |#1# $#7 e+e+e+e+e+e+f+2#3#4#5#6#7 ",
" ! 7#E 8#9#0#a#b#c#d#e#f#f#g#h#i#j#k#l#m#n#o#p#q#r#` s#[. $#7 e+e+e+e+f+e+f+g+ t#u#v#7 ",
" ~ .l w#x#U.y#z#A#B#C#D#E#F#G#H#I#J#K#L#o#M#N#O#F P#Q#R#S#T#U#V#W#7 e+e+e+e+e+7 X# Y#Z#`#7 ",
" { ..m $+.K L .$+$@$#$$$%$&$*$=$-$;$o#>$,$'$)$!$G E ~$ {$]$7 f+e+e+e+f+7 7 ^$/$ 5#($_$7 ",
" ] +...:$K L 9+<$[$}$|$1$2$3$4$5$6$7$8$L#9$0$a$b$H c$d$ e$]$f$g$g$2#h$i$ j$k$l$7 ",
" m$K o K L g.n$0+o$p$5#q$r$s$t$u$o#>$($k$0$v$w$x$o H y$z$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$'$O$P$7 ",
" / q p q r V.J.>+Q$w+V+~@R$&# #<#o#M#'$0$v$S$T$U$p +.K L g.V.V$0+w+.@_@a@A@&#5#u#o#($k$W$S$X$7 ",
" { Y$Z$`$ %.%+%J.V$@%w+#%$%a@A@ #<#o#%%9$0$&%*%=%....+.K -%;%V.>%0+,%.@'%a@)%Y#5#j$M#'$!%W$~%7 ",
" {%]%^%]%/%(%(%_%_%:%:%<%<%[%}%|%1%2%3%4%5%6%7%{+[%[%8%|%9%2%3%4%0%6%a%b%c%d%6%e%e%f%g%h%i%j%7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%l%m%n%o%p%q%r%s%t%u%# v%[ $ ]@w%x%y%> z%A%) B%7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%C%u u 0 w D%E%w z A B h C R F%G%H%F I%J%K%L%M 7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%M%U O V N%O%P%v y d A f Y C Z ` Q%J%k W+ R%S%7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%T%u V U%w V%W%X%e f B Y%i R r#l Z%`% &`$.&+&@&7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%#&W W a $&%&:$d f B Y%i R r#l m n Z$&&*&p =&W.7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%-&v v w x d e f B Y%i R r#l s#%&;&>&,&'&)&L W.7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%!&w a x d e f B Y%i R E G ~&{&]&^&/&(&_&:&<&i+7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%[&X X d e f B Y%i R E }&|&1&2&3&4&5&6&7&8&9&0&7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%a&y y e f B Y%i R b&c&d&e&f&g&h&i&j&k&l&m&n&o&7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%p&z z f B Y%i R q&r&s&t&u&v&w&x&y&z&A&P%I%w++@7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%B&A A B Y%i ` C&D&E&F&G&H&I&J&K&L&M&N&O&P&#%:@7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%Q&B f Y%i R&S&T&U&V&W&X&Y&Z&`& *.*+*@*s.#*~@m@7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%$*g Y i %*&***=*-*;*>*,*'*)*!*~*{*]*^*/*(*H@I@7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%_*:*i <*[*}*|*1*]*E$2*>+3*4*5*6*7*8*9*q$0*&#*#7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%a*b*c*d*e*f*g*h*i*j*k*l*m*n*G&o*s.p*q*&# #5#6#7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%r*s*t*u*v*w*O&x*k*y*z*A*B*C*D*9*q$t#&# #<#u#v#7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%E*s#F*G*H*I*J*K*L*M*N*O*P*~$Q*R*H@p$ #<#o#o#`#7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%S* $J T*)&U*V*W*X*Y*Z*`* =.=t#t#&#&#5#o#M#($_$7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%+=@=#=$=y#%=&=*===-=D*;=>=_@$%A@4#,=*&o#,$'$'=7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%)=K i%!=`$<.~={=s.r.]=E+^=B$/=(=_=:=I@<=[=}=|=7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%1=2=c% 3=9+4=5=g.6=7=8=9=I@K.'=N$0=a=b=c=a$/$7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%E*Z$d=y#e=f=h+Z&g=J.h=i=w+j=k=l=m=n=o=o=p=q=r=7 ",
" k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%k%s=t=3=^%u=/%v=v=w=x=_%:%<%<%y=[%z=|%A=2%3%4%B=7 ",
" 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 "};