From e9b19380d5a411bb126ae95d29cb4a69b9e49084 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 14:02:21 -0400 Subject: [PATCH 01/21] Expand shorthand Style attributes into their longhands A View binds `padding` and `padding-left` to separate Inlets over the same bytes, and View::bind applies them in Inlet declaration order. Whichever is declared later therefore wins, regardless of which Selector the cascade preferred: a class rule setting `min-height` loses to a type rule setting `min-size`, because `min-height` is declared first. Attributes are now stored as longhands only. A shorthand is split on the way in, so the cascade resolves each longhand independently, as CSS does, and declaration order stops deciding the outcome. Both entry points expand: the parser's addAttribute, and addAttributes, which now merges per attribute so a shorthand arriving from JSON or from another Style is treated the same as one from a stylesheet. A single Number still splats to every longhand, matching the rectangle binding, so `padding: 2` keeps meaning all four sides. A value of any other shape is stored unexpanded and left for the Inlet binding to reject, rather than being dropped here. --- Sources/ObjectivelyMVC/Style.c | 110 ++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 2 deletions(-) diff --git a/Sources/ObjectivelyMVC/Style.c b/Sources/ObjectivelyMVC/Style.c index cd1e4a16..5eb9a1b8 100644 --- a/Sources/ObjectivelyMVC/Style.c +++ b/Sources/ObjectivelyMVC/Style.c @@ -95,6 +95,101 @@ static bool isEqual(const Object *self, const Object *other) { #pragma mark - Style +/** + * @brief A shorthand attribute, and the longhands it stands for. + * @details Attributes are stored as longhands only, because a View binds each of them to a + * separate Inlet over the same bytes: `padding` and `padding-left` write the same field, and + * the Inlet declared later wins regardless of which Selector the cascade preferred. Expanding + * on the way in means the cascade resolves each longhand on its own, as CSS does. + */ +typedef struct { + const char *shorthand; + const char *longhands[4]; +} StyleShorthand; + +/** + * @remarks The longhands are in the order the shorthand's values are written, which is the + * order of the struct each one binds: `padding` is top right bottom left, `frame` is x y w h. + */ +static const StyleShorthand styleShorthands[] = { + { "corner-cut", { "corner-cut-top-left", "corner-cut-top-right", + "corner-cut-bottom-right", "corner-cut-bottom-left" } }, + { "frame", { "left", "top", "width", "height" } }, + { "max-size", { "max-width", "max-height" } }, + { "min-size", { "min-width", "min-height" } }, + { "padding", { "padding-top", "padding-right", "padding-bottom", "padding-left" } }, +}; + +/** + * @return The number of longhands `shorthand` stands for. + */ +static size_t styleShorthandCount(const StyleShorthand *shorthand) { + + size_t count = 0; + while (count < lengthof(shorthand->longhands) && shorthand->longhands[count]) { + count++; + } + + return count; +} + +/** + * @return The StyleShorthand `key` names, or `NULL` if it is already a longhand. + */ +static const StyleShorthand *styleShorthandForKey(const char *key) { + + for (size_t i = 0; i < lengthof(styleShorthands); i++) { + if (strcmp(styleShorthands[i].shorthand, key) == 0) { + return &styleShorthands[i]; + } + } + + return NULL; +} + +/** + * @brief Stores `value` as the longhands of `shorthand`, if it can be split into them. + * @return True if the value was expanded and stored. + * @remarks A single Number splats to every longhand, as View+JSON's rectangle binding does, + * so `padding: 2` still means all four sides. A value of any other shape is left to the Inlet + * binding to reject, rather than being silently dropped here. + */ +static bool addShorthandAttribute(Style *self, const StyleShorthand *shorthand, ident value) { + + const size_t count = styleShorthandCount(shorthand); + + if ($((Object *) value, isKindOfClass, _Number())) { + for (size_t i = 0; i < count; i++) { + $((Dictionary *) self->attributes, setObjectForKeyPath, value, shorthand->longhands[i]); + } + return true; + } + + if ($((Object *) value, isKindOfClass, _Array())) { + const Array *array = value; + if (array->count == count) { + for (size_t i = 0; i < count; i++) { + ident number = $(array, objectAtIndex, i); + $((Dictionary *) self->attributes, setObjectForKeyPath, number, shorthand->longhands[i]); + } + return true; + } + } + + return false; +} + +/** + * @brief Stores `value` under `key`, expanding it into longhands if `key` is a shorthand. + */ +static void setAttribute(Style *self, const char *key, ident value) { + + const StyleShorthand *shorthand = styleShorthandForKey(key); + if (shorthand == NULL || !addShorthandAttribute(self, shorthand, value)) { + $((Dictionary *) self->attributes, setObjectForKeyPath, value, key); + } +} + /** * @fn void Style::addAttribute(Style *self, const char *attr, ident value) * @memberof Style @@ -107,11 +202,20 @@ static void addAttribute(Style *self, const char *attr, ident value) { char *key = strtrim(attr); assert(key); - $((Dictionary *) self->attributes, setObjectForKeyPath, value, key); + setAttribute(self, key, value); free(key); } +/** + * @brief DictionaryEnumerator for addAttributes. + */ +static void addAttributes_enumerate(const Dictionary *dictionary, ident obj, ident key, ident data) { + + // already a trimmed key, coming from another Style's attributes or from JSON + setAttribute((Style *) data, ((String *) key)->chars, obj); +} + /** * @fn void Style::addAttributes(Style *self, const Dictionary *attributes) * @memberof Style @@ -120,7 +224,9 @@ static void addAttributes(Style *self, const Dictionary *attributes) { assert(attributes); - $((Dictionary *) self->attributes, addEntriesFromDictionary, attributes); + // per attribute, rather than a bulk merge, so that a shorthand arriving from JSON or from + // another Style is expanded exactly as one from the parser is + $(attributes, enumerateObjectsAndKeys, addAttributes_enumerate, self); } /** From a67440f7978c5a1f5f3b18a7f38a9bc364707fd2 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 16:45:50 -0400 Subject: [PATCH 02/21] Drop `frame` as a style attribute `frame` named the same bytes as `left`, `top`, `width` and `height`, which is exactly the aliasing the previous commit set out to remove: a Style holding both left an Inlet's declaration order, not the cascade, deciding which won. No stylesheet or view definition in this tree or in Quetoo has ever used it. It remains bindable from JSON, where a View definition names a frame directly rather than cascading. --- Sources/ObjectivelyMVC/Style.c | 1 - Sources/ObjectivelyMVC/View.c | 1 - 2 files changed, 2 deletions(-) diff --git a/Sources/ObjectivelyMVC/Style.c b/Sources/ObjectivelyMVC/Style.c index 5eb9a1b8..8e4951c6 100644 --- a/Sources/ObjectivelyMVC/Style.c +++ b/Sources/ObjectivelyMVC/Style.c @@ -114,7 +114,6 @@ typedef struct { static const StyleShorthand styleShorthands[] = { { "corner-cut", { "corner-cut-top-left", "corner-cut-top-right", "corner-cut-bottom-right", "corner-cut-bottom-left" } }, - { "frame", { "left", "top", "width", "height" } }, { "max-size", { "max-width", "max-height" } }, { "min-size", { "min-width", "min-height" } }, { "padding", { "padding-top", "padding-right", "padding-bottom", "padding-left" } }, diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index a561a7ff..0c8e78ce 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -277,7 +277,6 @@ static void applyStyle(View *self, const Style *style) { MakeInlet("corner-cut-top-right", InletTypeInteger, &self->cornerCut.topRight, NULL), MakeInlet("corner-cut-bottom-right", InletTypeInteger, &self->cornerCut.bottomRight, NULL), MakeInlet("corner-cut-bottom-left", InletTypeInteger, &self->cornerCut.bottomLeft, NULL), - MakeInlet("frame", InletTypeRectangle, &self->frame, NULL), MakeInlet("hidden", InletTypeBool, &self->hidden, NULL), MakeInlet("height", InletTypeInteger, &self->frame.h, NULL), MakeInlet("left", InletTypeInteger, &self->frame.x, NULL), From 1212579a820ee62d8c8bd6fc9321261c30c09aa3 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 14:47:25 -0400 Subject: [PATCH 03/21] Separate styled visibility from a View's own hidden flag `hidden` was both a CSS property and a runtime one: View::setHidden writes it 70 times across this tree and Quetoo, and four stylesheet rules write it too, so whichever ran last won. That is the same friction `left` and `top` had against the frame, and it is the one property that would break once a Style resolves its Inlets totally, since an owner's setHidden would be undone by any restyle that says nothing about visibility. Styling now sets View::visibility, an unspecified/visible/hidden tri-state, and setHidden sets View::hiddenByOwner. View::hidden is derived from the two: styling wins where it says anything, the owner wins where it does not. Readers are unchanged. The precedence is what the existing uses already assume. Panel hides its accessoryView in code while a Quetoo stylesheet shows it for dialogs, which works today only because a Style writes the properties it mentions and no others. Checkbox's check mark and CollectionItemView's selection overlay are driven purely by :selected rules, and no code touches them. The CSS property is renamed to `visibility` to say which of the two it is. Two direct writes to the derived field, in Panel and ScrollView, now go through setHidden. --- Assets/stylesheet.css | 8 +++--- Assets/stylesheet.css.h | 36 +++++++++++++------------- Sources/ObjectivelyMVC/Panel.c | 2 +- Sources/ObjectivelyMVC/ScrollView.c | 2 +- Sources/ObjectivelyMVC/View.c | 39 ++++++++++++++++++++++++----- Sources/ObjectivelyMVC/View.h | 30 +++++++++++++++++++++- 6 files changed, 87 insertions(+), 30 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index ad50d6b4..fc389229 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -49,13 +49,13 @@ Checkbox { } Checkbox ImageView { - hidden: true; + visibility: hidden; width: 12; height: 12; } Checkbox:selected ImageView { - hidden: false; + visibility: visible; } Checkbox > Control { @@ -74,11 +74,11 @@ CollectionItemView { CollectionItemView > .selectionOverlay { background-color: #ffffff22; - hidden: true; + visibility: hidden; } CollectionItemView:selected > .selectionOverlay { - hidden: false; + visibility: visible; } CollectionView { diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index c1d67112..e49a157a 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -58,14 +58,15 @@ unsigned char stylesheet_css[] = { 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, - 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, - 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x62, 0x6f, 0x78, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3a, 0x20, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, + 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x3a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, @@ -91,14 +92,15 @@ unsigned char stylesheet_css[] = { 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x69, - 0x64, 0x64, 0x65, 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, - 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, - 0x6e, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, + 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, + 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, + 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, + 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, @@ -447,4 +449,4 @@ unsigned char stylesheet_css[] = { 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 5352; +unsigned int stylesheet_css_len = 5376; diff --git a/Sources/ObjectivelyMVC/Panel.c b/Sources/ObjectivelyMVC/Panel.c index 9c038b74..b1180aa4 100644 --- a/Sources/ObjectivelyMVC/Panel.c +++ b/Sources/ObjectivelyMVC/Panel.c @@ -246,7 +246,7 @@ static Panel *initWithFrame(Panel *self, const SDL_Rect *frame) { $((View *) self->accessoryView, addClassName, "accessoryView"); $((View *) self->accessoryView, addClassName, "container"); - self->accessoryView->view.hidden = true; + $((View *) self->accessoryView, setHidden, true); $((View *) self->stackView, addSubview, (View *) self->accessoryView); diff --git a/Sources/ObjectivelyMVC/ScrollView.c b/Sources/ObjectivelyMVC/ScrollView.c index d866ed62..04f22e5b 100644 --- a/Sources/ObjectivelyMVC/ScrollView.c +++ b/Sources/ObjectivelyMVC/ScrollView.c @@ -173,7 +173,7 @@ static ScrollView *initWithFrame(ScrollView *self, const SDL_Rect *frame) { View *scrollBar = (View *) self->scrollBar; scrollBar->alignment = ViewAlignmentRight; scrollBar->autoresizingMask = ViewAutoresizingHeight; - scrollBar->hidden = true; + $(scrollBar, setHidden, true); $((View *) self, addSubview, scrollBar); } diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index 0c8e78ce..fcd5dfca 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -49,6 +49,12 @@ void MVC_InvalidateRenderFrames(void) { } } +const EnumName ViewVisibilityNames[] = MakeEnumNames( + MakeEnumAlias(ViewVisibilityUnspecified, unspecified), + MakeEnumAlias(ViewVisibilityVisible, visible), + MakeEnumAlias(ViewVisibilityHidden, hidden) +); + const EnumName ViewAlignmentNames[] = MakeEnumNames( MakeEnumAlias(ViewAlignmentNone, none), MakeEnumAlias(ViewAlignmentTop, top), @@ -254,6 +260,27 @@ static View *ancestorWithIdentifier(const View *self, const char *identifier) { return NULL; } +/** + * @brief Resolves View::hidden from the styled visibility and the owner's choice. + * @remarks Styling wins where it says anything, so that a Selector can show or hide a View + * outright; where it says nothing, whatever the owner passed to View::setHidden stands. + */ +static void resolveHidden(View *self) { + + const bool hidden = self->visibility == ViewVisibilityUnspecified + ? self->hiddenByOwner + : self->visibility == ViewVisibilityHidden; + + if (self->hidden != hidden) { + + self->hidden = hidden; + + if (self->superview && $(self->superview, isContainer)) { + $(self->superview, setNeedsLayout); + } + } +} + /** * @fn void View::applyStyle(View *self, const Style *style) * @memberof View @@ -277,7 +304,7 @@ static void applyStyle(View *self, const Style *style) { MakeInlet("corner-cut-top-right", InletTypeInteger, &self->cornerCut.topRight, NULL), MakeInlet("corner-cut-bottom-right", InletTypeInteger, &self->cornerCut.bottomRight, NULL), MakeInlet("corner-cut-bottom-left", InletTypeInteger, &self->cornerCut.bottomLeft, NULL), - MakeInlet("hidden", InletTypeBool, &self->hidden, NULL), + MakeInlet("visibility", InletTypeEnum, &self->visibility, (ident) ViewVisibilityNames), MakeInlet("height", InletTypeInteger, &self->frame.h, NULL), MakeInlet("left", InletTypeInteger, &self->frame.x, NULL), MakeInlet("max-height", InletTypeInteger, &self->maxSize.h, NULL), @@ -298,6 +325,8 @@ static void applyStyle(View *self, const Style *style) { $(self, bind, inlets, style->attributes); + resolveHidden(self); + // Capture the authored width/height, if either was actually present in this Style -- distinct // from self->frame.w/h, which layout goes on to freely resize. if ($(style->attributes, objectForKeyPath, "width")) { @@ -1800,13 +1829,11 @@ static View *selectFirst(View *self, const char *rule) { */ static void setHidden(View *self, bool hidden) { - if (self->hidden != hidden) { + if (self->hiddenByOwner != hidden) { - self->hidden = hidden; + self->hiddenByOwner = hidden; - if (self->superview && $(self->superview, isContainer)) { - $(self->superview, setNeedsLayout); - } + resolveHidden(self); } } diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index d553f454..dcc4d44f 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -97,6 +97,19 @@ typedef enum { OBJECTIVELYMVC_EXPORT const EnumName ViewAutoresizingNames[]; +/** + * @brief Visibility constants, used to hide a View from styling. + * @remarks Separate from View::hidden, which an owner sets directly and which is derived from + * this: a Style that says nothing about visibility leaves the owner's choice standing. + */ +typedef enum { + ViewVisibilityUnspecified, + ViewVisibilityVisible, + ViewVisibilityHidden +} ViewVisibility; + +OBJECTIVELYMVC_EXPORT const EnumName ViewVisibilityNames[]; + /** * @brief A constraint offered by an ancestor View to a descendant during View::sizeThatSatisfies. */ @@ -289,11 +302,20 @@ struct View { SDL_Rect frame; /** - * @brief If `true`, this View is not drawn. + * @brief If `true`, this View is not drawn, and does not contribute to its superview's size. + * @remarks Derived, and not to be assigned: it resolves View::visibility against + * View::hiddenByOwner, so that styling wins where it says anything and the owner wins where + * it does not. * @see View::setHidden(View *, bool) */ bool hidden; + /** + * @brief Whether this View's owner has hidden it, via View::setHidden. + * @private + */ + bool hiddenByOwner; + /** * @brief An optional identifier. * @remarks Identifiers are commonly used to resolve Outlets when loading Views via JSON. @@ -380,6 +402,12 @@ struct View { */ Style *style; + /** + * @brief The `visibility` this View was most recently given via styling. + * @remarks `unspecified`, the initial value, leaves View::hiddenByOwner deciding. + */ + ViewVisibility visibility; + /** * @brief The `width`/`height` this View was most recently given via styling, per axis. * @remarks Written only when a `width` or `height` Style attribute is actually present -- not From c6316d3f1e446de5da7e3d3cf54ee608a60c8457 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 14:47:55 -0400 Subject: [PATCH 04/21] Keep an Option's vertical padding when its Select is open `.options > Option` replaced the whole padding rather than widening it, so an Option lost the 2px above and below that `Option` gives it the moment the flyout opened. Select sizes itself from its Options, so the control shrank by 4px on open and grew back on close. --- Assets/stylesheet.css | 2 +- Assets/stylesheet.css.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index fc389229..bf6bad41 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -351,7 +351,7 @@ Text { .options > Option { border-radius: 2; - padding: 0 4 0 4; + padding: 2 4 2 4; } .options > Option:hover { diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index e49a157a..a408a97e 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -436,7 +436,7 @@ unsigned char stylesheet_css[] = { 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x30, 0x20, 0x34, 0x20, 0x30, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, + 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, From 3a4e4f612be9a7aa6749f969e0cbb9bd5e1b8dd5 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 16:08:02 -0400 Subject: [PATCH 05/21] Delete View::styledSize in favor of min-width and min-height styledSize was a second, weaker minSize. View::sizeThatFits floored its children-derived sum against it, and then clamped that against minSize a few lines later: the same floor, twice, except that styledSize only applied on the container branch and had to be memoized from the frame on every applyStyle to work at all. A container that needs to keep a size its content cannot give it now says so with `min-width` or `min-height`, which is what it meant. Only two rules here relied on the old behaviour, Slider and TextView, and both are one word longer for it. `width` and `height` still set the frame directly, which suits the views that use them: an icon sized by its style, not by its content. --- Assets/stylesheet.css | 4 +- Assets/stylesheet.css.h | 340 +++++++++++++++++----------------- Sources/ObjectivelyMVC/View.c | 16 +- Sources/ObjectivelyMVC/View.h | 11 -- 4 files changed, 173 insertions(+), 198 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index bf6bad41..c2323ab0 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -218,7 +218,7 @@ Select > StackView { Slider { autoresizing-mask: contain; - width: 140; + min-width: 140; } Slider > .bar { @@ -325,7 +325,7 @@ TextView { background-color: #22222266; bevel: inset; padding: 4 4 4 4; - width: 160; + min-width: 160; } TextView > Text { diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index a408a97e..2e9e517a 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -268,185 +268,185 @@ unsigned char stylesheet_css[] = { 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, - 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, + 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, + 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, + 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, - 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, - 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, - 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, - 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, - 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, + 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, + 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, + 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, - 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, - 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, - 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, - 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, 0x68, 0x2d, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x29, 0x20, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, - 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, - 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x53, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, - 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, - 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, + 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, + 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, + 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, + 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, - 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, - 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, - 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, - 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, - 0x00 + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, + 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, + 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, + 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, + 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, + 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, + 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, + 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, + 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 5376; +unsigned int stylesheet_css_len = 5384; diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index fcd5dfca..22b7ed91 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -304,7 +304,6 @@ static void applyStyle(View *self, const Style *style) { MakeInlet("corner-cut-top-right", InletTypeInteger, &self->cornerCut.topRight, NULL), MakeInlet("corner-cut-bottom-right", InletTypeInteger, &self->cornerCut.bottomRight, NULL), MakeInlet("corner-cut-bottom-left", InletTypeInteger, &self->cornerCut.bottomLeft, NULL), - MakeInlet("visibility", InletTypeEnum, &self->visibility, (ident) ViewVisibilityNames), MakeInlet("height", InletTypeInteger, &self->frame.h, NULL), MakeInlet("left", InletTypeInteger, &self->frame.x, NULL), MakeInlet("max-height", InletTypeInteger, &self->maxSize.h, NULL), @@ -320,21 +319,13 @@ static void applyStyle(View *self, const Style *style) { MakeInlet("padding-left", InletTypeInteger, &self->padding.left, NULL), MakeInlet("pointer-events", InletTypeBool, &self->pointerEvents, NULL), MakeInlet("top", InletTypeInteger, &self->frame.y, NULL), + MakeInlet("visibility", InletTypeEnum, &self->visibility, (ident) ViewVisibilityNames), MakeInlet("width", InletTypeInteger, &self->frame.w, NULL) ); $(self, bind, inlets, style->attributes); resolveHidden(self); - - // Capture the authored width/height, if either was actually present in this Style -- distinct - // from self->frame.w/h, which layout goes on to freely resize. - if ($(style->attributes, objectForKeyPath, "width")) { - self->styledSize.w = self->frame.w; - } - if ($(style->attributes, objectForKeyPath, "height")) { - self->styledSize.h = self->frame.h; - } } /** @@ -1936,11 +1927,6 @@ static SDL_Size sizeThatFits(const View *self) { release(subviews); - // A styled width/height is authored intent for this View's own frame; floor the - // children-derived sum against it so it survives summing subviews with no size of their - // own to contribute (e.g. Slider, whose bar and handle have none independently). - size.w = max(size.w, self->styledSize.w); - size.h = max(size.h, self->styledSize.h); } size.w = clamp(size.w, self->minSize.w, self->maxSize.w); diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index dcc4d44f..38e9d79f 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -408,17 +408,6 @@ struct View { */ ViewVisibility visibility; - /** - * @brief The `width`/`height` this View was most recently given via styling, per axis. - * @remarks Written only when a `width` or `height` Style attribute is actually present -- not - * on every View::applyStyle call -- so it reflects the last authored value for an axis, or - * `0` if that axis has never been styled. View::sizeThatFits's container branch floors its - * children-derived sum against this, so an authored size survives being a Contain view with no - * content of its own to size from (e.g. Slider, whose `bar` and `handle` have none - * independently). - */ - SDL_Size styledSize; - /** * @brief An optional Stylesheet. * @remarks If set, this Stylesheet is added to or removed from the current Theme when this From 5d62809e032d3ee86d5ca2380cdd4261830d22bf Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 16:25:37 -0400 Subject: [PATCH 06/21] Move class defaults out of C and into the default stylesheet Twelve properties were assigned in initWithFrame on Views a Selector already reaches, several of them onto rules that existed and simply lacked the declaration. Setting them from C means a stylesheet cannot override them, and it is the C half of a split source of truth: the same property is authored in two places depending on the widget. They are now declarations in Assets/stylesheet.css, which Theme::init always installs, and the assignments are gone. Two new rules name Views that had none, CollectionItemView's ImageView and Text; the rest extend a rule already there. This also removes twelve of the assignments that a total Style resolution would reset, since an authored value that lives in the cascade is never absent from it. --- Assets/stylesheet.css | 35 +- Assets/stylesheet.css.h | 841 ++++++++++---------- Sources/ObjectivelyMVC/Box.c | 4 - Sources/ObjectivelyMVC/Checkbox.c | 4 - Sources/ObjectivelyMVC/CollectionItemView.c | 7 - Sources/ObjectivelyMVC/Panel.c | 2 - Sources/ObjectivelyMVC/ScrollBar.c | 1 - Sources/ObjectivelyMVC/ScrollView.c | 2 - Sources/ObjectivelyMVC/StackView.c | 1 - Sources/ObjectivelyMVC/TextView.c | 1 - 10 files changed, 469 insertions(+), 429 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index c2323ab0..565b4f90 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -12,9 +12,10 @@ Box { } Box > Label { + alignment: internal; background-color: #888888; - padding: 0 8 0 8; left: 20; + padding: 0 8 0 8; } Box > Label > Text { @@ -49,9 +50,10 @@ Checkbox { } Checkbox ImageView { + autoresizing-mask: fill; + height: 12; visibility: hidden; width: 12; - height: 12; } Checkbox:selected ImageView { @@ -59,20 +61,31 @@ Checkbox:selected ImageView { } Checkbox > Control { + alignment: middle-center; autoresizing-mask: contain; background-color: #22222266; bevel: inset; - min-width: 18; min-height: 18; + min-width: 18; padding: 4 4 4 4; } CollectionItemView { background-color: #22222266; border-color: #999999aa; + clips-subviews: true; +} + +CollectionItemView > ImageView { + autoresizing-mask: fill; +} + +CollectionItemView > Text { + alignment: middle-center; } CollectionItemView > .selectionOverlay { + autoresizing-mask: fill; background-color: #ffffff22; visibility: hidden; } @@ -164,6 +177,7 @@ Panel .accessoryView { } Panel > .resizeHandle { + alignment: internal; border-radius: 4; } @@ -186,8 +200,9 @@ ProgressBar > Text { } ScrollBar { - width: 12; background-color: #222222c0; + clips-subviews: true; + width: 12; } ScrollBar > .handle { @@ -200,6 +215,11 @@ ScrollView { clips-subviews: true; } +ScrollView > .scrollBar { + alignment: right; + autoresizing-mask: height; +} + ScrollView > .contentView { autoresizing-mask: fit; } @@ -250,6 +270,10 @@ SlideShowView > ImageView { autoresizing-mask: fill; } +StackView { + autoresizing-mask: contain; +} + StackView.container { spacing: 12; } @@ -324,8 +348,9 @@ TextView { autoresizing-mask: contain; background-color: #22222266; bevel: inset; - padding: 4 4 4 4; + clips-subviews: true; min-width: 160; + padding: 4 4 4 4; } TextView > Text { diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index 2e9e517a..d3c516f9 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -16,437 +16,474 @@ unsigned char stylesheet_css[] = { 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x30, 0x20, 0x38, 0x20, 0x30, 0x20, 0x38, 0x3b, 0x0a, 0x20, - 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, - 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, - 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x3b, 0x0a, - 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x32, - 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, - 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, - 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, - 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, - 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x49, 0x6d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x30, 0x20, 0x38, 0x20, 0x30, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x32, 0x32, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, + 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, + 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, + 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, + 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, + 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, - 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x3a, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, - 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, - 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, 0x39, 0x39, 0x39, 0x39, - 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, - 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, - 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, - 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, - 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, - 0x3a, 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, - 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, - 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, - 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, - 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, - 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, - 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, - 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, - 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, - 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, - 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, - 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, - 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, - 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, - 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, + 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, - 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, + 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, + 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, - 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, - 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, - 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, - 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, + 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, + 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x52, + 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, - 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, - 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, + 0x65, 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x6e, + 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, + 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, - 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, - 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, - 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, + 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, - 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, - 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, + 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, + 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, + 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, - 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, - 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, - 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, - 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, - 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, + 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, + 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, - 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, - 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, + 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, + 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x3e, + 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, + 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, + 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, + 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, + 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, + 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, + 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, + 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, + 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, + 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, + 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, + 0x76, 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, + 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x31, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, - 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, - 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, - 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, + 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, + 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, + 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, + 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, + 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, + 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, + 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, - 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, + 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, + 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, + 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, - 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, - 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, + 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, + 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, + 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, + 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, + 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, - 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, - 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 + 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, + 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 5384; +unsigned int stylesheet_css_len = 5829; diff --git a/Sources/ObjectivelyMVC/Box.c b/Sources/ObjectivelyMVC/Box.c index af159cfd..cd05a39b 100644 --- a/Sources/ObjectivelyMVC/Box.c +++ b/Sources/ObjectivelyMVC/Box.c @@ -105,10 +105,6 @@ static Box *initWithFrame(Box *self, const SDL_Rect *frame) { self->label = $(alloc(Label), initWithText, NULL, NULL); assert(self->label); - View *label = (View *) self->label; - - label->alignment = ViewAlignmentInternal; - $((View *) self, addSubview, (View *) self->label); } diff --git a/Sources/ObjectivelyMVC/Checkbox.c b/Sources/ObjectivelyMVC/Checkbox.c index fb9c34f2..7dc1ba6f 100644 --- a/Sources/ObjectivelyMVC/Checkbox.c +++ b/Sources/ObjectivelyMVC/Checkbox.c @@ -137,13 +137,9 @@ static Checkbox *initWithFrame(Checkbox *self, const SDL_Rect *frame) { self->box = $(alloc(Control), initWithFrame, frame); assert(self->box); - self->box->view.alignment = ViewAlignmentMiddleCenter; - self->check = $(alloc(ImageView), initWithImage, _check); assert(self->check); - self->check->view.autoresizingMask = ViewAutoresizingFill; - $((View *) self->box, addSubview, (View *) self->check); $((View *) self, addSubview, (View *) self->box); } diff --git a/Sources/ObjectivelyMVC/CollectionItemView.c b/Sources/ObjectivelyMVC/CollectionItemView.c index 0f4122ad..3e5c282e 100644 --- a/Sources/ObjectivelyMVC/CollectionItemView.c +++ b/Sources/ObjectivelyMVC/CollectionItemView.c @@ -81,15 +81,11 @@ static CollectionItemView *initWithFrame(CollectionItemView *self, const SDL_Rec self->imageView = $(alloc(ImageView), initWithFrame, frame); assert(self->imageView); - self->imageView->view.autoresizingMask = ViewAutoresizingFill; - $((View *) self, addSubview, (View *) self->imageView); self->text = $(alloc(Text), initWithText, NULL, NULL); assert(self->text); - self->text->view.alignment = ViewAlignmentMiddleCenter; - $((View *) self, addSubview, (View *) self->text); self->selectionOverlay = $(alloc(View), initWithFrame, NULL); @@ -97,11 +93,8 @@ static CollectionItemView *initWithFrame(CollectionItemView *self, const SDL_Rec $(self->selectionOverlay, addClassName, "selectionOverlay"); - self->selectionOverlay->autoresizingMask = ViewAutoresizingFill; - $((View *) self, addSubview, self->selectionOverlay); - self->view.clipsSubviews = true; } return self; diff --git a/Sources/ObjectivelyMVC/Panel.c b/Sources/ObjectivelyMVC/Panel.c index b1180aa4..58b696c9 100644 --- a/Sources/ObjectivelyMVC/Panel.c +++ b/Sources/ObjectivelyMVC/Panel.c @@ -255,8 +255,6 @@ static Panel *initWithFrame(Panel *self, const SDL_Rect *frame) { $((View *) self->resizeHandle, addClassName, "resizeHandle"); - self->resizeHandle->view.alignment = ViewAlignmentInternal; - self->resizeHandle->view.frame.w = DEFAULT_PANEL_RESIZE_HANDLE_SIZE; self->resizeHandle->view.frame.h = DEFAULT_PANEL_RESIZE_HANDLE_SIZE; diff --git a/Sources/ObjectivelyMVC/ScrollBar.c b/Sources/ObjectivelyMVC/ScrollBar.c index 7730c82d..f577ee07 100644 --- a/Sources/ObjectivelyMVC/ScrollBar.c +++ b/Sources/ObjectivelyMVC/ScrollBar.c @@ -176,7 +176,6 @@ static ScrollBar *initWithScrollView(ScrollBar *self, ScrollView *scrollView) { if (self) { $((View *) self, addClassName, "scrollBar"); - ((View *) self)->clipsSubviews = true; self->handle = $(alloc(ScrollHandle), initWithFrame, NULL); assert(self->handle); diff --git a/Sources/ObjectivelyMVC/ScrollView.c b/Sources/ObjectivelyMVC/ScrollView.c index 04f22e5b..eebedb32 100644 --- a/Sources/ObjectivelyMVC/ScrollView.c +++ b/Sources/ObjectivelyMVC/ScrollView.c @@ -171,8 +171,6 @@ static ScrollView *initWithFrame(ScrollView *self, const SDL_Rect *frame) { assert(self->scrollBar); View *scrollBar = (View *) self->scrollBar; - scrollBar->alignment = ViewAlignmentRight; - scrollBar->autoresizingMask = ViewAutoresizingHeight; $(scrollBar, setHidden, true); $((View *) self, addSubview, scrollBar); diff --git a/Sources/ObjectivelyMVC/StackView.c b/Sources/ObjectivelyMVC/StackView.c index 3922d59e..a5a8a32f 100644 --- a/Sources/ObjectivelyMVC/StackView.c +++ b/Sources/ObjectivelyMVC/StackView.c @@ -293,7 +293,6 @@ static StackView *initWithFrame(StackView *self, const SDL_Rect *frame) { self = (StackView *) super(View, self, initWithFrame, frame); if (self) { - self->view.autoresizingMask = ViewAutoresizingContain; } return self; diff --git a/Sources/ObjectivelyMVC/TextView.c b/Sources/ObjectivelyMVC/TextView.c index 1c7742ce..df1ea0ec 100644 --- a/Sources/ObjectivelyMVC/TextView.c +++ b/Sources/ObjectivelyMVC/TextView.c @@ -436,7 +436,6 @@ static TextView *initWithFrame(TextView *self, const SDL_Rect *frame) { $((View *) self, addSubview, (View *) self->text); - self->control.view.clipsSubviews = true; } return self; From 8d9305e183fc63e91c7e0ca14abd7dbb141bdcc8 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 16:40:43 -0400 Subject: [PATCH 07/21] Warn when `left` or `top` is overruled by an alignment `left` and `top` position a View on an axis that layout leaves alone, so an axis that also has an alignment overwrites them on the next pass, silently. Authoring both is a mistake with no feedback: the rule parses, binds, and is then discarded. View::applyStyle now warns, per axis, so that an internally aligned View placed by `left` -- which is what Box does with its label -- stays quiet, having neither axis' bits set. Raised as WarningTypeStyle, which View::applyThemeIfNeeded already clears before each application, so it tracks the current Style rather than accumulating. Nothing in this tree or in Quetoo trips it today. --- Sources/ObjectivelyMVC/View.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index 22b7ed91..7d3ccf19 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -326,6 +326,20 @@ static void applyStyle(View *self, const Style *style) { $(self, bind, inlets, style->attributes); resolveHidden(self); + + // `left` and `top` place a View on an axis that layout leaves alone, so an axis that is + // aligned overwrites them on the next pass. Say so, rather than quietly discarding what was + // asked for. Per axis, which exempts an internally aligned View: it has neither axis' bits, + // and positioning one with `left` is exactly what Box does with its label. + if ((self->alignment & ViewAlignmentMaskHorizontal) && + $(style->attributes, objectForKeyPath, "left")) { + $(self, warn, WarningTypeStyle, "`left` is overruled by the horizontal `alignment`"); + } + + if ((self->alignment & ViewAlignmentMaskVertical) && + $(style->attributes, objectForKeyPath, "top")) { + $(self, warn, WarningTypeStyle, "`top` is overruled by the vertical `alignment`"); + } } /** From 8abca728a3e4db04828237b10a095bf07a6ece35 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 16:45:26 -0400 Subject: [PATCH 08/21] Move the styling rationale out of the function bodies and onto the declarations --- Sources/ObjectivelyMVC/Style.c | 3 --- Sources/ObjectivelyMVC/Style.h | 2 ++ Sources/ObjectivelyMVC/View.c | 4 ---- Sources/ObjectivelyMVC/View.h | 4 ++++ 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Sources/ObjectivelyMVC/Style.c b/Sources/ObjectivelyMVC/Style.c index 8e4951c6..41a3f8e2 100644 --- a/Sources/ObjectivelyMVC/Style.c +++ b/Sources/ObjectivelyMVC/Style.c @@ -211,7 +211,6 @@ static void addAttribute(Style *self, const char *attr, ident value) { */ static void addAttributes_enumerate(const Dictionary *dictionary, ident obj, ident key, ident data) { - // already a trimmed key, coming from another Style's attributes or from JSON setAttribute((Style *) data, ((String *) key)->chars, obj); } @@ -223,8 +222,6 @@ static void addAttributes(Style *self, const Dictionary *attributes) { assert(attributes); - // per attribute, rather than a bulk merge, so that a shorthand arriving from JSON or from - // another Style is expanded exactly as one from the parser is $(attributes, enumerateObjectsAndKeys, addAttributes_enumerate, self); } diff --git a/Sources/ObjectivelyMVC/Style.h b/Sources/ObjectivelyMVC/Style.h index 5bd28287..cc0c9559 100644 --- a/Sources/ObjectivelyMVC/Style.h +++ b/Sources/ObjectivelyMVC/Style.h @@ -90,6 +90,8 @@ struct StyleInterface { * @brief Adds or replaces the attribtues in `attributes` to this Style. * @param self The Style. * @param attributes The attributes. + * @remarks Added one at a time, so that a shorthand arriving from JSON or from another Style + * is expanded into its longhands exactly as one from a stylesheet is. * @memberof Style */ void (*addAttributes)(Style *self, const Dictionary *attributes); diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index 7d3ccf19..093824e2 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -327,10 +327,6 @@ static void applyStyle(View *self, const Style *style) { resolveHidden(self); - // `left` and `top` place a View on an axis that layout leaves alone, so an axis that is - // aligned overwrites them on the next pass. Say so, rather than quietly discarding what was - // asked for. Per axis, which exempts an internally aligned View: it has neither axis' bits, - // and positioning one with `left` is exactly what Box does with its label. if ((self->alignment & ViewAlignmentMaskHorizontal) && $(style->attributes, objectForKeyPath, "left")) { $(self, warn, WarningTypeStyle, "`left` is overruled by the horizontal `alignment`"); diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index 38e9d79f..f753b8f2 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -955,6 +955,10 @@ struct ViewInterface { * offering `ViewConstraintEqual` for a `ViewAutoresizingWidth`/`Height` subview (since this * View's bounds are already final) or `ViewConstraintUnspecified` otherwise (so the subview * sizes itself from its own content). + * @remarks It positions an axis only where the subview's View::alignment names one. An axis + * with no alignment keeps whatever `left` or `top` gave it, or whatever an owner positioning + * its own subviews put there, as Select does for its open flyout and CollectionView for its + * items. * @memberof View */ void (*layoutSubviews)(View *self); From bd34261e1d909e056dc38c3c84398abaf7e46af2 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 16:53:31 -0400 Subject: [PATCH 09/21] Put per-instance styling on the View's own Style, and honor a change to it The values left in C were not class defaults and had no Selector to move to: a colour picker's swatch takes the colour being picked, an Input's alignments follow its orientation, and a ViewController's root View is a plain View no rule can name. They now go into each View's own Style, which is where an instance's authored values belong and, being merged last, is the one layer a Style resolution can never overwrite. That did not work before. View::applyTheme skips applying when the same Selectors still match, and a change to View::style changes no Selector, so the element level was in practice write-once: the picker's swatch kept its first colour. View::invalidateStyle now marks the View as needing its Style applied whatever the Selectors say, which is what callers were already asking for by invalidating. --- Sources/ObjectivelyMVC/HSVColorPicker.c | 4 +++- Sources/ObjectivelyMVC/HueColorPicker.c | 4 +++- Sources/ObjectivelyMVC/Input.c | 21 +++++++++++++++------ Sources/ObjectivelyMVC/RGBColorPicker.c | 4 +++- Sources/ObjectivelyMVC/TabViewController.c | 3 ++- Sources/ObjectivelyMVC/View.c | 7 ++++++- Sources/ObjectivelyMVC/View.h | 9 +++++++++ Sources/ObjectivelyMVC/ViewController.c | 3 ++- 8 files changed, 43 insertions(+), 12 deletions(-) diff --git a/Sources/ObjectivelyMVC/HSVColorPicker.c b/Sources/ObjectivelyMVC/HSVColorPicker.c index f882677f..c303e49f 100644 --- a/Sources/ObjectivelyMVC/HSVColorPicker.c +++ b/Sources/ObjectivelyMVC/HSVColorPicker.c @@ -124,7 +124,9 @@ static void updateBindings(View *self, ident data) { $(this->saturationSlider, setValue, this->saturation); $(this->valueSlider, setValue, this->value); - this->colorView->backgroundColor = $(this, rgbColor); + const SDL_Color color = $(this, rgbColor); + $(this->colorView->style, addColorAttribute, "background-color", &color); + $(this->colorView, invalidateStyle); } #pragma mark - HSVColorPicker diff --git a/Sources/ObjectivelyMVC/HueColorPicker.c b/Sources/ObjectivelyMVC/HueColorPicker.c index 9b0a146f..c2f99896 100644 --- a/Sources/ObjectivelyMVC/HueColorPicker.c +++ b/Sources/ObjectivelyMVC/HueColorPicker.c @@ -105,7 +105,9 @@ static void updateBindings(View *self, ident data) { $(this->hueSlider, setValue, this->hue); - this->colorView->backgroundColor = $(this, rgbColor); + const SDL_Color color = $(this, rgbColor); + $(this->colorView->style, addColorAttribute, "background-color", &color); + $(this->colorView, invalidateStyle); } #pragma mark - HueColorPicker diff --git a/Sources/ObjectivelyMVC/Input.c b/Sources/ObjectivelyMVC/Input.c index c7d9606c..19ce05ce 100644 --- a/Sources/ObjectivelyMVC/Input.c +++ b/Sources/ObjectivelyMVC/Input.c @@ -168,23 +168,32 @@ static void setOrientation(Input *self, InputOrientation orientation) { switch (self->orientation) { case InputOrientationLeft: self->stackView.axis = StackViewAxisHorizontal; - self->label->view.alignment = ViewAlignmentMiddleLeft; - self->control->view.alignment = ViewAlignmentMiddleRight; + $(((View *) self->label)->style, addEnumAttribute, "alignment", + ViewAlignmentNames, ViewAlignmentMiddleLeft); + $(((View *) self->control)->style, addEnumAttribute, "alignment", + ViewAlignmentNames, ViewAlignmentMiddleRight); break; case InputOrientationRight: self->stackView.axis = StackViewAxisHorizontal; - self->label->view.alignment = ViewAlignmentMiddleRight; - self->control->view.alignment = ViewAlignmentMiddleLeft; + $(((View *) self->label)->style, addEnumAttribute, "alignment", + ViewAlignmentNames, ViewAlignmentMiddleRight); + $(((View *) self->control)->style, addEnumAttribute, "alignment", + ViewAlignmentNames, ViewAlignmentMiddleLeft); break; case InputOrientationAbove: case InputOrientationBelow: self->stackView.axis = StackViewAxisVertical; - self->label->view.alignment = ViewAlignmentMiddleCenter; - self->control->view.alignment = ViewAlignmentMiddleCenter; + $(((View *) self->label)->style, addEnumAttribute, "alignment", + ViewAlignmentNames, ViewAlignmentMiddleCenter); + $(((View *) self->control)->style, addEnumAttribute, "alignment", + ViewAlignmentNames, ViewAlignmentMiddleCenter); break; } + + $((View *) self->label, invalidateStyle); + $((View *) self->control, invalidateStyle); } #pragma mark - Class lifecycle diff --git a/Sources/ObjectivelyMVC/RGBColorPicker.c b/Sources/ObjectivelyMVC/RGBColorPicker.c index f82582b5..72b13588 100644 --- a/Sources/ObjectivelyMVC/RGBColorPicker.c +++ b/Sources/ObjectivelyMVC/RGBColorPicker.c @@ -132,7 +132,9 @@ static void updateBindings(View *self, ident data) { $(this->blueSlider, setValue, this->color.b); $(this->alphaSlider, setValue, this->color.a); - this->colorView->backgroundColor = this->color; + const SDL_Color color = this->color; + $(this->colorView->style, addColorAttribute, "background-color", &color); + $(this->colorView, invalidateStyle); } #pragma mark - RGBColorPicker diff --git a/Sources/ObjectivelyMVC/TabViewController.c b/Sources/ObjectivelyMVC/TabViewController.c index 227f60e0..5c9280cf 100644 --- a/Sources/ObjectivelyMVC/TabViewController.c +++ b/Sources/ObjectivelyMVC/TabViewController.c @@ -50,7 +50,8 @@ static void loadView(ViewController *self) { super(ViewController, self, loadView); - self->view->autoresizingMask = ViewAutoresizingContain; + $(self->view->style, addEnumAttribute, "autoresizing-mask", ViewAutoresizingNames, + ViewAutoresizingContain); TabViewController *this = (TabViewController *) self; diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index 093824e2..ada0e8ad 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -349,13 +349,15 @@ static void applyTheme(View *self, const Theme *theme) { Style *computedStyle = $(theme, computeStyle, self); assert(computedStyle); - if (!$(self->computedStyle, isComputedEqual, computedStyle)) { + if (self->needsApplyStyle || !$(self->computedStyle, isComputedEqual, computedStyle)) { release(self->computedStyle); self->computedStyle = retain(computedStyle); $(self->computedStyle, addAttributes, self->style->attributes); $(self, applyStyle, self->computedStyle); + + self->needsApplyStyle = false; } release(computedStyle); @@ -1091,6 +1093,9 @@ static View *initWithFrame(View *self, const SDL_Rect *frame) { * @brief ViewEnumerator for invalidateStyle. */ static void invalidateStyle_enumerate(View *view, ident data) { + + view->needsApplyStyle = true; + $(view, setNeedsApplyTheme); } diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index f753b8f2..d68cbbee 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -340,6 +340,15 @@ struct View { */ bool needsApplyTheme; + /** + * @brief If true, this View's Style must be applied even if the same Selectors still match. + * @remarks Set by View::invalidateStyle, which is how a change to View::style asks to be + * seen: the Selectors that matched are unchanged, so View::applyTheme's comparison cannot + * tell that anything happened. + * @private + */ + bool needsApplyStyle; + /** * @brief If true, a descendant of this View has `needsApplyTheme` set. * @remarks Maintained by View::setNeedsApplyTheme; View::applyThemeIfNeeded only descends diff --git a/Sources/ObjectivelyMVC/ViewController.c b/Sources/ObjectivelyMVC/ViewController.c index 0eec28c4..3696b312 100644 --- a/Sources/ObjectivelyMVC/ViewController.c +++ b/Sources/ObjectivelyMVC/ViewController.c @@ -100,7 +100,8 @@ static void loadView(ViewController *self) { View *view = $(alloc(View), initWithFrame, NULL); assert(view); - view->autoresizingMask = ViewAutoresizingFill; + $(view->style, addEnumAttribute, "autoresizing-mask", ViewAutoresizingNames, + ViewAutoresizingFill); $(self, setView, view); release(view); From 92794a904e7a231d7dce67c131a509ec83c7cc00 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 16:55:23 -0400 Subject: [PATCH 10/21] Remove dumbfuck comments. --- Sources/ObjectivelyMVC/Style.h | 2 -- Sources/ObjectivelyMVC/View.h | 24 ++++++++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Sources/ObjectivelyMVC/Style.h b/Sources/ObjectivelyMVC/Style.h index cc0c9559..5bd28287 100644 --- a/Sources/ObjectivelyMVC/Style.h +++ b/Sources/ObjectivelyMVC/Style.h @@ -90,8 +90,6 @@ struct StyleInterface { * @brief Adds or replaces the attribtues in `attributes` to this Style. * @param self The Style. * @param attributes The attributes. - * @remarks Added one at a time, so that a shorthand arriving from JSON or from another Style - * is expanded into its longhands exactly as one from a stylesheet is. * @memberof Style */ void (*addAttributes)(Style *self, const Dictionary *attributes); diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index d68cbbee..23c79c68 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -634,6 +634,22 @@ struct ViewInterface { */ bool (*bind)(View *self, const Inlet *inlets, const Dictionary *dictionary); + /** + * @fn bool View::bindStyle(View *self, const Inlet *inlets, const Style *style) + * @brief Resolves the Inlets of `style`, writing every one of them. + * @param self The View. + * @param inlets The Inlets to resolve, declared with MakeStyleInlet. + * @param style The Style to resolve from. + * @return True if any Inlet's value actually changed. + * @remarks Subclasses call this from View::applyStyle for the properties a Style owns. An + * Inlet the Style does not specify takes its initial value rather than keeping the last one, + * so a Selector that stops matching stops applying. The frame is the exception: `left`, + * `top`, `width` and `height` are shared with layout and with any owner that positions its + * own subviews, so they are bound with View::bind, only when a Style provides them. + * @memberof View + */ + bool (*bindStyle)(View *self, const Inlet *inlets, const Style *style); + /** * @fn SDL_Rect View::bounds(const View *self) * @param self The View. @@ -960,14 +976,6 @@ struct ViewInterface { * This method is called by View::layoutIfNeeded only after a View::sizeThatSatisfies pass has * already resolved `self->frame`; it must not perform any sizing of its own, only positioning * and committing of subview frames. - * @remarks The default implementation resolves each subview's size via View::layoutWithConstraint, - * offering `ViewConstraintEqual` for a `ViewAutoresizingWidth`/`Height` subview (since this - * View's bounds are already final) or `ViewConstraintUnspecified` otherwise (so the subview - * sizes itself from its own content). - * @remarks It positions an axis only where the subview's View::alignment names one. An axis - * with no alignment keeps whatever `left` or `top` gave it, or whatever an owner positioning - * its own subviews put there, as Select does for its open flyout and CollectionView for its - * items. * @memberof View */ void (*layoutSubviews)(View *self); From 97c65a52269da35e80bf5292705fb1563a2ecadc Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 19:03:37 -0400 Subject: [PATCH 11/21] Codify the style defaults in the stylesheet instead of in code A Style that stopped matching went on applying: View::applyStyle wrote the properties the cascade provided and left the rest holding whatever the last Style had set. A closed Select kept the padding its open flyout had. The defaults are declarations now. The universal selector carries View's, at a specificity below every other rule, and a type selector carries each subclass's: a deeper type outranks its superclass, so Select's `selection: single` beats Control's `selection: none` for a Select. Every application therefore starts from the same place and the cascade decides the whole result. Nothing may assign a styled property in C any more, since the cascade overwrites it. Input's axis, Select's selection and ScrollView::setScrollBarVisibility each did, and each now goes through a Style; Input's axis is what put every Checkbox and Slider under its label. The frame is not among them. `left`, `top`, `width` and `height` share it with layout and with any owner that positions its own subviews, so they are bound only when a Style provides them. --- Assets/stylesheet.css | 29 + Assets/stylesheet.css.h | 954 +++++++++++++++------------- Sources/ObjectivelyMVC/Input.c | 43 +- Sources/ObjectivelyMVC/ScrollView.c | 7 +- Sources/ObjectivelyMVC/Select.c | 2 - Sources/ObjectivelyMVC/View.h | 16 - 6 files changed, 558 insertions(+), 493 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index 565b4f90..3de2a17b 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -1,6 +1,19 @@ * { + alignment: none; + autoresizing-mask: none; background-color: transparent; + background-gradient-angle: 180; + background-gradient-color: transparent; + border-color: transparent; + border-radius: 0; border-width: 0; + clips-subviews: false; + corner-cut: 0; + max-size: 2147483647 2147483647; + min-size: 0 0; + padding: 0; + pointer-events: true; + visibility: unspecified; } Box { @@ -95,8 +108,11 @@ CollectionItemView:selected > .selectionOverlay { } CollectionView { + axis: vertical; background-color: #22222266; + item-size: 0 0; item-size: 64 64; + item-spacing: 0 0; item-spacing: 10 10; } @@ -106,8 +122,12 @@ CollectionView .contentView { } Control { + bevel-dark-color: black; + bevel-light-color: silver; + bevel: none; border-radius: 4; min-height: 32; + selection: none; selection: single; } @@ -162,7 +182,9 @@ Panel { background-color: #444444dd; border-color: #dedede; border-width: 1; + draggable: true; padding: 12 12 12 12; + resizable: true; } Panel > StackView { @@ -213,6 +235,7 @@ ScrollBar > .handle { ScrollView { autoresizing-mask: fill; clips-subviews: true; + scrollbar: auto; } ScrollView > .scrollBar { @@ -229,6 +252,7 @@ Select { background-color: #dedede10; bevel: outset; padding: 4 4 4 4; + selection: single; } Select > StackView { @@ -272,6 +296,10 @@ SlideShowView > ImageView { StackView { autoresizing-mask: contain; + axis: vertical; + distribution: default; + reversed: false; + spacing: 0; } StackView.container { @@ -349,6 +377,7 @@ TextView { background-color: #22222266; bevel: inset; clips-subviews: true; + editable: true; min-width: 160; padding: 4 4 4 4; } diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index d3c516f9..39265697 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -1,489 +1,543 @@ unsigned char stylesheet_css[] = { - 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, - 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, - 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, - 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x30, 0x20, 0x38, 0x20, 0x30, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, - 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, - 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x3a, 0x20, 0x31, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x67, 0x72, + 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x2d, 0x63, 0x75, 0x74, + 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x32, 0x31, 0x34, 0x37, 0x34, 0x38, 0x33, + 0x36, 0x34, 0x37, 0x20, 0x32, 0x31, 0x34, 0x37, 0x34, 0x38, 0x33, 0x36, + 0x34, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, + 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, + 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, + 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, + 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x38, 0x20, 0x30, + 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, + 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, + 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x20, + 0x38, 0x20, 0x38, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, + 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x2a, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, + 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, + 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, + 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, + 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, + 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x32, 0x32, + 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, - 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, - 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, 0x39, 0x39, 0x39, 0x39, + 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, + 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, + 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, - 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, - 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, - 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, + 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, + 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, - 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, - 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, - 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, - 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, - 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x52, - 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, - 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, + 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, + 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, + 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, + 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, + 0x6c, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, + 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x54, + 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, + 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, + 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, - 0x65, 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x6e, - 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, + 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3e, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, - 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, + 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, + 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x67, 0x61, 0x62, + 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, + 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, + 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, + 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, + 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, + 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x54, + 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, + 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, + 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, - 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, - 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, - 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, - 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, - 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, - 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, - 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, - 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, - 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, - 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, + 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, + 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, + 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, + 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, + 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, + 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, - 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, - 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x3e, - 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, + 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, + 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, + 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, - 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, - 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, + 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, - 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, - 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, - 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, - 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, - 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, - 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, - 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, - 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, + 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, + 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, - 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, - 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, - 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, - 0x76, 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, - 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x31, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, + 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, + 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, - 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, - 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, - 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, - 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, - 0x65, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, + 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, 0x68, 0x2d, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x29, 0x20, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, + 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x53, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, - 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, - 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, - 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, - 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, - 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, - 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, - 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, - 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, + 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, + 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, + 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, - 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, + 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, + 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, - 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, + 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, + 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, + 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, + 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, + 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, - 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, - 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 + 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, + 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 5829; +unsigned int stylesheet_css_len = 6478; diff --git a/Sources/ObjectivelyMVC/Input.c b/Sources/ObjectivelyMVC/Input.c index 19ce05ce..4b72adee 100644 --- a/Sources/ObjectivelyMVC/Input.c +++ b/Sources/ObjectivelyMVC/Input.c @@ -148,52 +148,49 @@ static void setOrientation(Input *self, InputOrientation orientation) { self->orientation = orientation; - $((View *) self->control, removeFromSuperview); - $((View *) self->label, removeFromSuperview); + View *this = (View *) self, *label = (View *) self->label, *control = (View *) self->control; + + $(control, removeFromSuperview); + $(label, removeFromSuperview); switch (self->orientation) { case InputOrientationLeft: case InputOrientationAbove: - $((View *) self, addSubview, (View *) self->label); - $((View *) self, addSubview, (View *) self->control); + $(this, addSubview, label); + $(this, addSubview, control); break; case InputOrientationRight: case InputOrientationBelow: - $((View *) self, addSubview, (View *) self->control); - $((View *) self, addSubview, (View *) self->label); + $(this, addSubview, control); + $(this, addSubview, label); break; } switch (self->orientation) { case InputOrientationLeft: - self->stackView.axis = StackViewAxisHorizontal; - $(((View *) self->label)->style, addEnumAttribute, "alignment", - ViewAlignmentNames, ViewAlignmentMiddleLeft); - $(((View *) self->control)->style, addEnumAttribute, "alignment", - ViewAlignmentNames, ViewAlignmentMiddleRight); + $(this->style, addEnumAttribute, "axis", StackViewAxisNames, StackViewAxisHorizontal); + $(label->style, addEnumAttribute, "alignment", ViewAlignmentNames, ViewAlignmentMiddleLeft); + $(control->style, addEnumAttribute, "alignment", ViewAlignmentNames, ViewAlignmentMiddleRight); break; case InputOrientationRight: - self->stackView.axis = StackViewAxisHorizontal; - $(((View *) self->label)->style, addEnumAttribute, "alignment", - ViewAlignmentNames, ViewAlignmentMiddleRight); - $(((View *) self->control)->style, addEnumAttribute, "alignment", - ViewAlignmentNames, ViewAlignmentMiddleLeft); + $(this->style, addEnumAttribute, "axis", StackViewAxisNames, StackViewAxisHorizontal); + $(label->style, addEnumAttribute, "alignment", ViewAlignmentNames, ViewAlignmentMiddleRight); + $(control->style, addEnumAttribute, "alignment", ViewAlignmentNames, ViewAlignmentMiddleLeft); break; case InputOrientationAbove: case InputOrientationBelow: - self->stackView.axis = StackViewAxisVertical; - $(((View *) self->label)->style, addEnumAttribute, "alignment", - ViewAlignmentNames, ViewAlignmentMiddleCenter); - $(((View *) self->control)->style, addEnumAttribute, "alignment", - ViewAlignmentNames, ViewAlignmentMiddleCenter); + $(this->style, addEnumAttribute, "axis", StackViewAxisNames, StackViewAxisVertical); + $(label->style, addEnumAttribute, "alignment", ViewAlignmentNames, ViewAlignmentMiddleCenter); + $(control->style, addEnumAttribute, "alignment", ViewAlignmentNames, ViewAlignmentMiddleCenter); break; } - $((View *) self->label, invalidateStyle); - $((View *) self->control, invalidateStyle); + $(this, invalidateStyle); + $(label, invalidateStyle); + $(control, invalidateStyle); } #pragma mark - Class lifecycle diff --git a/Sources/ObjectivelyMVC/ScrollView.c b/Sources/ObjectivelyMVC/ScrollView.c index eebedb32..6a49e7e5 100644 --- a/Sources/ObjectivelyMVC/ScrollView.c +++ b/Sources/ObjectivelyMVC/ScrollView.c @@ -241,8 +241,11 @@ static void setContentView(ScrollView *self, View *contentView) { */ static void setScrollBarVisibility(ScrollView *self, ScrollBarVisibility visibility) { - self->scrollBarVisibility = visibility; - $((View *) self, setNeedsLayout); + View *this = (View *) self; + + $(this->style, addEnumAttribute, "scrollbar", ScrollBarVisibilityNames, visibility); + + $(this, invalidateStyle); } #pragma mark - Class lifecycle diff --git a/Sources/ObjectivelyMVC/Select.c b/Sources/ObjectivelyMVC/Select.c index 4ac0bddb..f93be788 100644 --- a/Sources/ObjectivelyMVC/Select.c +++ b/Sources/ObjectivelyMVC/Select.c @@ -308,8 +308,6 @@ static Select *initWithFrame(Select *self, const SDL_Rect *frame) { self = (Select *) super(Control, self, initWithFrame, frame); if (self) { - self->control.selection = ControlSelectionSingle; - self->options = $$(Array, arrayWithCapacity, 8); assert(self->options); diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index 23c79c68..f107c247 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -634,22 +634,6 @@ struct ViewInterface { */ bool (*bind)(View *self, const Inlet *inlets, const Dictionary *dictionary); - /** - * @fn bool View::bindStyle(View *self, const Inlet *inlets, const Style *style) - * @brief Resolves the Inlets of `style`, writing every one of them. - * @param self The View. - * @param inlets The Inlets to resolve, declared with MakeStyleInlet. - * @param style The Style to resolve from. - * @return True if any Inlet's value actually changed. - * @remarks Subclasses call this from View::applyStyle for the properties a Style owns. An - * Inlet the Style does not specify takes its initial value rather than keeping the last one, - * so a Selector that stops matching stops applying. The frame is the exception: `left`, - * `top`, `width` and `height` are shared with layout and with any owner that positions its - * own subviews, so they are bound with View::bind, only when a Style provides them. - * @memberof View - */ - bool (*bindStyle)(View *self, const Inlet *inlets, const Style *style); - /** * @fn SDL_Rect View::bounds(const View *self) * @param self The View. From d0a1ca6047d247c1f0b845402249e98b1e8f3ae4 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 17:44:26 -0400 Subject: [PATCH 12/21] Make an unset maxSize and pointer-events mean their defaults Both defaults had to be written in C because neither was zero, which is the whole reason View::initWithFrame still knew anything about styling. A maxSize of zero now means unbounded, per axis, through ViewClampSize. A View capped at nothing is not a View anyone wants; hiding it is what they meant. `max-width: 460` alone therefore leaves the height free, as it reads. pointer-events becomes auto or none, as it is in CSS, rather than a bool whose default was true. `pointer-events: none` says what it does, where `pointer-events: false` had to be read twice. Nothing outside this stylesheet used either spelling. --- Assets/stylesheet.css | 4 +- Assets/stylesheet.css.h | 975 ++++++++++++++--------------- Sources/ObjectivelyMVC/StackView.c | 4 +- Sources/ObjectivelyMVC/View.c | 23 +- Sources/ObjectivelyMVC/View.h | 27 +- 5 files changed, 525 insertions(+), 508 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index 3de2a17b..d83d09e3 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -9,10 +9,10 @@ border-width: 0; clips-subviews: false; corner-cut: 0; - max-size: 2147483647 2147483647; + max-size: 0 0; min-size: 0 0; padding: 0; - pointer-events: true; + pointer-events: auto; visibility: unspecified; } diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index 39265697..cfcb0a65 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -22,522 +22,521 @@ unsigned char stylesheet_css[] = { 0x65, 0x77, 0x73, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x2d, 0x63, 0x75, 0x74, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, 0x73, - 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x32, 0x31, 0x34, 0x37, 0x34, 0x38, 0x33, - 0x36, 0x34, 0x37, 0x20, 0x32, 0x31, 0x34, 0x37, 0x34, 0x38, 0x33, 0x36, - 0x34, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, - 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, - 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, - 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, - 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x65, - 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x38, 0x20, 0x30, - 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, - 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, - 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, - 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, - 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, - 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x20, - 0x38, 0x20, 0x38, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, - 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x2a, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, - 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, - 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, - 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, - 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, - 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, 0x39, 0x39, 0x39, 0x39, - 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, - 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, - 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, + 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, - 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, + 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, + 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x30, 0x20, 0x38, 0x20, 0x30, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, - 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, - 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, - 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, - 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, - 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, - 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, - 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, - 0x6c, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, - 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, - 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x54, - 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, - 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x7b, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, - 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, - 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, - 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, - 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, - 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, - 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x32, 0x32, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, + 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3e, - 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, - 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, - 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x67, 0x61, 0x62, - 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, - 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, - 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, + 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, - 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x48, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, - 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, - 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, - 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x54, - 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, - 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, - 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, - 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, - 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, - 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, - 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, - 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, - 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, + 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, + 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, + 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, - 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, - 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, - 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, - 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, - 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x23, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, - 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, - 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, - 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, + 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, + 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, + 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, + 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, + 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, + 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, + 0x65, 0x6c, 0x2d, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, + 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, + 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, + 0x63, 0x6b, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, + 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x72, - 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, - 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, - 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, - 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, - 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, - 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, 0x68, 0x2d, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x29, 0x20, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, - 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, - 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x53, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, - 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, + 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, - 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, - 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, - 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x64, + 0x72, 0x61, 0x67, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, + 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, + 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, - 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, + 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, + 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, + 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x61, 0x72, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, - 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, + 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, + 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, - 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, - 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, - 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, + 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, + 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, + 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, + 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, + 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, + 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, + 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, + 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, + 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, + 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, - 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, + 0x77, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, + 0x65, 0x76, 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, + 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x31, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, + 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, + 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, + 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, + 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, + 0x2d, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, - 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 + 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, + 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, + 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, + 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, + 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, + 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, + 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, + 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, + 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, + 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, + 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, + 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, + 0x3b, 0x0a, 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 6478; +unsigned int stylesheet_css_len = 6460; diff --git a/Sources/ObjectivelyMVC/StackView.c b/Sources/ObjectivelyMVC/StackView.c index a5a8a32f..09b6f1fe 100644 --- a/Sources/ObjectivelyMVC/StackView.c +++ b/Sources/ObjectivelyMVC/StackView.c @@ -277,8 +277,8 @@ static SDL_Size sizeThatFits(const View *self) { release(subviews); - size.w = clamp(size.w, self->minSize.w, self->maxSize.w); - size.h = clamp(size.h, self->minSize.h, self->maxSize.h); + size.w = ViewClampSize(size.w, self->minSize.w, self->maxSize.w); + size.h = ViewClampSize(size.h, self->minSize.h, self->maxSize.h); return size; } diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index ada0e8ad..6fac005e 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -49,6 +49,11 @@ void MVC_InvalidateRenderFrames(void) { } } +const EnumName ViewPointerEventsNames[] = MakeEnumNames( + MakeEnumAlias(ViewPointerEventsAuto, auto), + MakeEnumAlias(ViewPointerEventsNone, none) +); + const EnumName ViewVisibilityNames[] = MakeEnumNames( MakeEnumAlias(ViewVisibilityUnspecified, unspecified), MakeEnumAlias(ViewVisibilityVisible, visible), @@ -317,7 +322,7 @@ static void applyStyle(View *self, const Style *style) { MakeInlet("padding-right", InletTypeInteger, &self->padding.right, NULL), MakeInlet("padding-bottom", InletTypeInteger, &self->padding.bottom, NULL), MakeInlet("padding-left", InletTypeInteger, &self->padding.left, NULL), - MakeInlet("pointer-events", InletTypeBool, &self->pointerEvents, NULL), + MakeInlet("pointer-events", InletTypeEnum, &self->pointerEvents, (ident) ViewPointerEventsNames), MakeInlet("top", InletTypeInteger, &self->frame.y, NULL), MakeInlet("visibility", InletTypeEnum, &self->visibility, (ident) ViewVisibilityNames), MakeInlet("width", InletTypeInteger, &self->frame.w, NULL) @@ -1035,7 +1040,7 @@ static View *hitTest(const View *self, const SDL_Point *point) { } } - return self->pointerEvents ? (View *) self : NULL; + return self->pointerEvents == ViewPointerEventsAuto ? (View *) self : NULL; } } @@ -1079,8 +1084,6 @@ static View *initWithFrame(View *self, const SDL_Rect *frame) { assert(self->warnings); self->backgroundGradientAngle = 180; - self->maxSize = MakeSize(INT32_MAX, INT32_MAX); - self->pointerEvents = true; self->needsApplyTheme = true; self->needsLayout = true; @@ -1709,8 +1712,8 @@ static void resignTouchResponder(View *self) { */ static void resize(View *self, const SDL_Size *size) { - const int w = clamp(size->w, self->minSize.w, self->maxSize.w); - const int h = clamp(size->h, self->minSize.h, self->maxSize.h); + const int w = ViewClampSize(size->w, self->minSize.w, self->maxSize.w); + const int h = ViewClampSize(size->h, self->minSize.h, self->maxSize.h); if (self->frame.w != w || self->frame.h != h) { @@ -1944,8 +1947,8 @@ static SDL_Size sizeThatFits(const View *self) { } - size.w = clamp(size.w, self->minSize.w, self->maxSize.w); - size.h = clamp(size.h, self->minSize.h, self->maxSize.h); + size.w = ViewClampSize(size.w, self->minSize.w, self->maxSize.w); + size.h = ViewClampSize(size.h, self->minSize.h, self->maxSize.h); return size; } @@ -1981,8 +1984,8 @@ static SDL_Size sizeThatSatisfies(View *self, ViewConstraint width, ViewConstrai size.w = resolveViewConstraint(self->autoresizingMask & ViewAutoresizingWidth, width, size.w); size.h = resolveViewConstraint(self->autoresizingMask & ViewAutoresizingHeight, height, size.h); - size.w = clamp(size.w, self->minSize.w, self->maxSize.w); - size.h = clamp(size.h, self->minSize.h, self->maxSize.h); + size.w = ViewClampSize(size.w, self->minSize.w, self->maxSize.w); + size.h = ViewClampSize(size.h, self->minSize.h, self->maxSize.h); return size; } diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index f107c247..1a93e36b 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -97,6 +97,22 @@ typedef enum { OBJECTIVELYMVC_EXPORT const EnumName ViewAutoresizingNames[]; +/** + * @brief Clamps `size` to `min` and `max`, where a `max` of zero is unbounded. + */ +#define ViewClampSize(size, min, max) \ + clamp((size), (min), (max) ? (max) : INT32_MAX) + +/** + * @brief Whether a View is the result of a hit test. + */ +typedef enum { + ViewPointerEventsAuto, + ViewPointerEventsNone +} ViewPointerEvents; + +OBJECTIVELYMVC_EXPORT const EnumName ViewPointerEventsNames[]; + /** * @brief Visibility constants, used to hide a View from styling. * @remarks Separate from View::hidden, which an owner sets directly and which is derived from @@ -385,14 +401,13 @@ struct View { ViewPadding padding; /** - * @brief If `false`, this View is never the result of a hit test; its subviews still are. - * @remarks Defaults to `true`. Overlays that are drawn but never interacted with, such as a - * full-window HUD or console layer stacked above interactive content, SHOULD set this to - * `false` so that clicks pass through them to whatever lies beneath. Styled as - * `pointer-events: false`. + * @brief Whether this View is the result of a hit test; its subviews always are. + * @remarks An overlay that is drawn but never interacted with, such as a full-window HUD or + * console layer stacked above interactive content, SHOULD be `none` so that clicks pass + * through it to whatever lies beneath. Styled as `pointer-events`. * @see View::hitTest(const View *, const SDL_Point *) */ - bool pointerEvents; + ViewPointerEvents pointerEvents; /** * @brief The cached View::renderFrame, valid while `generation` matches the current From 82dd0cf792a5188019c404da581f81756fcc912f Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 17:52:19 -0400 Subject: [PATCH 13/21] Measure the gradient angle from south, so that its default is zero The angle was measured clockwise from north, which made `180` the sensible default and left View::initWithFrame writing one styled property in C. Measuring from south puts `0` at the same place, and View::initWithFrame now sets no styled property at all: the stylesheet holds every default. Only the vertical axis moves. `90` is still to the right and `270` still to the left, so the gradients in Quetoo's chrome HUD, which are all one or the other, are unaffected. --- Assets/stylesheet.css | 2 +- Assets/stylesheet.css.h | 994 +++++++++++++++--------------- Sources/ObjectivelyMVC/Renderer.c | 4 +- Sources/ObjectivelyMVC/Renderer.h | 6 +- Sources/ObjectivelyMVC/View.c | 2 - Sources/ObjectivelyMVC/View.h | 4 +- 6 files changed, 505 insertions(+), 507 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index d83d09e3..0ad328cf 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -2,7 +2,7 @@ alignment: none; autoresizing-mask: none; background-color: transparent; - background-gradient-angle: 180; + background-gradient-angle: 0; background-gradient-color: transparent; border-color: transparent; border-radius: 0; diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index cfcb0a65..fd3b07ee 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -8,535 +8,535 @@ unsigned char stylesheet_css[] = { 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x61, 0x6e, 0x67, - 0x6c, 0x65, 0x3a, 0x20, 0x31, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x67, 0x72, - 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, - 0x65, 0x77, 0x73, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x2d, 0x63, 0x75, 0x74, - 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, 0x73, - 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, - 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, - 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, - 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, - 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x30, 0x20, 0x38, 0x20, 0x30, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, - 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, - 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x32, 0x32, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, - 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, - 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, + 0x6c, 0x65, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x67, 0x72, 0x61, 0x64, + 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, + 0x73, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x2d, 0x63, 0x75, 0x74, 0x3a, 0x20, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x3a, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, - 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, - 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, + 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, - 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, - 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x3e, 0x20, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, - 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, - 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, - 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, - 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, - 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, - 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, - 0x31, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, + 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, + 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, + 0x20, 0x38, 0x20, 0x30, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, + 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, - 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, - 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, - 0x65, 0x6c, 0x2d, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, - 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, - 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, - 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, - 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, - 0x63, 0x6b, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, - 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x32, 0x32, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x69, 0x67, + 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x20, 0x3e, 0x20, 0x2a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, - 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, - 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, - 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, + 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x3a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, + 0x39, 0x39, 0x39, 0x39, 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, + 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, + 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, + 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x3e, 0x20, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x36, + 0x34, 0x20, 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, + 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x64, 0x61, + 0x72, 0x6b, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x6c, + 0x61, 0x63, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, + 0x2d, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, + 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, + 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, + 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, + 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x64, - 0x72, 0x61, 0x67, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, - 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, - 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, + 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, - 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, - 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x61, 0x72, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, + 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, - 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, - 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, - 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, - 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, + 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, - 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, - 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x72, 0x61, + 0x67, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, + 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, + 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, + 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, + 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, + 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, + 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, + 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, + 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, + 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, + 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, + 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, + 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, + 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, + 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, + 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, + 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, - 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, - 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, - 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, + 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, + 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, + 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, - 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, + 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, - 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, - 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, - 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, - 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, - 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, - 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, - 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, - 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, - 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, - 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, - 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, - 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, - 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, - 0x77, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, - 0x65, 0x76, 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x31, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, + 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, + 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, - 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, - 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, - 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, - 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, - 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x2d, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, + 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, - 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, - 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, - 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, - 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, - 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, - 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, - 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, - 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, - 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, - 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, - 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, - 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, - 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, + 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, + 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, + 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, + 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, + 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, + 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, + 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, - 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, - 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, - 0x3b, 0x0a, 0x7d, 0x0a, 0x00 + 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, + 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 6460; +unsigned int stylesheet_css_len = 6458; diff --git a/Sources/ObjectivelyMVC/Renderer.c b/Sources/ObjectivelyMVC/Renderer.c index be0b108f..65b84f47 100644 --- a/Sources/ObjectivelyMVC/Renderer.c +++ b/Sources/ObjectivelyMVC/Renderer.c @@ -161,7 +161,7 @@ static SDL_FRect textureRegion(const Texture *texture, const SDL_Rect *src) { /** * @brief The color at `x, y` for a gradient of `angle` degrees across `bounds`. - * @details `angle` is measured clockwise from north, so `0` fills upwards and `90` to the + * @details `angle` is measured clockwise from south, so `0` fills downwards and `90` to the * right. The interpolant is the point's projection onto the gradient axis, normalized by the * extent of `bounds` along that axis, which makes the color an affine function of position: * barycentric interpolation across the triangle then reproduces the gradient exactly, at any @@ -171,7 +171,7 @@ static SDL_Color gradientColor(float x, float y, const SDL_FRect *bounds, int an const SDL_Color *from, const SDL_Color *to) { const float radians = float_radians((float) angle); - const float dx = sinf(radians), dy = -cosf(radians); + const float dx = sinf(radians), dy = cosf(radians); const float cx = bounds->x + bounds->w * 0.5f; const float cy = bounds->y + bounds->h * 0.5f; diff --git a/Sources/ObjectivelyMVC/Renderer.h b/Sources/ObjectivelyMVC/Renderer.h index 0dcb4d65..57d2b0e0 100644 --- a/Sources/ObjectivelyMVC/Renderer.h +++ b/Sources/ObjectivelyMVC/Renderer.h @@ -255,7 +255,7 @@ struct RendererInterface { * @param self The Renderer. * @param points The points, in order. * @param count The number of points; fewer than three draws nothing. - * @param angle The gradient angle in degrees, clockwise from north. Ignored when `to` is + * @param angle The gradient angle in degrees, clockwise from south. Ignored when `to` is * `NULL`. * @param from The fill color, and the near color of the gradient. * @param to The far color of the gradient, or `NULL` to fill flat with `from`. @@ -313,8 +313,8 @@ struct RendererInterface { * @param self The Renderer. * @param rect The rectangle. * @param radius The corner radius. - * @param angle The gradient angle in degrees, clockwise from north: `0` fills upwards, - * `90` to the right, `180` downwards. + * @param angle The gradient angle in degrees, clockwise from south: `0` fills downwards, + * `90` to the right, `180` upwards. * @param from The near color of the gradient. * @param to The far color of the gradient. * @memberof Renderer diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index 6fac005e..0332b869 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -1083,8 +1083,6 @@ static View *initWithFrame(View *self, const SDL_Rect *frame) { self->warnings = $$(Array, arrayWithCapacity, 0); assert(self->warnings); - self->backgroundGradientAngle = 180; - self->needsApplyTheme = true; self->needsLayout = true; } diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index 1a93e36b..90246edb 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -252,8 +252,8 @@ struct View { SDL_Color backgroundColor; /** - * @brief The angle of the background gradient, in degrees, clockwise from north: `0` fills - * upwards, `90` to the right, `180` (the default) downwards. + * @brief The angle of the background gradient, in degrees, clockwise from south: `0` (the + * default) fills downwards, `90` to the right, `180` upwards. */ int backgroundGradientAngle; From dd0b2a8c9e95974ea4b6a802ac49c985213e81ea Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 17:56:13 -0400 Subject: [PATCH 14/21] Give the Select its selection at construction, and style the HUD example Two things the stylesheet defaults broke, both from code reading or writing a styled property outside the cascade. Select::addOption selects the first option when nothing is selected yet, and asks Control::selection whether it may. Options are added as a Select is built, before any Theme reaches it, so the answer was the zero value and no option was ever selected until the user picked one. It sets its own selection again at construction; the stylesheet keeps it through a restyle. The HUD example built its whole interface in C, assigning alignment, autoresizing-mask, axis and spacing directly, and the universal selector now overwrites all four. It sets them on each View's own Style instead, which is what a consumer with no stylesheet of its own should do. --- Examples/HUD.c | 23 +++++++++++++---------- Sources/ObjectivelyMVC/Select.c | 2 ++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Examples/HUD.c b/Examples/HUD.c index 879d4859..2b607e95 100644 --- a/Examples/HUD.c +++ b/Examples/HUD.c @@ -76,7 +76,7 @@ static AppState application; static Label *label(View *superview, const char *text, ViewAlignment alignment) { Label *label = $(alloc(Label), initWithText, text, NULL); - label->view.alignment = alignment; + $(label->view.style, addEnumAttribute, "alignment", ViewAlignmentNames, alignment); $(superview, addSubview, (View *) label); release(label); @@ -90,9 +90,10 @@ static Label *label(View *superview, const char *text, ViewAlignment alignment) static StackView *stackView(View *superview, ViewAlignment alignment) { StackView *stack = $(alloc(StackView), initWithFrame, NULL); - stack->view.alignment = alignment; - stack->view.autoresizingMask = ViewAutoresizingContain; - stack->spacing = 4; + $(stack->view.style, addEnumAttribute, "alignment", ViewAlignmentNames, alignment); + $(stack->view.style, addEnumAttribute, "autoresizing-mask", ViewAutoresizingNames, + ViewAutoresizingContain); + $(stack->view.style, addIntegerAttribute, "spacing", 4); $(superview, addSubview, (View *) stack); release(stack); @@ -139,7 +140,7 @@ static void buildHUD(AppState *app, View *root) { // Ten solid segments sharing the Renderer's white texture: with a shared scissor these // collapse into one draw call, so their count is the direct check that merging works. StackView *segments = stackView(root, ViewAlignmentBottomCenter); - segments->axis = StackViewAxisHorizontal; + $(segments->view.style, addEnumAttribute, "axis", StackViewAxisNames, StackViewAxisHorizontal); for (int i = 0; i < 10; i++) { View *segment = $(alloc(View), initWithFrame, &MakeRect(0, 0, 24, 8)); @@ -150,7 +151,7 @@ static void buildHUD(AppState *app, View *root) { // Eight icons of varied sizes packed into one atlas: one draw call for the whole row StackView *icons = stackView(root, ViewAlignmentTopRight); - icons->axis = StackViewAxisHorizontal; + $(icons->view.style, addEnumAttribute, "axis", StackViewAxisNames, StackViewAxisHorizontal); Theme *theme = app->windowController->theme; @@ -181,15 +182,17 @@ static void buildHUD(AppState *app, View *root) { app->chat = stackView(root, ViewAlignmentTopLeft); Panel *scoreboard = $(alloc(Panel), initWithFrame, NULL); - scoreboard->control.view.alignment = ViewAlignmentMiddleCenter; + $(scoreboard->control.view.style, addEnumAttribute, "alignment", ViewAlignmentNames, + ViewAlignmentMiddleCenter); const int rows = 8; for (int i = 0; i < rows; i++) { StackView *row = $(alloc(StackView), initWithFrame, NULL); - row->axis = StackViewAxisHorizontal; - row->spacing = 32; - row->view.autoresizingMask = ViewAutoresizingContain; + $(row->view.style, addEnumAttribute, "axis", StackViewAxisNames, StackViewAxisHorizontal); + $(row->view.style, addIntegerAttribute, "spacing", 32); + $(row->view.style, addEnumAttribute, "autoresizing-mask", ViewAutoresizingNames, + ViewAutoresizingContain); Label *name = $(alloc(Label), initWithText, "Player", NULL); $(name->text, setTextWithFormat, "Player %d", i + 1); diff --git a/Sources/ObjectivelyMVC/Select.c b/Sources/ObjectivelyMVC/Select.c index f93be788..4ac0bddb 100644 --- a/Sources/ObjectivelyMVC/Select.c +++ b/Sources/ObjectivelyMVC/Select.c @@ -308,6 +308,8 @@ static Select *initWithFrame(Select *self, const SDL_Rect *frame) { self = (Select *) super(Control, self, initWithFrame, frame); if (self) { + self->control.selection = ControlSelectionSingle; + self->options = $$(Array, arrayWithCapacity, 8); assert(self->options); From 6eaa85628d777f06e23bd5fdd7f3fca9c45763f9 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 17:58:45 -0400 Subject: [PATCH 15/21] Mark the styled properties with a @styled alias Doxygen has no @readonly, so this is an ALIAS: @styled expands to a remark saying the property is set from a Style and overwritten by the next one applied, and to assign View::style or a stylesheet rule rather than the field. Thirty one properties carry it, across the eight classes that style any. View::frame does not: `left`, `top`, `width` and `height` are bound only when a Style provides them, because layout and any owner positioning its own subviews write it too. --- Doxyfile | 2 +- Sources/ObjectivelyMVC/CollectionView.h | 3 +++ Sources/ObjectivelyMVC/Control.h | 4 ++++ Sources/ObjectivelyMVC/Panel.h | 2 ++ Sources/ObjectivelyMVC/ScrollView.h | 1 + Sources/ObjectivelyMVC/StackView.h | 4 ++++ Sources/ObjectivelyMVC/Text.h | 1 + Sources/ObjectivelyMVC/TextView.h | 1 + Sources/ObjectivelyMVC/View.h | 15 +++++++++++++++ 9 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Doxyfile b/Doxyfile index 3eec3b8d..373f2c97 100644 --- a/Doxyfile +++ b/Doxyfile @@ -228,7 +228,7 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = +ALIASES = "styled=@remark **Styled.** Set from a Style, and overwritten by the next one applied. Assign View::style, or a stylesheet rule, rather than this field." # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" diff --git a/Sources/ObjectivelyMVC/CollectionView.h b/Sources/ObjectivelyMVC/CollectionView.h index c8c5e7c7..a5555a2d 100644 --- a/Sources/ObjectivelyMVC/CollectionView.h +++ b/Sources/ObjectivelyMVC/CollectionView.h @@ -130,6 +130,7 @@ struct CollectionView { /** * @brief The layout axis. + * @styled */ CollectionViewAxis axis; @@ -155,11 +156,13 @@ struct CollectionView { /** * @brief The item size. + * @styled */ SDL_Size itemSize; /** * @brief The item spacing. + * @styled */ SDL_Size itemSpacing; diff --git a/Sources/ObjectivelyMVC/Control.h b/Sources/ObjectivelyMVC/Control.h index 10daf62d..af5d0b6b 100644 --- a/Sources/ObjectivelyMVC/Control.h +++ b/Sources/ObjectivelyMVC/Control.h @@ -95,16 +95,19 @@ struct Control { /** * @brief The ControlBevel. + * @styled */ ControlBevel bevel; /** * @brief The bevel color for the shadowed edges. + * @styled */ SDL_Color bevelDarkColor; /** * @brief The bevel color for the lit edges. + * @styled */ SDL_Color bevelLightColor; @@ -115,6 +118,7 @@ struct Control { /** * @brief The ControlSelection. + * @styled */ ControlSelection selection; }; diff --git a/Sources/ObjectivelyMVC/Panel.h b/Sources/ObjectivelyMVC/Panel.h index a5b5ade3..3d45cb76 100644 --- a/Sources/ObjectivelyMVC/Panel.h +++ b/Sources/ObjectivelyMVC/Panel.h @@ -70,6 +70,7 @@ struct Panel { /** * @brief If true, this Panel may be repositioned by the user. + * @styled */ bool isDraggable; @@ -80,6 +81,7 @@ struct Panel { /** * @brief If true, this Panel may be resized by the user. + * @styled */ bool isResizable; diff --git a/Sources/ObjectivelyMVC/ScrollView.h b/Sources/ObjectivelyMVC/ScrollView.h index f9a37302..b92e2d57 100644 --- a/Sources/ObjectivelyMVC/ScrollView.h +++ b/Sources/ObjectivelyMVC/ScrollView.h @@ -96,6 +96,7 @@ struct ScrollView { * @brief Governs whether the scrollbar is shown. Attribute `scrollbar`. * @details `ScrollBarAuto` (the default) shows it only when the content * View's height exceeds this ScrollView's own. + * @styled */ ScrollBarVisibility scrollBarVisibility; }; diff --git a/Sources/ObjectivelyMVC/StackView.h b/Sources/ObjectivelyMVC/StackView.h index 59807fe3..a2264fef 100644 --- a/Sources/ObjectivelyMVC/StackView.h +++ b/Sources/ObjectivelyMVC/StackView.h @@ -80,11 +80,13 @@ struct StackView { /** * @brief The axis. + * @styled */ StackViewAxis axis; /** * @brief The distribution. + * @styled */ StackViewDistribution distribution; @@ -92,11 +94,13 @@ struct StackView { * @brief If true, subviews are laid out in reverse order along View::axis. * @remarks The order of View::subviews, and so of hit testing and drawing, is unchanged; * only the positions along the axis are mirrored. + * @styled */ bool reversed; /** * @brief The subview spacing. + * @styled */ int spacing; }; diff --git a/Sources/ObjectivelyMVC/Text.h b/Sources/ObjectivelyMVC/Text.h index 280db155..b54a481f 100644 --- a/Sources/ObjectivelyMVC/Text.h +++ b/Sources/ObjectivelyMVC/Text.h @@ -143,6 +143,7 @@ struct Text { /** * @brief The text color. + * @styled */ SDL_Color color; diff --git a/Sources/ObjectivelyMVC/TextView.h b/Sources/ObjectivelyMVC/TextView.h index 3bb23f23..29c7c0cf 100644 --- a/Sources/ObjectivelyMVC/TextView.h +++ b/Sources/ObjectivelyMVC/TextView.h @@ -106,6 +106,7 @@ struct TextView { /** * @brief True if this TextView supports editing, false otherwise. + * @styled */ bool isEditable; diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index 90246edb..25767109 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -238,22 +238,26 @@ struct View { /** * @brief The alignment. + * @styled */ ViewAlignment alignment; /** * @brief The ViewAutoresizing bitmask. + * @styled */ int autoresizingMask; /** * @brief The background color. + * @styled */ SDL_Color backgroundColor; /** * @brief The angle of the background gradient, in degrees, clockwise from south: `0` (the * default) fills downwards, `90` to the right, `180` upwards. + * @styled */ int backgroundGradientAngle; @@ -261,21 +265,25 @@ struct View { * @brief The far color of the background gradient, which runs from View::backgroundColor. * @remarks The gradient is drawn only when this color has a non-zero alpha; otherwise the * background is a flat View::backgroundColor. + * @styled */ SDL_Color backgroundGradientColor; /** * @brief The border color. + * @styled */ SDL_Color borderColor; /** * @brief The corner radius applied to the background, border and bevel. + * @styled */ int borderRadius; /** * @brief The border width. + * @styled */ int borderWidth; @@ -297,6 +305,7 @@ struct View { /** * @brief If true, subviews will be clipped to this View's frame. + * @styled */ bool clipsSubviews; @@ -309,6 +318,7 @@ struct View { * @brief The horizontal inset of each corner of the background and border. * @remarks A View with any corner inset is drawn as a polygon rather than through the * rounded rectangle shader, so View::borderRadius does not apply to it. + * @styled */ ViewCornerCut cornerCut; @@ -340,11 +350,13 @@ struct View { /** * @brief The maximum size this View may be resized to during layout. + * @styled */ SDL_Size maxSize; /** * @brief The minimum size this View may be resized to during layout. + * @styled */ SDL_Size minSize; @@ -397,6 +409,7 @@ struct View { /** * @brief The padding. + * @styled */ ViewPadding padding; @@ -406,6 +419,7 @@ struct View { * console layer stacked above interactive content, SHOULD be `none` so that clicks pass * through it to whatever lies beneath. Styled as `pointer-events`. * @see View::hitTest(const View *, const SDL_Point *) + * @styled */ ViewPointerEvents pointerEvents; @@ -429,6 +443,7 @@ struct View { /** * @brief The `visibility` this View was most recently given via styling. * @remarks `unspecified`, the initial value, leaves View::hiddenByOwner deciding. + * @styled */ ViewVisibility visibility; From bd8d846c1d211320ae2a7329448537800a4750b2 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 19:03:48 -0400 Subject: [PATCH 16/21] Collapse hidden into View::visibility, set with View::setVisibility Two fields and a derived third said what one says. View::visibility is the whole story now; hiddenByOwner, the resolveHidden it existed for, and the ViewIsHidden macro that stood in for reading it are all gone, as no other View property has such a macro. View::setVisibility writes View::style as well as the field, the way ScrollView's setter does, so an owner's choice survives the next Style rather than needing a second field to defend it. That makes it imperative, and highest precedence, which is what the element level Style means. Panel hid its accessoryView with the old setHidden, which under that precedence no stylesheet could undo, and a dialog showing one is exactly what a stylesheet is for. It is a class default, and reads as one in Panel .accessoryView. --- Assets/stylesheet.css | 1 + Assets/stylesheet.css.h | 522 ++++++++++++++-------------- Examples/HUD.c | 6 +- Sources/ObjectivelyMVC/Box.c | 2 +- Sources/ObjectivelyMVC/PageView.c | 8 +- Sources/ObjectivelyMVC/Panel.c | 6 +- Sources/ObjectivelyMVC/ScrollView.c | 5 +- Sources/ObjectivelyMVC/Select.c | 6 +- Sources/ObjectivelyMVC/Slider.c | 2 +- Sources/ObjectivelyMVC/StackView.c | 4 +- Sources/ObjectivelyMVC/TableView.c | 2 +- Sources/ObjectivelyMVC/View.c | 61 ++-- Sources/ObjectivelyMVC/View.h | 51 +-- 13 files changed, 324 insertions(+), 352 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index 0ad328cf..af0cf1ad 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -196,6 +196,7 @@ Panel .accessoryView { autoresizing-mask: contain; axis: horizontal; spacing: 16; + visibility: hidden; } Panel > .resizeHandle { diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index fd3b07ee..a4145727 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -261,282 +261,284 @@ unsigned char stylesheet_css[] = { 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x76, + 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, - 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, - 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, - 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, - 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, - 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, - 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, - 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, - 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, + 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, - 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, + 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, + 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, + 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, + 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, + 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, + 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, + 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, - 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, + 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, + 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, 0x20, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, - 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, - 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, - 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, - 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, - 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, - 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, - 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, - 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, - 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, - 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, - 0x0a, 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, - 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, - 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, - 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, - 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, - 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, + 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, + 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, + 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, + 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, - 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, - 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, + 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, + 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, - 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, - 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, - 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, - 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, - 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, - 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, + 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, + 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, + 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, + 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, + 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, + 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, + 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, - 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, - 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, - 0x7d, 0x0a, 0x00 + 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, + 0x00 }; -unsigned int stylesheet_css_len = 6458; +unsigned int stylesheet_css_len = 6480; diff --git a/Examples/HUD.c b/Examples/HUD.c index 2b607e95..e859b124 100644 --- a/Examples/HUD.c +++ b/Examples/HUD.c @@ -208,7 +208,7 @@ static void buildHUD(AppState *app, View *root) { release(row); } - $((View *) scoreboard, setHidden, true); + $((View *) scoreboard, setVisibility, ViewVisibilityHidden); $(root, addSubview, (View *) scoreboard); release(scoreboard); @@ -263,7 +263,9 @@ static void updateHUD(AppState *app, Uint64 ticks) { if (ticks >= app->scoreboardDue) { app->scoreboardDue = ticks + 5000; - $((View *) app->scoreboard, setHidden, !app->scoreboard->control.view.hidden); + $((View *) app->scoreboard, setVisibility, + app->scoreboard->control.view.visibility == ViewVisibilityHidden + ? ViewVisibilityVisible : ViewVisibilityHidden); } } diff --git a/Sources/ObjectivelyMVC/Box.c b/Sources/ObjectivelyMVC/Box.c index cd05a39b..aa12fe46 100644 --- a/Sources/ObjectivelyMVC/Box.c +++ b/Sources/ObjectivelyMVC/Box.c @@ -76,7 +76,7 @@ static void layoutSubviews(View *self) { super(View, self, layoutSubviews); View *label = (View *) ((Box *) self)->label; - if (label->hidden == false) { + if (label->visibility != ViewVisibilityHidden) { const SDL_Size size = $(label, sizeThatContains); label->frame.y = -size.h * 0.5; diff --git a/Sources/ObjectivelyMVC/PageView.c b/Sources/ObjectivelyMVC/PageView.c index be74f1ac..be53aca7 100644 --- a/Sources/ObjectivelyMVC/PageView.c +++ b/Sources/ObjectivelyMVC/PageView.c @@ -52,7 +52,7 @@ static void addSubview(View *self, View *subview) { PageView *this = (PageView *) self; - $(subview, setHidden, true); + $(subview, setVisibility, ViewVisibilityHidden); if (this->currentPage == NULL) { $(this, setCurrentPage, subview); @@ -77,7 +77,7 @@ static void removeSubview(View *self, View *subview) { super(View, self, removeSubview, subview); - $(subview, setHidden, false); + $(subview, setVisibility, ViewVisibilityVisible); if (subview == this->currentPage) { $(this, setCurrentPage, NULL); @@ -117,9 +117,9 @@ static void setCurrentPage_enumerate(const Array *array, ident obj, ident data) View *subview = obj; if (subview == ((PageView *) data)->currentPage) { - $(subview, setHidden, false); + $(subview, setVisibility, ViewVisibilityVisible); } else { - $(subview, setHidden, true); + $(subview, setVisibility, ViewVisibilityHidden); } } diff --git a/Sources/ObjectivelyMVC/Panel.c b/Sources/ObjectivelyMVC/Panel.c index 58b696c9..436b7e17 100644 --- a/Sources/ObjectivelyMVC/Panel.c +++ b/Sources/ObjectivelyMVC/Panel.c @@ -119,7 +119,8 @@ static void layoutSubviews(View *self) { resizeHandle->frame.x = self->frame.w - resizeHandle->frame.w; resizeHandle->frame.y = self->frame.h - resizeHandle->frame.h; - $(resizeHandle, setHidden, !this->isResizable); + $(resizeHandle, setVisibility, + this->isResizable ? ViewVisibilityVisible : ViewVisibilityHidden); } #pragma mark - Control @@ -204,7 +205,7 @@ static SDL_Size contentSize(const Panel *self) { SDL_Size size = $(contentView, sizeThatContains); - if (accessoryView->hidden == false) { + if (accessoryView->visibility != ViewVisibilityHidden) { const SDL_Size accessorySize = $(accessoryView, sizeThatContains); size.h -= accessorySize.h + self->stackView->spacing; } @@ -246,7 +247,6 @@ static Panel *initWithFrame(Panel *self, const SDL_Rect *frame) { $((View *) self->accessoryView, addClassName, "accessoryView"); $((View *) self->accessoryView, addClassName, "container"); - $((View *) self->accessoryView, setHidden, true); $((View *) self->stackView, addSubview, (View *) self->accessoryView); diff --git a/Sources/ObjectivelyMVC/ScrollView.c b/Sources/ObjectivelyMVC/ScrollView.c index 6a49e7e5..a6f1ec89 100644 --- a/Sources/ObjectivelyMVC/ScrollView.c +++ b/Sources/ObjectivelyMVC/ScrollView.c @@ -106,7 +106,8 @@ static void layoutSubviews(View *self) { } } - $((View *) this->scrollBar, setHidden, scrollBarHidden); + $((View *) this->scrollBar, setVisibility, + scrollBarHidden ? ViewVisibilityHidden : ViewVisibilityVisible); super(View, self, layoutSubviews); @@ -171,7 +172,7 @@ static ScrollView *initWithFrame(ScrollView *self, const SDL_Rect *frame) { assert(self->scrollBar); View *scrollBar = (View *) self->scrollBar; - $(scrollBar, setHidden, true); + $(scrollBar, setVisibility, ViewVisibilityHidden); $((View *) self, addSubview, scrollBar); } diff --git a/Sources/ObjectivelyMVC/Select.c b/Sources/ObjectivelyMVC/Select.c index 4ac0bddb..14d9fc1f 100644 --- a/Sources/ObjectivelyMVC/Select.c +++ b/Sources/ObjectivelyMVC/Select.c @@ -71,11 +71,11 @@ static void layoutSubviews(View *self) { Option *option = $(options, objectAtIndex, i); if (option->isSelected) { - $((View *) option, setHidden, false); + $((View *) option, setVisibility, ViewVisibilityVisible); } else if ($(control, isHighlighted)) { - $((View *) option, setHidden, false); + $((View *) option, setVisibility, ViewVisibilityVisible); } else { - $((View *) option, setHidden, true); + $((View *) option, setVisibility, ViewVisibilityHidden); } } diff --git a/Sources/ObjectivelyMVC/Slider.c b/Sources/ObjectivelyMVC/Slider.c index decd2919..1a7b4001 100644 --- a/Sources/ObjectivelyMVC/Slider.c +++ b/Sources/ObjectivelyMVC/Slider.c @@ -101,7 +101,7 @@ static void layoutSubviews(View *self) { if (this->max > this->min) { - if (((View *) this->label)->hidden == false) { + if (((View *) this->label)->visibility != ViewVisibilityHidden) { int minWidth, maxWidth; char text[64]; diff --git a/Sources/ObjectivelyMVC/StackView.c b/Sources/ObjectivelyMVC/StackView.c index 09b6f1fe..19beb92d 100644 --- a/Sources/ObjectivelyMVC/StackView.c +++ b/Sources/ObjectivelyMVC/StackView.c @@ -277,8 +277,8 @@ static SDL_Size sizeThatFits(const View *self) { release(subviews); - size.w = ViewClampSize(size.w, self->minSize.w, self->maxSize.w); - size.h = ViewClampSize(size.h, self->minSize.h, self->maxSize.h); + size.w = ClampSize(size.w, self->minSize.w, self->maxSize.w); + size.h = ClampSize(size.h, self->minSize.h, self->maxSize.h); return size; } diff --git a/Sources/ObjectivelyMVC/TableView.c b/Sources/ObjectivelyMVC/TableView.c index b0c6195f..bbad6efd 100644 --- a/Sources/ObjectivelyMVC/TableView.c +++ b/Sources/ObjectivelyMVC/TableView.c @@ -102,7 +102,7 @@ static void layoutSubviews(View *self) { SDL_Rect frame = $(self, bounds); - if (headerView->hidden == false) { + if (headerView->visibility != ViewVisibilityHidden) { const SDL_Size size = $(headerView, sizeThatFits); diff --git a/Sources/ObjectivelyMVC/View.c b/Sources/ObjectivelyMVC/View.c index 0332b869..1bcca931 100644 --- a/Sources/ObjectivelyMVC/View.c +++ b/Sources/ObjectivelyMVC/View.c @@ -265,27 +265,6 @@ static View *ancestorWithIdentifier(const View *self, const char *identifier) { return NULL; } -/** - * @brief Resolves View::hidden from the styled visibility and the owner's choice. - * @remarks Styling wins where it says anything, so that a Selector can show or hide a View - * outright; where it says nothing, whatever the owner passed to View::setHidden stands. - */ -static void resolveHidden(View *self) { - - const bool hidden = self->visibility == ViewVisibilityUnspecified - ? self->hiddenByOwner - : self->visibility == ViewVisibilityHidden; - - if (self->hidden != hidden) { - - self->hidden = hidden; - - if (self->superview && $(self->superview, isContainer)) { - $(self->superview, setNeedsLayout); - } - } -} - /** * @fn void View::applyStyle(View *self, const Style *style) * @memberof View @@ -330,8 +309,6 @@ static void applyStyle(View *self, const Style *style) { $(self, bind, inlets, style->attributes); - resolveHidden(self); - if ((self->alignment & ViewAlignmentMaskHorizontal) && $(style->attributes, objectForKeyPath, "left")) { $(self, warn, WarningTypeStyle, "`left` is overruled by the horizontal `alignment`"); @@ -794,7 +771,7 @@ static void draw(View *self, Renderer *renderer) { assert(self->window); - if (self->hidden == false) { + if (self->visibility != ViewVisibilityHidden) { $(renderer, drawView, self); @@ -991,7 +968,7 @@ static void hasOverflow_enumerate(View *view, ident data) { Overflow *overflow = data; - if (!view->hidden) { + if (view->visibility != ViewVisibilityHidden) { const SDL_Rect bounds = $(view, bounds); @@ -1026,7 +1003,7 @@ static bool hasOverflow(const View *self) { */ static View *hitTest(const View *self, const SDL_Point *point) { - if (self->hidden == false) { + if (self->visibility != ViewVisibilityHidden) { if ($(self, containsPoint, point)) { @@ -1167,7 +1144,7 @@ static bool isTouchResponder(const View *self) { static bool isVisible(const View *self) { for (const View *view = self; view; view = view->superview) { - if (view->hidden) { + if (view->visibility == ViewVisibilityHidden) { return false; } } @@ -1710,8 +1687,8 @@ static void resignTouchResponder(View *self) { */ static void resize(View *self, const SDL_Size *size) { - const int w = ViewClampSize(size->w, self->minSize.w, self->maxSize.w); - const int h = ViewClampSize(size->h, self->minSize.h, self->maxSize.h); + const int w = ClampSize(size->w, self->minSize.w, self->maxSize.w); + const int h = ClampSize(size->h, self->minSize.h, self->maxSize.h); if (self->frame.w != w || self->frame.h != h) { @@ -1831,16 +1808,20 @@ static View *selectFirst(View *self, const char *rule) { } /** - * @fn void View::setHidden(View *self, bool hidden) + * @fn void View::setVisibility(View *self, ViewVisibility visibility) * @memberof View */ -static void setHidden(View *self, bool hidden) { +static void setVisibility(View *self, ViewVisibility visibility) { - if (self->hiddenByOwner != hidden) { + if (self->visibility != visibility) { - self->hiddenByOwner = hidden; + self->visibility = visibility; - resolveHidden(self); + $(self->style, addEnumAttribute, "visibility", ViewVisibilityNames, visibility); + + if (self->superview && $(self->superview, isContainer)) { + $(self->superview, setNeedsLayout); + } } } @@ -1945,8 +1926,8 @@ static SDL_Size sizeThatFits(const View *self) { } - size.w = ViewClampSize(size.w, self->minSize.w, self->maxSize.w); - size.h = ViewClampSize(size.h, self->minSize.h, self->maxSize.h); + size.w = ClampSize(size.w, self->minSize.w, self->maxSize.w); + size.h = ClampSize(size.h, self->minSize.h, self->maxSize.h); return size; } @@ -1982,8 +1963,8 @@ static SDL_Size sizeThatSatisfies(View *self, ViewConstraint width, ViewConstrai size.w = resolveViewConstraint(self->autoresizingMask & ViewAutoresizingWidth, width, size.w); size.h = resolveViewConstraint(self->autoresizingMask & ViewAutoresizingHeight, height, size.h); - size.w = ViewClampSize(size.w, self->minSize.w, self->maxSize.w); - size.h = ViewClampSize(size.h, self->minSize.h, self->maxSize.h); + size.w = ClampSize(size.w, self->minSize.w, self->maxSize.w); + size.h = ClampSize(size.h, self->minSize.h, self->maxSize.h); return size; } @@ -2167,7 +2148,7 @@ static bool visibleSubviews_filter(ident obj, ident data) { const View *view = (View *) obj; - return view->hidden == false && view->alignment != ViewAlignmentInternal; + return view->visibility != ViewVisibilityHidden && view->alignment != ViewAlignmentInternal; } /** @@ -2297,7 +2278,7 @@ static void initialize(Class *clazz) { ((ViewInterface *) clazz->interface)->respondToEvent = respondToEvent; ((ViewInterface *) clazz->interface)->select = _select; ((ViewInterface *) clazz->interface)->selectFirst = selectFirst; - ((ViewInterface *) clazz->interface)->setHidden = setHidden; + ((ViewInterface *) clazz->interface)->setVisibility = setVisibility; ((ViewInterface *) clazz->interface)->setNeedsApplyTheme = setNeedsApplyTheme; ((ViewInterface *) clazz->interface)->setNeedsLayout = setNeedsLayout; ((ViewInterface *) clazz->interface)->size = size; diff --git a/Sources/ObjectivelyMVC/View.h b/Sources/ObjectivelyMVC/View.h index 25767109..1f8c4118 100644 --- a/Sources/ObjectivelyMVC/View.h +++ b/Sources/ObjectivelyMVC/View.h @@ -100,7 +100,7 @@ OBJECTIVELYMVC_EXPORT const EnumName ViewAutoresizingNames[]; /** * @brief Clamps `size` to `min` and `max`, where a `max` of zero is unbounded. */ -#define ViewClampSize(size, min, max) \ +#define ClampSize(size, min, max) \ clamp((size), (min), (max) ? (max) : INT32_MAX) /** @@ -114,9 +114,7 @@ typedef enum { OBJECTIVELYMVC_EXPORT const EnumName ViewPointerEventsNames[]; /** - * @brief Visibility constants, used to hide a View from styling. - * @remarks Separate from View::hidden, which an owner sets directly and which is derived from - * this: a Style that says nothing about visibility leaves the owner's choice standing. + * @brief Visibility constants. */ typedef enum { ViewVisibilityUnspecified, @@ -124,6 +122,7 @@ typedef enum { ViewVisibilityHidden } ViewVisibility; + OBJECTIVELYMVC_EXPORT const EnumName ViewVisibilityNames[]; /** @@ -327,21 +326,6 @@ struct View { */ SDL_Rect frame; - /** - * @brief If `true`, this View is not drawn, and does not contribute to its superview's size. - * @remarks Derived, and not to be assigned: it resolves View::visibility against - * View::hiddenByOwner, so that styling wins where it says anything and the owner wins where - * it does not. - * @see View::setHidden(View *, bool) - */ - bool hidden; - - /** - * @brief Whether this View's owner has hidden it, via View::setHidden. - * @private - */ - bool hiddenByOwner; - /** * @brief An optional identifier. * @remarks Identifiers are commonly used to resolve Outlets when loading Views via JSON. @@ -440,13 +424,6 @@ struct View { */ Style *style; - /** - * @brief The `visibility` this View was most recently given via styling. - * @remarks `unspecified`, the initial value, leaves View::hiddenByOwner deciding. - * @styled - */ - ViewVisibility visibility; - /** * @brief An optional Stylesheet. * @remarks If set, this Stylesheet is added to or removed from the current Theme when this @@ -471,6 +448,14 @@ struct View { */ ViewController *viewController; + /** + * @brief Whether this View is drawn, and contributes to its superview's size. + * @remarks `unspecified` is visible. + * @see View::setVisibility(View *, ViewVisibility) + * @styled + */ + ViewVisibility visibility; + /** * @brief The Warnings this View generated. * @remarks These are optionally displayed by the DebugViewController. @@ -1201,16 +1186,16 @@ struct ViewInterface { View *(*selectFirst)(View *self, const char *rule); /** - * @fn void View::setHidden(View *self, bool hidden) - * @brief Sets this View's hidden state. + * @fn void View::setVisibility(View *self, ViewVisibility visibility) + * @brief Sets this View's visibility. * @param self The View. - * @param hidden The hidden state. - * @remarks Hiding or unhiding a View changes its superview's View::visibleSubviews, so this - * marks the superview `needsLayout` if it is a container; writing `self->hidden` directly does - * not. + * @param visibility The visibility. + * @remarks Callers MUST use this method rather than assigning View::visibility directly: it + * marks the superview `needsLayout` if it is a container, and writes View::style so that the + * choice outlives the next Style applied. * @memberof View */ - void (*setHidden)(View *self, bool hidden); + void (*setVisibility)(View *self, ViewVisibility visibility); /** * @fn void View::setNeedsApplyTheme(View *self) From 7f455b9bd6d9cf562a402f38df6234e0013d9cd6 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 14:47:55 -0400 Subject: [PATCH 17/21] v2.5.0 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 6532c7eb..ecbcc83c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ(2.69) -AC_INIT([ObjectivelyMVC], [2.4.7], [jay@jaydolan.com]) +AC_INIT([ObjectivelyMVC], [2.5.0], [jay@jaydolan.com]) AC_SUBST([RELEASE_VERSION], [m4_bpatsubst(AC_PACKAGE_VERSION, [\.[0-9]*$], [])]) AC_CONFIG_HEADERS([Sources/ObjectivelyMVC/Config.h]) From b46450d8b72c9108345afe4f631ca7aadae5a9cd Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 19:16:12 -0400 Subject: [PATCH 18/21] Bring the View tests and the ScrollView default in line with the cascade The View suite still spoke the pre-cascade API, so it did not compile and `make check` never ran on this branch: it called the removed setHidden, assigned pointerEvents a bool where the enum's zero is now `auto`, and sized a Contain view with the `width` and `height` attributes that min-width and min-height replaced. ScrollView::initWithFrame assigned scrollBarVisibility, which is @styled; the `ScrollView` rule in the stylesheet already supplies `scrollbar: auto`. Spell the Doxygen alias @remarks, as the rest of the headers do. --- Doxyfile | 2 +- Sources/ObjectivelyMVC/ScrollView.c | 1 - Tests/ObjectivelyMVC/View.c | 24 ++++++++++++------------ 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Doxyfile b/Doxyfile index 373f2c97..ed3c33b1 100644 --- a/Doxyfile +++ b/Doxyfile @@ -228,7 +228,7 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = "styled=@remark **Styled.** Set from a Style, and overwritten by the next one applied. Assign View::style, or a stylesheet rule, rather than this field." +ALIASES = "styled=@remarks **Styled.** Set from a Style, and overwritten by the next one applied. Assign View::style, or a stylesheet rule, rather than this field." # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" diff --git a/Sources/ObjectivelyMVC/ScrollView.c b/Sources/ObjectivelyMVC/ScrollView.c index a6f1ec89..b5e7b770 100644 --- a/Sources/ObjectivelyMVC/ScrollView.c +++ b/Sources/ObjectivelyMVC/ScrollView.c @@ -166,7 +166,6 @@ static ScrollView *initWithFrame(ScrollView *self, const SDL_Rect *frame) { self = (ScrollView *) super(Control, self, initWithFrame, frame); if (self) { self->step = 12.f; - self->scrollBarVisibility = ScrollBarAuto; self->scrollBar = $(alloc(ScrollBar), initWithScrollView, self); assert(self->scrollBar); diff --git a/Tests/ObjectivelyMVC/View.c b/Tests/ObjectivelyMVC/View.c index 6d8ce3e3..14720592 100644 --- a/Tests/ObjectivelyMVC/View.c +++ b/Tests/ObjectivelyMVC/View.c @@ -234,18 +234,17 @@ START_TEST(fillOnlyChildFillsContainBounds) { } END_TEST -START_TEST(styledSizeFloorsContainBoundsWithNoMinSize) { +START_TEST(minSizeFloorsContainBounds) { - // Mirrors Slider itself: a styled `width` is the only thing giving a Contain view with no - // sized content of its own (a bare `fill` leaf, contributing nothing) a real width -- with no - // minSize set at all, unlike fillOnlyChildFillsContainBounds above. + // Mirrors Slider itself: a styled `min-width` is the only thing giving a Contain view with no + // sized content of its own (a bare `fill` leaf, contributing nothing) a real width. View *outer = $(alloc(View), initWithFrame, NULL); outer->autoresizingMask = ViewAutoresizingContain; Style *style = $(alloc(Style), initWithAttributes, NULL); - $(style, addIntegerAttribute, "width", 140); - $(style, addIntegerAttribute, "height", 24); + $(style, addIntegerAttribute, "min-width", 140); + $(style, addIntegerAttribute, "min-height", 24); $(outer, applyStyle, style); release(style); @@ -266,9 +265,10 @@ START_TEST(styledSizeFloorsContainBoundsWithNoMinSize) { } END_TEST -START_TEST(setHiddenMarksSuperviewNeedsLayout) { +START_TEST(setVisibilityMarksSuperviewNeedsLayout) { StackView *stackView = $(alloc(StackView), initWithFrame, NULL); + stackView->view.autoresizingMask = ViewAutoresizingContain; View *a = fixedView(40, 20); View *b = fixedView(60, 30); @@ -278,7 +278,7 @@ START_TEST(setHiddenMarksSuperviewNeedsLayout) { $((View *) stackView, layoutIfNeeded); - $(a, setHidden, true); + $(a, setVisibility, ViewVisibilityHidden); $((View *) stackView, layoutIfNeeded); ck_assert_int_eq(60, stackView->view.frame.w); @@ -336,13 +336,13 @@ START_TEST(pointerEventsPassThroughToSubviewsAndSiblings) { ck_assert_ptr_eq(button, $(root, hitTest, &MakePoint(10, 10))); ck_assert_ptr_eq(overlay, $(root, hitTest, &MakePoint(300, 100))); - overlay->pointerEvents = false; + overlay->pointerEvents = ViewPointerEventsNone; ck_assert_ptr_eq(button, $(root, hitTest, &MakePoint(10, 10))); ck_assert_ptr_eq(beneath, $(root, hitTest, &MakePoint(300, 100))); Style *style = $(alloc(Style), initWithRules, "View"); - $(style, addBoolAttribute, "pointer-events", true); + $(style, addEnumAttribute, "pointer-events", ViewPointerEventsNames, ViewPointerEventsAuto); $(overlay, applyStyle, style); release(style); @@ -365,8 +365,8 @@ int main(int argc, char **argv) { tcase_add_test(tcase, stackViewMeasuresFreshNotStale); tcase_add_test(tcase, standaloneRelayoutDoesNotShrinkFillChild); tcase_add_test(tcase, fillOnlyChildFillsContainBounds); - tcase_add_test(tcase, styledSizeFloorsContainBoundsWithNoMinSize); - tcase_add_test(tcase, setHiddenMarksSuperviewNeedsLayout); + tcase_add_test(tcase, minSizeFloorsContainBounds); + tcase_add_test(tcase, setVisibilityMarksSuperviewNeedsLayout); tcase_add_test(tcase, alignedContainChildRecentersOnGrowth); tcase_add_test(tcase, pointerEventsPassThroughToSubviewsAndSiblings); From b3b3463cc3ccb2476f94575b11040a14fda3066c Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 21:33:29 -0400 Subject: [PATCH 19/21] Hide only the Panel's own accessory view, not everything wearing the class The accessory view starts hidden until a Panel is given something to put in it, which was an assignment in Panel::initWithFrame until the cascade took the styled properties over. Moving it to `Panel .accessoryView` made it a property of the class name, and consumers wear that name on views of their own to pick up its layout -- so all of those went hidden too. Address the Panel's own by where the Panel puts it instead, leaving the class name to carry the layout it is worn for. --- Assets/stylesheet.css | 8 + Assets/stylesheet.css.h | 551 +++++++++++++++++++++------------------- 2 files changed, 293 insertions(+), 266 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index af0cf1ad..d50c4263 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -196,6 +196,14 @@ Panel .accessoryView { autoresizing-mask: contain; axis: horizontal; spacing: 16; +} + +/* + * A Panel shows its own accessory view only once something is put in it. The class name is a + * layout a consumer may wear anywhere, so this addresses the Panel's own by where it sits. + */ + +Panel > StackView > .accessoryView { visibility: hidden; } diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index a4145727..0498b36a 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -261,284 +261,303 @@ unsigned char stylesheet_css[] = { 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, - 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x41, 0x20, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x79, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, + 0x20, 0x69, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x20, 0x61, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x20, 0x6d, 0x61, + 0x79, 0x20, 0x77, 0x65, 0x61, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x73, 0x20, 0x6f, + 0x77, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x69, 0x74, 0x20, 0x73, 0x69, 0x74, 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, + 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, + 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, + 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, + 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, + 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, + 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x72, 0x3a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, + 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, + 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, + 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, - 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, - 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, - 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, - 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, - 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, 0x72, 0x6f, - 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, + 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, + 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, + 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, + 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, + 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, + 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, + 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, - 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, - 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, - 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, + 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, + 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, - 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, - 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, + 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, + 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x0a, 0x20, - 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, 0x20, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, - 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, - 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, - 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, - 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, - 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, - 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, - 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, - 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, - 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, - 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, - 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, + 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, + 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, + 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, - 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, - 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, - 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, + 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, + 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, - 0x00 + 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, + 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, + 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, + 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, + 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, + 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, + 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, + 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, + 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, + 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 6480; +unsigned int stylesheet_css_len = 6714; From 16df2ad95f3866c5880ad4bd15ad1ef8ed6d42b6 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 21:37:07 -0400 Subject: [PATCH 20/21] Style a ViewController's root View rather than writing its element style ViewController::loadView wrote `autoresizing-mask: fill` into the View's own style, which the cascade merges last, so no stylesheet could override it: a controller whose view is a page measured by its content, or a panel of its own, was stuck filling its parent. A `fill` child measures as nothing to a `contain` parent, so a TabView of such pages collapsed, and the Panel around it closed up on its tab bar. The root View takes the class name `viewController` and the stylesheet gives that `fill`, which a consumer's own rule can outrank. --- Assets/stylesheet.css | 10 + Assets/stylesheet.css.h | 662 ++++++++++++------------ Sources/ObjectivelyMVC/ViewController.c | 3 +- 3 files changed, 356 insertions(+), 319 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index d50c4263..b07605b2 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -171,6 +171,16 @@ Option > Text { alignment: middle-left; } +/* + * A ViewController's own root View fills its parent, which is what a controller pushed onto a + * window or added to another wants. A rule rather than the element style, so that a controller + * whose view is a panel of its own, or a page measured by its content, can say so. + */ + +.viewController { + autoresizing-mask: fill; +} + PageView { autoresizing-mask: contain; border-color: #888888; diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index 0498b36a..1df2c52d 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -226,338 +226,366 @@ unsigned char stylesheet_css[] = { 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, - 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x41, + 0x20, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x27, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x72, 0x6f, + 0x6f, 0x74, 0x20, 0x56, 0x69, 0x65, 0x77, 0x20, 0x66, 0x69, 0x6c, 0x6c, + 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x77, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x0a, 0x20, 0x2a, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x77, 0x61, 0x6e, 0x74, 0x73, 0x2e, 0x20, 0x41, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2c, 0x20, 0x73, 0x6f, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x2a, 0x20, 0x77, 0x68, + 0x6f, 0x73, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x69, 0x74, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x73, + 0x61, 0x79, 0x20, 0x73, 0x6f, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, 0x0a, 0x0a, + 0x2e, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, + 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, + 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, + 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x67, 0x61, 0x62, 0x6c, + 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, + 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, + 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, + 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x0a, 0x20, 0x2a, + 0x20, 0x41, 0x20, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x73, 0x68, 0x6f, + 0x77, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x20, 0x76, 0x69, 0x65, + 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x20, + 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x74, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x0a, 0x20, 0x2a, 0x20, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x77, 0x65, 0x61, + 0x72, 0x20, 0x61, 0x6e, 0x79, 0x77, 0x68, 0x65, 0x72, 0x65, 0x2c, 0x20, + 0x73, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x27, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x79, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x74, 0x20, 0x73, 0x69, + 0x74, 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, + 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, + 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, + 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x72, 0x61, - 0x67, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, - 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, - 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, - 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, - 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x41, 0x20, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x79, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, - 0x20, 0x69, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x20, 0x61, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x20, 0x6d, 0x61, - 0x79, 0x20, 0x77, 0x65, 0x61, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x73, 0x20, 0x6f, - 0x77, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x69, 0x74, 0x20, 0x73, 0x69, 0x74, 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, - 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, - 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, - 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, + 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, + 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, + 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, - 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, - 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, - 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, - 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, - 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, - 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, + 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, + 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, + 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, + 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, - 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, - 0x72, 0x3a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, - 0x20, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, - 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, - 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, + 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, + 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, - 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, - 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, - 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, - 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, - 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, - 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, - 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, - 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, - 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, + 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, 0x20, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, - 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, - 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, - 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, - 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, - 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, - 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, - 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, - 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, - 0x73, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, - 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, - 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, - 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, - 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, - 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, - 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, - 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, - 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, - 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, - 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, - 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, - 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, - 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, + 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, + 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, + 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, - 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, - 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, - 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, - 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, - 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, - 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, - 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, - 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, + 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, + 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, + 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, + 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, + 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, + 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, + 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, - 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, - 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, - 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, - 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, - 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, - 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 + 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, + 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, + 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, + 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, + 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, + 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, + 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 6714; +unsigned int stylesheet_css_len = 7045; diff --git a/Sources/ObjectivelyMVC/ViewController.c b/Sources/ObjectivelyMVC/ViewController.c index 3696b312..660af250 100644 --- a/Sources/ObjectivelyMVC/ViewController.c +++ b/Sources/ObjectivelyMVC/ViewController.c @@ -100,8 +100,7 @@ static void loadView(ViewController *self) { View *view = $(alloc(View), initWithFrame, NULL); assert(view); - $(view->style, addEnumAttribute, "autoresizing-mask", ViewAutoresizingNames, - ViewAutoresizingFill); + $(view, addClassName, "viewController"); $(self, setView, view); release(view); From efb48ee3f3370f799691402f6836ddafca9288b1 Mon Sep 17 00:00:00 2001 From: Jay Dolan Date: Wed, 9 Sep 2026 22:02:43 -0400 Subject: [PATCH 21/21] Stop a Checkbox changing size when it is checked The box holds a 12 pixel check in 4 pixels of padding, so it contains at 20 -- but its floor was 18, which is what it fell to whenever the check was hidden. Selecting a checkbox grew it by two pixels and shifted whatever was laid out beside it. --- Assets/stylesheet.css | 6 +- Assets/stylesheet.css.h | 939 ++++++++++++++++++++-------------------- 2 files changed, 477 insertions(+), 468 deletions(-) diff --git a/Assets/stylesheet.css b/Assets/stylesheet.css index b07605b2..e7a2c21c 100644 --- a/Assets/stylesheet.css +++ b/Assets/stylesheet.css @@ -73,13 +73,15 @@ Checkbox:selected ImageView { visibility: visible; } +/* The box holds a 12 check in 4 of padding, so 20 is the size it takes once one is in it */ + Checkbox > Control { alignment: middle-center; autoresizing-mask: contain; background-color: #22222266; bevel: inset; - min-height: 18; - min-width: 18; + min-height: 20; + min-width: 20; padding: 4 4 4 4; } diff --git a/Assets/stylesheet.css.h b/Assets/stylesheet.css.h index 1df2c52d..b9de1c9f 100644 --- a/Assets/stylesheet.css.h +++ b/Assets/stylesheet.css.h @@ -96,496 +96,503 @@ unsigned char stylesheet_css[] = { 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, - 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, - 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, - 0x39, 0x39, 0x39, 0x39, 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, - 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x78, 0x20, 0x68, 0x6f, 0x6c, + 0x64, 0x73, 0x20, 0x61, 0x20, 0x31, 0x32, 0x20, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x20, 0x69, 0x6e, 0x20, 0x34, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x32, 0x30, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x69, 0x74, 0x20, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x20, 0x6f, 0x6e, + 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x69, 0x74, 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x3e, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, - 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, - 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, - 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x3e, 0x20, - 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x32, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x32, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, + 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, - 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, - 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, - 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x36, - 0x34, 0x20, 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, - 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, - 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x64, 0x61, - 0x72, 0x6b, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x6c, - 0x61, 0x63, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, - 0x2d, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, - 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, - 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, - 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x36, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, 0x39, 0x39, + 0x39, 0x39, 0x39, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, + 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, + 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, + 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, + 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, + 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, + 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, + 0x65, 0x6d, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x36, 0x34, 0x20, + 0x36, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, + 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2d, 0x73, 0x70, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, + 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x64, 0x61, 0x72, 0x6b, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x6c, 0x61, 0x63, + 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x2d, 0x6c, + 0x69, 0x67, 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, + 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, 0x3b, + 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, - 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, - 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, + 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x0a, 0x52, 0x47, + 0x42, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x48, 0x53, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, + 0x77, 0x2c, 0x0a, 0x48, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x50, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x56, 0x69, 0x65, 0x77, 0x2c, 0x0a, 0x52, 0x47, 0x42, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x2e, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, + 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, - 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x41, - 0x20, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x27, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x72, 0x6f, - 0x6f, 0x74, 0x20, 0x56, 0x69, 0x65, 0x77, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x77, + 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, + 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x41, 0x20, 0x56, + 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x27, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x72, 0x6f, 0x6f, 0x74, + 0x20, 0x56, 0x69, 0x65, 0x77, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x73, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x77, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x72, 0x20, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x74, 0x6f, 0x20, 0x61, 0x0a, 0x20, 0x2a, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x77, + 0x61, 0x6e, 0x74, 0x73, 0x2e, 0x20, 0x41, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x0a, 0x20, 0x2a, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x77, 0x61, 0x6e, 0x74, 0x73, 0x2e, 0x20, 0x41, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2c, 0x20, 0x73, 0x6f, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x2a, 0x20, 0x77, 0x68, - 0x6f, 0x73, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x69, 0x74, 0x73, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x73, - 0x61, 0x79, 0x20, 0x73, 0x6f, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, 0x0a, 0x0a, - 0x2e, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, - 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, - 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, - 0x34, 0x34, 0x64, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, - 0x65, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, - 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x67, 0x61, 0x62, 0x6c, - 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, - 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, - 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, - 0x65, 0x6c, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, - 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, + 0x6c, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x2a, 0x20, 0x77, 0x68, 0x6f, 0x73, + 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x70, + 0x61, 0x67, 0x65, 0x20, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x69, 0x74, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x73, 0x61, 0x79, + 0x20, 0x73, 0x6f, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x2e, 0x76, + 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, + 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, + 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, + 0x64, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, + 0x65, 0x64, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x3a, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x20, 0x31, 0x32, 0x20, + 0x31, 0x32, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, + 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x31, 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x0a, 0x20, 0x2a, - 0x20, 0x41, 0x20, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x73, 0x68, 0x6f, - 0x77, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x20, 0x76, 0x69, 0x65, - 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x20, - 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x74, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x0a, 0x20, 0x2a, 0x20, 0x6c, - 0x61, 0x79, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x77, 0x65, 0x61, - 0x72, 0x20, 0x61, 0x6e, 0x79, 0x77, 0x68, 0x65, 0x72, 0x65, 0x2c, 0x20, - 0x73, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x27, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x79, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x74, 0x20, 0x73, 0x69, - 0x74, 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x50, 0x61, 0x6e, - 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, - 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, - 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, + 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x36, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x41, + 0x20, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x6f, + 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x74, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x72, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x77, 0x65, 0x61, 0x72, 0x20, + 0x61, 0x6e, 0x79, 0x77, 0x68, 0x65, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x27, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x74, 0x20, 0x73, 0x69, 0x74, 0x73, + 0x2e, 0x0a, 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x79, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x68, 0x69, + 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, + 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, + 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, - 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x66, 0x6f, 0x72, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, - 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, - 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, - 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, - 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, - 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, - 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, + 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, + 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x20, 0x3e, 0x20, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, 0x72, - 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x20, 0x3e, + 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x63, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3a, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, + 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x42, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x66, 0x69, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, - 0x64, 0x65, 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, - 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x3e, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, + 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, + 0x64, 0x65, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, + 0x6c, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, + 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x20, 0x3e, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, + 0x2e, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x23, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, - 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, - 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, - 0x36, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, - 0x20, 0x3e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, - 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, - 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, + 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, 0x20, + 0x2e, 0x62, 0x61, 0x72, 0x20, 0x3e, 0x20, 0x2e, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x34, + 0x34, 0x34, 0x34, 0x34, 0x34, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3a, 0x20, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x36, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x20, 0x3e, + 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x38, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x65, 0x77, 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, - 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, - 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x0a, - 0x20, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, 0x20, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, - 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, - 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, - 0x77, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x32, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, - 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x73, 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, + 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, + 0x6c, 0x69, 0x64, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x3e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, + 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, 0x61, + 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, - 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, - 0x6e, 0x29, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, - 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, - 0x3e, 0x20, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x32, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, - 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, - 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, - 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, - 0x2e, 0x74, 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, - 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, - 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, - 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, + 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, + 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, + 0x20, 0x32, 0x20, 0x30, 0x20, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x38, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x20, 0x32, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, + 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x32, + 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x20, + 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x6f, 0x77, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x6e, 0x74, 0x68, + 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x29, + 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x31, 0x31, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x56, + 0x69, 0x65, 0x77, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, + 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, + 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, + 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, - 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, - 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, - 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x67, 0x72, 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, - 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, - 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, - 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, - 0x0a, 0x20, 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, - 0x2d, 0x73, 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, - 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x31, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, - 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, - 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, - 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, - 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, + 0x61, 0x62, 0x50, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x7c, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x20, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x2d, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x6c, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x70, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, + 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, + 0x20, 0x32, 0x20, 0x32, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x61, 0x62, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, + 0x62, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, + 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x72, + 0x65, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x56, 0x69, + 0x65, 0x77, 0x20, 0x3e, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x54, 0x65, 0x78, + 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x2d, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x54, + 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x2d, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x36, 0x36, 0x3b, 0x0a, 0x20, + 0x20, 0x62, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x2d, 0x73, + 0x75, 0x62, 0x76, 0x69, 0x65, 0x77, 0x73, 0x3a, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x36, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x20, 0x34, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x20, 0x3e, + 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x54, 0x65, 0x78, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x2d, + 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x63, 0x6f, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x64, 0x65, 0x64, 0x65, 0x64, 0x65, 0x61, 0x61, 0x3b, + 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x32, 0x3b, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x61, + 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, - 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x20, 0x34, 0x20, 0x32, 0x20, 0x34, 0x3b, 0x0a, 0x7d, - 0x0a, 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, - 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, - 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x3e, 0x20, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x3a, 0x20, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, - 0x0a, 0x00 + 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, 0x3b, 0x0a, 0x7d, 0x0a, 0x00 }; -unsigned int stylesheet_css_len = 7045; +unsigned int stylesheet_css_len = 7139;