From 045acb96093bcc0f4a58e1bb6399a9bc4d6c8beb Mon Sep 17 00:00:00 2001 From: kicap Date: Fri, 23 Aug 2024 00:00:33 +0800 Subject: [PATCH] first commit --- .gitignore | 53 ++ .metadata | 45 ++ README.md | 8 + analysis_options.yaml | 29 + assets/logo.png | Bin 0 -> 106665 bytes image-1.png | Bin 0 -> 124327 bytes image.png | Bin 0 -> 22909 bytes ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 2 + ios/Flutter/Release.xcconfig | 2 + ios/Podfile | 44 + ios/Runner.xcodeproj/project.pbxproj | 616 ++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 51 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/app/app.dart | 48 ++ lib/app/app.locator.dart | 41 + lib/app/app.logger.dart | 159 ++++ lib/app/app.router.dart | 221 +++++ lib/app/core/custom_base_view_model.dart | 25 + lib/app/themes/app_colors.dart | 30 + lib/app/themes/app_text.dart | 44 + lib/app/themes/app_theme.dart | 124 +++ lib/main.dart | 54 ++ lib/services/http_services.dart | 95 +++ lib/services/my_easyloading.dart | 39 + lib/services/my_notification.dart | 42 + lib/services/my_socket_io_client.dart | 59 ++ lib/services/other_function.dart | 145 ++++ .../views/nav_bar/log_data/log_data_view.dart | 314 ++++++++ .../nav_bar/log_data/log_data_view_model.dart | 26 + .../nav_bar/monitoring/monitoring_view.dart | 193 +++++ .../monitoring/monitoring_view_model.dart | 27 + lib/ui/views/nav_bar/nav_bar_view.dart | 83 ++ lib/ui/views/nav_bar/nav_bar_view_model.dart | 46 ++ .../splash_screen/splash_screen_view.dart | 61 ++ .../splash_screen_view_model.dart | 40 + lib/ui/widgets/my_button.dart | 34 + lib/ui/widgets/my_textformfield.dart | 91 +++ pubspec.lock | 757 ++++++++++++++++++ pubspec.yaml | 101 +++ test/widget_test.dart | 30 + 74 files changed, 4222 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 assets/logo.png create mode 100644 image-1.png create mode 100644 image.png create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Podfile create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/app/app.dart create mode 100644 lib/app/app.locator.dart create mode 100644 lib/app/app.logger.dart create mode 100644 lib/app/app.router.dart create mode 100755 lib/app/core/custom_base_view_model.dart create mode 100755 lib/app/themes/app_colors.dart create mode 100644 lib/app/themes/app_text.dart create mode 100755 lib/app/themes/app_theme.dart create mode 100644 lib/main.dart create mode 100644 lib/services/http_services.dart create mode 100644 lib/services/my_easyloading.dart create mode 100644 lib/services/my_notification.dart create mode 100644 lib/services/my_socket_io_client.dart create mode 100644 lib/services/other_function.dart create mode 100644 lib/ui/views/nav_bar/log_data/log_data_view.dart create mode 100644 lib/ui/views/nav_bar/log_data/log_data_view_model.dart create mode 100644 lib/ui/views/nav_bar/monitoring/monitoring_view.dart create mode 100644 lib/ui/views/nav_bar/monitoring/monitoring_view_model.dart create mode 100644 lib/ui/views/nav_bar/nav_bar_view.dart create mode 100644 lib/ui/views/nav_bar/nav_bar_view_model.dart create mode 100644 lib/ui/views/splash_screen/splash_screen_view.dart create mode 100644 lib/ui/views/splash_screen/splash_screen_view_model.dart create mode 100644 lib/ui/widgets/my_button.dart create mode 100644 lib/ui/widgets/my_textformfield.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee6ade6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,53 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release + +.env + +android/ +build/ +linux/ +macos/ +windows/ +web/ \ No newline at end of file diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..e94891d --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled. + +version: + revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + channel: stable + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + - platform: android + create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + - platform: ios + create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + - platform: linux + create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + - platform: macos + create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + - platform: web + create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + - platform: windows + create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/README.md b/README.md new file mode 100644 index 0000000..8466ec5 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# tambak_app + +### a app that display tambak information and command the open/close gate + + +![alt text](image.png) + +![alt text](image-1.png) \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6dedbd1ffc6b9406c47bbbebeea34f1d65f17914 GIT binary patch literal 106665 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

