From a623852446a9e8924bb9cc3c3e59cb6c298966a6 Mon Sep 17 00:00:00 2001 From: Joe Date: Sat, 29 Jun 2024 16:18:54 +0800 Subject: [PATCH] Refactor code to use Header.nested() --- docs/pages/docs/header.mdx | 136 +++++++++++++- docs/pages/docs/nested-header.mdx | 81 -------- docs/pages/docs/scaffold.mdx | 4 +- forui/example/lib/main.dart | 2 +- forui/lib/forui.dart | 1 - forui/lib/src/theme/theme_data.dart | 9 - forui/lib/src/widgets/header/header.dart | 177 ++++++------------ .../lib/src/widgets/header/header_action.dart | 66 ++++++- .../nested_header.dart | 96 ++++------ forui/lib/src/widgets/header/root_header.dart | 156 +++++++++++++++ .../nested_header/nested_header_action.dart | 147 --------------- .../golden/header/nested/zinc-dark-header.png | Bin 0 -> 29211 bytes .../nested}/zinc-light-header.png | Bin 28168 -> 29077 bytes .../golden/header/root/zinc-dark-header.png | Bin 0 -> 55550 bytes .../golden/header/root/zinc-light-header.png | Bin 0 -> 54542 bytes forui/test/golden/header/zinc-dark-header.png | Bin 45617 -> 0 bytes .../golden/header/zinc-dark-raw-title.png | Bin 28218 -> 0 bytes .../test/golden/header/zinc-light-header.png | Bin 44935 -> 0 bytes .../golden/header/zinc-light-raw-title.png | Bin 28143 -> 0 bytes .../golden/nested-header/zinc-dark-header.png | Bin 28334 -> 0 bytes .../nested-header/zinc-dark-raw-title.png | Bin 29778 -> 0 bytes .../nested-header/zinc-light-raw-title.png | Bin 29696 -> 0 bytes .../test/src/widgets/header/header_test.dart | 39 ---- .../header/nested_header_golden_test.dart | 48 +++++ ...test.dart => root_header_golden_test.dart} | 37 +--- .../nested_header_golden_test.dart | 79 -------- .../nested_header/nested_header_test.dart | 39 ---- samples/lib/main.dart | 6 +- samples/lib/widgets/header.dart | 56 +++++- samples/lib/widgets/nested_header.dart | 75 -------- samples/lib/widgets/scaffold.dart | 2 +- 31 files changed, 557 insertions(+), 699 deletions(-) delete mode 100644 docs/pages/docs/nested-header.mdx rename forui/lib/src/widgets/{nested_header => header}/nested_header.dart (62%) create mode 100644 forui/lib/src/widgets/header/root_header.dart delete mode 100644 forui/lib/src/widgets/nested_header/nested_header_action.dart create mode 100644 forui/test/golden/header/nested/zinc-dark-header.png rename forui/test/golden/{nested-header => header/nested}/zinc-light-header.png (50%) create mode 100644 forui/test/golden/header/root/zinc-dark-header.png create mode 100644 forui/test/golden/header/root/zinc-light-header.png delete mode 100644 forui/test/golden/header/zinc-dark-header.png delete mode 100644 forui/test/golden/header/zinc-dark-raw-title.png delete mode 100644 forui/test/golden/header/zinc-light-header.png delete mode 100644 forui/test/golden/header/zinc-light-raw-title.png delete mode 100644 forui/test/golden/nested-header/zinc-dark-header.png delete mode 100644 forui/test/golden/nested-header/zinc-dark-raw-title.png delete mode 100644 forui/test/golden/nested-header/zinc-light-raw-title.png delete mode 100644 forui/test/src/widgets/header/header_test.dart create mode 100644 forui/test/src/widgets/header/nested_header_golden_test.dart rename forui/test/src/widgets/header/{header_golden_test.dart => root_header_golden_test.dart} (54%) delete mode 100644 forui/test/src/widgets/nested_header/nested_header_golden_test.dart delete mode 100644 forui/test/src/widgets/nested_header/nested_header_test.dart delete mode 100644 samples/lib/widgets/nested_header.dart diff --git a/docs/pages/docs/header.mdx b/docs/pages/docs/header.mdx index d842dc704..dea4c9ac6 100644 --- a/docs/pages/docs/header.mdx +++ b/docs/pages/docs/header.mdx @@ -12,7 +12,7 @@ It is typically used on pages at the root of the navigation stack. ```dart FHeader( - title: 'Edit Alarm', + title: const Text('Edit Alarm'), actions: [ FHeaderAction( icon: FAssets.icons.alarmClock, @@ -23,18 +23,48 @@ It is typically used on pages at the root of the navigation stack. onPress: () {}, ), ], - ) + ); ``` +## Nested Header + +It is typically used on nested pages or sheets. + + + + + + + ```dart + FHeader.nested( + title: const Text('Appointment'), + leftActions: [ + FHeaderAction.back(onPress: () {}), + ], + rightActions: [ + FHeaderAction( + icon: FAssets.icons.info, + onPress: () {}, + ), + FHeaderAction( + icon: FAssets.icons.plus, + onPress: () {}, + ), + ], + ); + ``` + + + ## Usage ### `FHeader(...)` ```dart FHeader( - title: 'Edit Alarm', + title: const Text('Title'), actions: [ FHeaderAction( icon: FAssets.icons.alarmClock, @@ -45,5 +75,103 @@ FHeader( onPress: () {}, ), ], -) +); ``` + +### `FHeader.nested(...)` + +```dart +FHeader.nested( + title: const Text('Title'), + leftActions: [ + FHeaderAction.back(onPress: () {}), + ], + rightActions: [ + FHeaderAction( + icon: FAssets.icons.info, + onPress: () {}, + ), + FHeaderAction.x(onPress: () {}), + ], +); +``` + +## Examples + +### Header + + + + + + ```dart + FHeader( + title: const Text('Edit Alarm'), + actions: [ + FHeaderAction( + icon: FAssets.icons.alarmClock, + onPress: () {}, + ), + FHeaderAction( + icon: FAssets.icons.plus, + onPress: () {}, + ), + ], + ); + ``` + + + +### Nested Header with back icon + + + + + + ```dart + FHeader.nested( + title: const Text('Appointment'), + leftActions: [ + FHeaderAction.back(onPress: () {}), + ], + rightActions: [ + FHeaderAction( + icon: FAssets.icons.info, + onPress: () {}, + ), + FHeaderAction( + icon: FAssets.icons.plus, + onPress: () {}, + ), + ], + ); + ``` + + + +### Nested Header with X icon + + + + + + ```dart + FHeader.nested( + title: const Text('Climate'), + leftActions: [ + FHeaderAction( + icon: FAssets.icons.thermometer, + onPress: () {}, + ), + FHeaderAction( + icon: FAssets.icons.wind, + onPress: null, + ), + ], + rightActions: [ + FHeaderAction.x(onPress: () {}), + ], + ); + ``` + + diff --git a/docs/pages/docs/nested-header.mdx b/docs/pages/docs/nested-header.mdx deleted file mode 100644 index 101238060..000000000 --- a/docs/pages/docs/nested-header.mdx +++ /dev/null @@ -1,81 +0,0 @@ -import { Tabs } from 'nextra/components'; -import { Widget } from "../../components/widget"; - -# Nested Header -A nested header contains the page's title and actions (including pop navigation). -It is typically used on pages that are not at the root of the navigation stack. - - - - - - - ```dart - FNestedHeader( - title: 'Appointment', - leftActions: [ - FNestedHeaderAction.back(onPress: () {}), - ], - rightActions: [ - FNestedHeaderAction( - icon: FAssets.icons.info, - onPress: () {}, - ), - FNestedHeaderAction( - icon: FAssets.icons.plus, - onPress: () {}, - ), - ], - ); - ``` - - - -## Usage - -### `FNestedHeader(...)` - -```dart -FNestedHeader( - title: 'Appointment', - leftActions: [ - FNestedHeaderAction.back(onPress: () {}), - ], - rightActions: [ - FNestedHeaderAction( - icon: FAssets.icons.info, - onPress: null, - ), - FNestedHeaderAction.x(onPress: () {}), - ], -); -``` - -## Examples - -### With X icon to exit - - - - - - ```dart - FNestedHeader( - title: 'Climate', - leftActions: [ - FNestedHeaderAction( - icon: FAssets.icons.thermometer, - onPress: () {}, - ), - FNestedHeaderAction( - icon: FAssets.icons.wind, - onPress: null, - ), - ], - rightActions: [ - FNestedHeaderAction.x(onPress: () {}), - ], - ); - ``` - - diff --git a/docs/pages/docs/scaffold.mdx b/docs/pages/docs/scaffold.mdx index 2b46303e2..af16760f5 100644 --- a/docs/pages/docs/scaffold.mdx +++ b/docs/pages/docs/scaffold.mdx @@ -12,7 +12,7 @@ Creates a visual scaffold for Forui widgets. ```dart FScaffold( header: FHeader( - title: 'Settings', + title: const Text('Settings'), actions: [ FHeaderAction( icon: FAssets.icons.ellipsis, @@ -63,7 +63,7 @@ Creates a visual scaffold for Forui widgets. ```dart FScaffold( header: FHeader( - title: 'Settings', + title: const Text('Settings'), actions: [ FHeaderAction( icon: FAssets.icons.ellipsis, diff --git a/forui/example/lib/main.dart b/forui/example/lib/main.dart index 22a3ebafe..c9a91b563 100644 --- a/forui/example/lib/main.dart +++ b/forui/example/lib/main.dart @@ -19,7 +19,7 @@ class Application extends StatelessWidget { data: FThemes.zinc.light, child: FScaffold( header: FHeader( - title: 'Example Example Example Example', + title: const Text('Example Example Example Example'), actions: [ FHeaderAction( icon: FAssets.icons.plus, diff --git a/forui/lib/forui.dart b/forui/lib/forui.dart index 82ce85605..a9e3d7982 100644 --- a/forui/lib/forui.dart +++ b/forui/lib/forui.dart @@ -25,7 +25,6 @@ export 'src/widgets/button/button.dart' hide FButtonContent, Variant; export 'src/widgets/card/card.dart' hide FCardContent; export 'src/widgets/dialog/dialog.dart' hide FDialogContent, FHorizontalDialogContent, FVerticalDialogContent; export 'src/widgets/header/header.dart'; -export 'src/widgets/nested_header/nested_header.dart'; export 'src/widgets/tabs/tabs.dart'; export 'src/widgets/text_field/text_field.dart'; export 'src/widgets/scaffold.dart'; diff --git a/forui/lib/src/theme/theme_data.dart b/forui/lib/src/theme/theme_data.dart index 33b37ff89..0d5f6e41b 100644 --- a/forui/lib/src/theme/theme_data.dart +++ b/forui/lib/src/theme/theme_data.dart @@ -40,9 +40,6 @@ final class FThemeData with Diagnosticable { /// The header styles. final FHeaderStyle headerStyle; - /// The nested header styles. - final FNestedHeaderStyle nestedHeaderStyle; - /// The tabs styles. final FTabsStyle tabsStyle; @@ -71,7 +68,6 @@ final class FThemeData with Diagnosticable { required this.cardStyle, required this.dialogStyle, required this.headerStyle, - required this.nestedHeaderStyle, required this.tabsStyle, required this.textFieldStyle, required this.scaffoldStyle, @@ -98,7 +94,6 @@ final class FThemeData with Diagnosticable { cardStyle: FCardStyle.inherit(colorScheme: colorScheme, typography: typography, style: style), dialogStyle: FDialogStyle.inherit(colorScheme: colorScheme, typography: typography, style: style), headerStyle: FHeaderStyle.inherit(colorScheme: colorScheme, typography: typography, style: style), - nestedHeaderStyle: FNestedHeaderStyle.inherit(colorScheme: colorScheme, typography: typography, style: style), tabsStyle: FTabsStyle.inherit(colorScheme: colorScheme, typography: typography, style: style), textFieldStyle: FTextFieldStyle.inherit(colorScheme: colorScheme, typography: typography, style: style), scaffoldStyle: FScaffoldStyle.inherit(colorScheme: colorScheme, style: style), @@ -149,7 +144,6 @@ final class FThemeData with Diagnosticable { cardStyle: cardStyle ?? this.cardStyle, dialogStyle: dialogStyle ?? this.dialogStyle, headerStyle: headerStyle ?? this.headerStyle, - nestedHeaderStyle: nestedHeaderStyle ?? this.nestedHeaderStyle, tabsStyle: tabsStyle ?? this.tabsStyle, textFieldStyle: textFieldStyle ?? this.textFieldStyle, scaffoldStyle: scaffoldStyle ?? this.scaffoldStyle, @@ -169,7 +163,6 @@ final class FThemeData with Diagnosticable { ..add(DiagnosticsProperty('cardStyle', cardStyle, level: DiagnosticLevel.debug)) ..add(DiagnosticsProperty('dialogStyle', dialogStyle, level: DiagnosticLevel.debug)) ..add(DiagnosticsProperty('headerStyle', headerStyle, level: DiagnosticLevel.debug)) - ..add(DiagnosticsProperty('nestedHeaderStyle', nestedHeaderStyle, level: DiagnosticLevel.debug)) ..add(DiagnosticsProperty('tabsStyle', tabsStyle, level: DiagnosticLevel.debug)) ..add(DiagnosticsProperty('textFieldStyle', textFieldStyle, level: DiagnosticLevel.debug)) ..add(DiagnosticsProperty('scaffoldStyle', scaffoldStyle, level: DiagnosticLevel.debug)) @@ -190,7 +183,6 @@ final class FThemeData with Diagnosticable { cardStyle == other.cardStyle && dialogStyle == other.dialogStyle && headerStyle == other.headerStyle && - nestedHeaderStyle == other.nestedHeaderStyle && tabsStyle == other.tabsStyle && textFieldStyle == other.textFieldStyle && scaffoldStyle == other.scaffoldStyle && @@ -207,7 +199,6 @@ final class FThemeData with Diagnosticable { cardStyle.hashCode ^ dialogStyle.hashCode ^ headerStyle.hashCode ^ - nestedHeaderStyle.hashCode ^ tabsStyle.hashCode ^ textFieldStyle.hashCode ^ scaffoldStyle.hashCode ^ diff --git a/forui/lib/src/widgets/header/header.dart b/forui/lib/src/widgets/header/header.dart index 63bc7ec72..1a7c32faf 100644 --- a/forui/lib/src/widgets/header/header.dart +++ b/forui/lib/src/widgets/header/header.dart @@ -8,166 +8,105 @@ import 'package:forui/src/foundation/tappable.dart'; part 'header_action.dart'; +part 'root_header.dart'; + +part 'nested_header.dart'; + /// A header. /// -/// A header contains the page's title and navigation actions. -/// It is typically used on pages at the root of the navigation stack. +/// A header contains the page's title and actions. + /// /// See: /// * https://forui.dev/docs/header for working examples. /// * [FHeaderStyle] for customizing a header's appearance. -final class FHeader extends StatelessWidget { - /// The header's style. Defaults to [FThemeData.headerStyle]. - final FHeaderStyle? style; +sealed class FHeader extends StatelessWidget { + const FHeader._({super.key}); - /// The title, aligned to the left. + /// Creates a header. /// - /// ## Contract: - /// Throws [AssertionError]: - /// * if [title] and [rawTitle] are both not null - /// * if [title] and [rawTitle] are both null - final String? title; - - /// The title, aligned to the left. + /// It is typically used on pages at the root of the navigation stack. + const factory FHeader({ + required Widget title, + FRootHeaderStyle? style, + List actions, + Key? key, + }) = _FRootHeader; + + /// Creates a nested header. /// - /// ## Contract: - /// Throws [AssertionError]: - /// * if [title] and [rawTitle] are both not null - /// * if [title] and [rawTitle] are both null - final Widget? rawTitle; - - /// The actions, aligned to the right. Defaults to an empty list. - final List actions; - - /// Creates a [FHeader]. - /// - /// ## Contract: - /// Throws [AssertionError]: - /// * if [title] and [rawTitle] are both not null - /// * if [title] and [rawTitle] are both null - const FHeader({ - this.style, - this.title, - this.rawTitle, - this.actions = const [], - super.key, - }) : assert((title != null) ^ (rawTitle != null), 'title or rawTitle must be provided, but not both.'); - - @override - Widget build(BuildContext context) { - final style = this.style ?? context.theme.headerStyle; - - final title = switch ((this.title, rawTitle)) { - (final String title, _) => Text(title), - (_, final Widget title) => title, - _ => const Placeholder(), - }; - - return SafeArea( - bottom: false, - child: Padding( - padding: style.padding, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: DefaultTextStyle.merge( - overflow: TextOverflow.fade, - maxLines: 1, - softWrap: false, - style: style.titleTextStyle, - child: title, - ), - ), - Row(children: actions.expand((action) => [action, const SizedBox(width: 10)]).toList()), - ], - ), - ), - ); - } - - @override - void debugFillProperties(DiagnosticPropertiesBuilder properties) { - super.debugFillProperties(properties); - properties - ..add(DiagnosticsProperty('style', style)) - ..add(StringProperty('title', title)) - ..add(IterableProperty('actions', actions)); - } + /// It is typically used on pages NOT at the root of the navigation stack. + const factory FHeader.nested({ + required Widget title, + FNestedHeaderStyle? style, + List leftActions, + List rightActions, + Key? key, + }) = _FNestedHeader; } /// [FHeader]'s style. final class FHeaderStyle with Diagnosticable { - /// The title's [TextStyle]. - final TextStyle titleTextStyle; - - /// The [FHeaderAction]'s style. - final FHeaderActionStyle actionStyle; + /// The root header style. + final FRootHeaderStyle rootStyle; - /// The spacing between [FHeaderAction]s. - final double actionSpacing; - - /// The padding. - final EdgeInsets padding; + /// The nested header style. + final FNestedHeaderStyle nestedStyle; /// Creates a [FHeaderStyle]. - FHeaderStyle({ - required this.titleTextStyle, - required this.actionStyle, - required this.actionSpacing, - required this.padding, + const FHeaderStyle({ + required this.rootStyle, + required this.nestedStyle, }); - /// Creates a [FHeaderStyle] that inherits its properties from the given [FColorScheme] and [FTypography]. + /// Creates a [FRootHeaderStyle] that inherits its properties from the given [FColorScheme], [FTypography] and [FStyle]. FHeaderStyle.inherit({ required FColorScheme colorScheme, required FTypography typography, required FStyle style, - }) : titleTextStyle = typography.xl3.copyWith( - color: colorScheme.foreground, - fontWeight: FontWeight.w700, - height: 1, - ), - actionStyle = FHeaderActionStyle.inherit(colorScheme: colorScheme), - actionSpacing = 10, - padding = style.pagePadding.copyWith(bottom: 15); + }) : rootStyle = FRootHeaderStyle.inherit(colorScheme: colorScheme, typography: typography, style: style), + nestedStyle = FNestedHeaderStyle.inherit(colorScheme: colorScheme, typography: typography, style: style); /// Returns a copy of this [FHeaderStyle] with the given properties replaced. /// /// ```dart /// final style = FHeaderStyle( - /// titleTextStyle: ..., - /// action: ..., + /// rootStyle: ..., + /// nestedStyle: ..., /// ); /// /// final copy = style.copyWith( - /// action: ..., + /// nestedStyle: ..., /// ); /// - /// print(style.titleTextStyle == copy.titleTextStyle); // true - /// print(style.action == copy.action); // false + /// print(style.rootStyle == copy.rootStyle); // true + /// print(style.nestedStyle == copy.nestedStyle); // false /// ``` - @useResult FHeaderStyle copyWith({ - TextStyle? titleTextStyle, - FHeaderActionStyle? actionStyle, - double? actionSpacing, - EdgeInsets? padding, + FRootHeaderStyle? rootStyle, + FNestedHeaderStyle? nestedStyle, }) => FHeaderStyle( - titleTextStyle: titleTextStyle ?? this.titleTextStyle, - actionStyle: actionStyle ?? this.actionStyle, - actionSpacing: actionSpacing ?? this.actionSpacing, - padding: padding ?? this.padding, + rootStyle: rootStyle ?? this.rootStyle, + nestedStyle: nestedStyle ?? this.nestedStyle, ); @override void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); properties - ..add(DiagnosticsProperty('titleTextStyle', titleTextStyle)) - ..add(DiagnosticsProperty('action', actionStyle)) - ..add(DiagnosticsProperty('actionSpacing', actionSpacing)) - ..add(DiagnosticsProperty('padding', padding)); + ..add(DiagnosticsProperty('rootStyle', rootStyle)) + ..add(DiagnosticsProperty('nestedStyle', nestedStyle)); } + + @override + bool operator ==(Object other) => + identical(this, other) || + other is FHeaderStyle && + runtimeType == other.runtimeType && + rootStyle == other.rootStyle && + nestedStyle == other.nestedStyle; + + @override + int get hashCode => rootStyle.hashCode ^ nestedStyle.hashCode; } diff --git a/forui/lib/src/widgets/header/header_action.dart b/forui/lib/src/widgets/header/header_action.dart index 64ebf5e59..15ed8471a 100644 --- a/forui/lib/src/widgets/header/header_action.dart +++ b/forui/lib/src/widgets/header/header_action.dart @@ -29,9 +29,35 @@ class FHeaderAction extends StatelessWidget { super.key, }); + /// Creates a [FHeaderAction] with [FAssets.icons.arrowLeft]. + factory FHeaderAction.back({ + required VoidCallback? onPress, + FHeaderActionStyle? style, + Key? key, + }) => + FHeaderAction( + icon: FAssets.icons.arrowLeft, + onPress: onPress, + style: style, + key: key, + ); + + /// Creates a [FHeaderAction] with [FAssets.icons.x]. + factory FHeaderAction.x({ + required VoidCallback? onPress, + FHeaderActionStyle? style, + Key? key, + }) => + FHeaderAction( + icon: FAssets.icons.x, + onPress: onPress, + style: style, + key: key, + ); + @override Widget build(BuildContext context) { - final style = this.style ?? context.theme.headerStyle.actionStyle; + final style = FHeaderActionStyle._of(context); final enabled = onPress != null || onLongPress != null; return MouseRegion( @@ -60,27 +86,35 @@ class FHeaderAction extends StatelessWidget { /// [FHeaderAction]'s style. class FHeaderActionStyle with Diagnosticable { + @useResult + static FHeaderActionStyle _of(BuildContext context) => + context.dependOnInheritedWidgetOfExactType<_InheritedActionStyle>()?.style ?? + context.theme.headerStyle.rootStyle.actionStyle; + /// The icon's color when this action is enabled. final Color enabledColor; /// The icon's color when this action is disabled. final Color disabledColor; - /// The icon's size. Defaults to 30. + /// The icon's size. + /// + /// Defaults to: + /// * 30 for [FHeader]. + /// * 25 for [FHeader.nested] final double size; /// Creates a [FHeaderActionStyle]. FHeaderActionStyle({ required this.enabledColor, required this.disabledColor, - this.size = 30, + required this.size, }); /// Creates a [FHeaderActionStyle] that inherits its properties from the given [FColorScheme]. - FHeaderActionStyle.inherit({required FColorScheme colorScheme}) + FHeaderActionStyle.inherit({required FColorScheme colorScheme, required this.size}) : enabledColor = colorScheme.foreground, - disabledColor = colorScheme.foreground.withOpacity(0.5), - size = 30; + disabledColor = colorScheme.foreground.withOpacity(0.5); /// Returns a copy of this [FHeaderActionStyle] with the given properties replaced. /// @@ -116,6 +150,24 @@ class FHeaderActionStyle with Diagnosticable { properties ..add(ColorProperty('enabledColor', enabledColor)) ..add(ColorProperty('disabledColor', disabledColor)) - ..add(DoubleProperty('size', size, defaultValue: 30)); + ..add(DoubleProperty('size', size)); + } +} + +class _InheritedActionStyle extends InheritedWidget { + final FHeaderActionStyle style; + + const _InheritedActionStyle({ + required this.style, + required super.child, + }); + + @override + bool updateShouldNotify(_InheritedActionStyle oldWidget) => style != oldWidget.style; + + @override + void debugFillProperties(DiagnosticPropertiesBuilder properties) { + super.debugFillProperties(properties); + properties.add(DiagnosticsProperty('style', style)); } } diff --git a/forui/lib/src/widgets/nested_header/nested_header.dart b/forui/lib/src/widgets/header/nested_header.dart similarity index 62% rename from forui/lib/src/widgets/nested_header/nested_header.dart rename to forui/lib/src/widgets/header/nested_header.dart index c4caaa9c3..93d81c196 100644 --- a/forui/lib/src/widgets/nested_header/nested_header.dart +++ b/forui/lib/src/widgets/header/nested_header.dart @@ -1,12 +1,4 @@ -import 'package:flutter/foundation.dart'; -import 'package:flutter/widgets.dart'; - -import 'package:meta/meta.dart'; - -import 'package:forui/forui.dart'; -import 'package:forui/src/foundation/tappable.dart'; - -part 'nested_header_action.dart'; +part of 'header.dart'; /// A nested header. /// @@ -14,27 +6,14 @@ part 'nested_header_action.dart'; /// It is typically used on pages that are not at the root of the navigation stack. /// /// See: -/// * https://forui.dev/docs/nested-header for working examples. +/// * https://forui.dev/docs/header for working examples. /// * [FNestedHeaderStyle] for customizing a header's appearance. -final class FNestedHeader extends StatelessWidget { - /// The style. Defaults to [FThemeData.nestedHeaderStyle]. +final class _FNestedHeader extends FHeader { + /// The style. Defaults to [FThemeData.headerStyle.nestedStyle]. final FNestedHeaderStyle? style; /// The title, aligned to the center. - /// - /// ## Contract: - /// Throws [AssertionError]: - /// * if [title] and [rawTitle] are both not null - /// * if [title] and [rawTitle] are both null - final String? title; - - /// The title, aligned to the center. - /// - /// ## Contract: - /// Throws [AssertionError]: - /// * if [title] and [rawTitle] are both not null - /// * if [title] and [rawTitle] are both null - final Widget? rawTitle; + final Widget title; /// The actions, aligned to the left. Defaults to an empty list. final List leftActions; @@ -42,29 +21,18 @@ final class FNestedHeader extends StatelessWidget { /// The actions, aligned to the right. Defaults to an empty list. final List rightActions; - /// Creates a [FNestedHeader]. - /// - /// ## Contract: - /// Throws [AssertionError] if: - /// * [title] and [rawTitle] are both not null. - const FNestedHeader({ + /// Creates a [_FNestedHeader]. + const _FNestedHeader({ + required this.title, this.style, - this.title, - this.rawTitle, this.leftActions = const [], this.rightActions = const [], super.key, - }) : assert((title != null) ^ (rawTitle != null), 'title or rawTitle must be provided, but not both.'); + }) : super._(); @override Widget build(BuildContext context) { - final style = this.style ?? context.theme.nestedHeaderStyle; - - final title = switch ((this.title, rawTitle)) { - (final String title, _) => Text(title), - (_, final Widget title) => title, - _ => const Placeholder(), - }; + final style = this.style ?? context.theme.headerStyle.nestedStyle; return SafeArea( bottom: false, @@ -72,12 +40,15 @@ final class FNestedHeader extends StatelessWidget { padding: style.padding, child: Stack( children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row(children: leftActions.expand((action) => [action, const SizedBox(width: 10)]).toList()), - Row(children: rightActions.expand((action) => [const SizedBox(width: 10), action]).toList()), - ], + _InheritedActionStyle( + style: style.actionStyle, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row(children: leftActions.expand((action) => [action, const SizedBox(width: 10)]).toList()), + Row(children: rightActions.expand((action) => [const SizedBox(width: 10), action]).toList()), + ], + ), ), Positioned.fill( child: Align( @@ -101,18 +72,18 @@ final class FNestedHeader extends StatelessWidget { super.debugFillProperties(properties); properties ..add(DiagnosticsProperty('style', style)) - ..add(StringProperty('title', title)) - ..add(DiagnosticsProperty('rawTitle', rawTitle)); + ..add(IterableProperty('leftActions', leftActions)) + ..add(IterableProperty('rightActions', rightActions)); } } -/// [FNestedHeader]'s style. +/// [_FNestedHeader]'s style. final class FNestedHeaderStyle with Diagnosticable { /// The title's [TextStyle]. final TextStyle titleTextStyle; - /// The [FHeaderAction]'s style for [FNestedHeader.leftActions] and [FNestedHeader.rightActions]. - final FNestedHeaderActionStyle actionStyle; + /// The [FHeaderAction]'s style for [_FNestedHeader.leftActions] and [_FNestedHeader.rightActions]. + final FHeaderActionStyle actionStyle; /// The spacing between [FHeaderAction]s. final double actionSpacing; @@ -128,7 +99,7 @@ final class FNestedHeaderStyle with Diagnosticable { required this.padding, }); - /// Creates a [FNestedHeaderStyle] that inherits its properties from the given [FColorScheme] and [FTypography]. + /// Creates a [FNestedHeaderStyle] that inherits its properties from the given [FColorScheme], [FTypography] and [FStyle]. FNestedHeaderStyle.inherit({ required FColorScheme colorScheme, required FTypography typography, @@ -138,7 +109,7 @@ final class FNestedHeaderStyle with Diagnosticable { fontWeight: FontWeight.w600, height: 1, ), - actionStyle = FNestedHeaderActionStyle.inherit(colorScheme: colorScheme), + actionStyle = FHeaderActionStyle.inherit(colorScheme: colorScheme, size: 25), actionSpacing = 10, padding = style.pagePadding.copyWith(bottom: 15); @@ -159,7 +130,7 @@ final class FNestedHeaderStyle with Diagnosticable { /// ``` FNestedHeaderStyle copyWith({ TextStyle? titleTextStyle, - FNestedHeaderActionStyle? actionStyle, + FHeaderActionStyle? actionStyle, double? actionSpacing, EdgeInsets? padding, }) => @@ -179,4 +150,17 @@ final class FNestedHeaderStyle with Diagnosticable { ..add(DiagnosticsProperty('actionSpacing', actionSpacing)) ..add(DiagnosticsProperty('padding', padding)); } + + @override + bool operator ==(Object other) => + identical(this, other) || + other is FNestedHeaderStyle && + runtimeType == other.runtimeType && + titleTextStyle == other.titleTextStyle && + actionStyle == other.actionStyle && + actionSpacing == other.actionSpacing && + padding == other.padding; + + @override + int get hashCode => titleTextStyle.hashCode ^ actionStyle.hashCode ^ actionSpacing.hashCode ^ padding.hashCode; } diff --git a/forui/lib/src/widgets/header/root_header.dart b/forui/lib/src/widgets/header/root_header.dart new file mode 100644 index 000000000..76ae91489 --- /dev/null +++ b/forui/lib/src/widgets/header/root_header.dart @@ -0,0 +1,156 @@ +part of 'header.dart'; + +/// A root header. +/// +/// A root header contains the page's title and actions. +/// It is typically used on pages at the root of the navigation stack. +/// +/// See: +/// * https://forui.dev/docs/header for working examples. +/// * [FRootHeaderStyle] for customizing a header's appearance. +final class _FRootHeader extends FHeader { + /// The header's style. Defaults to [FThemeData.headerStyle]. + final FRootHeaderStyle? style; + + /// The title, aligned to the left. + final Widget title; + + /// The actions, aligned to the right. Defaults to an empty list. + final List actions; + + /// Creates a [FHeader]. + const _FRootHeader({ + required this.title, + this.style, + this.actions = const [], + super.key, + }) : super._(); + + @override + Widget build(BuildContext context) { + final style = this.style ?? context.theme.headerStyle.rootStyle; + + return SafeArea( + bottom: false, + child: Padding( + padding: style.padding, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: DefaultTextStyle.merge( + overflow: TextOverflow.fade, + maxLines: 1, + softWrap: false, + style: style.titleTextStyle, + child: title, + ), + ), + _InheritedActionStyle( + style: style.actionStyle, + child: Row(children: actions.expand((action) => [action, const SizedBox(width: 10)]).toList()), + ), + ], + ), + ), + ); + } + + @override + void debugFillProperties(DiagnosticPropertiesBuilder properties) { + super.debugFillProperties(properties); + properties + ..add(DiagnosticsProperty('style', style)) + ..add(DiagnosticsProperty('title', title)) + ..add(IterableProperty('actions', actions)); + } +} + +/// [_FRootHeader]'s style. +final class FRootHeaderStyle with Diagnosticable { + /// The title's [TextStyle]. + final TextStyle titleTextStyle; + + /// The [FHeaderAction]'s style. + final FHeaderActionStyle actionStyle; + + /// The spacing between [FHeaderAction]s. + final double actionSpacing; + + /// The padding. + final EdgeInsets padding; + + /// Creates a [FRootHeaderStyle]. + FRootHeaderStyle({ + required this.titleTextStyle, + required this.actionStyle, + required this.actionSpacing, + required this.padding, + }); + + /// Creates a [FRootHeaderStyle] that inherits its properties from the given [FColorScheme], [FTypography] and [FStyle]. + FRootHeaderStyle.inherit({ + required FColorScheme colorScheme, + required FTypography typography, + required FStyle style, + }) : titleTextStyle = typography.xl3.copyWith( + color: colorScheme.foreground, + fontWeight: FontWeight.w700, + height: 1, + ), + actionStyle = FHeaderActionStyle.inherit(colorScheme: colorScheme, size: 30), + actionSpacing = 10, + padding = style.pagePadding.copyWith(bottom: 15); + + /// Returns a copy of this [FRootHeaderStyle] with the given properties replaced. + /// + /// ```dart + /// final style = FHeaderStyle( + /// titleTextStyle: ..., + /// action: ..., + /// ); + /// + /// final copy = style.copyWith( + /// action: ..., + /// ); + /// + /// print(style.titleTextStyle == copy.titleTextStyle); // true + /// print(style.action == copy.action); // false + /// ``` + @useResult + FRootHeaderStyle copyWith({ + TextStyle? titleTextStyle, + FHeaderActionStyle? actionStyle, + double? actionSpacing, + EdgeInsets? padding, + }) => + FRootHeaderStyle( + titleTextStyle: titleTextStyle ?? this.titleTextStyle, + actionStyle: actionStyle ?? this.actionStyle, + actionSpacing: actionSpacing ?? this.actionSpacing, + padding: padding ?? this.padding, + ); + + @override + void debugFillProperties(DiagnosticPropertiesBuilder properties) { + super.debugFillProperties(properties); + properties + ..add(DiagnosticsProperty('titleTextStyle', titleTextStyle)) + ..add(DiagnosticsProperty('action', actionStyle)) + ..add(DiagnosticsProperty('actionSpacing', actionSpacing)) + ..add(DiagnosticsProperty('padding', padding)); + } + + @override + bool operator ==(Object other) => + identical(this, other) || + other is FRootHeaderStyle && + runtimeType == other.runtimeType && + titleTextStyle == other.titleTextStyle && + actionStyle == other.actionStyle && + actionSpacing == other.actionSpacing && + padding == other.padding; + + @override + int get hashCode => titleTextStyle.hashCode ^ actionStyle.hashCode ^ actionSpacing.hashCode ^ padding.hashCode; +} diff --git a/forui/lib/src/widgets/nested_header/nested_header_action.dart b/forui/lib/src/widgets/nested_header/nested_header_action.dart deleted file mode 100644 index 9cdc26772..000000000 --- a/forui/lib/src/widgets/nested_header/nested_header_action.dart +++ /dev/null @@ -1,147 +0,0 @@ -part of 'nested_header.dart'; - -/// A [FNestedHeader] action. -/// -/// If the [onPress] and [onLongPress] callbacks are null, then this action will be disabled, it will not react to touch. -class FNestedHeaderAction extends StatelessWidget { - /// The style. - final FNestedHeaderActionStyle? style; - - /// The icon. - final SvgAsset icon; - - /// A callback for when the button is pressed. - /// - /// The action will be disabled if both [onPress] and [onLongPress] are null. - final VoidCallback? onPress; - - /// A callback for when the button is long pressed. - /// - /// The action will be disabled if both [onPress] and [onLongPress] are null. - final VoidCallback? onLongPress; - - /// Creates a [FNestedHeaderAction] from the given SVG [icon]. - const FNestedHeaderAction({ - required this.icon, - required this.onPress, - this.onLongPress, - this.style, - super.key, - }); - - /// Creates a [FNestedHeaderAction] with [FAssets.icons.arrowLeft]. - factory FNestedHeaderAction.back({ - required VoidCallback? onPress, - FNestedHeaderActionStyle? style, - Key? key, - }) => - FNestedHeaderAction( - icon: FAssets.icons.arrowLeft, - onPress: onPress, - style: style, - key: key, - ); - - /// Creates a [FNestedHeaderAction] with [FAssets.icons.x]. - factory FNestedHeaderAction.x({ - required VoidCallback? onPress, - FNestedHeaderActionStyle? style, - Key? key, - }) => - FNestedHeaderAction( - icon: FAssets.icons.x, - onPress: onPress, - style: style, - key: key, - ); - - @override - Widget build(BuildContext context) { - final style = this.style ?? context.theme.nestedHeaderStyle.actionStyle; - final enabled = onPress != null || onLongPress != null; - - return MouseRegion( - cursor: enabled ? SystemMouseCursors.click : MouseCursor.defer, - child: FTappable( - onTap: onPress, - onLongPress: onLongPress, - child: icon( - height: style.size, - colorFilter: ColorFilter.mode(onPress == null ? style.disabledColor : style.enabledColor, BlendMode.srcIn), - ), - ), - ); - } - - @override - void debugFillProperties(DiagnosticPropertiesBuilder properties) { - super.debugFillProperties(properties); - properties - ..add(DiagnosticsProperty('style', style)) - ..add(DiagnosticsProperty('icon', icon)) - ..add(DiagnosticsProperty('onPress', onPress)) - ..add(DiagnosticsProperty('onLongPress', onLongPress)); - } -} - -/// [FNestedHeaderAction]'s style. -class FNestedHeaderActionStyle with Diagnosticable { - /// The icon's color when this action is enabled. - final Color enabledColor; - - /// The icon's color when this action is disabled. - final Color disabledColor; - - /// The icon's size. Defaults to 20. - final double size; - - /// Creates a [FNestedHeaderActionStyle]. - FNestedHeaderActionStyle({ - required this.enabledColor, - required this.disabledColor, - this.size = 25, - }); - - /// Creates a [FNestedHeaderActionStyle] that inherits its properties from the given [FColorScheme]. - FNestedHeaderActionStyle.inherit({required FColorScheme colorScheme}) - : enabledColor = colorScheme.foreground, - disabledColor = colorScheme.foreground.withOpacity(0.5), - size = 25; - - /// Returns a copy of this [FNestedHeaderActionStyle] with the given properties replaced. - /// - /// ```dart - /// final style = FNestedHeaderActionStyle( - /// enabledColor: Colors.black, - /// disabledColor: Colors.white, - /// ); - /// - /// final copy = style.copyWith( - /// disabledColor: Colors.blue, - /// ); - /// - /// print(copy.enabledColor); // black - /// print(copy.disabledColor); // blue - /// ``` - @useResult - FNestedHeaderActionStyle copyWith({ - Color? enabledColor, - Color? disabledColor, - double? size, - EdgeInsets? padding, - }) => - FNestedHeaderActionStyle( - enabledColor: enabledColor ?? this.enabledColor, - disabledColor: disabledColor ?? this.disabledColor, - size: size ?? this.size, - ); - - @override - void debugFillProperties(DiagnosticPropertiesBuilder properties) { - super.debugFillProperties(properties); - properties - ..add(ColorProperty('enabledColor', enabledColor)) - ..add(ColorProperty('disabledColor', disabledColor)) - ..add(DoubleProperty('size', size, defaultValue: 30)); - } -} diff --git a/forui/test/golden/header/nested/zinc-dark-header.png b/forui/test/golden/header/nested/zinc-dark-header.png new file mode 100644 index 0000000000000000000000000000000000000000..4e5ff59811a3fdbd2bae53997b82ba0eda2e4007 GIT binary patch literal 29211 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 U4eAJSL9SX`Lr*>D^yS)j`M|2JJN?kxwl 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 diff --git a/forui/test/golden/header/root/zinc-dark-header.png b/forui/test/golden/header/root/zinc-dark-header.png new file mode 100644 index 0000000000000000000000000000000000000000..51bd97489a9a1bede8d0a17220f952a9c74f23c9 GIT binary patch literal 55550 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 U= zD*U8$-~Z&r2lo zt9XB2Kh>$d^5?b34W&OXkphsf|9So3@5TR2#ouZ98!dlg;qNB;n_K>kg}*8HZ?X6{ z6#mxGztG~}Q22|u{sPf|L*Xxk{@Ypn8w!6LuD^ZgzoGEAJ^#yE{2K~?iG}~a5(~M% zOPn++R(bqpV@A#0BO-)a{3ZnPN*Tu)f|<@#HG|wbdN}(v%cm}#+YBG|c98RZfO2JqQ5OwR=b<+@!?l~l3!w7hf$S-n{B(;82^(mk^c*> zDgI}|Q2wX7BK@}&yYoNW>&kzznCSnIf`2dmX9GI_otFPn$bX~dPgp$oyNUix1yaD@ z-128GJpQKKKU4AaZzcLO6-eZN3-q74_={WqBCda9;cpH7|A^0f@iPF$|HljPUy)-hcO8-Q~Ur_r0Th>VG&=wqXqahj>ruKWiIW71as>DM% z8l;DlPCC42TibcX#hlTOCuw<=m6by{$VdmiL|jHbSo}u=rJvSEj?Q)kd{~;Tm*UV` zMn*=gXFOY4dJ{wrt;rxXwkF3aZOrWtes8u6X#!1JWK0rfWMs@9ZEMfA z20XOmyX~x2Y;m|TUSY>~#o1-CE9%MYfT9zxy3M@E<#rev$9_Cka}O^RNO-G<$)FPCHS)N{B`Z6zlsXS3aA)g@NlKn<#r)2aPR zzg0__`Qm{sD^i89a}n0hcLjL`1#E}oeSLjO%F4>MR^`8z>xc#J8h4x=-L!;OlX`$R$(vbi|R;vcpg-7Oc@^*H8m z(Sbjvki9?Ku>BP$9o-$RywF9G+vJglo0AQVjXr5>-uTmxSXidZL|n0j(8=H*j{{i> zg_MMZtFV?!tE;m!O*Oso&v)fI5>rxUM~y4anajj4P#F05_%h!V-Fcnd`k=WfxMmR%LfM zwY=P>ZT!z|5&x`HSY&Q&&$e{xYE;>}B}+x@3={3+5fFHqFLpg-WW0&g6aU=YVyOoi z6&00kgCJsU?c>p@Mx6^97825n7caK<)-WU_B<>#iV8mZlJY0& zTtkfS2cy+SF16-0G=aH1>OVt9f4jeQ+wRKX>JSU>fp8U{?cP1KTldd?*k40}9n^Ah zej4XVWIn&RsC{{H9`ilNxqjgMaDB9UIr4$4KDBr)xhr=3x5h@{g?ttkUA=FDh_PHj zYHMrj)J=$ww_d|Q%EY%> zCZ_7f?yhJ)@2M$G%0mzA_%8kHLT~}h_hY3jGX7TTw!Wx$4JP8x!=B(F+DGzp~oH_9ZgWHD891i0V|!{`txT~ zZ$it108w0~C-z5=UZuYhb5?&JLa&%jPEIZ~ZASd$lW>)-<+Y{TWWxFo#+|wuiaB-K zGX1}tF3-PS$G-@+k(BH-U^m{#OeEP(D0I8l6;lI=!ouR!3oCT84}N!YVcax{Hs*S; zt=#iInn&9`L(D|{L^!8myK3?439YZ8Ns%l$GiBk85v)xqzLKbAmS}ws9+;vSG2@PEv(&g zedO+o7v%qaLiYDJ*x1W|K1Zr39f?Mmn!=(Q?*Pej+H!sjMH!j zFZDlLa3w=7Nqo3wQgPZ0V&SW(4$V{le`4pKX-mbtOQ-oeU*j$lm*W}AtJIh3&LnB- zCMLP6ZHh=eRd!Y$!r_PCt3@e<4mU{5h#}W1qoAQ(AA2a|!IQv<4v|Rnac7QnYpM6) zeQuN7e(mSv&+b1qL!qLg5?>-f4A0}l)YSBI$suZ4394$D*)<-^6&jPA|2~1o3tz&w z%|6RYHI6Q-Em-%tk!})=Tpyz!u-;o@fz^L7l*eaxAe`{xrpQS-JTl)5c^C7Lxu%<>NQSi32m9wh1T< zh@k&9Fwo>jJlb1gOez_^cl8bqjs&k!PwZ!w3}lsR|iAc zm(fsAQG>005)vMA8c(=FBB3j@`m=KA0bf&6s3H2iiVQBFS|9D+@z2Z8uMcHOc>Df+ z+S~-~*UHgbSKQhZRlf)H^-)+KtkFjEJGd_`>AQ8TE-ls8*Wds2>1I!?;MIkJX76e= zo9fMYZ5j-3wNIZot53VG>vcsQudPN$M-Nw6akU50r^H9!CMTlQye)+Oc42z@bBfHf z?Y(7rS9ka6sja^w-u+-Gjx&mqXwUs<} zyJ)qzn3$l_uspBb0j{a(Hf9KOc5Ez?tZc7`mzR4?45_4)RB!BOVnTL(=k(VZbg%F! z-_mv$8;;h9S6^{v)9cb4EnW}hJx05`=k={mRwo1!8ueXz1=qkpoXE(?SL1j8dG?}| zl$67or!mAQd&^lX8~#;s)2`1Z6ZiiwGp+W#hHRy#x zzU9E0v`5(wR8@Q(YkLtE76xF9=i+ozU~X~Ie3_iupY-cgTi{FXCtS})iw$MdlK^ z9nVNLsOt(%>P*c^b zw)E)nyk)EHZR$oSV>-IKMLv9>o2Zr&mXo{F_lq+1bp{>;!%L_vudQU5V5UVOIK{;= zC#ob~C@4_Ty-G!Y`0)0Po6oU5Z^**Ce$XpQ52#Tl#To>Bus_;D?(NOF4FP|4X5XJG zdvp$KueKUZ@0FM&hK;Xi?ce?L=Vwn(3`t4JmsxK(vdU|&$3d)bPE(84^Pj!j*tLRQPHRK?LiOj5X602f0L@16a8XbF~6W7;QRM4 zb942lx^G78mR5;sTSZXQ6wFkLXOx)QI2nhH*H>X2EO+7nap`)Ycbhg(? z0T+5xl>Ug5Q^AtU2J+zXGJi@=4wkvOd1%DY?KNX=0Rd9u$?E5lk~hA8|NgQppDbOG z`M!i#lh)GmGDaVhhMBo}z_)MCF!ONX1T)=dFy`}L*2A^6PY2W}#Hj)jXV*tdL}fxA zFiL&#@v->9tbttgVZc?1;RSr@zo=vqQ})Wb8xkG8{r)U4CI*X*O&&(yUe)B2uD@E~ zQ`|&SP*89icHiEfg($`HH_<*=@T+-BKH(e&@sRBa_itqR6|P5;r6);gt0Ns9Z9n`T z7%0%>!N%Gr;C)*$P0JPD`Jr)AOxb53P2AD(BE<>msf-L(d3m{9cVKI4h*_3&Qfslx z+qZ84p5S6)V$N-ren%{%-Qk8CWMe{(4@xWBetv#E0|WGyZnmp)6+{p9}p)I!lXZ1>>G;} z^!fAWt%CzV5Rii*Ru2Y-A-C12j0#RmGR@f*m;p%2{XXgz_h2K_(p_I<-%y(cO8vYEQl+94c zx+5SV(_Nb+5n^(7WE#nBD)){L<}J4%14~9mW^e8H)svI-Dz$3Ib3$a~%NZDZsp)KT z=jwC_WSCy)9N7&=?qz2i<>sZe7)<^!&pfLXNTDO({D$b`j$J zy1Lh{UpFuO`1=l@tpz?icdM--1P1Qd_!Im6{m97s_j#?+`S~NT@7y6T@GC5Q6*P%2 z@jX1;3xHz%(oIPILI50H%@`XlQu&NUPDxZ0~*G2sH^6>}Kd85VZ>O zOwi+MI%x*Hgy-IPCT3=?1?Fs}Wn~yUC7rCnnM!%&P%!EC%{?iIE37t~p}gP5J9xF? z&;`p0Mg88RSOL_Vgsr@FKcb?1f2DL!ZB0K!$8u6%vFvMTxEl4u%KfVdR}gji^XJc} zmwL6)v9Ls5y~0(mv{qi(EmC4|udqWat*AiYce$8dCBSvs>m!zwj?E{Bl{UM0l@6y0 z3oMo^{dHbA+gg5f@D;4 zS?vKsB!{LYt-HJS(w|^$Z6yJ2xHMMAW}KmMbo8-)yuzyH?i<8bVv#; zmhVhxqpnzYsaCJ~Lva5%3d>w1Rd&Bc?CyAe($4#CI5%!-q$s1mo0de8)sSTOiraQ{ zh1FHl`S!c2l}G-nL!_}=gmZIqd&@D>Q9Nc|Y&*|!v@LCHY=(;spWL}Kfh+N*?|g5v zyqxm92JuD0HSrTeqPv z5#MMFnR(ZFgfZzPfC1fs8F35*t$d2K_W8+8^jo(SO8JoPJ^94&t}7B5YFYA*kk^Qmpu+;eug9c0kj_5P$~K|6b}n><`)*Ub{7~!`Rx4a_mSN`dy+aue!2b7o!&Bk z>3G*)-*UM9p_p|4w&P4iP5+?pI`R# z6+6c7B7%a*+3GiIn|&v?c6YVY6AXs3l}e1HJaMw1?giV)C6>}Fp7rL>b4i{D%>OP} z1VGOGX>GW!KZp4yF%L?@3tyqt!7S?-Yj1ylkt*Ad$OWmXq8?3J>ZkHAUplW28EXz@ zt8v>Op)Z~YlRxtz6(D)|!Uvn;5#*(j!ZsrK{K?)WL>@QHBObFl`Jts))R$gbTH4{V zf-QBM(*xp(6%IBwmyjXR8-(m0A&t6ZU5AATGDhu0?nubP&oL<&BbW3fDNE_tZE!L2B9I4ExCw+}U|{G7=pb>BFc}tkvLt6I0`~NsDEnJLcRit#1;;5ezWlK1HJRC~0TxYQ(WFN;iE z+tAQ=vnB?GIVT`eF?xG<_u1w|KJ{C-+M(T2DhVm6ri1k-xyFdmTZ?mKUc^Zh9Q9?#RXVqsws z3#bY>E65UDZwmF*KZGSFQtYh^EIMIGl*dp$T3*4E(LZ4=6T>nXJiDM36Af0Y_(aAi zC6}4Gp||g(zIk~VXE^#P_0{q&N`L&_ad=RbOs8^IoLsMJ1^ctp?O74nM%Q4uC=Zk; z4AHJ%Qprpm?{3NYGeSXV=<2!!^n+~0CquV(JWqfB7RaO9YroCiHaTt*ak{4H$&`Ih z`QqY|WF(@mukRriNcCY%+%CPZ$bc)YTTOMb9pm=*6%98s-3b_Bo@Sj8pc(BsQD*fk z!cV7(XaMnlDJ!FF_9OoK#H!j6M|40=UcNU^o0{QGVQ7e_oN~5Wh2M08NUS=a3WM4S zJ+q5)tjVMPWT_{6>!YNAg(~~oQt+A8>)YB00FLO0TO&Ca84Sh2+wb#Ol=f?1y?XVn zfdLwGj%?%?(kGwRoTH-nfQxQYMWeM}EwWrK?gWAXn~2C8Hd1YW;VnD{B@f`=NbHV^ zQd4Q{FVC@{+SWs)*hoRch$uNnv+SV}D)pnIB3qkZapMgFcGMu}FZ@)A74eVmL?%W; zATB~q3upgsDiXVv7{E{WpM1IxtKt$U&vv%mVmlE{d+R>8M^{uuZEr6IB)F#2Lyerm zgk>0e-uquMCMNn{VBFi^?XTfd4di2Yjw@OtfR_ywk{@1SK?eM(Cz@0b^VN~&>k_y*a>3?s1xIvt=kK?GTr#G8Zb0O5= zek+tskIA@A@o8_moLx_Xh)kj3D9KPx#?W;cm`>p+9=xOV5?#rm3*i4GBRGi<4t(cq z?HnOt6ApjAv&drp4t?!47A`J)yTgZ zk4S&U>5mrxbGF6bCBwjO0j>_j^XH5V`euJph`WH?!oqJAANBQV4%P!VHye9tsgppRS{%BdOa zXv}Z#>T2#!`_)rqP$E~NHaj!Zh6Ww+zH=g#iciG0hZ`=iFcT{b&;Yr>ZISFw zUkq1O%q9Ii=CnJwU#LGFUo2>0C^$quKbohF#>;0%#;`_fY}pmgK~$jEEt?T*4b6k? z-je5LHBsBDaBWC^!^178{5_Rr*8yrXC_QOE0L&Km+}rq(`2vHWOCG>@t>N71rC%vI zZzy*xY_}Ykn>|=fIvq66k@n$X3alnhw125g7XN z;rW(ONk>u)JD|{1hCmIu9UWc8&M77=J7U{~y&sv9c{fe+eD2+2c8#V{yx-Jx3o0-{g%eYc86{=Gc&qvJzZ_>hNMwf z?3;oZO2U-zvn?1J%ezjcq~Z#raZ*qnl6Km1pg*}m%oBOYHCFut0J70IF9J{tj?!)b z$TzXHY=X2NH26+TNJwaEWu^U8xDyb*I1IbYociRDwADc6`Nf$zTe8%t*thbc0a&Y^ z?5Kw)?pNG(@Ax9M~Z zphYvxSPln`peLPmk$A(!naee zoK61H@=w^jEIA&+-*3rut1DG}QX>dO>QhBD=y2&E+sn({?w|UDodk+Gs9Wk*%Knh@ z=r4hqyCs%QsAB~TVneNQds;@Filai45 zIU^lMuPQq!fDk4E@v?m9&Yh|0USg+2lK(nZ| zsjeY7+Jm<_S<@0L_zcDHA?!R@#hLl6*rOwB`%^>3x*Uuo0v?M{ITsCGWHs*}^lWT6 z4eq|RP^PaLE_MrW%|Z}{(-WNo}PBStLGO==T?L9a)C!iW7b7)_7fQB zXlQEVpL?@7l&^gMa$V7QC3a8jcC1Mx^{ae0SUnh;WAXESz(|NX^zFdQ+QzpYDz|kS zJvB8N;-(llR6BAp@d&7K`(bs$YtDX2AUR=86840X$RV7UCaTb2RoYdea8>Bf%F4^i zu19wQC3_fIBV*_g+&eft8~5yMP;{p9m=A$K#+mAEuVN^5Rr)hf>R`L{0DuZIGUod@ zY+`M9x+SNm>@|?)4M2p~p?#80+a4Xm=F4b_afmGlA@h$u4!+3Gje0%}H!O1Jxt&AKTcgM?ZG@&6&-@t74A@F`|zL1`{4jDB)QH?2C z^7uCB5h)3tLcj2HocP|;vaW+x4#i|t?A|8-X)&GOi&8j zI>bX^`4T(Z_5&VPeG6);cJt@_2e{+`YYWnE0|cpcn!mShN3g-#;QK!P*~icN1F8IM zkf-2(?tzSzUV$9DMd|Y^rL1MRT_{s}Tv%9mYF5N(mX5!vrDb;QcR><~B2d9T#7|z( zW~htFgWd%M+ls1TvkBn61}u~=`t47!zH%?{mPk{;dZsm5)K z$qm?lQx%&pFcoUzQE%L9q!oNF>**oB4d#zK(a9Ay zyHvMG`Qr-@5ZN<^-=*vf#3*bMrpdmF_8Hh{K>R`}XD5NZx!N9-A&w;tdWdk^I&v-G z+E@H(s$&4sw|~j34L#M3;IRxBpC}A|H~YdkDTgNH$DTAJRqS0LB^c`zCuRGMYZ&F* z+C@+hm<@QS>=h&Xcc7PwtK4OLFr@)P`R&RmkXy-s@Vbu2fLobG4tzB?FkUG<@KD*D zP7&Y|X@IAAHGcC;{Vq9t=(W`>j!gH2ho9d&CYihqZny>;V7|pYD>(%%%XYHK;=;|zl$oCqD4$Qs zYoHwll#$wxFTXO7@fA{S0`R1rhR;Q6UTA7QxN`OCZQ}FrvS^T`wAO}Ma*Kti{a?iQh($cL^?-U9{Q+RZ-mm2a?QB|#OTk~$GYJoWmh)zoZ(7_A}g zsxlWOa%lMK0h9jdQx6EDS7gm0v|JlDO{(@F^PhB7N#2VgJC5Xu#s@-m>G!Wd8xBff z_~iyyYMKnkmVA49Ub=O>9|dZ^nM9+~+7mkcPVJnd-U=%XSGTkw1v#(2L38(1YN`9X zS84$yz8-hWfzGINHYfj1hCB&znV*-3HJOP3uK9HRWD@^wcxZpKGxGWT$Vm~qxSi;tRR5IZT#1eVIPJRn* z5hN2&06_?>`C~Bp8twpVigZQ5QGcAHb$0-&{21zWW_ktLK%!V6NQo&cMxu9# ziG9=L2be>ZbwHaISK$-+1&RFi{3yK`4s^1RJu}LQblV|?4}53}nNi48`V26xZWIF( z^G>BNdAgD*0?ZEOOuj5t{rHi=@ksFe`z}(f)8*&FdUvnXT^s07K3_$(BSKSo11Ox<8;DLK=ap+n#Y-bA1#bitueblacW+ivoRQ7C45S>Wi~u^RWu6m@;)xbZ?OG zqPx4hv-)4h!ctrfr6CjM0F4oS<7Wg{H4BAEY4R~lzrukSAl9(wyy`&9%z6T#9};Q z@8+kGr$w2pIC*e}!(#077|`vl25BAd=q~jp zprxD)Wh!^1@djuJH(pa|LfMsHV?28=n^bd(XqgZ9L0mBXkvcJy*ehp@H$+54Kv_Zo zX8aj+@FaY;jS@&l0Ki*2JLk?!-UI`!3Ir-pWS>ARbFHrCM~KnF!YDv7{p`TI1ubpU zcS`U1@TZ<0Q+V8?HBO|^YhNRd>PFMBTz!*Zq-FpdAr2(pdat|mVK`NvHpV>XJ3<@= zP^aCqpP$W`TlxV+jR(>bBwG?N`yjOFfPfs6jj_j2`lhpppMxHO)e&s!G;0G9AIh^Y zqNJo`e_$0A9PAFjL<_px$gb;7m-L8E8U(xUvK;%7!etrQLQ(R>z=8q{bq2b%Zg}{p zpd0)OQvj-f+B5s0-S$1{=wOs7GElEb%+ZlQWpX_7aRH0Lpd|QnrVDZ)C~-D6IHory zkbfmhH31z3P|_rs6S5#SA)yz5an{4Yptv})Xuj+8+Xa9RwJ**zLRW$m^h}{(>!wFQ zs=}SzDDwylBfw))bry6%6(1keyg0KNuCl{|pS0RDj@4Wu0W54ElVN&O^uhCm@BNo? zLN*8k$)iUvdm3>-jFbvz7ld{G78K;x;{Oc${{2pgafEH6(q>0S$Z)dS<(C84O$k8_ zYX-kTb$RpEr$DhA!G8cUWHr`3Z6RF+eaT<01p_2U4B@*~1usAg@|ahD;hR9`xhgVq89tUF*)*tVWqTZ;%z9kxZCsug5ac<~wXU7ICu z)8L$*q2Wyx6%~ZC0`PLivM3WU6$CxyveIBJmX$u`BqepsO_ko$H>+8D$ z!5{)x0}F;95Y492W0SdWA95PfJ&v1h^wg%LvS@B;Y54gwDy_=dnLf#=>J``u!eR_M z9@Q|b^Tx--{?1Ki^0lD048 z^a>0uhm$g2K7X#$(*P?*lZMlJsnIMD)RmQW@#`R`0Fi|?+w6NzCzh!H-EO6y zG|%Z089`?67IQjXI^2FJ;;6V{3TSw)r}~Us^e}55K8kMijPV-^n0EHoseKQ-!A9h+uJJ$npsb|B|Wfl*8z!Xe&}e? z!wF_mBj4YJl?gi9x7}Z1Ekamwiq7ru2#0pB(AeMF+y0G?j~|l5UjRmhClx1%Y7KeM zi&j3FwM82NyZ}f2I9U_U<2aTC?dRc(8`os2u(b z5Endk=gLCFwco#|-JhUfHhiq-JRqe(hDJ70pCkDxok{b+0Y zD!=2L@o9bE_t|jv_g7R@92f3mVkT0jw4F%a-d`Q9uZz1aBor;mx3Ht@eCsR*wB%p;^O8iyU$6t-gyJLM+iCB3rZPF zQJLi`XR;XsxDwC>YP^9o#83NgL4S)<6Jje1Cd61%ksN~V-#)XA(O2G-NJLY=Ua zZj)U2>|)}pUa`@26V-u_Iz58Az^b^!^5~H>$enORA!_%4jasI?gy-4&(-?_gNfP*F z-*dcH`_mpK%fxi`lfh{}c4Ghp#^4Thw{+7vZbMoX}+T>VYe1z5rx6o}+} zVHPgqi5ZJaD+>$Pn91j5)a;w%6&<{OH?aJ_ty13b%4&n>a*yE3(H=+-qBKfN&B(Y8 zY7D}&kIxjjSb6ghvdA3IKSh=0fF>Z(TpX9i>&gE5=wilP2J`PxE-)E6f!YHT(e-T8(c&xdGZs00LJ ze$ip(2OkDCx3yuk_~psGLPa^FKT>$v^m}CF!K1BPpw_iky2*oOZuk4b>EUVc$pe); z&=`Se$dgv*s9ah(5a$7E@!J-^^;D(2_|DlIH*VzWv}vg;m^?PoBn3|G&59{Z5Ww#B z$Psa|0Asm$h9?dug{n3F{dz7d*@mmu5Uz zkpDYXgN;S}as_aTVXp$cD6h}K3{eg5{r<~gZnLH=%P20@;nY6Qbk;V__-Do)gM70L z1;((61LM)+o4?8~w;x`1><4!9+1zPoSFQ%SCpm}+vT3?W7&!(8MyKvw7N-kd$>_6Z zX)OZ~*>H>bNNh?x@9EVFk?a9sRaMno+x-vH>q&{NA*mK~9(#rlbe4y5n4z(0do@^B zhy3JIE}sA_t8dzU*&C}i$hcIZkpfN%E8^6YEO0UhhS_Nt9IPpx$ML&Si^XWX92uI0 zGCwPG^QQ5NlE*~^_|%gWg`EGiLfe})mkOmDGiPTPvNRis85!PE5%!^hNY8|XLfg~6 zAo$qb)ZI`no)ZrFGO&bn6y2E(DYsm0=4JYJc&+oFh&nj9dDr&0u%aS9SdQl^<987z zCC7sxA+&_ zjFgV#_Jp*`7W5iXKA?RxQ#U#SwpDW8@zQ}KB}j%&F&m5)oDBo7FG>QO>!)U*w4;#j zeH<@O>M!Z`0=q1DF!oJM-^Q36>=35C>}i^qAgMWHC9OFx_DQRn)0wYQ%khN9znL97 zOJfr6iPeQ0@>NuplJ!L^3;jV&tT zfX8%4RN*2!;H&mFC;ihh<6(x92aUbNDLx*yfBS|#H$UIzu+C@%cz(D*56j2LNAu&y zvzk+#AelpH@ag*az>|X=Ry6VDqrlwN$r@5XKVK2G+v$>|t&P_DkO>3wny4hhnH3m- z!R7kx+ZG;BS75W!R`2a@c6XqxI6C4o%i?K;YUU!;_6!U>_4&Fr2sw+T1h{uhx2{8o zjaleRI&pG-jE?RZU`9g2#tU3Zk#UsFp2dJ-l97`k$L)q`#ApJKHLE=?cLl5}@4%fL4^wcbwr zO*jfIZJVgHbaRE3+ib*-AGqMiCSzg2K=^#MW>nximQ4$U$riRvvfkd&Q6EljyLhHF z2kxkN_Xw1o-_j84aLTE*yIZmJV*nU1lN^&%Qoce?V;Rc&0Dja4=vlvogecA|c1QDx ze7)s0?u1S@;&~_6L(`8$*J;(HD^fY~AT5T&fXe(^>yTB9+!tXG*5-6`4joPp=v7}( zur`8*6*+3u8-MNo{rk9%R{_|Kf}V%9c#yQcLx?y^<<^ey0fMI%6Rp=9p!3sdR-kgV zrENteB(&)i@u0tvJ~gznwg!KOYt$gp~jB0<7QR1O(6pTFHZeM79vUD32?c)cK2@VZK0lvJ8>=L!nm%xSf^> zc=a2ZOW0^J9D@LK-4*#b!9*Eoi;Ihkt*tFhqZlkl$B@vD1K8vL90I~3=E0Q+xo9pt z?*$U|+m9a0(UPtem!RiE zUWH92S(5f;3>w_WcPVdOhf0~$C#_ZA4gXLclX=5EBAH`hS6G5=U?pW4Nubjb^SBry4Hc$xO)|K4-PW7a1T-bgu|bq9k#Xyb7PLsp8`G9 z%r4tW*faYJnBLHKfO)Y%=S7YJro{)nx8W5h%@T5RKJ%PXIymRvH*yvzD0msiDUX3o z0SX{~Wo2bgnYkW9o=uo6q-Zx?>{9c&S9i`&h6_B!Jp#|rc21+rBXMk`Q*+Otpu6&q zZPaQUpG~uZlk)`tRh##dwY4C_Gi@Czt~r{6`{2gCo|q8+Z#in^jm1}zfp}v+yaW_a zQ~BKt96Zn@OQ@!KLG=JxCP3bXDTB7XKrW`37eW4RLpjeJ7aYo-WDQ~5SudH?0#zKB zDFjZOlo`goUw!d-ZRZ44`irQjrql3;(O`$R!BFO zb6w>Y%k`Dx^&p_>P-&Kx7wfH$P)|?aRx009L|734{R7~SQ)Z)PH&}3O_9cQtNv`HZ zu0-W{7>iKJI(1b_7WA;k;#?wP1&IgmvO-?7IX&GRE5rG;Igwye2JN=s=5A73SJ%7f z%(b4+rBOFM$LKb8>$UIx8sowWFhGNIlgKPYU&WuSiQv z>-QyMtPB<u=XGQvX_(S;V12?(8eYmuwb9_xg(x z1D?)zD9~TiCfb8;+N@)B4Bi1*y|PG#zh(YnbGp|zgugTLn9cEM8qKX8j!KJ-Q+?Ai z=zGk=W2U|xv|oAM}l+M9hDcbMGYG9%9CipdzYD+ znP~J74ymiGbR3U7fDyu;s)KVGuLr-vvC}vMMaO2-KJeY3Li68qGD$rhv!Jo=@x~Ux zKq)iTMa?iUGKO6x&b<2Era#BHW%Mb8M^=oH(MDxqw;S-FI?OsMDhCXY<~F zLHCXZV82bQm|1Ps(js?2j$T=WD#?C-qWsaZvfWrf@HE0{=G1XLf-o5Fs>0$j* zsHsK3py3)a$4*WP0pPv=xM6V6y`;tkBFo9^zf!pD?K!sWUaXWWOMcf-5@xsve+FnyZlQprui{M5}dpY4!=iU zh)@BEk2h8aGKR2AN&A8h##-i^-df7nI68zm=^0N{3XYer(Pw@50#GK6{a9T2;$)Q> zc;#DQWX@j6#=iLsj7Hd*f_QmKi1W%5C%wgnM4-wEPn+fC)mJ4cmM}RXYmiM+;l435 z^LlXgjbUp%^;+r1T@6(rJVHC#*?QTnHdO5o$3+)7=aw75ifXdZ8789v7kh^AYXcn( zo|f3x0w}^m|GSMFF}@ZN{!p%H|^ zZ7}D7tSZB(LDhSp6h)OP=T@Uf^gOT(hOXQ~j7Fw{V3BM4;=gaG}K!nD4Vr|6_go4<+-b|bJ~fuCHI z;*1)8=Pq%=JE@Ckwo*i{_J=IGJBa_>M49nR_hKO&`(O=`k_bfKdBGbpVE(GEzFvqH zC!|S?Vi}~C))dcoV6O#a&#bC83J21kzCVAkgK^_VBk;r~2$w>n>x259Ih0JR&F`kMSPPv4UEJb96@DWD+9k3qnYUcZ$A5kU%Z$>aNyQk z4~(DCpi7NvTZTL5tfMLa2zJ)h*H2B1M$ajv=+0zVm#OWWV=0So?>iJfdM2TPEtt#y zar^P|wOr#Cin*r&-FNliOxU(UNIoU?ufglCPH+TuK8uOTxU!86IThNUt7r$$DCB-l zJ>=xX19Jf?XeELzeoY7LYUh94pi4xl%x=0L3D(Ry=wEc#;e;p}m`^pei!4 zEZFxT6~bY{xVa407p;arU0>9xOq)Dre#JpWf3s<@&?Q*_F+GsvKX-2j7xy7x_$@G3 z;NgSIpe@iz7~pW8$uzmIST)`CJe~o%Z>uz~tJxKT@8pVmhXfxK^q{7X>_5HxpLzLb zGaD~&hw;`WRYUEA!%kZx_|>|)y6^Yo(p4uo9|{xlmtdy?v1YDpLyc_sab+6O7q4&4 zg99Al!avz3g2QeZaQ>S7SB2G@%Hb9&Fe$2+3%G)A3G-xQz3=%lBKn`nGVLp zC^0Blds-@kYWgT73FG8aF-?vVekp**P}UD63NQ#;ZB~aqdP~mNlK%3=3sl4zgoE{Q z{!t^(AB@}EYdDMP!I6^mni$X3HZJYshr>Vh%>9!J%?ON5ZQ9}){!zZ;?&9KV!qK7J zqM`;wWf~`T3xclXL)&3yI&^d<0*M`+o!?KClf;953Ws$LvI z*#I8}jg<0b3>9^4UspHnP)hDsK`L#V3p#W*)g^*+P2twDtqoOh zWNxg~)c3IDhcd!CP0V8<{OZ+@^a>%5SHFL+1#;WhV5H?ROKLuR=)$LIs9C#ts1zsk zJlSk{IsJNhN>UO_kbKJGOQuC<&UE>dTflUER>*pjUQQ2c|JP)xD4JuDYhc{yE!!>O zHhH=aj_x9*oZXcNPoAg@sP(*AF}qyEfdKiM41P8P2#|u}m)cJa5jBBK=mbtjf$`ZD zbfAoK`c8yzt!OS{cgoI4_;!BwW%`?QIx;e3@SNRA+-MI<%888$3nLSaSkYPTqXe&u z4|rWl5nVNW3#Po@r{Ps3)Uqnc$;px(2|L81^KzsihE_k~#P1%wzKhMg;9!5a zd!5O6Rg7Y-qdLUZQYD9wD2x-k7GUF^B=xt zj&;KJGJ2B5rMMSinTP}W>1|Ie8DY)1gR;j!TChF6=KNv?6EZzBv&@R#d^<)72N*!+ zbsb3v2{F~wh(Vb09{Qx4tw<#{BOgPH{?)9eD#c@8z0^U zjPfTG5ke}sxKjC5FFy+0p5ZA3pOCI|yTA+V1)!c6PH(;RN2L5++f7HC<6h0_P9p9o zZA#Pv{Z%7DH~%+~=?p9*=3i+2gnM58SGnzMkg@Qq;ivKw6dx!BB_KbuCUaXyq&;fYrZj{g-M>!WBJkR~?AckU{ zmd(+{b|GywcT=c=fa~`USO6p49yG{)&Ro2>)z&RxX*u~TfMprP%7I-Od**ag@5M@@ zK#c7E{J}4&63k~GKX~w-3~;lNV!^k`>Qj7H4z?k`_TR58UIPErNh{w+{?g&#b1&Y$ z|MF!!pfB)G-ps z61one@6TY?`FU*C3AN5vjC1Baf3WIz&&p-V*RrToe((Io@6_m!@Fk4!R9 ze?6S2unqJQEsm~y7w(qOJAm_y=(N%9%PQ_N(GcL}#av~mntl7R_ol^PuOkTW+LnTl zzEnkl^Jw3wrbasv+!@PdApbxhlDhI$yd%eMGfL{;2C7-)vSmqg7@Dn^^pDKCNX}md zA@m9Fd{A%>Qq7y7p(G`ZUNtcA$+1f$j0fQL6PF~F*qfw6(EIu^xsb0vTS!Xh#<^Ie z0BV)L@?tkgUT`Fwy}iK{H8ca$h}ZMAIo6mk-Yp+C3fRq)rO?KaZu09ck5#VCoKnGlebNQ+5JZZk93B}W4Q=Wn2? zIj4bN0PO}Z2wP~$ZhY}8@1Bi(e`uYs*0(Yj71}-agyLdGxs9=F)tp$0yfc zjtTVT0p1j$Li|ohGt!~ zt`@rVpE<>Sba^@X3R;!(n&oe4Wm?+){@e%1+i|lUsFFShh;#c_SMQ0`ePZC{Om;9v zDImE56J$9f3r3}ppwi^7ed9ZLaL zUf=E7`%ym3C!XX|4j_wyWp?RYJLZGt;vmvug+vyh{>lKOMqI`i`56Gw$Iul%m9Q{cJ_n84w~hrf1sqTGKZ zIPub}-v?(j0sZ)8k6^x>LN3mOVsJq%j&xr?4Gk?SD(Y=$*4NkHx_yd#tHFlDOS z<)4qM;JUJ@@AHeIDnsyHND0tzoyi{7rpz1zeSOEVO-kI_y0G6+cMJp_JS9_R0zoSat(rp2R-+Ei7Tu=1#S6QVqs z(2HUU(>0Njwc2XDI}B$SWwE0!fZPUTiY^mmM^moOw*V z>o#8$+f<3_7n^8~K>GB6--rcYg;Tl*s?%DSJ4W+2-(HWO|@XP*js7fi}h-z_F{0xkHzW ze{5-mq*F+wI=CmD#cQ>js*I~W4*G`G07g@tex%EjxCZ9Q?)Dj~V>z--#1_#cjpSKHl zsp@k#`}j|DlzOs`z|cyNdTHqeq0TV-eDT>10W;B=0XaLjS{1>8-na~~%DCg2v0xoX zQVV4t@4K+AF;ddQJ<9ow2FJh57P|GWIe(3s_SO&L+Deq?8(5;JOxmG>)Hp@;a67p{il-%8mvL-4H zZu3muv!{1a$tGDbQhZyZ%fb&OP4-Pe<t@9_@wcWic(kY#wRyFlubA5g`RL_ zN)>SpJ~&*Yty6MNe5-1c{*VgiJa5;v#}}HMFR&=tn;g)3CS7yIefE##Y|1r$3uL0^u9NX-jpaL}|Re zW(ua_i5-V7v!V&}J~Ey%aE%SVeUygSX?O9P*Ab7tJG?>5I=j20qj{lQz`J1?DPHZl zX%W5JYaa*kcey18yXnT}YwyySRkdQ)1+iG=9pKCE>yff6#FWiVM)Ft3uBeP;v|B!m z>^@w#i1;MZYql$N2f)hnUuNGLRv!I5ElGHH`W^u2LY8@y7%4lbpT0fO<5k3{R~Q%= zSgfqbr3FH2_hI|a<7tgkjn$wA^kAWQL$anAU34VPlXO)F>y#5WvR(cOuQ%Yp(hsy8 ztSDe#$PGYrUV`!6Rk+YNCsj5VIIW|pnxH{(lcxX14SL?Q?*cy`oS~~Wsa*NdAbD0h zc%mWGsyl0iN?V`g0LP2g(&eq4DB;%(pEW>aZLn^2Xg>ZZDUIVPt@d}gTe zAZ57;cFq6|EZ!a{r0?MT-EGJA?Sbul{s+}KSJ>ZREt)Tk<&Gb{Vb90YLFf4RjjK9%UtvwVHn>vHG>=z*;MCua+>p& zbPcQH*LB|9-t10&btjgm8uTjHXZ-0D`oY`U_ zRqV|jv9q^qMYMOXy@JS(z@1Po3h9TyRg`H%OzMxA(Be`SE7r^|XR~A110$8XQv?UY z9o)?emuE~l{z^q@vN%%9Y$ShH*UZfVIV_4}bl~pXe#b2>dh`1ON9oxoT9zS>`l+$8 zCgI7<+qZM>ZrE)cW-XIPDIJE^#Ax6!nooI>vU)0f7hYX&zu9oX;B~k=V{+b6L8WE0 zq-;St@u>%Mjmhpo_MM@YIl^^C={J$^^5fypS(7zW0jb_zStD;Nd;X?e)npFl-!y{(HGWS?mA zNfur;&oMo<5tY<+wXPCzSkwr8xmg-3FIQ^%(Oi!Ye^g4! zVe93gxrp)@{(`wZy@FL`sut($yUM4=mtYzcTmypcPhU++>UrtF`Bj#q`o4^xd$_$9 zkG|d0L#DT4v$B>iuh(FRXD$eqr8%f?cXrxqFP)y*#&|4{I?$Znwd*vGsWUK?l$4le zZc>qC@{rlqNSK9~l^XBi@wD0kN;!ArOI2e)6y)yr6+Eb_wc1&@Y|$t(!)5ws?;Uyx zUmyMg&gcRT=kMPFEsgf7NuERq?2SnhhI`YOiLZab%f-cI{pl~yV%VZfNok-soahg1 z(Ek$KSM~^1(|t(Vuo*zlWUPGR7W!Ra2-{IXEXk^1ejjD%UA2(j?1eKhX7zMA%Pq7V zt~+Vj9WPdBS%GJ9j7}m;uZJ2dL3iTM>COT7@(7nPHZ*D|#Mk`%MqjdlS^KF{;g1u2 z56*0Bc3Yxw_wajU^Nc$47cR+#xi9SUUKC&YS;W{}9Rsbe;)k;A53{Hk)*Ud9Hf_^M z1q;s{C(5}QXSH_O)5rfI*mC6#*aEt3-8z|__AW5%oYsYrZW&_+4$VeBhw3B$ta)`_ zO{-vq+QuzksZ}4@3z1#LjzM&Q_F_&IwIe5#;jK;##YS&yTrT4H?Umb>p9bha^D*!j z7JT&<^$>sbkd%Ogp=nDhVkr7fsw21FP(Cmtq+#KPd~`*n5CKPXDJvm7(oO14E?_ha1fedtVU z8;A7t%$No+#=8HS68DgpRd~tDX+=#s(UFv5Nkvmr(~->Xb(BVRy;mwg5rV9T-n=eL ztCfHeMzSRhaxG(X@>4>+aK$BdW63iQIVp`Y>08aM@yQ_ z;*4Q(+kUe~d(Bcrav7~L@?z9E#zM!(nP8wpaY~!j^+w?dO7UZXAs-?+CVn(d5BAAr zG+hyXG*EK}aaX|AqA{OScj~(t4ls7+T1D2y^^zTu*c;O2Hrx5VnLlk)<4ymo)#-QW zcoqembY|Mj#-AQFl&k0`TL|}bt-W9NntRwuyLznTV!K+2#jtnWyY}uuS?uxto6Jfx zoCZ#?wtb=}mwzZSmyqcwspAAWH%)39_;~PljbP$@{-!mW$v!nd)XYDBXEJ}LjXOpm z{F!||8Tv@-O(oZ#A3VJmmOIC1&c(adhttW)%QKFrTxw)<{QCEPxE+J~23UTpR) zeHYxjg)F!TTuwB0)dC@iw-jr$#@mx~;T7SdT%^eZId|S1;$LX$NBVI;`ca z<(aC0P|aq_9W$T@;?|30thVNVa8NH^wuAY~-g)Biy#Fz96Aq@GkBJZ6qo%m$4^~IV zzCj^>9s3_l+>x%=wH?2$lyFcF??-dpc9)Sl?&!|)Soh1BmTV-Mkg=#ja{$achC}oO zWYp$&)E`t!@G_2c6GSCrR~egwtBf0$60kMIfK~Q^yTu&Ol8>kg%brPW3Fg(@hS*Bl zJl7(#xO`RkbJuM^P$68DkkaF3;(@uc$}9yne9^^#OEWa)R&vfj9I zK0<8Xv-S=k4jGWc@_v5wY2B?aH}vJr zpyP679xP;PxBFsQ_FzPCR%EX~%cDytKXzPhRAx&yjO*<%085Y6PNlW1JgJiSp(ZT{ zZ^X(4P2I^z6H8l-SB}hdiRNz|3qX>7#Cf{yc%lf>R0Y<XoCz8#R-T5pO97XGnWI`g8SK#~D+^H*m zQ}hQsj~%n@IFXb$ai5GQW2O?U;+cD_%t9SE&Wxlt>nZ_W0IrOH@jBYE8hWRjyFXQ2 zcn^VN=EC`E|6Q5N47kN{68rVg{#Glw;<}yL!OLx?mD_z~FCRaUHa-O#adeE3YK!`7KW4c7pCZYzIk$#$1Wd7I6dLp z{wX6qDd(tt>nrtp7TRoxHnbpWaage1b#njy{azrP&CT@&^djT(gR`l03WoHGr#!5`D9LhL_R@Ro+`cmF;c@@e9V%jg8zSQ@ekSpu= zed2D=-AE~X#3~S4uJDwBL8!~Ifq(3u^ah1O@4D#7^4QUek(}Wq?{EhN{@9;|x^C0m zsb%bLWI8FsdMhGrkYh*7jE|zkJSQ=k3EJEdH$HAU5G0VPHmy=-7BVC<>)2-cx-@^5 zt}?ce1XT!!SV;N=T>*OT6hm}bE^wCGQi~s3%LZk z-7Z#_Yt%TAsucqgd-^z|@(jWzgO(JRXc%JAVJRuG=`YHZFUpF`KgY3TG`GY`Nrl-p zg=kvP*JH;%3wrQ@KYO}KOF2ig70^r1%f|}m^K2yc=wsB#XYA+Y^-auZ<3YN=3y~NS zu8*LsTjs4$rvfvs^Hsv%J*l_kg@kNf+92I3sFJ04wrt$P<7S7;cuImrbb(1-Pci*D z8$)1YzKdflJ6y&zXXsoE%cnk2a8{shGwsRl z^j{LS_zUKZOkI%+P%!hQ2xb$wC&|gS5@t%WG-ro>H>z zazd97SyHb$ZC2D{{;o)O>JLgKsdudE!D-VErVU*Ig)7VB2ZANP-dYxr*nQv)Zjujf zDG!NpRnfQXXFei*58T128WPP4(TaDDYhT4cae-R^IgOW_IK&-CO{{ zTDHIu$3|ooHrrxD#GGtG)+Lb8E7guIJ;=LR&tvZ^8?tCI&b-#0NLVE@IwqQto-ON- z=g<0sVIbq~9*y?B#ks!6iUwGKN6cH?&`{pyaJu%@zbn}|bBctKLfyPRd3nz?>2(t! zNqgselSQswS6Kj?C?A5T_;+K{JoOIUZp;7#?86On9J*1gFuAC(_ZObrILZ&1peMn> z%pQyFY<20w8A0|o0JFyBZVp%(*270;Au8_i6?n^hqhhAo9Nd^*NZtJ zRu{&MQp|Yt_bZ8H-}&c!?_NpyJ>+Nkwc}i>dLZfa0LHi;U0<@0MyX9*bXN*s@9cfoppf|eYC@x?armxUF@c`bFdC~3Jl!k^&1+jkyuO!OAq(%v~NE|r35_Gw3-E?$J0!s2HKi{1Yd8P zS#o8)No)djp?TP#BTGHaUMCN)PpH-Da2o91#%70UZ4cYP1DCPfqVIF)65k4jpp;2n zJH%!l(&wrg$l0f7R~i%pD%y$)%|-hIA2;w=Stbs>@ozrbXg6lvtmEL#s3`WAWx@QD z1b;5A8sWhJ(rhYa=g?tY2GqL@Ih+^fT>O6+X0JXXx&w#qALCFz zKALSD>Dx}0vB2ej9vmF5)Yh5j>E63|v=Ipi&RwX6z!+{qLW158nL4 zY|>-J;c8Db0esjRr&m)Z-J5lhJpIRI$$EZj@Ecc>N6Xc6hpSq_sRm`Qv@>!Fj1g#6 z)oVToi6bddRmhuB-D?s_*V`O>{d!vr0^WST+E=x3R9)RYu1O#rCi2Oyv&4Y;vgMBH zyyCfouwA&z!(&0Das-}73H$_`-3%9*HeOM(T$m9*K_~oDPny1$oA^JjU~TQXqEF92 z-z#Nv=-2^kc+h#jq-_~nrYs-{+_8!+mX}5LtW(1Up%NJui$ME)q~izeyWM74efQgz zu?oaiCHAeT-}!AzPlQXw?7A|nTy_+x+k(9|^JV>s_^TqlHg_yXfOI@sE)(bvB?gV` z>EJlg@g*%8t-;`6bfc6eW~vp?J~`vr74CR^ap4NQblkh}zVOf~^od}xL9lB7~bil?g+RSz{%R_Dhu<->1)3C>{GRH0q=2)pCg z0^c3E$F6_bPdo>&|Mhen`88MTL4ACw6-HIFx0unE@u<^e^_ScA#Hd0`BG@Ief8Hfa zqN*_{@{9fZq0d(*Sp)XkwOe&3R_&eFbuu(3NI`>F{VV{KC&ILEKm5j0Y~LQ#&G+qO zw0gfs2PA#JDpfqxYapo=US?0?x3%lvn{HNy%~pzZaL|$W%^SpPBkz=3%P#t}&R;tpE|ShF6BvQc z!kx#5LXK9B<_z-%EvV2u*T=p~LL(P*W`~V(hpTOgUkYtwV|;c9rmGj3?|pIx!sCdVfB+}>Q1{D3++$x^zR-}g;vJY8&+WzLV%u&#?;?u!=IT~32Wh99rO zy86A2STMfJv6o~IhW(RKV0t3jjtxt^2Wps>8i$cm{!K^;mHN4GahF+2Cr~X}gl(>w zqYfi%DyfP_g8+}^;Si{wUCf@%H<~cd9nCm6Tafn3WpCzv*&}b|4Pcim zoFx020HAJvyf0rVN%Zw{%QsJY9I?p4;J3TqII$Xi;Kc?3%i_bL=I28mEj;8vZ`-+S zb3iE3F!bl{1qz6cwWNJK&14*IXOy=vl$D@&=9yN!NZj!1#^vSVxetRA|Dbbe7QvI_ zaH5bwyG5Eym{NBEZJ8d`#!#)@6_uU(BxOu3ipgGR@H9%V29>-Ry^qR#R`8W^Q2)R& zmuG|vEk{AJmy!L`Sl=xqKK?xMdiPi?HR_7IfI>*&EnnX}HvheDU zeJ|uRA%U@7z}Wq1WB3q45nC|r#wdBv-d!BqU;18y~GGfotZdIP+4&SM+ZSB<5#)9Y^0%YS2 zN$OZ51b?5_(dx!=p6@C`1LB_vB6Hd)z7Wy^Fw~}=ioRY_xi`Amb1J4OI6J39Gf3?R zLLwQQ->Lujf?#=_<0W;NuNKSPFQ-dZsIzm9bKhipa>olQDY5RBNG>TqivnJ<@}ZIW zZZz%R>D%5%ojz{X#7mv8z+SUeb2xOjpv-c$((EM=d!n?AQ;#EJ|tNz%}kC1afONj$~34pRWDhYU}CS zHU$0y@a8K(zf6vqeEw5@?@N((WRwP9Vqe3wbL*o3T9cKJ>S@W#bIGz`Hl-cT84*Ff zl}O-`l~Y-6y`F^Rt%kv+a1A{b2a{uO=4xIerpvnexO$oIE{@{J71whL5)Lj?-`Po6 z4p3Tvl&+^|nq|QgNbV`;UI8Q~5vA?lGFK+a9)R_lRNr1fEyc-TSRU6 zX^VAPgzygoKV)3RmHdS}9Xjod)!ZWhJnij&%i;R-YK38D+x1G$q65q<<|(H-Y$`8M zN?91At-9~n*5j~`QzS7ta`od}!nppVJVN?I{|V{o*j>%5BE%2YhzwVSO%o7o^%8(O zo76055Zu@wS$=gJ-#G!Js`J{JA_d0Ivt5T`6b^Y4FMe>8OL(CjPKoSL$EiBcUVvmZ zZO4Z#bEoek!aJ0dJJu#gNicGI7GGH~HLh$11Qfdaen{UFPTx6=D#n4){pnyW3G~dg zkDoPr-E}@6Z*09d>QIaaFC|T4zm^nIr_JePH>eo?q7ihFr~Qc9Z>_Fp(L^_xHSjDR z5>UIW5%(L5t-}i1=|P?30_N;VdB1)Z^8UGMCLdSIc!rkxp{-N`F4R__ZUK(t`ERVh z-DSSE3yM$W+w4z(^Sb3gju*2g1oA>^m05^k4KyW4CH=+vm+b}y1c)|;RIUR@7lO@W*< zU_Ly^G294N*I2eOfMh)%=p(*X&BOsflw=P-|5O7#e;_o;a)~??O%)2{iFOq(k6NuR z?xi{PhOTA9Y6tXXBp3S$QI89D-fT#?mv&?Gf4KmDhe9o+6Wkx1xN>r3r|3*SiGfU4 zl9nGGr*Dn9;37oO1G)5J)eLTTNOQ1*5CJyuj3sfDrDf?P(gM`Whu#WenmNcicqRNc zNyJTX`bPtIslS_W%y}nn!rw_?YfWjl%n_zRS@-pI8CSMeUmDd|l~I zc{RIGD_vH2Hzn7(Z&N#u^wcGc@Zng3=B%%`CwuQQmlm5PU+_X{Fuvm#S6D4y>N360 z0p%`lXxH*l&J0VqEfmA_gkNgKaTFqn8JR6n6OtPj!RTNDBZEabCXW%8!nAbqBEm>A zV`R&EBRM0<7$e}Z+IkaZ1It5h*}8M@`2Le)fqYY3!mPI)p}n{0Se7^rYkX`S>d9Kq zPo>Vv0v)Z-0s>hvt&xd%t^^awOvVxN)!I>o(MaxyMJ>6+ei^_NV$54+>OD| zmjl)xHVks-s2u`APHqG^vD5QbY^`_jLsI9;1A$1eFzWR(F=qypu`jwTO-3q~5;9$o z^>K@5;oUDP#MIT{RHnrC|w5FE9}}t=R>#pm*q!n`W~A$Yh~TI zDmLHun37r8xeJ~w?9RhPK?FOXwdD4|?(ra+476V+<|XmQt{-6kszxPX5@x@-Soz*~5kwUhJo>$Ii#}0U*i_rva z8zU)a0$QAh6PG>qaRaCuey6693^!I(>3Rb*PD|29OyXqH%`4!j(&I3-F3b{n2>QuF<;iy^ap)mGTPjI z5Q|8i`Y_bpO6ql)mhGzd!_7br+l}#C>aLv@#+7%VS^6BoSyNk$647hkq@<#fNFq!1Yp(o-Fx45DncG$14@gG)W=SX_Pxq&4i@ zanJEt=rk9TLFaHgCW=$Ado?mfLQOiI(^|~as-slnpO6oOS0hFca9{JH=Tf8x)d_pY zcg0<;dU<@hu44{)jsDC?K$LF&0=kOh@zN&3q*>9uBN*`U4%F&x1<{3(0mn#K?YIys=uMcWF`<^b3A-WHz;h082beq) z2j^bzmn4;26e-FU#}xxWjw=JFED8iNGH^I=)(?ly5xgck)@0fkCxebwOh0{k6Anp~ z)I|`9(yvYy7oO+{ZqF2B8Y4pI((4OGpakds$mk*JN7l!Tlf z1Gz4!WJw`=iMAVVoa9C&NpZOAO53~HX!+nTMPiZe3z2fE4X1N(^~@0Q^nRnTKlKr7cZ%?Alf`y@Yc&Wi&z|QmIZZ)qls2zBNQ`jhjo{M4l zB*F|PXPm$%s=o<$Ykr-bqtc1e6829N1Ur3DYFVC*bW%zi81h(ISxH2tsB!6AcV??m z=+VJR2q>|m4s8L^xTCmNCg_^1CO61RaL|`1I&-3s_U$V4#4$G<{CPk1Wh@d5`eyc_-+}lTwlZ1xVH?WW_^jCv`9)#4~L^8`K^y;M)O(b8YbGTnb{8e{9$pUdqsH zz9q*Uyp9(K)L)u~oha#Yd7WXaf#N$3FghU2&Ok$>q9{p!C6P|kaPKWuc3tNm{f^U( z>S7ha8lAwD400yxDn^OnOnu?8Y*TcA;=3aaiSXcJTD zJqY;;bR>xBS z!cL9Tdr}jg>D9eF=5WMetb=gj15axZ=Zs>wD0i=BhFx-c z@U|5DJ%o${O;9zgpmL6JEPBTN*m?L*LJI*DNcalUs7x3D{owOdiZMcZ4UgV!M4R5=R-#UejfgYC=ogfN*_I~Kg+i?ffC9jye-W#Rgj)WMu9DJK zh`UJMqxaa4HBR+0Y|G@QmaNbvNdAh$pJ-@q5z(g8a{VZ%?1cZXrkIc`P{tK3j9R&r z5h@|bWOL;n$$&Ws`b!+<MHzkRXhS1v0xPqTe(rO#*b`*U3c7dTc~0c!5VEEcg2diE`lMbA&d=eY=H$pA ziCb~F(~Xy&|$3qbY#5>IZegv+4gvHxDAv=m8g$z_Jk5Do~L3x&nAssN#TiWwDS zzh9*Zx>$XmoxBUp#q2zwkq3f?5%& zCuBj&JPu#~rtMoDp@PfU4K#ml`9*`g@q40>y%P~6Pg)0tf(0_z2Rs?p!CJ-2VE^7a zw($yiI~qw1M3itoylEW(}`M0Kn*ivZX9$jVW0^0V+d{!-C(_um)c|4m;KzOP=?>LV(u|K7>!FPk>~d%5HnPR@Vr9r^jegMar9 z`T6AOwHK_7(yA+5TN-Qo0VA+xHP%e!ntxc02Z%-dzwd`7N&C^&r(StbIL&I$EW7#= z8k)nK{^t!I|BvTgd-y-&voG&F0wVQn|i zteJu}Q?OE?7Q;P50Q{CbdZqH(9u!h zGZh2JDDdu*-9tG^r2Owx%kTk;o#fp|=x7i4N(mw8SIFgtbu#?0Pz+`a564 zJL@J>yxd8mM6M9`yvRGCgdh6n4^_Me+MmZrQHs_&ad@okRbm!r$@yFKh8{F8n1H{(nj= z)EjMtY36avA%%%c(BW&+_jYxu;H7+hRE=k$@yEOLhJY%b$is_cvSqgaRq@?;-jVi-5niWBV{U;Qjf1$-+Xz_0{{OzIt)!hFd_t2NySl9k|0T6Ngd!YV~ zFn@~c-vjmk;z0d9L{LutPIiCJ(BH}K|C_AQ(y|jSQhl_p&DQjAxz$vK%fYY1-9FVF z8Z;!GzLUeb@ULY034&X_39JZw^{L5!il%tP+;wkYXou#Cr;zi?yB8m71UBfA9B*@S z(NHNU(1z5w9E9aPFBf}hZfIzzQGHk=PIL*0#`@RzNRh|Id69l=nE#}Hg2 z_0F#Zmdo(egDZzyxUIh?s#+Tx8{-sN^o0|{+6{PrjaS~x*R0|fJ6T(+mP66;0n9J| zHa0wTVL?CKSIxs=;akksc1MAE&m$zH_`ccM2AkvEk41Ki-#tV(es;yrE%oZp`O~_O zC%40kc$PYEwUB=O@#DvE+4|8*@4#-sp{a1UX^5G!wp988Dm6h}}QyR=tE|u66x-o#^M)0r97BEgLllwde@`kN=%j z-I);w$L)hV)_g9;Xu0B-bC+KVTTa#96uUSLwwe1H>J*M$kBX;bAt@I|MPpTMV?43y ze!To5{1}H>!iDk5V*Qi-^;NBdm7Ibz+`ilH-!>dp2RXxE z%oV+yX>^#Y_qx3L%x?Jy^AO_Y)zkLI&AvEnOvWj_(C3d26_|20>q`243Edw=;WJ`* znxfU02Mu`1i$`_~^y|)@-4cZCGTk|mXc!-KyCBh&nhoW@no2+$X6xu^9i-L{<@uT- zRe)9K$@-0Ut;XfiBek-Pi^plq6zpk5!jj2p=oD8Z&4rB}d@*A(i34AjEcda!k~6E& z=#nq_wi~eJAnTvnEh#vs%jhCwBwQ5Z9Emk}2#2rhe;=bMJUbj~;z?P8j zI6c~V_f4JS9nqCwI&|-U-x@u`3zqlS$IkTF#h6%GFD(&T+k}wu=(W{R+1T{)m<@82 zl$C9N3ZCwk!WH#x2`rw(bW%*vlyL;Cu~U5+Y23s ztJ)4}#l@<+9q8WZ&GH%8h!-n)J(AGyC`=j?MFI~+;;P)edsMnv7W=I_H|RtY9|{uw z{xp0A&vzJwK;eph*ZTo7QRmKN+XS)>?KcY-Q)zPHvXYY3bS{BCOw7!)<#lIS?pwr2 z>6w`f;^Ij|E>Ex+<-(-h-QDXBF_9P;8H-$<#G;}Ih)Y7~0(2sf5EmVR9n7q1Lio?s z-}0&Ji}-IO&~4C}-s{mv#C2TMwT6Y_Y2f0=y?H}4KR}ct;@#i1q!~E8mFW-IERf)7 zQ#h4A+`dvg(pi--v>H=S@z3ph)z{O56mLPTIuaI!lW8j#&cDNDw>d3AL_)$dAcyCB zYj~ai_D<)u$%RR$7nBL#A7XGYAnru-WK9yowQE6Y@AC7x3=FSKHM1PEadS68(m2K{ zC@Q{1yue{2!KKw;?%HPYvp#X`YXZuhd~dQ>*Ph}Q=Sk~8T#Kw{xTUllmZSFfv$!@TP0@LQzLtJonoEo_dj<&{fpS1-9C5doj`^_`ida9XmQI zTvA@nC?@tnO{jbfJ2ofk*_g41^U$Ey~{W^qUW#_2SY>4X~t?WO)G2&l>1_H2Ao0{&|8{bMz){*fT@zUe^wUPH+ z)Y#OtakA!u{_P0LF@rYeGa_NlUx^|Po9(Pg)5Ap`0S`A0x90Hi@p+a!ka{L2M3+2< z@-+!H7NIxYFzs(EWN=dvmbAI6;Br;`sQm#FlD6yC6&z~e+(H@OC;yy?25DVg{Cthd zAj6KgjmEcdobKD%VNv0r1s42{8ri&hkyCRSvusFZX-%(f)L@& z7c6uvEPmzc8{ZQ}tg9vj-A@IdJrAE-8OTwzx9-MUsbr^45ey-}i8@wRQ1SPLuYmXB=?>xb)(SJXyF4HY=dZO$|?RU^*azi;F^p`I;U4QRB}aNO$)JkHFR zn40x>mwK1h*JT_W1V%?kH;3wek@RUGZwD0os`2vtVyl}Qyv$hVYF6FTXT68j#~r;E|KU8VwhM-~5o^VMLx-&Ns*@CGqV~jzd zgE)2G>|FM27RbK?>}y1q@;{+w^N&DRKX*Nx@z;x!^1WlaHE?z?72es&ibqPy+T7_0 zZ2=h$UqDb$BjJO%-rioX<6}2LhhG}Q2Xy#vZ^JR;ag)WPVyge2>;2D#d(-({kz~}t z-=@zvyvEB*U{p+A{6d_=?0FoIKI-i3?B?E(c3O(Ac(s<5`hvVKvnU3}mSPe<3K~Y? zf1~$5&laHTrH)^SZsG*LZe;XLLF#ekwUHf@VZF3~0CW!ZLZoo9_ui3=a+o}k@9-IA z>3DeXam7z>)E=)~KV7#{F=}WE->nP|C;#vlWbYnh3?@ZeHG`20(~XWiu|nD$#I7clCJ`na~-oLQP3A%^gJUOcWvQ%X)Abskx;E`%7j{4%WoP z1l&xj+Vf*F=oFP*M8sJ;uN0HSEP9G3D{L-jJxG#;mfxFHl-}&Mw8WoRNZ0@NhCLuGtkx`bU|`_&&La0ToP<=-td^+2-QAbz z>9=|34_s!OF%m=^a8CC5>K8r{WhgP+XqXfq8hr5K_Unl%hqSUXB?$$zrqT>wUz89^ zQXT^rWcMY~0__di=g%pFf~hgp6@0yq84L@@EF9O0T5nitG$$853EI#!0cas{a@ErP z64L$qay>mg$zN(8u%CL|L_$4N@}m8UU9($mUxjUC_cfy18SzWpcEYqjaekePMSD?c zAuWxPnwpBL*;FIqIa>Px!{OIU_#PxTih(SDnnp5o6=BBQxVb>VMHdM*~#msRyh{2W(qibC#g;AM99@T)?!(;q57E(fek zrqC?%I`4@d7nJ+Gm$K8RFV|8&ad}ASY;n`~^O9i~mao7QYyFA#=&YWRk&mNOfe&lH z%#d9&gOs~LcJ-{=^<>{-cYi;%yqr{2RCH;1S;ESS8^Cj3VTRl8?k>vNDHOiL`RE6Y zN+NNQkzq+^YcCYbG^*^e^YU74W*V=+Lt?c8tl5Qn;~= zxlfC4SdI&7?S)YAVOCaF#_<|r?ysAnJBc2w!R^Kwee2@l;xqzBLxhom;cIk>n&F!_ zf;z={bDH_JwKSEL4-|AFs|6Da7$N_~&uutDWEnTM#gcFn6BD89NIo7oiQ+VUIu+gP zI2CbGYq!|yxZ5iyC00zfF{0Nl?S5_*85QMyc<7kv0vJKzoZ6*^)F~EY_YC=tlM^}2 zEB5C@aK*f|cX(c(VeFYi{-(#kjWzuHkX(`WDS>y*r> z_}$RigrxuhVf1D9UoUIJv`=T-3#Y^#x_!`aQws|NVmb8~N*>H_I^Gt1wL-MNcJyes zq!d;2modgWtB7T8Qp zO__*o3U}{kWW@WA>%0`!mQ(sZ8_~_NchDU~wt>C0dQy8}MhkF#keKY}-DSz%VBEV`o2f1acs&M-tvLJDA3dDCV`Rj#QF*a7XOW$g zqbePe@w)P=cFC;Ed~n<HH+#rA+R|)#1!e=IM(PJhz68eWKXH%dP}7F^xapKG zF1IZfqrawbeU)&Sot1@#d;5lZJxKtrm?Ld8>jPOUs|R(CAIlHy>l_15I@~7v`hsB$ zox$~R6v{o}1~3VI#(e?pe4X0*f(G)GI>~MSX}yb5;xW?Ku+aLpNJg|_fnm#E1r!WE z}Tv6)#bbWz8cg*f58OUs*aqlOm-EuxwRFrERDijjs^%E+x6?J>+D8V6Mip} zG#T3(2)Le@T?z^cibzOcI@D^K5#gr@y%FCPC+;C;YPK4YRChbqmYErc<9XQ|8`a5x zwKbVSb>1R?axwy}yWSI)O*gx9^_*#Wcz6N=0~?~46&y=1r38$y+5!atZ|NBsGb1mC z&_}Hqhm&jN-F;orP<_0XUDPm1QZ(uO^gS9Fn9xxK>Oy>5|# zUSFn~jETTKx}PqWkB@8T=b2y<)E)Vp;oV%|dm1o8Q&N%%8QB^{+|e{yGJWHnVp~Ut z)RQM9*RD-sS0!EJ=0<$bM-{V5dy|*9(9I<#*DVdN>WqgXR9-=W@`-->he*>?D@#k2 z^lq~6wS39li>10v!JT#<7ee)!_dTK(p6&_8_U3G;eA*lI!{*j&4GVu%r4@0xri@&Y z+SsiND`4yb>DviM|9lQ1#ifoqjpUbplG2Ko*Rl2-*xYv+30ah?abfsdBUQUn`~W-k zx`(S6?f%+`4?s@r<67~v-3u%Q*H_)52RcXF3jtv`+6D*f8J$DputQ>M;De}(ysHcz zFYiN>%jl_}OhrC@Dr++54`#VFJx#@CReOYL4>gBGAv61cGze}V!1KFYwV&ahI&5S) z?sN%AKkYo8yP)2fIQh6zJGZ^fD@fJiU90cY;0gDBxK8|KMR$#h`0K7RCF@(r@Y(9> z+iO!($zL`eDZGh|)t&nqEA2!(G7{V~=}u)|b)RX~&uH;`IP)r@Pz82*np`}y2TdyO zO7Of~=LVgK3qA!UZqBwy;WI4jUE`bPWv`+Hi7L-iYt97k-Pf%#`;XGzzK51NIUJ7-$#n zT5FYj0?B8wfVcSg zUOzrx&hj8GJNyJV>G9(YpqZ|zG^`v$;2&qa-qiBu@o)6WmyDs;@JRLe%}A;})9L9*Vm_(;_Awi+KB%#Y7Yd z-erE;sHm>K3e#Td1h*DHoqT78#DYc`T z@y$v};06eG8WnT6G4w1h*$D<2j+|0_SJr0YCQ)D+9SaXWr-t&B^GhWA(64MgQ}Rkm(DLo?ws1F1l%vWQ@1ym2;K?ZN3L_4FB;kHL{p9rNO%Vro4ku01I|UYg z%DB%ocWm26E|A0n!ZWtUs(-q1ks^y0q##hheK6{ErrNpsxZCB=I){=YZUE?`U?w&pDj3S zvlm3*FpxgptjDLN6;IdKT*JomP-G$Gx8jPKpLEVhZ>DcQL30m4XELH(JeJN#Kz?ZH zj_r`m9YqQ~At=Zq>g+9iI~C4?z=T(=1Lu%zyts*piLsS+Dg~l%)NBs)Qu|M}dN<=xFIF z^CzE@hMLGezId}D0L06ayl3p~ek@0W&Ejjk5m4cKn`4|4JC+6xDj>6%8f%r~x{M~U zF7`%^&|jsr@NxS;Jj1064Oj1~6;7FDys&lsfxKNKK83DcR8$mq+i5$ZyCv$Ya!%*F zo0L00yRe)RyBFa&p9oq{dtQAq(Y2W55mtA)z`c3oN?&j`(*09^F!w31x(uGLvb?8E z8&0g>-9QW`IW4UZsadLkP?)rltO;Lb;5|=nL=8gTBK$mb3C^t8`z(Zkg^xU+jru%XO^hP& zPp_LHzW#P<;H!Xz^W*J}Q7G#qj}@2QKOAGcN_|;{)I8P0H1%xCC8lX322O58om$5* zvpsEw+*BIH;B#k^^VK4#LsG$JS~%>uPyB-8#Pmu}R(ylPPdlyl->3``=dvXre|9e=nFJI&$BBg z3O`28LHEW(hS~UO2)ukL7%hnQSG& z8Y|Uo&fgIgths7Fy8FpoX$jhi1TqSQ4AR_Yi&zedi%_aGKwPJh>dHrD*a)t)XyXnx zrNEsjj9I8NKl(F02c9KkHeByvHF|U{RYOI^K8!ycvt&L#PZY<7Z4Ynl7& z5=$BpuVb!zur8lrqh21&ccZy8b*!0R!m4*Wwk7IgkoyN|^%Y6Zb!0rN8kyQsu@6p0 zG3Kv0pMI9^v3ho2KUV#BkzdeILzN1*Q$m0NH)ESFtTwwsUX5m9*KB+3#JJ@H;Mmlg zHC-9CkH*CHWi@()rAD&+<<%o2BM-Z*&M_F}P-E{T2-*;A)Sg(XH)h>whBlHVe#Y*8 z+?RwIbkAjLmKhP={*S5>1(bZIMBCf$p%{cLH-;ctcY!vJz^qt?sGkUHQ!MNKa2s2dZ#(w)_*h{3oOlwki*2BP^l=nk>tCMDzsA z9aRP+R%Z$g+6f*9nU$dK$!vdyndft+77y9gAXl`L1A%P4o1RTNH;j#ZU;t|F;J%O` zjxV4By!Tm-CL|=}QK*!F#ypXyuY#@ZkK|hxzPAwxt?3eBm#343jR3gLHR)V=o)1 z;UlWfs8T_!bo|}-8+GD7)FSrNFr+EI3ZW7r08L0rq5<>vQTmk!VkQ#s z5K!)|^v&ydFb@t4(9WK0)Zsc$0M)qFp?!~X-iHod7ZLg^T>aVa6SSyogR$MWf?1iX z$_Ji#GAq25xA%DBi~i{Fv*pCIrzs!$dzS`Zhb=@_-{TFE zST-M3*~3PH8VR>ZSGZL{g0|7o(FVj)F|n~9e*_xyzAFSUdM_TIz`rTw+7^ZXxFikx zV#-7MEF@oC(^7@*HuCjIT-h|0w_Uw$ZSv40rwYe+bY1^?F-b`INK7s}! z(?>$MLVcl@e@dxnQ^^ep z#2FtgyM=GWuA2>LKpqZ}>gQXaW|l0-IdndSrXyL3tIm;ee0q>M*pL3XK@aE-Wne#}}0R)ojD~ zi}qDEv(153=N3QG+Yh(G_1{r%%BJDN7XyI5mneJflaPfOBis;|bn*OYtwNse4KgA- zX*>3j!(B$n#J;XBPLPY5fsEQP#RV(^qDjR2_utlT&r@~S?gcwT!8uZXc!NzXi7~Tj zblrYxZ;B=Q?xr2gGbund&Fa0%Y_oFFOo@&pK zOmQkb1)Ad#dnS^*U~`kh8tc?E+IzB*KTli+=QL!)YvrJ7#vs#&0i}HJxm!#o1Z;@t)Y1s;VmkH(#0RY^fG@H_iaB zdDx--X=~~{p7>y#Q2lGL2IPvW!3mEd!Ig>t^aJO@NVUW+J&tnFgqA`n9^IWGI zEfCYyj7^2T6=Jy>mN{eqIzyS4zki>2K9}HfO6ui;p)`};n3t`l>S6pjh(t=Zb<08M}4gdTht)i*vHB}+taPpo{;f%6WcEeCFNM#+9>o)lLd+PN5M_(Y?mL zeMiEe6)5s!HZ1O>6c-Z$Z~E&(ASE?L`D#Kp`UKLRzah>wCQQq0F`A`SRzy?WS?pdE zrLpTZloC}nS^i0XAxcm0#ZGgr1V<%DY_Y-2}>VP zQ~Oy2e|9I~1~cDW+e&gZo0)@?3hhjz!kPvo8zAZl7J4q#dr%jYSB7Z0h2!{3S)WY* zRJlC$4$5dq$V&r5L!R(xXfP7E)xi6QNg&&WEp+TSbz9t~!7Z~Yn6+3`UP|e@bqhs_ zGU?sB_T4e8Tfh9DbEj~B{yh9J(57xcxt5H64y9h(HJ4dCk!%@Rs5u0ZcKdN*9hHF9 zWFsi#)^lI6A)i1h#zOT;(XL?b*DAf?cKq@-@Zp!l>+BYB#Lf?=Y|c-QJcoQcpaZ-U z!-_3_(LFnL;l}!w^Et(4B6Mt>(Gq{_m3{&5RYr744Ss-zIvP`;a1zjZ|l)gdG!KQ!(hzW@qVw(J-kER_p>?yoL0 z4?n-&dH(qsRveWTO*mSPS^>t`-3{BvsW2W|)z!o}RN)g`izU0dC-bB5<;NSkp&%84 zGsAD3Y5U?AWS2Q~3t-atKqF8RwB;rW|3 zNx%=V+fk|rZzm6}%9xp5$DtAgYCWuKZJH_pDE#P&eA)}aw+`>D2XW7>%>rTkcDxvz zottyA_z--*@Pz@sj%J0mR;lE-wKelh+nHT2D#@Ssk#4;BZa!(~i)X6(!<4fg2qBr! zH{|AGmv{F_udAIaDc4bU>WUEo&QaXE5`X!s?<%XhjPuOymY2H=l-JBshv(1ZO+C78 z>qof+-^V}q4oXY>{t#3!Z~j{V_As%qnrNij%1Nkx)l0x!aH*~jE>D7iEZOS2S@~Gw zhZjp0Txo!o@gfEAjw2E}9*10o*yTg_Y%6%ZeALQR5?Mo{8d*2wV zS1%)npZLDae$@rf!E}I+Mb3((GkVK?D)_DIE8BD|q9(4vx^l~jMo@Np2KLU9g)PS` zdM_?oL&(#<5e>Pvce*kxEpl?o$%yz8zP?uwIZZUnE5@242+Cs6CKI|AJR(T z&GPW>GNUwv4LqY;dV{6yFQuoqo!l=x(`Z5UEwpt`!erS9ng_7dwnU^;>+?Bz>ms6$ z)zy8+$Fuws96t+_#>YR8h>PoV>0=Z35CY!7X{Z(B(R}KcFBDiL>1d%uZ{kmGQH2q} z(P-GSnR-zuQ_}G`u({a)O7o4OG=mB^&ff8H?}3~l--Uj>xf-N9y1KgRLtSw^KFjA- z4jzps2cT5>!`C-0=S=a2maeP>r#I;7ikN(B=(^cB;n?-y0 zrJtAAc4;L2(A!VJiz4Bm+KLf>`V>n=Tf18$iGcptO^ggH0mrI!x5%VFoG zQ=7_bMb3K^nTv$)-4mw$BZM%92Ad{&Gz#ewos_68rvOe(Lu_;wzCC8+;J`ed#Ka25 zqdbY2es!TAE=sar>iixt&axTcOhVia58vrx)v70997=FxG4H}uYmu_gw~;D?Q!ay_|$!`tZv7D?9ysnl%4F(x+ zizh)#OU593F;6do7CmTS(BS8HCNY-PZV)v9Rt0HCM0X{k4^|h$VelBtE9SY+bcv3U z(dQ%8bypOI2A!g@xvkB~h|Mez8cd>j#4pM_Uu~yk8a)`sd6iX61VoaivYTaj{Ln$A zj)d^&*x0+(;xUU(L;uS(;r{H2(LDzQ`IiyB0g(V3M%UEf{%2;gOfKBJwXNFKMIk#aEja!CYr3DJ6&f-~e5LEAcgFTu1rAJpPQ4iq^8l5A zRO_&2CH1XM;Xb#vhg(SH_lv{ui>9ips~;U0T%lM^))^*sqxt(-(9FGj%Zp*2u6QJX zC#J6ssy+z)Oxd-^$H#>ym`bPJUsx848|Gfte(&$D1LBND`*OW|g%{tMU;{1v+(n9% zf81A@Co{qA2AF0D*rX#^#FQ0%R7RhIs-9O+p*(gtir&twDxiiEJ)QW ztG|8?=AvJxr+1uRD2F?K4Qc1Ws$X;R#~pU}2paA-Xj?r}=`^W`0Y&Ay*Ltt;v} z+-Ff$XHWkc8m#k~Q|R3V#+@)x7cm*>WJ7d{6$%D`|d zT(V*7yU5tIHPH@NY;-i?=Q@U|(H_SdEu*5mrWu`Iq)nmySy{iKOztY@o#A4Ok!@5O zw_TM zUhebqCvWec&iMB1cYRKoeIP5l+0St&X*2Ljv5-%thpn)}T@B`&{iJsl%*{Deg$jnQ z%WGUlC(PUOVqPFY0{nhwQ?SnEfK`#wQp5CWMq&cYUUu=5wKeyYC%Dv@!2`gO#j+~0 z*zw%T;_)f<>)9U}3W^JGc~=JF-&43hqn9L~kL!NvP~0^z?^!^GxfDM|BR=_+Xd$h% zH0EO+6yZkDpyFJSXX;10V`BoNDMA;Hes*VdX@11#J>Qt9Qd6E#dch8)4)KQ5?ea>B z!`k`hSYSPKdAE48wDc8Fg-D%7H#a`d)Z&W5;a_nvNOTFFaX1F|renD{X9n31vv~Rv zACkf9%lJ8GXg*fbOtr>cYOHc!?vSW6YKMXy1-wYFTkXOse}N;ym6-l?;t@nOIA2>l+~QYZX$9}7 z{xt!MXV#0cWau^o*uE{3;bO<~Z@yeg&dl_4AZM2{I&l^IN!WF=U$o#UW*;JY`?Ov) z(ATS(8Yj|-6rI7VBovIL$;zz2c*BMDxR#v31^j8mU-0hr&T(O&|>F4UmmIHBU z<}X|V!6A4obTsJqb#Vv7{Y9?bPwT}cM9b`jmRZB>Hx-z1_K{B*@IDZiqY~H6w3q|J z-YT_yl+jL9E_&lpc_)>P9?WekD=P#V1%oK+DL-(_O7E^V#rW*+Pn$is=kx$?#hXC~ zKdNEH+{E0RDC7Lor-OG4!}2w8#2rOwg+f@aVoBLpc(FMI7smw`(Q4|8%B;6v(>1pP zaORb{g%RT;M8^8ygPyR>-K&7G@GVqd^WD26$Vwn0EUd1Gj5KV%8UeHH=g+)Pm1ObF z5!Eo4b;Yyx$ct=k>f&9xN|SnGo!-7rUS6J}N+5TFn<;|s)iFcP5(<=y&t#UjE}))x6;PUj-$z2673$R{@g1Bi!Q#Q( z&T$AplD+HPvG8d=u}tGrc9dQk5NpP0oOwQHdiu@d8t{0qDkVhpQkV$Z%re0ULs*!{!qj||8nyS@Tq{%zTyZK} z&X#+HM?SsA&2!=6Tz6{(EXV7`&$n-zh52)Ff0Nv4PDwET{C7IW-eVWcZAwEgHVmQBG% z3C`}aELV|6#ZYlRjb&IDfvo=t=A_hd|APPC7Qel>?Yo}F2mcsu_=eA62tZPfsBN5)U4PhmhR$ zfe8-`9e3lgZc4M zI|}{JOw61LhH-3>!8YFWf8>8CIdDRz_nc?89IYXD2@LVS`0??*iTg+bcwu_Wkx68t zd*zha&aSp%_!5H6ur&?XY%ukSi}wXSERLb$?($(QFLfMIVNlAy(!JEPXB40u1rBMQ z+yq7dOu1g*-iTx~BLfG_4RGc%F)`_kSD=H3j2>k0A6?K4)sK%lI~7%A@;P=Q0|{A! zo{001@r7LIN!FIugVE~VXP4kWnx6>c(BX^$=+HIx>%w-4&zP@WD?G&Pkvo6P&da-B8jpq2;D7Q< zKmJ9)I)}L3&s>8rjwg#&Qc^zI_JskR{dhutEvQA*rP$cmipc!z)E9cf{0oRt3JeKB z*Fu2t2MdP;)b>uJo#aqOf*WSEpu;RLFU!lz*Uz^{A2ZJOP)KV-$&r-7)1xzdBPB^a zR~Hvy#d+gd;B=1vZwzGm)M^)dvNOS@OPnG~Lh9OA z_5QFW;^X5ZqF1;KzA^pp2_tbJ(x3VHUCKSXonqC`dmfB&G`Q&;4cUF%tE?W~*3M5v zf15WNlfZox=v?>PMNecKM_1xMY(g@x15mEreRdQ!6u{L3f;>p)VF*VCkODc_C@DnF z;Yf>n&N6k2Ey1yI-%NN~2v&FB}_6tE`mSch=X_1BWR(!Vt2*VMW*A zj|svf;Nz@K$L~4=pJKox!-xhx+-iK0XKyIzrrv)^t_*QkwrjraO}Fa<1TBmUFma&b z$nk&#mEWRv@AzNjdbNciY?kt91&n?bHc~bInCVRF{VjlnmhO4Jf^DDVBwT-V^(GT8 z{)7*Y!(lvCCeC^gyn2}0w}K*pJ_DxusL47&`5vcpb!_%4hzsT9#Qq=W3WGf!igy3! z1}^)!mnrg*K{DUiv`wXgUJTrGrYbGgk@%7t<_}^r6rP@8$2jSZYX}zZdm`-|_%!Z7 z@dzZr@P>Vk-qe1iqrrYOKzUy88GquVq~Lz*=um!KN)7H6>HFH((V*D2L$SS58(H9I zhmxzKlJw^NqQXL2h1&@~a5(szcI$~C5c)D2nMYoysR0i+Gk60;*yq@ z`Ai2mZ~d$VrR!}4?sOZFBlKi~|1cZP%C@qN z6k#D0#Dd>DVGd-<8Ct9&-`xRF{54Ue986}~GI;{(D7h}bdh6!Xs;VgY$DB`h#4j#^ zX}ZvWy&KjxJm}fkP1?GjJ$ttKL*XKvX%FEFzBp_Z_r_dDw@ALwW=vsko@`4m9EIGX zzjp23;IXY;k{>Y5si_Q1thk~L(G*}}0v);0<7~)7oScA$%zD*WjZi+` z(PJaAAp$A0NeKDLjg)V|J~QVG%?Sk`9+FEGfL{;?pq5YF`Kxl{Jye&>)uDpmC*h-& z_UjZBl$6X>bwjJz$0IM2+*qDY_=+VH`TBmsb78dm8Zv#EP6F>(0vqc#58{pkoAZ`S z)9?LzQP@NHJf?Gl452uF9#X)2sQPeLc@*VtWTURblpCQ;UDmTm$(LrgC}iqbdr2i2 zfTxL5#04Ul0%Qj8QhXjO(rd8=wdV7X2$j?R2w#+i^Op%rD&d#t;Imf$@{$~^t+3T+ za(4wH;nwE1B#YBlp6PDPm3F^`CJ`2B_KM)8qxLv~wuW&u`{Rhu;s+O+q9WXxdM}@- zer6PAw||(_eCu-ncDH338?LDT$e2GlnYsx3^{c)&TabW|Q0BfI*;;bTKn@XKAYDJQ z3^do7c~N^4!9QMrc2z}_l4dcdHs_TMC^M;}^u(H)n$?nF*V=mQKvQ1Bk7I=vsMp4{aKUg0;bbGj=& z9B(_%Yo)HLpHMKLg!%cQLIHA&C9KjmoalTg>6l}9s)|s6BBHj@0Z!<`vys+=O%#%- zI=fCt?*_2ispj`8CM>}hfDCIIX?c0jsj+u|-NG~z*M9cp-On;%S?$?$N)ro(9g{TK zP)RGRf~7rshp9V{A3s(%$#~K2PKH!yx2PoXDh$2@d%(dQ*&WE?{VE-zJwoX z_~O=}17&7A=yhX($4xGEvYU30a1#JVswKMd)*AtE?4RW#KAa3k@2cnNfMEnN8Bx9i zF^Y80y;DN_*VU{Em+w1bV1Lx%tPqZH+&M^{ z3(gP`7Zs>f|JQl_UhMAwS%BV)xe3D>Tf0UQ2?n$9`y0C6Z2k-Wvuh*8jvF=Wp92de zGagmjuV34#fv!P%PeNWEdDX9Gn7tWNBJLX>A2t2}&PUKqi8gpm#U}3JN#4EdBwgaN zFh74ICi=RCXUAg<7^tD>$m;3wDrTZ>j@xzXkCkD<@nAFluwoq;9!}cuBLzlbk_E9Q zc2SD0%cNWhFRrx;bCY3$Z2JT7bigGTA#-)72k;sK2T*yWriyE^f=K9TfUscWvZsRs znVu=;H$3bQ25{atZ!Klr+(d8Fgii}!MfLgB7k@2q!cu?Kc>lmfGB(`F!8& zYzZh6(VjI4pLZvTKX`KtZcazA_@8Yo_5MsgV49-f!K?fY^gid8H}8tPvUhK)>h3{? z{Rn5TQ=66K^yUVp+qne=a=^$Es54P<9{-OuWovH3Fkdytmq6!!l9;9~<@XPw!Ruo= z;OXv)82TO`>j#dLq>mqzSD!+j;jO@`qOXDL3Fk!%3EhXeoa*Y3kFaR@c%a=&2Q)3k zUVCuMAQlkcv>Na>fF;%y@OtzSQ51zQ8Wk|?Oe`!|_FwOLk!=JWf1be#mWq|)nCY)} zn(b6WF0!H>^NWcK%aNmXd-E|N;((E)HN2cRhR{r^#gtRWUf$zqAvSgRj;}umKv%GS zsAy{Dm9RJC6(;l`EYoh7hLVEdOs(z+s5DW^CLG-I04rT;e^O+F_}OMCrGU4)QY{|? z(ZlZF6q=@0;DQ4vla5%r^Fb9{L@*!J+&LF~6%kQCwXwG6{P=n;a>;TI;kCEh+@$hE z%qX?^g|gu^UDvPZ-)Jt>#`&Hk9uDh@S59wpDLKPlH*7q!tjVkAE;srFwmUmJTc6*4 zP9%&V&kzwS6s|>Z&?ABd6J&<3EZMJgG{5Ehj4NU6mC7(MK;ZCo{-5?nVCZj;V(#4Yw><{aqhf*}{++2*hiPw@geBQ3(vm;kDHe;BqYj!XCaJi`xhp^m#WOeX>0+vgcP_83&5NF2a-%eV{CF%f zsV<@N7r0tlG~VI@#|Bf&oTgHnRj@uR3Mei>4ZMaT4ZQMi^Tt^-I7Y6>bQh`f^1!oZ ze$LA?kI!`mGkHDOt&xy=dsSea=$mGeoSYmk!B4<|^~Ti?lxtqSdIdh=SzJf z*mR8H_d@sTdx{Ax>T?c_M~|3B1xo=yJ9JH0!G>OJ+|Th!I}k1Wmnxut6XDD2`G#C{ z#4ch{TtGF+tTf4fDLVhWkHtCuA8oLPd3VJ9d?#s(D=jl%HKoTaUWIZ#obix=R$S`G zi5ZZ~vS03m-O=MBu^|Omc<#{}UPlU>j`T9;Ua%C8A{#~(I60}6xqT1eYVq~0U$;Eo zT^95>_vR=|5OpCzn8B|<;h^32ycj8du?0H@+qG8NkAkSFPZ^~NQRt}=b2Tis;Q*Xd zB+Li;>LwNfu_HLH$pz2a?8~r+mihUf3K)Cday)GmdDad45J8`lHLLcIB!ct3aK3n@ zhJ!Pek#CQu;T54Y-3K>&?Dz5U@2D{1`D?yWon51vX#gVs9aXBHP|D$Koe8KzefME{ zfb1a#qr%KyK8#*4j|O~Hk`yl#d?^Gk|Ij@}y|g6QV9pI^I4x1o+n42NKAIxa79tCd zV?TC{FHH>}c;!NFXtDe26l#&Yu||4D5*a3Uh!m@O6SzIFoK| z=V#d7B&iTt-|C-L8@2jh%6ne2=YD+2rHM&BFxQN+k5LQe%`q!0>=VuP@gtsS#`qpu z*fqEr3r;=IB&$8tY(*#m2?CPM{EUb)H}{<8cVH5;a<-0Ky(fc*;V#@1Nsr}tiVP=6 z`33oo;H-VsUC%ua-3g6vZEbjuxXpz9KxvfHPQRqc63w>!so8fyfQq{7gRO)y(<4bO zu~Ta_)k@%ZZtiWJ7Y10=Xcd_E^7XT2zrg}^VZ_|%z4-dnRDH?v;+A9M=poD0`~9A= z-|z-X>)?y);3spYp)1i*RrJj?959Q=$13vuF(2N?b>2JNXb7{O_lf~=@Q%cPMEGW9 zNu5w%uso7AfBj0w%NwQU1{~`9d*W@q6BD7pjH8^oZqK*J-F#6NLUL)!!vl3;VFR&U z3d}eP4y{zA6@51%Um(U%)jrzQbcAKQgXM=R|a&L*mNxjUW2z36A~O~ zoZ+g2KKiLxSOx-;B&~Rd(nyXuMI7YPp7HTUjY;EMvmnr3&DzE=Y*d0c43v zb1f|z5P<~ORu%414OeV2|7_z%!=X}sY?=Wa0VsW*A9EXY>JjVz17d=(g@k3wC^=a= z2@C1(luUtX_*t3P64lNjChU56Lsh7>L8iM;7=V!ewbqPJDNAaj4GW(P-eXz2-OfP| z-s|y8Ffpn$4r{`vpA+v9@EC>PxiFu2#UFDK3HMGdA7^Uo?}142=QO08pmT}P+Jm$U$te0UU!aSPuBZW=;8y8$pTV`E*-~S;cd14773z6s;^r$lL zyP%67t1P`q(f=CKP;)RD3|m&;NSN=LkB<3dO?N<&$`G~s!|aWyn;u6Bd=M_{v*TBj z2V_FFOh5X-2iw=%``wfQ{+j~{cJx=$ii#oT>^6smz%CY!4D!VAy;DR4Ev}3FaI=Z} zQW`QG3i|8UgO6U)B-h@T5(8d_?b))crWYr|VA>h!a)PKjV0c2aYI#Vek= znId}3pi7LPV-Wvm!jLxYDk;(b)!vmyL)pLmsd!pQNg-diqLu=br~Ls#FmE0NumsJ>8*g8a)i2R+JK-z+x?YO2;({d)|mQUC0fYo;-VRtGfL<1LcH>wl+QFrMJ+h z2nts8F@I-USAVpBKPDbfToFMHApL{N%c}DJi;5UmNOEW)l05irlsV4=?w)k=xe@2z zoXf56#pBx$0^K@BW`5yC7}{1_%(S>_H6OHBcVQ^1a;>8xvmP-V0g+77%E35Mur%^o z(4-7qiS5s12al8Bdi{gf=qlhyA1&Tw;~*@m!=xY|Mwwfj^MPh^$+BC{AiQ2P$r6V__ zZv$D_W#U*}RrMZ7eXn1?&a`Rzc(?R2G*BxmWz}GDLYK~FC@_%KkQl%lEcaG?8rUKa z9zCl1Gv2xvDow}f%XoARG7yGMrtty{ZbFA@jhxADYyqWph9Hc-UpcU&o@c)H4qJ4d z6|`^Ot|CD8xz}q734N(Qq!gpjhgf%@zSKm5Ub#f!tsH z!pvVJ=Vk?*_r-)XUhe(95EH}0CD$UFph5@pPLP9q0ec7Yxk398wHVmLyX^0G+1G%O zV2df94Tz`+g6xdUnV8?fG)&)tV?Hh|jS-oOCaHY{;1H*OEX%&@DvZhEb8>R91GP^! zCn)q+I<8+)WDed7tU}N_MHHVdA2<^If$1#Thgj;@@X@v5mMisE`9Nhzh}-iUaBu1^ zsRFk7{&7`d;qP}>;JEXU-+Jhf>KPRA@udg=fge<~bVa@Qq0t_K0n>vA z56-}OeIvc?p!)@jh{p1k;pn2O)G0@F##>cSerM#L-I11YTcrs zIUmDAxoGg}RDTCKj8@3<77za$N3IZ2o)41oj9@+y(@N%W#&xg8I7Z4?gd z7ZFf1I!gj*=cg&lL+9~wzRR;3PY7V3#0oYd*_l9Y8mW#}6neH3sQPZz{wmc)xSx{0 z?n3zklIi(y{e)(ACyV2MrD@p&X)A;Qn`l_wXCol z9OGb_nCq5vlwKm(*S@b<<$KKsR@l3;ZZ|7^9?JP_9(mXj*E1b`<|q>{RGtJ7n)cU8 zg8~6G8GmN+rKP4(%+H@+tb6F)KeJoF;VleVvvwk6A4A97U0=IyrA<9*SQs~`xnpiiKRmOY<*86s zsekNYDX51oF}k6W@}T49)Ti!iqJ1t@3k`5j*w%6$kSgK;?ZOIz$44I!9gX1YK- zvjO3bQ=0hs`A?v`C94HiZL1B0^+bow#Gda^uUlWCaDOd5=fSk*dEB+XeDso<_hIwc z)BbB-);2a)P+m?M)zmx{yu!zCXY#9NDN5_209WcPLrI85)tcCN{D^y%54Q zF7(Hr_*a7b!aAnJRF;dp9J7;j)yz!X=N*)dH`415JqtoZJymi7d-m?F9~fF#@lt%& zdc7O_RaXp-eGX*DAZ~C3ctR`%CY-Blm_6y{&EtB9$r?ut$qa(aL%dY_v$0q1Nc;uJ zv{zyjw*z#)Iz%Jbrjvu-EcNwdbUz+>&5tN&1StU9=zdbc>25!p*_Q6P z%@OX9K+vEM)ro3a=;mBE|9OhJ)iiN@rj+?=q@>NasYso~wsRN^kihl@nJ%o1#-_TY z1AGJ(_+S>`eo40?5XqFQ>t#c^NkSEz;ZnX?^h46SMdLi~hJN1z%-H%q%Jm)(=d5k8 zJf4>G4@`9v!tOk~jbM)Q<3yloEX3Q_EZjIP+G-OSCaN;MSjc7(kasX)t7{lrC>U?fUZ1cWPBC)Ln z&T+D>KJJK%xBHdap0NBt%vS#3Ot@u|p)xO$Ci)`hST7 zI96~e<2!)ma^R1*QrAb)CBu+CRBp&w225iReFT8Ma;L6W#lpB|ZEaK$zDb(wL=I^h zU>f$B4XHj)W6O*?ZZm&|bzbn5gzb5>!ZEuz zTe5OEfG@yUvphQKqW@JW_XA5u)wy48(Z|{;pLX!t{@4$l`fE;Nd#>Cp2{YGWWTf_% z=Px*lw-?I*!@vWER~fkn`MgKpq2q}XXZ`PwEitM%XI-U+-*gklg{8r`pIVete< zW{9X22yKc3^O~n~gITpaL++3gc`Bcea`G<-`4pYX($yq;%f#QGebph_PdB5OuA?#b}C$`~ik60OwA^1(Hb}A@^%&C+nCDVNCFS;+!_~bFN&LLqn%sukw^L_Aa0KMUE#{x87p;{tWv zL8(NYXUXve1@tK?Ysw7j18&iwF^lI@+*n;MYHGXMs_{$Oj*EkkK)FYDJ9*@Xr7FP( zlx->{v5K%yM^E*Mg11Q=>=N-qWrl;tnC8>(FcAJ|26$~~MBxlv{JUcIfS=gOYJ+pc zB3!bU!E+yHu;l1_!VH>b)FuADSc#C>69KSyDr@Nw_6^GYw;q>8C96VaE9-aRa(U00 zpYO4IZhq_lHEC;GTd?lO(w*MDP)RKS2s~xDpC{t<{EisRQQ=?i+}zv{v*?XD@*!ez zb@?(dSi3z~Rj3Uol)b!)x>@^e03-s1%F%ZZ`1Z#EZrf6w3U59fro1Y|L&FGZC=Y!g z{>-!I@u$?gROl+lMXO;!AANPf;P`ZetMM_uzCT{4y$0?P?QWd@@GB|w2j_ex=(YIm zd#=Tejd=U{m5g*SLoEsGHUN$a4DY})z!-k}Z%AQ5EEO<8oYrx*;O)YB`bT%MbQ(P9 z?Zg||u((fQ`U80%df)?Lh;|{{C+Dj1RHR!BJ7Y@C9we}5HqafnO-BB80Vfy4fG68D zlAq&HeG&m6i~am8r8+ezXo3%fRPwE?DSvVMY`X}BlXv9>`0qWH*vG2sZ^;cyz_Syda(EsH(tm75QIo&FbP4MAP@(O{zGs{17lX3_IxsA7iAv)vzPfbaEy^hEY^0-d z(b!mWCjN{cS<=ka8dPjierw{#dqu~W&zDM}<2nl-@%TkR4M!vs9i(d@0t3KFs0(x6 zp1B{6C@vhemz^F48|{$tQ5*pS%~{I*n$3jL;Pg{Q?Y$UQb4_`>6a<{0+cVWX0@Wi z!XuhnGryqd;gK3+X9Pg@#HmVyL74MuH z*&nAUtMlx;M-#y@Mfc(XHU(G*ERcrTZ+$T{1*3uowgDMGq*8}p)+DsdDezFmXRJS8 zjpIYtHe7Sp?RM;HsoC7Yx!r2Jy9+Dg*fs zFhl^=%N#(1myc>a$-(#2ZLv(BzN}smfr5$jbGS1AFowxx4}c~y5Cm85?oxn@Jrz7E z3+KywrvF%WeJ~VXR(!@)aZ!uz$VDpj6T->GJUxuUrWL8or+46CVfXzo4OADvU!PAM{lSr(K3O1;^AKR;t*uFz15!akPKOSjv5 zq49}J9xGemxT1UY>hCbKH64NYpXx0GIhcy7YBMnYd z>I*0oRW)aWTUr|9(UN)j`3Yc_h~-PIX}n|UB~TRy%1do%rWO}XK(_>f8Tg;d<1BJO zr+@&PkGI@3%sgZgeMB0LY;en8k-0Old;?oQ?-I7P?)nKE=DLy!fgu8_P2`(ZH>{a( z&BgGZ=^0*PPB!bra_H!ff4Be`U(Zbv1k$`iXJoDl20#~}JmjHM&)H91*w3fLzt*|O zvRDQ=^g%y5P%s*!3Y$?z%N;g0g_pI~O!+;J;Xtlt&aDXO?hLgt``a^UWL9MoNqf5@ zb})7}0T7~*OQ`_KF2rK}?Dm4yT@L6b`59NMC_P`m*PiwoiGH}vMj0yG7q5ksxDqIF zV?Mt+jD%XZ#i!>(A8XlEMZzkPcWoRz#dM~cjou7&heeVEJE?G_ZSaUx)OrI8e|6L= zZL53+_Q~ZP-`J%7mY>`^7HV0bc$rQ#JR@V)dFsbW7@hzy6v~luIURAug)JjwNdh^= zr+kc20#`0*d9)8ZMk zVy~SFA-*Bfa+tWFF=j>bU79u>yIhy^Ih1ZJF!Bp6HrW* zvg>Gb?>wGN&%oM-(@!mZZKtnUuyU&8^n6{@#9~k9Zf_oww$@f%*r46lmK9nD4-Hk1 zc0ZQsGlW?|s`tXkZiQapbQ`>ra~(+~t~bh1wSgNxpUaeS(Q0ADXCk9$hGX9FdbYLN zag#!~x=%2)(Ff{Ald5i2;!+Q(6Q4X>|3bgLE*34`=lSC7EI3G?8RA)eQ7VjGcb@|$ zcG}F$40$kYMuhsqe=Lp{anYoI$D=2E0+ zP50zGs!t2+?Oyl8-N&oDKv-}%2+X61S6s50SiMwd$fu6oGHYEg^A!)+_xWBq1HzpP ziv_Pss8_1j(=W^AdAPsIh`pIKnN=IM8qGGF+C1f`*}ghH=-1ZLa_U!>fqrFpr$!BB z(9Ng8n0&)`PWFci8!xB6)Ih8RS40sRc};Xr9*HxS!Awyo%cdztWJ%6l@>WY$VY3&s zVs`B~eJR-=$$^1^wvwg(a)#TsZL7?{4%}mVX0X&1!T#&{Q8}lY5vPu)pn>x zLCE4F3Uy-L9?(b-My58ii7sI04h< z)TKV3va`$m>k~6G2iwtXqA$(R=u|t>M4qjkU24=ZgYZ>#E8s^4c7w3|lfyF{NJ~5L z{v`3rYaFZ7j?^4~;7+ENmX;oql*nN1G#%dw*5W9XZs+a6R2&XG$+UiJpit&ya#HI- z>7ut^X5e>rXIl8RIzPUc08Z^WHws*alk*hpI?`{{mpv@N`p-;~1Xyq@@287yV(wIbF(-7t&4&`)Cf z9-g$`B5DFe-fps^j9WigN>=u^qW#ul^2Dr)fpSJc3(H1al9KZB@^l_gPE6oxd9jv3 zHsEL98haq~bx)?ndh#F=NLxpu{%jf5Uy9=~X0eOdrh8@G=-t`%@xu)+Zh+sLTscG1 z10yC!TPLSXxN&!p>(|%UH64o_dd_ohgV~M-o5EGBDU62ht1f;dc(4h47 zmt*E8p1tlbN+_1T?f_dc<9WHb(q#I)5I{rvn0R<+;AV+j$j9X{sg=bK{26EQG8u!VFYcuaQ}u8cT7 z_IcEPTXN!^XJ0xPX?ONGmYIN~XhNY0p!0B3bJ^+kbD+}k%ElYGl?iV^y!f|eubZw>x}o!Wax3~51C(bBCbrz|<8-Pm&2tvhKf6qO z^3dFQ*pA*_U7sb2XRe9)+U8@;0xTSgrkhlyX23)^w*M6hRsKh&BMN_OewQI+1_U6y zJA2r1BI%6-4u`vTZNSZWs6Nq=@!Ed*IeESxZIoBii;nY{fTd(Q2Bg_4v zu!qK2)7b1R9;%h661L{H9~e)P#uBK$i66HZ*GL&)Hl8n2-j;)LH)=fzqodcs$meaa zpcf5DeYW{XNcO?F5Pv=J$Uw`_%+{?-1hgceB>{?-1hgceB>{|8Xe~3XF{C8{Z9AY*dNGn^h7 zkNmY_)MVl5OouwL)9{~h3F=wE#?O#{)4u(8RA@2T3#%gHG;0D$z3dJ~|A5%FqxZ@?=zi3Ko|6(%HzP)+70%$SW48;FdLWmrU{qivV S-LA*TuT@jgQqE8^5Be`C+=6%j diff --git a/forui/test/golden/header/zinc-dark-raw-title.png b/forui/test/golden/header/zinc-dark-raw-title.png deleted file mode 100644 index f8f0847cf39f4d3b6a810d351537a5362805c0c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28218 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 aKp65nJ=`LGJ#-5B3k~&)XR&8&Z~Yfd1E=Ev diff --git a/forui/test/golden/header/zinc-light-raw-title.png b/forui/test/golden/header/zinc-light-raw-title.png deleted file mode 100644 index 88810b55a9fad4bee196d23d8923c17a7afa11c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28143 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

y6s|H>* z@T!4V4IlzMD&SE8j|zBHz@q}*Ao))f{LiOo;%L<;@P`HbIDaF6S1`PS;T6pPqG0}i zDiSwR{69Yovz=i_xE|o8{L9Z@g^>8~kLy8B^S-^FbY4u>8Odmo8B5O`rCR;9O&DV5VPm{@VTj0jHgDj{pDw diff --git a/forui/test/golden/nested-header/zinc-dark-header.png b/forui/test/golden/nested-header/zinc-dark-header.png deleted file mode 100644 index 5404af175d154d04f32e6813c8dbafc069418b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28334 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 T=gwI=a^2JV#wW6Wv%C3Uv(Ol1 diff --git a/forui/test/golden/nested-header/zinc-dark-raw-title.png b/forui/test/golden/nested-header/zinc-dark-raw-title.png deleted file mode 100644 index 9eea2c8305d6589fe80b9a4bceac2a38026e132c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29778 zcmeHQ`8$;R`=4_@crd;UGrR*%g{W}yx;fxzVFxaejbJXrK`#IJMZr(6pBsj zoccu+YWrmrYU{RbTi`ckl;z*x+br|HH^)PrAkY`oro;_@#Wuhq94+jtpN&${?VELdS-Wy_CT zU=ua6t7gM8Z6xf+z`$=Zy?yW+0TV{Vxey42bvrXoq%AHEZp#4Rid#4iT zH$N20)=0>$Dj|7jK$wb)1t z7Pa{Q$?(_X2#6FAJ6ayLEwuN*guDLM4{q{gDf-_WS?WepxLSBJe-fTT;Dy z1yQR{s8nj9=`o_Lj_p&mh_$sf`r@L3pkP1*#Zk`H)s@)R)>dM_fh4OY{Y}?q-{cR{l<+G?7MbZ zuU2+D6YJ{Y3eEG@-=6sX9uz8o;nlmzr@Y(wWHT8Z%~*D|u*C9h-MY0mc`i3CEzKRf zhRyBt9-5qN>+1F;(6n$LYzlcYGBVKJm2F>h8!)X*!reE&{r>B%-?&Ld)4%+Yzo

81D8eRr|fHd=MCj@vq9idq@y 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 diff --git a/forui/test/golden/nested-header/zinc-light-raw-title.png b/forui/test/golden/nested-header/zinc-light-raw-title.png deleted file mode 100644 index fdcb32118f542c3d5f8a3103ecdf4a081d161089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29696 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 FHeader( - title: title, - rawTitle: rawTitle, - ), - returnsNormally, - ); - }); - } - - for (final (title, rawTitle) in [ - (null, null), - ('', const SizedBox()), - ]) { - testWidgets('constructor throws error', (tester) async { - expect( - () => FHeader( - title: title, - rawTitle: rawTitle, - ), - throwsAssertionError, - ); - }); - } - }); -} diff --git a/forui/test/src/widgets/header/nested_header_golden_test.dart b/forui/test/src/widgets/header/nested_header_golden_test.dart new file mode 100644 index 000000000..bca8ffa74 --- /dev/null +++ b/forui/test/src/widgets/header/nested_header_golden_test.dart @@ -0,0 +1,48 @@ +@Tags(['golden']) +library; + +import 'package:flutter/widgets.dart'; + +import 'package:flutter_test/flutter_test.dart'; + +import 'package:forui/forui.dart'; +import '../../test_scaffold.dart'; + +void main() { + group('FNestedHeader', () { + for (final (name, theme, _) in TestScaffold.themes) { + testWidgets('$name with FNestedHeader actions', (tester) async { + await tester.pumpWidget( + TestScaffold( + data: theme, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: FHeader.nested( + title: const Text('Title'), + leftActions: [ + FHeaderAction.back(onPress: () {}), + FHeaderAction( + icon: FAssets.icons.alarmClock, + onPress: null, + ), + ], + rightActions: [ + FHeaderAction( + icon: FAssets.icons.plus, + onPress: () {}, + ), + FHeaderAction.x(onPress: () {}), + ], + ), + ), + ), + ); + + await expectLater( + find.byType(TestScaffold), + matchesGoldenFile('header/nested/$name-header.png'), + ); + }); + } + }); +} diff --git a/forui/test/src/widgets/header/header_golden_test.dart b/forui/test/src/widgets/header/root_header_golden_test.dart similarity index 54% rename from forui/test/src/widgets/header/header_golden_test.dart rename to forui/test/src/widgets/header/root_header_golden_test.dart index 46b7e9f11..bc1645ad4 100644 --- a/forui/test/src/widgets/header/header_golden_test.dart +++ b/forui/test/src/widgets/header/root_header_golden_test.dart @@ -12,16 +12,16 @@ const title = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.'; void main() { - group('FHeader', () { + group('FRootHeader', () { for (final (name, theme, _) in TestScaffold.themes) { - testWidgets('$name with FHeader actions', (tester) async { + testWidgets('$name with FRootHeader actions', (tester) async { await tester.pumpWidget( TestScaffold( data: theme, child: Padding( padding: const EdgeInsets.symmetric(horizontal: 20), child: FHeader( - title: title, + title: const Text(title), actions: [ FHeaderAction( icon: FAssets.icons.alarmClock, @@ -39,36 +39,7 @@ void main() { await expectLater( find.byType(TestScaffold), - matchesGoldenFile('header/$name-header.png'), - ); - }); - - testWidgets('$name with raw title', (tester) async { - await tester.pumpWidget( - TestScaffold( - data: theme, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: FHeader( - rawTitle: const Text('Title'), - actions: [ - FHeaderAction( - icon: FAssets.icons.alarmClock, - onPress: null, - ), - FHeaderAction( - icon: FAssets.icons.plus, - onPress: () {}, - ), - ], - ), - ), - ), - ); - - await expectLater( - find.byType(TestScaffold), - matchesGoldenFile('header/$name-raw-title.png'), + matchesGoldenFile('header/root/$name-header.png'), ); }); } diff --git a/forui/test/src/widgets/nested_header/nested_header_golden_test.dart b/forui/test/src/widgets/nested_header/nested_header_golden_test.dart deleted file mode 100644 index 674fd1447..000000000 --- a/forui/test/src/widgets/nested_header/nested_header_golden_test.dart +++ /dev/null @@ -1,79 +0,0 @@ -@Tags(['golden']) -library; - -import 'package:flutter/widgets.dart'; - -import 'package:flutter_test/flutter_test.dart'; - -import 'package:forui/forui.dart'; -import '../../test_scaffold.dart'; - -void main() { - group('FNestedHeader', () { - for (final (name, theme, _) in TestScaffold.themes) { - testWidgets('$name with FNestedHeader actions', (tester) async { - await tester.pumpWidget( - TestScaffold( - data: theme, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: FNestedHeader( - title: 'Title', - rightActions: [ - FNestedHeaderAction( - icon: FAssets.icons.alarmClock, - onPress: null, - ), - FNestedHeaderAction( - icon: FAssets.icons.plus, - onPress: () {}, - ), - ], - leftActions: [ - FNestedHeaderAction.back(onPress: () {}), - ], - ), - ), - ), - ); - - await expectLater( - find.byType(TestScaffold), - matchesGoldenFile('nested-header/$name-header.png'), - ); - }); - - testWidgets('$name with raw title', (tester) async { - await tester.pumpWidget( - TestScaffold( - data: theme, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: FNestedHeader( - rawTitle: const Text('Title'), - leftActions: [ - FNestedHeaderAction( - icon: FAssets.icons.alarmClock, - onPress: () {}, - ), - FNestedHeaderAction( - icon: FAssets.icons.cookingPot, - onPress: null, - ), - ], - rightActions: [ - FNestedHeaderAction.x(onPress: () {}), - ], - ), - ), - ), - ); - - await expectLater( - find.byType(TestScaffold), - matchesGoldenFile('nested-header/$name-raw-title.png'), - ); - }); - } - }); -} diff --git a/forui/test/src/widgets/nested_header/nested_header_test.dart b/forui/test/src/widgets/nested_header/nested_header_test.dart deleted file mode 100644 index a70b8875b..000000000 --- a/forui/test/src/widgets/nested_header/nested_header_test.dart +++ /dev/null @@ -1,39 +0,0 @@ -import 'package:flutter/widgets.dart'; - -import 'package:flutter_test/flutter_test.dart'; - -import 'package:forui/forui.dart'; - -void main() { - group('FNestedHeader', () { - for (final (title, rawTitle) in [ - ('', null), - (null, const SizedBox()), - ]) { - testWidgets('constructor does not throw error', (tester) async { - expect( - () => FNestedHeader( - title: title, - rawTitle: rawTitle, - ), - returnsNormally, - ); - }); - } - - for (final (title, rawTitle) in [ - (null, null), - ('', const SizedBox()), - ]) { - testWidgets('constructor throws error', (tester) async { - expect( - () => FNestedHeader( - title: title, - rawTitle: rawTitle, - ), - throwsAssertionError, - ); - }); - } - }); -} diff --git a/samples/lib/main.dart b/samples/lib/main.dart index 08ce6eab2..acb2aac51 100644 --- a/samples/lib/main.dart +++ b/samples/lib/main.dart @@ -60,14 +60,14 @@ class _AppRouter extends $_AppRouter { ), AutoRoute( path: '/header/default', - page: HeaderRoute.page, + page: RootHeaderRoute.page, ), AutoRoute( - path: '/nested-header/default', + path: '/header/nested', page: NestedHeaderRoute.page, ), AutoRoute( - path: '/nested-header/x', + path: '/header/nested-x', page: XNestedHeaderRoute.page, ), AutoRoute( diff --git a/samples/lib/widgets/header.dart b/samples/lib/widgets/header.dart index ce3324781..0bb8f3c7e 100644 --- a/samples/lib/widgets/header.dart +++ b/samples/lib/widgets/header.dart @@ -6,14 +6,14 @@ import 'package:forui/forui.dart'; import 'package:forui_samples/sample_scaffold.dart'; @RoutePage() -class HeaderPage extends SampleScaffold { - HeaderPage({ +class RootHeaderPage extends SampleScaffold { + RootHeaderPage({ @queryParam super.theme, }); @override Widget child(BuildContext context) => FHeader( - title: 'Edit Alarm', + title: const Text('Edit Alarm'), actions: [ FHeaderAction( icon: FAssets.icons.alarmClock, @@ -26,3 +26,53 @@ class HeaderPage extends SampleScaffold { ], ); } + +@RoutePage() +class NestedHeaderPage extends SampleScaffold { + NestedHeaderPage({ + @queryParam super.theme, + }); + + @override + Widget child(BuildContext context) => FHeader.nested( + title: const Text('Appointment'), + leftActions: [ + FHeaderAction.back(onPress: () {}), + ], + rightActions: [ + FHeaderAction( + icon: FAssets.icons.info, + onPress: () {}, + ), + FHeaderAction( + icon: FAssets.icons.plus, + onPress: () {}, + ), + ], + ); +} + +@RoutePage() +class XNestedHeaderPage extends SampleScaffold { + XNestedHeaderPage({ + @queryParam super.theme, + }); + + @override + Widget child(BuildContext context) => FHeader.nested( + title: const Text('Climate'), + leftActions: [ + FHeaderAction( + icon: FAssets.icons.thermometer, + onPress: () {}, + ), + FHeaderAction( + icon: FAssets.icons.wind, + onPress: null, + ), + ], + rightActions: [ + FHeaderAction.x(onPress: () {}), + ], + ); +} diff --git a/samples/lib/widgets/nested_header.dart b/samples/lib/widgets/nested_header.dart deleted file mode 100644 index e713ee1b8..000000000 --- a/samples/lib/widgets/nested_header.dart +++ /dev/null @@ -1,75 +0,0 @@ -import 'package:flutter/widgets.dart'; - -import 'package:auto_route/auto_route.dart'; -import 'package:forui/forui.dart'; - -import 'package:forui_samples/sample_scaffold.dart'; - -@RoutePage() -class NestedHeaderPage extends SampleScaffold { - NestedHeaderPage({ - @queryParam super.theme, - }); - - @override - Widget child(BuildContext context) => FNestedHeader( - title: 'Appointment', - leftActions: [ - FNestedHeaderAction.back(onPress: () {}), - ], - rightActions: [ - FNestedHeaderAction( - icon: FAssets.icons.info, - onPress: () {}, - ), - FNestedHeaderAction( - icon: FAssets.icons.plus, - onPress: () {}, - ), - ], - ); -} - -@RoutePage() -class XNestedHeaderPage extends SampleScaffold { - XNestedHeaderPage({ - @queryParam super.theme, - }); - - @override - Widget child(BuildContext context) => FNestedHeader( - title: 'Climate', - leftActions: [ - FNestedHeaderAction( - icon: FAssets.icons.thermometer, - onPress: () {}, - ), - FNestedHeaderAction( - icon: FAssets.icons.wind, - onPress: null, - ), - ], - rightActions: [ - FNestedHeaderAction.x(onPress: () {}), - ], - ); -} - -void t() { -FNestedHeader( - title: 'Climate', - leftActions: [ - FNestedHeaderAction( - icon: FAssets.icons.thermometer, - onPress: () {}, - ), - FNestedHeaderAction( - icon: FAssets.icons.wind, - onPress: null, - ), - ], - rightActions: [ - FNestedHeaderAction.x(onPress: () {}), - ], -); -} diff --git a/samples/lib/widgets/scaffold.dart b/samples/lib/widgets/scaffold.dart index d9e8ba725..15b496541 100644 --- a/samples/lib/widgets/scaffold.dart +++ b/samples/lib/widgets/scaffold.dart @@ -20,7 +20,7 @@ class ScaffoldPage extends SampleScaffold { height: 420, child: FScaffold( header: FHeader( - title: 'Settings', + title: const Text('Settings'), actions: [ FHeaderAction( icon: FAssets.icons.ellipsis,