YjUHy(ZTeoBKvTyC5-^IX1WD+z}DsoNk$ zK$FHGz43>-Y#9f_IiCz}a$wldWF#}X_{Y~>jTH-CMMX#yw(iJ7Sa_tWdm<_j$stx% zS%>u0BovobqolM7nQ5u0s;%Nc6O5+DQk#rJ-ADTiev?0@+a@+zs)al4cns?B9a zWPLtf|Lc_)Gh_@}C`E)&nt1Dun{mrSPvW&al2VEjbxpO{O^Jm<4&v2JzXnYlSoiMT z%>mn2J~$&Y2Q8c(7Znz9Fr0Ep$>cY=JL2K$Qu%>)Mgbt-=>Wl;No?Q{zuklX7PMnwzamQqO1~S z<)z3k%2T8fWDzNX>NQ6@wr<&sc1jddQDD;KX{f5^_2lJJ4Oh>*#d|#u4+E=7Dy+=k-N*GBAiPV?`aFC?>NSP8$oP|>@ zLvk=sO{LWQoPAr&0km5LaloUEg3^K1nHL+1Y!E;dmPke}>iZ2w+9m?Tnm`+j6bB=b zm?>eXB%4xAl6|L^3(bv9l$M;zb|QtvOe9eUB@Ss$es)kD#hPNMYpjRZQluQRmjklc zA;Q8VP*kuV4fPG=DN0Y=kC&wE3=~;l=71fal&EUexXC_F&iG|Nk-|LE0Vzg9RbQYr zn00LEZa}pXJ4+l)m^ou6Rde;~I%KsNug$!6QR&$zS@1%YiczjTBqEqp9>DEeczu#c z)P$_`ENu@OtvJW?H z$C;;1MC#O$xcS*PFk@&uY*noo9@Y$VpnMBJjrSMiaj!EV~Y^1KgnH414k(Lq*Ye)obBf-kXAok^OUW40fLV9{8smV+!q6L*y zF||{t7ag5KG7Dt?ZAt=2OiERRYh}5BQ1-_X7=pOyMA#`#IcO&;D=lOBfj}gurt4GdJZ%#(Fk2%qVZsyyQN85k z#iURQ6eonS<4)!MpxuU&m(As%eZz{Z>=8Vk7vW(Mygm{=i6=0~j4LkvAxYD$)QKs) zr$#po?!->hM)%*(VEV+#nD|)ecGw8mSZYb3dxB>5lw^l-p#9V z{`u!AuOsnl8k3!b5DqFbeE9ynD4`l==bmz8WM?Xs%VRIRfa;7hVWG!UNmVVy6hdpQ_B_q}YKO`UvL2yGLbb$cl;IB4i?u5ZMJx7>?VS1kwaAee(g5ucdK zS}aZ!?B2H1TvWXytJ|UME#ub#yfFVhB}D(R4ttlLSjk3sJ{& zB&Vd(;2(iTN-?ce$(8QkPr{5KaU@Y12uF2w1&?2dz>q+t&J&Nd#^y#|QyW_8?IqPO zW0RBl*^O|L^Y&evNr(pIj6RwD58=HlMmdQ#EHn~9RO8Kg;L!E-ouX5p5E7mjP|!mP$2^t9U>5SI~appiZCX zHBp!3AVH!ddotB%PG=h|^h~NQ%cCcmllp&gXC)CjTMDOId=Ekeu@8@q^c6aT9oF4DU<#p^me-{`y4vWumKhs~bzf~& z_pXVOPh?~mqAdpG=59xW(@5fsgU1>Q2ilMrnuyomd5iAR@d%Df!$(yvJaOEfMt!3G zh`@0pjaJScOXweOp{rjk#qnT^8TEFVJ9DneAFfq?^wgD#!A`fnLtqbQsEfCkP{mY& zpImV{9{=|%sN7o)7YF(##y~XFC>%_+Q9yEpvMq>u+d$Uvav%-hthuJL3g!sTtfS+o zhG~N_kg*Z`-c4OSmFa3m>){NP6I(RXBgzy%65G~o#A#=q#se8S$QrR=(HGcMS&s(B ze*~D~`F!lh*kLJ1jgQ5yf>L^4S(S7UL`3CB^=0Umylt<-AJ`d6P$Lc(%7No z6j3YLQC7R3l1Mv7pPqrXjoVO9!+l1S7m>jx8lY)tHis&sc(}I_(Zgd=SlEIlJG&&( z4<(|wF?6+UXhLBnZ507D>vQmq&Y_e-8%;@m4Lr07n5m*ljRZnshah*)HWFztY0S%K z+m4e?9**kLB2?MUs3-#M7F6SrNWDCkiPBI;b^`aW$L@+UdI~c>hR2ExZbw2i-Hdk^ zkVJyeDn@$}lQD`evUP6Mw-Rt(x7Xc-3E3eel1Ak^Yp3CwR&-<~1S6O>k&PrzFDS{; z!z;qjhS8C3R2J&|9?F2$}h zE3Gt`y7GeMj8Q}IVDGi(m&q{GoQJ38sy3wT9sdWREPBPP zKoSS$KVLfz_dNJC?s@2b?BDhkN(#yl9TBPAU4uiyQIxwC$;k}t3riwV2<^*oZD72? zHl${ZLIZ6NDt3V+AY@~pbRqX#+)0H%jAEb`wxL4)nRUC7TbYQV50K`l(?L{-Xg9lSi!!U!fCYTK+8_Go5S($ zxDTRh5V%^G(m^+Jsan#obaJJplP|ZOz2Cejnij9rsthGpyj5|y` zm^e^!k|48cgBrXz!{z`j9zkY~!YlUIVrfw`Z5kw>RtM72h@kd1%pRM{*?kLcy7e{~ zXt4h0qmLmrF%e}Y`^gS`a3pe>QO)8Z+Zi6dh&b?7$Q7^Svz&YDCHp~Zneeb6;$CEF!|K+XrYavtgMvA;8yn0C=N{|0TTyU zMzr&K+v&v=5*m!DV@9dqybT++P&LKDmWJtx6DM<9VCVK-O0_2@!?B}B!bUgbn8YM( z+Ps5O0|$3L>TY5po=~w#F-S>_!`AIvNs5u|labB_RO1EKU>xl;MYK^=)X>w4YO5R? z#%**K5O1(ty8M!-=<$?_Fp^_&i?GR?fia(LsA7!uSJ`NMnhjRgptqe<)>Q!xtw?9nUL&05bDZFTUy4 zD+mb8mGqu^am6M)zigYuW#w&2R_p^Uwt@zv3S?6K4FmwWHW0@%#xmN5X_9TjlqedesDwr`UyD?+lIr#YVRY+vi`S??& zAY)V;qx$3U@Ut&+vKEZT@3@`(8;B4R(G7Rpiv}9kFPt+2aWsl2CnvxVmx8r>OJsJ( zAEB^@JSmzudgVtq01wgw((qz^ZV48B#lR@eTnyCZikRyg#N}Z+xQXgQ#D6QjQ0f>_ zyMhBsAZI#O&ej@Q80ghbLm~~U;&U$Uf1S;LIQ4uQ&@MkTp36mX`Zt$Or3+$6=can$ z=n;^(hJvOxJi1{Qa@suj$)q$6O4(Sy+Ky&V4&oWPTv1g)FP}KnGuPC(Q_n(KOECTa z8Kc1aW~C>NI_8Utr-#!xy!qzGinvA(8-<{#6h4p5Sesh} zLtX)bcTk-anZ$t{_;BqGR1}t@@b!-n7?;Y)j2C};>R*_ZmV|k8W}=DIW}sew`KCRX ze(Fe2xIkV-3(Sn>F05%mG6~@AWveLVgdi$Di7vVhtSqj;7t7c2dPl%n!+cJZG$b#T z&VFcEfHDF^|6ZY@>oB@jTE(@cJav0TJ#L7sOlab`S$Ic%RV=YRk^80A>b_Oig zAc<0mkuJUls-FJ*)!4zS}r?fN8J#7-I_LXDpu6=MZ%3e~OXu>%9 z-`PMvLXSve-R=^+^W{eT;^LW@|K(;Zq2bg_{jK~64mJM}5#LDC$VgA2SZ&5$y7M_G zE~lrYapJ<6T3rJi3_Nl(_Yi+=oY5S7lwjsF`q>3^Z={O%kq=hmx^pLL(&+7{kM~fd zHwlbuq{?E!=O5wR^Ug&R-BBZlL?d_G4kqifp|BtyIVYXOaVT0PwR2NHU$n141>c27 zgfo(OAF_vJGs#~XV=in|+b|^uV-Mc_XaRn8%}*HdR)kmo`2r^2b{&R9h2iA%EPVLY z7KG9eeA|!C$Mr9KMo%fat|nS=?Tlf#<3CH0x2Fgh5ur#751>RNwvl)gID&D(1*bA! zR5PMd)0y9jUPzp|UrPhNo%)%ruP;DEOf)hx(h!~yfw-7BzNpJ*RJ(`jq(AfC_F zs1d{P>zCf8y@6g~+;1p}=hP9|czO92HHnF)`qUVgh)+NJ95-ElHXeL;5gatqe6cx~ z(v%V7hh!p@Zm~8J*n$nYc<7d!@Y}yXg(*41kVBQvt4r6wNV3?|uoZzEyyf?x+^0z# zf_F2C$3Wa`@5~FZa6fGelqih!fGT2y`wdrIgawONbK7v* z%-zZ^Q7cj5yieJ~M`Bc{6_q3bhrI%~{qhF>UKWvLL+IjbK$VTykyy%GXj`JB;-#e5 zOc!5EIHTVws|8x<;6N#-odmjsgdRv0pC>$yN_bp)7bX)!JZGKxJHVnR7^}LrcWA7@~nI(36GuJR<@U%fcfyycQJar@P?xzdAeG|cMol4J1Tih)`NG^&e|0^PXg z+MAKTYZFeLeGV2aS%!?-_3f!>r1AKM|8Bs8rdn%lWZrqJ@#zHhx zePgo+VGmVecmL=-Y+n5kC5IGbm}+p=lylI`1c775jzSv)*hHmt_fxOqiy9{Eqq=iX zMF~bFgfQza2gP8jilX9}jn{%p=6#>pdYh=@r$-Uhq*1LNTzB>NDfyJqZ8aFPDG~jD z_TB20Ajmp}J+n?11E-PxHlXTIm0SD)v3*Ot`i<7e;F;xCp%9*okQP1*Dn z+zxIDQ%}2_M~f&m)+Af9*%Gu@m@ftFflNV12jx zXxH-Ha`~ZU6$I)Dig-Ib4i`;)6E-vhOw2^q;YGt76;Rz#vMLk@m08=Se)LM(3pVqf>^>x1%{08T%BmIU8xPPV7>E{JjwYJn zz>7QVjmU6J%+Ofgodj)`HTaPAkBtq{{Ewd3El<3vch>K9P>g_nl?bwI$gqK0j`J{h zLZ{uEkQTeM4VK^t-VVcQkWp~Myz%*3GL0$Phv9dF(6Gqqzi+5B==KYy>4bp^ib69e zFE>NGcJI*^N>uGcS#8`*7t9!@t4g&0p}ZNtABo>iZfqQa!gOvMFwl@ z&U7tYyatI2Qa_BH8{=)ArmHW!RMFJ!P153{-FeDTKh1k%0}U*L>5iu-(x_#{7&78& z7a8US<7hmWSL)(ZQnY1jyn>^p{+<3>UEPe#MVNkn=UqB>>KM6cekDiuQ$D>56Aj$5 zBTHF7-kp(yy;LLw!Pg_2fs(<<(xN4%At9XXL8)fWi8F!B+LQ zegi>FImY|+hhOJ7+`4jPnxcI@Iu`>u?zd0UQ$e?hY|Ae?-dT^!p8u!|*$4Z4a9kR& z)>=ix$7#}a4{AtitoGG6sKDavkIr`2?dJ z%OYFQ!?N-IPG?!Z*3mX-78m}KJ-g`FL^~PZ^{;#)S3sEaH-j&?ld=E#^G)i2toX&= z1C+|bG%&D51Nw|p8`;WdyRx;fq6%hypzgT!TD|uEVlo6sgxs_CZulxP7Ty&HYfj3P zfE!q&tFFCGMSe8l1Hw5z8tFl9y>$CkJjY9)Z~HTjk0!VsANRWLr+YhcSKu(51~(HZ zm>Zq}S+i`Hwt@jS!j=;zgUf>Kpo3k_OUYAo7O^qV!OWBUZA>h zC)1Cjsmseu2+zmutA}?LBk!6iv?%0)H0B+R;w&s^ljAmn=uNb4s3|TH0%?!lNH5dy zo{<_tGkG}8+(%wnqQn6yng*M>&(S0F>T-|9k3L!(-ukPqJL_1dMjss31LktA7S%%F z+f%L?7|`F|{%4&!^=N%*=%LgU5K9A4r`?NgQk0IJFiNj|v{-RHVnH9p0>}uLPaUWz z$6%8^>?_o-M)g-Havvwbmsm#~-yCNi2Gxb6NgL%g7f@Ltg|er%K|V!(>Ip&c?4ijD z8_-XCm(ySe&ge?{+&6JVcWa^g19~I@JQQ>6rFxDSkx|6ITl#DA_ z*NsntDW0vkp+hJa!qc$x%K;d~*Mc$Y4RWJ8>$$U{QAO}#Dk5+$5Hjt2)gX3w(%mn@ z)DOh*MQeIuyuPkRX&5oc?(N84fx~bbcDDl^=cd|D(~|q&*{rN#o53H?9G#+vuQ^@o z)~(ea?z+o?5E@=Q2F)D1K}-Oxg$utvtfv}~M_9LWj~0KrKtqQP)dLUQuTLMmTtEB6 z9A#HDDFhbpt9M+X{XjS$dvAqqzx)*4^4$FHV8>bQ@A~I&8QOO};~yTk%#HuCEu2H# zHRs9r1aUZtukX4H7;C;7$}$`Q!2x}H>iyZ*ss96WmFF7+0RwSAj93fWO-|&D@%7LX zvC6%9hYpWPhf|W_Tw0cD!hK#u)-J1$yZp7Ym>Cur=b*ZL;HSabk_kZ&SnF~mTU>F$ zTCu-WlTSVlb4sHeLl=l)tD(8&8x?JKPb-RQ$xu@C$=XdiX2f8fJ9E5V1Oevq3DTpB z*26B(19l5by0cLq?|e(^^J*NurT~ynhTsaokiNXFT-P0)qWnGU)dPcl^sr(2@Iaxe z4dKM+u;azz(&%TlL}jz8!hDt3fFug4vmNvcykJs$xEUaPv+v68qe48ql^&EB84`vjtK-*V`b1oCJdeyZvdD!x!l!1N0_PbHoWbHaENy%NA07 zTQnpXXC0NO`Uj7BVh#& z!)aJggKUBb$tIkAdo!l*ltG|Zu0B=IKKGnH{NQ~@YB@DIO#$fQL?)*3bnxUr`HZ|} zs-?Bnb+B_`p;i>@;K75s^wP`p$Rm&FgS#)#S@*ujIrIWw3rdYqI|M@+VFd zW(KZ%`;HahJeZWXO~u1YcNrz;saAd>YIYoiEueV_D>vF11qDYYa9pCldV!v?PN*;C zkXVdaRp9~T$qN84FhI!1hV=vyEEMa78EGnOC9?G~K}GRCwG`PsIwME7r| zY=ir7TV!q53;$c`%B;O1sN4pi;O9*skHVY7(41;e9MasSO|X!O&fSphQlkU37U=1; zv*;mE!1u!F#Q~S~RMc~QL6oCBWl^`kD^=Sn8uXWUmdXp>Lp$$N%iF%2&LqON0x}`W zJ8&IbAg`_*6RSU6ah4j99rwn1=atk`7L{(jt0X=d=?JZSt}AU`^hN_dErewG{J4%EDJQPtbsU-5j6S3>2Ex}Iv0qqQ6f8a z+oWEc`wZ=;pOITz@n3LYU>FGoa9S)sXC9|zkGNEaa`D%c4ddfDHa?T}6pfg; zfB#7Jn|?I&ia@sb5Xm$kmF)vc#TRIysdk2A*wQFrB=VJ;o2RU-EdAy;ztL-R z=ID=?9;b^RnXe0u9m&P-rR>}?oilxeULtyQuKGjo-TnRVR-l2J|K^p;l{S1B!;yL_ z#I%SodL2Z`Ho~=y{(?!4H#5%DxB_N4nm|QamUztAu{s80XV3Q`0yhmLdtPjCl!Gp6 zVtzy@G9g9?o6#c~qfYeA{>%WGN-UPG>-u276C$?j(XY3tB{&YpV3`H)WKlLwtJC@* z7)FD%@^-uq>2IG}h;!8E6M~snF+lsX3+NMIjjO8^NsYc48IWk;zBMN04M(CEQTf26 zVCB|8!=`~A(9>Hhwq)ofAEx(h&XPBL1#1AGniQbvv7y?9e8{vZWA(d541RKy}xp&ZasS{DoyZ@a4IznUfP>otO>*VIN4e&WvyK~nY#D!XY|YKehq<-?mv?e z8z}i*b^I|}y>=VJpZekm+vr!=I9mQ}P8eHe&S zt6IiiR)PDsblHZ+q^71iLTlzYZvOr6_4b={bpG_=dTAj}0;7Z~Gp+-z9gGi$(7k=f z3bYgU?t(2G-V;bO5L9tO8Hm(^PU+SRW%zhC8+wV3XV+5}~@xrNkdj2wIgwt1`gyVzr$@YtsKM}Hx zO3lqLpw!~6a-!oIBj`h*#5%IhTTPT=HozZx{1-E{tEfav^E^t0Pk|~Fx>F6R1#ViM zo1>hPKFqofL3W%t-wY`Z!^%%RaI8)yg5BH){M#F8kR>$x_X6BF_Jm^*N-WfHdT)ae zC@dX~i$OceZVuMZP*S!|b051)uPolCDWgX! z5z<`{hCUkOJ@gkR!X|GftMijTm;zqnWCeC>dAR0Hk=7dEUi29d8Brwn%^;9nQLzzv zdi_BHFdPfzz>E4ra6Gt88J$teFabrfAv>qm3UOwOu+Eka+O5M6lni+XGCa#VHe{CQ z-LE#N636b3ny|6=U6i>NuFnRA#X-@R>>vwb(VPs__Rzf@xhrrOPJ;`L^>PuVIafG8 zdq`({$46?$QN473mA)zv3X)jP{~qSeFuaiM#06PaW~_x9Z@U}ciN zz4}1ligRW-*btx+=3(1R>HrLSRYj#E3*G|q$%Yzv<3#*0V2v1VGa7Cpcx#y2Fr#wt z{{b{+189ggHWN?t9GfK_fF6^vzRTE`4M8&F<{^6srnKY?PO7O_b#W=P!!c9{7kV&? zwmHIroJ+SUD z^ML#Af~&D#PkpdjJqGpDk{gcK?T~j*9Ie4o9u+f%aKnK-J(z*S z`@oYm?~~06A2>?u%DLwDnGhrMEQsE3zv^_SOjQV+_n`|<#(}tW^Z7HKs5%7npVRjj2yrL1Pw#1FB?GWrGVTEVR2)X~FnrjP`GG1H0m z>p^D)u!d!TJ=$QccamYOyzd%?;n<8RZi=+lgJ@<4+*(dA#4@@Tzybl*0B0{&KDzA^ zvO8|Z8Zw*^Ue|_WFbJ*Ppw8{WcMi?sE$6%aV@^H5xp%v6Uvn(>T-(SaIH#OP=lnRZ z2+ED#dT#YrRRNcFWJCbw5oCX&a|9$(4!IbNs3y;yZ9Xqsf<3`8$ z2T^t^EiH92hoLkT%P}r(=^2jPSqm3sepa5UK-bjQ*1+M2q~sCih}>E2*c#$Hcka|@ zpMA!R<}(yeWR_b74&QmxZ?5no?_B-hPi)4jk|8>Ea3}&X;wCs338~GduGJzDZgu$< z96%sN{8o%xT}_?boG+_;yNNy<8|!%;$R}X5Q8b&|$XsmJMIh06Ak1$oSCudZ6wl%W z1nmY<#c(xKx@x0wYEiZyFw?N;P>1wseG}u~7?Ym}gB}QT@vvUrWDYKzkfEv!f?ecQ zrI(jCYyQGTGzd_W4UN@ha6`&qH=lLV5G{ebv2{VZW-_~clYgrG2182gY*LS;7>%7U zMek&`>8Md-H2>=?%>{b8y0J!S1A4<+hZ7Ogrl0i+)2JC2C?qBdN8zQW$~^B*G!oLC029YMS0&yGsplFkDRc>#(LZ$8Bl{Rzixy z`5fOPMCFulKF_S8cS7TsJcha+wDF9t^Ou$ki`+_0{Ayu7*SjMRj0Lv7kFB#~l5qka z=C6k_Z@j+MOBeM+AQEYnfT$k&^P2tiRCpfe<;J5^(YUJ8!rW>VHUNER{cXAJ2DJ>s zvM4)7b3V3pvex$aq2D>|u8ng^KH&s|c4*c&GW3^+EYr9s9#n3v9&MtB-P@790*7%0 zSaHg3l)uFp!KBZ95~Hm_+(EX+W6kX;xEp^~zpm8L8+u?DS8yYt2|L?Ve{k|0)Asl}N zclFs?tK1pH3MHwXSmZ~_&eKk za`nlI&CJLKS?3Ki1m|+w{SWCtPPs}ei!}SeXXJyS^Wt+=^y#M!NSRwRdk_%b_4D4; zj6S|PWl(@7Cb={u+FLzo>_@=c7@raYuft%&WJG)fns?kZnXxp`U9r|0N z`Y6ne2jR0@>B*YgHdM+NXlzAifIcs3(+C*?s8#=70^Go13=cR!;X)}n`3Y~}FSD@Od6 z{X>*7x_GmIaRz~Y2An>5R;K6yC zYN$JaW8j>-Sqm5at`2Lu^D-BX-D9OGf{6|z1b*wj|L!ZW`!D~=D_~*Gzqwhaff>LS z9O`KVQ0olhg4@Rh+)Az6>f}~pGGkeCYWeuZw-TL z(zE1MQAo7f=9HyOj>Kx-7SS$Qx>V<$dY0~gZ>@9T+coRFuN_49_D@&9crpQ?U9wo$ zM5J5%IX?z-wg}V6cvc?F&&@+B9K&YOE~K*>qVgbqw_nZJn{&31)gn`Ca@#qv&78WM z{aDW<2*+btNgEC7$jC_ckMZI0Rs;!cqFe--WG5qCJrFrOlv8>k6Eb>uf4#Alz6qI$ zAn=_tsF!vez`-$Nr46GL$aT~QBlf@}kE*&Om~vW@iVtLBdNGyArjLZUw==6rqX&lR zOnPIjogkCE;1UorUp2_wrH{5}BcZWzn@;Z)sy#G@&pcx~Q}6OLVAfgMvL{dFtGBCz zV-5_DRD4p3+SY8*?=C!E2P@}mQ6>}f=$SapXNFq%FwFdoow=IT9|B-QfwIXMW)119 zw|5;xrwIfXnNkPCH9DyM8;P%((o#%(f`W0Dt98UB?z%7Dfu-A`3H~hA%(+TGNc|v9@)hDOFwsc`r~=9BU^h(CJr@HFzU+QrE&haex+RS!s|H;+zXBSz0sP%2ob2 zJ}*#G0nFuSL}H}XYF<s$e3t^-Rg^S zkn(*bn*0)?cujyWP{u{1Rj> zKsOcABZ`LvhYN6c5}}+Yi*Vb_Ig>?%MTBD%tZv?@035y5>oFbF*U2~-6Us?ZcxV`e zu^gJPG<`834fT|B_#TEsGUs7skq`{AneHeW%T)(FWS|MkYV-!d>!Y(L^wZ#EjOJTp z4`d=2P93IW2lv#wG_I|r=0nEXL=^nOo_xJ9>rAcRaX{%+!8$S3qZ5$s$mANyX$;ZB z$bRG%K}Kudp*Wzqq2XjGOu;j$eLlF7lF3|C0`=IXC+PJhoAuzv0^Km8hu&SeQKxv1 z=JWMX1H*{sZlq-D1?1ZmqU0N&QCNGEVnH^Q`$uAY+gU$zn9>boy1zN;Xe9)bC9o(h zz-+HCtkH}o-c*S%Yk~2Vr%Bf%lXC-_XfZfeTZ}4t79TBH2|;nI?xEqmYRxLtaLd)V zXNvajU8m=l_^YC^is&DGC%lG{{_N5=hhd~jYe-Yc0zu`{Z$IC``7&`(>Fj}_swl|U z4o{3qAil!>Qz++h%`InZ{q6%gP}wO)m!m2iq{je}Agb={yN%Chq(#erY-YHf?_i%m zjm%iADLt(;)vnU2R()Kbs_Mj{@Iv6)@cB)N*scb1Y{-Rj1XgRXx)y(Qj)-sF+Yz$@ zhv75~J;go21!NbnZEm~L@gg=ixt)vAdKqnG4fbUjhdu5BB^611y`s95>2Ge;Qm?f> zh6la=4kBTjUtnV<%ge#L5DguAy=5-e7_>UMVexrq=f-m0xci@fx&metDiE(rNJ+yu z?PW}J0t%=-;2E^y93q^|z_PmbCZxmp-O5ZgIBzrdzBq0Vr3hcsfU0N41y-ZeG7TQ9 zsw!7_Bo2b}+1k>KvtUe}84wJl!ETMCVa9|)hngsNl_20}&cXP{9W+wYP+yLI*| zw1>Uv8RoBXOowax02po%@4mGqmGbsru)W(9U6QVCPyAL7*#6TRS@w~0%<^u<&)v`0P7kb`msI5|L1VgOQo@((l=%k+T zM1aF~MD|3ht3jazQ`8k5l-rXZe93ge7RKXtsvfDA#AxV{?ad5y0^DF`AI^;pi?TsV zhC{GHQ~tX)=(zr^%=3uW;E_jZ=@*~qbXUISxKarO>BZR1&OZ*nhm6sr+`Aq;boble zySF201rEb$I57w5DpAKb*Nrte&CmzZ&v0|oTR+2$zV$Z}6BC`^EviXQO+`1T#(B&p zyT#xns;jG=@79<#&VZq(EK4yIhn2U&aV#!Nxp@yBqJd}J0dA`9YxX;@({{={ebdq~ z;zW{Y6NQpRR8)bOijD<2RSw(NzpE5w4uLXJJ0&X{g&KogwykqDnowFLH zNExaXSZ8Acjc0yt1`QP(8;A2~R0D&GZ027aEw0wkJ6~Xa zMGOwLP-pZC(I4OVRBu0YgWkXC65agdt2$=z5T*<6(SN#KvNTT#DnnmBktxTb;gE7=|&mPcJ=k z$+?xe=#9Fin z)!O9#y%a)m<)+cmdj0X)y7K5WO^oiDycb_{$C!KVmo_q08t+@MqE&tOcnt%IDoqbdaypd+TbMbhcMrq9LA?rbnHaV%U z()aFAQ)7uLc^Bu%S(gB)dx40SP+o)~D&&`RbADFH|A( zMNWC+a~z&q=k@QYD+dH(gMeHG)p8aS7$w`CF#1nBnHKjvI@==t{- z^1hG(3A$S7ckIlg_fm#HB96M!3{ zb6qwQ0!x^1*r^a8#vPQLO=iU|2G{F2e2y{$p3* zFft8W3o8-*Ey}P9z6$c!z<~qx<(FS-^XAQ(IB_Dzr9*r6>>(Cd=%yZoC)g~k#2+q*lv>i*|jE8yYgZopC3 zFoo|R2G|HD61G}!$WDrqFG`&g-~nR95RE$efHli8SxYLDbZEnd4^b&OX<0ziJ~AO(V+ z0ygK!fwZ>OAvx})&8s%+#xLfgV(X_@?l?;~B{b==eT};Jjg`9nxB*)B>6c9C>wrhn zq`@PmI3q|iv&;ERQ5rPN`YYauSdu9v^mek^T8=3{>ws#Jzqs(>R~;?{QH_3kEUf1` zh;?K=2QsPw3Z%=8DB~p~qtG_X)K>@Tl>k%TQrbu%-(Mk=uiVtT8bL(`2UaQLo@*!* ziSehon*P!v9A=!>uivF%L;LIDzs^@E7v;oZz4gQ;$2q){lq8gy7j94yWv8K(0fW(V zvht2U&3xOu*>8PqBfXuG+E-A@dLny5h8I9Ky&mC5uk&cc<5;;JG=Ai8EkPc{io?C) zVNE+irD2R<4;*n+-_4x3Wh+jgW$u}6X$*ZTz!1w zS(-AupFt+Nw{{h9;Z=!;8$hSmbHQ8-qw&w&?Uhc#Xk$n>ep!WG0mr7(tv)2}Uxa|1hH6Kox9X zt4q(FsfQnaR7EWTiU&42a6lg|*j}hNADE>(UieJ2e)p&zyz+G2=-s53Hs>-QqE1H- z=?MfBxF`@^W1`!2B723*xq$|WiO(Nl-g2hpyz=e zoH%|sX52D$X?ISZHtgN0@%>L!T0)8*oAZvYo^^tnXr33+$LNdluZwaWZ{{?wj~?1j zFFZC^+4&iI{GN9FZh}!Xm(nsLcLj|fn)S>DP_F61ArkYO%ZSqE3gqT@SpX| zL^jzJ8?IBH{77r=x2CIJ{2Giug2U$J6^Q;IU@VTNn>?%mGgr=5DT zG7HMN`HB1vU6Mp$E}OC0y?yrzkOi8&hh>8{6)}S5wK;(fQ#GYDn>Ql5Nz~Ry)~a6s+q`3|1LsNFxUZBgSU| zg6UG3WAcK7kVs>?l~T&)ye}bU?l5SSt{5?1$4r{8?OXTgzKR%)Y%S8P)5prckgTP- zp7K)<&E3?Y1zYk|%CMnm_z(UZXYZ6m20k?@A}Sf@)rezi;IkO_gE6PMr8Kl@v{Q;H zDymd`k5s3;Wm#?m&vTPK?E zvuEnvU!A7&U;A9kG78lWZ$nJuHLx#_uD#2A6IfUe&An_s8|i0iv|{|0Aj zuvWJoyZ&OHPcJG7=x;$0Vv6T55`e7Fh;pmyyp%~d)R_Mv6Pa40 z+%gd}T;?Rqkr+zKq(jVsw2`@7aN$K7IAo|!xcv=EB7b|QZ;Dj^`Df;T@Cog{HffJY zqHsSWY!NLQcf!h3almd1^7AnQT@HmG9Ni;_bK&%%=sOXWThwkd9|HUWl$V$CMzll# z06+jqL_t&sSRul3K+$9;^)$b087h>L+>3K&+F{=GJxU!yU=7a4;cRdWMbz@W$Q~^M z78zqxm6!fPM19dkSL@yf-_dob%m!mH-~Mo=GQ*nHzp+A>Oz)>#Ufv1mOd8Oe1~$h~ zQNp-W?;x(7O6OQDlWJ|@eV7JWURKHIj(SGArt)(IAID@lzz1P)19Zs*=4do0s2X?AC34r6xl z&d&YF($LGqaR-Fxm`6U;0F*#$zsB2su7Qbh|AVWx`=$R^R^Tw4Mpvd`$!J$B()Ce2 zAe^50;A?7}DSGCaXLa4RzlMBNq~_JDHE!Ja|LR*BeEO;9U)D%142yy+%+9 zY^COHP3#UzOIBuz!l{_vS2ev4L)RDq&NvrL9dcf4&fJ_pJOBqyuj331LDLC--?Eab z%5tY))kIA^fOBahL}MYc8StS61WzdM+fJ{+6^{G}8P1O4R=uCus@eNqmoL!OA2&1`R+ z&|ORRD3fFU&4j@kGpH}Ja0i5fR`RH_1$0^yEc-wo`H?|4RYJ_O zk|5%TjLUOom;2I$zp!sFttfBO-g;97HnbqU5a6@dKn`5+jQMlvAL9K~Y*=6r>&RuYuHvCK=5NH$=f2?yYtlx<3Q4 zym${^b56F#++mIyF*ll_+cUJ7G)h+(N z`aXx@G|X90-{giq)YCZh34s0U@`v8lXAhpQKR@%NuDbkcCp!J=tFN4FV&=@5PD$#J zqpJFgPX4g$aW1VwdS}CoTdcO%Q<`))f`tef~v1-1m8f*2&?Pq9cY>;9& zz7`_%f~s_z=u9~O;qsKV` zLQ(!6En2Wl&#W)dLw8)G^X{0Vmu8=<^Nty>FSqT`>vKQX?pAMQ(p2}L!s}m}p>q<^ zg=75<0MH{LQco?}u1{;3Mc!xwqP~GQ{)AzrOqUmFV0+}t&FLe3~rXkfveLt;NZ`D@S z0BNqn0H;w#EOLMd85tRlLpQQt+1|Yl)YSSE?UZ{ALX(w~2`n{LIk~w`=3xzKYl2$^ zqrT3MtfPw2pg~H;AX`w8l#rx`!fe$d7ZamO2%NsU`IPaBgX6Iu&d9thW?Xb`*R*NJ zXfFi3mLC0(%ZPM{hQ>2-Xo57OTbWPM6PPD9S&@96M#TC2&{nb@nO%VG)ZYz?8b*EH zP+kr6V@#U8g>sygKlkn0#hjNw#gCt?M<0Jm&(Hpi0?@q*N zo0_Zj&K;N06KU3GYxnA4Nxse-eUzSBx=L@|euXAq_U#ml>P5iYM ztllP1b1fu6e_cQOISoxq(SS$>Hv zNxJN^%QSBMB&}Y(O4$&wEV?z;x0R&&_3P)9H>^Sa^I2yrBfmuV%vq#Yh+u+Z{b{PDoDV2j5p&_BXsjXWX%2aTztP=rTwiUQ*aY-R1s&FzD zZ^}W<7;X?)J>ubT)Wb9n15VnZa^%nr;7|#N!?z({^%$!v;JY0y$gTqo9X(;JX3siT zwJBp1IU2;$%5~ZXaxSN#g%f)e*Qp)mWq-mgUsQO1T*{+_+dlb>bnN?j~Qvv_M zN;Z@=fsdMARWS20thOJ3(+Z@<-UOP-2}UqvW%OQrL!y=jA*TX{_rar0>9$Y=N3SoW2|g>jhb@z>XFB;(&S+SRQcHJilA?I&EydZ ztY4)U{`#gKoi&~5ebUP<=xhag>7%7<)hj7Q31m)JjylHSZhUt0g}U$QSM--#uGJ;8 zUse)*l+uc3)ziahZNo89#v{eks8k#@Q0}Qt#|f_6mad#aV97Y{ZFL?UyK{$z zOc+TPuvnjbwpb&M8m3mjBY`N}My92zsrLZ&3N6y9gL>o0VN$siE|7A~|BH>*jdg~brlm?gnJj31HKyEi4P zat*-{RTfLhaV;3pUd}kuIHJ_8>y|67|3EEm3DmkTvS5ZIQW(}>etD2Vx2IE+N7@73 zEN^%PVKKF20W}&K)2Y<7;RGFdN+p7BY$ze<0CHPzGVELo)a8SNgB;nD;2@^;S*F68 z8wbJ$6a}_0gB%%?I~J^0c{`k;9uZ6;Ow-DyP%Ym@*@&z8@(HP$8t>AsmKyavZj8=* zdbJ``dw{x1WKG=a6U>ZzoKjXszA`~x^`Q}7#i(L8Ww6sn^wQ@$cWEfi=Wygc>S{dN zP+qE;81KBo3iV<1Y$338L^xoD{45x6AWn!lfst9P8PmzHl+erBFd z4)fEPzG)hp(y04xJYUz%`&zZG0KN78awSFi>#tAUt|WJ}7B2ci{$cSt_pB+J@bWU% zmzOdA7RQ4IiH|w*Qnam-VwF+r*3Jf;RKO6q`+8A&;vUL^5Xd@ZfTm)6J1y@3E!drj z#0Y|ol+>E>1a|91;}DaObT>(ToAVCSigFv-klp`%`bbMRIKkXcb8UCO%m4NY9EQ^{ zcR`hvYyHMk2I}GyCQvS5H(dPtvrBZs?01|9H3-;c45`1(!MON|1q$L~3l0fXB&7rH zK`uUO&(yPvLBuo@B^spArkUAhh;WpenHgXu2ybAQFpbfo^McW8V=yh{wkF-b+N{yO zX3ZMs#`ssy{lR~yEMV!rD0|S!|3NRatje-0i}rtt&C!mc)M7$&9?A$sRb&E;+BL>- z8Ahd%#f(8D(n?WTnb~S0_`wU^8 ze6sTQqufg0ssS09)XSziL!NGa@)L!|MXGf1hq+ahpRSXBIU5JewMNAK;Z>WEFQ-fvm!jG%X1rwY z)r7&xT2WM{yp9+>_~{ns(x{@j*9au|?x0<&V|wABen~p`)n=zJG4rS-tw*%5IV?&( zWZiAO`^g)}W{vszi#I#6^b2YsB2FBqd!Jmu_1>Y;+YaibrCaqP$gSx^dua34EM0lq zpY_LCqnsvqfNzz)TJ$O03=S?XLRGB$X$c|v2q_mucj}HAN1@=`tb;j4+T6rinV)j% zyCz4%eZ?vov;>V@r&rX*T7s)``Zf0COgJh5TpK0>@5Z59!rX}yHc`b*=41>?W&7;j zj))aF45wk&hpBM7HN0N}s2PJX@)#FV-_#h5>DN>H3agQ;mii^cDX)Z^my5BHSp^Nq zM3+>WfL+(-xSwx~zY{U?u#um9xj=8d{B-Tux>th+r0TN`=_+FA&r|0eON~BHx6a=I z6PG4!1d-bJY*zj7hHefUEB!bK`QD+8nz zFln;F0sZ?qk|f51Fqx6cN+8pehm2!mM!FepL_Os%Tc(BzhHznJJ1Ap$5xK5kzeT_J z*>uitq;7b3trlP73+tLGk7LHr6RAXsB*H<^t>2d^Ul`6C`}Ni{zdlvFzIcz47<~#H zi;c4FlBMbDU04&`jG0M~gi?MhFR#GRV)EdNgrZRu7V4)Blv?KRDAsR>w`=2F7lLG} zC;Ponja3C&yC+*YKB(gM2-AB@)@T|ft2&5y$Bd~#VYgNOy;8|sxVY^)mlbL&*Lql_zxs9*tAh-~2M6j4%4zb*kvOm*y}D_Ob|E`rB2tDfJK=l<5wB0m%{el9E~T-#+xbdQ%>3!U6fAG1c4Mpy&WTW22WQ3`|Dq z!&h52Z{pbKDS=$_g}dbA4eU5@kPadtzm|K=D-fghi$O^(Ex^wga#lYAESCz(Sg^)RCElX5xZO-*J}GoP^zc z&iC(FT-%>FNSb^kCzil6Pf1CD5uB>0=j>4xP4;piix$lWQz|fnVdO#kGJ|Yi-~RnO z-r|4uFb#WW12X*YY-VJCs?CUZ25a^Kz8V`7rwR;vPHsIM2VkC*7|bx_<>fn3Z5vR^ zjhi+*<*fY&GdMp)=Sc}TiUUNH-iio~P&uPwJ4r2jQ+jHKR8|iE!b(6vRsutk#5gw| z&asV@wepm~s;#FI2YJw%?`C8=DQgAvAE29G`BEtnu{tKXQ#&x6n^t|TukU<7mCV+d zeEdwMMI>T=APDw|g%lU4d2h^-UtO8Tj6KE~$kml$n$8)bgj|2+l)@q+yF@MdSL%!r+SCg=E#BrQ{1y5WYi29&GY{s*8zMBqcjnM~ez6%SH!80<$Gjr>1A~ z@)mrRF7MV-B~aff<2a3D;o@Gn;;pab&#)=~kr5h5!@3t`!PKZ&&_}EhE9Jo{@y^(B z6O(Mx%xM#x=J>5Aj@LTmOFBVTQ2|p)HrF3>(gQh19#B`-$8l2plJQ=O=Lew5WoBV|`)0KFGAInj`yy#>l5W${H8r?|g>4$F~HE`j+1P0!MyT{*N!o|uAYZ}j&%-IaG zrH%c$G-%KuB@mhZu9%$s|En6wM zBq$yPl1aMM!_u~rQbIyf7f}urQczGh<)s=>QL&B;NJd5;^=f}$xM5nib`4G>86zF* zG`L%dKm*}#Y}l|-DHy3X8o7R0F(2M9k*4~}6)Q3DN6Q0&FuV}<~ zl;Ee=4}^jsjnVRTWlW13AoS7I0R(j=eUznJa(J${ocrJYk~)|* zZm6(`kT@W;G*Y^YXvWylI{i;`DT8)sTYDHyV9;R}kT6rkMeoG~2W!bf3L4zn zvvGr(OB!`M{kjXLP2!mC1e5U)IAxZ$>YS_ZlNY^=Hg_ZCC*!toe)z`~f;2su>hREJ z4Y6i8Fy_k22B6KcH0O&|LRA0By4|3mr1MTZUY~yUvF^X=TFrldo-=XJh>*y~so$u7)2tSgARRBBgk9FTpKWlwK zqmDYNm(tRDk!>B+_Jak;$}^bBd=1A+rB8lvc9!l!l7v2_4{LhY(hSZ1@DI9p@?^cc zX^)!1=z-B!X+bl~&~Dw^k+A}Y;WW%SSX6HdWDdiA==!&7$;@@Q_2tUVJjV-J3cFi= z*yiD;I$>OYt=*YU^Dq)De?29zKFTY|Q!YfO2TmJK<26%%S(dB)`}Q$2;rq)|Z}gn2 zm!jqnB_7tt{O1Q9#KY9D7S72M-Gi*XmU(K)?jkJ3>1NV`u#db0k*p&&yx$D5!RFek^*os4+_9Eha;o5UG;hCi>CF1pkM0jGHpDHneLq^8ywftt?|BEro z+n))-DM0Vuf1b{Jc?n0j^yU8x8oOFOZvI+{j;d4M-MDireh9vP`?NsNR z5YUWAE310cbdBUX%;!*QS{s>p(VN937l6rr&eS0)%_&xN@&rBl{8xH&*+%(9#;X~q zu?qrYdpqyNf8M?@&>@+UY$&K#Jk4+#@=Wh5ji}S2ZAIFi^$Cq+h;d|hCh8bWkM8$B zo2)tcH7ZI!XbCvR9fM4!=b<;^;&bn)@>U+GE;pH8J0w6?5v8|)SjOQt>(Pr&QZBkz zZ|$j8IND#I-To$@Em1k;4e&1bjAQ~$@I<2Oci_}Ojd6|(ki2*K^;QvZ>DGSnx`fGo zi+1HG8v@~uojFQIEO9hqhK*IVI&N@p4FfQ+Yk#(`C-dv+izp-I$l|hEU3B`(dY8U`FeAlEjZ5(vcx%C_sa*Cd1D(~lE5%fFEvhI>2Fta_fP-HD{z?B z^pMdz%)K>p!U(*)jPDUc^c_fMQG+B1 z>a$JE(ZH}ZGU3kK<*P8-GM(+rYamj!SsM+Y-V8An9~(~@JQwHDpjc!u;B|pgYN3Ra z#p_@SgPh7Zu!|BQ86iyVxP+ddv0@z}osEgLl9o;FGx%$R7Yei;84mfao$^cwC94Pw zYhOQft00aA;G`Dh&qrr-=a_6)_uRe zSZ~jNPsg7$Q@%*b?%lo}BHC)5JZ>CLEJ3fo{x`k7;0BxI#POOzrf{R=nsnXq z>+{H98fa=K(|gF)GmEy$MW1I^PMLOwgV^%e@G4Rn+EMQcx?bY%qx0R9K>y&jw)f(0i(Irz*&&QR^PKRKI%QIbAtC zO!HRl*9Lz|O=L@#TzY}NShie6#U;A(+za%|!W@+~;h5k5Qu{lj8Bbe>m|&b%m-}cp zP5-QnclGkUzoCEBqSXi=jvtt+XV(?zypx9L7UqV;PCZ}GTy%?)=!rxpjo0VwJA=MV z0@=viU(VE~{ps4cKTp3q`#7?qQmra$)vcdyb^-$nI=Z(bV+9VwX;}G$$kghdb_0A9 z6WgO*{-Nt{cDqfQJXZ6*+=%Yb53B$CU~m?!*i0JUsfSpywpc<;RbVLMIKs1fd?ELBre4^)+rs2DyY=9$v1MduwfmfQHM zsjw`gMz749udO@x@+R~nh}lyE8g=upuF~#g~CT! zgK)&4^z0&bvS^IC3s~tfl#x92D{7f0MMpq)!sp0n;%ZOCaHD4H9TcEWqWsRN9`r3( z15i^oN285v-nmEE8PZOa*X+EpPyV&Og)e2n(AE+$=7RMj3t{bAD1Z5NAPPxFRE|V> zd#^~P^Ycgh4(Ov@`*hD4r|VC1zgEY96eat|=!<>Ts`O8jU*A-%+M2E4sxob?a_i`E z6SWaXJUSeS`75Sr^q-ci|Hw4;~C>N&K!PzV4n{%%$_J;T9zVa|M&eEk-1_bA=> z;0wz2ir1$LH|fsnF3{>H-y;BQRsm8arifh4I`7LW)OJc*vp*sW?3Jh{AMOV$+jeh9 z#0nh7nKm~8(2>A`+kr*;`v{|Jez!~6xfQ@0*HZ`nVGhGqyP2EjvFm@%&DyS`2GJZO z!ksyBsE(U7j!3LS7fnpjaRb5>4t&@623FIy2D5$H&)@#tdHnAW?MFJH7)AToR(AO} zHY=rc8t>#M*u1(<4)0_p%8a-hSSzhuP-!-W&ySx2=nn*-d1ORBFPyc_jy7rY4*Cxs zBh8s%BeSR{BlzU~w{`N2afqxzw+yd7O6oEaGq zxM;o@or=}|1L(Vvj5SS8?W=Kv0~Hd9?aby$5{dybK;%*Faz zoyxSc+}sm49Fw4Eeh$F#1Ot%`!^zxr$_(`aejJ)QR2Q9nvgTeoPS2b^S}#BLtmfQu z3Hx&~kco-keC|+sHYVLNcXyt{q#r(hqMkYD7+rnFcxA$8;bW)=u=neK^&6>puXa#+ z`e4gJ&Nu6UlW(A;R99cEJ_JF>jqk5>&N)|;#`aU6yyYX>jdx@meI==|q$)R9A}eUn^$K z!z~#(`qQIXw>tlf2xdU%N9lX_|>M6U>H^MiY(>Z|2z^b4e`bMmvb zEPb^;|7;PQ4-A}Hoqw_!k}5fVla4-`TiFmHKh{Q6t{15*M?WDo{V;MLcdG8b#UQ2Y zF*0{>JpaU-x%{~KxCwuh?QhPB`db>?koA)z#EPFeHggB1jLP zKVDOZC+io_E>afRP(xIpviML+M5piv!YHuDZSMJA;^)o zv}0;6QO4$VDxx2eUK2{`E}S5x!Eu;;5R9zJ*_cQlOmiGvY<(3B?={Gzmn(jF92$0YLn{Wpd?=LjIJ8nTN}5-{63hcL6Kp)_?BmN(<#H1 zmYk-t`h1mR$UiK!T;E4u6gO+zf^D3&PF2&euEXGaQv&NvhIZ{WXX)zK*6S;p^E3J| zZ=@I}L%$|By-L>LZf0ra2S|lMWqQut{~98+GS{ztfT>%g8n? z3o6%XV+Lqo|NhDh*{99(UsCw6ncD7!4F5m5q@7C{u}iw}&X3*y{AaAdVK|MhOv6Pw z+7(=M8RSFPjAJ;s4UEY5_`EN^G3s5<{8vlnjS+Zf$tDmmURttdhZ+!zJCK74Xvvde|W9C7Z3fweg4CX|M>&v6nw}gI?y~a2WwI$hn$G%ec9hFD>L*_ zlUJi-csk(}SUJTEo`*>O&2^Qiz|zRyegmZ}#Q7rQw6y@V4u~Ctms*%<&0Yd^zLNox zd3a;|I*=Y2b5vi9<53EzZcs8)?XG|PLwP5r@~U=aQ4aY74e$qFS}bp%)s105QQ?@3 z9-4**)PCJ{+ZkH3bdi>S_!|8&vYyZY`S(a+7C3XhnN{J;00y_f&+4Ar1JHul=w6+2@^QLj_U*d&rO)JH-nv~a|FCgwY3tU1 zc)0t4|Jy5Y7}nG-4x{TC7nc~5#;pEm#ks#hoH z85Q5fIql5NMgoLu(iCcQYTES3$}9zU_^D6hQtb~rS@pZN<4Z8u7~f7JeYZ`d#EClh z1>gctFa$*Q<&MI5@61wAVzjp9HtDrxD^!HEi-%~u)6=4h=55f>svJe5(-lf@XzaAH zI=FuinL#v@{>oI$@TVs~*$4uv1XP@tP8?sO>xTsCgPoNsbK8=c`<#W3HqBjR-b zg3X*8U)Bpp$_=`=BSh!U+oA-roruVRn()LTwe}dQW4y}s@!qQ*8KU4HsRJ^S7=-FVrFsxPh8d#koF{V$Rep^R~k-UQgKsS?OOwLiwq9|P;g zV0$b(`{rDk6F16QV{4_N!a^v;FfW5h+=Fwlr}$9rvTTlbAw$9GTQh|uIf%GL>_3)k!d4rq^VMh3pJI+ylNu{z2a)>}ev~*v-7Bqk)Vm~ePww_yr zs%$#Vdkn2R%2)N-)x5Ta#(kwu8PZ2f*6*XV2y{Riop32yDY-R8OjT-VtM=vFYmiB2riG2jZ6h0|)68n%1bg+8KRp-gKZMgP zuNeZl5^0o$pv5{lh7J%|K9ri=)+2*-H!eIxK`zLWEPva9ElTD34)33!QG-&IeAG~M zy{dE&gw)&btkMUYGIagPGvP9Qr3;TsQgvpvMot^84H@P7OBtV`u0?5yzPfPCC>%PX zx~#dKu;T{M58=jrYRPV`I#8w(pJI9z3zUXTOxA%Sf`LYDKz=7WB2+zrXs0koJSH|) zvGh?&i;8sI@y9Vgqe3NRHOdHz#yfJbhwkT}{_^gA$Deow4$EmcwgkMniPwRb;gHRV zII$QPb%o;*KKSe_d0?EjP^&)#jb-A3lZJbUe62ZXdO=o-a#QJ${dWlXWFPG z<>LU)pVUu_H|$d_u)h%43spvp%f zTOJOBz6s`aJJK8uQ$8?=>;R=**3G*ePyvy62!HS2TCTOoaI_Px8|tbBN9N~6GaY!a zcU7)Dkqm-@!CnV?%-g4ffmZR(43q=u85%YHc*XE}yh8ix-S^&6@W?*$*}OrKy=j_X z6sTonJ8tg?)fcxgYa>O28+Yoo$)hwi#b48oJ(^pfmGi`XK!48#*ujhb(a=!0{yg^! z9q{zfupvYA$4yIh_QYXY$J$kNlC|yLs~+(^wd1Kr6oT};-R~}ry`6qoT3V{sq?gEr zq`L7}e$)~$yX)Tm-(7*ja2j0>qLraAZ!g`gVZDprdWH@axTgw`%S- zkFI@n3y2pC9EHB6OffKgzCt%AHtN;e6rXJBY*& zWo6dSunB&qtK4 z9=zg2W?AIwo_Tc`7mr?k?k?tFGg7vsKsEa}s@;YGVd$;uH8It#CE>l~Q(A#SGO$^i z;KsH_3|+IXI!W_0QJ$sA>`gFn{?q|F3xodgqboQTb8yBzrab6}b0X8M*sw*@VK$c` zLsCPN+y_)p0dnYxfy_lO$yeGjQ`EUKysy*p@loXvH|2+%! z(i6W`UTdJve0KvRw~;ry}^aCeYhw`mK9YohyE*N zhxlk4=f!0w)(I~xi0t0}lULv{oJQAj*roBs4vfa#^GIWt!poIV+RWh>s>uny8h}+~7!9?98dwqwg-&*E^8Q2EAgg z>D!xSG;a3SL4^GOvG*SEag}G<_oY!A_1-1RmMr&fY}}0$+~I#N}+zKmUt==j-o$N4oV^$N2p_zx{GQDleB7FE&WhmwWu*!K17}YZ-(cCXH=n zD>DX$)D1ws+lQc_kBHagNG!`R0mOdz2Lq7BmM%V1vzN}-Gmkx`>z9939bh|4&?kEJ z=@)4FQdV+tokQdF(|cZ4do)O(kU=dUi9Qu&si-JOa4kLB(!}c%<%h*5C@Bu!O*P$D z%25quhM(luBKXIPjv9$08BokXtAd)D5(t_ph-S5ia~WWkcuy^Yf0Voi$zXOicB>;M zSg{KiDJ*(GM?TpIQE^a78DlgxEfRgCaQ*83-|PDjMn9-==|Ha=Nq(<7+#Wr3!9->G zb?8X$AVmn` zSTC1eD(fM`LD&|llHbkFqCW+a3?_e|G5SGVT{L!*w!HbA&I2@JwPCyGdMJ$r&{Q9! z9M%CBBs?rp>$ZHXps_R6>+09U1=F={>uyCH->=h8pQG(Nw(6#vzXeP=L;DZpGB!9) zYuB#RHP>9qWPtPZo0s3?TFv|7ezo25f8V$KVE8!2R^UrnKBsrV-oW;#qNR&D%w5i2 zakdNpcriA!vJ&-+uPst$5~=g1t$OMY>$G?8Q1)Q8bc26B{`ligndE{CF3{4YOZCn# zuF)%-j_KF0u2&mr|Nr-}SHOK(eaiOde|8WVo%93adMX^wKqy;A$C%js3bq2xRX1fn zAI)JysNwsa4_od4WXL^y5d<^*`1)G4HJ0ih_7nmk2BwRHS$W@m>h*N$vfH1OUmSvX zWE+FE^cTVg)tiEh3aF!I9EM5D^d3S&oH}?TP}h=7cs4|-ZsgZ(B&=1AY;vE60pb1_ zwhy-*a|RsshsQZ+Ix~=uUolx1U2(V8uiwmEk5R~;B2Yumbp@Ckk)lA)D@#r6;fBI1_pf$TK0uF=G4^R#W(E@h|0JDEW- z@*-mcvs6-5tV_N^qpL73Y<2FYu8N{7XakF#Bl(@ zj5Ron{C`7JwKB3IK$>wcdBQ0_*K7T{&j{?Abor%UQz{bgc?dPy9^s@;gt$17k2cj$r(FVSO zQxd^gefsIA`r!|Ms2~6I4xKwSO>6J}I%0C%Ox8HI4etEM3)pKq@T)(2@jrXr;V=Kn z6<`^itb_i6BW+F;U?emjr8oajnzWQh`uPx8elN%%7iy|~(HY7)`|FBL9I4>4Vg(}^ zGH$|jq$}3wHDow)CXREAy|K@2E<;sYJ!P4Eoi=kKb09v0fY(9>ibJ7PRf_>@?}q`6 zzycYd+d5`C{cPR7y_M3789ES4@$t;#0I5ZNebM~+NV}&)6~O?8 zkad7ma&)vpd$eZrG4?2fz#e>7jk#O&@c9$x6n`oVjL)fqcWA*lZbGwm<{@}}K8hUPLNqaohR#*Z42r41Y5 zhJdc}Q9cZU`(mXuyt}eeGYBMtlreH7O>Z20JHxwB9uB}kEMB}o<@E!4;)xd&oH~+c zGLFmeJ;_4+uQ+T6|J8?WxPNbpm^{MtRJUHfeT80m(d<1~j=s0=4vf zWss>TlODLYQjWFq^AjE}yI zKjguFqdyaM!)oL4)bDX9Hi*iHW7^+AuO=-~FRxnfFsBq@&&{d5{byVuwvuElhI15o^)32i4 zw5NHePQU6Z4FUoF)h%b}?JYa?n`+>%l#m9HPM;DLqUj6A06}lo4x`7@QwW1i{?WP( zs0Sx7SSefitDe*3*kDagN>R-0F&OF&_0xPmQc>z$8ZXAl}9lT0pLyXF%r0{k6~5jXpwqobYRVo)W>ulFwi zavK@T_2Nl~kN*`b@THuFvodDD|Lm~)eN5|Qj@9(()1Ap~ z2?;|&d*L)&P4dG&+jKp1B1vG?EgPvr^7-1YU7?p>epwHHV}UMv;3GvLhu~x#CtlM& zn^hS;{-zZ;(G+*0M6=g!R9bQ59wR|ulm<{^b(-MxJqF-LScA8c*%4!BEmGmZ-OAs0 zNCC++)Q_qz1tq8S;RlbRi5|rc$YZbVZ&iD6ytYwVaix#bd63{1j-06SR>ba(1D%CL zm=W$(bV{IdYr_%MYtr(Z72GB2)Z)M#M5%da|z0aKr9;-d3V zDnX(INN*550yB)kK5(-{??Cb}e86LA-?tGxkD2!sz4+WaG<}nF&g?`*G#BaxkW$&B z5Gf?9i9?6UZ7^dp78mug2zn7g7)~z@UsDE-VQgwST233*ZPYc_eN7nyZjHNTsebz8 z1{LCv0*jioVqvB(U2&dX{BXUVDQMH#V@K$-?sCl=F+#rTL)s9Oj`O=pN8kJmr{{JQ zV$aV>;y$R?@zO&Y4X~pFXs*x8NL~OUA(XH}KsYU*Jpo6?*jnU1s&~DkE3WyP_Wdr8 z>lCSKxE&?{If~xHLrX^J{$JdwE3dynew1aedSbN}&Ygfp7@UlCpVA07*>j-IWR(GA z1y-VZj?C+W-L(psoC7qPK#X3E7lfM)g-V^gK%t<~rca&4+Jq|}0D<+L-0)2-E44|6 zZ+`HJnpnGHGR2|t)ZernhadbuWCgy2)39>Ukj*|}!|lBqZ1cyLEug_yt%n|Z$l(Eu zA3xr?A#D_>WfV5I+M-&Um2EQ+EW@y$Th`Hm0_xPMQ=N>Xrlv+e|M^||(_@e5hNY9V z5@xRD76#Hag;3}9|NO=61cr|^QkupMG@K1l^wO?k zU6k&p!u`8+=j}hx_wRp6vnHgeKL3E`W{y{6ON{c0Yjw}EnYtGO+cuC#HiLS?h;*f< zWT>!by>@-FUmxx-){|$!M5m1Ap*e3!s2Ah8x40ZwDv}nv4zLbp7=tutN;2FHKRx&6 z2fF0Sb2UAxU)iDEK!dw=>rFq>KmO!)2TE%1y{n^zQdfeb=xdT9=5YGSSj-yM)iyXy z4r^{xX#vInLkP3=q_8_wK{7CBuuz#Bqf?Yv0h^>YPI_ zguE3iF4MV-zM_X-*`+Gh2Q77-PlLXwv{L{0+uiEyOVM3Ve5|nX4Tv_TX>~!9g1SQW z=KZh3k!go0OE6%{yN#f{!XRR%PK3xA<*@jTQEvzSm(}%CUp^(yDDo&bc4;()Jm#n~-a2mEUX2AdNa6bX9?d1z{^rIi# z?$kFeyRbn?CRJhODRT&uz=9VP6gXw7c8Est)ThmP*p#)+n>Ra7#mIPXzx}rI5k>p( zqt*J>Mf0?3R{74%?rjmb^%e{SZ7XhQn;sm= zFF!zam}~IphCM{~a6OQ&FhZYYD?Xe{Mfq$c*1w`j|*TtE`=dHDHpG^KvJz8J^U ztG9mnrfTz=kr;21k2&$r7w0ik0^{g)>%CQPs;xJT>r8J2XLj^>nOcyw==Y0c^4}C? zQR*2tKA8;2&UL6PWg>x-87=(8yU#0n+ENfztvYSdWCb#vFD)Tic@W~3jS1KEjBxEl zWw)uJ$8i`@^kXd8G3gT*+=VvS*(NgRflJYgv$4sLmJOHF-*Ce(x%1Au7@f;&2Sus5 z>6m^uGeM6-I^6TwP6QLfHUDQX(BB!U8)rr8v1Z7L%!5a#$8rQkt*wifR=W!Jcmg zqRyGR$Q(XHZYN`OhJJ#Rv6g(|002M$NklWWcQ@ih+yr3;tp@exVM^elIdir3;1S2k*Ao1BD5c$f?_HWXWs>H> z=smU%OKC&bmfQr4rzTa(1@E$Em&of3edr2Jw&-g;lvva-N>24)+RbS!Sg=4%z$uR(KTfl=*2zN5QCJ3IPQ%Jp*57Ds zL}Hp7c=F`QI(qb|KK|qroqPTTN@U=8Wi!Mg`;WBRUT@fKoZPKxj$;6LspWA#gXGem z8X)5Kw{iymS;^WYMXb+Ym){|I;VcHJX_#X%<7=E8W0JpL)~WaZ_#uA->&v8Ih^!+~ zeeI-?fp)H{!b3H7+8DH<&@uug7m8x;k;5?3<05tDIm@)?Bg!w%7V~NAp$c@YC_lNQ zGyr6~k$uxtU8&acJq(13K{$~{y3GhdC~#cP6jid{g5p!Or>Ih?OcX3_0`dwvt7zw8 zZC|-x=PbXR`5cE8NET)1Y;#)pg#3P}T4?}Bk_{VBqmQYCRxYwx;}Hlpc2b)2r+in( zob^Lw2M2d<)OEN1Q1y4NRA>tGI;xx1+u5O(fks_^&9^o8h6fmni`XEl2qrB)3Zcu8 zP@7qTL_Tof{2H?C4!9}ErkrucV#e>5>+{W9oRY37I1iNt{TZ9gYmp_~PELN&cURc$NL(*TG-cfXCrDmZpjTaJ~ZCOlO;4pp*2%$VB;&c}o!-60Ac z3$c>9CxMx%fE&2Rl+Xf^2k|!0FWUGyy%HeTG}uRv8pUv|DiswKDm01-nZU4ZI$$^b zjP9;>XI9RQH+@@)W3w!x;2IC#ktg?#{QG^jzu0M555mewA;Cuf95UPnZn7hclE(Pd z7_DCQmg6ucPMpX%(KP3#v|h!uY133$3DJs;XvQfeC54-?(tVd zW+yW#Chb4Skey!A_KO#sra!#9nG%Yzn$0ko)f#&3;eSuU3OLJ2fyv4zi2Rws1~JQe zL+K-$HKw)?cDC6CTYoDz1(1;pVr~6#4E%=2fJ(xpFn-H%I6@}f%86$DtOVvI(jA{3 zi8vsnFbr>J3ni~uKb^aDj&>EdXvxK+l~+-t>s~29oD!$SYj`o-72a_5c|(!;_NfF3 zrBH&3VXH*$)K+Q`XHv>8$`wx6&?-3FIEi%J`P)+QdLJs z7yCO@@4WGrUV8mSJ-Mk+6-=1)E3Z-*P3u42aF$;BXpbgc|62`2L@9}TChuS#bG$w3 zJ#D6@z-%uiTj&68+*aD4({4ITJ2!7)d~2O8tWzR1roIJHCOguN3_3IVa5R1zJ0?dl zz@aa?_$<|9z@J)kmoSfRX;$uz>*7{mADNw^XJXFSDU>@=)lZ9NDJIs3U`|9p?QLDHBo zoRyR;BQb|j0qVoD2aDPc9XjM>9afU6s;Y9b4tp-U8SQ75k(g7ltmH%{Vp)wjsWqRi z(GBNatcTv&K+rVQ5I2Kz!eRZ-SmwXqvviu^U!0yl#+KWkD?DWUhaz4>-e7#lG^|`@ z8HUd!aQWICgpX_kFF~n<#yKddAVz`?@;CIQG05x{N;1X`I43hq-~H-YWG_4lBIp28 z6bEQ{KeQWWcTWe7iA<8~+lfl;Algdigyix zC!StIokD9r*Fb)iB2q>%2Lv6blq}8{xeoSYL;{*sku+;T9^DApbB;yEWDgw#Emr;s zWK?Px5+)}9(QV^!Q<9xM=o^GoNHg3>bTxo8au_=tNyf2%-+o2K$LOYOzoqSCmf&QA zlr?j%Li(%p*4kr=8V73{z~4lg+xP$IY<=^dSClw)vNCD*mmO$S6UKHXqgVrw8p#@) ztew03n7PiBLsV)*nN2cCR#aV8s+{Z`?j^D+6lpEnNl!y!_w*c}L{vFk*>b?&rdiVy+DtCRf}=8P3pjzVLR?aT(;8>;bIp#p>s7Wf}U7a01+=c3u(qmKzN zwr?*`5R?1{DZBV;=ugBl6v~?UFvvXxm6|qjEZYW0$9r<#1E1S*9--{Xl$10|rOm3T zu62e}*(SFVl_><<-YhC91=+-~CHA==uQhJ!Bz;VY$p`7MhU~<@q!I@gpn|#v&Ez#6 z`r!iQ9y+EuUtJ+DdTEVh&>f-CH0V+BEv{ETWwlQ}J*-w54SRR(*O;6!>LTMAQgz5O1t@dPrFW@oTeHVp5r2afBUWeYR|$NuzlpQv-kVI@x+sXtt|P}@IWtFdDz zs0|h9LsRHmkZG8Kx9ezwr3So#`rXRUew+V>GESxQMYD|#(5NW>&|r*Xk3-!xR{oh6s9Gq3_%p=36u2r&qm2wB;Swovt+uD*EDD5hAYy8OiB>QwfdS`rNDElE6ml?uOX@4(ZgKx zsmdn%a`zb0i4VXALAA~54^P*I{gvD{1auCf`0Mbhw2JVRxn@$6E3v5BLP$# z;<=CgW0==sy{_Tof5i&?^-jZ+J4k+s42r`A55*n;s7`RY{Q*JWobU+`{6*Oq`n50)r1g=o8_U+!KuQ0f2 z|8|h7)q&6qizHLTJ2Ysc#D)KO|hxbcq1-_hjLbCjK#qP;bpa%G$jcLTYX#%3*=l8JL? z22x3b_M#cpM+q))e7d@i7ASPi1bwpO7*l!!6~(-bMgs+KeFwU#bZkeh0zsTDL`63u zY_f8xNIwtTJ&3>ai|1a9NdmeHV1k(&y@6y)!*|9d?}}44NyO_ zjT32ppEXO_bcty0TmQl`3p4We`9!v0-=D}H>}U4jsBZFeJM8-tS%zg7_E>W?OO`HC zQC%mgHAF8nVl)+sO7}GB-9zQ7jY!b;gC6ZXP@%ZV^Yr1CeF_*eNq5YO)9=s|3&60xcl&qr-8+A+ zg_L5>zwiPj&2#Dg=RZ_66Bq*{L(o`)uYh81H&P?P^e$9Ys!AHoStF^V7ZW&GJd2EZ zHwv-E14yxRDtoJ8P7|e*7Z6p4!EXpw3ur3aEB*u=-9=T2CBuZLqk&|!A_`CM(x8m+S-^1XD^7OYp%S~QDEM?bElS^ zMZe;ib=pEX)di$C2qwFG5VhFru5gU%qnqJhK=W{e#V%jYdtcqjw6ih)8$hUxiryD2?+bmp~JD0kI5RpBuGkaO|kuy{M5CA>^a zL~4a9NL;wAd0CqMevzaLI9 zoMk)d|M&y3r7}I_5bU$nN$6$RmnJ~zVWA-JktPyb-Krox@L^|6iWopYAPjS5iy?)9kRMrz5DMHv0< zWWb4(s8D}JcEnI&HZ^h(CuamgYwLJmJcr$xJCVxZxqUu!vLc5z+Qd+Nv@)kgJ4)kYuzry80pb` z%Dnpp^O;tNQ4R@llZi7I11S?fn)F79ZDb90?cA;G@sm`udaDlXs?oKV&C!z^^5p@t z+l!u6G-SID4E!JnxVasLnlU#?i7>kdnPixibB@!i=^~pS0BGP#7)hqrO(vJAF0wb1 z262JVN{S~KK(8wxx&^LElYVe!3U40Jg6F8lo}0lv-k~@ZDt#=?e#9mVk#EmV8>RE- zUyrkZ6%M}zw%|$Mo5N4|_q76F&S}_tumph{%8o8J>z1QcS~!0$#GgkTbd(u=D@|EB z$}$LZ3YJ;ehaL9WoP%W`_PMaI(D|7;4Ran=qFS`*42LPZ`ADVXT=+vCX$2JQ*%z;E z&oz9Uq!mERNi<)B4)37B$v`G%q<99gjF7y7h<0tPr$2_wYWqfjt371f0Hs>E8h-q) zmJI=K*nwalKDL*K1uBN%!4=-8N>Ejm^*mRtm229N%4lX_QmXbIE7CX5U8EzW$ArCC z&h(i~{tMESX{YPym$s@tDO25kP^y9UvW4VFCNhXvVEE)oMBj1htt&@5y;q%+$0`DW z%od=euA(yeXN^%-e5exL_4??uTonZ-=)i$uy}G7O?|x&kW=tKW*WY*>S&+;1=Id_* zcSSDTsesyhwqZkzOrhCpC88A2MJrY;M^h_S&;030N=uWpuhpwLBZ9QI(N8HLvQ|Ix zEwvs&ODbokUb(7AH?L~c+FaChv7=%16#}|K7_FMFh(6}r*ScAo0Tt5M2|+r(qXR83 z*4JmL2{olgrV`q0abvtQgdE5#>~zXNJGXArh|>^xWWwK*hv+466S&}gpvIy`bLQsQ z$qHNQigbExhDN1LfP^>Q3XaYOaS%{kE0bpdI>t|N76zTB+~}e-#s%i*ym36GA9Krn zd~G6;hM4@7na*L>)kJ|)wVy}tn0siy;i>SwvIv0n>T;H;|PqXXBoxl(W9My zhxIOOj)OHK%}JP8p&_LVZDr2JG^os}EIa3Hm6Bdtxxsvdl}M~KiKO)6;C7k%&dueW%ohN8X2O-E`Q1^Z91)I55_wh z`Is8u)D@0-nl)#h)4bhV38^i~rE_y8sHC`*jMSx#1r=&QQPl=41ySNUxa*LkRrcm5 z+cbB|S9I6vJ-XwiO+@?5=9oSfW7(@8&7H#QC%{-hil4}M&4?6w2wt_(kc|w9RJqwZ z^ru|G-3m-%%xd;&>dnj7SLV#n<0#cmnSF-3s%x0PLG%tB{HE2#`fx<5!eO%?XEyl4 z1#^){U#EDQ)3&>V3_*qw9w5V*I%TrMD|+FDCw0rMH>CFe?w3I_ z8k3dxIlT$&c0ic^<z7`yS6_L-AqS2I#b^OqAkS?9oas;*2glG=L2$2}@-a|o zD^U)TVcPG9KqxM?Gcj}Y_)*BI)F~z@jo*iIecB*0cFBcgx|jJJ4hX^CptFhWZXG^O z)fM;>P6LPG+*)i5>J`=`v@J4#5m>eLs4l$d631!OU_|!p*`p~_rZ`!Hp`+HXU+*{v z<8c^b${a=mv{q}JTm9A$RrVM=F1qL<&6_t@7vJ@glhoL&I6MJURvX@v&KjN6f4JXI z3|%U(YETW$Q!kmoJuiJib%lXI0pU8fVYhrVk3Xx%;4qNM$8@}zlt9i}GRrYOfuNVX z^gwz+2yNTBUBABhYMnN1f;MjYT;IO=B1$bG+6Ys5U2&tH-E~}@D8NP&DVO4GG8u5R zb^RKp&@^|A2vfdA&^&htgtC9xn6I_BWvaU1u&zFHwh}(9*1_^-oi{U92R2ve!da<$ z4OCtudQO3ECUdv9GG{wLFCH#cLQIxE*-)WS6nniGdcO#aVpF{?_{r0H^tKfW=qyw> zB$ROWU<<>ZVq+7{^Z|G6Qx6U+E+GPSf^AxH(dGK-^SiWRFV6*8u&oo=Y;~W0f5T!e znjDLkQ?$Z^K>w8&GM>0azuD1_%zu=Mn+BCziPjTyKB72>4}N={b`_TE;ca<3Ufij6 z%14LyZPn=PEcQ2(2gx`*)>FcHJH11i6kZ%h3)x6>c)UJiEse2VN;YQM&>*6cVSLd> z0A~Pz*v3Ak1ox?v^rNwzj1IuU^KX3krM5~R{gtho*6Fnup9bU-rVvVL=G6QN`b>g; z3YpWvqj?IroO$FPLpx#&hL2Nz1%?_6f92aeVY4mEJz>C&4))0VJJkUK3@tfhj*cUQcPK7d`$FQWqf_^1pJar1H8#qnr=EROufP71 z%JPepo*bin2XmFoIppp+py|x&7>^=sC}p4#$bSd7v!`H?57d{doNhUz!8IxjI4vT4 z<`9fX*O8E-pT4tKeZi?@yl!1~`Es3k<{~0!17LJ2F(FR3-~MCeA3Ffz>TIpA@#zo< zDNP-xfv{j@jY-ub-#kN?&S&lf1C`t~RXjb_dgHx!R5s;Hb5poKA@5^223I0 z@jhdatJ;{VNa@TeGllr6i)n%W7EHn9PKb5s!b{Im7&7MpNVXWF%igm|$$QC2dU`;X z@wKtr`zVna*u;L;4`g@1vI{=8?bzk~ZugGeh()HUo%`2T&Y9b8r7XMm3}M$?ua+8| zCt;oOsQ&G+R~$Z0)fM;>nTC^Pv$6Sn!h5hfM*nK*_3E3Ce5kkXT&{oq)i3q)JMLim zSPjkb&y)nyHV&w*m8DDw&dN`gCR++@Vuhw`Yu`_zR{h`uzf*oio$g~gS~5++^oUSZ zU|_5%IY3I@jtqsB$cB%TvjXNYi~#21f?}^6;}Sq)(;poo7e*8|n`TG(wE3AI(-+uF zFi@z43(wY?bsO~Rb4M{c=sQu?u+m~EC?t!J`GJ1)k3Ug!8(a*o_m-W-ki_DdL7lJb zPDA_-GxU0CuWFIIcy`lnwbgpHd~|}7eYz=Ir)DY!O{)5~PR*q>`XU59 zm$BKc&dKQ5dLs63KetiO+;px!dG94nnl+C|eyiHZcz^PpTlL|aFYD6FzoEN%#e{88R~)qWzr}^2izN;`#ZOM zOEV@<(^r1Z!{lbp2UIP+c^y%r}PSZDW}1XB9ybu!N#_rg0$Ph85cKWc}L75Z zW^See!vu8HrY$CcHrl^?r>?yG5`DUACD+eG^bWBM<7oO|gKUa+N<^>KFsNwc6bz4- zm^Vay4TFlzoT2Kvb~O+bxERx#4y5+7GnZ)3zC8VKT@mMivBLTIgI=NouXpzzhnnM3 zXJ8}-lFwv3Avg^mHT6gS>AU*LkAA9G?z>Ajy|7DpJ>d#KZ8^Z#L?hp;VE(4Btx-{w zpAOYT$&-t;%~+=AbvD61k9C%~4c7NRZ7tVbXI-J6eY{8235yhfqrB^dox1b7vvk`t zYgN$WR#ImJ#xq5~UmT=+bK8_35~h2e-z?viQ{~(KwlcgnCPB8dnpHJa7$zUd5o2wOcp+o>)Zv3%gR(qkRh8JDxD0( z&&_}?f<{*qWhnzeaHsm5AkbOT;eSr?75Gw4!+Hw_tXnWGo54A?s)dYXIyYv@Ezl@! zXwy}{eoH_7>LUH*_J7hvD=tEvbG`Bk@|in;$}OAF8gHiM6Pq~_l+;39aNap+8ine? zmAmxdySu1$W289hnL)n3wbOabY@{auIZ~&!Qp)ggGFQN|JX=*SpZ#D{xAi2`kL^6c)L66;IUn2@D3tWzNlWMnVV zFB0L641o%yX76Sk@QNS&Mq#NF^xfAO6$|37E7T7|i_@e2?&kG>c=bhx6qA#qdk;WtTa>I#em7i*Wnpi3g z_e%OL0rUgL;=t~@_I#BieZCjc-HP$yXh^kbHBnF;ui@{C*Yy5GV8!%h2%=o9XD``b zFj4)UgS&Kjbd#phKiZsMt&N4v+GI|FAj*e~yn#|Y^fV%)jb>+=ik0Ddoa^)F`y>`g zkV%X!_~qSqYxe1<>(R#^(~URY=#+)66lG2DaTCVUTd~o!I3XOh8v>>&^;!mG0iI?2 zcB3EOcSLbW)zhkX80~-Voc{bZhrd3xR^UrHjXq$RA3pp&%^VS}ywVy?{|=2Z5FVD& znsfp893_Ds{linAY9y$epWkqyzJAMXj>eBo40Cog|JcU1ZyU)rR_!U)18;0*q8ZKv zWQmo#EV(!V(Y^AlnR@&OmpReXqVGP;=Cwx;AAjo#STt(K(AD7P=RYqnTUT2p(RjQQ zvAbYuPo6gioIayk=~b1GRRn^#aURR#tx@YC5OAZy>Q69WfrDv`t$*iFsw^$RXjbW( z^B3xaH|sU`$2aKWCpPgal)Z2cu{4zfeDT0mr^&ChSe~XlB|z-EdGRzIsjXB3^67Iz zm?=Mi+(#!8GdWR6gSRVX#3*D+;&q&Hrw3?opAi$Fy}!9pHi3)s`ZtNmO2ds;isfP6HkF3QSGI;JM}3P_AIgpm|7a^syfOKDP#9k{y|K z4_Ox#e1$E%KtFtRo$AI-SJ1dgNTGKs*}q5kZYa|g*$MjR8<*+fKRlynyOO~UFVsLq zC9)!9H9~saV9Ib9TB=J`c(jD~AEA+B7U_czR_on&KhjlKUZLH)H#@UtjO=G>y1npI z?0)GTY^OKGm;ojR9wF#@cKt3@wv$1Ck_rZq)*HbYGwZ@QCRV8mp>!AE&q!9@t7Q-7 z&`;b)At4~2SdaVexmO1c9n=H&|3~PwXXULk<6P%C5kdavD|=PK~r^lPH8z6A3dPU(`<7 z|sNc%b4Dkc$dIb{ZrJb_PU9Ck?qir{>&F&D5IZwgr87iy>Qv zL9-{~`*4$Ru;221Fl7+?JbawI6)>o!`TGDm;e)ouIE)^qE(KH9?k9phz(A#l^QVwO zFoOc-c0Z*M7xi`$YvRUK_!r2#SZg8dKeYg2~@z%9QIav`z7EbXrL zX2pdEXyJ?*dURidD$46r55dlltRxWRRWAl}Lw=oFVV4^Z;qr5rQ1=hh+;Q+cIJaE- z7JkUu^wL}oiVV~>3v<}8I84w;R+4-DK%H7j(T0jipw|EcnpqhgzA6o7jbt80j}z?p zkp)H4OK2@A(Q5Z7rLWqlm4j*Oro{C9#px=Kj-(&gr#H*VsEFDRH&!DB(yt~W_dR)y z^8N88C%a1IJO;_yzWwcQ!B;9)WqBo}K$zaZXb0fKSb*fuITRKgRZvwtr6cYWN?o4v zCIwHxaUh7;OYbJg17eDsGnzH*=lMLWouR<&uxo2a2~NDExJ1|d>}R_E8{g1Fzx|!w z03yG0+jhJ4_@Dp2xVMUmi;Zo4l(4MUV0XRq zM9$a4|D1{|@FkoEXcP>~q_6)*w=AEhwfhR3sbD?EVsbVcTjz@n>MWSElf0^8h*CA` zng7--qfXA=x8~~?ZidH^UkrH*=b^UIZA04UM^JBcJTK*YO3@*N|@g{Z;7_;+NKYm zJ&coK4`7T3fy@pXjFbOts-UNLP|-2r7|dRP6rltgJUa9T~8oibgbGRa4T?;mJXuLvd3bbd?rug9m34(gN zLHW@nCw)fcm6|@^2S-P!x3yaBzC`rUfaEeAZ?Lyj4G1P)dFeTN{$PO~+ftzG=1o&j zcCv22=yd($wik89kG`!BUpk@|N`Br>uflM~-OW%S=%^5lGF}QsyBi^A|q+&;IQC3#PMKEyEc;PSy%Ir3E5+lLraJ zcqSJXsRmAlKgJ)$JWxL23;|;P3H_xoN+(vv@NoV8$t(@GKgjong!5qh+-M$oAmO<7Z(+8AOZ?OsP@?IhlXa}{fPQfMjWE0Y z)zmtGW>v4!Y2-)I`*`Q|_cZsMB`6lO=-%sYR0;6j$oK@U{%iwiC4UtaR_U30zNa5N zw^Cv4ATI)W>ZXU@)V|tw`X+;V>5i-P@{Z$LI3^Z|?{vMqX0slDcPF}89zFNR zXEl%#u0v0(W(d?|c~G(qK=kl?>yLu~4AktzAc%wGaKy}$DKAlEc$CwFuu;0E&}$;t!jcgK-+G^(`;2jmF+b~88%x%${NEtxzl=t}*s?^g?)&GPX!bVJ5KdGRav#6_)2mwLVX7aa zPASL3*~r&(N6{RkloCW1YDL$|4ny?>Qrd}*ii71`;~?+S zqm#7@&8rFw`FB6#?@(T))UMoSYWgW-^#1N#92+oJoJ2fgtzK zG=kk>AiHSzHzT*+fRkLdV2a-T{D2zBWFo^8^pi`@*30Na-F4@KnmB*s-Gq@p|Jc=tJ-@zl$af-qOwwz1t+kMWJhEMfw0$00C?o) zRp5xDl$e}CgTLP4I@o}#UI=ssbG33@7rIl{%&!5u9_o%z?s51UT#sPZHw1ph*Ji|P z%~8~Z>v|ZMo1l_omCDaaCrd;W9Uew75M0MwkY`xQ>V+3y;Q4$y?}7{XITwI+aSBQ} zeJd$iZ^CAh2Qw2rBQ1?Fya$+xlS4(odLw~I2Ep$j+Y6vS6TstLWR(N(KLT;!cAmq> zslNh$z0>#`*2IiSFavFDb6SJV(&u5v@i#2!Nq(s57MVJ1C(&d-`bPmUzKvzm@~ND1?mrykQ@#48&cVOl5B z+=Z>ZVBu`Nx|aS1Q~CaB`82YJRviVF+DSR6s-EX$9{83+CHmetW;!qwsUM9aKT1_z zvLA!<8WgkvEwf;gzMzqwHF2^!cUJH<#SsjjIS7k}*<8*?Q4^EzV4?@&0J1Z(l~+wK zAu?3gKCw!z)u<8RC~x`o^Kw&eiGoM;=K3NPce&La7^838`;7MImT2w4!>WU1IzKB% zA8aeoC}hv~CevNq$Os_FUkZQHMq!6u;MsK+*x(Fcgvl)+9N zhKCX8hmj>)i(m#wLq!!vxJ|FU`YPzbbN{vR9L5?%()X)D`Xqv}vCYjLKx7m2@+&Jf zdR&gWOS=^o)WqBjY2m~iz4iGf%7W4Aq-^BQh(&EUS5u<0J@p2_{$4MQX7)M=bpOk;rC$MErYwgQ6)5^`N)nEenM8lg%mMuAq|AVSS2 zlFzROZA49e5JTP*f>A?9Y8m~4ey7~T-v*&Ug!M5aZ>5ULs%mG5P&+W(fv!H))i(gs z+>drQGrxldwZPq|;)XgsTflIm-YQCA;B(*~_+ylM`Z{@Cny!?;ynMF0`5=wq7^p!l6%mP60T|GNppRNY2g-UH51i~23*Vi7b z!Wzn8)ar}d1JoE@r5}I$YQ6C0XE4O0^ud}uP*cG)m4np5>opeF8D*+)^%PY}aWM*FfKyR>4>0sHefR8{YO1Z*%{Sbl%}3hxS{~%pBPCSe zT97kAJ_X0n-c_mA<|ZvacNrUj3MoV^j{A-Z336??rxuUSlF7gJ4ABgavjgIxM-NbXzGn&6t zee{L!la9kMVx}bt#+$0GtyXGsDj>FXWwM|%?$;a)B|i)Ptdn77 zYJ=iBq|U#yEj@fXCw~S0Tb#zpe;dQkcrsSNhchr=UfJ3#A1v+w6j*ybID$SV++h@a z$;f*U;hV9jBB~F7yRdQ7PKEDB%HH}_WGcbT)wVK5H)X5SZ@E`L{?4^3^N-PY9(YUF zO`oC6(-+F`y?rWfu7FdpP|<)R{QZh?L~udi5P;87Yfr2G@XjaH>buEmP@T0B3QhRy zZn#nFk)`?Sr5EXrdw%0UOf~ro1tFbb%wKHhx9 zDcQK_5mBI0}%L=fef|U?Ki{6sk{QiPUBR*x_{w&vzoSj_*2dZ1A=o=GLd?8n4>A=!?^at zX70y;2h!~9CVI7?-lV$eFevoQiz!#opWu5#R++>^8Bp7}Xk^PHGxU@9_VVP`T#wMh zyYi)7l$of<4`K-08>?u9qrZfdNKQnc&d-U_2+&Ra@e}n2qHZ5N1ur#!ugP6_y7XCL zn`+%7)%E#NMa{cd?Zy}2d3&g-JM%y=TrQ$sYovQyTNIKUtv!ZVO3u(8h83lZ$wJ!Q zR9yQpfXoIDLq!&%V)DYpN(^!7{oGPb$w^c_ljwTuP~*)nRX1t`LG&O7$W+?%@|cZ* za37L5UbM3Y+KI4PHxH$n;KJjojZM&v_r8w8?i%I9VeH|U6m@zOKJ!d<9tPC}u%L_Y z&ls7aqWnA+hjuFu!M`;)m073Fa7sVMs|Y4zv$3+_l&0ER8nM$1o+8R$LlgU0SrZXI zrMWIjcR>;Q*}H2%qq$+wLk46ltA~M52?;SczjC<~aB!5O1}WKfxFZ$3f4kg2dq7=W zo90h9=-rho9d(A)s{sKZQ_@AV{i>_4W=$wq;Rp@bV40^EaD$DU?FObyYXh&$Zs9y_ zUb^+M99a>vB6A+Y$Em*p!%pMWzsCQ;J2Y1@)VwsPtn~$YVMu?>9E?8GlB6`$jUjPp zIHG`V(J%&uP?gJ}cmq4R; z-m*&-9JNi_wppPVyz%{I3gLw(PdP{bf&gJK*+XDNwB}|p7b9$ps*omWuItxvP*p)h z!0yxx&{a4JoP-}udlS_25?QB>O4YI%la$1$)bWXKJ-czcsv7E*caXU(l*!!mR_^}C ztI;!S*B_q$6d}bb&`s3h;zw}4@JoDM^ct8o;bmYEkmJa(E;Sx!*wlIRRDGz(fr)!@ z6tn1S$RyH>5`WlG2#qwAT*XUD(o z0OwmL12e#Zy(b$^Wh`)Oj+>xiAe@~ph=B&F_9A9^$+8u|k74$k#0*d5An=BsX87Mz zcm;-?#wmPp|Kqo2&Cww=o5y$%02BO?kO-uHeO)@UD~K|Ua5m8I)VOY$Hk2z|*TZGF=iF&bG9sGBFeQBJ87B0hBSkMH zkRHeYKePs}@e2CMbd1MS+vU|$8;|Pgug=i9Ge_#&X&0!j3o*>E-zPKnUP^BdZq8MG zBc-wI5o+ybtSa!>F_8lr&2#5$EJ&Lxl>m z>3eW825Dql&%oB$g(L9seroF)$zIR5lrh7!_Jbxhmh0(^)h*Q)kT>$q=Pb zZQj$TO%)XyoypplqqD`F@tX2dJ^n9$fbo5ry!5Jq0HRdw-9^a@rC;8UiHBORB04gP z9ukuSS?6Ggv@y}~NaDNn+%r!o0aR8CCCjq1GJb~xK}yDkH7z@9x#M(91ItHAk`wxm zx7_e=Pl**6b{eO|W&AR4!cX724QXuT-`pPOTzun4HtyBM%P-aA zPy9(&B3;wm-KZn=UGk-mQCTf$D4d3!yN`PNg2-NF1@`DzL4lrq;9bp4xu3p5jo$ub zla|HxD1K~$LQ{Z{`X}lAhV7~ih@<2LCxY@?DM?k)LHZSxUjjIHZ-0aK?X5(Wc7$Tv zYt+U%;U9RXrYLI@Bq{yaxYR@wKQy5cmsTEcMHXbOesmQhR%@#iP6IuG$ApoMbpSID z#jY-2JVr-qnw5xzN<>_-8bG8)W=A@uGi!kNkv(27RlMaRn%hX9v{O#PLFD9&)b?$g^x_Lo=&d(jR8%Bu2Pej| zgVxqIo_|oIGP8jk2RlshAlA{yw>ELpG7LA@*P7cYBT^I@M@fsvnB%vyq#w@NNA@&0 zh*W-H1g~q;8|{S6aqxzRk5hI9AYh*eole>JcyixZQ4zG;(Wo+(N|~8|@pI3aGe-*+ zEYRL?h#cJFWBzLoNQxWXxqM8(8vL{cIw zaG1+vBz=@n2B>ozY`O(k>R{Fr>92yG^P{nD5ChU-}nukeb#x-d$LT#8oLMf?9=LxKGe}; zCCoD)As-q~9c>-*z<3Y9Apk$p02zzBg&7e{1iWz82q*G?_p^hFL&GX)`~(`@H1OeQ z^h0{{@*)1t3v@R)ouAd!YT>jjg|r>h2$KLAgp}9akEr5gy<1CP2uIY5F&`D~Qw)NM z^P~I_X-ZnTlqD;mg}7Nrgoz z6gic1=T1}Z(F1BLD^{Z?UY)HTjd2}TWQt2M!IAJ>$bZNR?E1L;Ez2>~(*SeGyy3f9>uae)j*q6&TJm{`=PczwwoaAd(g~2VkfIF({U81c4?p zqLwj#>*}j%STn?@9z%l>*iGc=#F2Ogi!}{FWej3dR`prq*?vnS+8;w>M*w^TGdjVP zKf*%yLPT@pOhSloo7ELQT7lU~WC)ZsP`VvJTHoUKaA2Kh^b`=$ck4l%Yie35&tVP) zX%dTVINt?J7ir#-#d_tHH|6?#jk-g}sE7<@dU%g=+KSmY9S%>6yD` zK$rb-fQEJg^8`_k+yMvY2h7(TtD)HXD3gVeF?!In^3mV1ru+a|qKD@nzi>H7F&un! zH2o|(G&tS?=7g*pJx7Ztn8O%8PW2TSb{ePp75@Kue+KCcqa@|1pkh3N;0IVgV1PbF zJX{Pz%>-i<%vhN|m zGbc>OQM9Y8FW5QUVa#sq<#*#l34G2sWvK zenn?>rRvETdb)ZQ9UGrRlj3A6F+pfQzrXNnWxBp2f*BVtLN1&ReQ22ao9x zBXig6&et_(&C#qhH!8b(G;jVKRSe=lJ1UhFJ4&~``?(&ybgVx8{J7peTA{x30ssd% z9@dymBM;*Z{NT0>lFt|GYXWFkvRlw&^nlWG6`#fcT!5RX1YbMU0o2tcwYOt zm07H}(GPsqG7!^^iUkEUYjTdZVGw09M1o#1FJVSA0eUxV+ z5zDjsyFH(=myJbkU!Q-$a%Xy=i*c&CxrcQ3ukKeUM%~!srZzAQM3W(s?ETqca_#0g zI#E}?<+fXO^*6sIKju&P4S)usOePd@1AzFtpr+V(+kWhyi^hH@8POouoRV0rF5e9U3T!`Ly^98(`y+;ONc~J6&JQ)Q0j(iSj695WG?|%2^59rlnjT&?Q zSM)jV(B1M1rIF)fJa9cMb4X85(QV(kUbp$ewCwJuwX+v(Bqs4$k34`< z(8U*C<`{h|p7i60%=kAWgB~4&;_4TU!(5i3rL5d_(Ipq_{g11d|B$59=FR1?I4_)p z{k|0@x(V%_XxrJ(tjTMR&y53_1en~qWz@+g? zG03u=8<~muu)&T7eY~~NDG|BIghFOrs_dj_kYC+8C&{ay-f%VCizaQ^lc!(q=};Bp zU7vXGa~7#rXG|KUlxXDLa|_^pBqCbaLbV7!3l2CfH5KN2Ee;B4b$Ti(a5X-GALAo) zN{dd^l8dg>;bZxFYIQzYNd}6$K5d65v*RcXK~IW`SLdmoOeJT^1f7#LMxQ?Mk=oFj z`p%8t(C&A4t1k@18RK`s5EBT1UJIsFX?>l+A=vGIw(o|2|37~PhMmU${A>87-hnxS zK^n7tJ~R9%dypXn(aZ3FK(eOk73Z9zc4keqVR$2fW7-^Pn033_q^|8Q& z<%5nwYbZStb0iIvhRm=>LQdPUb1QICUJJ+6L&H5|Y?glgi@SB#-M`T4JFnO5pZ`&L z0W_SwJvx580Hc?IbFh91E{D=g4}>!7pB$uD5QdXW#VA_#V1j+!MEhCkBjoBjtmKqT z$~rW8F~B^1WmFtZv@Ho5EVvIaxCD21cXxMpx8UyX4#7RRyZhko5Fj`V5H8=n>%D*7 zz3NO)^(i^BYagr|_TpSj$#13Ix!aIt%qAKehJ~LrY{4ctmpPBmP6taLXRz>u9BE#s zh^fZM55#qQU+s>f6&MpWM|KjG7zLm>N>;Ag#kO)}5F!fukL6=18~|3X2wim1XJpY0 zJ%T(_=bYv-qT*qFZ2k2M49v*iimCenYdcvP#JI4HlwTZ)zy7THO?tRCzV22$qNAo) zMzrH5FgdZ*H>M;F>C6-8ycLR_H)`V)mvRbz2V=&mNXiiu&fWBx>vR%yS575nP7rVj zHB>-qhp9$VE4Url4%R#gp3Q+MzaUQ*ouN}*w_|)M-WdBNfzD6A!07Y-t}K23>`@VO zyPP|TZTWijeqLRnERoSmVw@SBybJo30mlhMS6cv82}3~qKE)DzzRA%A?;T+12O5<- z!5eIToYvspjw9w^Lz;>&6OmdhKEp7M8P(^hEdI%QYoP5ue~+c-1oGIv(D(m0htu_FpUos)9vT57M_|Z%r$FhIS6mN;D@Uh=p~ewHj_9Q$b{49!Tv_SH2j{!c+msgTNOtok?SKSmY(9dG-?-fWmf zz?Gq&5NVMyIH`qa2NGwy|41h!g^)v5IJPBcnsKGWCFVtsnd6?+VV}tI12tGE73NN| zp9UOfmDFK=ct_4;Q1K0L8mh%i+vf_l3L^CAW9!WVq(-MO7^PtGcNX^~6+ z1$rCW;LZ$|AGnzY$w|2BMfIXlh$+VXDF8BD!nU+%9cWf5)@E=a(r2)3hIfbAZK*u| z=lcFBeUIPCumWV3sldYY?WU>MGQk>AktQGf2DkMJgysBNLv%t=-q!#3c|g$4+JKiC z*Z%wuNb#CfxV0xx?2(xO0z$``V%SA!BkeRC}=yWFyb75Mqj zqRU-GVOmt<%XK{duG#uptztyiGmHPCV8Z?E`yhOfE~@?>n(Bh;PFHr}JYdI6TT{gu?tTL4II7vra75I(TbqRuW2? zQ5l(tf7E7)TAB*fc&9E#N}J_O!N=tfz0~_9@rK7{icZ%d*kJ;J%2uF&2U+ij8eritC_e!Y8iBHYj!FGpU^K94z^F>J18680HtN^k3XGEbDQON z4?l$`-e&{=O@(4MwyAnRr+<@ck+?+(HH?z@VoqhnuLVi-yw?QVozGLzYzBJ-gH|Jv zshny8-+5wH9wz=#UQeEb)$t-5#~sCI2FJ2c{|pz1NsOL0&GNf@W3$gJGk?dgH6^Ee zWgPl+-AE#rrss#aozYX+8OP*ZV;imuTbW2mlM##6zOi;Bt1J?PC*&qxO(C|5w~Lji zjLNC*>Qw#Q0#n=EQ;FxQb20C#b2FWxV#fn;7>hOvtQmi$0bWqMDFe|OVZahqD;0Gu z?;rIZfS+oq7O(9bPv+M`a7LlsPtL%Cwu{Olw`HX&xA@1EO1GtM%Zp!4wbp>PLK;VOe-^X>>Z%D0|bF5m6)mefFs=z8y{Ic3-LqVB?f=?WM)G zKlU18kLCe#A2E1z4hrWmsGvFy1vsE4YM(_Rr)mAf{B zJVtTf!9vrlp||$PPh%dl9dW%lp4k^=;xHyE_L!v2y^qO9QZV+h0%fv~HZq#fr;XAd}t=*9HD z3`dc51sCUJFq)GU!BL9sEjLk>S~6rpZRVy&5%tos){`5Ubv?3~bvEn6t%?>u@Ne+d z%7Ww@Q$83n1i~*Pd#FfInTYKe;mxV%)G&U@e@k5Yo%B+D zw6TXRXdf!6v_PJ@Z@*a&diFP6uys3%;=XztZ0H7l-;l)F$B|X^D@$zpRVFzow2wwW z5a+S&g1}3azLy-(D^r3K0td6{b7A1H z8^>c$Iw~|O@*82V#nl|<2en+$RoHQ#t7x+G_B50*mn)3ydJlAqz4>dgrTJ<^56+GS zZ*8{;vrD*&(sWD6!qoFM$4-b(o)@ka+>kmNoJQ<-?@=ftGj&`SCq^K~-khMy5j=@) zK0N?+xaI9>l!&^qXfL8l@I|#qOuqdsyRP7 zv8X4GRFo>_wwqCswhOpZjB!Zn;iKAu)-*gl1H!<_!*>e&p)-m6DUlAtA-w?-L)hZc zr7))R&eSf0U%7YQ!}V7JMN^bU)+^#Vjh%#-2{im49$fk@fkzlgM%T7`a56-;=^%>JlQ}&Avz{LSjT)qC^G8$}Y@qQ)LIVOUcwH-Vo z1cWnisI&X=b7LTUw=?{o&0oY3iOU;f3iZyVSQW@&g=cvWnK`6kE(U~lGHYck$*)}o zY|go9TBNGOhr^gtd~j#*d2+sB1?;-?F5jH7){>d2Fkm zN1-PM=h6RChw$hiArp_J9}to$<#xtPZH9s`$rBAJPl6f@pRqN=oT8gC^aP?Z!FiM% z?CjW$OfTLlVdKgm5Q!_MZszTAokuO+>_;mY-y+l%CU~_B;trJL1Jg zOV-n-{pi=oSLn|$8k8c);EjrC%Hw(AxoX3_?s_Fm?`tkyl2J{zlngnZOd!9l$#^>O zh1v6op14#NeWt`w+2OwGo6Y*fcs*PMrXSnw$!CK^Y&d|1T}1SpE+l#W*DR`wE<8U) z2ak|VluJLe#W$`{;;uz3CeS1>k79hq2i%d8D`ksMp@b_Z-y_Qvq6R8i{t_FBZTvWJ z0iqT}|3%?ZPtuE#=zWhABFg0Zdq0l@VuFwN|J`?3S706?NGSxY_It~K3=Zki3xD)H zziq0wW@&;Ihd!t(9VbKP_q-l4*lYX82j^m-d;c~%rkNa)J;LN66^^3oaqDPHQ{A_3 zu|1lB4zqtIqre8P5MJlZ|HMY`nj4Ocr{^FCc!5;{n*W^5CdhbxTx}+v?h;B}KUg;l zIQ;ncvZwlXb}kjRfnGPRm3i7nWP6Bf0JBbvL*Ep5{XN|>T^;dDwq^5vcxQR(^7zZo zMtdiy^+1GDDIt8o_-VE1z?VbBA)_(niYV~6OZtm7iuyRN+6p_6ygs}$b-te${fj?@ z8xg#=rmE^tj}=f3WT;Iqb* z4+)bK5`CvHn)hPNV`49V806zB>dE zbs~`e^&e$h@R{4}h3SVR#Jkg=Vt}suG2G_Eh==AV0gl&;SH{~}Yuk0>-3{oE*Wbcb zsppq&tqaE!o+cFWL~X!ubZr8aFRKkM;Mx}zB|Bus7nz@Ij8>iEAS}xvF;hm#2rg2T zG5hx53SLd?|KFp5ZJ|S=7}kd=>R4%#*C*r&YKnaG;blfl!UfGErzkPWoi9A?ymK^K z_9vtJpanxK^C(HI`Dh~Q4r|?`-VC!wnR~0JBzSTuPSl@TWj8r3jGNpXz1A)AvY~u< zzZyKxrY~li1nF;xI=0Jls$xs$Cp57qPsK*jeXw#G{YrWK7wA~qqxU5K#f=Pe5QUqDSDbDC_tm$efOn@a^uOrTl zjooWowozjy^Ir)HMN{~wF4AX&j$5^)vgbqJkuES`h-#%6Z;TuV5FGv?Q0xTY6M8j+p3jYmG!$AITPUqrj_;ZW6&-qK|DFE#+2K?AiN2i{2lJ* z$MOF-nW80(X0WIOo~T9b1;0wuSPVrXv|8*|GVw9p4E<}n+d5;7Hyca-$@pe1C=qkL zL8yYJqLe;h(HC%}<<(|rY4Oa`18Q7C1N*7YALQ{hyLu!{}wK zywA(X4{6XYBsO>8sr-gE9JiUwKnS(6+sO^|bxw*CMD=l&A6ZI6ZRwQId)&-gX<*CQy^sQ(dkL0e(aB0kFoa5MySbX0&VRvw}uT6{cyy}y27^2<~ zOJxuvBv6xh)&pf6+OP{zmB!3G(RbYS6sPohzkch;jIE{VfD{QB8k|3XN?A^2D&aC= zPt16RQaRH(=u7qBwO39`lR3i&NCgScYa1d)Vl6h0xbM#7_!HhA60&wMx=l$(#YGEQWayoys=`!1D%s(cCz*QN zC6nz*L~Ie#q$=Lo3TVS4@_jUr<$f^r{TSpW`@}e0KXSzw92Jbkbm4IY%N{caoPwhr zFI=wCSP_FHU3O7^D->^&ZO3C-`@#qiG#EEcH3%$-=uR#MT!b{kP|RvXC?5d0;@G2WStaZ_$yB`A&l6`5tc9VzGZ4arsE zMmU{+UEAbEJL>YD zF_XGie)6Sfc_R$xIV(%)%iEOWMU_~4%I%4|rj(*(XI`tV`z`DYI07&%DiqEX-l(|~ zrvDyJm)M4XmTsgDv;SVQJ2 zrr~C(KMZ***9$DQVU*6~Tr?%@DE%$Oz!;*UDl)<>`_?qwe$kbRBfh8)d$zwEcMjvu zgEv^-#2}K1LeZ^~7m0GDi(So~POy0+zc#d?eARH;M&t)naO$~8^%!OtsWq@yI zl^2`e1sukFRxjnlT&`LvC1xcKf_KwyQYx>9*K4pHhNqCY?T^0pi?Xb0l@-Bj|H-$5o8F zol?*WME|LFEn)^TXv@!cjEF(eCr@v_rwMl|$2*lt$Vm!ouS#y?Qr zbh#cGb!99QdIL))^Ib;Cp@$o3v|7VtPU6hi)6+HW||CeoV58ZzK=8m zuLNwjyDUgmu>qi@d*N0bKf1BQAV|R#2&ZindR#iEVM5H+OXHiF6W7M+ZMRt1=sba zjvz+n&gAONC>E(w%Y&|0Ja9^`AT4=Q3M2@>Vr%i?h6fs=#}@xBB=|?oMjXf#MgKls zcebh#g|_}=VRlj+!PUm%jL>%HHXqiD9J)4jC9X6LakbF?!4@J&QJp$fs3b!V?9Sd#Ld%&c9@r7Lu&F@w2wrBr|s}=)2K_jo=i}d)DA3I zr#XHI(_~bUNuDssP2ky`VkYh?3XJ|r(o9-YS-B;;?Ic+U>wys&O7ww=p-Nn>$5Smc zDGv9*9Ex~(vw<#QEauJ3Obt3mB?=wy#fy(+B~#o+rR1wM2`+Z*3E(p?sTGwq#gHdj zg4`otYwObB;k5EpRK;@G*IcgNiJ9#1kYJN5M8J_I>kJ|3xVMX-NO!ZV;~Z!w2ra!Q z`CcvfQWpDchmFVW3Ma1a1UFDIE3NYn-5)>{Jb!;*S7+KqlXU=N#!O2bd6N%jjIz^0 zk(QcEBRAWFje>nY)ws*Q7&S3{stpsAsWU;38T^>!!xOJ(dAht-k=&QhROc)B^S(N> zDS-+PxGUL6s0Fg|O^cSlpTHXIzAN+=#D96f#wdOMG;$dOrS;OM^fQs-)H!upOBl~9 z5h6qHoeWq1SlTBzWUA6d+x7Epc&t&5ETxAs|HHYp`oN@+?#9{r8%qq#DlEmBV*M1 z`M4i6EDUkoF9;=8fIV@z$^h5$+!@nEJaD~&q4Hoo2$EFx8RLvMMPVcT5`#ide@~wK zE|u|2)hsdyU7RGQs1lE6pebX$CCsaf7B{RUZ{pnfSd+n=b%SX%AF5YSyDd>My*}7l zo4Nf|qDU}l4{?W{wq<7ivflfh+c{E*tY}I?9@?MWNL5=(fFKG1a+oiP=XOt1S>ovU z@TQ$<+Fq6HfzcK1kbuR78AS|zbF591G%JO^s-qf)>!tmf!kg24$CusP{W^$IyxmP% zfjl24lVBsnBmi}yL1X8bHLlyjea!p^i}qc9h|qW}Mx=UK6a3hUpmBkrud+RbIcAZA zFMuSd`0P17T=7aj-9mYumQ1KZlqq*a_|3ZBc0C)1@fPF9R#Hf8Ham->5r=8DUR*z4 zF%wTH_&a4}qyr;3jB~Ee!ys(VFhTTcL9K*{x~{rESR*%h(ZC=SCXCp_nNlBL{^q+} zupUO@OPh7#oC}1s`9D!Df#eTI51pY^6?$h5X#rXb&d8pk;-Z`Wa1|6j&mf^kBrIw!gVz*$p|OuV|MmuI+TR@jw}1TqUa|wq|l&a*oGdRPES5B zU(^=CB_45u39mozvxsXf#!VB6T`Ce)s34)0NEw)#(4Gz4JR+;;I>bE`Y;%p8+r*eW zQej9ET(shH@1QRGA;RWHb7Px7AbrNNFlMx1l2d?G@XvCtk16A}Q-!gO2ML9$jF|w2 zuH5vGVfybc|9RrEC!23HNYiu3NF06s%j(+oH$PgC?i{cWuF~6czy)gxv(2q1_`(b#0<$?tPJ3a z53{fwq|OU5=I|I&MusJOV*t%AyK=uE+nV3&WZB|wNx5}0ilPL*Bp;lDT1ewAoN>#1 z@AP}6>Fi317Hm6XbhE>dL$Q}cSZo{Ol)3N;})B1M6b((G;s z>oxI&eCyApWAJo|Na1|9BF`-!kch(-KC<^qYKZOuw&Rh})AMHte zkEBBO|#L2%_}bWmC25xD*? zZilGQCZ0|d?aq8ZV)%+Kk z%J8$EFNY`wMtXI|i|kj<4@EqzHYws6y!Gg~{N}V`w)AAixwjgHJBBR37B->J7+TGl z)zyhMVtGG12_C#1y#y~u@gfLTY(89=oFh=*v&~E@`nsLp`b>OblKhRy_ zSCM9r!C#O#YzKYy2vNY3jwt|K|i)X zSUi!_k{FE$?R#XV{y!&x$0TB*P=gkrcq$F8;p8M;N%pv;{7J%g5qnZY(Ly*;?Hk}a zO48Pp=Fco6Ub|OJhjet!Ts>UW`mfNvF0u8tVG8HsjEHZU&7Bqt8l)s7JuIEhM9Tb^ zGh5Cv=uN^y_<{pk{qgQ=w+2p%XGB6DNSK+QZdnvdnvogCCG`g^$1??DXF_=+_JoiA zi$DjXXvaDhb9<`$IT}!Go|`u1TRz4%84Km&ecfM*tqyle;GG#^bd76@X@<9U(KxNa zO*cjZ2OV2(4iJ^^o3F*=1;v8A!UqDl|h+s$c`VszaZ>JyFq?fhF^Rbe(bYYvA{i5&cFmk?-Qm&E-RB=?BL;i)luKmrlzbiz%J&b^>);H`d)QrMj?M&`PdaNBc_cpZ>wQANdHP+E8x7=xQ%?JxKV!(=z}*a~ zGE&*|Ozcv#Ys%cj`JY93(r`4fx9PFp6cNBkSi0gv$O954G!N2{T!r`kx*4wYkkKi^ zM8xFAG^34W3tT@z)fG8`G+wl!`{v8ApY6EQzxm{fiX+}qi4IGWuCj4m_5nLtHqv56TW z(>!91s|WtT&nS=yksy4~g8s5p$^t8eQh^>xu?FZS%!@}ROLMov|4(llo-@<6Ny5-B zdJ*E=+tSrbRV)Vr^T}(MG6Q{cyU16~Hotry6DhHyoq4I8tK3)2b)=W3tNuhnh4Fx3 z&FzYHgHM+9mS!h|c*?%V>V<+TEY0V5sAmApJui+zG~RBP-^u8We>pOaD{Hq}==oA~rb$+=6w%$Z&V1vJEti3Sa0w&_r9nF$*wrGP?|!yyPW=*52ZYAIgpX_VsReDgPrg zSzL?wTHA$6jp(i^LKFi7LqCjdro$NqE_>H0@|5R6UcvgUMQBTX^?k_>f!IBzo z7=zN_aGKg-9Ah?iH>I}`0)GMtD*e69%r%85v_}=0+QGe&1ELjTLEj>xG0I~lc<7MSg|3g z76W@WN^Ac2>mEsQG|2jK&PU8anlK=ice;!lKbVi@kL8!?O#G=dG4`(E>0vaMcLNqvQDbhE(ww` zhil8py9*2h5b-RSpP)|cr1ItoO&Y7;FxVHrE0cH>|4L?VagVRH!A(N=PgLBY?!iF~ zOH^yf1%JV$Tq!`4-51%zjYR*(y>cp{>6B*fk2koZff|APSrPMrmmFy~EKvUjDTm04 zJ(?Xhhp=Wk#X_tDRZccBmOM|@!5jJbrLseB9Rtd?Xugc_i2=Kcs28Q4pGG;tCxPka zTVm;zPh6f$FrTKvidwZ#-gVx^z)=x4i0!gHlmID=S>t8vVkxGfIIg1J#CCR#;X~Wy zUUrZL`&yd>4y0S-#Kz#~YTxoSwWDp~^6qJ9h{s;L=0kANc_tCP9{>bjZFQP_l3AZF zRV1s0N<27F)E{I)?*Opx#SR>cDy>@Pn1(Y05pKg;!VGZ;u81Sec$!Z_cCJD_thAe)p7^(GCRI3+rv_-*CK-9fh@SR=Uq7Cy zl{_pfj;uy-j0+aFNY|a&(O{}-Yzbu>;3C}y`F~5nHUD9#k_+0@Z$=6X4ivl#*){Z5 z)nUpC_}Dk}Y1n9mhFi@U3FJ4Upe^!P>1in&3lDP6!d9ZFEndH>kz^Ot@xxp88N&3b za@cXuf>R`N{gI9i`;{f_+6y|=7r^5DsC(kL9jjtb+u6+dsamIk_yUjXcZcyV(DSIk zV;vy(l6Tv!50lo%LOuf@} zgm0>5_R9GvB5$q`V0OnxFpmnz2>v|rTse<&AQ|uLIeM|#-W17N-&?#YY7zhh6+-^n z+Y}J3)jM@t`2yLV+xeg#AK$kOgq@^i4+hes8P zBWS<2TNjpFTVR&QLPPu6V4~wc+-|k`we^h^*&N16DHcsN=(iQB$VzyDeZ{~MAV*gw zmOcy=xt;POL{fEAIx62^09Mmh?D@;r8GBF?NM)^GNd-9jHus9 zar6^3cr)zS*yqvr=O+3U22hd;3xc&-&}ogQ7!CI-bGIT4Me8^6IUruT7)qb#mC0gL zr0S1B1WmxA#6+za3&Qrm7b$MVEw@NiN;3=E26b59hh>cnRx316jf`p9u#l!SQL1_B zyRKslCHQ^5@xIuZkbRz$hG?=dH^n#FfUMW)n>=|ycXswK-@r1lw{#^6^@o>P`;v+ zUX=8gy1C*n0=N0C`@HPzSlt;l4hp3*KWf6$uPR37eHb$S$qxG>yBtsTZ+Yy*X0li? z*ZFWQUY2EDpi|0=Dl0GO8#&(B{-w&o4bE9Rf)o77UtE;KM?Nvlv9l={w1g%?^qa|{`vDYI zR8$0c{$IEbH< z0snk;J@-OCsjT&4lhTG6!@KS|B#Hbr^WFxrD@=@)3*oB?dM>wf)soWE%)8-eZ2az( zHH&<^vVudygVFf#dj*Y8j;u48)y4?8K!G*80OWrN&g*QHNRlHX!j-(Fy!SzCM$pglGyM}#FTsrer~ zzSZ2+vt(PSKCZ-!vGiLShtq01$cYwDWkUK2L2cKQep;H8xjXOoD)`~9Lv#C7w*6U7gGy{p?6iFm>=!>;$ojW86;>d&&fvu&T( z4OWX3ynp*33+O)qU*9=EIwS-nj3n>?9`~Woeb3?TCO%*&2pSFtoKrQVgSjr77yr(QeBUcg*JqCUSF6{VRS?C3Q+M@=FJ@^d z&GQFa-CwNCR=+4Z1KHpd6FpFq2C&wV>na;PqH+1w$~oY#=2)S2{jBy21G?O^sHv==edEjJYSB|kw~zLur&lr|N2L#qoJcaeSffmH+?P_ zc>lI<{W&ngS!OsPp`oEUk5W|r4j?e#Y-Jr&$O}OoJRih!m{iR8J#E1PeInCTO}|i+ zkPe{W;#wWk(n}SoTUW~gP_g`mawD?m`J56P36nWx9!h!_BrdXfy&ARh#WG|mVP8fm z@L<0QcD^(~ez}|oh`muIx~}9Ec*Y!Szc%T(+w%LX2M8jx?-T31zlF&gDPRizJHU6y zs+m*|;H%FdJE+w=KP$=k7wMwjdQ$rmXt2pcfK8UFRP zieoAQeOn)juoF~N3hh3*FzI~KNP3$rlpvIZ*zw&y)liLOH5m!X0CAky@q#qKc3Q(K zbJilo!bv8TbyVQG>yFqdT~updc&Qg|<0$54F-@>-kzrJxGE<%&L zq@9UEhH0KB0N4q+T0%>G`EqPcI-TfXac`}i{nE+RV7Jpuu8y$B#R-Z=`S_}qRh?sKimXlSE@j6m{ehUAYW4RV?*C! zQm7!S&1Y>r4S$F5<@7(GPTW6>=IG0h21Y%fxKVm2e?R6Ec|Cul@rF(qpW|@sub-wz z*WVVOR-mJ;(9Z=$>-h%q_tmW5d>f>&pGgD)F3k@lCl+Z26u>ue^5N+FlDM{RVq ziQHE(iF6cS+(K&9p_nA|MqOlEo3cmwSjdYC*!Xb%jid&5@sE64e--`vHYq~!U{~Ez z&O_pzwh2|Nfo#-_-)Rd*#6d%#jS>*Z>eQ2^!;(KLRxEL#l2zsZ{;)FAF7JpE#kFm_VgJO9Jw-bk=;zRYt_@n`Py4#FjS;3;g1F%_q<9f zc+O5p8SF&k&jm}eUw-C`B{92SWlEy0B6HG%xOvq^lrJP&@`i0EueptkkS>LA0Jq^4&1{-aXbF==unlB&~abe>W8)5fKYTfotW{rUo*G2EH%S`*8AXNkYOHc6X z4rZcqjUc$*_BsJ9gnKl&U8t*6*|gew9){unbUNtL@#?wmzkfv4ovSF8SYL+%d=Scx$dWc6 z!s)Mskg^$=3S<6?o~Z?sX@+-d;*-`T-1g!uWL1{gVOHh3ZBHr9c)*uBU3Wk2-;5G* zSV75}t{)znTW_R4Vt!>WZ>USKj`Rk7A3SE&{tC8ppOU;%o4`q`Oj6Dlln#qqcD`yq z$*Q2$+B@cj}Do?G|vxQ>~{hWtc!bAM6KtmA-Qtw5W14kWs z)R~^xM&u_#Q$lsXYXboQWp%Kao14ONb|CC0QXuK~FJhg3=R17{9^#k$yvdfVhj;-j zo!>X6Q8w4XizhSm60rX{zOKCC#}>d*KAwE>yZVMYLUlM^1+stTGMpht*iISZ#lh?y zZbePt;=Wa<>F>ylcFvmSKN5=L)$@C-Cz~0HFU!U@+Cey z6kOord^iyz2_6mVJ(AU|B-L~(a#nb2ytqs19~%k8ufOFFA_Bq0FzX_+q(^vHJG~!5 zuJ#-)pFQjg>+2EuTp?bOtBQY{NAQkb8h<|fuTK#FttelJH$+xZ>OUJ6wEVY_)Er5z zU;KCbDTn&=zZDB2;Sy*I_g|YiZQ@Tv3h0*X((V65cH#aLk$@O`L}7>euZ<<$e^Ye+ zjqIqnkZ~k4Q{wK&W&7HHqGA7u7QY)!N))#}TjrPY3H+y+b-4c`LE?nX-Ln7Pep;sR zaH~e5$j}&<{QvuVEhv&QGB&A&-iH_jSid`|5<3HOKJ5cO+dn-2_r|{Bc>btBNLXgX zP1Fd?0I1!|f-#@%E-%lUVeIdgte-tZS&gd|=Z^}r!T#?R$Ourn^w_l>=QPb_j(k-b zM4n-E*_Nz#S=5nTzZ&>K9)Q#YJyf%rp+8{zT%AO7H&q_Ys_veu*kuVly{$OzZ9gqL zS5+lLg~ep>p+{Bja)7dOQY8=w?B7%|0A;8HXq#IyY29ZuTyF9@*S+h6-nCtRgB#;O zcyz0pmrEm+#n&_-zUv-Wxf76IOT&3)bnIpIh1@H~4=DTx!|6Z+xrXyffhvWIEVWVo z_0KQoxQk-BC|XQyd?U^b@(5Jlp)0WlGGFv?+%}zSOHPoWRaRZoY_DWJ9&OF|V&72H zLRMBGC1FSy#a0zZM5tAJX&#*Rfakm_iod!cRZm`3+km{QAI~Q{K(2)6A}iJW%VlSr z>H?L;vsd5+zN&6;^RY=w>j<9Q+dK?pt7?k`bqnG_N%eO z3NVUSTb^@0=AXiS$DVpE5nWtBlX+IozvKdKO-h9NIWaMi%?7l)=`t&3WW>)r*=an&tUwg#-wj zB=oCvIxuD)FX#JSK9| z_N*$y{jGF1i)FPN{>s>yn)n$t_m%W3t;^-Qk%n3=zcbyH8kglee|GcOYL%yhcuTnN z;mJ=m#{GIHAWj}INqWob4g0`_$lUJgIFhzq{My0g)0g?nM;mbP973dKqk)}vV`CK) z_L>jNGtYr2jTb*P_NqQo*8`vle7VVUnPCont+&1tXhGPvt&2WCHaRKc@6Vs-x&O^2 zWsI8l2h^zEUzqJzBA1o=5EhXFIaWj}_t$bcG$bGfkQ|7MiO`^Vf+f7@R#h7s;=1G) z+=Yi)5&9Wy5$-ydx$M5s_OqHQ8yX>@-}Y-j=j?Q6dmR9ev}^lm`b9gcs(HE3f;8FK z*vxfpVlVrDu!CDr%Rh%V2!GsKzOwE&jk>}1-IAM)ub+khw}w@1owf7Va}}|7txp2B zneNxyux^e&)!bR>9tKETo!R`=EtPpon&X01WD?T<^JNj!1$KtSbX(syFX0#yjt^lGqzSK_uihq+-N1u z!H;=<_9UaE99&t!zFcn+`2-hya#Kbj#4+?=&pe>S8n_x8JVQgRW6Yy`Rhpj%tEOla zbc8vOIV>;xh_VVZtMdi_T8eodUfecvZ!M!2BRtL$;wKcf1X2O$_KmnrVCBonJF(|) z?k#{Sv5Sg35wcvk*Pjz~f$wv4t)^0W&1&5#16&T%guJV9=4yuW91bwB#Af_WC(Qc_Ykyu{V zs1b_GD}#xIztQH5@oWn7N=zDA;A2A{sI9mo zmJjaYiu=cv{ieNIY(ZDXFe}Q+5IdRa1Ku~aw#Iv1c+!3p-9G?g5iAhji0_xtvs%yz zUa&`_?^_rgH-eRQh-L|FDtwF#f>Ps@i~kU(oKLdeO--_>p-D>|bgc%1{tyQ)Mpb#7 zMboleXaKg3i2!Uwiw*}JUV47j+TELu&X}o~l_6P`(k|U$*}-FDRCk{vket6`fjb(m zriI!vm)6!_4Z!W%2aT;;e{f8mPIcB^F4=384jC+%O@aqQjr!#rw&a>H5oK6a_^}fs zIMKabd4q~@K`gk9S97u|u8=);%=W~r_~*9Q`g2XgRoq2qoJRQZ^`~=Ol_^nZm8&ID z#cc-fX7ed1VHKN4NZTR*2ed#-zb+^!Q*`Ar&-&+| zf5xz3!_4>DbLOBU<=;Jf_T0gh?9cKJ1;NP5$};cg{)}tYtt5w4MeZs*Jkren*T4QX z{QUfoo=%e^mJB}MPxF|kBW9=zJ8v2*6vJ%LEly1yPXh}5XvW?d`e`wb3VGRdOH5}(@&_ZtTgB9-}J%$ zt-h_g)(%;7(?{1;taE)=9jjlRdl$jrxo4lp8*jXc#~*uwVy0^R>&<_moaUR07cMqc zt#zxPx8Hup5Hnq~N_km1lD8zm-{0SirR(0~YfcuNta)2)b=;Di4CyXZTy75x%t_;) zrt`PvquV|-snIjF*4vuU~I9Ge>cZ#SCbw=Xa#at{C%3joJd^ z=w(;&CLYZJI*{CjRY$ud?b;rG=waM`+Z|ZDW-Y2JtMHcx9>PO^dDuMI>C^v*TW-1) z%a;9&xpRI%9Sy`&Qc^H&>NL!sHy?N0ekYbKr4cw0+`ry@6Mww>Pdoaz!0^wPU%_2> z-pzK~3~_kv)z|Uod;ZKHy#q_x_U1p_g3mwu+_Zb+^*3?X9d}{NmMsP;JoeYe@z|q} ze;8C#r^j^u!D%nQt8pZKDN_Zi}PFZ(^A~@hnry>4GH5X9)A+gKKq=R>ns2K zCmwm|uV(DmUVRPs{NKF>o|=PT``mMraSzui%dnUJ@e=Ok_oBj`qNVNIwsWm_7wh-Ar*Rs8 z!h5Q+%RM1kYjd#64W0-_*0XPVZ(q)3g(b_yzx?Gd_{Tr~VfqsSSHI%k%jrj?&56!+ zUEejH=A`fX=v`I4+i$>4B)|<OiTR=R@86F>ze4dp5|7{Ca6J|;{)xU5t8ww9i}3&v?lsq4gDF!!H7`S7 zz7W5^;Rb_PtueK8ICtyunH_^(kl$W?6*h0)OoY4)3EjHls^4CTkBB7CJO4a% z>CzcjTzR?aW7x2v`1QpXqCNdMKKXbG>wJQ)T{{~w(xOF+QO%e4q_HPr6h#Z(1d_`_ z5qBrux+NG`L`6j*IyxHv{qHyC1+C=E_SKhP;oS4iMaNDZOa;!p80g{+!-A^#v75}f&~jGhAYCuk33|EsKjw&IrqmOdlHX5{wON=a$k4d zwHQ2j5a!PP5u=YAZA2s=efSZs<#qia7E)|7e8ezJm@vUSlZg{g#m_%4$DG-7u${Z* zoSYnN-I{_Fend!)JAMpadhuoa`M!Hidke#x7waN*XRypQz_ zaR`k5AK#TBoK+pFIH9k&%TJ|9@unYsfWIDWlXCC9_u@zT^8ESFf5v<7y@!i0z8EW3 ztS}Z+LbzXl{k0LnYFvr#tRmA~wcA_Krb7r_@6q|^pN|{(yFT^QQz3EQ!i5Ws0)Fx0 z#TYbb5F#QXb|7%USwv>?5&l*pXf$zWn9)JDoU-7rU{mn={UVH5| zjHD%)+D@N7-Qb4q-MeG<&`kg+pYn~>08b6-DnnGPl;C8M@RJDNHp3W|x2Le~U_ z6(Pr?xl76a_@hr?^56M#(F8RzN^))(6GIV+Yp%VTEcROXy1fu3f0TN8jVUroKuK|l zfsqL0>eXv7V#M$rFbfS0F?BVbWa1(k?c>_RO*7XeeoM_o*{QYs<^c#Uv8tmtXoPF1!3UhCoC{ zMqYaJWk^-fuOCOvDtPZqbJ zUw|ysEK_T(NCaAKJVo%?8RkYDp_}i<;VRZnxLdbwX7khBIMuaLNJ@i2z#{!g0 zL9fNeA_TACh<*F^B^Q2=!5MN$)SOlHtn~igdh4w_9DDU!)$c+CV&le*M*OJvT)(xM zGiRF3s5XX&svN$z;ZV)+5ccCiR33!1qua)ZVV&Re=X;E}M-S(od;ZTLSj+k&Bsj!8 zuoqu=(YzePh7RS<_h-C9@lrn`RH7uDe&*>23kjvD$IoyK&pz`U#*H6m9^kf=?M6h? zvsX`RIP>yKbo0q4Q_L>jW8ve`g%Dq3{Dg7%`{aM1FZ);V_4VwE^kR-0J<7bS+qP{p zFYlyFE;a<>n{U3uJ@@_}(zqM{kQ~bKCme5(^5Wi4E*s=ckkd5 zDyk~*)?05I!W-Kz7ONThA#igNhLXeTPGYQGp^%OG`jOnqtFOF<+itrRbAOm?2$yzw zO^e{*&b0Phm^XHn*g9Z;6%q2ZT zZ&+xfA(#qQ>c^OEAErfXbEIHQI)jjXZ0Y8Ux# za}dzOR9o+(>RH$Ljb}UM1WMpYE`+!GxM**oB5bWq%?X3EH`mTG;m5j7Z z#uOyX{Q?mCk|`& z_p{mdWYhP$b?fN-R)jHQ#xy(D-YyE!38C$-=vioYF0qRx$8TCUpEe0mW4X&-POizP z@$Ok?fm>@(4%4*yj&q4^^c&Z@#X(36C6SUuwYn~`u09*T$GsH^-W`9eY;WVrVr=uviek>kD<+bJ74fNDTrRmZ8nxP7&Rx^JZX+d-C zckSbsZTHkhVuwc``>R=ph@e%sX)o4w>*#&o8wp$Yn;yOAXx;PfV|Vwx>w16pZfjk) zj^6jI@80+J<-66c=}{bniV%g%N4sdxJ5Wy%nWgyEeQ%iP{8%f3k-Xqlw3h0s>Rkws z(NlOWN;+~@Gerp1N!VCL?Y;G3*7alIC}P!=U`esBav;d^K-Vl7wx-f%h=#SB*29x* zQ8H~Eb@KE!BOaZytdM0@er`*E1jM3GI5{fUB7wrfJjIw!YqDu_8;N>gp=^8J$fH{7HCAiVIO) zS!Q%Ntd8>15){&;T8@PcjR;iN^-RoM_}xOv(pA-vQz4MdG<@mJf2hmO)tX6obeIUirYoj+|Sz3v+t9VzwfD@sZY4AhZ!`o1JEvI_L`^G6A}irT7jqj%F9ONxuQ zJ7@ixYB(Bo8y;AA-UoI}{guYzd&P092@eYvZo>BP6{TiHDJ8cdI_3MG}XD`60 zF~?!`%AYZ0KtC*7ort)O9RbSz!>Ln9+Li&ApBvrdW01Bz3q@2;m(Yau%!wz^9C#62 z+g}FBPfv zx#%1ifjhdLg7y(HJJxTlRWR5=jJQS-F`ZioU$C*@YQawT^xcB3tXlNRsVT$u$|ATp zkC>n^)G<6rRecQt39pR89OP9}F;65Y4xyfKbfy<0Yr_UJW?3Z>S9K+#!h*3iH4X6{ zyU+k24`XSaHH{W-eFqIe(uOrS`_u`z{m#1(5FLSrl6>@|`Q!_4zRiAt(@q+NRclw^ zqXjdN-krt-{)_<3Ik@Yb=oZltz2Xy)nwg3kUW<>2Lj~I`%vr;Fz^z?Q#yKHF^*S7M z5k1JOt-z*=T*3&54~j%R$1LOf666<*Z2Fd@mGGT%5*9SEHSbGKIhKC?Eqe6qicdeE zirDtCC@;uC5&duc2}?Qsoj7tBo_y+YwC|jNl`DS6rRSZAyYBuY!aBvFVEZxHO z{@wKm;ycx?eKZXidf~1oA42J<4k%+BavJQyr{0MU0nr%Jy&p2OGf`e!g?3>veE)*5 zAY(Pk{c3P&hY|Q~7b+v{(yAcPrig}+ls*=s(^1M)$)JVcRD{5+dWJ|eB0CGYsZMj( zbRauO;w=PA;@EBxeq+)%}HvZr$Ky@SHf?_c+CILTZZbW8j7Kum| z1_$;)-limkhlJCSE)~gJKc&JtfM&HZShp^TPF$PNzFm|t``xg9t0sriUY(GiTY&8R zQn-Ab_~D1ew5Ui&@#YkTqs7;>`p7FNK|EYowRs(Uf_)L@8;LR924LpGIp|J8)Zq5P z+U*;VPAio@oqM2Dw~olJDMENu1Y%=icfi0}qt>o9i&$E)&^;BMd)G4;`KReMIVlBG zzWw!NiIQr{4VsVir4XIl;b@;VI2iiTfq35i85 zHWF6i%!Ur?hYcH(v6e9M<63Bhif!A{uzBM)_y@T0EoKpZDGaSezXTH6?Cb(;Nl7Jv z@Ddk0Il0I!D5hAh0mTJ*jP|;X_g9f<1K-S;iA26T zRf&o4H_wopm(5A2r8qA$DhwO=J(v2k!iZ9&mgd00q!VWi8i!22kMGkEq<^m-$STOk zjO+}C@Atu&LBml&xaL>LLDKUM94HLzc1Irs+7!{Sz%OKFA$1+CU9zrwa|RZ&vj~RH z^|5xw>Q8N~`#RTst2DhQ&c?6K4mB7y~5*W#PS|HI`I zFU7P)vydl8x4KFqK^M7LrBrNe(e@CP^0Kq$@8*W1i8cUn{nr0#mJ zyZ22c=~%vgIek0&Vrah!$jK|j){;zooA?u=Qe!bDeh}uYod>rPC)AT0+OU~}%3PV2 zKwRV6wMi7Ei4=3A!2Q6AF{M2b=aPw5FWMY z7#0m@F*!*RjpO*4vfK%OXp%l`!2X?^f+W?lfx*>$JEseXkxh@=MEo-kLG;|XGt;Y{pygJm5rRN zd}Br}4mOGQsx=hPncO3U$;##H33HESlnB$>)ybT)18xW3pLz#2u1_|wa5(CapI3~$ zoI-@t+RnhDqz*lTIwNP}cEqx;7q7h^E0)YhXg3C1KYI{fnDqs|T)YV5PC5y$T5{v& zX&YDXk*R78bqCT?1(0zTp+v!~Qy{~!qrF#)!6cMGRAi?2>JNllAvts+epS!;B zErodHg4-~@eP4X?`4pVceJC2r`IB?{qLxTdvf^6Oqbg3nnm_agVzLGz@ZyFVl#5Pr z>?-c4%iRsA;7+^3?L?8I8dcmCI+$ptAvgdf++{jKf>1+ww<9!=J7hX>IbGr zww2rQ@_dgvzYqr2|{Z@>1#p8o3?n6Ui845CT(9y}b zU}fZz2|vN2TKWa^zVKZj*VI6rO9e$+B@MNxB7AE6d3WX2wUnh!V@~0=U-pvz?J7+jO6ueaqF2EqM975Zyog=)y1gcCTE~;I}DBK zh*euRqH|Q-jt#+~fX6ORY& zuY_Ip4+3qH(-0D~cESRekeQ0EX-BMcYiDc`8MP77QPDk%yYOyn^{IOLu8;0p-_=JM z#Z!4D*_g;3WH?#=ZCf@|85@Yw@)DHi6`>=-Ojz(hH$`UL)yZ>u^o3_&^YV2@VHwT1 z|AmFc2n!9Pz9OF@1nOF-0+APQX>B+O`q?}0GjpWQ^B*gbX zdR7{$eQK~MX*p%&^$4b}AU`(^?TB2K%>Ra=Jo3=H$55=JTt6%<6F$s0;2+?Fjrpl2 zyoLye)~|J0#aeT7=ej4Di8xqobW|T!JDm$wiba)@zYT*!q7apvkJ7vxIyn-3ac-%} zo6&pZ7(`aN@Wu3RFyX|LFn#7UbU$tY*Xl%NnH1b4{xq-jAqQ4Ng?BB9Y8^ScK;J-A zlAH4l^hHoW2*q{VNc89r6F_H4av0%s>P$)BO#cOPAKaan)l#ogSAa@#dI@nov1rLc zw5zT|TH-RS-L%Pg<~OkKrSqpE#y1?j=!-I^C<9qVw7uVH`D}sXfR5q}QuthY2ZW*{ zcl`BnC3I}eA}s2Wm$3~aMjem#)qa?>cmZzz?H@4twdWAsJs!g^I1@#=MdUQxj9@@- zWWvRVM5B@lZbe-VaQgAR;k(Y)J~BL-oYhtmcH&+)9a%Y60EuvJemY7i9*qp8lWS=K z@&oITLD5(Q#iR=sFGMI6=jAC$Shh8Z4zCoCa#ONo{xsH)LnrFO78Py8wtU8{YCrgZ z*1oq!)ryBjvtai%*U01Tm(@uShLXDww{Zu}(cgdneO!3qg~o?Mp+!b8N%^MSGol=Q@gGLfL`_Y5+1ByhV;No_Kdp@Z&}z zt-LMhMYelI&KAr|T87FfKZJ5uoS3==ZYqFBk3Sh*`t?OxO(BBXMPkqiqY&I73K>;} z=ro`gI`rv=@*p2R$%(jjanggMm>%g7L>TSpqfka~^q{~XiYqGNM?FIwlY>+c z`6^Ya)+-oU>$29Y^;zrITVt-Qnos%lYET7)$eE%fa>65V=q zXOz}8_-XD;1lRkckT&>rb=)me+5f>;Um&7KCq#DXNRG-EGZGiT5fOyA{yi{v^AhSB zQqXZ|e-u;nw3SNRKEnoM@Tk!!_NB2wpcDN@4@Zw7{gGClPogvg?RzF5taE#;W4ju{ zrE`2|BGGKbGHPsHQ9fdrUNtZvi2555LKk6EMPmx?(s^FR=XxlMte$)+f~zPi#&YUX z5)uZXXYal!D%gf8AHIn&Mgrr|y|3w>b>H0JAFI80J*z+C8$ellR(dX?$sI(;wBtsp0QwTMoPHMT6 z{(j+XELyaX9@^muq^lJ#aliUGi6Zp)Iix+ zT6P}R&H9e>V#sXDtA`(VCi;z>h-@mu>zTNzTQIGrxP#YPEO=S#x7KdKOa#N?)~xzg z9UZNDR(q?CjtuH@+!QFDF_VEay$i(ULNACeAVZwy7;G~(fZvzz#l)pPDhlig7 zi6pFfj&iud8CE{rg<_vlY|dj8U7klpMZ@3M-&o3}(Gu+APd{RqjX)CyzJP>j*1Z2= zODgL!WXZC`<;X4Ov*|!WO2jH|Z8Q7s+@&iCM=28N7+0~4Isg*Uknj#T{k&@_((*$E zE$^b7v^EQl@LuLYe-|vAd>0Bc^3k<@9D*rcl%aHwzGE2w>^e9|VBLIntVR6HXG5{m z>doAY_| zzu)Tb7$nt59K644;oj%^t|DY<73-SLh5S^kYu;_mjmCR!wyz@s_UqOe+ZZV`BYi8J zk+Dczw-r}jdoxl?=rcg180bS~GiA=TMBa4`Rai+Sc@<^G3U{HA-v8_){;fwW#Q{<7 z5Nunw7GYHAIw{X??;niR?c13{xi>NsH=|~28rH8`iIYz|1;fXW$F$`Ov1IE?6U5HJ z`4rZaqI+C-%+1Y2*Zu>LvUxQEBjeF$;3zC#y$Xrt1^j{epj~)78e4jNJFGQXM{l_7 z?wSQ7>%KRvtZO=kxC5|(7C!w#s1W~Y77AT7ARtnTq-EL0?J3BwtHPk(gOHt-&e_mp zmy~u}Q98w1+fiF8OSA?o`gySt#kgI5=n&cwIZ4R~rijaxSBkzpEP7Ck^X7L`C^Dr%2HVRztOw1Qr!kVkV)|}e z)qg0mw{1dnmwtw`$f~KtvdnGh#@J4JQ@ABNM9^s2ZkoQkEjyc*9lgyHjUx?y7iH!n z`;5RBUo$2Ym8N6548;$ts}a+s8`g2h|KCOPFu40bY#~B)Q)Fd!nj~0sA%jmuAe^*< z(GO7%&TvSdDLn zjkjvCcX)pzL0#)=(!%AdwClhjZ99nwUu1^HtJxNKaGDm(VlALo`|QzOii3|47@t-I zEeifuG&(Uh1a;XElMnC+tragV8o5EcP??+};|nsN%)DByPO67#Ld_tphrys>48sDEb$8qZ8U8^w8q(9dUeIHR6q+3Q3yl})%}>eGSf#Yo3_Wnioob*(HVwJW z-0*B3oSkZEi4>KUtM>Fc{nehAAsr@jo)J3w*`3PB&d{R|J*MyO{l4PZG8mrl$&F3C zq}0>=iHpTXRAW{pOiZ!UfVPpx9jz(2$sLd?&$M1s%tcx>wC_d}fiKgNsf4R?#n-QR zhQOQXP+N^+;uEx>s7%ErW!iJ~ zf;Q$9&X{?umDxJjtqkC<%>yI)M`XaG{5WM#td9NDZYrZhJ#^oDfhJ#4bZRoyfuWcn zmtqGW6>35PWI#|9kf(O z&mY(K&g@jdybNtE-KY^zRcU0fBOs&F({ps`*a`AT92t<=N*v(8^n~_YI*jziIQJQ5 zM&Z?Wj_rk{Mw{k7I3N#FiECPU}1Sx2r5| zp8m)Cp2TMYeFcKr1oQb-I0=(c(<)1?P>A1klGa(W8;{Pp2leW?qgs=*NGlesQ_Gb) zf*3>EvU}knxb))D-9U+bde0&tsKE&4Ig!kU(zNTyYl`!GloA)~Ku(j2v$f~g0iAEI z)}_E@haK-rkJf9A)x2&RIgwN*1klR1EAmGpkpk2F>I+{a_~1azDmY&YlO~-K0?NGq z(g~%8W3*-MCgo-4J2M-=t=f0?q%NL#S>fEoA5xEf$0jmU^FAJ^JfZUFJiYI+kHP4_ zPNg-0LhB}_xb^Ug)es57 zIyKnJnTM1LzraOi?B&CpG)U`;`-YioSVkDhpnWa<>O#XcU8n`ePBmkzY=bydmlyZR{lnI?pT%MW-^0_gbHkOT z(@otjjk*14+#Xyfzf;RpEj%s*X18qFrTn_K*a430h$srXkD1AgE^Qz}(D8VwjUL^XeIA znbl$a!X3+$MPP58NYxZ*rkuQNU8TJk9GX-%!|zQSx2l*h5lrX>(eBUQw_WSq84^Hd)tE{H#~1*oV9 zz!`1;7eO9BEiX$AkUviXwwRb4v!a!1Bg(Oblab7zEoRE5bC2`REie}}-nk9m^dlHk zdHZQTfWF^RemaX_vajfOmcF2vseP&suh17NEA-?CR|3iX79Zd!WhJF5H#Je$F9D5( zn704;Ud3PORt|&n(=KG6$A|Tc>))@{g$t2_*rS^6^Xi6>7i8e;;<>`WG~;phE3-=U z(7PX@U6GvF6e_cn99aGcwI-RU#H#p6z z2&*2@9ShT*TD5A8au?0lyYGHTd(WNLKOT9`Y3l^W{mKIk_4tYn`u^!d8UjhRID5Vd zmzL>;1J7z`v|kUFuTn-zvi`MtuN=_~+CejQG!Odq%4s0d34cvxIISm&_UZmqAhq7> zdU0T@PPMV{Cn||33v8U={`e!05Ewi8(#QlnugNn4pIr zO2*;w&P8zhD`$`ELgfW@x3*~tMba=Ie6LjnR%?)18jHLcGSj!Wzo_K&4E2tHgo>kI z&po^Zro8ARCG)R`Z(FbC(70mBK&J^hL5Oh`>4nO}DV1mC>6IQ@I<##-!p`ckFfU3g z^Id8>hlDj*e?>wE#4$UcL1puk?f1OgfGQbmP9ta%|h#sWzVz;w3Wke2{x@YgU7 z%S$EE+10Oqdhwg;YH5X}I7Jo1{KEn&ziZW2fM9I)X{1Nrj<8`PGX!&UAs!=|3S}Mx z^vrOiwv;R)Tc5&7CnzqA@ux#dVyM0-C0i-%F-g82MbMzlH-q-cP4Q^ULa(kLij{vX zprr|IC<^$fetar+UDmeIdr+hW*9Ms}46?}sp)HQDA%cFGnFhBIP+9Ft>&e4le-LET zmtOj|24J*@2iYsZker$m7C9%4EkaZpoxMHku3-)~_3!GVdI(yg0Iw(t@?KU{vND+u zt<5V@h8vU~wu$3Yn zN4++zx<`>o?OI+|qS($l?Y?$Ow=YXMB+zCRV~r#B`EfG_?4a$t#u%OPF=XH zBphW@d>m~X2z~^-2kv`NO#`6E;-*yPJFoj!Z_wq)i@H{Q4cMsJ$6kYZGXnuIG#;No zJ$RKKd-#3mCLL7G*=`2t+>5^cMc}Hv9mtjdMZMCGnyU{+HJp*=)+XIqTCP*HhOX2e zQs=}F$f9IN4R@xl9C8U9Ggv52)wmi5t|Y^K;5o*pbfGSm_K`VN($B2AAP1QGWR$?3l^9Q8n^geunK_QkpejM*5D%j?(>7ni|kR&5a^fe za;gb3dNMa(fWEOSRrP}|Z2%%mj!*Z%=P-Gv8H~Gok@BE&xq|cZ!73lISq2YnnV~sC zYYW&HJ5t!tcBJ|OnKQEhvdiM^0%ejV+Kz-Oq(b0fpF;TIWvM@WTO7{+$QZiAFr{gu)3m_DHP3EmLM0jVZJ+7 zM{7s4Wl1*VG9$e);{jbYogAmB(Fpk&Z1McR0e1SFhBl3l!awdHH%5Dh99ARVg_qSxb}3wH~?nmk#e!!ScmQjV@Ay z5ArFtc)PI988qSCL(Q-SxMJpxTWJAjSW0WeW)5z$*Wu8e?1z|?D=&r&AKB>ugK|Fb zubn=iJD1+0x=@dr4tB9S0USO2gg68Y+b*91RW+e;oPH7Qk>bQm^|%{w>NoR7oGzLA zji7-b9gOZQ2!Qd4Y%&9CT9{j)c>3j$fk>9_z}zN49o>JFil#{2W1U*YK8}2x$2Rnx z<^v@yN-Nfx(MAOAx-pe`nAtr-=FBa#ldj7+cBMQKp-dTNyxlvG;d+U@K9jA(n0{Pne)CHs4oUpk^3$O-VHZa%# z*>fqsmlY8QaV=kmo2s;g-CmCsvv=`njnWP_- zON!1PI;Oj}tXFA4A!9{uLvkbuXBf|-o2uqI#lYhj2u&)9pc5iHhyc!m ziJd_^hUOHWg#g2s**$RRJc*sZ{c+Jtchi%Hi3r~U<~vjDhXC56O)GCx zKfIL7^>uO~&Uoj#O{!}$l-PVnLZut=#sOMT@o*~4_RbbWbCkRnW~0oEZ21VXJ;0WS zhM66q^_0wxjFGVc2J%^C^T=@!urHmts9-jNk|@hI!QgM}Y*i5w74r~RjO}S4UUa+|>cuGl5V_pQO1(C`jW*R==y|KLip8hE< z$Sp)Dk;hV`Do>qP+=4;~jj8Ht?NwtFVwfy^%12JVX`FcmMlkvHx#Q>00&_v*7Qd(F zupFo>KEMN}-e9fMEd6oe!6Li{;j|AM_d)kAogwetFrTkBF(hYT+lR8}JP1_TylY3; z#ufwunGHW-A*hwY{9JwO8&9+8FO``I!f^y1pU+QQXB2f(Dh(d6ueZ}#;4{ebyZ*Eq|b`hlm~<93*Rkq@qhS>Fva zeGwb`vQjd1`Es33v&hLmJf?BxQ~vBk9j~ueKiU2`gJ#RvXYz1tK`?SLr1sECvQ33P zY!L%X8-bY{83@kVw6N}8zZLXSp`JhVvPDKD+(FurR7?QPtzp+j6bP%r+-#~U;LFX; zItiyDD=mxQfzHEo?C?^rb)q9A{}0l`psTaN7jI>I!za#v-WlZ?$GCGglD=W42yETE_zh#&?s z5U=a;qafR(rL=lVAQ09!HYg&_gb|~4f($wiB+MWH{fMF@^F_0M{2(+DI1Hv7!7Rp9 zc)b?1Y#2e%up!dOiQgnDRo*#v3YrtYA@ zrm5!ohuU@S7?SwRbUe|K+J{zI!n9Yt)WJbWd;Me6YG(ekas38WU%86#p-+*tJ$sPb z-&K8D!MF$w#&Ta0q8sm&y@0vn=fwhZLF1OclYGRjk^na813zzTM8o`nJqFB^4=|41 zs`}K_boI9lskNoqQFZkJdtA>hi9|G$l2AI$?i_c1e`I1r={WoJ{4|ZCQrp?dUJL~F zGGY=yO--o}sP1AIyOvExAaUL{)TIpCF@^l`l3g}5)_~Ku?R6nts=BE1`HPfGo56N= z#E!E{6$oYi{4zBL26P2w-5K_YZ(x1g3{`{?=K{$5nk_s=JYzNy2K8l#9P^+SSYzW7 zWxEju2l^}qD2Iw7ksTzdc?*;<;nk9Ck501>ocOEqGT7`?UTuwyR0IJP6&J~i?s;2R zrxq5?cUHo>QOqq_x=_!&^t?8#Sff~;XACLzss2Ic0!YKd>*(s}qi~gXL`Erbr1grFYE2zWEBCUZAw4%PNqae?jkByO}L~0i8W~NP|?XUaA^D67bjHal`;?&PoHY!K&8`hT?ZE zU#tG`gld?@Ik9~%YP{Wd{%7|0xZ>uHTWJAnJsDRZ2x~WzEZXH8Q-nE3P)TeS=VuV} zKr_X#5BqX`pAH0SD_mqhU@5a0J%6 z>gn#*{IW8|kGWJBPSnE0Y{$vC%}KqU<#%N#a%hI`csS)oF!K{F&>TTBRC$R zEx;hhFJ7bdl&vMmc28s`u$;%IeFqL`sJ4Z6)R6jOCs=5NGhsF87+GdB@XHYbQVLaw zpMmUu8zE3y0I_xwNe8#v^*E@o zL=$UN!<>f;QlHtv&-vQ(%^g2q7MKefxA^_EHVU65KEUkQrqy6#ctHl0Ze|7{~AqR_zS+F>uByHq#cf z@OB(wy2?X68cXHFkMQC2Z1XhiSq&^eko0=voOazb{do^g+(R&MWY4XA#ecQzsZIwq zblcK$XHe^Bu5+ygf*W%1J*=z^M=&Ac_xwDbZ+evZQM5X7YTbQZTCj2zu^Jf>s~ixJ zOr}+rj4soKcG_7mv8x*Em6egAOUS`bGB0osQ~9trBSaM!36tJd*G|D_=$#zW7k54@ zS8j}a-YL3_h8vo>!;x;m7H%peF9Bd0V1oyqkDK=w05bNtVT;kR5l~XswR!z&^^EY^ z;rcXoG$}Es09N>zCPS>uCHPxQYl4--DX1bhBU)GuKP7)*1-6)SR_gYRQ?*gKC2@To zuRAAys#_P~XJjBTbGW&NsT+yI$QS_{dvNWJvzMc=pg>JcO+b=E`qJJP<((I=k*GdoI8HLEHD=|Zt?r+%rp2LxnTHOYbn66Fo5=i?K=oESFq;13)rR)wsvrOK+|Nl z{md=KeQ}Cq?va7ic_J#N*OBuML?R20FYoAXg(;q=gI$-^o#RzpN>~Rwt^z|HabUUS zi*r?yQ>ggDOjY~oHM5~^pl_1Q8Ak&2*GsFxq}FXe_ZWf4bmmf!+Ky!i55AXCvRf%J z>1q$-cxO3i@N&$v5ez|2Ih6t|W&E(ArCd}xh9+`wzeL`N$w7G_`gNl_HI&NUYv8gy z16Pz$R;;=nkYI@PnV{eV!M0lIFUF=N;VgqJ!b(&$8MeWlXX>yD z!fauWXpC@kzZ8MIe$syw1socLWgz@u3`V+l6cNX(H5x!+AjtRKb=Q=}oM(VJRwE0l zh`F@ad}{0OV6$PAt_IrGk%7u@pii~6r&LdX%*o2s;>iO}ZMclP8wPLYVH#M7wHRI-Pa|i(rA}=IEXW?^h2_wc+4* zm6DmQv}lh?vexOjmaof~8CFMI2WX^7WoISP&IoH{WL(*>!OK_xv~vAMkVTDZnLyiW zmhIIx6jEa^Rfb8o0`1hE7UArMh@fpU z(s5eN9d)W?D2$~E8dKVTcE7xEVq8=oig4+**7J^|^U(gvV=>jr+i%x0_CTDYQVF4K zyA+9#I2I3in!7ZT6h@1QYGuO1uLhLL`q;#z6nGLS3o{h|z}=6kYPgLBOjIs2Xrcab zswwtfxw%H5WII{Amlm3vc9V;sVT+Q2a8M$ENS{1+M5%pK4DM6Z8W+-NLWCOGaWU2v zr}nlsonwISwss~_=kWO>Nb3XHMJ7ebZXNBs%ynpOFtT4rYgD_`?2PD$3Lb#Xe?d==e1)2gOgu)%}V>&LBIEFvHghn&3<9SHw@{(Ij6 zdq1sKAN#N8<*6B+qD@8R4lyk*r&xF2eV@L+{k!t9H#`P;>)f0ioOOf>SmfiK^b?w_ z2%@KM&U+S*hK?aMHx1IHCsVcTnx2X|O&7!J7$n*~e#nUoq^D^oEhb`wyYHncXRh-6IvzkmBFh7m0bqvA1R-W5@!0qx~#?o~N_o%o1J)zEUwP03SI z<^q+*f*%<$mT~mw#b72kp-eGkCn0A{pkJj*dc%nGZ;f>%B*vb^A0UA z7c}0X0pIMe`*HSv{^x(LQ)en6*^RUGhm78vLCiqSmLaQ`fw&C~GqVzCE4dYoj7L#n zneM#zLDhA(sCueP>F_zCd|o91v8}*ao}oqJ#hDuU&6`9JGKX%Z0Db%r8L`_K=Qx$6 z<@2?mxKyJE-R(Jdhzu~qz<8y)Az)RGb!%ZpycRDm(j&RQsH&POl@=AzhH&Y?iNngF zLzSPC$_mgfdLZUt-s~%W>-Rf&@HIX4#eY^uOAiaB2n^9VXiTA_gpEARf6R$R$HJ=s zT^8W`tgL)3U|;s8HLG-(9qJ9e-2}T5Y*)-G(U76t<&i-vaf)R_XPp+z`g!TPK+`{nXYP(S+Od=txV@Gp3wyY*plqcTJ^x4^3v|iC0H1e>hkqk zRZsM4rE5ZQEQgwIY~m?yBrr2!kGaSA*|ES}(6~kKg|!9t?cGc78J#JfGs-te&=^u$ zZi&hkF>hdR^WZ?QlG5BdaBjkpYe_~qlcMe#=mE12K0h@TeX21H4S;4raw8LnX{_yCphte8_M&=IvK+|dSe%Q6 zMctabcuEt%Imbc_Fo(JoggiEwf-^Abi5eUy>p?B6oy|g{2GZOmvSA~YK``b;GGB>< zaJX=hGUsu=*wBq6_l3F%4IvRf0+ap}#I>f;4v3C$-9Yd3C64JECto4hc+@%tyBnKW zcPAToZY1&;y|A07VaJys&0?skW@Isp4INACr4V>>J6W|slJ{IVLe+;oBM^g(3~ToV z$dOcUt;}`2{j_>`%c7=vE@-?} zi@k&Un{D66ojXz6Y zp2tgfYx&aU8f!p>l%P^T=5E=xNg8e0c&E-+Ut+HZO0X!!rn5>m8p2yPoDqYswxP{r zXs_8itUW?pa)@>=V5T#oR)O|Ff#DiG~< zg2D87Gmgrt3%90teQub}>F_u1V|mcUlV>$GG=bP3^6UO+Em?S*jt0)@Naaag>pg-T zOP(&1l}{3^%GnLkK?~2M))P(hiGWa0TEY7ir+M&Z`Wc2Nqq7u4wx0nfVw}n)fi{(& zfHM-1da`H5WO=m`{T2y%rZbtB}PT5v!$JV<%kx-JxYs2TZL;TBOx7I z%;1%RE$Uja2XAedj3Q@>Yo7&+6qh7LKlyo5Sap2cvJxuOEPeBv-_(Ky3kbLq5Fit@ zfB$~nb=O@Q9%e=pktEiys5JkFAMf{m@Aqg2at#o`e_jqF#s2HR{_ER%IdehdZJF)u z{gT&~E0M|h$o%aBw5&N6a@G_X{wVt}&Xch&frVRHb5Z$ug$lF&H77k2CpMwd6^j^X z=c)e6b;ZV@4aMx^X#IIWmn_nuf=FeU{^&gq$~|}q$ZW2rVoMm{M#B1rMa&0%lx%4j z4u+eBK~NU7G_MTGnq}96WQ5Tga*=sw(^ zd@1uHq`F;c>{rjmDU2c`@7DgyM@X(g_PArTX~8lrSW~XCzGk^nmnnPU3Z1xkT4^|w zN%o8k4Gq%fW7rLw+SG9i3Kywlg`qI9av=E26a?M@ZQ+M9kW_L$+ zp}yB}!g()lAco$#g*=cIjR|kEFF{C`#>H{r9b?H3M}6a}t4C75w2W3I#6whi*O4F$ zboN8)i&6#vhN|Z4=w&Tca(t{N8J36RBDM4ED^ArF%lo~I*Yb&tw`r)2nNP+tB^NKz z(?@r~&p|T3vl$?S%_RbgNJQ_80JbK-Lb(;CRH0XtUbI2e3HjQ|>(64h{o@aB)()gp z@|cw^@y6@iV7;oTnhp0g6Cu=TD{|Q_ef)-9ZPC@~YN_$6^!RlLdHxd({)OKT=>Pd& zzoSq6#&7H6AOE;EZQ4ZpEmK>!Zq@PQ$DM#-0p;M?czy1>%QblThab*ERrlG?eip$? zdbK|%$8Y}TZ@%p+a4u-v!i&HLtbTX_9xr>hX*x`?M8}0BgO?zX0=zXEhfqY;w-V;| zp@v$Gqn-4?eQTAJk*qTVEs8}xWHSgKTg3AU*|%+;GweO-xZG3+&DWdM-gF7L?1XN= zV<7`w76zf)^b4?iO9N5BFSGTzy)Pg?GOhOh9_A{My2>Zd6N=C;{=&noNM(;S=U`IY zZ37+JeR_ws7B5!jK$?@eJA=~Miy4lCG5Z*t)602G`i-R?Rs=||IAl>GlA{%i!tC$A z=Sh8W`?C(IY$<*F&6`$fAS$dX5NBD;f*xJ5UQHdXIt!vHXpMT~YK)F60_~|2SIW2}v=E zLnh{QPezxTQpEMj+lsO4Gj0|$mJ6nuMX&w8y-NW1+`5}F3c7)P;I~~)aXf0opW~%Dh>C2(&7@v zZ2!V7Kc&*3DAzOJLa7($p98?dDhz{7TM$^YW{rA!_$+YFn{FG^Z+!gq=lGE?2AG&T zZdhP0Xxzdp!3Cr>z&?giKCnShIp*=*v>!4F7?VI;BVwXdl9#XBkhgy6+)<@L$eL_A zuJ6CxpmwT-Xvk>^t%FL9iC3*_T$4aSy?iRWXfv!{w#b=h>}(m-$`s&}<6!WS%Jv~S zF~vYQp}frY!;)!wHNx)jij~V?fctcy{v-h_S3>%d{l@^Ygt}_ zu0wFV3%Kz0Gd+5`>Z&H$h}c_mMS+@Ys%&r4cxi^SWN3m}$8;>{AfUS^uT80=6PfgA z_#Nzu=pE|SqN4eV&4v(}lP+%yf`EJ~BGOpo#E$XfC;HWl!%V~;4VACb*YDSb!4}@f zY5C(o7exlOt?LqS+g=SaH<&5=Sm3lJQ&yFZIJU4sz8gDultT5;*Eg)CD_Fqu=Q`^N?_0;im@&SxEbg)N#M^CX?uU(^MnIt8Vz=@fAz_d@sHmAq5(@ zqE?4B+;o|xTOHW8fOWvpieQH1W%-oNaVEGfyoE`ss%_LIW=T;Qv3mN#UNsLPq{-~7 zcBEDQL~H>;@RhzR>S5N>it29;1M!(U0IdDcftI8*qoGTQWc&~P=>PghFc_un+jpQ) zT%~{f$A8pUzVa0{G&JbkxpUlhS>@&B+OubmHf-1+qbAKAKiL9vLE|UeXU2YNJ<*SS z>=XLpmtWBMKtDSRm=%;3(YK%0R5x|8>ns2Ef?hd*YAmyiq+Irp=VZV^Y2)>}wQ$*T2JcfkeXde_DvxRu zZcjvzlssqw5*`P0ut;n+ZG(O0IuWMU%e68I2j!WUzw59B-EdaI*x>oy-<6j^zHwNZ zdm44D?v!H-7q8#QlsiuDM_qvXQUyi>*w}q^KkrML{Ol;HzgA0yLN$c#xRO;f@^h;&EGXPOe*M>f{pPn?y?V9t{d?YXL(A<4KbZUG$68=6X#7~y%H=`ZFng&_E4yHxrdr169WT-Y_ij)l z0V2U2Cm(qE^(&XF8K?Tx&Syl?;>bU^VUdTCxQN1uF3l`ZLTnN}cFK29Pgk!uNN6f0 zXJ=ELL}&=!Ml@0)0oIyYyTVHEb@LYK)9?SNzWVIb`uGPvq@9QN!xc%_05TEbgeZOS z+;(QmIG$N7(+i7>wB(8ZSA)v~xIp+5kl3a|UZqsv0J$X;I!iBlP`i&mry)OZF#+J|<;ARV&zGf(N$pZ$#f@DrcZpM2@_ z`paMYUH$#H|3#mC;+ORcU;hmJbA0yA7K-y*Z~w2AtCnl&P^lUV2pNDK0yykxs?(%J zW(%augO`+((4@olht$RJ{`QL1*kVNY%wMA4Vwe2a_wQ6LdR*^W%lv_Js*m#ND=&P* zX+?Ud9zqke(x{;FSoW13ovGCLObv2f^o@3^4cKvfDWZoE7<-tPP@_5XC5LyxOR{VE z>!12F?b!3O?p(WGU)%AVe(B*4>gnCz)^B|1SM|SM_y^U6hY1=pWQ@0O#<|~|1q;jt zjae}2k9)|G3Aef+pRt*OtS(9(GIW&=`pe%`2e4XW8QYu!kEGVNR_*2YuU)yKgNG06{He3*W#2YU zDkagXFcgoG>SnXIYjD-p{utV1F|AQ1k^uYX*5Wkp(#6a3t^Z|dI!{`ZcInY|oAkH8^t(EA*`m})kdckXo|YO_W1i$zGAU9-?2rzfExetb5ALfDryQokSSgnENairT}atn zbrwCfHn-}vy|1dJzFFtboMLd#mPM;_9qaxq)EYDJhRi+04=gYjG=5-;+5aX8EHg+? zIfg9O#N0fH6ow$NIjOL#Lt_KmX$jp6vCgBW&Q7xYgW6Ml2$&&|Tcja8a4pX<_RGvT#{bLW zJgjZsGZj_an&*x5@NecbRAPbfAj-1GH3{L&8-dbmbc_x%d_7)m4x2NIM>mV=Vq4ds zUOc{+phIgU9%Wa$MqhjJIqm-bP7U-7$lo)JxML!)-WydDVU?EGnEvtUuPGuwT?xxb1x45RVbMxmlj<%tE3OD5@^bgR6ej2?B2KJe}b$Q1k4 zZtAAA1+r+X?%iZ9ijc4V z;72~BrOTHn%vxjg?8&mNdZs12%;qGIL>aLR&BaXYZk3g0Sl;F zfOtN;dz%V@D1YpIAJ7$0VLbo|zV_00w0`MY{n6vUq@%}=QBA$7CWfF>*u~^DOk&)I z?Z5WKN0ra2)I09DL%;Lo|4)0aoMCrGq_anaw+6|Mu&!2LQ49<@t1=RS#5UH{(JG2m zUu&NVkejcww~|?hq0ip=flLSieuy=#2}!Y_lt7X(kPd*N3Udw)^E{gQ6ah8d=hs~i zY^DR5r$r0$NfMg$EF`~WCG+(G6b0IP+SN@Z_SCaq(|nL(fA@*s(dA2*bYSmmx^(dp z!*=E&wBIb;1ppzu|GtNrnN;X*_zVBOe}_K5=R3&8!$9YPG7zns`!th?#B$vZvMn-- z3beDaO)=P_2fk2VUXkjp^U1u9%X9AdIkUiA(72UvDBd{+cx?<0&`NkddyejugHXhY z8KEse4?To~vR1-yM~8x}>GU!P_c82^3`T0CuOCQlDtr&H`^*~r5CmVlc1{JEd3tHz z9z`Hx=Y}mFX#on&D8nf>G&bt<-}o}ZgKJow%GNj21d7G^FeD8_8VoTH$wWhGc)Wuw zmR|{TVpJ6#oB_L#a18_?P&{Gy0wzs9YX`p8WKWV|W=HVV2S3FsfgtB%!vfRlGR>$E z;(;!zF+YU6mWvma5iXYt^p3HeeItk}cCjQ08xPRFbAuwPAMVt)niD#8;iPJ+E-RG) zYb@pfRhtD(BR4)prBSwesSaMdh@xvF_G5~|(AXA10Xv`q1hR>aien$nGi2>3Cpgfs z!CW2!YLNHDV6roDSl7@^1W$^`6%#O~A?I0eb3tzp2h0{O=k_4OYVJrd@vHG-rOJ3; zBMCO<;ipkCo@#GV9*IUjC^$6r)deVE8>@foYp?0Zu_GY&xR$uq%)8sn!sZn(?)<)T zTWfTx<(jUtLf4qXey&Rw*Ql}N?Ho)-#ef;SJ^x_~o0af$BZ>xCC+p|&`1Va5&p!LC z&Z1}aW{v=@*N?H|e3;kw(%=3q$<+_rJjlQQ;1B-5f!O|}$NSvpKIcGgH*enjlkPV6 zvmdd*T+sLtgUseX`Ap$_=+%=s`*1GS9=f4{1d0bI5Dw4=B8&9$!L6#gpjc)g2M@fg zdiwVbF_Vg-)%1zgi*)ULyT1MMafQo}gP_;GBr!+PEYrD%e*VdWhd~t)EO2oy$b+`= zt-QEY_dWiwvRUIgZ{9pr4Yul9dlSKk_87q{j8l$5Vq=K&F{f?Wq@yy+d5|t@0HW6z zL*%$%8rkTZbpvnRk`@~**hQhkWsVB3jWcAPV0DqTi^6ukI7`^2{!eqHs zIyTzw5ZI!5=|jy)w62=97cPaHwpBi;ulb&2O(EIhSqvPMIYgKMWT+Y+&tY?&-~6Rt zRuIVU`nBs6doEGmIJSqP0cJe2B_j~p!mBWW!Evy>kM=u`=%ED*?AD0Dp9e)?`+g=4 z3q-d3D2jEe)^40+=Sh&+lg*gS7N!aSzY|+f>kvryys|^dw21rz?K;-iq-g*Tb=_U^ z6-DYiLWbX9mv=-)v@#i{SFnxHoscc9TdylsHBQnH$vnn5G6AlaCm#ENVltDoY5hi> zZ@aFVUC%hHgCorrIO<3Owgqz{IjuvCK~iB7Gj>aW%BQKVSsq}~j*R_Jxn9hU#+~@j z=%$}$KVG&TWI0v~E!-~Quz2^MfZjZC1iA2HJ&`&+} zlym!B(D)(q{nUTV1&yC-qM5rx6xpjO*iJCVaDkb(%*}<9VV4pguz(|PU}P~r>3tSN zyvfc{<-_hB^h_#lVY$;9F$WQsoTAdAB6Y_4*_Jk_1DDP#k-_oROI3slDiE?vCLc;d z3S^3X6U}7a&wl^=DqpokN!OEr)OG-oq^)6915Pi3-v0#pMV4hc4#2W+D^l>=c4Vcb zF*9K2IDze__<$R~@DBct#!>pP5p@p4I|kywHf_K?&DYqtSgp8ih0akiSY};F3opH! zRui;_wL>LwO{+Sn>VYesfj?(rp>f8CqVw-2ebH%d5O8>7Fi%fdnbsL z$2b|FpVA(5JMAHp?G7u7;rJkY4SFVyo>Dxl-;~S}ZD6m#|NO;YMrpP{CAmc!K_+7q z0g$^kZ*|C8)+SiFV6j#%TBQ7W`FunnV{s7;qPx_`X0}mUJW-IfDvF9#z)tIh^NL|t z$MHEc3_bydet7`y0>ZisTX7(qO9c0K0ti9GL+0-bGKb-V=}46Gft;8<$Y9wN6xmxu7Y7St6YJF*H^ETTkjCk=c_Yjs*hGz8Y&iK%let$>eGbym2GI^7Ef^SjG32{_uFtW83w~_doi(cI|ed z-DZbrOdU9IKr2{%Yk|WYy*c?uu#^4X+kL;zoH^r2i!4Fb=7kqtP$yN7@jpz%>ctmd z)Mq~P8KmPc!p0wTZm+4S(IlXfKmF4`)g|Uh_V1^ke%jH(TEBk1bFLP=KlZVY>BArX zuya5A-9P%HKXM+&o}-zn%6@MrD96A0tG|*35R=pC?d?@D?`Kt2mA>(fZ|F;3`jYc_ zH;IhSKW6Z+xk_UOjrr3a%5=4^{^$KKfskR3HrcStOZ$R%)ugknl@vu# zm_}!zsqKusBUk0BqOoA@1^Uv_Xe?Q8-p$I?j=+$f{J?wk^1i)#>_bmz=gT`)$b~qL zvjE7iCV#8qOhC~3CbM){dujs5<%3`skM>iT_7Kqv8-K+2OX+GJqp)n-TAAIB?T4JZP@%FXaabUMT_~heyVaGPz z|G-1~+SPqHb%HLL_D{~O-<YGtWGul`B^|>zr+;%uF3~L1U&Y`6eF6WUk{`%Q`Z}2b5v14Y=K8 zjbR*w4@nOb6}0|Om^ngQZ=2djI<@Nx_l=<0M9*%v=)kEXy0>Bz*=8<$4C3_k1OATWknYlolH&Yt<7c?P4|%#+lltK1br+ zhPvhelX1LYPQA3k%1SDG(}qLk{LR_V$ic%zp)MSqkjC7FAO?%m6T@rd8Z!BEAGYWwamdU= z_JrVfy!tphy-#8bf+3eckSOxK%6)pNlGkos$O&3dQ~_);Cpg6LIIr7+YsJ~gPBIWS zTX3Cu(347F;nxT5cvzV+iP{Be@@iAPe&NpdDTU==U-|aGQn4kHpm9>7Ui!haf8-+{`N8+*u;1xnZ6tH>wj<{c|L_l; z_Rzx*KkQ`uU;N@1oyx`>_0pwF9cOMzx*z@MN1d69-EJ+VU;Wizb%Yb0IVUG%iNF9= zr9F0je!dC|3!T}E1-P61sGC*Qx^?RuZjMz-cAK@?#;A;quVb&>ZvXw?|9vMwT7@!y z{``0Pl7H~~b3x+=rkMS2jI}*IJb_>w4j?IkH=8~tGX*|jTtw!LEj!~A4*bLhs)kgG zjGs4F4~E_MO=8IDKbNL@&ccyR*Oux_IF z9nB!Q>F`A*@q5K6#SWdlrWN;<=uB^m;@AmZv1F0}@*fYJ21D{V;*eHZ@Sh9SRvY++jke9>dSYp{@Nbh@AEsRuLw~*Q2nxf?Z&z9` zk{JM&ihw>;f`(6^erc~yOQEES`w-LzY zQ-PHf7qgpWNV#n4OB>8m2I#wV_KO!_o495cXE6t{Dq}`W@s4dd^ABJ;RW=th2X8^h zbhmcx+U2ypEQr`)t)-HZ5~p2t{P=OlnSYN*T2JEnfYJc~4f9E`o z&1393vR2l&zV$5<6t*H_+rR(&zjuB&IXT%0R#wGW0J7(_*@%G(tirKM!>SSsU^5vo zobz+2YGHaP3-p3hwx@kfD zk2McNph9UBE=7nTXpkYTwI5te&_mqjsKU}haT8cvh6*B^=2~?6%(j0cmF#$TH5ob1 z)YOrpx!7ZII^)AbN}}!K@0doKeG)Oh%Niy{Z)Yd@fNP3=_yEFl0~+o#=WCw&^`K!s z(aw2>4;!McN~zU~#nsFkr2QlB(u8-R^Hj#u;DtM|P^-9Hyarwnc5>;X_dc$vt|5lw zHjU+OI8#5QM}w?di-dlVGo5q1&>TLp*#ole>Mi6{G z3^5WIhL6$$H0O7*wSmP(<7$GTKZuj=U=447Xj~`Ts#qCoLCKz*JI+90b#dPFV;l6z zB^PNCPHEr3Mh$pwAl$8;LI0B$JmetOm<>?0taeyb0d854Iay!K&QAdK3{oX6BGR-;Cw!k&IrK3Zf$z;plkHFTOdm(T3@I)l#5z~;Z*RSg;lOsIRJ zNAX-g6YceAVNGirPL$qK2)jM(Cxn9_#LTeog? z2GXZaozf>h@d-X(yh~h9)(*1I%G~kREHD=|-kQDM(Y-?qk|%~+l|dQb%O+C4Zv;ng z?G&`866R^F0~ON|a~Jd}`P*7lK|bgQUVTM%EMKy6*k&Jwf9HSa;|OWO2_8wA8$mEKPx?nF7HS zgfo(fh+TxCVKh$m2%3rKwCwSQhr02c&J)kjU-n`4jk8S-*lSEij;7DEG8C4)iv>zT ztkDyZO@)Po2GZWvrm-wG%toH!?rt61eURS2@eGho!O0sFo*dk{kD2EN+J@mWnqL$2 ze=Vzy#bI8mtk&A~TjW8xwwqP3X=rfs>>5XgJqXP7SVx@_s7$OCR*;(K1Z-;&_M!%y znx3v`RCPT-a@(fb9s8J#ZrJA?8ifa%o*INOIH36Kd75q*<8{N;aVJw{MJp;6P6&Ej z#86%(|Jf5$X-ra)KDXXKuxFg6huGK-Rim9|HjrKrlOo~$FKnEZ)AmdaP*`T%TIfJzP`e5V7Lzs-GEoLy~ z_Q?*|>sDp($GKkKp)G#QuLr;TU4>~6Ifj3O`-Ev3eF(_yYp=fQNTFN6_?y4^8wZ+d z!($&nlE(=sMQ}RijyG?CxuEgpZS{`t>C-$-Cf}=$FjC}oi8!w~nGXd=P z5V}Bq_z0GjZoF-s3Ym}8pFWGzV5j(0oYrl=M@QHc*hytk!REfz^UJmSh7>=gXJ`(y5SN`u}u$-OUdmD z^|JTEbIh4#IMoBMdzvhIbR4KIwy{0pR*^V1vJ)kvblQK|6ig^BK0hH)1m`h^xfY0k zXZH5seA%6iBV1j$P|@Sl>V*;AiMG<}+ctneOVu|H?9lopE0oO;xvRNJ=es79MW6q^ zyC2YzrW$pO!STA;wz5_iZ513tM`ydDQu%;`rSH95 zr&Vc*48}N@Xv_2G*sH(;`d<*<=zcHdnAY)J$d8_FgYpvr)|hC1l6{NA*1rH^bl4 zn!*RD1er&9`xRF_si8@@J*J#%Q_HZMFX&evB^nchER%!f)EpA>fCJt$jnULht z#j7<6rX^tux3kK2`bw+rElDQ{VUA*R4Z2)Wgz^Bvmu+H7L9p=lj6xoY)x^NI&V%x@ zgvXv{rfl&>ms`YVKl?^Ezu|4h4mSZ$n>&2+lb=KhdA&1#Fi5V+m&_e+%>r{lS{x8naSzoc^T@Nwfq=Qu??fus4u4TcVNpaqpqt0JIs&>TID^{Q#AS7~9UmMqSv#bN_cSjD$5bM}pQ&>lK- z{)FED$fLk-LHmR&n$3j-5a@6s`Y+3SstAGOizws1onygJ(L z2tcwlp6V;Cd42p^m+AIKj$oQ(2EZo?xw^4@6>-5Ms? z!pCErICn;kQ3>?x2UXKQscTbJI@;DspC2y=dgxgcO;Zw*l)Jc8k%f6`^dWfHaEck@6iy;uu_w=6vf=CFs}%Q z98hC>3z}3&mk=}zO=c-aB(UKqoIjMzH$2|h79<#;?~H|>3`fUcQ#MaKarvAOPS@3z z4)r0!--*0R4A(;gV2U<^%eDGzs41dHmZ-SB%VO#v`*jfH0Eyn zZ)}0NpmD3;Je<`LxDegU8j_-tbm?*>!|ib#yh|Ag>BxMP>UixLO(Oqc;Q_V+y>dfT z-3S&|fmmneryhLhO(tZLT@gkWG=xhULbvbaKx5R)berUti-fP=8M zVx^k8+nmhT+8<^LgV7p7=*ID8jPv?Ev5}9SK7d6k7aS%UR>|y_2%xbPLrc)qf1??k zClh#+dH?5tSY~tg@Mjj%pRhXo{RkOzL zAg56VQXBP2J-;{%+qU}Q2Z>CBi+reni~^}w+QoIUI9J)O)&5;c$O<<6xWbZ!96 zD!XQX`jfwYu5(}hyI5c@Xx!p=Do94S7_F$mOJ{ZZ!ck@mnPg^E7U~BUIjFd(SlzjG zvtB;@D$bC0gPk8eAz=G9c)0QJH*wB4diThygQig`Xer2RIjI?1w=iGrt~xc-i!Yd0 zs7-g?sjuwcuKBseN{va<_Is1wKS#wpRwBh%+Er$zN9 zpU_?dFJzjQooQP6fzX=6U7Ay<1r_OfiQqaO@ae;MKBVh|y{hSK)RXUizn+6-JTlcw zm|;&hx=cwh!>_SZy&Xl}jhokN5U8&4BWCJ|q=O^UjQYW4KXFYDxq6I#1;g^pha zPKYNo(wdV~%i(bz%k07;RcxM;IgwycrlMN90_ zOg2?&W`0aner0O@OwF$(HK|H!;;F=yN~My@;!2Ij^K5czx(R% z+Uxt?B#n}0!WSo&^8yMxI6TdQcRxzKEL!vln%8FNWhf=ONb|S&@zA`i001OtNkl{JqV>^8b4f)g8?Vo(D%>MTe|HjTCVg%U<}y-a`Esn>E9!WujaMP! zbjJDyuG>G~{(1X@uYJQlKCs`Knm1a_=11*2AMCbYoH=P<`SMp+b8T_ErB?m1>l0e_ zPgx%y;5m&4e4R9>4cxk6FSTs3s>xA{TZjG0Yn67RtJ7Myx7xdV-?OU&0~USk3E-16 zz;O%cN-lKGS5jDWc>INV@y>@%ftPBmV3$=@8*DHQLn)r77p|hFrtRovB<}a>Gv*T7qqveawe%ZeH-@j!IIMtV%n^2edVZqY5V8wT+d}E-x+4&JaJ$j zs(%yK&`@W`5ATJxJz#NmnSw$i1&nt|6VWFJ`{^G9NYU*oucLFF6bwyRaswsNppBwy zy|t#wn&V+>>+iFTty`P}%b~MbWQF=NsG%>DKfA~0Vjq{!V)H4|JbrY^6G-ZQd+*=z zJS%T%34V}c-#+kTm+tw~Km1n?ED*tQC$3+zKKf=hZ`o{J)Lahi`&$dmq05fLx-~}4 zXa(yUc@*m(2i}{yN->_*f0}bFf>Uf5_T$ZPgl#S@v_pd<(0hm?g^wnkrMT3|z%I4^ zq|g<6_$Yu+0@V#tNt@yC?-4!87Af>b0zi=e>d4R3fN%f#PyWot(I5|t-)pGP+6Vg} zZLG2pfCTUE`5WqU(66w|fw5co@FhC&dt9#1^5sRU@z3%YR{FEmr*gl8b%{3~qy;ps z6^7{OrD#}5&7gVncB`hg0Di^F%Hvj6Nwyrg;#3;$BxV6sI~=tL2kB5U$YMpzt{QZ&<( zV-$wbu|O+5MZq|Uy=M4PM|BazjuSM~1pyWmu?m;NSOhKH^AMJ>fe=k0Y*7J9seD7d zZGH3!sL`WN&9Abm+yZEy$XQH4qrxxDLUaOaKmlkl*+TcwJ%@aTLKNha_0$Tmn=rlxUMOi{_<@U_YddGdP$D1tXun-Y2V$D#oKg&`We9#NM2incqM<2Z zDPKcTbPK(b!)ox!jgMGo4s;TFr&ht*i8`$5kXD7ge`eTrZGXbrP93o#kWw$d@RD7- zbP2Rfp>5vrG(1E>J4lToN(3M$wzMN)v-=!lq-1*26IO=qNEo`0Tj-)+yK)ueP6(=x zQM;ZPa;&xmSQb*C)lj?t0@$4eCTMAJ4) zvZy#Y0<_uL0!PFSbBVfK>JQqM)0fX#C>k-byEJSfUFM=3Al|@kU-dJvlN4U_w2}ozSytI#J`gCU`UmN} z)ntg?2Dy5zGz;jVP;UZr!7m5T>#NSP@0ZUlJW_-q3DQ|s;>!0+B35{Rw+eO>32(!B zNJE?kXuH{b~sMJ6?3!EgbSGq%Bj z=D3KCtE4E6e{7Ol8{_EB7xNR3(2K%irYIia{^HzOs5o0- z2h}BX-$>|7B2a@f3ErD)PXY!0^Y`}I?#_#ryQSF%fa8Aa%^%oL&mFamTejHI!OO~* zc_Yg#Ks4`y+AKS*wRbu)b02K1g2Mjmecz*F7dBQzQ%+uiUr7sIQUj6vur*QVXuEJ4 zUZgST(>J5=NBU&vQ+8ngJD^b@4J7>_VWJ=_@G=P7`flAK&4mtjb*0N=Ya6k*3fdbW z_rG=LF6$XYi=)28J^(s9sOUly3aON$NW>M~MfEVx>b)Fv(oT>-C$60#cRzuH!YOe~ z+Zr}oH+l(u`IGiq{bTlft@~DCU{Q^u zI5-LPwPgdMGfZM_mru|eP;C_`{XNyP$>zHI?bNw54l*lVBsEJ`B9t^uG}lW9e3Xf? z8Yt;Va>Nz$BhZJ7a-+Hil`|Z80S@w`t_!Hp4MY7+jRPkW!p3P*h|<3165)^v?CDKA zL7og*`%sr_dXtTs;x#DRmD-8XE^CCr_|LY#3JYxMvTV}d55E>@opy@JfBfdRZBto| zwIf@59UY5ebUvmav8)3uAhzBU036CgachiM5)D;a4N=)g(144rcoqbm2+GS~9z=(t3rD& zHLjhIJ0dS{=libm83;L1$EZVByt=l=P9{37s4Qatw)N}uv(zuk7T%lJmIXYg@qn(! zqSMgt6vgOiB8ps63l5!0?l>1m;G{zJ9IvT^+n6NB#zw&DAF~aWrM7?H+jJ=BS#oID zDq|5Vqd@xpnNC)IKBALT-j0?SAq37s&hj;Yre} zn^hzq>{gEp=fC(^zcae!%m!@X{^pqV7jM-6R)NgvYUmKiX^i7Es3O>;d=fTsITk)P zcLDC0OA{Y;Z^Wor`GWMBBLds^E*;ZN4c6X%#kxt6Oo15lbL6$;;fF@1?49#Bt+A=e z{?oU`>#|{D^&g{G`3|jo)^*3WSPrsF_-cY@{=n6?C2O9nKEU z3=6i9MfBs=UJK8K3&U)M7gp{1J}z7l<=cPo`uCX?#vz}bw!~1sn=FQhMy!w(@P@i-t3jvvGPK^I znOvktgLVU6rsVJtsGl(lgn~BM*GrSu9J<2;_Tk<=_5w{<`K%h<$b9!RkAMAtjw$0V z7GGHS%N^_DbF24TX{NB2_L?S{A2Va&xEJiBy3NN-ihaG8t-rS)$a0d#yAd0qFieR9 zHsMNZYN)lG>mAlG8l-c&#F9*;1EjSkD5lSovYVo@uZ#LkA$=N0K6uYsx9+fAPd&@W zEf~lBy3J6xJ#^k<@zC5mcyYl#w{LdaCinGF1?ob1hF=-KY6~p_x`<-WoIYq>-JRA0 z3T|!&p)Q;-?gaiWBxzgffh;GiiTY4QHENO5qjt0VIBaM2Jj9HH$^3QuW{a%QOva*t|ZkjYr!m29csI3)RRb9PZzJ{PvRi)L2W7IW*tPFj&8Gfn$TQS$ot?zqH z?FL7QE<(gk`U@JG1FR}xB34q*7HMu+Xn zr3-ZXC#X@xfZ-O}waXVMh(LD^pH_8E4XC(!y95d2#^!np7nd{7r@5EPt-89xooj-{ zMiJ?$Ktb5Xa3sM%p7q@5pgFYOMPBRtcJU5>1ufu}saDXKE43>XZ@2H|=hD!Uv_kZXFn{KfpoI-%87^c=kAAV>*`r(hEAvt6f(0gCF ze9ivyFaOFuIB*bTOP94@ZO;maAv?!QN^J^+&h_ivmVyQMjUWHWk@=0Ib+Kjh<977$ z2^0_aBD^zXvQbr8nOjN!6z-_EvE>vsB#Az~xqFZO;Q#$CwU0EZt9=$jaB2NG3|V5H zG+VLNH`PNga)us>JljY2^6=mg_sfhmHEy@7mpbgtH{PI!V%ViB%OF`C1-AUw&)%>- zoPR&|i58XEJMVsI-~H>qhOuDCeoohYP!Mat7T)kIaJvP(n#S$cSjES;*EE*$F%uI> z`*8nm(kWdwqk`r_PG1p+;Ijp+logTOO7wybf?Tk<+0I>TcX{X_je~h0htw0|2Qj05 z1~p(cHn!N-?N8%4z}zomlv7|{&6>ti4owsL`7_7t{kM0+)XVu%&;?~mZDAJM2r1@s z5ywp+vXa?tY;JS~@iax^f?$N+26`|kmJ4wvQouCOQ0ZkiH0`j>TU%Y-XDP?=4{Z~s z$R44%yqvLE(^$$rbe*raU$D2|`U#N&)Fwcr)j2M{_I#oZAGQdh-|cwFpg6B1ZI_}p zG@OJjmtK=#2v7jqiFH7>5NtV*`b9(Yc6)T^^j)|d5}Qr5LZc7v?A0sDU#<==imX8MKOq(5(?9UXp5ItZ*-HO&`{DA7wSb|$&|JQ zX4!SK&$jK#j^I*GJn6r(;J=z zZnJ>rG;TA-T6$PsUIn7(pTX|hWrHAT5|F}8fsP5P$jO(Sbs@#>0xL$}puD02N(~^r za0E>XEu+a$=qsX<0A0Efgq5PCT`Eag`RUZnhA|5i_DjF@HR}YToS<8KaG=-5A%Jum z<~U7Fb-AF9;>AToVlj)wODs4rVhK`wa-^)MX?{$*Ni)D|TiX=VTv=07yY9@BrjY&Q zQ_nb5+faWmwt&hU(WqI(ka9p)aYNup@<_c!OtkZ5+%Ms9(gsI_R1>8ZQn^66^Xb>| z)87-rvBc2QsHzC1SehU5EoE{JaY_XzZq7LA$X4l zm<(oSQr3U7o1*6}dwfSL^dq+%t;FZhJswRC+AY#CiGiCo4hK*QL`-8-qiurfp`~T3 zYiL`ERkYGutC9ED@rn;?sl$&$EUVbyV7f)cVJE~iI-0N~KfNG>N~0lbX{xg$)OaE^ zuhloySaApvZbUXhK)8_YwKfHQBg&-vix@mk$w{5jf`aTBxxtFN>Btcq9 z0kMG;W-Hn$)zttAR$zf4dkUoCjqI^NcH}Cu=X(6cnfRCt^7+z9MNVlHE&awQV$RTK z5Tz4*hSlOwZ=V%`h?%2#VT?3H4!P+$nzDj{eDc)DZjy3X=(PBa{jc{Yv=WZS zW%?IL%2B@=x5?2V^D}VUPl42)t0kFy-cJJfY>`joS(qQRL^oai=&8g?DnVUAK1jVo`Ww<_FNFM14S;F&$9TiD zz#S~$IgL9QX01G}&TG+Lt4Ns#GR7w+SE3NDEMp*ud^AsqP!4=02q1WDNmclKIjpQz z>=xZMlfpvIdaaz(${t6KshLi-2@C^`yWde{=y4$h>0mSlL#^yXy+e){l$46);cy7s zKrN!zm?&3LZEt1I@6+uqM1en3hrkxpa&o!;N>{4z9|1L`dXDZNG1N-6P>T!4x~y$^ zUf_Uipfmq;R`a(0G#1b|%^Pdl0!(N)4h(N!`p7d5B|3TvMMW)!{yD9sQR}+bmLy#zxMU%4+c4ZgAtucky1|9D4+KJ4JpmK|4iJ^OAE7DPN2Gl7IEOs!B7|8G zAi$)W_n1g!mjWQV`Mv-XDywmHAVm1+lLN_uAvBa05d~axHF3@qPlKEq1w9sKK`~`5HL$#v-yj7yI6^WzlQ6QQb;K}?D$c}HyDj8=j>{gTvm2@Z<5>XWK z#UDZAy9oKwdDwB|5Y`nJS6Ovkvr9jeR8-p|Oc=uD$7uMH)N42r$Ek!k6=m+TbEp@k zp}xh6aiHo&C;}-pMi+E>SqX*mI(z;rFF~GH;ozrRw(oLcLa`{!uB2Ui~z+IVyd#b z2DDw2NY!iTTmN^$>YagC(^x&*uGpSczX%t`nC#SmMX`GVnvu&L^e0SN$C*>M@9*CL zqi=Sy?Yx~md&LG4qcEcOfTo(F2EuAPiyelHtW|Lca=jp{*!%sO>~ka4rB3#3j!f7#1V9Mc0(gl1RY2p z>;UaB`V90`8oKaVa{DTjYx8UxE)hu~TQFkTLMcw!!$+|@ zhZ;^XDY<-ps}?km9(o$hk&G==825%}fxBD4t7+WbK5OPxhwgE+feuN!Yz(CmNUwyV zprn9~j!jIuhAdHz%oAm}Rii?b4ERd#$l4*akD`rS3g1EmsbgMGjh1Snh5m2`Y^;Rr4_V46f++YhLA#9J?cyEHq@1s zQqIFNu#Z~%q;u_~?jzSBy9C3z20io|rkxM*aNZY29m;hoV6TfmDnR@k7cwL6z(;u|iVYjuaK zQB8b7BJ9hjk3;gL!re>WQ&}^`A@pLH37^~yKt2i#yUB}O5>58qA)H!bfr7FU$W8`?(%#8t)K<6@f)*(=2;uN66J%0m(<}q&1z91 zOQUpy7Zw#-dpf_)Zkk?r?O_I?u{%$a4;x8=bY>_LBu(g=q>++$rG z7l74-n&5gBI1VQ1@&@d^7S&HI*i;j_ z2Yu`h>hpSUwA)ATy=8t-QBgXZRnHm5srL5|T7o9Fa5QR7^&4yiD)gzTl%+_^rZ6o)~ z6iBjhWP&G2+v&MV*aM^!ei&OM68)=rh~B=}xdl9@u?{Za8ML1z;W>vSsnQHNbJJE= zTa9o~G4vuZ;HJiHdThiBgo+{EFgZ2lI(w&RV(YuvgPuZ{OV_M}Q@yW49KboWU%ASA zMbbxvL3?~rILM?KMK7bo@}?(k27T;#_?AL+i%%=3&z&zo!N_pJjvqcm?PKXW9`|*S z59m#!qe(k^N{a-g;;7jGr}d+y5ifx@1$q_PVs31hJ{~k$SX8K{k#@Z*d5)sy)UjhW zg>pDD3>{lh)PKYm+%qYuQ?ao_GPyQjLA0NEg~F-@fwV%PdCX>)#OG8LXNGyhvl! zOuI5WR!X|EripY@m0J<2F>PXe#!{pm`Z})L7(zNdq^U;Xqbi_=p(2LRQ=`dIR*`8d zud1_n*#=htU6~_VdwU7d4PV!^m5DNgB%7Vh!A6rdkx1AGv>CUOlh!pftjjAK*x~^M8)OP?&PzMqq zKn;;YLxYY1xUOjn^{_}bn8G`URkDERG*-#5E4^DGqGnR`7^ua7C}NB>gqTSsK*Z7+ zM%xOva%KjwX{oirHKbLyq(>iy;UKht1(Ktr>FAUnOOCsAT`7fL8a6CO(L3LdAQkDo zH0dijRBao988;h84mL;N)f*dC5c?0Qvj8VRBPq8iMMRlI;p-A?nMh-LY8pq9 zeNI(E3AjtSt*K9NqWv|)N;*!;uGTU81&bI+7=Ue5NI%fpaQdWsVbMESPv(-%wtpp zMq!)8JhoZrPaqXFO%xWU)>DXLUAPdQE*`tS1SVByN1U;G7P4(D+Cpr%d5~JlPfpVv zAEfvlA)*KX2#CVRC3vkm#~nR zI>tPRDWPB{oI0Hr(Yd^?4suP1nnE9rk&BJez)SOhP|Yy`&X9glGoKGfA;wpAg-?MR zat&{?5B5|6cr9AUHR3JfvSn70Sv= zt)i+XlY&@{16pJIlww^;NxALX^?5w%w3U;-^D!Bws9nq>YdTIUs+3tX#N!|-sYogs8&tkv`4 zrPM@oKaP5cl2+8(uc9?q>*4Wg41I2d zv`>_V!sU!{fDFUK!z*G7-6WZNBV!BYEoFn%wuR0=KzDvT?m>8$b1$s5_j*oatz8lC zcsvVu7Vs>vhApu6;_@|YEbq`f3wRdrEby>fz;hZ8`yJq&zh?o@0-gmvg#|pP@hObu kZR%OTvw&xThus4IA8L~4{&{PeV*mgE07*qoM6N<$f(@JGSO5S3 literal 0 HcmV?d00001 diff --git a/image.png b/image.png new file mode 100644 index 0000000000000000000000000000000000000000..39eaec235944af4f4479fbcbea361426f79d995c GIT binary patch literal 22909 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 + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..ec97fc6 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..c4855bf --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..fdcc671 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,44 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '11.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..51ba2a6 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = F4SG2JTPHZ; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.tambakApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.tambakApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.tambakApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.tambakApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = F4SG2JTPHZ; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.tambakApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = F4SG2JTPHZ; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.tambakApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e42adcb --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 zcmeHN2~<R zh`|8`A_PQ1nSu(UMFx?8j8PC!!VDphaL#`F42fd#7Vlc`zIE4n%Y~eiz4y1j|NDpi z?<@|pSJ-HM`qifhf@m%MamgwK83`XpBA<+azdF#2QsT{X@z0A9Bq>~TVErigKH1~P zRX-!h-f0NJ4Mh++{D}J+K>~~rq}d%o%+4dogzXp7RxX4C>Km5XEI|PAFDmo;DFm6G zzjVoB`@qW98Yl0Kvc-9w09^PrsobmG*Eju^=3f?0o-t$U)TL1B3;sZ^!++3&bGZ!o-*6w?;oOhf z=A+Qb$scV5!RbG+&2S}BQ6YH!FKb0``VVX~T$dzzeSZ$&9=X$3)_7Z{SspSYJ!lGE z7yig_41zpQ)%5dr4ff0rh$@ky3-JLRk&DK)NEIHecf9c*?Z1bUB4%pZjQ7hD!A0r-@NF(^WKdr(LXj|=UE7?gBYGgGQV zidf2`ZT@pzXf7}!NH4q(0IMcxsUGDih(0{kRSez&z?CFA0RVXsVFw3^u=^KMtt95q z43q$b*6#uQDLoiCAF_{RFc{!H^moH_cmll#Fc^KXi{9GDl{>%+3qyfOE5;Zq|6#Hb zp^#1G+z^AXfRKaa9HK;%b3Ux~U@q?xg<2DXP%6k!3E)PA<#4$ui8eDy5|9hA5&{?v z(-;*1%(1~-NTQ`Is1_MGdQ{+i*ccd96ab$R$T3=% zw_KuNF@vI!A>>Y_2pl9L{9h1-C6H8<)J4gKI6{WzGBi<@u3P6hNsXG=bRq5c+z;Gc3VUCe;LIIFDmQAGy+=mRyF++u=drBWV8-^>0yE9N&*05XHZpPlE zxu@?8(ZNy7rm?|<+UNe0Vs6&o?l`Pt>P&WaL~M&#Eh%`rg@Mbb)J&@DA-wheQ>hRV z<(XhigZAT z>=M;URcdCaiO3d^?H<^EiEMDV+7HsTiOhoaMX%P65E<(5xMPJKxf!0u>U~uVqnPN7T!X!o@_gs3Ct1 zlZ_$5QXP4{Aj645wG_SNT&6m|O6~Tsl$q?nK*)(`{J4b=(yb^nOATtF1_aS978$x3 zx>Q@s4i3~IT*+l{@dx~Hst21fR*+5}S1@cf>&8*uLw-0^zK(+OpW?cS-YG1QBZ5q! zgTAgivzoF#`cSz&HL>Ti!!v#?36I1*l^mkrx7Y|K6L#n!-~5=d3;K<;Zqi|gpNUn_ z_^GaQDEQ*jfzh;`j&KXb66fWEk1K7vxQIMQ_#Wu_%3 z4Oeb7FJ`8I>Px;^S?)}2+4D_83gHEq>8qSQY0PVP?o)zAv3K~;R$fnwTmI-=ZLK`= zTm+0h*e+Yfr(IlH3i7gUclNH^!MU>id$Jw>O?2i0Cila#v|twub21@e{S2v}8Z13( zNDrTXZVgris|qYm<0NU(tAPouG!QF4ZNpZPkX~{tVf8xY690JqY1NVdiTtW+NqyRP zZ&;T0ikb8V{wxmFhlLTQ&?OP7 z;(z*<+?J2~z*6asSe7h`$8~Se(@t(#%?BGLVs$p``;CyvcT?7Y!{tIPva$LxCQ&4W z6v#F*);|RXvI%qnoOY&i4S*EL&h%hP3O zLsrFZhv&Hu5tF$Lx!8(hs&?!Kx5&L(fdu}UI5d*wn~A`nPUhG&Rv z2#ixiJdhSF-K2tpVL=)5UkXRuPAFrEW}7mW=uAmtVQ&pGE-&az6@#-(Te^n*lrH^m@X-ftVcwO_#7{WI)5v(?>uC9GG{lcGXYJ~Q8q zbMFl7;t+kV;|;KkBW2!P_o%Czhw&Q(nXlxK9ak&6r5t_KH8#1Mr-*0}2h8R9XNkr zto5-b7P_auqTJb(TJlmJ9xreA=6d=d)CVbYP-r4$hDn5|TIhB>SReMfh&OVLkMk-T zYf%$taLF0OqYF?V{+6Xkn>iX@TuqQ?&cN6UjC9YF&%q{Ut3zv{U2)~$>-3;Dp)*(? zg*$mu8^i=-e#acaj*T$pNowo{xiGEk$%DusaQiS!KjJH96XZ-hXv+jk%ard#fu=@Q z$AM)YWvE^{%tDfK%nD49=PI|wYu}lYVbB#a7wtN^Nml@CE@{Gv7+jo{_V?I*jkdLD zJE|jfdrmVbkfS>rN*+`#l%ZUi5_bMS<>=MBDNlpiSb_tAF|Zy`K7kcp@|d?yaTmB^ zo?(vg;B$vxS|SszusORgDg-*Uitzdi{dUV+glA~R8V(?`3GZIl^egW{a919!j#>f` znL1o_^-b`}xnU0+~KIFLQ)$Q6#ym%)(GYC`^XM*{g zv3AM5$+TtDRs%`2TyR^$(hqE7Y1b&`Jd6dS6B#hDVbJlUXcG3y*439D8MrK!2D~6gn>UD4Imctb z+IvAt0iaW73Iq$K?4}H`7wq6YkTMm`tcktXgK0lKPmh=>h+l}Y+pDtvHnG>uqBA)l zAH6BV4F}v$(o$8Gfo*PB>IuaY1*^*`OTx4|hM8jZ?B6HY;F6p4{`OcZZ(us-RVwDx zUzJrCQlp@mz1ZFiSZ*$yX3c_#h9J;yBE$2g%xjmGF4ca z&yL`nGVs!Zxsh^j6i%$a*I3ZD2SoNT`{D%mU=LKaEwbN(_J5%i-6Va?@*>=3(dQy` zOv%$_9lcy9+(t>qohkuU4r_P=R^6ME+wFu&LA9tw9RA?azGhjrVJKy&8=*qZT5Dr8g--d+S8zAyJ$1HlW3Olryt`yE zFIph~Z6oF&o64rw{>lgZISC6p^CBer9C5G6yq%?8tC+)7*d+ib^?fU!JRFxynRLEZ zj;?PwtS}Ao#9whV@KEmwQgM0TVP{hs>dg(1*DiMUOKHdQGIqa0`yZnHk9mtbPfoLx zo;^V6pKUJ!5#n`w2D&381#5#_t}AlTGEgDz$^;u;-vxDN?^#5!zN9ngytY@oTv!nc zp1Xn8uR$1Z;7vY`-<*?DfPHB;x|GUi_fI9@I9SVRv1)qETbNU_8{5U|(>Du84qP#7 z*l9Y$SgA&wGbj>R1YeT9vYjZuC@|{rajTL0f%N@>3$DFU=`lSPl=Iv;EjuGjBa$Gw zHD-;%YOE@<-!7-Mn`0WuO3oWuL6tB2cpPw~Nvuj|KM@))ixuDK`9;jGMe2d)7gHin zS<>k@!x;!TJEc#HdL#RF(`|4W+H88d4V%zlh(7#{q2d0OQX9*FW^`^_<3r$kabWAB z$9BONo5}*(%kx zOXi-yM_cmB3>inPpI~)duvZykJ@^^aWzQ=eQ&STUa}2uT@lV&WoRzkUoE`rR0)`=l zFT%f|LA9fCw>`enm$p7W^E@U7RNBtsh{_-7vVz3DtB*y#*~(L9+x9*wn8VjWw|Q~q zKFsj1Yl>;}%MG3=PY`$g$_mnyhuV&~O~u~)968$0b2!Jkd;2MtAP#ZDYw9hmK_+M$ zb3pxyYC&|CuAbtiG8HZjj?MZJBFbt`ryf+c1dXFuC z0*ZQhBzNBd*}s6K_G}(|Z_9NDV162#y%WSNe|FTDDhx)K!c(mMJh@h87@8(^YdK$&d*^WQe8Z53 z(|@MRJ$Lk-&ii74MPIs80WsOFZ(NX23oR-?As+*aq6b?~62@fSVmM-_*cb1RzZ)`5$agEiL`-E9s7{GM2?(KNPgK1(+c*|-FKoy}X(D_b#etO|YR z(BGZ)0Ntfv-7R4GHoXp?l5g#*={S1{u-QzxCGng*oWr~@X-5f~RA14b8~B+pLKvr4 zfgL|7I>jlak9>D4=(i(cqYf7#318!OSR=^`xxvI!bBlS??`xxWeg?+|>MxaIdH1U~#1tHu zB{QMR?EGRmQ_l4p6YXJ{o(hh-7Tdm>TAX380TZZZyVkqHNzjUn*_|cb?T? zt;d2s-?B#Mc>T-gvBmQZx(y_cfkXZO~{N zT6rP7SD6g~n9QJ)8F*8uHxTLCAZ{l1Y&?6v)BOJZ)=R-pY=Y=&1}jE7fQ>USS}xP#exo57uND0i*rEk@$;nLvRB@u~s^dwRf?G?_enN@$t* zbL%JO=rV(3Ju8#GqUpeE3l_Wu1lN9Y{D4uaUe`g>zlj$1ER$6S6@{m1!~V|bYkhZA z%CvrDRTkHuajMU8;&RZ&itnC~iYLW4DVkP<$}>#&(`UO>!n)Po;Mt(SY8Yb`AS9lt znbX^i?Oe9r_o=?})IHKHoQGKXsps_SE{hwrg?6dMI|^+$CeC&z@*LuF+P`7LfZ*yr+KN8B4{Nzv<`A(wyR@!|gw{zB6Ha ziwPAYh)oJ(nlqSknu(8g9N&1hu0$vFK$W#mp%>X~AU1ay+EKWcFdif{% z#4!4aoVVJ;ULmkQf!ke2}3hqxLK>eq|-d7Ly7-J9zMpT`?dxo6HdfJA|t)?qPEVBDv z{y_b?4^|YA4%WW0VZd8C(ZgQzRI5(I^)=Ub`Y#MHc@nv0w-DaJAqsbEHDWG8Ia6ju zo-iyr*sq((gEwCC&^TYBWt4_@|81?=B-?#P6NMff(*^re zYqvDuO`K@`mjm_Jd;mW_tP`3$cS?R$jR1ZN09$YO%_iBqh5ftzSpMQQtxKFU=FYmP zeY^jph+g<4>YO;U^O>-NFLn~-RqlHvnZl2yd2A{Yc1G@Ga$d+Q&(f^tnPf+Z7serIU};17+2DU_f4Z z@GaPFut27d?!YiD+QP@)T=77cR9~MK@bd~pY%X(h%L={{OIb8IQmf-!xmZkm8A0Ga zQSWONI17_ru5wpHg3jI@i9D+_Y|pCqVuHJNdHUauTD=R$JcD2K_liQisqG$(sm=k9;L* z!L?*4B~ql7uioSX$zWJ?;q-SWXRFhz2Jt4%fOHA=Bwf|RzhwqdXGr78y$J)LR7&3T zE1WWz*>GPWKZ0%|@%6=fyx)5rzUpI;bCj>3RKzNG_1w$fIFCZ&UR0(7S?g}`&Pg$M zf`SLsz8wK82Vyj7;RyKmY{a8G{2BHG%w!^T|Njr!h9TO2LaP^_f22Q1=l$QiU84ao zHe_#{S6;qrC6w~7{y(hs-?-j?lbOfgH^E=XcSgnwW*eEz{_Z<_xN#0001NP)t-s|Ns9~ z#rXRE|M&d=0au&!`~QyF`q}dRnBDt}*!qXo`c{v z{Djr|@Adh0(D_%#_&mM$D6{kE_x{oE{l@J5@%H*?%=t~i_`ufYOPkAEn!pfkr2$fs z652Tz0001XNklqeeKN4RM4i{jKqmiC$?+xN>3Apn^ z0QfuZLym_5b<*QdmkHjHlj811{If)dl(Z2K0A+ekGtrFJb?g|wt#k#pV-#A~bK=OT ts8>{%cPtyC${m|1#B1A6#u!Q;umknL1chzTM$P~L002ovPDHLkV1lTfnu!1a literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..797d452e458972bab9d994556c8305db4c827017 GIT binary patch literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed2d933e1120817fe9182483a228007b18ab6ae GIT binary patch literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd7b0099ca80c806f8fe495613e8d6c69460d76 GIT binary patch literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe730945a01f64a61e2235dbe3f45b08f7729182 GIT binary patch literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..502f463a9bc882b461c96aadf492d1729e49e725 GIT binary patch literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec303439225b78712f49115768196d8d76f6790 GIT binary patch literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f5fea27c705180eb716271f41b582e76dcbd90 GIT binary patch literal 1674 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0467bf12aa4d28f374bb26596605a46dcbb3e7c8 GIT binary patch literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..ef00a3f --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Tambak App + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + tambak_app + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/app/app.dart b/lib/app/app.dart new file mode 100644 index 0000000..192255d --- /dev/null +++ b/lib/app/app.dart @@ -0,0 +1,48 @@ +import 'package:stacked_services/stacked_services.dart'; +import 'package:stacked/stacked_annotations.dart'; + +import '../services/http_services.dart'; +import '../services/my_easyloading.dart'; +import '../services/my_notification.dart'; +import '../services/my_socket_io_client.dart'; +import '../services/other_function.dart'; + +import '../ui/views/nav_bar/log_data/log_data_view.dart'; +import '../ui/views/nav_bar/monitoring/monitoring_view.dart'; +import '../ui/views/nav_bar/nav_bar_view.dart'; +import '../ui/views/splash_screen/splash_screen_view.dart'; + +@StackedApp( + routes: [ + MaterialRoute(page: SplashScreenView, initial: true), + MaterialRoute( + page: NavBarView, + children: [ + MaterialRoute(page: MonitoringView), + MaterialRoute(page: LogDataView), + ], + ), + ], + // dialogs: [ + // StackedDialog(classType: ScanRfidDialogView), + + // ], + // bottomsheets: [ + // StackedBottomsheet(classType: DetailLogHistoryView), + // ], + dependencies: [ + LazySingleton(classType: NavigationService), + LazySingleton(classType: DialogService), + LazySingleton(classType: SnackbarService), + LazySingleton(classType: BottomSheetService), + // + + LazySingleton(classType: MyEasyLoading), + LazySingleton(classType: MyHttpServices), + LazySingleton(classType: OtherFunction), + LazySingleton(classType: MySocketIoClient), + LazySingleton(classType: MyNotification), + ], + logger: StackedLogger(), +) +class App {} diff --git a/lib/app/app.locator.dart b/lib/app/app.locator.dart new file mode 100644 index 0000000..9f00117 --- /dev/null +++ b/lib/app/app.locator.dart @@ -0,0 +1,41 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// StackedLocatorGenerator +// ************************************************************************** + +// ignore_for_file: public_member_api_docs, implementation_imports, depend_on_referenced_packages + +import 'package:stacked_services/src/bottom_sheet/bottom_sheet_service.dart'; +import 'package:stacked_services/src/dialog/dialog_service.dart'; +import 'package:stacked_services/src/navigation/navigation_service.dart'; +import 'package:stacked_services/src/snackbar/snackbar_service.dart'; +import 'package:stacked_shared/stacked_shared.dart'; + +import '../services/http_services.dart'; +import '../services/my_easyloading.dart'; +import '../services/my_notification.dart'; +import '../services/my_socket_io_client.dart'; +import '../services/other_function.dart'; + +final locator = StackedLocator.instance; + +Future setupLocator({ + String? environment, + EnvironmentFilter? environmentFilter, +}) async { +// Register environments + locator.registerEnvironment( + environment: environment, environmentFilter: environmentFilter); + +// Register dependencies + locator.registerLazySingleton(() => NavigationService()); + locator.registerLazySingleton(() => DialogService()); + locator.registerLazySingleton(() => SnackbarService()); + locator.registerLazySingleton(() => BottomSheetService()); + locator.registerLazySingleton(() => MyEasyLoading()); + locator.registerLazySingleton(() => MyHttpServices()); + locator.registerLazySingleton(() => OtherFunction()); + locator.registerLazySingleton(() => MySocketIoClient()); + locator.registerLazySingleton(() => MyNotification()); +} diff --git a/lib/app/app.logger.dart b/lib/app/app.logger.dart new file mode 100644 index 0000000..26ab3f9 --- /dev/null +++ b/lib/app/app.logger.dart @@ -0,0 +1,159 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// StackedLoggerGenerator +// ************************************************************************** + +// ignore_for_file: avoid_print, depend_on_referenced_packages + +/// Maybe this should be generated for the user as well? +/// +/// import 'package:customer_app/services/stackdriver/stackdriver_service.dart'; +import 'package:flutter/foundation.dart'; +import 'package:logger/logger.dart'; + +class SimpleLogPrinter extends LogPrinter { + final String className; + final bool printCallingFunctionName; + final bool printCallStack; + final List exludeLogsFromClasses; + final String? showOnlyClass; + + SimpleLogPrinter( + this.className, { + this.printCallingFunctionName = true, + this.printCallStack = false, + this.exludeLogsFromClasses = const [], + this.showOnlyClass, + }); + + @override + List log(LogEvent event) { + var color = PrettyPrinter.levelColors[event.level]; + var emoji = PrettyPrinter.levelEmojis[event.level]; + var methodName = _getMethodName(); + + var methodNameSection = + printCallingFunctionName && methodName != null ? ' | $methodName' : ''; + var stackLog = event.stackTrace.toString(); + var output = + '$emoji $className$methodNameSection - ${event.message}${event.error != null ? '\nERROR: ${event.error}\n' : ''}${printCallStack ? '\nSTACKTRACE:\n$stackLog' : ''}'; + + if (exludeLogsFromClasses + .any((excludeClass) => className == excludeClass) || + (showOnlyClass != null && className != showOnlyClass)) return []; + + final pattern = RegExp('.{1,800}'); // 800 is the size of each chunk + List result = []; + + for (var line in output.split('\n')) { + result.addAll(pattern.allMatches(line).map((match) { + if (kReleaseMode) { + return match.group(0)!; + } else { + return color!(match.group(0)!); + } + })); + } + + return result; + } + + String? _getMethodName() { + try { + final currentStack = StackTrace.current; + final formattedStacktrace = _formatStackTrace(currentStack, 3); + if (kIsWeb) { + final classNameParts = _splitClassNameWords(className); + return _findMostMatchedTrace(formattedStacktrace!, classNameParts) + .split(' ') + .last; + } else { + final realFirstLine = formattedStacktrace + ?.firstWhere((line) => line.contains(className), orElse: () => ""); + + final methodName = realFirstLine?.replaceAll('$className.', ''); + return methodName; + } + } catch (e) { + // There's no deliberate function call from our code so we return null; + return null; + } + } + + List _splitClassNameWords(String className) { + return className + .split(RegExp(r'(?=[A-Z])')) + .map((e) => e.toLowerCase()) + .toList(); + } + + /// When the faulty word exists in the begging this method will not be very usefull + String _findMostMatchedTrace( + List stackTraces, List keyWords) { + String match = stackTraces.firstWhere( + (trace) => _doesTraceContainsAllKeywords(trace, keyWords), + orElse: () => ''); + if (match.isEmpty) { + match = _findMostMatchedTrace( + stackTraces, keyWords.sublist(0, keyWords.length - 1)); + } + return match; + } + + bool _doesTraceContainsAllKeywords(String stackTrace, List keywords) { + final formattedKeywordsAsRegex = RegExp(keywords.join('.*')); + return stackTrace.contains(formattedKeywordsAsRegex); + } +} + +final stackTraceRegex = RegExp(r'#[0-9]+[\s]+(.+) \(([^\s]+)\)'); + +List? _formatStackTrace(StackTrace stackTrace, int methodCount) { + var lines = stackTrace.toString().split('\n'); + + var formatted = []; + var count = 0; + for (var line in lines) { + var match = stackTraceRegex.matchAsPrefix(line); + if (match != null) { + if (match.group(2)!.startsWith('package:logger')) { + continue; + } + var newLine = ("${match.group(1)}"); + formatted.add(newLine.replaceAll('', '()')); + if (++count == methodCount) { + break; + } + } else { + formatted.add(line); + } + } + + if (formatted.isEmpty) { + return null; + } else { + return formatted; + } +} + +Logger getLogger( + String className, { + bool printCallingFunctionName = true, + bool printCallstack = false, + List exludeLogsFromClasses = const [], + String? showOnlyClass, +}) { + return Logger( + printer: SimpleLogPrinter( + className, + printCallingFunctionName: printCallingFunctionName, + printCallStack: printCallstack, + showOnlyClass: showOnlyClass, + exludeLogsFromClasses: exludeLogsFromClasses, + ), + output: MultiOutput([ + if (!kReleaseMode) ConsoleOutput(), + ]), + ); +} diff --git a/lib/app/app.router.dart b/lib/app/app.router.dart new file mode 100644 index 0000000..5a1df9f --- /dev/null +++ b/lib/app/app.router.dart @@ -0,0 +1,221 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// StackedNavigatorGenerator +// ************************************************************************** + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:flutter/material.dart' as _i4; +import 'package:flutter/material.dart'; +import 'package:stacked/stacked.dart' as _i1; +import 'package:stacked_services/stacked_services.dart' as _i7; +import 'package:tambak_app/ui/views/nav_bar/log_data/log_data_view.dart' as _i6; +import 'package:tambak_app/ui/views/nav_bar/monitoring/monitoring_view.dart' + as _i5; +import 'package:tambak_app/ui/views/nav_bar/nav_bar_view.dart' as _i3; +import 'package:tambak_app/ui/views/splash_screen/splash_screen_view.dart' + as _i2; + +class Routes { + static const splashScreenView = '/'; + + static const navBarView = '/nav-bar-view'; + + static const all = { + splashScreenView, + navBarView, + }; +} + +class StackedRouter extends _i1.RouterBase { + final _routes = <_i1.RouteDef>[ + _i1.RouteDef( + Routes.splashScreenView, + page: _i2.SplashScreenView, + ), + _i1.RouteDef( + Routes.navBarView, + page: _i3.NavBarView, + ), + ]; + + final _pagesMap = { + _i2.SplashScreenView: (data) { + return _i4.MaterialPageRoute( + builder: (context) => const _i2.SplashScreenView(), + settings: data, + ); + }, + _i3.NavBarView: (data) { + return _i4.MaterialPageRoute( + builder: (context) => const _i3.NavBarView(), + settings: data, + ); + }, + }; + + @override + List<_i1.RouteDef> get routes => _routes; + + @override + Map get pagesMap => _pagesMap; +} + +class NavBarViewRoutes { + static const monitoringView = 'monitoring-view'; + + static const logDataView = 'log-data-view'; + + static const all = { + monitoringView, + logDataView, + }; +} + +class NavBarViewRouter extends _i1.RouterBase { + final _routes = <_i1.RouteDef>[ + _i1.RouteDef( + NavBarViewRoutes.monitoringView, + page: _i5.MonitoringView, + ), + _i1.RouteDef( + NavBarViewRoutes.logDataView, + page: _i6.LogDataView, + ), + ]; + + final _pagesMap = { + _i5.MonitoringView: (data) { + return _i4.MaterialPageRoute( + builder: (context) => const _i5.MonitoringView(), + settings: data, + ); + }, + _i6.LogDataView: (data) { + return _i4.MaterialPageRoute( + builder: (context) => const _i6.LogDataView(), + settings: data, + ); + }, + }; + + @override + List<_i1.RouteDef> get routes => _routes; + + @override + Map get pagesMap => _pagesMap; +} + +extension NavigatorStateExtension on _i7.NavigationService { + Future navigateToSplashScreenView([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return navigateTo(Routes.splashScreenView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } + + Future navigateToNavBarView([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return navigateTo(Routes.navBarView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } + + Future navigateToNestedMonitoringViewInNavBarViewRouter([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return navigateTo(NavBarViewRoutes.monitoringView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } + + Future navigateToNestedLogDataViewInNavBarViewRouter([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return navigateTo(NavBarViewRoutes.logDataView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } + + Future replaceWithSplashScreenView([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return replaceWith(Routes.splashScreenView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } + + Future replaceWithNavBarView([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return replaceWith(Routes.navBarView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } + + Future replaceWithNestedMonitoringViewInNavBarViewRouter([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return replaceWith(NavBarViewRoutes.monitoringView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } + + Future replaceWithNestedLogDataViewInNavBarViewRouter([ + int? routerId, + bool preventDuplicates = true, + Map? parameters, + Widget Function(BuildContext, Animation, Animation, Widget)? + transition, + ]) async { + return replaceWith(NavBarViewRoutes.logDataView, + id: routerId, + preventDuplicates: preventDuplicates, + parameters: parameters, + transition: transition); + } +} diff --git a/lib/app/core/custom_base_view_model.dart b/lib/app/core/custom_base_view_model.dart new file mode 100755 index 0000000..9010567 --- /dev/null +++ b/lib/app/core/custom_base_view_model.dart @@ -0,0 +1,25 @@ +import 'package:stacked/stacked.dart'; +import 'package:stacked_services/stacked_services.dart'; + +import '../../services/http_services.dart'; +import '../../services/my_easyloading.dart'; +import '../../services/my_notification.dart'; +import '../../services/my_socket_io_client.dart'; +import '../../services/other_function.dart'; +import '../app.locator.dart'; + +class CustomBaseViewModel extends BaseViewModel { + final dialogService = locator(); + final navigationService = locator(); + final bottomSheetService = locator(); + final snackbarService = locator(); + final otherFunction = locator(); + final socketIoClient = locator(); + final httpService = locator(); + final easyLoading = locator(); + final myNotification = locator(); + + void back() { + navigationService.back(); + } +} diff --git a/lib/app/themes/app_colors.dart b/lib/app/themes/app_colors.dart new file mode 100755 index 0000000..7e87204 --- /dev/null +++ b/lib/app/themes/app_colors.dart @@ -0,0 +1,30 @@ +import 'dart:ui'; + +const Color mainColor = Color.fromARGB(255, 6, 238, 48); +const Color secondaryColor = Color(0xFFB72025); +const Color dangerColor = Color(0xFFFF4B68); +const Color warningColor = Color(0xFFFBFFA3); +const Color lightColor = Color(0xFFF4FAFE); +const Color lightGreyColor = Color(0xFFFCFCFC); +const Color stockColor = Color(0xFFEEF3F6); + +const Color backgroundColor = Color(0xFFE5E5E5); +const Color backgroundColor3 = Color(0xFFF6F7F8); + +const Color orangeColor = Color.fromARGB(255, 250, 145, 84); +const Color blueColor = Color(0xFF026AA2); +const Color greenColor = Color(0xFF2ABB52); +const Color redColor = Color(0xFFED1717); +const Color greyBlueColor = Color(0xFF363F72); + +const Color fontColor = Color(0xFF101828); +const Color fontSecondaryColor = Color(0xFF667085); +const Color fontParagraphColor = Color(0xFFB2B2B2); +const Color fontGrey = Color(0xFF1C1C1C); + +const Color mainGrey = Color(0xFF8991A4); +const Color secondaryGrey = Color(0xFFD0D5DD); +const Color thirdGrey = Color(0xFFF2F4F7); +const Color fourthGrey = Color(0xFF5C5C5C); +const Color fifthGrey = Color(0xFFEBEBEB); +const Color sixthGrey = Color(0xFF151515); diff --git a/lib/app/themes/app_text.dart b/lib/app/themes/app_text.dart new file mode 100644 index 0000000..092d154 --- /dev/null +++ b/lib/app/themes/app_text.dart @@ -0,0 +1,44 @@ +import 'package:flutter/material.dart'; + +import 'app_colors.dart'; + +const regularTextStyle = TextStyle( + fontFamily: 'Arial', + fontSize: 14, + fontWeight: FontWeight.w400, + color: fontColor); + +const italicTextStyle = TextStyle( + fontFamily: 'Arial', + fontSize: 14, + color: fontColor, + fontStyle: FontStyle.italic, +); + +const mediumTextStyle = TextStyle( + fontFamily: 'Arial', + fontSize: 14, + fontWeight: FontWeight.w500, + color: fontColor, +); + +const semiBoldTextStyle = TextStyle( + fontFamily: 'Arial', + fontSize: 14, + fontWeight: FontWeight.w600, + color: fontColor, +); + +const boldTextStyle = TextStyle( + fontFamily: 'Arial', + fontSize: 14, + fontWeight: FontWeight.w700, + color: fontColor, +); + +const extraBoldTextStyle = TextStyle( + fontFamily: 'Arial', + fontSize: 14, + fontWeight: FontWeight.w800, + color: fontColor, +); diff --git a/lib/app/themes/app_theme.dart b/lib/app/themes/app_theme.dart new file mode 100755 index 0000000..eefa661 --- /dev/null +++ b/lib/app/themes/app_theme.dart @@ -0,0 +1,124 @@ +import 'package:flutter/material.dart'; + +import 'app_colors.dart'; +import 'app_text.dart'; + +ThemeData appTheme = ThemeData( + useMaterial3: true, + primaryColor: mainColor, + scaffoldBackgroundColor: Colors.white, + canvasColor: Colors.white, + fontFamily: 'Poppins', + appBarTheme: AppBarTheme( + elevation: 0, + titleTextStyle: boldTextStyle.copyWith(fontSize: 16, color: fontGrey), + centerTitle: true, + ), + textTheme: TextTheme( + displayLarge: regularTextStyle.copyWith(fontSize: 32), + displayMedium: regularTextStyle.copyWith(fontSize: 20), + displaySmall: regularTextStyle.copyWith(fontSize: 18), + ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + backgroundColor: mainColor, + foregroundColor: Colors.white, + disabledBackgroundColor: mainColor.withOpacity(.3), + minimumSize: const Size(double.maxFinite, 58), + textStyle: boldTextStyle, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + shadowColor: Colors.transparent, + elevation: 0, + ), + ), + outlinedButtonTheme: OutlinedButtonThemeData( + style: OutlinedButton.styleFrom( + textStyle: boldTextStyle, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + side: const BorderSide( + color: mainColor, + width: 1, + ), + foregroundColor: mainColor, + // disabledForegroundColor: mainColor.withOpacity(.3), + minimumSize: const Size(double.maxFinite, 58), + ), + ), + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + foregroundColor: mainColor, + disabledForegroundColor: mainColor.withOpacity(.3), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + textStyle: semiBoldTextStyle, + shadowColor: Colors.transparent, + ), + ), + iconTheme: const IconThemeData( + color: mainColor, + ), + listTileTheme: ListTileThemeData( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + checkboxTheme: CheckboxThemeData( + fillColor: MaterialStateProperty.all(mainColor), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(4), + ), + side: const BorderSide( + color: secondaryGrey, + width: 1, + ), + ), + radioTheme: RadioThemeData( + fillColor: MaterialStateProperty.all(mainColor), + ), + tabBarTheme: TabBarTheme( + labelColor: mainColor, + unselectedLabelColor: secondaryGrey, + labelStyle: boldTextStyle.copyWith(fontSize: 16), + unselectedLabelStyle: mediumTextStyle.copyWith(fontSize: 16), + ), + chipTheme: ChipThemeData( + backgroundColor: Colors.white, + disabledColor: Colors.white, + selectedColor: Colors.white, + secondarySelectedColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), + side: const BorderSide(color: fifthGrey), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(6), + ), + labelStyle: regularTextStyle.copyWith(fontSize: 12, color: fontGrey), + secondaryLabelStyle: + regularTextStyle.copyWith(fontSize: 12, color: secondaryColor), + deleteIconColor: fontGrey, + showCheckmark: false, + ), + popupMenuTheme: PopupMenuThemeData( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + side: const BorderSide( + color: fifthGrey, + width: 1, + ), + ), + ), + colorScheme: const ColorScheme.light( + primary: mainColor, + secondary: secondaryColor, + onPrimary: Colors.white, + onSecondary: Colors.white, + error: dangerColor, + onError: dangerColor, + background: backgroundColor, + ).copyWith(background: Colors.white), +); diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..464b35d --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,54 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:stacked_services/stacked_services.dart'; + +import 'app/app.locator.dart'; +import 'app/app.router.dart'; +import 'app/themes/app_theme.dart'; + +Future main() async { + // await initializeDateFormatting('id_ID'); + WidgetsFlutterBinding.ensureInitialized(); + HttpOverrides.global = MyHttpOverrides(); + await dotenv.load(fileName: ".env"); + await setupAllLocator(); + runApp(const MyApp()); + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Electric Monitoring', + theme: appTheme, + debugShowCheckedModeBanner: false, + navigatorKey: StackedService.navigatorKey, + onGenerateRoute: StackedRouter().onGenerateRoute, + builder: EasyLoading.init(), + // home: const MyHomePage(title: 'Flutter Demo Home Page'), + ); + } +} + +Future setupAllLocator() async { + await setupLocator(); + // setupDialogUi(); + // setupBottomSheetUi(); + // setupSnackbarUi(); +} + +class MyHttpOverrides extends HttpOverrides { + @override + HttpClient createHttpClient(SecurityContext? context) { + return super.createHttpClient(context) + ..badCertificateCallback = + (X509Certificate cert, String host, int port) => true; + } +} diff --git a/lib/services/http_services.dart b/lib/services/http_services.dart new file mode 100644 index 0000000..66e8ae2 --- /dev/null +++ b/lib/services/http_services.dart @@ -0,0 +1,95 @@ +import 'package:dio/dio.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:stacked_services/stacked_services.dart'; + +import '../app/app.locator.dart'; +import '../app/app.logger.dart'; + +class MyHttpServices { + final _log = getLogger('MyHttpServices'); + final _snackbarService = locator(); + final _options = BaseOptions( + baseUrl: dotenv.env['api_url']!, + connectTimeout: const Duration(seconds: 120), + receiveTimeout: const Duration(seconds: 120), + ); + + late Dio _dio; + + MyHttpServices() { + _dio = Dio(_options); + } + + Future get(String path) async { + try { + return await _dio.get(path); + } on DioException catch (e) { + String response = e.response != null + ? e.response!.data['message'].toString() + : e.toString(); + _log.e('ini errornya: $response'); + _snackbarService.showSnackbar( + message: response, + title: 'Error', + duration: const Duration(milliseconds: 1000), + ); + rethrow; + } + } + + Future postWithFormData(String path, FormData formData) async { + try { + return await _dio.post(path, data: formData); + } on DioException catch (e) { + String response = e.response != null + ? e.response!.data['message'].toString() + : e.toString(); + _log.e('ini errornya: $response'); + _snackbarService.showSnackbar( + message: response, + title: 'Error', + duration: const Duration(milliseconds: 1000), + ); + rethrow; + } + } + + // putWithFormData + Future putWithFormData(String path, FormData formData) async { + try { + return await _dio.put(path, data: formData); + } on DioException catch (e) { + String response = e.response != null + ? e.response!.data['message'].toString() + : e.toString(); + _log.e('ini errornya: $response'); + _snackbarService.showSnackbar( + message: response, + title: 'Error', + duration: const Duration(milliseconds: 1000), + ); + rethrow; + } + } + + // // delete + // Future delete(String path, FormData data) async { + // try { + // // log.i('path: $path'); + // return await _dio.delete( + // path, + // data: data, + // // encoding: Encoding.getByName('utf-8'), + // options: Options( + // headers: { + // 'Content-Type': 'application/x-www-form-urlencoded', + // }, + // ), + // ); + // } on DioError catch (e) { + // log.e(e.message); + // log.e(e.response); + // rethrow; + // } + // } +} diff --git a/lib/services/my_easyloading.dart b/lib/services/my_easyloading.dart new file mode 100644 index 0000000..98198c9 --- /dev/null +++ b/lib/services/my_easyloading.dart @@ -0,0 +1,39 @@ +import 'package:flutter_easyloading/flutter_easyloading.dart'; + +class MyEasyLoading { + showLoading() { + EasyLoading.show( + status: 'loading...', + maskType: EasyLoadingMaskType.black, + dismissOnTap: false, + ); + } + + dismiss() { + EasyLoading.dismiss(); + } + + customLoading(String message) { + EasyLoading.show( + status: message, + maskType: EasyLoadingMaskType.black, + dismissOnTap: false, + ); + } + + showSuccess(String message) { + EasyLoading.showSuccess(message); + } + + showError(String message) { + EasyLoading.showError(message); + } + + showInfo(String message) { + EasyLoading.showInfo(message); + } + + showProgress(double progress, String status) { + EasyLoading.showProgress(progress, status: status); + } +} diff --git a/lib/services/my_notification.dart b/lib/services/my_notification.dart new file mode 100644 index 0000000..272734c --- /dev/null +++ b/lib/services/my_notification.dart @@ -0,0 +1,42 @@ +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; + +class MyNotification { + static Future initialize( + FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin) async { + var androidInitialize = + const AndroidInitializationSettings('mipmap/ic_launcher'); + var iOSInitialize = const DarwinInitializationSettings(); + var initializeSettings = + InitializationSettings(android: androidInitialize, iOS: iOSInitialize); + await flutterLocalNotificationsPlugin.initialize(initializeSettings); + } + + Future showNotification( + {var id = 0, + var title, + var body, + var payload, + required FlutterLocalNotificationsPlugin + flutterLocalNotificationsPlugin}) async { + AndroidNotificationDetails androidPlatformChannelSpecifics = + const AndroidNotificationDetails( + '07eff3c8-e3d7-4386-b8a1-e6588cd9fbb5', // channelId + 'channel_name', + sound: RawResourceAndroidNotificationSound('notification_fuck'), + importance: Importance.max, + priority: Priority.high, + ); + + var iOSPlatformChannelSpecifics = const DarwinNotificationDetails(); + var platformChannelSpecifics = NotificationDetails( + android: androidPlatformChannelSpecifics, + iOS: iOSPlatformChannelSpecifics); + await flutterLocalNotificationsPlugin.show( + id, + title, + body, + platformChannelSpecifics, + payload: payload, + ); + } +} diff --git a/lib/services/my_socket_io_client.dart b/lib/services/my_socket_io_client.dart new file mode 100644 index 0000000..e088ece --- /dev/null +++ b/lib/services/my_socket_io_client.dart @@ -0,0 +1,59 @@ +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:socket_io_client/socket_io_client.dart'; + +import '../app/app.logger.dart'; + +class MySocketIoClient { + final log = getLogger('MySocketIoClient'); + final String _url = dotenv.env['url']!; + String ultrasonic1 = '...'; + String ultrasonic2 = '...'; + String ph1 = '...'; + String ph2 = '...'; + String ph3 = '...'; + String tds1 = '...'; + String tds2 = '...'; + String tds3 = '...'; + String status = '...'; + static final MySocketIoClient _instance = MySocketIoClient._internal(); + factory MySocketIoClient() => _instance; + MySocketIoClient._internal(); + + int notif = 0; + + late Socket _socket; + Socket get socket => _socket; + + Future init() async { + try { + _socket = io(_url, { + 'transports': ['websocket'], + 'autoConnect': false, + }); + _socket.connect(); + log.i('socket connected'); + } catch (e) { + log.e('error : $e'); + } + } + + Future emit(String event, dynamic data) async { + _socket.emit(event, data); + } + + Future on(String event, Function(dynamic) callback) async { + _socket.on(event, callback); + } + + Future off(String event) async { + _socket.off(event); + } + + Future disconnect() async { + _socket.disconnect(); + } + + Future connect() async { + _socket.connect(); + } +} diff --git a/lib/services/other_function.dart b/lib/services/other_function.dart new file mode 100644 index 0000000..6f0df75 --- /dev/null +++ b/lib/services/other_function.dart @@ -0,0 +1,145 @@ +import 'package:intl/intl.dart'; + +class OtherFunction { + int umur(String tanggalLahir) { + // change tanggalLahir to DateTime + DateTime date = DateTime.parse(tanggalLahir); + // get current date + DateTime now = DateTime.now(); + // get difference in year + int year = now.year - date.year; + return year; + } + + String commaFormat(int number) { + final formatter = NumberFormat('#,###'); + return formatter.format(number); + } + + String changeMonth(String month) { + switch (month) { + case 'Januari': + return '01'; + case 'Februari': + return '02'; + case 'Maret': + return '03'; + case 'April': + return '04'; + case 'Mei': + return '05'; + case 'Juni': + return '06'; + case 'Juli': + return '07'; + case 'Agustus': + return '08'; + case 'September': + return '09'; + case 'Oktober': + return '10'; + case 'November': + return '11'; + case 'Desember': + return '12'; + default: + return ''; + } + } + + String changeMonthYear(String s) { + // get the last 2 digits + String month = s.substring(s.length - 2); + // get the first 4 digits + String year = s.substring(0, 4); + // return the month and year + switch (month) { + case '01': + return 'Januari $year'; + case '02': + return 'Februari $year'; + case '03': + return 'Maret $year'; + case '04': + return 'April $year'; + case '05': + return 'Mei $year'; + case '06': + return 'Juni $year'; + case '07': + return 'Juli $year'; + case '08': + return 'Agustus $year'; + case '09': + return 'September $year'; + case '10': + return 'Oktober $year'; + case '11': + return 'November $year'; + case '12': + return 'Desember $year'; + default: + return ''; + } + } + + String getDayOfWeek(String date) { + DateTime dateTime = DateTime.parse(date); + List daysOfWeek = [ + 'Senin', + 'Selasa', + 'Rabu', + 'Kamis', + 'Jumat', + 'Sabtu', + 'Minggu' + ]; + return daysOfWeek[dateTime.weekday - 1]; + } + + String formatDateString(String dateString) { + // Remove the "T" and replace it with " | " + String formattedString = dateString.replaceAll('T', '\n'); + + // Remove the ".000Z" + formattedString = formattedString.replaceAll('.000Z', ''); + + // Parse the input string to DateTime object + DateTime dateTime = DateTime.parse(dateString); + + // Get the day of the week in Indonesian + String dayOfWeek = DateFormat.EEEE('id_ID').format(dateTime); + + // Add the day of the week to the formatted string + formattedString = '$formattedString\n$dayOfWeek'; + + return formattedString; + } + + String formatDateString2(String dateString) { + DateTime dateTime = DateTime.parse(dateString); + + // Adjust for the timezone if needed (this example assumes UTC) + dateTime = dateTime.toLocal(); + + // Format the DateTime object to match your database format + String dbDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(dateTime); + + return dbDate; + } + + String timeNameRemover(String time) { + List parts = time.split(' '); + String timePart = parts[0]; + + // Split the time part into hours, minutes, and seconds + List timeComponents = timePart.split(':'); + String hours = timeComponents[0]; + String minutes = timeComponents[1]; + + // Create the new time string without seconds and with a period instead of a colon + String newTimeStr = '$hours.$minutes'; + + return newTimeStr; + } +} diff --git a/lib/ui/views/nav_bar/log_data/log_data_view.dart b/lib/ui/views/nav_bar/log_data/log_data_view.dart new file mode 100644 index 0000000..8f08364 --- /dev/null +++ b/lib/ui/views/nav_bar/log_data/log_data_view.dart @@ -0,0 +1,314 @@ +import 'package:flutter/material.dart'; +import 'package:stacked/stacked.dart'; + +import '../../../../app/themes/app_text.dart'; +import './log_data_view_model.dart'; + +class LogDataView extends StatelessWidget { + const LogDataView({super.key}); + + @override + Widget build(BuildContext context) { + return ViewModelBuilder.reactive( + viewModelBuilder: () => LogDataViewModel(), + onViewModelReady: (LogDataViewModel model) async { + await model.init(); + }, + builder: ( + BuildContext context, + LogDataViewModel model, + Widget? child, + ) { + return Scaffold( + body: Padding( + padding: const EdgeInsets.all(30), + child: model.isBusy + ? const Center(child: CircularProgressIndicator()) + : SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Center( + child: Image( + image: AssetImage("assets/logo.png"), + width: 50, + height: 50, + ), + ), + const SizedBox(height: 20), + Text( + " Log Data Tambak", + style: boldTextStyle.copyWith( + fontSize: 15, + ), + ), + const SizedBox(height: 5), + Table( + border: TableBorder.all(), + children: [ + // Header Row + TableRow( + children: [ + TableCell( + child: Center( + child: Text( + 'Waktu', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Center( + child: Text( + 'Ph 1', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Center( + child: Text( + 'Ph 2', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Padding( + padding: const EdgeInsets.only(left: 5), + child: Text( + 'Ketinggian Air', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + TableCell( + child: Center( + child: Text( + 'TDS 1', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Center( + child: Text( + 'TDS 2', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + ], + ), + // Data Rows + for (var i = 0; i < model.listData.length; i++) + TableRow( + children: [ + TableCell( + child: Center( + child: Text( + model.otherFunction.formatDateString2( + model.listData[i]['waktu'] + .toString()), + style: regularTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + TableCell( + child: Center( + child: Text( + model.listData[i]['ph1'].toString(), + style: regularTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Center( + child: Text( + model.listData[i]['ph2'].toString(), + style: regularTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Padding( + padding: const EdgeInsets.only(left: 5), + child: Text( + "${model.listData[i]['ultrasonic1']} cm", + style: regularTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + TableCell( + child: Center( + child: Text( + "${model.listData[i]['tds1']} ppm", + style: regularTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + TableCell( + child: Center( + child: Text( + "${model.listData[i]['tds2']} ppm", + style: regularTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + ], + ), + ], + ), + const SizedBox(height: 10), + const Divider(thickness: 1), + const SizedBox(height: 10), + Text( + " Log Data Saluran Air", + style: boldTextStyle.copyWith( + fontSize: 15, + ), + ), + const SizedBox(height: 5), + Table( + border: TableBorder.all(), + children: [ + // Header Row + TableRow( + children: [ + TableCell( + child: Center( + child: Text( + 'Waktu', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Center( + child: Text( + 'Ph', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Padding( + padding: const EdgeInsets.only(left: 5), + child: Text( + 'Ketinggian Air', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Center( + child: Text( + 'Salinitas', + style: boldTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + ], + ), + // Data Rows + for (var i = 0; i < model.listData.length; i++) + TableRow( + children: [ + TableCell( + child: Center( + child: Text( + model.otherFunction.formatDateString2( + model.listData[i]['waktu'] + .toString()), + style: regularTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + TableCell( + child: Center( + child: Text( + model.listData[i]['ph3'].toString(), + style: regularTextStyle.copyWith( + fontSize: 11, + ), + ), + ), + ), + TableCell( + child: Padding( + padding: const EdgeInsets.only(left: 5), + child: Text( + "${model.listData[i]['ultrasonic1']} cm", + style: regularTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + TableCell( + child: Center( + child: Text( + "${model.listData[i]['tds1']} ppm", + style: regularTextStyle.copyWith( + fontSize: 11, + ), + textAlign: TextAlign.center, + ), + ), + ), + ], + ), + ], + ) + ], + ), + ), + ), + ); + }, + ); + } +} diff --git a/lib/ui/views/nav_bar/log_data/log_data_view_model.dart b/lib/ui/views/nav_bar/log_data/log_data_view_model.dart new file mode 100644 index 0000000..cca2ab7 --- /dev/null +++ b/lib/ui/views/nav_bar/log_data/log_data_view_model.dart @@ -0,0 +1,26 @@ +import '../../../../app/app.logger.dart'; +import '../../../../app/core/custom_base_view_model.dart'; + +class LogDataViewModel extends CustomBaseViewModel { + final log = getLogger('LogDataViewModel'); + List listData = []; + + Future init() async { + await getData(); + } + + getData() async { + setBusy(true); + try { + var response = await httpService.get(''); + var data = response.data; + listData = data; + log.i(data); + notifyListeners(); + } catch (e) { + log.e(e); + } finally { + setBusy(false); + } + } +} diff --git a/lib/ui/views/nav_bar/monitoring/monitoring_view.dart b/lib/ui/views/nav_bar/monitoring/monitoring_view.dart new file mode 100644 index 0000000..ad1716b --- /dev/null +++ b/lib/ui/views/nav_bar/monitoring/monitoring_view.dart @@ -0,0 +1,193 @@ +import 'package:flutter/material.dart'; +import 'package:stacked/stacked.dart'; +import 'package:tambak_app/ui/widgets/my_button.dart'; + +import '../../../../app/themes/app_colors.dart'; +import '../../../../app/themes/app_text.dart'; +import './monitoring_view_model.dart'; + +class MonitoringView extends StatelessWidget { + const MonitoringView({super.key}); + + @override + Widget build(BuildContext context) { + return ViewModelBuilder.reactive( + viewModelBuilder: () => MonitoringViewModel(), + onViewModelReady: (MonitoringViewModel model) async { + await model.init(); + }, + builder: ( + BuildContext context, + MonitoringViewModel model, + Widget? child, + ) { + return Padding( + padding: const EdgeInsets.all(20), + child: Scaffold( + body: Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + "Monitoring Tambak App", + style: boldTextStyle.copyWith(fontSize: 25), + ), + const SizedBox(height: 20), + const Image( + image: AssetImage("assets/logo.png"), + width: 125, + height: 125, + ), + const SizedBox(height: 20), + Container( + padding: const EdgeInsets.all(15), + width: double.infinity, + decoration: BoxDecoration( + color: mainColor, + borderRadius: BorderRadius.circular(10), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Dalam Tambak", + style: boldTextStyle, + ), + _ChildText( + title: "Ketinggian Air", + text: "${model.socketIoClient.ultrasonic1} cm", + ), + _ChildText( + title: "Ph 1", + text: model.socketIoClient.ph1, + ), + _ChildText( + title: "Ph 2", + text: model.socketIoClient.ph2, + ), + _ChildText( + title: "TDS 1", + text: "${model.socketIoClient.tds1} ppm", + ), + _ChildText( + title: "TDS 2", + text: "${model.socketIoClient.tds2} ppm", + ), + ], + ), + ), + const SizedBox(height: 20), + Container( + padding: const EdgeInsets.all(15), + width: double.infinity, + decoration: BoxDecoration( + color: mainColor, + borderRadius: BorderRadius.circular(10), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Saluran Air", + style: boldTextStyle, + ), + _ChildText( + title: "Ketinggian Air", + text: "${model.socketIoClient.ultrasonic2} cm", + ), + _ChildText( + title: "Ph", + text: model.socketIoClient.ph3, + ), + _ChildText( + title: "TDS", + text: "${model.socketIoClient.tds3} ppm", + ), + ], + ), + ), + const SizedBox(height: 20), + Container( + padding: const EdgeInsets.all(15), + width: double.infinity, + decoration: BoxDecoration( + color: mainColor, + borderRadius: BorderRadius.circular(10), + ), + child: RichText( + text: TextSpan( + children: [ + const TextSpan( + text: "Status Gerbang: ", + style: regularTextStyle, + ), + TextSpan( + text: model.socketIoClient.status == "buka" + ? "Terbuka" + : model.socketIoClient.status == "tutup" + ? "Tertutup" + : "Idle", + style: boldTextStyle, + ), + ], + ), + )), + const SizedBox(height: 20), + SizedBox( + width: 250, + child: MyButton( + text: model.isBusy + ? "Loading..." + : model.socketIoClient.status == "buka" + ? "Tutup Gerbang" + : "Buka Gerbang", + onPressed: () { + if (model.isBusy) { + return; + } + model.changeStatus(); + }, + ), + ), + ], + ), + ), + ), + ); + }, + ); + } +} + +class _ChildText extends StatelessWidget { + const _ChildText({ + required this.title, + required this.text, + }); + + final String title; + final String text; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only(top: 10), + child: RichText( + text: TextSpan( + children: [ + TextSpan( + text: "$title: ", + style: regularTextStyle, + ), + TextSpan( + text: text, + style: italicTextStyle, + ), + ], + ), + ), + ); + } +} diff --git a/lib/ui/views/nav_bar/monitoring/monitoring_view_model.dart b/lib/ui/views/nav_bar/monitoring/monitoring_view_model.dart new file mode 100644 index 0000000..b61b0be --- /dev/null +++ b/lib/ui/views/nav_bar/monitoring/monitoring_view_model.dart @@ -0,0 +1,27 @@ +import 'package:dio/dio.dart'; + +import '../../../../app/app.logger.dart'; +import '../../../../app/core/custom_base_view_model.dart'; + +class MonitoringViewModel extends CustomBaseViewModel { + final log = getLogger('MonitoringViewModel'); + Future init() async { + while (true) { + notifyListeners(); + await Future.delayed(const Duration(seconds: 1)); + } + } + + changeStatus() async { + setBusy(true); + try { + var response = await httpService.postWithFormData("gerbang", FormData()); + var data = response.data; + log.i(data); + } catch (e) { + log.e(e); + } finally { + setBusy(false); + } + } +} diff --git a/lib/ui/views/nav_bar/nav_bar_view.dart b/lib/ui/views/nav_bar/nav_bar_view.dart new file mode 100644 index 0000000..d8af648 --- /dev/null +++ b/lib/ui/views/nav_bar/nav_bar_view.dart @@ -0,0 +1,83 @@ +import 'package:flutter/material.dart'; +import 'package:stacked/stacked.dart'; +import 'package:stacked_services/stacked_services.dart'; +import 'package:stylish_bottom_bar/stylish_bottom_bar.dart'; + +import '../../../app/app.router.dart'; +import '../../../app/themes/app_colors.dart'; +import '../../../app/themes/app_text.dart'; +import './nav_bar_view_model.dart'; + +class NavBarView extends StatelessWidget { + const NavBarView({super.key}); + + @override + Widget build(BuildContext context) { + return ViewModelBuilder.reactive( + viewModelBuilder: () => NavBarViewModel(), + onViewModelReady: (NavBarViewModel model) async { + await model.init(); + }, + builder: ( + BuildContext context, + NavBarViewModel model, + Widget? child, + ) { + return WillPopScope( + onWillPop: () async { + return false; + }, + child: Scaffold( + appBar: AppBar( + backgroundColor: mainColor, + title: Text( + model.bottomNavBarList[model.currentIndex]['name'], + style: boldTextStyle, + ), + ), + body: ExtendedNavigator( + navigatorKey: StackedService.nestedNavigationKey(3), + router: NavBarViewRouter(), + initialRoute: NavBarViewRoutes.monitoringView, + ), + bottomNavigationBar: StylishBottomBar( + items: [ + for (var item in model.bottomNavBarList) + BottomBarItem( + icon: Icon(item['icon'], + color: model.currentIndex == + model.bottomNavBarList.indexOf(item) + ? sixthGrey + : backgroundColor), + title: Text( + item['name'], + style: regularTextStyle.copyWith( + color: model.currentIndex == + model.bottomNavBarList.indexOf(item) + ? sixthGrey + : mainGrey, + ), + ), + backgroundColor: model.currentIndex == + model.bottomNavBarList.indexOf(item) + ? fontColor + : mainGrey, + ), + ], + currentIndex: model.currentIndex, + hasNotch: true, + backgroundColor: mainColor, + onTap: (value) { + model.handleNavigation(value); + }, + option: BubbleBarOptions( + barStyle: BubbleBarStyle.horizontal, + bubbleFillStyle: BubbleFillStyle.fill, + opacity: 0.3), + ), + ), + ); + }, + ); + } +} diff --git a/lib/ui/views/nav_bar/nav_bar_view_model.dart b/lib/ui/views/nav_bar/nav_bar_view_model.dart new file mode 100644 index 0000000..2644c1d --- /dev/null +++ b/lib/ui/views/nav_bar/nav_bar_view_model.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; +import 'package:stacked/stacked.dart'; +import 'package:stacked_services/stacked_services.dart'; + +import '../../../app/app.locator.dart'; +import '../../../app/app.logger.dart'; +import '../../../app/app.router.dart'; + +class NavBarViewModel extends IndexTrackingViewModel { + final log = getLogger('NavBarViewModel'); + final _navigationService = locator(); + + final _bottomNavBarList = [ + { + 'name': 'Real Time', + 'icon': Icons.home_outlined, + }, + { + 'name': 'Log Data', + 'icon': Icons.list_alt_outlined, + }, + ]; + + List> get bottomNavBarList => _bottomNavBarList; + + final List _views = [ + NavBarViewRoutes.monitoringView, + NavBarViewRoutes.logDataView, + ]; + + Future init() async {} + + void handleNavigation(int index) { + log.d("handleNavigation: $index"); + log.d("currentIndex: $currentIndex"); + + if (currentIndex == index) return; + + setIndex(index); + // header = _bottomNavBarList[index]['header'] as String; + _navigationService.navigateTo( + _views[index], + id: 3, + ); + } +} diff --git a/lib/ui/views/splash_screen/splash_screen_view.dart b/lib/ui/views/splash_screen/splash_screen_view.dart new file mode 100644 index 0000000..5b06606 --- /dev/null +++ b/lib/ui/views/splash_screen/splash_screen_view.dart @@ -0,0 +1,61 @@ +import 'package:flutter/material.dart'; +import 'package:stacked/stacked.dart'; + +import '../../../app/themes/app_text.dart'; +import './splash_screen_view_model.dart'; + +class SplashScreenView extends StatelessWidget { + const SplashScreenView({super.key}); + + @override + Widget build(BuildContext context) { + return ViewModelBuilder.nonReactive( + viewModelBuilder: () => SplashScreenViewModel(), + onViewModelReady: (SplashScreenViewModel model) async { + await model.init(); + }, + builder: ( + BuildContext context, + SplashScreenViewModel model, + Widget? child, + ) { + return Scaffold( + // backgroundColor: mainColor, + body: Column( + children: [ + const SizedBox(), + Expanded( + child: Center( + // show the logo.png + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Image( + image: AssetImage("assets/logo.png"), + width: 200, + height: 200, + ), + const SizedBox(height: 10), + Text( + "Monitoring Tambak App", + style: boldTextStyle.copyWith( + fontSize: 20, + ), + ) + ], + ), + ), + ), + const Text( + "Made with Flutter and Passion By Kk", + textAlign: TextAlign.center, + style: regularTextStyle, + ), + const SizedBox(height: 15), + ], + ), + ); + }, + ); + } +} diff --git a/lib/ui/views/splash_screen/splash_screen_view_model.dart b/lib/ui/views/splash_screen/splash_screen_view_model.dart new file mode 100644 index 0000000..67f0960 --- /dev/null +++ b/lib/ui/views/splash_screen/splash_screen_view_model.dart @@ -0,0 +1,40 @@ +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; + +import '../../../app/app.logger.dart'; +import '../../../app/app.router.dart'; +import '../../../app/core/custom_base_view_model.dart'; +import '../../../services/my_notification.dart'; + +final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = + FlutterLocalNotificationsPlugin(); + +class SplashScreenViewModel extends CustomBaseViewModel { + final log = getLogger('SplashScreenViewModel'); + Future init() async { + await Future.delayed(const Duration(seconds: 3)); + // navigate to login page + // ignore: use_build_context_synchronously + MyNotification.initialize(flutterLocalNotificationsPlugin); + socketIoClient.init(); + // socketIoClient.connect(); + socketIoClient.on('data', (data) { + String value = data["value"]; + List list = value.split(','); + String status = data["status"]; + // log.wtf('value: $value'); + // log.wtf('status: $status'); + socketIoClient.ultrasonic1 = list[1]; + socketIoClient.ultrasonic2 = list[2]; + socketIoClient.ph1 = list[3]; + socketIoClient.ph2 = list[4]; + socketIoClient.ph3 = list[5]; + socketIoClient.tds1 = list[6]; + socketIoClient.tds2 = list[6]; + socketIoClient.tds3 = list[6]; + socketIoClient.status = status; + notifyListeners(); + }); + + navigationService.replaceWith(Routes.navBarView); + } +} diff --git a/lib/ui/widgets/my_button.dart b/lib/ui/widgets/my_button.dart new file mode 100644 index 0000000..13fb767 --- /dev/null +++ b/lib/ui/widgets/my_button.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; + +import '../../app/themes/app_colors.dart'; + +class MyButton extends StatelessWidget { + const MyButton({ + Key? key, + required this.text, + this.onPressed, + }) : super(key: key); + + final String text; + final VoidCallback? onPressed; + + @override + Widget build(BuildContext context) { + return ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: mainColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + ), + onPressed: onPressed, + child: Text( + text, + style: const TextStyle( + color: backgroundColor, + fontSize: 18, + ), + ), + ); + } +} diff --git a/lib/ui/widgets/my_textformfield.dart b/lib/ui/widgets/my_textformfield.dart new file mode 100644 index 0000000..fe069bb --- /dev/null +++ b/lib/ui/widgets/my_textformfield.dart @@ -0,0 +1,91 @@ +import 'package:flutter/material.dart'; + +import '../../app/themes/app_colors.dart'; + +class MyTextFormField extends StatelessWidget { + const MyTextFormField({ + Key? key, + this.labelText, + this.hintText, + this.obscureText, + this.validator, + this.suffixIcon, + this.prefixIcon, + this.focusNode, + this.controller, + this.maxLines = 1, + this.onEditingComplete, + this.readOnly = false, + this.onTap, + this.keyboardType = TextInputType.text, + this.initialValue, + this.enabled = true, + this.maxLength, + }) : super(key: key); + + final String? labelText; + final String? hintText; + final bool? obscureText; + final FormFieldValidator? validator; + final Widget? suffixIcon; + final Widget? prefixIcon; + final FocusNode? focusNode; + final TextEditingController? controller; + final int maxLines; + final VoidCallback? onEditingComplete; + final bool readOnly; + final VoidCallback? onTap; + final TextInputType keyboardType; + final String? initialValue; + final bool enabled; + final int? maxLength; + + @override + Widget build(BuildContext context) { + return TextFormField( + maxLength: maxLength, + enabled: enabled, + initialValue: initialValue, + onEditingComplete: onEditingComplete, + maxLines: maxLines, + controller: controller, + focusNode: focusNode, + obscureText: obscureText ?? false, + readOnly: readOnly, + onTap: onTap, + keyboardType: keyboardType, + decoration: InputDecoration( + prefixIcon: prefixIcon, + suffixIcon: suffixIcon, + enabledBorder: const OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(25)), + borderSide: BorderSide( + color: mainColor, + ), + ), + focusedBorder: const OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(25)), + borderSide: BorderSide( + color: mainColor, + ), + ), + focusedErrorBorder: const OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(25)), + borderSide: BorderSide( + color: dangerColor, + ), + ), + errorBorder: const OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(25)), + borderSide: BorderSide( + color: dangerColor, + ), + ), + labelText: labelText, + hintText: hintText, + labelStyle: const TextStyle(color: fontColor), + ), + validator: validator, + ); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..8baf9bb --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,757 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a + url: "https://pub.dev" + source: hosted + version: "61.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 + url: "https://pub.dev" + source: hosted + version: "5.13.0" + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" + url: "https://pub.dev" + source: hosted + version: "4.0.1" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + url: "https://pub.dev" + source: hosted + version: "2.4.9" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" + url: "https://pub.dev" + source: hosted + version: "7.3.0" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + url: "https://pub.dev" + source: hosted + version: "4.10.0" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.dev" + source: hosted + version: "1.17.1" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.dev" + source: hosted + version: "1.0.6" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + dbus: + dependency: transitive + description: + name: dbus + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + url: "https://pub.dev" + source: hosted + version: "0.7.10" + dio: + dependency: "direct main" + description: + name: dio + sha256: "0dfb6b6a1979dac1c1245e17cef824d7b452ea29bd33d3467269f9bef3715fb0" + url: "https://pub.dev" + source: hosted + version: "5.6.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "36c5b2d79eb17cdae41e974b7a8284fec631651d2a6f39a8a2ff22327e90aeac" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_dotenv: + dependency: "direct main" + description: + name: flutter_dotenv + sha256: "9357883bdd153ab78cbf9ffa07656e336b8bbb2b5a3ca596b0b27e119f7c7d77" + url: "https://pub.dev" + source: hosted + version: "5.1.0" + flutter_easyloading: + dependency: "direct main" + description: + name: flutter_easyloading + sha256: ba21a3c883544e582f9cc455a4a0907556714e1e9cf0eababfcb600da191d17c + url: "https://pub.dev" + source: hosted + version: "3.0.5" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + sha256: c500d5d9e7e553f06b61877ca6b9c8b92c570a4c8db371038702e8ce57f8a50f + url: "https://pub.dev" + source: hosted + version: "17.2.2" + flutter_local_notifications_linux: + dependency: transitive + description: + name: flutter_local_notifications_linux + sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af + url: "https://pub.dev" + source: hosted + version: "4.0.1" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + sha256: "85f8d07fe708c1bdcf45037f2c0109753b26ae077e9d9e899d55971711a4ea66" + url: "https://pub.dev" + source: hosted + version: "7.2.0" + flutter_spinkit: + dependency: transitive + description: + name: flutter_spinkit + sha256: d2696eed13732831414595b98863260e33e8882fc069ee80ec35d4ac9ddb0472 + url: "https://pub.dev" + source: hosted + version: "5.2.1" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + get: + dependency: transitive + description: + name: get + sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a" + url: "https://pub.dev" + source: hosted + version: "4.6.5" + get_it: + dependency: transitive + description: + name: get_it + sha256: e6017ce7fdeaf218dc51a100344d8cb70134b80e28b760f8bb23c242437bafd7 + url: "https://pub.dev" + source: hosted + version: "7.6.7" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + graphs: + dependency: transitive + description: + name: graphs + sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" + source: hosted + version: "0.19.0" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + lints: + dependency: transitive + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + logger: + dependency: transitive + description: + name: logger + sha256: "7ad7215c15420a102ec687bb320a7312afd449bac63bfb1c60d9787c27b9767f" + url: "https://pub.dev" + source: hosted + version: "1.4.0" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.dev" + source: hosted + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + mime: + dependency: transitive + description: + name: mime + sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + url: "https://pub.dev" + source: hosted + version: "1.0.4" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" + source: hosted + version: "1.8.3" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + url: "https://pub.dev" + source: hosted + version: "5.4.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + recase: + dependency: transitive + description: + name: recase + sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 + url: "https://pub.dev" + source: hosted + version: "4.1.0" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + socket_io_client: + dependency: "direct main" + description: + name: socket_io_client + sha256: ede469f3e4c55e8528b4e023bdedbc20832e8811ab9b61679d1ba3ed5f01f23b + url: "https://pub.dev" + source: hosted + version: "2.0.3+1" + socket_io_common: + dependency: transitive + description: + name: socket_io_common + sha256: "2ab92f8ff3ebbd4b353bf4a98bee45cc157e3255464b2f90f66e09c4472047eb" + url: "https://pub.dev" + source: hosted + version: "2.0.3" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stacked: + dependency: "direct main" + description: + name: stacked + sha256: ed19ecdc2dcc682b9be9c7e34646e603c0f770437a914b15c7d2d13391c92a09 + url: "https://pub.dev" + source: hosted + version: "3.4.3" + stacked_generator: + dependency: "direct dev" + description: + name: stacked_generator + sha256: c141baf56cb7168dfde142d3578118c7bf914be9fb62bc8593344e97894ac8f9 + url: "https://pub.dev" + source: hosted + version: "1.5.1" + stacked_services: + dependency: "direct main" + description: + name: stacked_services + sha256: df2780a026fd1d3671aceaa9d7cae9e8d15d577c71ef29d7dd6f79a0a289e77e + url: "https://pub.dev" + source: hosted + version: "0.9.12" + stacked_shared: + dependency: transitive + description: + name: stacked_shared + sha256: "26e11dcfe23df81d565d0180eb5bcf4742efed066ba3328623b458f21a82b346" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + stylish_bottom_bar: + dependency: "direct main" + description: + name: stylish_bottom_bar + sha256: ca72557a5bd8f44caae9017eb3a73002e9189d7a9d2fac598fa55be13724f32b + url: "https://pub.dev" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.dev" + source: hosted + version: "0.5.1" + timezone: + dependency: transitive + description: + name: timezone + sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" + url: "https://pub.dev" + source: hosted + version: "0.9.4" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + url: "https://pub.dev" + source: hosted + version: "2.4.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" + xml: + dependency: transitive + description: + name: xml + sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" + url: "https://pub.dev" + source: hosted + version: "6.3.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.0.0 <4.0.0" + flutter: ">=3.10.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..44b349a --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,101 @@ +name: tambak_app +description: A new Flutter project. +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.0.0 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + stacked: ^3.0.1 + stacked_services: ^0.9.8 + flutter_dotenv: + dio: + intl: + flutter_easyloading: + stylish_bottom_bar: ^1.0.0 + socket_io_client: + flutter_local_notifications: + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + build_runner: + stacked_generator: + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - .env + - assets/logo.png + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..bf29fcb --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:tambak_app/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +}