From 8bead20406559742a04f3482fff36c41439a4709 Mon Sep 17 00:00:00 2001 From: Anthony Restaino Date: Mon, 28 Apr 2014 15:41:40 -0400 Subject: [PATCH] Updated to 3.1.0 Updated to new UI Added AdBlocker Added Google Search Suggestions Tons of other stuff --- AndroidManifest.xml | 75 +- BrowserActivity.apk | Bin 190620 -> 601958 bytes assets/baidu.png | Bin 0 -> 3454 bytes assets/bing.png | Bin 0 -> 12653 bytes assets/duckduckgo.png | Bin 0 -> 20503 bytes assets/google.png | Bin 0 -> 14022 bytes assets/hosts.txt | 18603 ++++++++++++++++ assets/lightning.png | Bin 0 -> 21059 bytes assets/startpage.png | Bin 0 -> 14291 bytes assets/yahoo.png | Bin 0 -> 45506 bytes assets/yandex.png | Bin 0 -> 18854 bytes ic_launcher.png | Bin 60844 -> 63084 bytes ic_launcher_small.png | Bin 12361 -> 12338 bytes proguard-project.txt | 69 - res/anim/down.xml | 8 - res/anim/left.xml | 10 - res/anim/right.xml | 10 - res/anim/rotate.xml | 10 - res/anim/slide_down.xml | 11 - res/anim/slide_up.xml | 11 - res/anim/up.xml | 8 - res/drawable-hdpi/action_search.png | Bin 0 -> 1764 bytes res/drawable-hdpi/back.png | Bin 417 -> 0 bytes res/drawable-hdpi/drawer_shadow.9.png | Bin 0 -> 171 bytes .../{exit.png => ic_action_back.png} | Bin res/drawable-hdpi/ic_action_back_dark.png | Bin 0 -> 198 bytes res/drawable-hdpi/ic_action_copy.png | Bin 0 -> 227 bytes .../{stop.png => ic_action_delete.png} | Bin .../{forward.png => ic_action_forward.png} | Bin res/drawable-hdpi/ic_action_forward_dark.png | Bin 0 -> 210 bytes res/drawable-hdpi/ic_action_incognito.png | Bin 0 -> 313 bytes res/drawable-hdpi/ic_bookmark.png | Bin 0 -> 634 bytes res/drawable-hdpi/ic_bookmark_dark.png | Bin 0 -> 554 bytes res/drawable-hdpi/ic_drawer.png | Bin 0 -> 2842 bytes res/drawable-hdpi/ic_history.png | Bin 0 -> 675 bytes res/drawable-hdpi/ic_history_dark.png | Bin 0 -> 610 bytes res/drawable-hdpi/ic_launcher.png | Bin 5116 -> 4555 bytes res/drawable-hdpi/ic_search.png | Bin 0 -> 688 bytes res/drawable-hdpi/ic_search_dark.png | Bin 0 -> 618 bytes res/drawable-hdpi/ic_stat_download.png | Bin 0 -> 254 bytes res/drawable-hdpi/ic_tab_number.png | Bin 0 -> 3202 bytes .../{webpage.png => ic_webpage.png} | Bin res/drawable-hdpi/loading.png | Bin 88 -> 0 bytes res/drawable-hdpi/new_tab.png | Bin 318 -> 0 bytes res/drawable-hdpi/options.png | Bin 181 -> 0 bytes res/drawable-hdpi/plus.png | Bin 177 -> 0 bytes res/drawable-hdpi/refresh.png | Bin 824 -> 0 bytes res/drawable-mdpi/action_search.png | Bin 0 -> 1394 bytes res/drawable-mdpi/back.png | Bin 300 -> 0 bytes res/drawable-mdpi/drawer_shadow.9.png | Bin 0 -> 158 bytes .../{exit.png => ic_action_back.png} | Bin res/drawable-mdpi/ic_action_back_dark.png | Bin 0 -> 157 bytes res/drawable-mdpi/ic_action_copy.png | Bin 0 -> 175 bytes .../{stop.png => ic_action_delete.png} | Bin .../{forward.png => ic_action_forward.png} | Bin res/drawable-mdpi/ic_action_forward_dark.png | Bin 0 -> 168 bytes res/drawable-mdpi/ic_action_incognito.png | Bin 0 -> 248 bytes res/drawable-mdpi/ic_bookmark.png | Bin 0 -> 439 bytes res/drawable-mdpi/ic_bookmark_dark.png | Bin 0 -> 379 bytes res/drawable-mdpi/ic_drawer.png | Bin 0 -> 2837 bytes res/drawable-mdpi/ic_history.png | Bin 0 -> 465 bytes res/drawable-mdpi/ic_history_dark.png | Bin 0 -> 409 bytes res/drawable-mdpi/ic_launcher.png | Bin 3093 -> 2699 bytes res/drawable-mdpi/ic_search.png | Bin 0 -> 482 bytes res/drawable-mdpi/ic_search_dark.png | Bin 0 -> 418 bytes res/drawable-mdpi/ic_stat_download.png | Bin 0 -> 199 bytes res/drawable-mdpi/ic_tab_number.png | Bin 0 -> 1992 bytes .../{webpage.png => ic_webpage.png} | Bin res/drawable-mdpi/loading.png | Bin 83 -> 0 bytes res/drawable-mdpi/new_tab.png | Bin 243 -> 0 bytes res/drawable-mdpi/options.png | Bin 154 -> 0 bytes res/drawable-mdpi/plus.png | Bin 161 -> 0 bytes res/drawable-mdpi/refresh.png | Bin 578 -> 0 bytes res/drawable-xhdpi/action_search.png | Bin 0 -> 2127 bytes res/drawable-xhdpi/back.png | Bin 559 -> 0 bytes res/drawable-xhdpi/bar.9.png | Bin 243 -> 0 bytes res/drawable-xhdpi/bg_inactive.9.png | Bin 976 -> 0 bytes res/drawable-xhdpi/bg_press.9.png | Bin 936 -> 0 bytes res/drawable-xhdpi/book.9.png | Bin 706 -> 0 bytes res/drawable-xhdpi/book_press.9.png | Bin 984 -> 0 bytes res/drawable-xhdpi/clearbg.9.png | Bin 191 -> 0 bytes res/drawable-xhdpi/drawer_shadow.9.png | Bin 0 -> 182 bytes res/drawable-xhdpi/edit_text_bg.9.png | Bin 0 -> 220 bytes .../{exit.png => ic_action_back.png} | Bin res/drawable-xhdpi/ic_action_back_dark.png | Bin 0 -> 229 bytes res/drawable-xhdpi/ic_action_copy.png | Bin 0 -> 252 bytes .../{stop.png => ic_action_delete.png} | Bin .../{forward.png => ic_action_forward.png} | Bin res/drawable-xhdpi/ic_action_forward_dark.png | Bin 0 -> 239 bytes res/drawable-xhdpi/ic_action_incognito.png | Bin 0 -> 401 bytes res/drawable-xhdpi/ic_bookmark.png | Bin 0 -> 813 bytes res/drawable-xhdpi/ic_bookmark_dark.png | Bin 0 -> 699 bytes res/drawable-xhdpi/ic_drawer.png | Bin 0 -> 1056 bytes res/drawable-xhdpi/ic_history.png | Bin 0 -> 943 bytes res/drawable-xhdpi/ic_history_dark.png | Bin 0 -> 836 bytes res/drawable-xhdpi/ic_launcher.png | Bin 7276 -> 6684 bytes res/drawable-xhdpi/ic_search.png | Bin 0 -> 902 bytes res/drawable-xhdpi/ic_search_dark.png | Bin 0 -> 782 bytes res/drawable-xhdpi/ic_stat_download.png | Bin 0 -> 319 bytes res/drawable-xhdpi/ic_tab_number.png | Bin 0 -> 4271 bytes .../{webpage.png => ic_webpage.png} | Bin res/drawable-xhdpi/incognito.png | Bin 486 -> 0 bytes res/drawable-xhdpi/line.9.png | Bin 167 -> 0 bytes res/drawable-xhdpi/loading.png | Bin 96 -> 0 bytes res/drawable-xhdpi/new_tab.png | Bin 456 -> 0 bytes res/drawable-xhdpi/options.png | Bin 193 -> 0 bytes res/drawable-xhdpi/progress_bar.9.png | Bin 176 -> 174 bytes res/drawable-xhdpi/refresh.png | Bin 1060 -> 0 bytes res/drawable-xhdpi/spinner.png | Bin 2557 -> 0 bytes res/drawable-xxhdpi/ic_bookmark.png | Bin 0 -> 1277 bytes res/drawable-xxhdpi/ic_bookmark_dark.png | Bin 0 -> 1126 bytes res/drawable-xxhdpi/ic_history.png | Bin 0 -> 1454 bytes res/drawable-xxhdpi/ic_history_dark.png | Bin 0 -> 1316 bytes res/drawable-xxhdpi/ic_launcher.png | Bin 11772 -> 11520 bytes res/drawable-xxhdpi/ic_search.png | Bin 0 -> 1384 bytes res/drawable-xxhdpi/ic_search_dark.png | Bin 0 -> 1246 bytes res/drawable-xxhdpi/ic_tab_number.png | Bin 0 -> 7128 bytes res/drawable-xxxhdpi/ic_launcher.png | Bin 18705 -> 17498 bytes res/drawable/blueback.xml | 5 - res/drawable/bookmark.xml | 5 - res/drawable/button.xml | 5 - res/drawable/card_bg.xml | 14 + res/drawable/ginger_animation.xml | 24 - res/drawable/ics_animation.xml | 26 - res/layout-large/activity_main.xml | 195 + res/layout-xlarge/activity_main.xml | 195 + res/layout/activity_main.xml | 343 +- res/layout/advanced_settings.xml | 647 +- res/layout/bookmark_list_item.xml | 32 + res/layout/drawer_list_item.xml | 27 + res/layout/license_activity.xml | 106 + res/layout/menu.xml | 44 - res/layout/menu_navigation.xml | 23 + res/layout/search.xml | 35 + res/layout/settings.xml | 683 +- res/layout/tab_list_item.xml | 50 + res/layout/two_line_autocomplete.xml | 65 +- res/layout/video_loading_progress.xml | 36 + res/menu-xlarge/incognito.xml | 26 + res/menu-xlarge/main.xml | 73 + res/menu/incognito.xml | 8 + res/menu/incognito_menu.xml | 8 - res/menu/main.xml | 28 + res/menu/menu.xml | 11 - res/values-de/strings.xml | 2 +- res/values-es/strings.xml | 19 +- res/values-fr/strings.xml | 14 +- res/values-it/strings.xml | 14 +- res/values-ru/strings.xml | 2 +- res/values-tr/strings.xml | 15 +- res/values-v11/styles.xml | 11 - res/values-v14/styles.xml | 12 - res/values-zh-rCN/strings.xml | 78 +- res/values-zh-rTW/strings.xml | 17 - res/values/attr.xml | 11 + res/values/colors.xml | 5 + res/values/strings.xml | 43 +- res/values/styles.xml | 38 +- .../barebones/activities/BrowserActivity.java | 2282 -- .../activities/IncognitoModeActivity.java | 2158 -- .../customwebview/CustomWebView.java | 311 - .../customwebview/IncognitoWebView.java | 305 - .../barebones/databases/DatabaseHandler.java | 147 - .../barebones/databases/HistoryItem.java | 57 - .../IncognitoChromeClient.java | 219 - .../IncognitoDownloadListener.java | 60 - .../IncognitoLongClickListener.java | 14 - .../IncognitoWebViewClient.java | 202 - .../utilities/BookmarkPageVariables.java | 24 - .../utilities/HistoryPageVariables.java | 19 - .../browser/barebones/utilities/Utils.java | 198 - .../webviewclasses/CustomChromeClient.java | 219 - .../CustomDownloadListener.java | 61 - .../webviewclasses/CustomWebViewClient.java | 202 - .../WebPageLongClickListener.java | 14 - src/acr/browser/lightning/AdBlock.java | 92 + .../AdvancedSettingsActivity.java | 386 +- .../lightning/BookmarkPageVariables.java | 13 + .../browser/lightning/BrowserActivity.java | 2388 ++ .../browser/lightning/BrowserController.java | 49 + src/acr/browser/lightning/ClickHandler.java | 31 + .../Constants.java} | 30 +- .../browser/lightning/DatabaseHandler.java | 199 + .../browser/lightning/DownloadHandler.java | 215 + .../browser/lightning/FetchMimeUrlType.java | 109 + src/acr/browser/lightning/HistoryItem.java | 101 + .../lightning/HistoryPageVariables.java | 13 + .../browser/lightning/HomepageVariables.java | 23 + .../browser/lightning/IncognitoActivity.java | 2254 ++ .../browser/lightning/LicenseActivity.java | 71 + .../lightning/LightningDownloadListener.java | 52 + src/acr/browser/lightning/LightningView.java | 921 + .../lightning/PreferenceConstants.java | 34 + src/acr/browser/lightning/SearchAdapter.java | 393 + .../SettingsActivity.java | 536 +- .../browser/lightning/SettingsController.java | 31 + .../SpaceTokenizer.java | 5 +- src/acr/browser/lightning/Utils.java | 149 + src/acr/browser/lightning/WebAddress.java | 169 + 199 files changed, 28546 insertions(+), 8020 deletions(-) create mode 100644 assets/baidu.png create mode 100644 assets/bing.png create mode 100644 assets/duckduckgo.png create mode 100644 assets/google.png create mode 100644 assets/hosts.txt create mode 100644 assets/lightning.png create mode 100644 assets/startpage.png create mode 100644 assets/yahoo.png create mode 100644 assets/yandex.png delete mode 100644 proguard-project.txt delete mode 100644 res/anim/down.xml delete mode 100644 res/anim/left.xml delete mode 100644 res/anim/right.xml delete mode 100644 res/anim/rotate.xml delete mode 100644 res/anim/slide_down.xml delete mode 100644 res/anim/slide_up.xml delete mode 100644 res/anim/up.xml create mode 100644 res/drawable-hdpi/action_search.png delete mode 100644 res/drawable-hdpi/back.png create mode 100644 res/drawable-hdpi/drawer_shadow.9.png rename res/drawable-hdpi/{exit.png => ic_action_back.png} (100%) create mode 100644 res/drawable-hdpi/ic_action_back_dark.png create mode 100644 res/drawable-hdpi/ic_action_copy.png rename res/drawable-hdpi/{stop.png => ic_action_delete.png} (100%) rename res/drawable-hdpi/{forward.png => ic_action_forward.png} (100%) create mode 100644 res/drawable-hdpi/ic_action_forward_dark.png create mode 100644 res/drawable-hdpi/ic_action_incognito.png create mode 100644 res/drawable-hdpi/ic_bookmark.png create mode 100644 res/drawable-hdpi/ic_bookmark_dark.png create mode 100644 res/drawable-hdpi/ic_drawer.png create mode 100644 res/drawable-hdpi/ic_history.png create mode 100644 res/drawable-hdpi/ic_history_dark.png create mode 100644 res/drawable-hdpi/ic_search.png create mode 100644 res/drawable-hdpi/ic_search_dark.png create mode 100644 res/drawable-hdpi/ic_stat_download.png create mode 100644 res/drawable-hdpi/ic_tab_number.png rename res/drawable-hdpi/{webpage.png => ic_webpage.png} (100%) delete mode 100644 res/drawable-hdpi/loading.png delete mode 100644 res/drawable-hdpi/new_tab.png delete mode 100644 res/drawable-hdpi/options.png delete mode 100644 res/drawable-hdpi/plus.png delete mode 100644 res/drawable-hdpi/refresh.png create mode 100644 res/drawable-mdpi/action_search.png delete mode 100644 res/drawable-mdpi/back.png create mode 100644 res/drawable-mdpi/drawer_shadow.9.png rename res/drawable-mdpi/{exit.png => ic_action_back.png} (100%) create mode 100644 res/drawable-mdpi/ic_action_back_dark.png create mode 100644 res/drawable-mdpi/ic_action_copy.png rename res/drawable-mdpi/{stop.png => ic_action_delete.png} (100%) rename res/drawable-mdpi/{forward.png => ic_action_forward.png} (100%) create mode 100644 res/drawable-mdpi/ic_action_forward_dark.png create mode 100644 res/drawable-mdpi/ic_action_incognito.png create mode 100644 res/drawable-mdpi/ic_bookmark.png create mode 100644 res/drawable-mdpi/ic_bookmark_dark.png create mode 100644 res/drawable-mdpi/ic_drawer.png create mode 100644 res/drawable-mdpi/ic_history.png create mode 100644 res/drawable-mdpi/ic_history_dark.png create mode 100644 res/drawable-mdpi/ic_search.png create mode 100644 res/drawable-mdpi/ic_search_dark.png create mode 100644 res/drawable-mdpi/ic_stat_download.png create mode 100644 res/drawable-mdpi/ic_tab_number.png rename res/drawable-mdpi/{webpage.png => ic_webpage.png} (100%) delete mode 100644 res/drawable-mdpi/loading.png delete mode 100644 res/drawable-mdpi/new_tab.png delete mode 100644 res/drawable-mdpi/options.png delete mode 100644 res/drawable-mdpi/plus.png delete mode 100644 res/drawable-mdpi/refresh.png create mode 100644 res/drawable-xhdpi/action_search.png delete mode 100644 res/drawable-xhdpi/back.png delete mode 100644 res/drawable-xhdpi/bar.9.png delete mode 100644 res/drawable-xhdpi/bg_inactive.9.png delete mode 100644 res/drawable-xhdpi/bg_press.9.png delete mode 100644 res/drawable-xhdpi/book.9.png delete mode 100644 res/drawable-xhdpi/book_press.9.png delete mode 100644 res/drawable-xhdpi/clearbg.9.png create mode 100644 res/drawable-xhdpi/drawer_shadow.9.png create mode 100644 res/drawable-xhdpi/edit_text_bg.9.png rename res/drawable-xhdpi/{exit.png => ic_action_back.png} (100%) create mode 100644 res/drawable-xhdpi/ic_action_back_dark.png create mode 100644 res/drawable-xhdpi/ic_action_copy.png rename res/drawable-xhdpi/{stop.png => ic_action_delete.png} (100%) rename res/drawable-xhdpi/{forward.png => ic_action_forward.png} (100%) create mode 100644 res/drawable-xhdpi/ic_action_forward_dark.png create mode 100644 res/drawable-xhdpi/ic_action_incognito.png create mode 100644 res/drawable-xhdpi/ic_bookmark.png create mode 100644 res/drawable-xhdpi/ic_bookmark_dark.png create mode 100644 res/drawable-xhdpi/ic_drawer.png create mode 100644 res/drawable-xhdpi/ic_history.png create mode 100644 res/drawable-xhdpi/ic_history_dark.png create mode 100644 res/drawable-xhdpi/ic_search.png create mode 100644 res/drawable-xhdpi/ic_search_dark.png create mode 100644 res/drawable-xhdpi/ic_stat_download.png create mode 100644 res/drawable-xhdpi/ic_tab_number.png rename res/drawable-xhdpi/{webpage.png => ic_webpage.png} (100%) delete mode 100644 res/drawable-xhdpi/incognito.png delete mode 100644 res/drawable-xhdpi/line.9.png delete mode 100644 res/drawable-xhdpi/loading.png delete mode 100644 res/drawable-xhdpi/new_tab.png delete mode 100644 res/drawable-xhdpi/options.png delete mode 100644 res/drawable-xhdpi/refresh.png delete mode 100644 res/drawable-xhdpi/spinner.png create mode 100644 res/drawable-xxhdpi/ic_bookmark.png create mode 100644 res/drawable-xxhdpi/ic_bookmark_dark.png create mode 100644 res/drawable-xxhdpi/ic_history.png create mode 100644 res/drawable-xxhdpi/ic_history_dark.png create mode 100644 res/drawable-xxhdpi/ic_search.png create mode 100644 res/drawable-xxhdpi/ic_search_dark.png create mode 100644 res/drawable-xxhdpi/ic_tab_number.png delete mode 100644 res/drawable/blueback.xml delete mode 100644 res/drawable/bookmark.xml delete mode 100644 res/drawable/button.xml create mode 100644 res/drawable/card_bg.xml delete mode 100644 res/drawable/ginger_animation.xml delete mode 100644 res/drawable/ics_animation.xml create mode 100644 res/layout-large/activity_main.xml create mode 100644 res/layout-xlarge/activity_main.xml create mode 100644 res/layout/bookmark_list_item.xml create mode 100644 res/layout/drawer_list_item.xml create mode 100644 res/layout/license_activity.xml delete mode 100644 res/layout/menu.xml create mode 100644 res/layout/menu_navigation.xml create mode 100644 res/layout/search.xml create mode 100644 res/layout/tab_list_item.xml create mode 100644 res/layout/video_loading_progress.xml create mode 100644 res/menu-xlarge/incognito.xml create mode 100644 res/menu-xlarge/main.xml create mode 100644 res/menu/incognito.xml delete mode 100644 res/menu/incognito_menu.xml create mode 100644 res/menu/main.xml delete mode 100644 res/menu/menu.xml delete mode 100644 res/values-v11/styles.xml delete mode 100644 res/values-v14/styles.xml create mode 100644 res/values/attr.xml delete mode 100644 src/acr/browser/barebones/activities/BrowserActivity.java delete mode 100644 src/acr/browser/barebones/activities/IncognitoModeActivity.java delete mode 100644 src/acr/browser/barebones/customwebview/CustomWebView.java delete mode 100644 src/acr/browser/barebones/customwebview/IncognitoWebView.java delete mode 100644 src/acr/browser/barebones/databases/DatabaseHandler.java delete mode 100644 src/acr/browser/barebones/databases/HistoryItem.java delete mode 100644 src/acr/browser/barebones/incognitoclasses/IncognitoChromeClient.java delete mode 100644 src/acr/browser/barebones/incognitoclasses/IncognitoDownloadListener.java delete mode 100644 src/acr/browser/barebones/incognitoclasses/IncognitoLongClickListener.java delete mode 100644 src/acr/browser/barebones/incognitoclasses/IncognitoWebViewClient.java delete mode 100644 src/acr/browser/barebones/utilities/BookmarkPageVariables.java delete mode 100644 src/acr/browser/barebones/utilities/HistoryPageVariables.java delete mode 100644 src/acr/browser/barebones/utilities/Utils.java delete mode 100644 src/acr/browser/barebones/webviewclasses/CustomChromeClient.java delete mode 100644 src/acr/browser/barebones/webviewclasses/CustomDownloadListener.java delete mode 100644 src/acr/browser/barebones/webviewclasses/CustomWebViewClient.java delete mode 100644 src/acr/browser/barebones/webviewclasses/WebPageLongClickListener.java create mode 100644 src/acr/browser/lightning/AdBlock.java rename src/acr/browser/{barebones/activities => lightning}/AdvancedSettingsActivity.java (61%) create mode 100644 src/acr/browser/lightning/BookmarkPageVariables.java create mode 100644 src/acr/browser/lightning/BrowserActivity.java create mode 100644 src/acr/browser/lightning/BrowserController.java create mode 100644 src/acr/browser/lightning/ClickHandler.java rename src/acr/browser/{barebones/utilities/FinalVariables.java => lightning/Constants.java} (61%) create mode 100644 src/acr/browser/lightning/DatabaseHandler.java create mode 100644 src/acr/browser/lightning/DownloadHandler.java create mode 100644 src/acr/browser/lightning/FetchMimeUrlType.java create mode 100644 src/acr/browser/lightning/HistoryItem.java create mode 100644 src/acr/browser/lightning/HistoryPageVariables.java create mode 100644 src/acr/browser/lightning/HomepageVariables.java create mode 100644 src/acr/browser/lightning/IncognitoActivity.java create mode 100644 src/acr/browser/lightning/LicenseActivity.java create mode 100644 src/acr/browser/lightning/LightningDownloadListener.java create mode 100644 src/acr/browser/lightning/LightningView.java create mode 100644 src/acr/browser/lightning/PreferenceConstants.java create mode 100644 src/acr/browser/lightning/SearchAdapter.java rename src/acr/browser/{barebones/activities => lightning}/SettingsActivity.java (56%) create mode 100644 src/acr/browser/lightning/SettingsController.java rename src/acr/browser/{barebones/databases => lightning}/SpaceTokenizer.java (93%) create mode 100644 src/acr/browser/lightning/Utils.java create mode 100644 src/acr/browser/lightning/WebAddress.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9b9b646..3038765 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,19 +1,20 @@ - + - + + + - - + + + + android:label="@string/app_name" > + android:launchMode="singleTask" + android:theme="@style/LightTheme" > @@ -59,11 +64,6 @@ @@ -103,37 +103,52 @@ + android:label="@string/settings" + android:theme="@style/LightTheme" > - + + android:label="@string/advanced" + android:theme="@style/LightTheme" > - + + android:label="@string/app_name" + android:launchMode="singleTask" + android:theme="@style/DarkTheme" + android:windowSoftInputMode="stateHidden" > - + + + + + + + + - + \ No newline at end of file diff --git a/BrowserActivity.apk b/BrowserActivity.apk index cddba4a1b4068cadce07ebfb8d73a589095f88c5..2d9b4f5009f970b66bb51473530d0fd54ccd63fb 100644 GIT binary patch literal 601958 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
Bh^zNcH9}{~A_IP#j_xHJf?(8#r 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
  • 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�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 @|jl9-8>ha4pp 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

    >C()En zyTJ7S>$LwnblQi~|D;a4$o=qi+65naD4q68e@yALJ95#l)oF)0n(MTq+~w%B52Bem z?GOE!(o0WCIzlf!rIXM|&!U++?T;TM?J1tLr_fBD_Gf?0+<&gj*ndvfX@BKMN2guL zJK}6uyve)nNAFv^q8{J<(a}?%K-2ZqC(x9h`UKimPaQ&CJ@p1j=&4VV()H9o`|;Q7 zsY4yPdg{)b!@GWT&SJ);={EoTWBS|3PWpsyDA?b=|LGbv^#dYLB{x)%N^v zR@>`p)(E`lEb~tSwL!ES~sH&1v!SQ(up*m81w zy8@`Go=;KUE7wD$CW@uVC06vWkjJHYCZ7TPw!Z=Vh8sE`e375TyOP)sf7v767OZKw zmX&G6B&Kx-J{4-C5o)99DrQZFmT&kg%U3Y}ggG~F6vv)T;tfzwqgE@$L!h1-=Ck@~ z*Fs&z8?I)NA9#IE0t}6Sq3L>N$g`}~qDCQRWV<*M!u+%M;`|8Z}^rcc68IUkL|1s@T&F-q4hqYGJT9Xo5U^Jd&a=(Al_;?7y3pEd0jGOt-}aS2tc>P9ST zl`dqK1S!mJYOyOXBfbmv3SH-B{ZozNT%$kA@LkKLtj<`*(Dp*S5Z4OvuEl(-m$AA@ z-?NxD2xKe29HW)|i~MR4mn=(RX1ke{Na8(93D&Oy$+c<+*`bkJx^E#4%xdz>jyuf$ zKvHqPE1Z?Ggy$~+6_Z}HZW`pOoJiu6c7xPb!M|mrGjq*9Xs+?5-B26b+sSo%VZ5DO zYp3jHwNrM&d^#2+ZWHRg)^`i5Q*Q?>N2#(s*2Nn}kJ#-e-mX0s`a_g}agzw`DI zu0)T(O7t|#lbkf)?RE6woO&^4)>5b$CTa$)0GzjP=}!T&81Xkf!UXTr#0JYT)&pAW zYYBBdu`(d& zn3-S1_LJgX#z!Du zgIJBr0Mp4@Bgm|^jY}E#N6*q4wK({4C1V#tBR`~gmFYia^v6kU`=hh>av{Xkd4Gr8 z-2Q%Ls=t$Z7zufj!}DGClQVV`RZ+EA&f&H=;>`302n&EC7T5%}eR1JcxF;S$S1qwF zc$x`USZN@_6~AC9!2Zl(V{KT?1&;&lavr*Z#gt+fQ`dYa)e4YRA1M^tPXgmC7vuAu zu**2)30A47@O?53+xv!-;)x7w^)9w2Gq5eUu|1oH?V6C2VtEF(DK55WGq5e@*sKed z0JbhJws9_Pi!-pDNu2szg8UJWwaCWuSQ?fZ7t5jyEHy5c$80Rt1u%0covD-h3ZI~{ zL=in(;Un;JzO&D`o1dUV&qjMLYtB>5U@`e859Y^{Y(iaRr~{n^EKR~u~BNiZ`iXY()4jN<;#2H>o{kc!cw_xDbVXB3uC zDF^Ipd`_vwOj^LPW9j+3x0}Och_5%9m<*GXXm3&n-)F!-7QRozcMN<(Fe9D;-)-O@ z4&Pb{cV)t)hT@BIxGx`8R@?0@=m;yar!6{r+9I;T8hQt6twUOW5=KAu@wIsw?n%J! z1>9#qy(m1-$2A*e4bNWh=%2;<8aEd)`!i<#H{_dFNAGz~ucXU8rWR(ucqk8b=GY4I<1 z;m@bZkC*?PF(+5Ios%6LH~;L&ppT~Ez8&B`j{6zlO;Rry=h$o3y%63P_fG?c-}t3T zh4o2=^+|>GNfTocTH5!QLL7^&d=L3s@4ldh>r)G?bFe}19y;C#h}WB(n~Y`W6O3W4hFHI^k>hJbOdkpO;%lF0MmRD4e63|+ zeAQCcUkwt04cFqyS_`RNzZ7>HsK$F8o)7f3btds`$*a-+gNVIXr*D`2lF_$I+xBhe zz3-vFxcpevAhnp`2zB14JpC6Tw^cIaLv8{-WPlHQ3FkvhloiUXJbt1ej$X&UbfeO*2k@+^^|uY2+leVwmx$7if?3YG$~SyAN2Z)LSIwBe1S zPsy59eg})Zg<%M@hK_`i+>UF6?Ze)S7VH((*Ao{8JviUysYTg)WR!h&TG_>^{Ds5| zJ1V0-VlczRd+cO!WhX1QG*XV%`=kzNU&Iy zEQ*ow$;=wY^-t9OZElD+r91^+RP8v%bROfFWZU*j#ki8kIPxGkM(`NHgWx!o$N2dG zZ{r0JQUhc6CJ4P5LdTu2SuLVgHD2cXGraAz*6+?O#IjqXVH84htz z~rNbH%zt9UM|`v?szalHPst|UfhMKAF`1dw7&WSW>s%ssGW%4 zgbqU&HR!-yKV%DwSHBBoN6VIaRYohm!SBKdJ60=Z#=mMIEV9`NN$4dS<-GlOS`~>Y zsG+t^BP6mup>M_SY7bwt&*8B)q_yR}06(3}rkfb*%${#vrIvA?E@4jPt~zrAi$gv2 zA?5t+87L>+`8S~}vapVQFAvr=Sy(|!Eb^%cRe5NLb^=^C=IcBS+GqzLW@NKvzQaVy zA5}NytAsL6ak2d?^zddY_BlM;rZk@Im3aecua*iG09~dQZwW|@C9vO z!pxQj+pZjN#gx~QVQESbYD_tb>nN^Ficp^{0q>vEG5T?z(AhZOd_XORQhdPh6>)>q z>l>N(jdQv`{Tu+x><8EY(buK(&4<+?Bp!Vq(w7se*GD(O42N3G(}IcUR7Hj|)M zVREj=zZv{Z;BQi7=&AM5_rO0jSW~)*rC^%?))+MY#ZysCg`kvAMVj@<9e74PHi zhN`enov7lSIL%Qe>r$S(=iFmI-hY7lP)lGmVNXSg1NVxzF!bR_A^h$44a|E^d)$7( z)10qA4(UWa`Qf`!)R*qmms78?{bEk60lcW6?H#`k-Gd>{NM85PLfu)VI9_x4H=+Aw zN4GRgp&g?MC7;AgKZF<{LDOl$c-e3gh_Lz{v%Wzbim z=W*yJ8w#~tw#kOZOW$S2uCii;Hv*1#Z5-b6Puef`m(JIpbL%a@`-xL;y6iopK4-r; zdpKWT;l|g9h^fixI&*XOi+%fg<2{xZ6Z*GlpL^opf9)4zt)6aT&K@=XwE`T+aBcSw z`7B}-m+2beuF`UF<&#>%D9*t#Xx!Q!n^}%~?y+FMu=RsEvlwPhz25u)O8y(3vsV?aT~Jttenq9`<-(Z1NWO%(>-Sq zXT0z4xAiPYfoxV4uonl-AcN%wI+KN@An9Aop!d!oC&?wG56F<=f+{kd40U}`yypRY zM}g1aVf|enhE>X59kI{t@n_(wuAyCZtyv@26;FiUS&(i9Z8neBOjr@d%3eLjU62lW zqMB%foZ8>iQ*{%q19%q>FQI}b#l6@(zKdH7GlErCCp&IjxselaQs=n#2nXzbUP5}Z z=4hy(N@=7+AYDO$P73K}Xxsb(oKJMTO9u7h4+KaB#t-y{b+_3pDhNZ`W0+A;pprpG zQGt&PqA$_6=_~Zz7XJ|isBbwG@O5$V9m)0kIu$^f{36e7xlW#)-8?(37}ggvPk-AF6`W3Y5|twWHxT zh@|-7D}eT%SO+_grbWCCViNACMD`hGk#FQcVY!kh_tr{%lKd#dzb!0I3@Mak*0Rdu{=%0|-LxSVWxG^vF1^>FiIP)@9%KG_Yrbkk1=xHQT4LWx0U&ta0I0L z3-6DH(ox^LKIrW&Gc)>LP4h134>L&p1-n>H^H%7AlZn-k(YpbHQ0$k@ht)4= zqH#~);53Sy^C0K?*;|21yC*l>J-KPT9B-_VwFYe_y_DWKN1dgm-%)o$QmmmRWE{{^ z3=%`0TZh$2`<)HNFgl=*_0C56N)K9xm86Q)&k}VQ!*f-j8D*W0aOM>q9H%IACn$49 zc^k*e^%rbqndN29yM9Tr4~;xbgKU_IXtO5K99REha#H9OTV+6_bOi2Xm5p@AYelia zLvRPn;IdT%jS-wFUQ(;XnZ~vhu1k}`rb^&4GjJ8PgA4C$c^Powt#~kZ8@Uq4`ne%R zesRjMD7_52QwGQOY$=4J&4|Ga$+B=qt~cgwd3WPX!u?_=&dxgotL{p*LBrb{K|Tmo zN}6X@!d@ncGJa@TmW;Z*h}H67?L@fWivV)?pDb)_)UOJSs!;z)Pu!hkg592{?e6ZPQmPn{v`H?*a` z#-Y&Dmd69G-_n+AJ7`M>@1);Gqq)x0-<-Ob>(oV6sxBPaycNQ_^SZT$Ku)Y1<}_ra zJMUMN7834ETsv z!(YYw<#^lHn-CsN<$(7OD7?LA}9BDT??l5vZ4diVn z$3*>cYPG1_O-S9oZvT=b00V7wVs?!5$o6F3@v(uDB~yA6~N!A-3Wf2GrJSj zA~&ZhL!=SmM-*{uM!j2+>QdensGR^fjwkp{QG2Y5<56FV+U_EjpjPRo+|Le&+B%!s zY_+Sem+GY0ZnwDO?@Sz8N645e6>@|dGR6+EuBZo^bKMxG8>7BW+9U0d_!TuW(uN}{ zVZ&;!XaLw;4jb>nUDY z9kdV5J6Tk`gZejDXMG`4Yzg5$8sxU+xXv}}!$H#TA|c<3RuO`4z1!vY#9eEaIiW2# z2@r(hY8&O@NGtNSMqas|&-q}B^pvgQu~>&_eVqom5FmK#i%P_;=mq>-1?e=zU1UJ( z3ZV0Te&12e<>Ta-0$jBM)Tyg{NZl0DOPNXLDTG_Q0`93jfrdXQSPx}WoVb;4T!X+U zyL{hW>*VK8F!o^-Grak%E3Ajuclz@_RO#+Tye|pfNbJbu z7n!^~)6(7;_z2=;+i|!Zf|5N6 zpW1kL06y{PjDA-*o9_U8NW8lOA1#e9B$Ij`_@dOt+Pvwbo1m`IUnFItk=g3i7Lk>)8|P zFuvC0*r(0M0-dP4lJC3aZ+{#FGpSaf&K(rL?*L0w{X<>1%@ZW<|GbZcCzX}ig*;_K->Zt7x^mL|Xora3 z_{fj6%ItDXx!Ss6gj^ucA2jpKgf^rli$Gx1axc?Zh z`ib=?co_;q^y0Nj0u4$m03!)1gzu`G}<6VdlonQ|zM#wvTS;{9aXas4>; z?$2b7>&SDMzf~$|K-+zsUvP&_oXv_Iw#;1P)ju(uXLLF8ic`kQ8*wJjW zPdYeNP7ZiaAmkw-jcw}$sD>ZL!g-0h^O6;Xb+kGc>g6XD^#K+_?}$8$@)+_Qe+L>T z@;xJKE^@=Mat3>Do@TU4m9 zPRteaM1#vGTeZGI1vmj=fJ<(9u&EbG{~QZ&1%3%lZw31^GUUyT{g- zR;2cvbcluVet>vyLj%?<#{Dl9zPtF>(EDY9RDER4Vj^?hrNx@uFH0uz=QO!y@xK_Z zqX;vqD|Cn*<*^4Kq~gV6rJBV*@KeK@#d}$$=<$oUar-la)PXDhxKHNyR2FD=X-foE zn6?j@4Ybrk9+9s)>OU{$d;8Cl%>J`jfpjPEZ633IxzC|s<{0(MR?5uK(5D8hhS zgCEy&Rf2a$m^wwP? z`QU{^v?tP8Np1y+Aij7f*aD)M8$*Jv{Y#4c3Dce_|)B-_OWpY4Khl9Z@Q@DRFHNkh*2xF>jsndcYbj z^491=(ov1Zv=C}1oHavRo}Hz}RE@{PmAb)pos*9v>(KQssCW@IQF)$DA9#oNfjV$w z&n@n-WnMl+%OvzS5mQyatjK|maJ+N~95{j`nBV@HqKS{x-sHf3bp6bFlTQu^S7afd zg2=B_h=0%xXyHS3veOw2Y3o#gv%_-8P?z}$0WZ}QLm z#;A&{9vzncxkHwIy*-vB*{G^GNIkANB&N3zQ}kdsov)ra^}Qd zk|*X4{byC&OMo?}%9VU)_X=$}zI^WXs8aZT$MAMULyg~6BcBMX0=5IrH?S(XeYlWl zPmBJ(jbZ(lkOba!rriZ2v#>x->)|kZmZ0w{=+D@G-|<$=k)7TU=&*dx9&#p;MLG0U zcFTPOedBR=7A`)lSvc0=EL@p;-#%xyO_=9FUG*ln?nAo2;$`?AsJ~$!3g1Fc6W8DE zsE0zuZxa<^)Yb(-z8c?>8fNRoIWoida*&^oqqa|joa3(fzW}^5U-N64|HWsAnuc+* zSk3DjY9VI*?0>bx51@Uyv#;$_g8afpvEqPCB|H+$;HmSmYAj#()6*@FrJ3}M*2CA$#Y87T&S^XXRk!$Qw{m(c0Ll% zM{;+;jDIDp3pFW(DRkTRc_hUDm~dTtzqNFfT&XgW>#xi%At&URWQ&?hE7csF!fvhajO>MLsfiS7ytkf6l1%)C^LyLILyaCdWW(O6bSi zd)5CeJP+c=)ZU~&Tb@KJV(QVjI}2$e?WE1hNL#7;Aa8@j3zxF;L=I0I`LutI${}Tm z_mUj)Y#ME~?_E~&|WWjVwtH@_zexc(_*qa-CGyY1aKbt6%ehIG7C zPK2dS*S3~AfyX#M@Bp{e;X8Z*9NiCOSnSxLYBzNpEtmX+wqhN(5Weg7CcQcGlc??9 z0IcfZh zr`(s2noI0mf=ldOg68pZ{pDL({am~eD4Wo@)~sDZZ=m-%vIjjgvVlrySL@!Z?oQ_Jr+3K!*&fL1Xl&U?Y>wshB|K}~D0 z@@P=gK2g&?684YaHNBAEs`PDPC(kWQSfi~3vBx|8#D+1=S64b)t_!Pj?Gf8q{SkZN zx0Tg}K@RD60pKno__fyH3cN!V_cYB`S~)cA6VeP?d({=GGTMJc{!yYm$E-+`TzqA- znOoFK>Q)bzt<`4$E~v@XXYd_nSdC?*q4@U|b6PkxK#3e<{UHX-O>0oPe?*(@%d$(@ zBcp_;cuKgv@D%>u#|CnUQm+;}6h)-2|7=0+^A79*PFtl0a=j)-y9Sh>A$L^6r)A{d zHm@_BJxU+qZzYj6v79k!Z8;*XE#pN&xxdzl;MZCsqn7eg$Zr)`m`3xpKr^;_WP{afGL(2O5$!nH(~cu$Y_-X} z)n;*;Fnp-b=g`H=QAvSs(O{PGP-M9jS-l~J-=9GN&M>WfhPj9sMfF8nSw}5@>Tha! zp>tGZ-=l`~g?&#@k!vqagk#U(HTu`Obt9pqQy~9@T@O<{^)QOp!xUZ*y$_&kn5IE` zOI-~zlc2jggYMz&(A_iDDt=*GvXH}HOe>EsqdX-_P(u8uX?X!DQH7@EnUE)}@l{c^ zd8xHpXdh}Mt}SK#HStYETcLh=8SkoFHwvVhwfn`rHaMq!jGQOeF|eA3!)P3h8W2sx zQ+f|&rx5Ok*6!|}2~?6A#$>#O0xgV7s2Dwz>%dTAgzA|rTPy%EfLDQUy!Sso503BVWo-9x;$-v+(CM4baY@nLNk z8L3iV{8UXo(SJ3ure7fAy@CnzGHnFO^4EdiIu+{C4;&PH<9}yL#x7{h4%aNYQo91sQZ6f%lRb-?k@@A!$OGGZkNz5f2xVA{d z?M*rXuVpZ6E${{Y3kiOm);*ETCf%j24BIy$LPY!eyZK@Eh1wkMmwZFvcY^=8gS4@= zUZngB$qG6Yd)s?xQ1TtDy#?jJ%c!4giccHqQbH-vqjMNzMBF5b8yoC1bc%d=}JIHMe>Lm%boGcyIVBiT=8% zihCH~ihLx(uY>T&=Y;F2b3WG>B>%wkB&gB2-4@R5UI!3_+8i&bP>v&l@9&Yp_Y2)? z?~PMob}2ddX(7iQ?OZfk?JDPxicu$Uh#}#sf}y8p&~v)n(aGdv)SJK5PF~_XneZ5h zpL6M}Ix5d%npvJJ52rkUdlHE(%%)xCUR3CCKlFdt`|j{Ks_W4^vokwerP)~(TW+(v zE^EnUCAmm0Sh6S~fMZK5z{mm1l57jCRke+&#u%KCgxECGA)%O>00BDz5=ufzLQ6sm zz4zX`-Z}Tqy*snJ#{AxU-}~czbG}cSz31F}?z!#UelFdAzDf#M`>fM_R{bwEcAK94 zN7~~W$lq!0{~YE%lgYB7&pqjWYzqd-EIm?Ncc`_~+Anrm>92!J8X=6e%i3?vpZcx& zQy1H1-H&9?iZ1r?bC?Gx?A9Wl#5}-u67!4U{Idht9*1E5$WCJNdDKzBYi5DFx$nx~ zcQ>~}IzZgJT?Xlk&~Lw~1Yu4qmE_&OO~($jsQ6wsw+DBk&)SnBeflLKs6+Z{rA_Zv z+KeL=z6OLk=`<_7C?l2uYKHD0ivw@IzD?iau8<3yYosPTVp~xwVMcEcGK3d!Xcjt8ox7!aFZ{{ z>~p7d>kT?WZUx+a^gL5~Gf1F-1e=)zIKpZJT*kaWyNU#1?!UeSdJm;Pb+J|=hdk7u zIZ2yAwG-%P>i2bA>)PC{)HL9l|C8Q6`2RHg$Gf}d1D_D{$9SpM*NZ&MWPBCi6)n9S z-^^49yL0=JFG%nDp~Vi+Sa?^H)S6ivDBO<&tgyEr&O>k5#OD)>0eb(v8Q9 zm4;dEK0@7~TdGO&WBi?72>#8P8r5{5L)+za<8f4*wtJ8#-qn_Db!&e=uUi|ey0yVp zw;(?KSW&n9R-0&rFo(0f>yG2Z3}N=kVM5)|@=q2mA5RLUJ0L9{NJ|Gx3-*6)9Vp9< z+NpT^uH$$c7mxwnjEg)@K0=}=fz2ndlx*?MI@wR%22FnxNq&T-wuF}266O<9eX@kH zW8Ks6CF#`5T9c&d$(_8;{oMckb&gw4-tK2-OX@;DC)%CkV4Q$!A&-y>-+7>sSF0P* zLe?LTrz;##Dt|oA`i0ir3{NaM^JM6)|8%^vuTS=j^BqCY2>hI#G5si`ufbD<+JOFh zT=7%T*1ZC=|2kg_wKlKNb-$}%)>=$0CZ9@a?+qIxGUjvOf|;RyEuOAyg1N+Pjl6BQe*&>V{xsBT`*`R~ z^1+D0b;Uk`d|h#jr7MoHbj2}3R~)ljU2%*}S1b=W^%P=P1(>ct`wtStI0NKgr{c}H z3qea94`aTsH62{P1=k7S`j)ybRf?>439&8?0gs(l`@2Y~^Dx^1UY{50U_IIk@N9=M zXBEBw+C(OK%*0_Hv_3gbKFrg$;vxm+`6JQ` zI0;hN4(WoJ>!`-TG+qGGzl=8BH>W$!2mDFH$S2)-KH&E&YqES@X8D>-`hor%@OScX zU#iG=usWHXFzmPPZ$1EdznR+qMGai41f;0PM+_K!6U?pUzp>rUj*1(|t;;V_YWt`S zj#ZZ^bg@_u_P}JQ^b)X$;%4I!TaC$0{raYd5ZmP%ksUqOtn;Wa%KmJ&C8_8`ZEzJq^F0mnr=NXqCe~hF0P`hDcIh!&jxs zmbjMo^rh}B-4V#79xZLsxO=-F-(Z=k#U&P#1pHa;zOS^O#JxQpOBSuqoLROGsI2ug z(f36bmhB`?PVHJ8+GsY+Go=F%hP94Y;J2Y=%$MNn3>C|fr_}B??=M|TA}Sxhr-Rm5 zMNX%nWmo^!Ivw9u1A2ihOI@P0)m#jJzk$CC;O{a8tzmd9+cI9J*MeES=CS(64B+Uy zf2qHCb=n%7?+hFhWcrnt^<@Ry3F5I$;)(wA>8U2H73mmjn;>Q4e5FX(xcPYy_q*sl zxJbGQ^;d#OdfPtdDd{HEi_rhUH)Fn7+Co~JE&&Z?z${;~wdD{Day!OA&)Sqm+Vz}9oHR`D&LBH?Y^%5C8>OaY=QQJCV!W8qPV8Oto90JAZ7TLc(c+39MZIb zG)81u;|>L1*G(@3O8gdfx7+%ij)O0=4Q9l6Zgo0s^M}*%1h#)qC`fL^{Ph}YhYTr@ zEAWK4W?ya59CxS(^X^a^#DXm{DJiEp)&U8uO)X-4*b6CCGlY z!ell;=4;{WC(G7eOK}k(~QAR(*4{dAUdZ26co6*Pm(E58=P7ea-+FMw!X#Gyt zLM$oBeVLu@VDBFPM)Fzbsp}yB-@>+So>;aosUTiz0oO~KQ`gXYNnXIU5Qa;qE~mGc zyu$Z#gHx`^p)81U%5@e6f8i+_{APEkG2a{MuC$!DE1fxHvtRFOO^1)bK^4h8M+ z^BBIg;zl~&mO@F#5RThH??Pqexll-YWsan;MR}MT1)pxg=XU~kn800?!+WRT@O$CA zNBF)$;5r2ET8l$E1?5Pl2u{DFciI>}W1c`mv3r&b_e1k-oKNp65_gFYhce!q+D`dB z#5N7&_=9zx30i^etU$>TtRzgIAyTB~n>akHQ189U)L!RMhaJkNzCf+t)t z_o#k{5>Hn{zNg0c@bnFzV`f0Ed*~Qlwi7g_$3Z=~CyJfxc4>WL8!JrT{5r>*OH#Sv$!DOjUo z3-wZ2GUjX_%s6jOueegF-2^pZ1=MYjzisuE3R(-lT4`MYd5Cji$g6ce#%q^dewZ6= zqW9BlmcvL$UMBCL8h{X|-@U;v!=TnVZkWcd&-BUk-q6r6r=b?Y6X7!Svfabkb6M9y z*_2b8ZCIuy@co^Fuacl0@!u(}=GE*LjR_?iVvR4p0*3UO>>_U{^gPvvQCxIw{{$Yo78g1^=VtexKuqic6^l#xB$ z4rsUzc!2(IxPqPbgl}`>HA;Hn<-Yi*_p>NdFR45h%?0Lh1b!Yvsi(%VXY0?<_;9{n1Y_HoL7cDuQL(#rDQ(8>N?Y_6Wm(B>bnK>34)L(C)eu=$y;JFHsPr{; zp*EcjT5(y;PM8mcCHzj3WP0Zc``{vBFLz;>jS=I}vin*``^+Y+Su>T8)Fxf0WcQ_3 zg1;eblg&Gotj)k;Is1~qA1u2xPOUX5Y}Z;Xbhm1QyyEK1pykx zAC&1SkWCVE?-Rr`hhuT{+q^5s|E?VWyK?-aUP23$^j@osR(}we)kj65&TfTtug7#Z z{z<8q<`Op2t;iec4mn;)Sy*5+3o`3J3euZLL>it0`i$a0PRWv!Nk`wH_>lRp2iopp zT)W2@cNK_n*Z0J@%ZkyiOK%FZ`CPiXfc(`?`Jopvey1>QcDrkLa~`n*JYu8Lc{8UU3sbD3E`_lnyZn6N< z^LwnbEsPWH2+a2^p`+#1(E2W+_A2T~RxXr@?Z$g@cjNKpcpIOYsj18j(s;Nu7GGvF zqRyf(r2cU(1ihu_35%A|CxYaddXylubezxFV!b2Wva6u9ZJz(Bw7YVo-L(g4cl~cj zTST&BgVT%H-EP#g_!idgwBB=j(0XWp_)p3Y)3&Bf)A0N2R}?Y(Laor3;(7zVhE*XK zi}$OT&YKr(6r*9NZPNAZq%eHb5$H9gH1wUxZw)E=wbx4DZAI4lzbBn$vf-O`hBQ+e zNhk&+E3tC7bv%rFl^|&yzeB-Y2%}_Y6W!T<%TSVE7khlxy5vj1^H(&_b|Y&elXZzD zE6daId3jnK$<5OW&r^Fib5KuakiLe=zVy1#Zp%t_@W?+K(JH}6UV^z=Bj_;+`e4Yl zw9H2Ix{R)fv^(CBJ@9VRu27PXWZw!cDh|@S3uzN(N7Zb0q&}I7KhPp_s{wNun58&pxL#| zi8&7R4LkR{;-{W^v~-|H2>!0{93IS=N2<84fG^Q#dh!!|lk)HQ4yY8Br;*y& zJHxhBCw;l1+U}_0SIW*1N%Aqpit~|THm50t=ASXw(jE?9kz{XFGW*Nu?-}q{M(x1d z?O}Gi*ISma@x;wRLA>9i(-VLSF(Snh==1M*nY<&)cwSfV&gSZ=e+KtyzU2HT)u=}SiVZ# zDPNBzACGH>i0dB?8RiT8-yJgSD`fa5mEi%J9wx(Lot=TgxFm;_)|V9fUdEx|uV^>^ zGUl0d=Y#w0vf@iq8d`bH=3hq0_`E~L^+LuMsEjY#^64bq*|s$69i&rrHZM;ve@scY z|656~_?MFIctlBeKCEQY3l+Vlx%~-czT_j#Qj6#D$VRdhzS*~$x99K;5t;5YUZ`7h zp&NkbjllaR;QI&Qd-Fp|`j%&v=ADl#>0J*i=|BEQN&o3lWqsfZAAg&a^S&&HH@-%Q z?e8kUk3-%s0Ph!p_e;S0W#Ih^@O~9|zXrTt2i|W0?>8S+n%{a#X@2`jrS+ZvD(k~L z^5Xe@PCVrh57KW2Jl^GuOXouR%Sc-Ow?e<3$Jkf-7yGJ@u&?(a_SK%H-)7(A%!%xz0Ytet%xA-}RCr>D{j%S-740%TJfl%urS3%uj(maSZB+6kd z5ItI|DvwgjMLJo-@6Q3^9hMO zZE#vpvlsJk`dQ>iUK_)TMJ45{gbMJk@ifEiL#ky>o?r+<&X zvV z0YRE(nb^-mcN%P-oHmQpnv|Dd+0b{u^|)WQ;%2;)pJnvX1-PP|W03xu-&)Jr3OqaU z?8u>;{poe-2FNMG>}MWADu|E12@A9L1`K%u-kK&`NEX*hd@AmkqATbKx!T~qf(1eb zZ6RA4id9fiq#6cPb;J}L5?0(u?@uiX>RJV9Cma`6t+dJgha42tYcl#tfG?tJ_}D)G z0O>jq^J-I2tp^R8-UKO==g@C!9LiKKqQ4E#vILasCMeaDS*g~LmQ5fLFsYVhWxgB} zx!AHPthQ_}R&QHa4V7>%o;W}bQ9Fm0&EV%$@Y9)TI8Mcv*AcryIaD=d+BQ>V{w6v3 zDIb^p+sHqs_$J^Y^o^EZ`EhJN%8w(zYeC~h{CFax(j51cxOcU1$RV@O9LZmN)@vhE)ERJ8klD<~hn<}OJawGs6GJkwQ&fDFf= zo+!`gZE65QM7`6YWj$K9Lc=r5&zB7-Xk+zIv@NPW=~W~=_q&1!oSZ%fBr_+LA570= zZh(2_sJxdtFY(*o1l>{KmCm@d!PA#ItgKqb6tlToM;W!G0ACLc`3(3(iwfg`{|--u z_8{caeKd49FGiLlJjU_@F-D|)Y*f)?4L;u^yh zp^SNmiq!P>5s-svm8~}%tj?k#T4@XsFP8`{$#JQYw-8&|HreJa-$b3`7v7&rB|++29pzy2Qdk~k9TQnT~uLoIpIfbBQm^_${N zCzglH?R5QpKe3Iq=zg#x{0AaDr)Ns|oE~MUAg@&53wknL%N*-z(^slR;(p8e5^HTX zwo)C?&o7~G{^{HCMxj(&jW;})ja0>w?UyA?{~CINeCfgaVJsZ#!h?XNeN4E`Dj$49 zA)~)y^&1AkkjZbdZ&;mIVyzKK18VjSD;D1+Ry|0Y18SOV1TFES06RsTP4DF;Y^;{n zEkEYI0n@f_ah-#{8R$3BxrAbkdv4ARpZZC_^e{Ts<=acdSEHNO`})b^Q`9(l4Ej`GU@^E(1=r)?3RBl+waz=AXv^CcpQN@Ox=~HTw?aBEn0@Kc zl-d@b2)+W4a}RmEtW-+yCP~{NTfqMos2Nj3bdM_GYT0yw)Yg%a^qXFSb?JZr%A9Uy^-6}(UOJ7x ze;mNKJTmD8kZVPR?;}kpWpkH4y&|Ae>#)T{Ylz8)G&2?;`$AS_%$7h4o85k%4R_cN z2$!~n<9guNrF^|@6Ua0>!1XDX)j6fSU2KMV)X8dp!<3LG#%x6K@E4bIJ%MT3FF-7N z+q`XE&go`uyJGZf9Q6GKo%6q;l-pL`q%zB+DCe92vD!J7FZa9CAe;yMVPL93hwt`^(Y=YLw}yfcB&>A*4Bdv?QbseHL= z-v?M*W}mY$+;KJ>&!dxb^2k~_BtNt8{p9ojf14BGbe?zQ*S7Y>sAuvp`qluuL(0Zs z7jV3}EfBNzGSL4O!v7i6KgVA$@Mk*kw+Q@M6wlM}=bSX~^xkcyH)4DH`tN1gd%!&W zBfF_5kBNHn-+-L6R`raaJtb(e_4jfan;XZW0pJSRb5MV}$v;)x61fE zD3oED^nhAK_p*`SCqSFS?j9% z-PW!L)H=M~(^Tv+BFWE~`|Dx&{Q)Fn>dl> zKK(@~`)=}}nk|EA<+k5h{Ht33yO?5B+`^@X+%< zxUP$DBk{aBwA`LIZPG(3JAaAswU;w}l-3_o2O3@um`wpvMO$V@e>K2fhrm$+^d#T# zwE3*J8aa=C;DI(P>*O$*!4|SoA&B*OHY_zsc~tm+-GKr8%ZX$HJFl$Y&>pu@YrVYU}?C+ z9)H6bL9@vj|34jJ&kFMKF47)%(9Whbp6(Y#y1#~Wf0LK)H$}YP$qaedH}SO5m~**b>WdV9M|vtHk@MdTQ|aP z(}3YlDuDZ?4aasI2-(j0>BRzfxkEk{_QnGIZXaRquNd41xG3#^+Dfn$uOdEgKWVpq zhv4^N)^E*QWR(Htz(XV0yKSsruTw@qn~uqSsi%Uv(x#Vs+oGeqX6j2B>(MyRmvY8@ z2kKRy`Faq0Eb7<%ZxF`;rQYOQS-TQ%jo^D7#oma`-o%FjKgw(0ll?-J*=s?2zd9`Z zM;v^-BZJl(@#DPq@j}?bFOzg{v6NkhC;7h`7gr!oz_*R?cg*&?n*WY@Gx}Rm zYRv(DFRLkszj5$a1b<=p)4i>!GB14-vZllmlc0Kg%W_rop43|H@u>4W9}Z{qr=mXK zyrmX@1z@(gW$$goqh$1F1pXP0mpsZDP~c}Ml5|5;^N``4+4RV;VI&{S)|Jhou8g2{ zrOG-BaT?(7he|gjJsPcq@qv#_CTSA$`k+D7CqmGc-h>(uO8B6KpgpxV9cVT`3|~ny z=1Y+8k1ZZ1GGL?Q@t$ph$kKRHtH(&R6xvm(N!Ckeh9H&^QRw!g&^51@&PKO48X@%j z!OZ0o;X4AtMIc;|JQ;~d$xos%iAlZ~9Wgwde8op9DYf6+9@0r5aplO7i7f71hO4MZ zBwwy89YLN9dWSdNfD&CD9+|Ly6;&iaR3U3sq8`#;tV>5F-^P?J4UhD)ZQb{36d`4}}p0>yR3;R3W1fX1-J7KgCJ z++!`bD%BNxB)cC$AJ2aKB;X;BCq7RljLF^z>NSBxUE)m=O-Qt+V%=V*mwWA!3Vy)j zX!(3dOCWKMt|y#+Sp6R`FNo?k`kreCPfO5|wjt>SS|^@|)@W~a#a^eRMLF(pj(eOJ zOC{?r%W>;eidHhhD^n?EdMrAD1Sc$?6!OY2`aOxLlVCU*xrB_#-N;}VtuS0W@#^@X|GRs zzGLlkBz5m7ON5!bg1O5RMa+M>l~*NXPc>jN`R}(ZOpz643t>E?jAtU8z_QrlW7rZ4 zTg0&bGZH@E8RPx_t%1aN=EI~ukUBeXP)=TCYblcjYPk%p+*3wmrJM|;FO5QN*B!MI zYNNA06nVd|-DOLxaIMHtuvOecQQHf+x60oc%mp#I)3AVsfon+xzNubuH1&3 zlc@Xl|3)e&lad@6#(AyQr8!G=HTfa!I;(Sn#O`M87BOwwScm?vOGJrNE4~FjqaqI0 zr#fXUFW6dtXgN$K=YM0b;dP0!-DuTZ9g+OCv(`@EO{@DY=84Yy>XzSu94&w3aN+#C z5W+&5vpvOVV&w+*ObOmIl|&P^eses^IUf5>TK=P{PZ?jlNxc%)Wriu?J=55%oAzX5 zuy&1wQe^zb)@F0^)){+{M`?$m1Ce*j)huzF|C!8$;;oZlU{+b!({Tn z*F@5oojsfjz##Q27^2Nki1j`;Mnw_X>GHL=(FFx}^KeCl`6m^CLxxM~zz zdn+Ns!zT{kV%pbyZ!8cut~KoBar?p{9yiMW0LOcaC|#Q$BMh( z)I&8n>&>5z%01`L-p%+5@RR78x#2lm@oIHSDUo955T74hFc;Mc+G)YlK5Uk9Rglk8 zr0V3mQcd#1=RIWjmYKzBojg4JyhnrI$*!`eu^f#A=y7Yi*#GhYvaf%2J$>cKBqSXvUVDo9NnYYI?iL}o%C(R=VV!WmdGjVxBQs-IkC@q zheqeGUmrUUrT1Vs|(<6vf+4rz1_x-%YDyo zA^X}i!pozb>p%GWZSLP32-R5rIqg$H8x%C2p5dJI&^zd3 zxc?#WkENPj(<~Xo*Y>7(+vKTUd-^c!=rLU9Ooe&;icqf38SkKX2s+QVDPwZahA=s+ z$1r_V?@`#!@CVs?Hg8OJ4T_(0Y#PJrXuZPx$H}>#3h4%4pLrFvj==pb8pG-+-s8hr zx`)b>>pOdXa;d}rGrRTA)6-cXJ;4j( zMR~Me2-?Mh#@FA^8pF?4bU=B&su26$4wv72G^E?saIYA{`-cv1CPl(*y_B7MykQKp z(Xc6A>%A}-l%!5Ar^_N4q*FIH}$Q;Q>Y`B7) zjA*7o4zsfsT!-8_hV`jSr4?SbPRaVzzgy*23f=2ez|4m~w7!`(JG_R3d{QOMKifNh za*Va!Lz){`c(0Al^7p+E|B;2y==+x0_sPE6jsM{>d|%BQX8U$*y;U1) z*)nfPkT*ONX}#?xonAb*^M=QeO5|U9BhHNj-|VLym4(m+3@wH9t-XAwe9KycaI0{>)l7%b`8L2<(1H}#Ev_% z04`(UR%o42e^)8bXlS|lK4q&vpwuZ5l15IcAC=vwq%pkpD`WjK$}_3El|Db7$Mcd+ zt1_wYLKkQm^Y6-~^p%lP;B}{RsXw4nKIZ;qhY-rg`jxSM8MC9l#o+f|rOy}8mhL(V z>cc-E+o)fCK0O(j(QgD@gVZ5!iFW>ZBNt@MuRwC-yu$Zih_#_?3k_j+Wo#}(!qX%x zwACQ}O65Qe>**cJnSNXc{fFX#(Mg({>tX_OQHm9c(h^mZjgW!b5qOw9vNYfu`E z_fOige(A13r~x#cP#-l*cJ?b{{Yt*T*Dy~W%i3qN-s83J%bzxu>5~;ue+JB_sjlIB z@n?)>x*Xc6{wnPa=_zx4EIpA>EOFjD1n)u0o7+CPek`+V)2km}f_I7E3E@3OGjXiU zR*unH>P0?oEmez+la7_KMdMktbW0zU)e%M2)~^-tt8GcYH{G({TL(H1zZqRF_t2BK z3uV-WGtpXuC;2tEm-NV3c6QK^di4`Z(E4G&w~mz4FUCXd{y;ccq8NxxXEcaSCvCBQ zZ}#5EGh^8rI=+zrTqK<|SNC|CmQhG^s>j=0y~b-8s7<0~kr?58HkQ3x-miZV4U>Qm zzeRLc_Dgj8@e6LHG(Z|^u7X?%K&}Mm(pnzR(+ipEspi-zbvtz zD_As+)vcuxwy#e@gfJVD^ql25b|T_Uq$VSufpZ$eV6tEq)34pK;@T?6Kq6S*o;-x%T5S z)05VZ6u&aouWUMhCek@5(#d(90kjm|14p~_Sd;$%EeUOWTlJXYt_yiUm;WBLq*R`w zw6ug<^CY~pP3Ko(>zv>Yi0^0gOna%HY&5)ep^eb; zF30-fS+--H*HC608z6NdA9+#>4rk0OL&uSjlHP&&v0vGKBz@J95N0)*Id>&N>h1KT z@_uDU6GMRz(#+W+w3H2XpORB9iq2ECM+%DmY!&K5t)_CPg)P>WCELD;k{R9c|Y0~fYRpM$> zw5XDVDiJ43)9C61=DIFND^Yt^5}!1cEYsI|S*QUk)SR+P5*W{LN7``)!)5Hail?K7 zJS4prno0r_hosl=J7GwA6Tf4Iq_^-pc1U^~zvG6aH}E@p>!dN!t;w;`ZIu%zZ3|Q; zODoBOD~qOAmR4?DFtxI%a(<+%~eL z%o#^LhOOMHB`TfqSa>y3>5R+5dq-9x??bG(@b_{OC}kyj6fMzbCs+1OnS2+{L*wHT zTlH~~ts};bw8tWTS2502Bv7@rs!C@oX*!W1i!#l7l|Awy<2y+CZmSGKepZf`VNQ=V zrr+F!X^h#^wY4fXUbv?)?o&u$%GN1U;*5I?xW|d?sUos6g=ErumFYE5N@Ia@g@~;R zIaL*}mv6yTm)mnw9(psObzeS`zwf#F5cMnbJ z)XM3V^_9Q+F8T4c$_eAPjj9~It#VZ9)BZ|%Yupbx>W3WlkDN>n83y|3ZNAFVt#KdV zeSr4?{(xZ|WXM#HF2=J7cqYa+#=at!KR=`AT4Ve!)2mVY91LlH5VY5$xn~k@j}@Np z-4)~Wuaa=?-0UBMRvOM-bNWxL@O=2cvHUY2FURuN7T%57*FV@e>C+e+C*h4?-L|gq zb%F4ncs?#z02eKQ8^v*Ec3mS8=XqCJlDn=^70+Lnsg38Ko19+&x1SBi&&e!_+w+Lc zJANAHcZMs%G6{kntt&yhqhaVdab03%oSj!jx<-PMwh`Y8m2Q#l9n$Jc2(iBpygrv# z!>p1fy@;-QB7IYwoe|^o+ZJ;lS-F2*AT8$=z+F}VcYOieu6X`Ao4X45d$0iRiFp3{ z+l%qSXD441<+!{gw++0zn=l{6`MSnU;oLA^#tWZy`YxVb+u?Hh6V9`*_}fVEHH`DU zeflqg_WL0t6YO4sp{HZ#!;I#WFy3velZuJmjiVEsvCo$HiYE_04#H2Q=T?|+LT4aj zE%&Ek_Oe!)!(E8;Ox?al%6Lxz-pM@Pri0fUkbY0R@kY9xzt_sGD&W6>+GYQBut^E&uGHrp)(-!;$jb#1J_70<~7vyuQ0pOtl_CJJ!AG# z>?3xp$*|n!Cgf#;*)%qEm~l0n8Eoo83lmtXQ`Bm#b9(Y?dVs;Ophnb&ph_KUFYyH=8NH2j?IvZ6NS%GU!KU<8`mZB&zS!) zk*_1}OystA)=uwn@MO4$68Y=#Pb8drAHzJC;OoppYm+4{cb)mw1YduYU|w)xk$r#a z-9+I&^P@z5pZRrypLdUylbrrY8NYj4aD0A$XNtz`U1j?dp4h>tIvUz5h?>*Un< z{BoHyK0jagEg&nWEiNF}VdL}5p>uqG|GTDuOzR57zp((n(+cF#83p{EUjX;p0%5Ny z;P0jaxLXV0?k<4)M}av0T>$q~0o+RkaBmgBeN+JVRRNqlAs-hgfHMlLMyXd>BR5*BZjHF}nbE_R-k-M` z;-czHTNKhx4XuA?ImE^Nmo_h?9TFOUuL_8Zn2l3ngWvhE!C!^i&&Gm1fZT=1~PG4|l+O_~`M%wl; z37x-J3B<+0m)EUNr0??#Mty19{lWzo~$ZD_x)1$FF43g8<>eJPNaFc`Fn1XTe zqw(+Tg}B&;ahSpC>sEt!5Qf}PhjEZ@@PDWECscyKW%AEdhTx=2uU#NOeB@<5CYs5c z2}(?{{r+~XjG!>ZmL$G{|MgT)D`DNTs|(8tO7V{11;1vCYQ52D_jFdeZpSdKjq|V7 zD1wwLn9Dfk&)=gB1(>P3I-^|9kF{$Rrpj9#{59(iB!-E&eV{k0iC4m=l+BX4C;u9D( zJ|vQ$vrH|YIc1C_PUhgs=*K7bK**4enrW5yVg1&gV-iVIa?VB?SQ6sG2OW{o^b`c^ zBe%v)pZY6Qs9D$4KyCP8ZFUS!pL6vlnz(jp5t>`x4aD3WQZ~9~;n#j$#5tyxZq{E-EQ~Hj}jx5@g6ZYhqf^c#zpvE}X`fsJgNyUk) zZwqR~%Hh_`O?r50-F`ZT_GKD(KmB4lQiX{dwiCf=lc$F^l~a?USQ|>?HYEn5`>i^; z53(S04s&Z)ZHH3`KM3N^MXP3|2~ddU#5Jwi!7t>S6Au^$fVKzrV3((Gf9iQ(?f3Y- z2mG%Ydk>m@m&#E_>S7=ypaE?Ul33!J_;-c4~B*My#$ zxc4{*FP0MCqRew^#h+I#6z{YK)yPc+T&>IvS;)P=8Z|9<2E6w`_?@oraMs*zC=$T{ z#T|Cn=93p)vJN`ZI$~ONQk8+0YHiz!z!?VM*Tp-ei979+=i-Bo=nna2okJy{+Jp;( z%iH*GU3uM826d*kGcf!1&;&0B?(d_~aFcB6GAYw@_?sUf%EVRfJm0rTBT@vKHoIo| zu{0nyDN5U&;h$hW&}3Pu{E%0OlEUzYl8(f)^4Ms(w74KHm86>?y$`yM0_%RdIKp6B zcRYgglJ)PuGGDB^BbRet$N;Xj>szV8wAJjEm)dftjpCk!)9}L?4LsSgoOHBEwcxbm zCu{Dp@h_(+Ft1bP&iAq5x*B7{C$_^BWfD$>8nJfJf9g?}PT(wM3gN8o*$ak5YMg^t zwh{%K=6Pn~tZKLwE0g*EYGl=DLO(4K#~;%&EP9{V#p2ygGVmHNL+!@=b#M_+&o5~u zh49$GUNY#~?jnA);SQHPf2`2=G!-{oert<+sh=oCOk$Zd zC!!l%D#F8IG}`vS8E~Pr{ly0%CrtQbG`^-#OQ2QwN1nnGi1mpB9ZdAroltuii*x!k zARn0b2a~O*=hfz`SM08)R6KGa2S005QIf?6{DCG)dx{oT@*)MOGyO%r zhh|xlHrqU{e)52p10c;wKR^Em&eHU{c=mgiu!P>mv_V@Wc>CzF<$JVoO{y@iG!h#< zlHEi?_7!U-J%5}Qw9iKXb7cSgS+uftGfHp7(caa2X=;hnZ){$=Fpr&~_ad16oB-4L zd}uzGoH>)qFpEqpP8xL?5}5MzMX`9mQADXHl|r{U)sKwJubY}|RLcOJdb3{6pAIe_ znG!g=iA;Do`4r2X(%q^Z_-XFk%vH8mR|_& zhcuAS)nPsE6%^Jt*ih$P_GT_P1D{hpTSQ262mVBqbgoKz^>63&=iNz%-93aC@MS@H zocyKQAa@Oq+hrCR$`+< zB?i3zq(yPN=7k#aWIy2-_@0?hx97B%R9vos!Ijs*ymyU*rrtmYiDaMNh~10o zas5NjI$A%5r>lzB_Pv{5Pj0*VmE-!NA9WR%Jy+(xyzL)9^S!oj?$Y|!-1LN-WHMQ( zJPNG8#c#CeP+9oJj&dLVmEoRxm7sEq^{mQ!V@>eV^GMiv5~Auz?O%-5hc99`*1&X9GF}W8eLQNE~L5eJ8PA2pAiWFJG}< z-gySQS%>UU12z2~=kk3N_YWIdp4;~;B zOAk)(KjX-=FR%Bs{_7(Fjm!BZ2eBicfhK^-U;7sXP#?l=vgwt*J`w4Ww;RIF3v#0v z#z9?SqSe}UflUDXsu|#Mh%?f4vux?T)qe01$tY%B6qzZaafpTOXS95s( z7qrcln+{oM(DZfqRCB~RXM`RZ-81gsN@<~*b?Mu@AhSa(Ik9oW>;eNb(_Hcycc06` z6E{@SC&6gDmIuM&1#~%nw5ikrVp|>XlQdG_%!_BL&x0R^%p zUErI1V4ZyXnU=fnMZg~cFupq8h#`CA6#SvAhA3T7rTbicwQ675cq0tU0K>!-Vy1@Z zK2XdZSxn|tGM>Srzya@jdY~NW%j|Mgx+sbxn`}Dc{j5wk;qiCdfCUH#>ji1YHl5AK zbsEP{ACpiU+pOJ9Wj|k=65LVz*iAlinpKfD+uMiJL_MefxRzM=tFmy zO@NTQ``2(9Y{%9q@Zq3lZ{(EyH3P|ZFjnPA=$y5$CUZ~x(^dL8bL)#>0!3JmXv-nL z+SsI2J}N2{p6XW6PQld3Ba2L<*pq4e4hJkWpBPG++Wl9wb_aPUes{Qe{6}{ zKJ=FB+M&M#*nvHuyNy#l}^gir3h|AvjP4v* zs>*`B^_y=zX@9sq?&@7@;51ZwG-hV(lsjRKEw1&(TMR9a)iRR>uqz!6omanPlm8?BTnEh(>6)a@xb2FmSajCwk>z41pFcbg8ouJPtw4Jf9t)hEj z=O5-As`D7Z0*?Ul4#vU@ZN;R)w%H-y=@S^reHt_KoA_xueIRN9dtepG?(nGE;{=}T4V zLcL4_u2-b%E=B8sffjE%C9_wme(f0~;T6aI80`G26(zuwa?vfdB9A#O{tF2&sg4;% z$FK<*imfx>E&IwREvG_v(NN$4@sjKza7;L`Ibg|LEzD${Fp`t!L?ltabqdqI*34_5 z`Ij*k!KJJsg9T*Z;<9aI}^CBoR2K5*bbOtOpq4F4wUOgez9Cs* zcd0#~9cJc7{Upgk+jm1#%)!Z-UQF&M_*w~!cm0X7Q0rJQ;ZvTH2Y7XZULE_IQ#hV?^~sttwmUlvmwc$7|@j&^r*heVs+O+0m4|% zPdBf~h^3tdz0xCflQLZPBCP=}?6IHF>n|o7xGvBfClRl>+_T*k7b8~lH=eK4@|HsO zvzpJ$+mJndM(q}Mu*nDC$-TP0WiEL*k~#tR@p;6l5--xTF{lSMq!Z0HKCN3pV7dFu z?;14WiTH{wQ{vzIpeOhS-Cua*Y|kqgdx88jbTgqSbmoWPlph9i)j}udgVr0`iiBC)MovoZB*of zCwNWXw4R=+KfAN|?R+cR*IcrYHM{c)>9e^!9XoQ{Q6DQJMN9^o-1h#^2la{^%!a-3 zI>X;0*pm4eYx2Hfr)KU8+<;~w6dxF)AnnTY7-3Gfgf?l)@ZZ#Sa0|e%jM}ZE*5H>6 ztM+M)eTJ59u?9Z|!iC$D+J)bCF~t9x?E)hoAj+zXwCq^((nBSx13fFTFLk+ak^b49 z>)i~_vXYJDUcEPbtCrdJK-(A7#ZPg$(G|S23u27l1tD&z3C3rDZLaK)gajSFCvEFa ztPo#zW_Gu3G_i)7mM4Dx?>wKEuyVSTfVnp+`C0bgaA>_wv!l9PsH8-N(~)^a4eNyZjxwLcgDQFDDfO;YM1Fy0s?hVioCGb~$ZP`>lb!{V6a-mlX$W-fW|5Z~3Ju z0-^cGa1+9Esh4Pjakg?s|MIB87P^r=e>0s8kyoS9e5WRA7}feKEpyO_UzuA8@)cp2 zr`MEW1xnDe&x7)1(1ZN~l!SXdv0=7Mt*L3O>0%c^E567R->#<5_O5IT)I1yMFK6bc z%5HYcF}lm3o?2nj4_K--+7#(6)|+?mQ!jt`Tk_J`(!{9SIr$>mZjO@*0gU$0w@9eo zUiE_oyNwUr`yPI0b^mbG(r7tXG7unQ37SFjLyuW?uSV;7$7-pKufcf#td#`DeGiK~ zdj}$XWJaFdO#jjOcC%lQktOhOD6%yr*6zmG8tE?2)Bxtr9(T$XOer z=&`>3w@&`AvxU0#<0CsySKS1hS}(T65)@m=A*}BujUH22!(>$Wl>~eaX!lJ`&GGu_ zS%STObDm4FZO0h1dKruK$}n{Q>aA2{Z|-RKyoF=A@+(XGofOH}&-w37cHhSsdaU2K z*u&*6_kygFZM7`kQ2ehJt+w8Luc$r6%7QH^mvj=2osQR}`>3>~4d{yFHJ;;Ba~9 z6#87>qbU>SeA}aG9p+rnxP`n`w)r^I?wxadhwSlo0=%SrSp!mki99OvqUDwBaryf zF2HXvfE44AllT!6=A8lVoh`s`JwQ-rx;7wG_}*8nY+pv=asW?i6`=szQ0XqEpUv@aJz* z@f@VBrL$xuS*%zCcyv66!$)zVhEVRGAwiQQ{oCNcB#xoC7xEyO>0I4B8&e*|YHA58 zgWR0pBKicg{@ZWCDS)6TK=9vG509OUvruDgeht6wJfGJEGeGX zj9)%j({N?b2E(ugzx{cSO_-MwjJ$#$=xRoC?k&taF-q+B(Gv4O?iVCbwAClDZxa;m z7Bx4+J}{%-KSO_VNR&zHIW6(Gesfe8v**`hu@j0Hai_%2jMEM&`r{4pV=2u07fLg2 zOrJk{D!2qc6qY|m20p|90^10$Lx8T{oINJT9U16%<)CJm2<2hOo|Kebx=<1E2_=OP zbMJccKZ!l}Cd%s*Rz-1(%Wb-Z43J_yd>KDxXa-aB*9m5p<}c0h@E24_3YTwai=_QR zbeJAW<)aGT&|}gEe}I1w-WY}x9v<;rILq|T8O;}K6?3IB#XsFGb7!8MYh?%H=uC%z z@t#8-m8G9BxOE$KMQM5=X_l_d$~o^U=8DXU+oDIFq{J1H%BY@xcxlJRNES6VA!_pr zH01#I)RA9wt}i_&)Y`aWKZ>%x^#(qz(-_9u+AJ^(=pU^FO)o~Z`)91XE=MvmJ)IfG zU>gctAFQSEv*g_;Q7f-=bU>`$ZE%dSB=tSPF8(Id!K*?nB5;c zl#a(bT{3XS_V>Su?G-qeZtk%{?iVE<0Pkk!Xbx{~bgB8fB=tEnrfvG8is%g!Z*g&6 zb~(1k-^I2jC$tIugl9ovzi*yV(ADMA*3}B`5#8~wE9>5-YuLRyydt9RxNN^wRoxNU}A|DTVo|k}PMC$u@ z3ScBXb)MUI^)J0a|JWyRYI#zd?|MSRDC)m8#dT;})A5Q~)A4JbvijN6=YxwHIGKkX zdc*j-w0mE>J6D|;G7Y8(n|Zk9jV2bRGIvtNFA1Z7qk0K(pA7eaiMY$5Uw=!rIjml2 z^$_esIpX~fA!6y3)^SMjSf1%II28fu6Vswa_FTVYKCZABT4>(j;CpYdrWDO$^u_P* zJ+P1BrG2GDw6e_#-Yg_Xwgh5XW*wU6+<0>OsZH%}ln$IRluv(!s0y)66?*Zx^g!U3 z-U;P4OmM0BC@U51?}6svptj&1gCKh`FUJ)A^_=IlWtnud4W9EMEsw2;1)Y&|G*9)Q8edfK!0gZ z8adPg_hf#r@9e!KX0ByXZn9&`%w*piTeg^W|hSxpm>-93PETo0jZn2yd+!R(+4-UM{d{Jq zdHTIA(b?j@d2G@WcyG@v$=PAPXw2@R3D@~P&!!nO%On^#Rji00U(+A!?Lf;Ljou|| z0b!?4sD#_P)vE!>xAkrodhWBZb<;+&o?;H?6rY!kUNdI-5jMSNdpTL>gVJoQ=bB42 zQL@cPN58&iCmzhZj&2tO@8%g7!W$O4cWsYz9ZS=48oL0Bs26jrdFK-Sdsi=tt4HNN zwS4|IZMxxi!n?WEx=HprgRnkB2+lJ9!*J^~m;=VwCX0Ou&N>Wnx;q;TboJ$Ov%3n; z(?y%!A~(Din6WHJ65Ad>ytBV)I>Mdfgni^sP~hsh`^S7Can+@K81=)I%gifP;_xw4 zhWLF1{-YOR-Ni|H$M1ASv^;y}rf#m@Pem}d6nx#~ZHd)HcYW`Ak9(za94^Rk$xHM| z3H@Hd%!|Dfh{V|TzvjQR!Q}@5RpMxg6c(nxyDY1)v|OWQUZqc2<-(+MH7D@4#myBZ z&4eNk2tal=4dtrvnk6DSIX^u;$+8AG-&I?JkEW|A#7f%TfIG87U|5H#A5xQS4`a8r z=UPbejXrVLXQ$)N1&Kc>C}o|tFW5!<8X5^H&WTyP*1~wyM0b<|MSkdJ_x*X#$mPk1 z-uo*R1X6tItEeGw^g)r_YVWrJpPijhnI4fZ@Wby;f@<?!F?^dydW+`1L=GDAz;%EZ@M zS(@u{MU#XiW3U@p#WMq!4@H% z1amiaOxVmg18!a2I%1wM5XI^4586>ynaU&`o~179oin}u)bIPzqPt>Na+ z=|G7Da|S$Xz$!=usBUZZ>fyg4|2kkx?#$fVH5qug(`C1u((?1~W0nL*>5P%|=pK%i zlo5B_)==-f9Nd7(3^~d&VMTcTnTI{RvU3t=OP)M1VhtZcLZKaO7mz>0%>EEgw}(| z%JNt@>4cYI5`~jp?rw#T02ckCP}aOczLFGb*TRkV=aKB2#EO;eU$RiA;CxZp%{sh5 z-}8Rg7V-E9u%#tav$wd}P!n5skjZ6NZDJn3s-Li`;==)%eUB<(GxNVnZxvPL+66}DE9 zPlFf%hu1yv(K&aV8iVQqzn~TA&rJo<^UpF0q&#^LAW<>6?I6*zz04{B&doo+AYV!0 zmrA1US&KC#oPe~i?Edk%>HMRwI~VXC_BEZ7C40Hs8u zB)iQNI()E~Jsypg?97tu%Uc_xeiwEdbGpVbh!T={AYfIy)LHjQgJV1Dqo6s$sxGoo z8RA>E?IuOnm~jBNHE=T;DW7|LSxEPKFnqFti&C?j$Y>~hE!>UtC(OL3ja)ZfeQ(gm zW)nx6(6KI5;2>NWmzY^DWi8Z>*}v)Uh54o^)x@JaeZLvlNUQEO-gudLMyG@y{Zj&I z5z`TU$-%_@hGH$vgF93~{EWXSf|}BUniRt?{a~6xntjT|{c(ejVT#wFzVhORy3(x! zYw#O}x$}aRyjZ3d=W>J@S_|B4OPtWWG}m@pW}}1ZCk?TF92)x1#N%X zgDco|7YzJ)ed^4fr4{eWI&q!v?}e7K6>^d-`RHKpGvF*w0(OBrYuI^opb>^2ngj`n zmQ87Bm?>KPH-Zbms+Sf7VjtOTH>$ zl;bC0Gz0SIxXBq1#_xotZJq^p?z- z8a&!@P2AFJwOsC2XyocZ=5sZ2rAx0gqqQLj&%V$b!FP{!nZev_tn$h^$uU2>d<#3f z4Dvc#3G!0#ljg@11i zfU*FR5Xfi=RJ*QUc%;B-^53AD^U{dbi8`Gzhx3hqKvT|v*@37rb$AQ$?N1E%enc5B z>*GW%JANai;O+X(nU9|9mwB+vjo)BhEYesA>RpH+3DYZ!w)X4sbYYm&jo|n9`yHU) zJ9K|wdZjr*Z1T5*DE(kD(KgnIX-tk{pa-&zjnBb zUIu}{Ec4Z?_Oq^ZsXENdH;W7e4)#=--r#&EBs5M)$3%Y>r%d0+Z>WMCaK)Uc)Q_tJ zO#Y2$`&myo%&l?oIy(?MP0kdr16lO;y*s5oD>%HY4*`XgFyHnmgZ z3c0ex@=nj%m>(#X@;zLQwj^=p>&$pL750h=_*UaRh=AqKrQSFY{taBneIDR zjlzV9vY+w84Ub?W({oV_DEIZ_EQC*Z-&rS#cqjXRUN`{pmUdNkkkoDSDEE37V|nRmOiZoRf3 z9j8ek3vSZY&_>Xi#Q=A`(V`R=Ups|*@{C%Zv5$xcZm{Z!r?+rl=}fLqd)B{yr^-i- zbj(Zr6*us*7&e~8u?cWE{fNBK-OPsGCb$?z!;`L0|A-pO`f2NA>pRNGB=MMAIR%%5 zh5GLrE)#v(8N7CE#_fydoQD5|T80 zqw^&a;LV#7e#7>K4;-~eF|-OTNkL77;0%9fP`|K`6qtwrWe)F>Qqs)?GOKu_*UXgF?NY7L(U@|IqA2weqCszWZ{h0m|NmSzUBT!y3J zxD*(Ts|#m!9@okxSo~8xp}&ubT=qa-S1AZ&7FMdcf#9JcwYu?M98Y}`eSdx zqhNmaieY$?6Xs!+zVF>l^;rUO-0I62JA=d zCLHSC`{f|JrUY@AEnQSy4D@vpuC_VV^$`kD-e`mIQ22XNy$>1dPPlUO3Isjod>|@6 zSHH~0%b2@+p{Z~wXhW*c?WY$j4o4u9X9SL5!}o)o#agW#St0((tLm8!{le5LpyM15VvD%gR*GkP3FxVr5_xc9(yZ zuvZ$NZAkIkRXSVqvF;Cw05m{byR~k~;ML`QrlQqQ>qLuM`V%gO)v=7_O+k`){xurL zoLr!4ZwU4}MK!EtAGiNah!rB&NsZVPVkTV)ox2Y7M4XVi?Sj z-}{Ggbe5T|Dmhq=Zy@^Oq0qDaXe)q(j}JXIt-3xV*ZMtl0nAJM<;~BT>QN8HFWwny zIG18-ABl=!f|?@MI0oL&_GuxAk%Zd0Gj(V$&O`Yn;d@Y z*q*=>L5edoPq!hbGdH>?G_q11g=4jC971d_h%3z3G;FJG&>plB&*`M;iscJhjo^&3 zj#+Pl09Y%S_$6tO7PAPve~X_g5ZDEud9x&s@3R~frI#01RIaK*T*q3q7&H*J0k!ED zne&v#YRsH8Z+vX4(<;vqU1hm05#>Fc}5=^5BFkQY!ACH7zQI2=JCq<^yX9k zG5l$I&YA+vRqR)rZn0&+t2D>u8D{|w#)ipAV>%3)w2)#L0m)jw>C&gZsypHTBARnw z3XG+p1bp*=lCDKQfLyfs2LHlf9V(=;h?qo&vn<*^`kl`HS2_-vRI`cmTb(seg5DHu zda=pSWL?y}`lJzt_3^*XFP$V`%#e;J?fI?=&d>!603%Jm&{- zHPw_AkK-SOTe?!E%ZqvxM^&b;X)$W9mi?+IR<5@ZF)VFO2vLQ7$+8srUSZHV9Goiy z`aR^q`}W+ozx z0qDt;e7!Fwcff1c7{{WBx22-5wc|!5|#*OMPmeCo_(Z^(l_|-~3hP!^ zdJbL+2h4A~-M=cgLgp9{>BJD%#WtD)0K~EJww^?mzR(Gg(S`455r|n0*?NSCv@BRb z7viuq7r{<+7^U;1Y!rd4xsETo6BX#VRo5Oqc%mh*!w$1$?ydAdsJWy-KV)d6LTG+N zw>@;#c{}ml(Z6qK*kuX0_`NxOWZ=MshK5aB2{txL7UmuVm>)(NifA;8!M^ z$jlU90>xZdzldTh*I}yCc=WQU84!>sXDUfh+Ap#t4xlswdW}S% zGWzfV?a4Mi;!a~~LnnJ??cY@>wGA>S^~uH+`2(113BlU|Nm9MclEw-Nx`V%U%Lq$X ziSm9>w~jUSXiY($Pqt>+xcw@JI|K#LZ1Zxq6{9s(Fy6`lk1y&9rCPTj{F^cYtWxB+ z;PZ=NA^DI52-JQ3!?)ddT%Ax7z66X<)%!``zgVEqMNh-(s;AK=7#`xvBDnYw5wGO` za`j|Sms39o1kGDvq)@j30>xmetS#~<0ktJNOcN#QhAvb}rD~2+sxl>XeL-2P-oN=( z49(S|hFYIYo*3xsCNy2qCq~GklteQwp}xcD7@8+bS(dE3J*>3neJDsKLtkon*wTekw4%x${wUyRbxU`DzWlje$4JZUnNeHnhnxxgi7VtEwS!UBKKk0x@fIbqUJVYCnG0mPH#4VP@b?8n6&m1T+}{0nBh`8 zqm9K&j{J)Tnphl`SD-2Q24nVjkMmVDViPd{A%;yoR91J$zm=zMok6dI=yxC)8ZNYp z=R8r0Suq*3tv+gTTD){hf=FSg%vQ4v0GrL86>Oc(paG}8l87eGeG_X{VzkT>f>N{U zo~nsb0b0>Pj?k^i8+=z8at?LI`K~;q!>(Uer&4azlSGdh)fhL>eCAo5QGEc39v^An$gC_Z z#H~Vy9o4S&^@V(pu|zUfJ)n)X%!uy$4fefTjWCO>Dkedvx3x7u++7u;+I(ER92rXg zsT=a{>ZZ?@&2@!=Rt}@Ggn;Eys%~>yE_z0GI+Z1UB^9pzP3DvQL?PUQA%NfjQo7=ZffyX z7+6x%V@dcw_17AkH>%l*xAdu#u45(Xxm7GD>s)Z$x=q3}k(2sy7QXtr=gB70*3FRYI)i$y-Zpa{uHFDp2US!0z3B5XFe*7 zOqy^2Io>Lp_=z^$7UE96hd!Bm4xD|EO~CR#vwo8{^IlQ=mQzBV_rb(NQttBodyyXW%^93mUwJTP_qN|9tWrzQcz6tJMju!!1w`< zZ1;m@$UdaA;|=c|iR22lJA-k}^pD`?jzAR#uDApbJWuiK7N6ydyr@zP98K{!o7O8n z=x89d)-KndhQ_Lk4zBWjyoRgoy|AQloLkf~)fVyT9cR{g=bqo?QwY&owZO+Q2 z3t=oNTOAqqNuh>nGhj4zXzhO4!sEcu#zE53f#X1NV#}&zPJ+TwWjBhcF z%&buWw$9D{IR`g^MDdg9IulaE0tFjcRho{(oeyR{*tVXR#(Wl3x?lFNH^(>#OCz2P z`?4w#pa)*Vsp6eeP7P(S$?7N@PZ=J#aIDmu{Mdv4q9Lhyt`T|jQ+N+waAm|Un4Dp~ z`I3y7?W(uD&bD%UgWa{tH-k{mU^8E~`?P5m4@!&w=k1X2B2&!E7@264Sei%>G7p)v z5nAZUAO%42cDYPC;0ZEK3*$PYMH9rSMwBo;)clS^ zSYVFXorRtwf)y{GpvmZ2HvH`$ARjRtHh(6|gHQl1txpA=t*#emM%&~sQ@UF3Y}VWX z2uQ#5ZHC=_S^7So-fY5dZiL2dWhtZq2kj~>V&R2Y#E_(oMW3ou`x$$7>ai=yf1Nu? zfCkBKxK^c6r#4h#Xz6IHDC5?UGgU&2ei^MhC1-3KEN&} z;bf_!u1<>sW2VtyO^_)hx0=U}X zoETCXNreFNApgujku`D(f8BlNq$h_c4)wpkZV({mIf%K*B+lr0W__chI)0WsdEm=Z zDqc8keJa6=bueI@$W>Fv@zMI^7&{b-os7%^O|UD;Yy&4XE7DiJOElQghcQ)Dj-fQT zpJHS#*jJIA(>79;3=fbwnvh?}bs1BF^RjeVg_LX4uxVICjVnsFmJRUZ<7tB}1L0@V z*{UX!mQfP`dYGt3!rW1!fB?<=j9|4FSKhoDp41kCAmT4hef4b8;bgK0sG+oRG zt%9&>a7fhKuU*{ReHT#i^r~_}0k3HcUga-~R~GxRv?qpi7AG(+ zc|SpZoDj6+urn>ch3`PG3*7JOjbWX!W9UPOKRKyl`q9Nx+SSyz&5x7aP=m*_!C`YRYb9*rT@s-GI{nV?H2 zB6$!#7jpv=(Iw+kN+#E0gQY7!R6*LgczLDoj_{9;@`;{h8T&fmfI+hyYhn4=UxA6$ zIMA77$-2>l6#gKtzH^{DeeGhr9*e)p16PK%ZD)!EFbW<@Y2N*}DNkqi(^^xT!>rrG zJ~5RAwRPW#PYAJ=@!@hE*RsJ=Zhn1&u0{~HXLD9L0&C)uN%|&U=$s8q;g3#yMA7CT z#4ODTlX;7~K!&K(pVKdSRyw9Bu_1P% zUECQ)YId9SZ&2(c)r}L{m6)Lo*)!<#CC%M6mgs*kVaoGEulY|yH)^yFXEfW8RJ$g?U|uJAs0TENBddlUupZlBKqp3)o0Ui93$c|MrHb?^V|;rjSItse zy@Su|>m>kSv?!eYrq0U}7F$L8Km?$+B4|uki5><=sFuxJ4gHGy*)lsU5p0}7(>p6j zcb4yeQMunqEJUvDVG45jHI_DO_FHolZFL{oI1AKglMj78gnuM* zYVk#_Jb!8KRtuYeFZCubX;y{7{}rN83wED{;3re{lI^?*3Xi*P+)*Ra7exN#WevIf zO4ztlE+5CDoSA`~e&4$}j}d@=e^50sZB<*c*cFUi7Hw!pNZ97Xm?4ql8X17?%7!JQ z2ud`q_Gn`d`{y83jNV(LG%fwJz1U!g0VMtiyW-Y`#;?{tbZP=vIl~M@l+CAHWg$7j z`VNFQEjt2IDeFInKIMe??>a1?p*LR;%MY&lUNzM|{ndsvd@N>YMnUVf!5 zM!WDZIKP8~$e-6z6`IB5Xc-qPZW>yw@MgZ!&aaIq6uzI)n`vwct?y_>PsJ`n4-qDm z0&`X{KNbmIx1vch)g;dBS|Jw(W~@8pR7tUZlR79|*#E@UCQgxK)B#P1gQ%7?8x3EQ zYC*txq!#5|pb|}M%I?Wjf6#@EjraKcl#kElE8&Hl2VL5aiO8*hZrY#$!Ya3Ap$b>= z3x;fc!lrc+;&tpywnL!0D6gvda@5dWmKK{1s=Iaa2@gHqSWfCDn)P1O()Y~}#$cUT zI3dSR1D2SE-EPGci;m<%0nFgRH% z58|$l=TPumR=HorSbt-dASIR7jO(HkWhuo5u%2k$bM}S7@bg9}L(#&mEQ;61dF0Z9 z)X7KLgolUq)7&@>IA{j>(&Q-;WdSC7X%_M}8r}g;&VyD$oEv$R%#h~>&5AUp%9?pn zP#rooh;TKIKQS@l!udz(u1y@_--G6<#ibT*I%-^<3EM%1p&U`*@;G$f-mr!<2iKe_ z6P08|{_Lre3eQCD>Q}OON?~@Y#@s7mNkPm@Wo;f(2=YwKx_7d2F!N|eSfi#ZJyJ1B zgE@|GjM>$Ld&;|^*s!2xy?tZwQ z%~i#i%V^4n!7JXU12)s9Rbb_4D_3*!3gw>cw6`0uz@ZyPIf$ z1B@hv83uF>OX#MWAsKRYkc~P*Xzm0~3mK%P2Q>uZ2UMs3uz$X|JF&qJaRk%`+a?yf z1zAvS_a$Q^iQXXf%X;*DH+5o_%BtPq)3_XBjY+4Rd8ze7cAl(5hW)pDTV-SYIqwXg zFu+Jir7R4aSwg~o=qvIA>{)@cqJ`g11xd-eVGb&^0gVo#Xj!QayeOw~+9Fvr>u@wh zm(85sDfeyrrl+<%r}@xOiuj0SK9(oO2m{--(SHD-KwrOyHrc7o=rDz-r^_@lYqVo zyAT56BJ5HSR?eh~u(Ugl>lkRGQ}{KrChnx8vs#8c$k8?+0R(|ulOcxbU{I)G4tl}{sJbH0W_cIJe18HN3d~mhE1CZ-F$~`CGOY7hnJR4S` z(N=2WPtkEPfL5hFB-rxALP-`*H%@R}$g{$7lrePq4|qXa8V$VNN4GCO>5CBYI0=a*o=j7dCX9~3_m z43S2g2_;x+Vg?bV`D#oi;k~2;dow0w4z~nwM^&!~XrQHUp$`CMie7&M$MNf9%WheY zc*($ax_(hU9FM`iBZ_~>DZ%c=q59{Z5^OdGNw=O)#OgMb;dy)xLNiH&Vi0Ldzv{MeS0A_Z;|oRGR7$X)M^ zyKD^cJFDTR`@poz-$48H8)%<>1MTx~pnVa)jNFelUXTb<(&Kgsc7Gh?c%CKK+O}M) z+qASr&+QoG@+_XTjo+IqBUW zhc3PmMeg5^kNjj3lOVsC1o`D8$gkq}G9vcfaR{FTeR(qUiAwvI zcvXJX=Ks&*;x12!JxO~)gMzUOgxdp5f<94FCh0WG6LEezNvfYsmdR(6Wpa`(xjadi zTz)Y@^IM((_vr+<&nCcqJ^}6|d3!kl?yCuKe~HsXZq$5mJVK8VA`#}iEFlhw8V zutta=bWR%^?X6J=@e&HiX~|ZL-VZ=y6@Jodsjgp)>G4}OV=o0I#j_;r;<;>?ikG(V zDa~Y;AJYz^be%rOsSJ8Oj5=qdoOsno>GhV>S@s0GG8Dke`Bo%c+@lzX5`&?*`}}D6 ztT0$6fhQUz!7c@YB=mj|Dwb=)l6O|T{u@qN2#p$u7F=-p_O`fNWHxj&94!Dx;HpdG zsD@(^Wq$9+TnR05E86Ndbrb}7nUB@aO$pKOS8i`^14KM#NVTi8Ha_J zD(cP9N1(4fpg01h%nwky(b3SC`kALU zsN{K8e?&KOX-^VX)^w-^+d@>DIhJqq;b7JF8gU(uo`V8^ZZcI~FOv}*S|_1-KF-zb#uJ6rWq8phrFJ66lCFC_;p+mXY5u}j`Hd^I_EVZAP74HJ@SX&^L@zoj=f$H7NjXe}i4%*F1y)kgxXijugY(C42Xi$$2e zN(Uu(0_J#JD zaFE{K5QHyNE{U7dH^43PaB~=|;1nX&cgl*ESxE?RTE)0bw z*u@|WEr9d^2Y{LGXWMnU9ZKpYJwzD{1)$kgycod^vCcV8ZwOUbREJPu{sj?NuUZAf z`$FW4<&LZORE5I3JzlcO57^3ENgs`kst?E^T*2$d(c$_~89>knYz)B5edS>BuKvl& z(XqAbaX6vU10k?U`hY-nRrWmEb|+STYv>7yQJS_T*scl__r)xIem0pxfgdBC-RDh_ z1nd0OG3k$!B$)kIM<-u7NwD@`9hG(#H^DZ(Q)~(L_B(NcDo!x-J24B^;^RoJy243+ zG6gkj8NjlqeYOt9_B8uf`ZrDT>m+p-SxW zjg7C%FfrI8>MVRan6Q%_6M30VE{=(;-LOSAqGOU3oNhq#BVRo5Ml_i)6Mc;sgPM{T z&yE;JLie4`1|QcMBUApOO_B07n`Y!SHzt!YT9tg65rzh=*NO0#C&Yg`A^x)o@t=>; zD>VEBTN)Evb-IN~2*yCy@1+}~T2(q8jD@M|CPv`}Q?YM15SQYOHQY(u&|SY{j0uu5 zIO;u}oNUDW6()i&7Zc{jq!^>YY4-z;m~60b>+{HXh|9XZdIaK#;^r$(Ip~P>r`)a5 z)U}h4jSw|Q(!I{%1wcz}810sdjekX*-W#&^JP0o{jl>VeA|AJVXq4d)-cBBkO*UdE zE7U*pU3ux?_{$UFa}odXL^LR=-Pw;~gy17lkWcJTT5zx{Qcr~D*s*fLJTX3d+V-&~ z$71(MOh7ZVG5%^YVr{4V=_Hg=3-@9IB7HA?bppC!5N|qb-^_zIr?=nCM_cBUznNLK zX`yDTQvpU_?B?$GNT9kiP2VltpP8tvpT;LiuxH~VYsEG}n;$Np38K^rB6iResuG!@ z*e*;v;i_$GSN@GCq(_kmXjpyI9ma>{w67#?@+Ne4_nYiXzh9rivL$B&vR0{cNe;->vjrkgs<3VidEHbQK$SZ-dnH z<5KTaq57q&v*8<7W5$uOX!#iM`oQ$4yZ-xusrlWo`xKK-6w`a7P_?$TG%k%y&)rc3 zqL;tkA7?i1IRo9gES|d9<)ma3;J=u*a$r(AMRY(~F%I0@pFzxoA4G~?nkL5}q_Hf% zVCTkU5hDiqn9X`y*|f?v@spS-cQjS#vF3fV8O1|d)k+r26SLT75<{CJx9i&>EKYzN ztLTiwU!D;E>4f;t_8HQ`_@O82WA=r{q=x2&CeCjrOhf2K?0sg$Fg5A}2HrliNSNrI z<9^Z}ZA%=SHo@`-Cw^^~>TbQ`B}`HLZzikm#R;3!;?sSEtq^|9erXK0pBtFlcj#b; zmambrA)1P8584r?^dq}_$OKx>l#x(+r2-1%%je}2?e|^V| z9h&3tmt*=y41UZs8iVZ{d9F-A<=04gS=<_MFxusBpnducw9jI+Cu7jY?0JPKOZ@5i zSbb0kU77uJp)k_UC&ubhYGq;M82OX}U6C^>*L^sCoSfshj~FG`?~^kh`}vy$dp|k% z@t&-R8F5Ckru#xBq|pj8X1O_%Tra8^73@fQRTwe-A#Bep$}rA&ECwB0b@VeZ$mt*7 zhf~FAezMRY!;9Hhn3!eER2#!5_NkkgwM`70I37QZ&m(4Libf`j#7HGhz!F!DB=}Kg zyNLtQy*5o0+2+P1j#>9cU<&^Jw(zS162|o8F(^ge5|fb!yYb%-PAsDT+rc@Yt!|9s z2vvnkt9HxgCy2!5UQ1)5D&6wm#w3V&89Qc!VVFV8oK1-8DYDtXqhvAbh*2b5(f4dp zGU|5s_NR*3B?%(M_hG`r9b#3O8`i)D3B_(o{=ZB}r_BM$1Cl1Yd;DS27&EgmSZJ@C z(!I(DViE{Vws#!Y?(cSDc7P}4r$Twd+WNjc#mXl}$UHD#(s0FXE$+{C)WCs+fkkoT zZsGtimXdv^V>eNaKME^tH3mDQOg{)K=j^K43Z(8%h28|FGq2IPh{BASYNJqJ zn;9IM@5bZ1gH*k_YsG8|1#n)QZxiNL>;@9yYH{--kCq{#abtE}qmf0{;w!<#XN`GH zMYdO3zXuLGq%C|Mux~{j_mE-Yyo|VE@;h@)u;O>*Nen-HKZZ(fmj&?KU&K4XD&LQ@ ze-7yRL72v93icy|3dIsK4@w&uyz1Jmoj7ByF}TJ^dHYeSy1^VZzm3C)d}+(VH{TS= z=xpK?;&1Z~8dZDCmJEG0N@83NQN(j&64Q0aF_@7LJXAYY!;K8UBL|Mpb*&ym?S7fL?`f_TkrLP7eMUKO6+s#{9qRQx)-A(jOG%f zBjv~raSn|s8g&0d)-il|Ka1nEIsvCR9zTuGV`QC&k>v>SAeJO}IB9+~o>^~H`mWuZ zeKJ1k@~9~$fI6xeI3nIjtrGBJY-IEYE?1v`PV?_Ks*OR;XYRj$3k&K6^W$=evBQl* zrA}&hciK=^T`Spcr|LbAHVJVvF=ih)hEa@ii?Fw>w$lW00a!Ob1-1}FA%PxJnUJ3v z@J2D+oRH}#UQ3hl8a2N}5@;j%%Xmul&^<5Ez`OUO)~_1j`s#tmHd0}-7vqp+Qgx`S7VViKr9VYJ{^ZLOf)+N(a2VzumYQ@55^!sE8B--;Kd(T2qDHER|w+;Wc%_y z6xxaLp*E?7joZy*c&@q5o->+hVPdAE`8}DG-~N4Jh=j5=N|Z#pb=Mj6v?Oc(jTBGo z-w(<_DHMM_Fo%8S%YDdwwcGr-EJjHXL*+ASMjI}Rn4`c7yCf}w$3a^j5AErGS?6eJ zGy>i)Hyjm(X@0c!@fg_rEUBb3ERVX?vG(C{UCuf`(AZU2jNeWO+$9y%)9P!e;Q%#Mef<8s{ZZ&&zCZK8tn&A7kxf}n6s7MR+o;|45ghq>&!`&YA>Sqgjlo?V=X(E_L~wBN zYCqPYUi8nuA`ZXjB)^sYsJ*o@S2LATar@x?Eo~8>51GIWE2MDAmF9 zaS4O^qOr-wxPovrS&WV{l896!;T$H$B}aV+0CwcT2~6-W2PGa|`8sKg9#~*z;5W0q zZ8i0MZyz|~PLMbT8nK*E5(lIw;-4oVj@dJb!KOj($p`}Z+E1v@j%qNKCO=v$ZXYxnB5=+?HdeIpzfEzJ!sDT`p6q2V@!3_9ffr2VomyJ{UuWTD$z74;?)XL{P`b zx{`qA{gAv!KGUhtd+aHv3xZ!icCTavBTR>U4QFXG+Iv!>LbC#>a=WIcS6#$cKl{Z6peV7*-gT7U<0#8WuQ=HQ&N+d1D8uIuwFkSx zL3&dOhrNz@ZtTraT=WnsJw>diJn{h1qhPSOTN5p>XEk^D#k?@C-lQl@6wnY2y^^>l zCd=huSm=lizEA87AcJPT=Z|}j_oERIpW?-63TZVlM0a~6-B6CjDH#2c(ZCrDtz$oo z!N5YR_nW)wg^R1vh`RX@1&E=qyWOs%K%$<3xHSq*9~+dpz1|Ic8+=8v7!laFIq6q(PjP7Zy1Qd{gUHunko9p;vrlrVRlOJvGF?mQiy_0@PzlEU zx}NXEm~@ea|Kn(4{oPN^R%)nzIas~L5h#owMxYM0to;mu^u4+jYyD!yHM~uKBLFeJVXhPVFErYZbT?VlU7_+D_GcD{7mPQ4W+p9qw7%Yi9~(p<9Kj_sk5 zmlr7wjHJ*9TY-qL3nvHtU3JL%hcHGSL|haG^TF58MW}p!SkYe#V^qsItZrSB5FsR8 z%1jIwZXj460iwcR4?U^;Mwf#H$vdl&+I5|dC7zZ}4ZOb7p(#hjW9&l|jgf6SUH^&u z*$51|jR4;s)P<$5|9mXyKz&%acw&Us?&g^rg2ZU(tFBKAk3oG zudfMF{V;+`pP`3CUq5;iMUHDRfu;A0;ZS|dlfi?&BQI0Ol`~JoP#h>`Dkj&%p{ZS~ z`DxYpsw5^=abd7{|K)5_oIqPc@d;mxnCENa(T)1YCWorl`WX# z?ax+h#>-a6=~DrF5gGU6{b?vjZ3u)nNOVCZ3VCSjBcgHX+Y&?Vlb-zvYgLAtcjb%S z$0wtH4hP7`5n;VmZ-jg4qd08D<@bH7wZ1U|moG)H#b87qG^h2>1Y%mN-u`TV0>QBB^toi1={BLtaTBLq_vl`= z5javUcsl|q+r_;v&g4!+c;4zX1cF8VdKjf*?{w>^D8ft)2b&;_VB@8s);Zv+sE zgT6+5DG(-e6oks$TvpI*QDd)x^<>?Q0?P=lsK8)yd|oBj?)GKO=M`8oc%UHFuGnO- zTF_M-+#Jyo=Tk~v7qur_Rvo8JmVMVWAdF>h#rn5_)oofTMJfbFEiFYHjNJ;FObDWi z(Fc)Sb~_AB!APPd`D!>^zDIL691v004+1z&7u!QcmCsP6`FLCc34r-YI($;&N+dWD zfTyjVYvEQ43{mGac&0n(1d0m*!I-pk>3PhyQK8x9iVO{BHUh`p8DLk{u=-jK%F$EK)BnO)<~3Uku>%En0OOA)xCHdckT4kO?_3&}_0wIGl@s>dy~x zYXDq;>V=)78(VcqzTV$O3C4#MoXViNyJlPM7Okp-3D-lTOP6Et=}AKgFd4MlC5Il6 zh+{Iq8H(Q~tf5>Oeqbq3KK`!$4?$>XkL;FSQdV=|qT(<*8c~pP$kkx#PUQglo<|!4 zIt(UDG9J4!1fv^Y16^E$2YUt0xN>3OgSGLl*t6VlL)5E!3*?eu!MN5oEOzUk$`;O3 zFu(;0W+*gR2oT(c3Rt4HfNHGapltWEPym^A7sR3AStx)mMVcR?!eA)hwzY1ADwce` zO{bk()pAbbJ>z5Wd+AklK1f49>xWg#S=Bg%zp~fu*T2T0=Ts#LKTSH?^w@>D1}6$G z3#iu0w`NfSK+!@X2cc-N6an_NOu@(A#LAN{ARkE%0F6BfogV9yHBRTtO6p0%%slQP@DxSa}PA`N}J=L)Zmcq4NGcb3D;9eq7 z-~JKx5Fh{Kx*q37-P_IAdvdPOVTk~cW(DMWDFTT0-osER&ZfK6;PUrU0~Ul0kOjP@ z4JZv*oY9u&8zmlb69K#X$!f_&U5^Vbz=GWdCmPv`u13Ry(Zl!w^EU2@F0Hm9LK212DDQ%79*QL3Q%QCKBdtob>J$s%2S-nD5zFc!fX z=+eMX(TH`r6<=JAuNI2qAS?M_9~@l(eMR9Ltz@EtO7x0G7X^l>2SHEDcaPbW{{r$k zzBDw%Bx-~KD{PtrxC%pr`VY38;s6}YBqqB5WM{ZXuz?P)d!?F3hy4kC7{@e2$_7#= zWWbmfHQ|GR76n$k#WMm@n-jd;Uut9=cLxL#yrF+-x8LtAZ3yka?cosk@%O-f7z*bP zPojDoTVXh~Nm?Oct>+Q54HEE|#zC#Rb{Rzvobh`w#2a`>mgM?Y@U!+_1Gg0V%^$8Jzd;|C3$L zC(YDGZM|HqmTJkWxlt@<&G+oQ4&EqM%pjzcG&e$!V%cODbVwz&k;!M+Og{NrHebyH zMln~bWItrsMF7<*8Pm*VYUye@X=aNBNJyqqNv>xAuVU6p<>Go70D!B50aVSI>`Xpm zCTq!Du9i<$-m+WdO()@JEekw>cq^OElqs1NNEHU>i|OoI7Jx)@JfBUca~XCepDonV z*@~Ggq%yU&V!5`K%NEul)d(*q-w{E1JzD@a0HV;^Rwh?WVKEV`luV})x>_{NVjhYG zU=_2Rg@Vgu*EdWKF*CoJwMr?O;_Qp7n9^zm_(SdrCcB+4Zb5k!Oenr&p_)r#J=9Vg z$#ODfX3Fe(WH=-z6BASdzA;=&z!dzYjTq8*#d4b6%vaWHncp(0S}9ZD87vo*=~S{} zVwplMdVOP?7B(=N`FA>taUpoIF4TO$ z&yjwJxj~qRUKzTZSB#CJ+mJCX&x0XJ*chTIL#`rW;Y)C3cA_uG9j4M#|KAh~ z7MBx-)m<2P38P?r9eBnwgY+9qo5j-dv-No++3U5fcUI%A-CuhC^x5K5;PZCF%;$bK z+V&^QSht#=oOwgUy7Ua<$vYq-TSle6U3YCk#2SH=a5FE@D450zOv1b3yBE*Gk-c1e z@-i|qzAvz}{Me5JaoMB%0NPE%GGIz+TPPOTky5|yX+2O3_Q!| zI^BgoEY~q`;R{LOTl3i#yBc%b9JH12d2V)EKU>5O71-HAvRp2{tEGy$YQ9im#|y=B zKAB@jp=ajUl|sE^868YQ*P#NjI=%iLJ6WiICi5qDM!ICE+{%aOG|1*E zJ16~{tD@f&Fzv8%H$0e5Rt!jx^(EP}+2Ml2t`!`k-lWhkP`U=nga$Oedu&>UK>pcJ z;AzpZVFMRm#x`nTMd>y?r#EkNr#2KHsrt4KW|G&0;kGj^PKEA=E5}W)L6>lrqo)flOe2>cZlJpnb?cy9!{f_yzXkuk2>QLCay%o@-or z{a-KOoqL+)EZ2}j^JX&zNW9ZEP}amuG(TY+eS6z(Y8QrbHpXy3XyAT0jFD|xXlmT4 zKv(@@H+RL57=eh5`$jaJn)#2>VJZpiK{P@*1#yhjokCF=Re?PH_oI~M*nD}r7P=62 zHxdmoVRAE?XiCJ66xY_+VUV1riXf_F^2tJ)9WR0qmrer+zNVQ>ZICmaA?FEjZoouF z4jNK0u$(~|fSn>|DVI!vfabebunj}w{*{O-8^w3*44{{{vYB@%Q)So%^n$ckE`mIk z%)Lv#udv%XEV~8+TERpigF`B8Mh`D!z{CE*l_}8XVG-Ju!@MKx&BfA3AN=Yx2z$7N z-Gmav{?ehHa44U;=fP-oCHepWyEXC!0d_U!&QEru*j4IP9^~`99C-wm-5hZ;mfamX z-x0`Q7uo>kfiD@k5sZrOQq+x_?0W2}S@z>T2Wp`y_1Lu9b?{c$IS>=E(m?*qZlSb$ zq?BG`r%IX3TWC?a5Pig`y$@N>LWELBStb`8F@)nw`|NQU^EEu?bQN*3DK84%*L zDDBq@MUY!BC~vg@f^K0QgvjYqIkT35cvG1QJ6|eiX*~k*ttCnFSC9=5t=Vbi%|XNT zeXzjLeIUJ`*6-VgtOf5^Wi$Gd1H7xA30$Wtyz*H9NW1P8(`D$+dG;a%;MGfQw?*&% z86X?CNr0&v>e|vpb}2;1*|e#DQ!MT-)gR*3;}(5J`%4U-=dwJ6;wOXc@X2bizyxm**c~ zFiqxg!M4TQI;>}}D-7tD#i|Kw+HxjE3+v-zfIlHe_Ze8DnZ+`o;*#1-u2wJ%mu+cw ztV}D`BV||{!%v=_f*)GVLI*!uE*3G&%mG2QP(av^Wow~Mhf}a@Vem#_SQD(++2H06 zo09%N*+LmNYdw@8E!173pk$E}&=R#rU9`^Yl$}IFyw6r^1$l6n!OjTn3)C|Re3%^a zTG*+!y{2nfAR0o02cfECLvj`o0s3Cc;94A`1=y}b+Ycbe@~Q{kE)0q-tIL+d_?r9} zNAnXJX15`I5HpCm|2pXOz}>L+91y*lLY@MM>o|ROjw55~_4j%fG}Or3VR%D0!PU?! zm~AX+qypgqsvpmMS|G>KdZIGe*@0|PsU0g1x=>CRE6J@)IxsA!*?A63q4Fb_Tt$5d zhorN~TyY%{%?z}Vb#{TnasID}P&O@K=6fI%9+PxFXVC+z={9CJ*p)FQ2AYVW<=Y*qH0^uSJ^V4}9 zuu-g*As-q9=7p+>dCugZuNcN7W361w8@oaXn-}mP*m$=A)05H1@zcm<-)4-5_t{h> zgE|%HRhS6Vgfv$$y{OnZN-I9BmF35K>~wFAW%V1 z%(F`&I2WX@g`n@U<_2k>pwKX+M0&MT6%Yg=6{U?NGb;bc*_!dpusnLQQcl%SW@E>o zX38d%IeuWkxJnMxHPwVpOVrSLKR`fE69lR@n|k{m+DNc5OmqKQGFJg%RBIAvLv2BX zndK@76x>}cye$;p6);s?6?K{#Wlb!f&q`lyt(>IhDgD_(scLF|Giy>OcwaFydDM5k zLj@g{7}n%DI%COa4V<$fDeBNAbg;mMLA<}-j=g+HEN6yp84^~H!*?PL;mY~^*2tTf zpy5SbuLLpBND&xaPIDMHJpjVceI_zXad)fm@LMA<^nunnd`pTDZ(?rmfo2|YA-H5-jU-F8O6fejSO)9$)|8f)bTqMV+X@hoV=;{k-?_rSaGm+P8Ky0xWfk3)r zuH;}hM_ksy9#$L>N?To0E9D2xU7EcID7!5h?{@c$U0gAC7hxbEGbFRV<3auP>P<@> zZIFo$KlCgF#tQ0xu%w{`rPG+>y4HE)!uO-!hX8=>1ByO1V zk5&46P_|cNo`Z!Js^kP=F8xDg0OD!E>8D85s%8Y)l473ALrxTedUn~idpk zNuzKhDN_rz7YwO(RZgI-P?)qNKVzb(0t-NtV&AiA@X9?H?vcAJM^JJ(3qK&?q&6~q z*XlI-VK&T^3ph2P50(5C9(o4-DCTl6a3~?q63h(w49L~&7R+Jm8Qh8bM-{|qn6P0Q z_2s1VBG`uX_hMx1G-`1i>ufvzEgx7Wv2t1M$;r* z36e|ZMmdvA^IbLErKzIuam0L^U>D4CvH%O~8q8U8ziURpeuEzZU6CM|6xV4BCK&7i-QEEI}W z5JQnOyFs9JDBmh9Q_>leFJ&M@Y4$@*7?(@#Qm9$1f^3-it&}VB-9?3u9A@{y;hb)0 zSSZPrli@TBhjGduDU=js$y5r2tt`kzxKdjyrm7W?PVSFHfNB7F3D7S4Xd9$2qxyuJ z4}+mfq0$wUi_pNp@L{|mkvvOcrqH%L4q-s`0Y^w9w6a>%)*!n{6z{TyH0@JxwVq^m z!mKxFay=i`cSB}E5Ft&3!69klQaGH?{ZUXZ3`K?bn%>A@Uw=E4nvnMP3M$Xiq`83s zP@SY@cLMMY3zqpXsy6k3{zfzkW#@KGSeNg4Ky!->=XPe$owoq9=^bB1OW;D5y)951_hXIP%gz#t+2X`QFyA5X}o%UWARpD~WOK3~)7%*u- zI)SBNCluOf4Fwa{14xf+88%E~Z4_SjjQa3q2uNvbCM?F({+*^IKvGVI|b|XT0WD<`TCS*^f2SQrIKliKr}OO%*sY~&19F!y_JQrlIH$`NwX_r z^Vywv!N8Q};~Ckb9IKjZ3$NI{DoOWPi`(|F3Wj#W*pEJvrsB~QS!b$UzNyyipyKJg z^me!@0jvhK=5T0>9o|}jzcqGbYi*59!Oz-S7XD+$$(dtE;hP1FEIZ4GZC_;A0<@#> zlcnDe2p}g1gZmi%W`R|fzEk{*&S~WY&q?&;;D3&REiraL?)X#L_%*4^O1vMIflPE z@*w9NQsgLqInE|W>`w4+mYos~bf5O!3iSig=ZHSXfs!5MfV`A*`U*G}Z*CKRC?Oo2 z<1BN$u;IJOKOAL~ekmHnKS3XX$>Yf(6949SI67v8gJQ=*!-~m?e-iD3prgF-)RFT8 z#rJ_Devk-I{)e}a8-Pr34TdvEkJuVO5Ve{z;x zr8BZ(yGlEN3n@SqKRZXC4cl^Y^}e?PRjMv3<$-}wGx9-F9yX)DJu1{DfoDdASy4!D zFr&XPD#ozr$3%sRPRv`FVvA$cOPO&D^zu3%zJQ%4*uO=QT@3oggdTbfQp^BD?@4m_ z<;Zt9v97`|N=EaMnwX0bk7*8ZQF@puwWG!JRPt>=uSCDj=N_|~Ly z1A*O&3lW-?cUB|WYLQV00T$n(6%XHP*{y%JeDj{qc=3w?(*QSMwww5E5C z`^mp=mYsf|+$a{MhV#t(WFejTO?r>LukShzJN~|o8YFg}e~r2F!1L^Scb>g{?+jdJ z)S;!zkk=^~Uv?eOLR*cxy!jDjl!wwzt-J_7C?Y*%hhQZ5kb*xLwLjq43O_I+fE$M0 z59q)VN(>VpaEJ%UCjR8mpX0wD5P+O87{}=kI8K8TiE>%~OJPWgV<7yj5gv}5A86#H z&nExmC}@*@Id+c7Va$Rb8r}Jq$UZ>4hd*H02O7DLd;rg(kL>WrRrrJ4eO!Y-$k4}4 zcKu__*{KA(?+5L;_1-Rs!%HopYg&>@rv$t9G3N40HurJg16JZ{oQ043oumrfw7a-3 zx_a4<@E`7rFA$&Yizu&N(3A61ELFe)Ts$rIaq^>Idf%j5%ASp660)A0WfCUk77=E~vzlyZ8&3oR1a(OSR0 z!w%KiR6T{36t2}}C+ZC-RHw^kgd;g<*$!QV$d1(;P(SP}eblXO>^S%b{S`LNzYQpc zPwbrVIL@a|-NgeH9I)#^YB^@5Nf%!nsW&`!5`NNFyI;phy!2Q8*~8>`cnd3%d*V7) zjL^&1zw)o$h2%H9BBw?^bPpL({sy8JIo_k=6rNn`_3`dBz#}u$*~c7;uE&oR^a-#O zE+63uAWZviJz&|#*GM(!Q{VZ_cRu%>FMQ`q-}%aS{-P4+vt9Pnung%@U_TAZ8nT~; zj9SJ3BL?w>>MCB_Q{eWB64RM3|i^p$e`qQZaii+HV#y8!~l z@(5+nq4U*HqfN3ZfCfN%2h5ndQbjoJz9-#u&B96U&bBZDZj6ai#cAoG?ji_k^;U~r z^xZYtiY0oDG$fK!tv={G%0p79#N&P8y!5Hga7I9ybnH#hHl5y{3Ts(tvIhN7cwvke z@t#v4e&>s#hXK8>Jh)g_QExj)S%dC&Rzch^b+@Jba^GGu$Bv4oABu(DZ8|$$8?q`> z*r|61^|s>BwZ6cB(vY=L>pIHmd{W7BdN9gJ64%;>ac@^~^k`R7rNI-MgQ`3|+@Mp` zU#vzTh2R$qWJT^l%Q?=?tT~U*V!w_@@!1kqqR=cZ1Oe1Kra6pnQJ+*s*{7w8w6*7? zuh`=@BPtl$g3E3w->&1@f1ts88%hpuz~$MdFf_<#*OV8Zt+1Ou;t8Sf1Kz^65_Nvc z#}f!h4KyQ%5f$3+4E%5_P;Ov^J6ZsO&pr6;cfl*v93qMF9h~hp#@6yjedHgM=AZ}x zWbc&hCR%0k?Xzad#^HR^pWogf^>PB^Ui0h z!v~30t6+UmEDDe{F@F3I@V>MAyWBvJ%81>9&=EGU*C{ya!eVw?3yQdtm@2l|qYUa1 zVvdAGmnZ_vQ5o%~j+5gH6%XG5B@hU?#Km+}GTDQme{No$B&lzcmfPuc?Ec(5l?B}| z&1(UpqLUftgd;0%e5TY|EhbC*AeK)3jcKYNgZ9jvZt`apC2gf^_?;VcDcia^+Oq3xry)};GMApzuT zS=;qNyYG9wPkpB+aXYjNEh1^cQr5HB;kpfxx1o0fbF~37Q*YZlT_}rz>uy+hGGBqP zHHAPW*ZM3#C+gfV046IK-kYk9_~><$W{V0QmB1TX_DDZXUg``KNHV|Up=^h@7DFRw zf2r?bS#^*-7q8i(Trk7%+k#ocS`@^Gt@(NvE;j}DWY;I(9_ z1QAlkA!A#~EVl)GISE;{;1k}7Cd7Slv11sQ+ z(ix#JRsFdn8lh*(@ff(@P5HYP!hja;))!Y(DRwn71OjeE24o<=IT#zG!ti_?H`|L2 zf17z<%WPp;-i!>dnB`0|4+DB+V0CpflQLn%jtZq%=Ocr}j$o|^eH4a;8mgYy{gJ2x zyT#G&jd8e={TN0HA40erMi8olMLdK?_Y$<&LKx@sv&DL^hfTMftfi7UI>oD4{yY|X zDVchUM`|w$?3IQZtWfq6KrRn+n9!`2RR66;ri<)SD1<{*WPMuHs>lYO<<>rt>c6M7d&j=S@iexK0qGW|ZK-v<49kPUGioreH-7C6!CIaBnZ_0J4Aoi8|- zDf_ld1X|-O76qLqC^yh#8=A*JYwniXu-rz8$-vvITX+Zz&pq*jBjSn*jsSsli~@?# z6NPfT?ln?R07AQ;n z$kVjv$j2o!p|BYAIio3bq2#a!Jn@EKzJ|O~*Khm9?evt>#v6}xc-3ul=rlq}Hgr)O zLSr#ttZc@PK@r1J@(@%Tt!JlHZ)Im1brAjhTEue2aL=N557g7~JtvT3<248C+ zO}Flf6T*-vXb2>Y9&hl?vZD>u5FCRAI^^jXUpGzB2Uh&Bh9IYncSB%gn)xz&H*thoq=>2zZy?`AHLe<`|!dE$eHlHvl`r}Q37ZR zsG+q7BvNS+&MN2PE^?!U3?L!L8%`hP)M@^uYa5~L$%9HX6Qxw{LgTP8E$))Sl@}y{d&Fh8>`22!S`Z%_+8HmJNC^&(dw;s^OG2-A-{gT5+G_hpT<{5=Qm8PWZh#R~cYAO1FG& zlbrw<^}_SQp%TUZB@9_HaM!Y9_2ua;ey-2L5x0ehy_{__8VYXTJ|uf1y!;-?)zP;( zc1G|Q3Is@r+p57>a!SabcsTr|ltr=43~)8pY_KEE2FzCQ^O%00AYd7Pp5o6l{CSQ) zFYxCj{=CAUU!Zy#>yES2w)Epd7n+T%RFmx@3`s-SKd98=4Ub zecaZZUD18XF07Q>gAS0M5TYT_a|a*Sz~d%iS&3i1s3s?03LZnJhb%2Vt@0Zeq(c29 z!J$1u-J{EIhtPr%5V)@UJb?<<7koZ|#&J$x?zf@WpvzxYazC}nN*l6yocvo*U-T6X z8F&oVDE- zT=<9~JR;MapiJyfk{fG{lTrn61g@z#>$@p>-H)+z2Dse<<>A<<@o2W|on9Ww@+P_T z9e%Agt`7yOBD_FBq63KHIzbV&ys3O{nnxYS% z^TGMYANYYL5BbKAuQNPFe!67|(}r%8M#Pbs(*nY~4aXGzf0g+Q-7TV zlF45Nu&88g(XNm4>#vZXP0B%RC`ZB5!veK?R6XPZ>9bFiJzhcNY&bYoK!i@0N*T3D z)ASJv?dzIHNKbf6dKpr2S_{JNi@qYRAOz_YL2#E9hPF1&lx+`(s1A5LE%0_)ze4&u zs3`=W)57TjpW8xRIix~5lh~M~XO*Nr;NW1}gjoz`9Py?C^_OE!5=4Pr8^<&;xLs~K zoyB^~X;_Qf(5QBCVS&myG@rtQFt|#{-~t)aLyAYDz_Y2+@RU#6>?#K*QOgB$lRqL| z;sK(Fgc257DnXUeFeIzf!(^dx4P}=crbF@KjR2?kmtPR)yFE^Xnm^=8QnwHWE=#{K zyb(&{GYE!S?e?h$okTCGIWMAX(6^FbZ7(g1pI`{*z!YD*NLw<_WuW4^81RY#?Xm<~ zeGsb^%ky|!9~4g){@$SpG3F5st}rY3#SW-jU}1F#8&G*b1=^U??OIYcg2L&-Qn8Nh z1Cc#gEoj5oIRVnfe|ZrQmZflJTZ9<6An2q3cnZ&ZYwclCb5F@~ZKp*Er@}qk40eSJ znjcTDVQv%**0Ew#g)Th=6DssGA|&%~gF3X_8R6CDmT3W^rg27jWMz{hXLWb_y9$*r zS(^HyM+Q-6kwJXaIIsICO3Aji?UFS>lV8-tG41YvS2@aPSToWX8rlOrkj{^pC^7De z0Gm!4qpyx_Awe#Auu*lxs4pcoxE>5>ji!vK3S@TdDv zU{a-TnqIPeFAVQ7bi zS+oBYeg?2qg&!^nogfz!2|2J^9|s3+3Y|t>37!#Y<9^sF^rc98C2E%@FM^7pW(wVW z`a)hV$`xmXLq`!iJ3oj7t-$#Xb{hSvcLB~G%)+e(JJzxq16TmJESh^y@$VYVG2AULJpdNu7g;=p zK9>`SMZw9IwaxcCPmArVtcQa8N#XO5<+gqk>WP+x&tg~DGq@?|aM$4SR^EkAGME)v4HR=1bud91g9wMYBr768#V) zDclpJ-#$j}^?xI5yfTAb6b=-^u;q||Ijvo&f$@_^^!u5Bm!D~ESzIN_zo?SrE~SEm zSo(NnO4s7g4)C7Pvhawvu%reqd>FdOzk#>*AVr#ctZY00EBu2n~$Q< zpsxkO2LAI5?3@T`_>F`EySyW!I<@lT^1gE zM8Ww|`%-u5t)&YBOgB;p`x0Q?syKLK31S>+fg}W=j<3x)3BD2uH|V0b&7e%}4oFX3 zF}fWCFHCSi>_U~>E-7)(35QY!ofQD3I%>(2Xqb56L=zj$L-LjKW3#k9+RRM`_w8pS zoP=7me1nE)Lvw`WczA~nRu4Ibh2(Q0M9IS^TjCvac2&BhB8*=#)?z=%fS^IY7~5`Y zp(vVQ1LwO978QdCb1mx+3rB)tx4j2FRKVr4 z>r_ev!F!ZTBzJ3|FL|p&3q}blc2i1EcEtyZWfv}^BH+ay^rRNHz#yC}@-%e)t}-2+ zj@JwBVX$C+DFo)cRjG?243zryP#|3?%Og1>gG!_*yQ{oTkMyd;uT0}OAaGm@mr8o2 zU65gA3$>Vd0N-yeFls}GR>BV-XwGV(gO1iB&;U4ys_Il_Or@UA|6|{kUWiu}l(}2~ zq8f%uA*rf(jua*~sWLFf9VF^KwB0o&9Iz^x5l*ptgBy3)Vfgf7NEb*}Z8Aef4MDfw zQwy*&5~GZM9FA#w55|tq@YBWt#7UBc4>;)YPl()+9pG%s$&yvkj!QcH(=A6U<{9+i zm{=eSEG&;R62!eH(Tj^Gl!#i8 zVu#`wG}z5 zw*$>7I*i73Xd^PT$FIiH@C9;X;O!}Hw_`&&zvFmsstIy3esRCdC4v4XtD)mtL=8c&prUE2zq77#KimDn(aL*?<5ae;ct%}g4L9@%#Oq0fKvYy z|7LbTey5^7WvMrIArRbLqdEP5v-j?Saa`5G`0UKitai29UA-mSa^yIqaiXr^#5?Dld*{xbJNI$!x#xkPYF8H#Xgs>m z1cZI4Fj1`1Zyi&LbNjr>7DxP;Zg^3dUOin_fs3&P<(5WZ+Al+Fw4tvnn zD2_~ck{lsZ92&2{hFNWV-G=*)ot3F6QW#*`P87(&uAm@3f0`K}X&v6rTNJ+1QC~B| zeD3Gq4ABHXd{_*nOwb7eWSY>&!cfY@-bz6EC_+3z0qRrY9luMVO4Ktatc!p{Yq21XaST}#=x2}QzT|KZTLdoRO%Ll> z#{=g&l~tQ(EsO$-iE?}$o+`sqw-t9mF7v3V0x4$DX|P>54rE$;l62vdf8^CskO|L6 z2p2d4$oLQUbWY)T9d4e3-ZBTHs11L`1)vg?B#^fMw{|ix1IuPsfRGas!k)4UC1UkN z{RwJoq=27ccpAj$8!Mi}`=D2tE8=}nL+H;<_)Be_M2K5AS0I--hKRUHyK+pT2kUac zA6lGQ^I5M;>Qd0n@j^2R$s)2L&Qgfjq?MTD&<|E}5;jn*2LWKQL`U{kuLd{uUsr*d zQn~NhWThshYi^mxQlRmnB25BZYT1)e!^r}Lh=mtPPZkOjxOb+{moqUsHE(UC1XhPh z(h`8CNi=uZ36ooV5?8|n{%+c^!8%WX4WdePm=sht92qN4%&f1%ovY810ZOIx3zkox zm>EBY|E4OGtAF`iQ*`V}Io2+pqokrsJy$03-HrPDl<6$5G>tf z?nGpptgQ8Ewa8#SSW6yXysS0kw-5sxr5vDM8X?^{UBM5iU8&$5w_538WdMCR$10 z?n-$(uC&{uD{>Ph;(C`L=myxMOcv*G!GwJrPig3V6{eXIbQGLH()g>V33rm_5SN$W z3|)q`45o?j-7`LvTEaj|Ww>#gxPNsw#hj+gR?(v16S~P#1*S;2%s{zmx+sT4_M~q) zlRiF`Mwd%EbkJU*bpq4`k!_(wgK*Kv@(4L7*F(@+%78=eW535_9H4O;++7-__|;lx zEg@=r&`m3vWd$M&vJs#e0UlIiBMGcD%1o1VA?=u60{MK*YzyGCJQmth>2M_l$qd7K zBi9kdcUDM|A<0xcJWVL8D+f;s(-clXoy*22NtI$!Tdsuqscn-m8#QS6$I-S2vsZj# z9+C)gl06x~1MmnJCY|_Xy}BN1U$5fI5ue13MGAlSlY3uy2MuE=FBqB{7qP2B;Y~f? z&+dV(Bu1v;QEpF-TPvqfY6xRz8_Sa;nj;-5F+y#cVmIzk=_%lz+Tdri#I{hMF>BC> zk6eX>#+g!2%}Gk7s-`uF)`1y~aZ6=2z6&@QG#k+bUD%E#q)qI1N&C7c-;LzvronCB zmEw;dT_KTA?oM6S{(1jMrBocJKG~wltV*I$YBCORQP^Fm&sJ*3=zOM4Q$qtbRfvSb zSP?;^K{lGhw0YeIWY9(mmL`EzSCJqFX!MlOaHk1TGNz#_l}d&vKj4yZ$$+jxeVX1s zR4Nu(Am1C3sTPeitVny5wsY(V%%AjywLU6Uh*gRa3P|;jzN+#7!AD>%CMn<+Q5v@R z7(Lo3E+mZqt|dg7orEsZmu5l(KAlkr9hyL}rp?Sa%}{H6pgwX8a>G;q$rjinAop>3AfK^LH+#VOFY;D2Ng$TLW%9 z3h=uZrOv<+Ko-i)>YMn1w#=(Gr&ABygmx=rVp~+y-9`yf)yuA>H0m?G2ECy>tyngR zdr)hbwwEn4a2f+rSvdw*u1sV?^4h;hjza!M&^GxyuAp*CHILghGWPYvh3 zZbfa3_SCKtc5%Qb65p&=M3h-EpNQ&QHJEuQ>JU|gG{!OtQb+9yr|FQI%2e^Ljo20vb)U+Gv;$*DaKDgb3LcTK(BRTzar$(0B2I$HhDY0a)fA?K8bV-hnbwe?%vJhAk~&a8T@BUh znJ}4jINL)Ubp(0Q>kNtHxeM9{U$U3T%N`bIBuRaIY&OvXq1VAv!$5TwjnN4-Rl_5) zyimiTAd&dx(jg42K_JN~6|MB7X@a%QwJQ zh-9t`At^sjaoegi&bEoPn|5`yP&NydxcZ!d$QiUy3N_@fX-m+dNv2kFdxR?IvRNVO z6L%)C_?P+-JzkA)Y{%`P)K)OoDHcRaY$;V+tt(`!0UxMX=OfIb)2IzTdtIl`lc7AJ z(3A>BjsrhD)#$kBsu&o`n&?4uMd~0c31(5*ewan!D|3Ir3AKA^qBuF=1XxXy3JU0J zUAv7+m*}Yivmgu$!&Pv*lF{KXLVK7NNr0K~hFXzc1JQtl&Wzw_>C#|Sz`|KbPNKm> z)Hv7TK3Vkfu*Up#G7JUNTScdu@X8o}bWtD@2Lnh@8?812QNtl^(73Zxc(-i@HMj`X zpWs@(_rjWr7CP3))NJX9;(@4%5w(7x5QrWg&574nWXN2v+;A{8;8BG;KH?(r)1X=; zUPuulr68176I?CPZfTe_BY0hk^gPaneD4JWh~VI?y|Y>6BHbB66j8cPiV=+TOzk1N zj*JHR%~KlZwUv|&sud0bPG4mhNgg=PjjSN2Jk#>>+*kWip8C<5r!DC(~m%6tkKndvk1Fl3n7* z!_Tkwfz5)mda59}yXUQe@O3#2s)0oXR$zs17l3pw)QZ8kR;t1%?1JSbg3hth@Q5@?T z?#S@DrXC!1_B|@T6GwJK`C?MY1s>1IL-AL@iSAL_J(1X3^+{Wh^_ObaSTq=IqNw-Z)_ znQm-OpH1`q%8elnxe#Tc!pfyI?D#zIwMG(&t&NruuB@_g@77=_aG|;K(z7IN>PPe2 zY9xgM+x`Z9)xAp+)JvfXE$&o%L$q-nXbqFp(wHEUjGbuAxFwNWsYzjZ#A7Ty*V26~ zq7tjEkRU76Ui2x~MF8Jqvd46Pt>}-{=C`v>9}(DH9=}_ya#RVJ8D;JPmqgYE$BOL( zWUh(?B$GnW3@0Q3tBhf5G1|4T9BBl)@3&8k*LoYbkK0J!B+0ZEvYt8{e zXYLc*A{sn>nhw)0PGQ%gxJ1u(Ml#QE(c~VT3`3Act1<{|(Ni_1Kz##Spnk&@w zAHs*|P5Dp(dCpdi;pf)#kkSnko}jydr2A`HC#YR+)FnbQQN*E8w}C{)9DZMlB{UJn zI%NKIzv-U>agrVDFUBE%>geQwu$y@nB4xf>xX-7oFl<;zLv6(B-_*_&E2nYd!p|M9 zZ4wHnMT5iyg(!KwqWaT)9~mS;2=vRkrqZ`YtDQdFQR(N9#QqUOv)l#K~G6pfdreT6BqqSDkb z-~#W}=#`PL#Y*7ju!XPJk~OFzm*`nH1h{Ay*y^>$OGqe!X)`hDgNh~x!q*q&q=H5N zxQ3Io2ERYbd}TS&0x2z?HJq#G1Vt?n?tLqS656$4+CDn^?3A?OiO3AzE@V_L(4ldA zgs6<+!cw>jdVR)kcVpoQtHvNqoJ^7+6i?IS#GuH07@>1?dNv+iM^?c&5D!v=9@KL+ z(s))qq-ow%u|7R>1fEcuuTBe-=uNTrgXENUeUO-{OrmQNOhY9R_!4wI92ldx8Kb#Q za7Te^VQ5$Q@_UWIt}RmyY_C2BWI!K%CxI}3m`rN21d`eh6H-Jd$r6V!Iy|27VJM)x zb<3HmRRNx1MglL_Dy@+i@aEIv$Rjm9HlYu{0EPjs_6&fQCbw!UrX->ac1@4rVMnN9 zC`aN+rsM9jg+WzTg3$>D00T2U7Vwma5TCF@B5PDP6F|2HRvHn#eZV}sNrH($B}`}s z9GH5TcZ~C@3=u_^TAawY%9C1#$h-3Z(@y7y3|@O&%15wpI8Wz_-E6`uZGE zW>Beu3Q6HFOH|=WN_GZm^(wSWomC?)5J1%1#w-2?Ww5=0-O675yF)OtITt-Ck2+=R z%Z2&|Yn{-G{#3Aj?%4Q*Dgd45vqiYlhwG56{(2O&%p9R->4N>SYOp@6gSAHJgKKcwxI@6rAmErNV3e%&MJS8e1DC^ zl172+t5a8xO->F~N=Gg{R+z^=IAmRH-cBCL)>mp%8%pdNDA*uQ8S|H|f4;TC$jeHL zRQT1iP)?tjhD~O?2(*8vk!-Zmc?Q|9++2ixJw1Nc-klrZi5qnDVg|F>RkcNrur@=G zJg-z6y6n=8mtJ}yo(K&=pMtyr_8_=mm$^_uhTy=EKtE4SCpK++bFIRoKhl0Xr2jue2} zLw5*sJ}jm*Hd98qHQgj$urnIueE0-hTSBAC7NEd7ez-j2ACadhr`mBk+ezXt>nXYj z9<~yADNfEa9zYAj3R#@!AL_r_a*7j|;?HGP8!TgECDikvT_CLytwd8s?Yy}q5{iLC zS`KJsSj=Eal0_d%oWq}acvukt;4kB7_6b#>Gmk`34m?r>AcK6V0bho&vPXm4eIIYH zmY^Z&OeEB}>0$z|$NTG*@ndQuC>cY~YfuQ*$j2I$t)^mGe2gc}&#gdh)0)#HMZx@{ z8r7}AJ=KB=hC~WRxB+1sUSywK)@Du6WzQtM8w1EwrUjM=2t^ijWBo+p9WRnT7yfcw z9;^Yv_@FF;C>1Qv^C?+c2#l>#m{`%1_$3tdNvbBeMe>FcM2mH3fc8k$gb11YBAMOypn)+VL6J^;v=A7&Td>veNCQP~W9JeG)Jby>OH{fn z2u&610a@1)-S_!Pp%y|9AZ$OVWLPSYd|IWT%|M8;)nJIxMiDD)YILYFpu(u0p|mrg z!lZqV?V_?|ih(jZBNI1x7wr_XS;6G#rWoh|1NezGGF+zeX)~D=I@kZ&P{kUs>t>Mc zW@mZD;CkLLW)Yf#8KhRLkSmQ95U`6j_&nX=G10k4SqfJMYC`TApG@tvH1)OddU=Y+qt9 zjE)rw)y=~5A$(nhT!p}H*lLEK{-GgO_+Mop{V#vHgi2JYE~LUro;W62C>{W4KpKZD zFozT&m&QX3@|H+fIZ2no1ins5`$UeHaJgv4-z^1pZrX$hX@MjV+E$VDVc{DoofiBR zrLnUbC#5h=i!XaZ6fh#S_!*7QSwt*g}4mGYXYh9fDKh=83?{ zmKqdYB!gBTY-XI4y{w!d#(c{ZrI;a@7BDfcd=^Wxa!#O%GY(>;kO`7&~xoLU217l_Mkq zFv`HZaTY=PF1rf_VkVHFwvbKZ#lsZ>o`eGO85g0qE7)AR5Xc`nr9RK@=*&y zW8yX7QcQ-<+*Hz`h)P>tuTHcv09-jh}k*-{~$HB{3IB1M)K zh4BG=yi}Q-#NR1w3$+Hbr>0V5Nlu}p8&(%wmXgT3@v(q|QNe6zmPDz_dRunsxE1rQ zlppf8%^^HwC48}uO8JI$R0#7T4nCJbNC4k--| zsf*h-L-t8l%U`2~3xQ8X_QN{RZzxp3nSrg0DkX+NS|3x}h1yaJgpXaeuQ8 z$I}9EDHIB{AsRU<4y+D;^D-WndVq@2bD+N!(JKhB&1wsyQ$iY4fqN{>osfpFVB$mA z1l6iyJ6xai4^n<;>eL*yKhK@s9 z6pgf?v2lboO8Pnwcghc42sVc>PCZ-MGC3^(X>>pvHd=XQ{RX2fEM2_cV~KiWoE4;` zJW=Et2t!cgi0u_T+UO5(KXtzFNZyy7GfcHnC6P{lSs_X{ldoTT*l2i->tdJ|Xfuz{ zYX$KwCaO?aXZ9}2eH4n)7E+LeYl1qoOZcLqw!+_fb}!JJw!K`LnVQDZ$m22X6#T8B z``r-6IdiM&jMr~)nw)DOs2h~;+f0bjW=5y7vWp)Xf=$};hN~c54a-1TscPvaUpWYe z-cYHs-Jd6neyhL4BntA2f4ZcCs5dZ(8&vxKi0T7wEADTdp~mE2^%PNl8>M9ME?P4rr$N=pfI@CWLz}@iUu>UPxcc}t9vs%EB(D>FdIh3Ggfx!c$^Xkmg{ z1>T*Vs8RROVk`nlMg<>71X?QrXmF>fRXwpB_LoS5qS1(;&EK}fJsi-KWKA#59ezaR za{uqn(DvTP-gGT{OE8c_*iNz`(wmo%q&XY7MTgJ8ifa9(CW3KHwfRepusWC0a2-te zqN$MQPaQUqY31pfWX8QfO$t8bL*W z9sN#c{cTZ?U#S)IReTFHv{ov|xsWRE9h!-vTzvW3J}d=bv5ta%<> z%Jww1LF4o6=K5#_2Q?Fka+3f<1o3fkPCNRxWj-CwxjxOG4ocDD z@PjM;@WgfO&4Z@NVeSqsKD#*MH-*<=6sKiRLT5Gk%03NB#bel{uSL>n1hpg99AJE~ zsua(lJbl2L31MLZ#HWYfpq`rx3G#jMi6W12eb&f_3mwx%EIPA_%D&?cHWCg|g(Nxw zd|wR@(Ice0L*sB~Yx0%3+e%+~*2P`GlD+J3u%*BXcvH-04F`H@sFIR3P?pH%q45F? zOe~QG{9#jUjfLJo84pz0$)3*|cCEhh0B7(FBPf4N`QeVJ*~bGZy$WgM5X>})jG(A; ztKn?DCnT#QVHJgfQcPF3Y(`0B)zBt(NFFHnHxYtPz!PeexA-Vl(e+Ogs#dooVI((m zS>&6cOE|DogtKrx>Fe*%u0h72QSf7`~w?K+0%TOgI47f}ti~pY2L`H+^iH2Ev>^?(X!LwdKeuvZi$SbjZU; z2Kx%*1>~WyFynj&?kb9VFOf{PA|-0kl|>RVu~lUghXhl{J?)!Dbe;aP<|H{q))d#L zeUV2OoH9`Yx^=lQaP5@Dc7XciIRV63>{3Y|RcC1lO=)n5(&uoE;&hrCyZqf1)5oC_ zyyws~RM>s?a@pcX%nI|yY&rYk^7;uwuWtF9FhXytc+v#upw~~-%~42p{X`4#vK|p z?V%tOybV55_6(*uQ;W~9ru@(QhDl$J5L3a}^I7?$-4ESfNA6`Czbz4Fu@RgCP zFXnhzzrp@3*FYHJBGuN-^~pF6YFsEB(+nJx5_P`W<}Y=inen66a~juEiVA6&^6`vQ zvAZH>4d|2;(Q3#oW+N!DP-!A4o-pSt_ucX+tUnr5U;^%A)El6zz|?tZ_bJ*1^g#0A zCuT%QJkDCV1QshZfeMy^iK4OGiic~YQUM!R(Sr9iJKd(ia60bNwBd;6Q(Dtue!>qC zTK=UCWQfaWZZ+$pFKi<;O2!YJV^?X3SM!+yDYzEhfjJw&onn+0 zYIwm)rH=h@A8fd{iK$q-kKW(4@J+qpQX&phqAHmUAvk2kWqbo+2)>mVAsS0j!WSb% zC~O?&bDo-87*W>IlE%>>(mwCy)Ckcbdb$K`)KP&)h^nRl+Pq$H*)fLpjVV7gPizk1 zAu7SNRLn;4A?rMUzqn_r@zk#N#riBBGYrFqK+j~YL{ZE$M<4dJW*a<#d~JsTnT0?s zN?H(RP@vk#UTvA*RiKp63expu4WOx8g?jmi^awTW;u-sG#En)EeK=K1_F6TbA64hBd`OCQ+4@LPsT-H^x}gNYIG zgCca21}yTm2hA9jFJP8;YSV znO-5GPKN#>Vm|UM2YAb1U?}{7MvT};CViM#nZ;>FP+9UP87b02fbO9x81&8cN&hkK zqhTT<#S*+XTSG!!8NiJtL*jeNUurJdEHqhyN#gJMEay+tb(mE9u-y(6{Hlm>5hQ2& zDPP-IT7CX=iXuHq#tHX;%mj4hjcltg)|My-LIY4d=r}<3EF2NdSBFb<4Ttstzp7Y+ zCPb)Kj(?zn)vp+_uK=qW$3#$ZZKjzEVG$HUZc)aeJuE&awApMi5R$Dl8gRDxp`oUl zpgThv`bkmbtk2$Y(U)4CqAN5Ia5`1WKx*?BKot~?dRGQe6jUk$xVVpIpf3In5mLej z1;DS?D&-0V3Wf#%0!Q6tSj59QztP$=;gbq0$`I5Zfm(;8oh(E)tv*vslO82sk2mto zzF`HLAtV$UxBJVCshoc!ihq#-lusV_Z!8>vZ>_91lM2Fbd?PE|%c&w{ovuJzMJ!%B z#XO9Ucn#j2$;1?BYDTEqIY$EmGN^RU6+W~Z>B#Vm)wF92nlw5vf!6&Ss$upfq*52{BWN1- zW@TuUB^jZqxP={`bQH#_qBiY|{}H~*k|vnM5=+uy@g#R@03})~kqe}04ecMGD29SA zC44?mP(XmsL>?G+Hp;(f8WDZU+ya;(ZiI)-DS;p~+}uu6Ln?s;is0vm9(F?b5M_{6 znt}eoq5kJXPXo*}&j%bEPKxyqtzefPn>$Fqhp?6A(BgzzV6MuI(dmzody`sirdl7K zR4O(JpFb{?8}Z}g_!yYb=g3TPA0?+vKKu1S#Rc)bJB-q0Lq0)S4#Nrs)kY{Z=13E+ ztZO(mwByJUULHGMoDvluCKP55Q|vjy0>u-h7$wC_s6S6_838ubCdXfR*<~76;@7O; zP`e|f{L-ligcc?alb%sXreMT}DHbuY{)$Y&iPejAYce00>ioSb0k_bH(Yo)5SYGRz zNgOp8*MegRH8hMW5}&AuN=T)%Q5X`*)~ARwu+^Et{pI0tR0AbB2z?LHyGr`n@6uWg z^5)C%a2VP#cj`>nn|9CLCfT%m_IwUm825{$tRT*u7^)-W_^3$dYhO+Y0BJzLt!47p z?~_mpizpwY-$Rs%dwIuaq-Z$aXY19O)T9xAkb=D#tDz-$%Hu(s1t zxa{CnArgkmKz3JVt(AzQqw)UDTMrEX_V9s2hqvzAzWKoRZJYYJij=qq*&oiw>5vYKrClDkobq@PZYrPv9)FdL#Y!T^`*g3&`j}a~28P^` z?g)0Nd5$n$Kr5jU?eONZ;q+@Y%s~-rm2DD|Q#5zho-JLS$>ZV6`Hh)ON9t!Q$cQ+l z*^WLV(=wGg|18O8tIOFQlcPL_!l9KyiZEJD2($NZfY{R>WgrC)6s#gVQ)8h=MiAxw zHpw{ZVk7{h$tjCK#62hybmTTbjMHB%kQ{v~KkH>Yj#0-zfY79pB!CofiAKt>0I)I& z-lP1@QC8)+RD;4ov>}0c9o;%zM56;+T!_PM9?ng) z+CpTeRN9N)g}9|THWMbWe1dn;WhG_7Qt6lmujI%W0opQA8nXD9o4KZ>f&%(rN`V@0 z*6pq|O6fLc24LjP9;Dwx)cj=5dV~%tsGM2ig#*li(bLLGx}Qc!^G?lW6{-Y}co0!X zb_jFu7KG?%D}fOCn-f5Z-x1|nQ4t4OiszIk3zl1EmHx8w{|KKCjYQBaFmyZETCUU! zGTGKyGLSBtM+d72n^$b!wrKp|7EV=Y2cr#{dLmR)bia~QLJK79+4~BjRLY6Uki$%J z%CIuT$)Le0&-n22Gg?g;VHF_D6D#9pzVZgVlaW1>ustIe38RG?hC(SH=e`iDSWe~0 zQOm2ac}P=5orM5}BDS>fRqZ3Y7^Pk9gyG@et8nmNw=y}o3sE^utf(WCHiqzHZ!S-W zvPmT};uwQ34jJS`%c-DWb@)+J5W-s}jCO`$z1AifrwOKlk)3chAb_J)BdE3B0Z}Uc z04kLV04X#YTzUAV2x6WcQ?X-WDvv5mRYM7>+&$YAgaLw-BMqP(q~AmIJ59f^SFMyq zZyX9Jqg_Jnh_w=+vn&V`)|yH=>W(YiBdaW(DhuhVp@mcxM_y~C+!$3h7m~z1E>cV# zaA4?xqIP8%J*d^d**_oMq(~xM2MTScDXks}n%t%+sER3`S&-J~&Znh9mIcbvtgTXR zP-mvPvGhi6fyc6zCwv;M?+IVth%4KqqUK`TYh6nONheiN5*0q-V}JrC3LrI3<6J{0 z?D+M&8a&UM1xM97J9S`=NVr(67Ki6;Q;-p}q*c@O{xdeD1FoGn{fzM_1Lduw+CVRuD5@!=g9Y&27e1|inC z#0PGvM1l@?Xw)3J(9TM`OarLz61$2qUVuGW zMFforF<2&>L_WQF>WWDE86tDVa(%SamLn zV<38_XnX25#v`^^Eli{Mnt19{F_gauQSrB-@@kXx0u65J-&LszOjn+;gQIYGc7y zT`mN7yCxgKx1r^b&(tl~!?R#0gjgf+%2&uA*W4poP7$w86i zEnt4eT@z;3+cKFBO%mH=W5tZv-AS!%g|!io`MO?>Ph4NGSJ7BY=?a8dCs++3#P;-i%Eg+m{^6?Kso zzN%a>ni@`eRl(4+jOgv~7`8D=3&0-_7Q)6=P)o&$EL7@r>Acd8=ISeoBl zf?ez$(nN>R&R^Yz#&j#yaUZ8|G`Y{=ui9v{Ev`v{t!*WYXWCOao4Qb$%1D@qXnc9 z#}7@Ii`YTF90G0^E;aOoiL0gI0+(*W6`lm^v8vTvH8cm))iJd7RYLr#s3WvgBRZ(f zRU@Q8x@yJ~NL9mN0!ciS-9{pVCIor2Ue#Kcsj5~gWwJ;Ns^)@B3B2cat8`Wf7d)Si zSMj^LRa#n7)lf^ZO~HGxmHCX=6Qk}-H5y#N6Cb*nXgmNaqcIFXnrXt0q!^NOt{s-e|- zr-==tUn_F8)@qW4!>NiwE|m~!>Sn4@McqV|^>m>rOod%QD3ptSa$6$>Hd^=$J}`>Y znXOYr`CwI_?^UDb7adVtM4NCco)hBlW{xb@j4;K!LMZ?u#3KY$pdmNL)-Z8(OK+6C zCzQXzSA!&z(A7YQJXXYhT_HR?xw}$VI$mzILSCxrQkXb=Wd5-D9`~y3WX~ll8FeF5~;4k*vyl$p**I~7z?9^zPqtBM*-@Ix~!UO04NmS7{! ze1Zt2G8QRn(wOHs9hX&R1JZt|qS`bHWvZ+{ZSZMun>v-LYV~Of0I5*c^ucZ?gu_S1 zjAXS&VXUP(6A8`}K_xiPQd$_Crw0<34~>Df z5r6V_b=Gp(&jnm6Q1@8PvTK)GPVLg?;}1cX;m_sxvk`x;fE<^>zsup@M)-&LZ^FM9 zz`qy5zZY4}H410S0SDV^tifh#&a~FFEt@iLZ>uf!FX`4;jt1+aj=j|c2*(fX{hHDZg@Ejq<=($I59cZDQ@!hyWN!Zx{zZ4Sp zEIIqp)nBD@EUU%2CYrjO+ny9>Vb>)g46oM~V%mr{QIi8#$*MxNLoY`)mI`J7b_m8$ zS^(A z6(Tj)3|;W^1zF;p!B{QRHPd#c!^BYPem#tH>?TB&CRCZ^lK>NsqGv^o2KRDmxMPN& zVR|Qa(Bh%NRC$8vsJv0*=wEt^mQw_EK#i?W6q!r31yj4wQ6B^tA66uSZwYOR4%zUD z)Z8rs$T?bT1SK!Zlohp1vjS{ZmMXmsgiZadkK4c2>RFnEd+g;?(9IL1^esujvDP18 zr-J0)Sdv^Tq7Ck|$48psDDePV1}$_1<#kqA?tN2GMzl2 zDNy>nsX*;^fk6+3O?TIsU@!2%sE`k@1zoB=(Be>JcxsY~Ur`5J4#pZ#j0Pxns>ql-Z`mx9vd}?>mC+34icSpHSY3e;bq6+2#c`Q8OnP*O-)Sa= zqpuCg4I{WUAo+mdR{>f8NTCM+_(p(>Ar^wDRz^ilM4xI0M=UoWy_j5pLgATG=rcU6 zDC8R43)r|X9hl~PX%0QfU57B};%X}xD2^4rHGyccqae~CY-Wrj5F`Ro%MsuZd`QC` zaG;C>rCc2Ioh17#T~fpjD*i<2by1H}w#4|G&S>}r)V z+37M7!v(>k@u&lD!Yi|ODMsk9G{JCyIqCQV2+Srm2@qILfa1)6L{QQo1oLQa3Y2Ur z8E7NMmLOubmpWor{91fGsuZg z3uXvI=C(#q8Sp?NV?nKH)<_Y_Np~Y%i8IoeaG)Y4Z_qSkfkpg)LtFyIBWDY+FLw)Q^sp`zI=e zfX<-xnRCB*;#bG!SN0dtM+`~obt!C>g{X3mruE^vRTb zE0WS-ri2>1M6DM$mx^QZ0@Z5dK9jaf>~pdPjn-Q#MtcmUMhsOVn-NtWKU)~7h;|x& zW7Fj(46YU-iSkBU1Ql)02rZ1(5Fu;-U{oL(KGDoZ1vWV5OcISODhJ(=k-528YYy+`%NtQ7`uJ<$P#zRia)o`AOpEvP)oC^hPTc<*zWH=H?GV!RiRp zZYp~N(ZXe;-SFr^?$ePQQVN5wygGPpqwNcxJ6*&mS;}QNlguE&@CcArIPG32J4&o{ zEP5j7z!8Yi_s%Ftd?ipmy}EQL%;*aNznyqv=nP?V=E;O)>YF(eXEzQZg;m-OJbXbT zUPW_=2e=m2mw1Y#I}B@p_9(6wm?)9GI8lcYI`Af2=F!G^1=E&w+{lGT>?L`48p;G% zArv5OhD8I70onvdA71M7XAK$+c*@kk#I6Ww*jN+@4{Af7x;ab>xHNW`$j#hK1f~8V zQ7>2)mXRd&&DJnpM_(PJeX)H`JY1oKczj#2#-*{l40JNK8Qq1*d#ntTLX`@Y*c(m6 zdsWhkXcB#UmDUxeMFwe-=ybx3J#-rddjd{X-`Gx6ajj@h$f5JZlweb;kR=Wj6;;`- z?jb|6UZF1I6tPt&>1P@wEfkRGiATf1xq<_NNO z8zk1#kl8zDB=7+V^(CciiH{&{QDu~_yp$mwxZP@i3l`o&7BgGM$Ei^X*=oSVV{_u6{g$7%(yBkl^`#V3`Dq~8tw_(BdBuYCPYzF!TxTj$VP^KXEe=xb)|ZO-}m}x zz}F5YH3VtJ*Cj*x^ANznD(a9+=IRcWAuw4)MU6%op;Gan5kLF&Dh{U$$nZ8wB!#uK z036eXQYUD-p%q`gQ%>QU$w(;*x}aCE?yb#=a>Kr1YSiH{B-|=Oktd}|t`=dS>4Wq4 z>L7^rsfKqMPRApzw1U`ni!l0#eFC1%;h#!YQUZFA4n?GtyQug;VV#0C2IxUDs_6>< zkXAUc%@+Z-W9;}C3od{+L8VO=at6r!;Yx(cqVrURFsHfPj1&r0?xK6j)T}!(A_)fH zO%tMA2DT9fd?p_pYbJ9ih6fRUISSS58_QoqU;H60j0Td`H1XesExi*(RJ460t2ec6 zNDI!+{klzTcg1iKfCHx? z6n{0XhiJ>4HT6@wNOFO|?%PG3F5t_TW8H^+dX9wpckh3oFV%Sb()(X^$a;;1>)d7=CBEw?>MJ+Eu2#k7U(U(`Yk9;SUMNU+RGBZ^y zhnxX9rJ)*7DSFsbULN7_`Kun$3|of; z7CE;Be01Q48&A`3TuS2y4fv3{O$m^DHF{(WU7$5g-^)9k!&lj_1;Ml?w-X6BDVs|r znG@*aXidVjMnoc8kGh(pLZhzWLQ?1ro=JFsM?wV@qS4^Vs087bsOeyZ-YoGoX(luY z;#FLz%8?x9BF%b^@x$(oTQqg2+LeVUN)X4Y0rhE)M~py&PdR#fe~eWP7}GxHng~N_ zSdt-pQ6jPjK!QkFyO+V`{IzlZd0}Cd&$bl|FYC2U@{vJw7sE>;`cd;3-rT59u;jHt zcH0}KC>t#YB{RzFdn5&Q7ekfyj6o* zM+3i|-WMXUxm29uF-usr3f-N?tjfU8?iFmQ?>FlFWR!zlBBK!T3aJw5ZRsg=Ru}p^ z)gsPaqp>)>4j?N)|q4uUJvNh+e2M!*+RM4y>r;aTuf%m*^ z5tMsXPjEKlMru1`A+gd8PTjEeQQ@1fEaAEVZHo=RWI|&vY@#owXr?zdp#>3NZa|}B z_04sLi$`i|ec`BZ0*LFiPCLS-~RPJ|yTKf(W1HbNRZ5c1BR$zh{;u zZ|WB>nEhk@<-%-#bVRLRdPD#0bfMf|DHr;SLH}3@yT?2ZuJ!$!YlVK;%k>e-_;jJfQhA`7(UmsymVO4;|LCfaVq65W1S`prG5@CtQCl64 zFqGy^S7y-7!h{I2CAZKUqq4yGj?xWn0H4K`UMpVy6Da2$inn0MGiW5-5gGHi|>*auUq|Je`f;mC42qn--8Fg+Tl;P<( z4S4~d|EKVJm?D3|qcu!26~x%9h-3?J*@6md81uCS$BL+Y4!sk_g0O`{wm{Q>gCSB9 zNfJ>3L72#N_KXlz-W=l9!UXA&A;$ynNi1v?YGt@}O$ItpZ9G6Pmg#_mc4BXrF|h*` zs1@UQlb9}K4H890Z7~Q9x6rt+Ku<2i8b4jBLmQH(PIxvsRm5L9I*BOPBm=#=y8$ij zp3Ef~zUmD@dlct@lWkEVdo&Mt?GRmiH^A*Sd?LJX3p+t=+_D2qBW13v>8!9wY9yxj zLg@4+dMz!QsKwM9rQ=a$*fS}KHr^SAwfG}VxHdu~Oohr|Ei$r|3QU8?Zf{SQtw=nlMuili~qtB{v6#F()Ca1)ZRd9TE+)@bO}o1&=50GR0SsI}*%m zH?PTE!SbAEb6|vGND(5&YJu>hc#(+71fxk~E@Uc+#y?2ED3UX{;8kP= zf1TPWtC6CjZBy!Qmf9o8Z2T(mB4Ajv7y@)VI1agI$ExDl#}4M;-#k1W)kc!|%f-a% zmJK^Y2i-=x@PqoIa3SBNE$FriHR}#j@M;IOkCO1izJ;w!9eu5aYO!sIH)!2KSvUtn z2d^`;oT`f>W!U7U70l*;jFDAqyiQA8y-?Z&k5SI{4^)m}v|!T7OX2T^D!LDYdINkZ zW{j}b$-3sNDYpu}TqmDdsJ1~fNH)aTTC%CG*zD%I!DCZ#tVEU4;PVamG6TLm%zjx2 z8q|#;ctr^QW(d9@1Ya0}FXCs2nE}0cz!jzi*{#!FK2;ALLdTJJvo0qNjv0x5G&k-) zQXmfug$d>Y;g0@s>MO_$QkQ~n1~*;se7RmK*URuq%8o8xVF`juWp?`Lb$Jax5)bVI=WPL{pCe7}cF!=IlJW9Jc!Ts^T~w9+N=bp_|i{ z4LQ*9noewyL~&-?&L}%46g^ zi6(Db(NqIci5r5)NPbAZ0WH8N*}=61(yFWo3{|MA84p0E5nM+%?QHQ3WaVhQxz6r> z*!6y0oM<=K4ZHJ}y4so2jFJvfSn!+chJ-Uw7nS9-0K7wO7Yy|z^n#PBhuhk0yr1?v8ziL>5QjGN@wTGRI>9Lfp*HxTfjm>@Q_W1hHZLEK znxiv{10P0~yLSCJ{F{YlpRGWi*$TSPg#j@GtG{xX(^Q|6t$&nXrx-Myug|0{HBagelcNSoP}UON-b_d%?OtfLaP_odE1H;5o0*yLn3@gf zX4GKtW|*za@Ktl$ErQFLVk@JOFqBME>Qb!{ltkZsOo9d(SNr6^kUr!%IkZMomCzFM z6yqG;IfO(1`bj3DtfqrOEFTzLRV&Cq4)=p8D?L-ixqlZsMs{X^S9C}T7=HSP`k|lI zN<&w}9W~|36hTojMvz!)m<9kmT%Rp+us=X1Sl8JMAR{tS z!9Gh?I!VMQNhGE~STE=yN(g}D9s*JxHwuRSR8*)e(kk^u}C{9gRB%I zVH+`@K()Z`(n5g#f=$HB+^}z_&Xb4?%J2L_2%DA%;Uz5e|mnA^5C?8oD-BlR`pvJMdC!+k@dl1YzeF$EVP} zN#eLjAG=V12lF*=!47LX>-cd}NIo9QBMBDE9`85_CZQ=wU5xgxXLj~8q88C+SF z9v#Ly6(UPCp@YLPgi5f$uSEdygP~9n{<+6X@sGj(WV!B5>^ zR&KU2lzNgW_?a^V!onivRGh>sI)ivaD}e_pc&;jjc-h$oUsP%i4sqC?hM3~Wfc zCmuT(#=4MgXQ<7YnT1=bjJ$E`@)W!N1F`_}u1+qn10jtvESpB~;A4_#ESk@(W(RfBW9e z`!*lgvkzb^_IsB7d%tI$`#bk{?(f{+xxaIN=l;(9o%=iYckb`p-?_hYf9L+r{hj+e z_jm5^+~2vsbARXl&i$SHJNI|)@7&-2ZGSP_vJx5lq8(Nqu16i~&D~GOijMvE^Ix49 zb>ffZZ-I;ZUeV*+(Ufgp}-K2=Co!A2_UzM<0p)jj6 z_R-!%--|Yk;dabw*6T5XUCDiW%^+!vnKLhI1in^$%uXYBk+o1073bD5ADxtm+ zsBc+9eJfD^dPMDPzW~(JapRr-76_k>Q`No@KifO~BV_tc!#jN(XrJI4KNUawI~`DEd>`^Z zv7|mf2kNilu~&6RsIPXR!?=`pR7n368?gR$$%p$0Wc)a1yh%u32GT#c_6Jsc`3mUU z`HQcbmxS*?!oRBop?w-?e@plGVeRdo4`A)*N1lE5iD!S}Soiciop_fM``kJ=f6&fc zdHTlf>TP}q)p=4?XJk~>=a)c!<&sgc0Hfj!OQ?4M^=(VW$~%Dio+Z=|0`((HO86vD zPZ`wv>1%v47JFzNq-G8c+V#GXg-zH07XH|CJ7~D?v({j)0sOfTe=d&xToV0x-ZEJ( zScXPFUy8*}LgU)aw_2aKHTVx9`0X&mk3#Ti25+}+3v({oLVKqI?h6wi2*K}#;8QB+ z?JiVi)Up2lic{XmVE)5H)(4OR^X0#F-{%bu7OlGg@5|l5!Z zJ>$k6T#@Ko7;$2s?s+z`&yCr0hrC$cv0l}AZ(`B0KX&cs4GvrMFBrhb@+vP;!j;#B6m90gDZaNEnMST zD=ZKDudM9vb$3`FR5Qg1$NJ{w_a+wZv|@2w{c$z&Zngf>lk`*X9D@HxPdnDB?q7P3 zI+ z4sO{7eI;f8PM?=Lf$7~l+|+6(`M}D%686zs-K3W)0<}v~-cdwjID*{;q4Ub}W2o{t}tKKHmcDMhifB$GLqC44!!W&1)V?d@;K- z?)@1xRW;V0ebjN^vgVgw(TRPz|CI@7yI8CzyJ(mDTo-t*r~6+T>&~7zQ?S$1uI;(> z3}B|DzJHV3VSOgYU#ib;yAm4w^`BWNp19ba*`e}04tahmc`}^m?$5xi|L;AI#fG7e zJk|s2PN1{Dt#ya>_SS~%CpdfllBM}S5BVQyeeNp!0`mOo*D8}5?gy~SJP~7V=+s+R z2=!@NdxUzI5buH|;?HacSMFQ7;rZz+?c;sWrSbEegs-)5r#&|ydEXCtKWy92Z2WeA zqVL4QnV0^DJ=a&ttJUUHko;LJ>Y+|7Y7qYxB1N4C+$ZP#2j&@{+4!@SiGkCnPEWqr zvA+z{X1;hrz1H8zYYoxj)O;myvDjCR4cJ-eE-}xw*Q!Mo3VYTDXi*4%3GCE;4lxaL z*5A9d>ixY-O=&&q#;ucA+@Al|nz-}u0Qb&?SaF?r*IDo}(+fYG_U+ zJqby_P~#rhk>Meg@?Vg0iyHAKfxn<<{)0SI(0_JuVBDUEfsv4b(YNTtkRw_Ej%epj zV2RQ@?ha1#XHZj?p!mHAAu$6mh*4%=3};N4SLqelh?Sh1;_dP6)#;}EWXU1>2sY} z+=Z9$tP4HIdSA0+{Z04h;T1-q*bg_yehz(Q&~cxFk$avKf9-{DvSEwyL_dt<{+wff zABNqrJ00h#HLp(OcjaM0eQn<}-rV3e_*Bk@{M_*H&`!_66wjI)+>F%xPB(5(_IYu; z;|_aTI+pc==Gd3l!$U`fnX~S9<-+avK={pU_02{`tp_>RgOclWVe{H*-Wj#dWMkie zxqNVB)4cV)Z0wgSHE(x1HDG-$MN@v!v7TA;w!~@cUsF`%$D(chNZ8gN;tYRdHo3!1 z9=mhRK5TMZHF<2%i@~D1cnx%!1t?68vgKBWmZl-Um$qncNIdaQtC#q>L73WbiajxElLoR0%jbF*XN0&{fKf#P3!YGL8%;88a= zWZi|YG^(<%=gjksnTwct(0U0z`^sk@+2tfLeYKNXyZ|e)^D66q#%K+&KGS<|V$O+S z@>SL?T)3kOk7MDI3N7)sy)Hb$R*%TrbGQDcYY$piBA<8Ex;XY<&?Fli>$dp4u#4H~ z{8#V87r*x6MCQeV)(2wJN-=7s#p1VjVT-u-%>y_G!MgiLF`l_&JFG8aHRh~U_-PKt zzBZ7U-RZ>c>G>|OboS|Wk0tinnE_aGOR(hTk-fBwt50A^u~L8-@fj?e4=l|`r{)T=A6WP&wnB|H#!2dy!V>(e;Lc~a+*H7?z^#( zVHn@TBhSZ~k(fYxwvSoF3mCUv8H<*fd5@F&%T@O#Mx4x_0K@VJ3yV(6L-3(DJK0+| zx^p9QBMbIbSGp~3*1rE0eNT8TF~`f=xjv*UI;~&0;_qYM7;(J!blscS<>VgU_m&AF}p$UxkYi1l;> z1L1i&ua#JeI}`Tm9|OgO>NlTo(%-n~8?l#J&vQT8d*AxUH$Kq&H1x`$VjjoeWh_zo zm!1#U^G@=<_1{jMdKqxff3^;1sMx*m=-p20)cS8FP8ET#>i=dUKT>p>KfS>ne6iaM z{J?vAfwT{pDEBHim0!4RWNN3=^b_pvFLs-bI&o~Em$`A^TpbUqF=`k3To1hBS(*K{bgdflDus)T2Zhq{0kmpC) zUz;Vo131XLbH6@I_!-Fm@PEUVJ_&iA%Kh3b;rD>~`_U4X@E1V+uUG?1$a05Yk0pFB ziWlXxNH<@(L6vFANonBl{Qa*@4lMcVBnXdUJxxe{+Hx2Kb2w zR?CggzZm#ocVYlO?(ORzLsk>(e+q`zpAW!76kE|2Tb&(UJh*T1;8q!^ zLv|59sr5xHcyZABsS7XkOZbMc6#o+8uVY0Ptyg*g^y|-qtY9IG(>&{M-@+la(cXr;=W772E|495+ z>nm|-2bfxaiJJz;dKBK`^t_tAz8QzvOJ%xAQU4RD&nW7sqP_}dx?9~w>fJzn`x5Fq zfcl=0`p0qo5$!N-#T&XMa;9GV^KkVE!E36-4w$EJrt94i#>#eG0Cr0yALyq-F?tgmu z;j7{6f5_#OzJ-N_k>MdH{^Z6dVzCujd;KAp_zoZ$>0TUYN8Nac%)9Y3#p5qt7;&7x zz35)M2&-T0)S4$^qc_2-=jd#93zk!#UN{f9Ti7eSBp(1r^E95`{lJsf9ockra7`9t}WT*8@k9o@VdFxdP`&MetJSMydGX9pe#l~Gk;>yAN+}vDoWK+o} zF>rCyeDQ7+2cI}`BLCX;_NseMEi4Y@7wq&Q`+vNmPw!6cmK|=)zU;3~jGj1gn{^Gb zx-@*Rpx+nL@74G-gg=|`=LJOkP5S*8hj(m0kn0DW*x#=J=qBs0o!B=ohnFk9blrsY zb4<4G=AEK_7qEtT`*YT(*TdZMsN=lV;09s6v)})UXJDCY&jGIp|M&9+{@)O5Z(Rn; zH9)OPNl^%IwbQZAjOPe<36DHvEyz2(mUi;5i!=6BqP~ld60I*ev>U(J`X>eaEJpkH z6VP8@UtBd`v|B%IcYOL}@#wLW#bYO54kTE};P)h4Fzwz~42;>q9d_=@yWd{S55M@X zyY3np#>F*r$Ln5q*Io99UvY=sdXK%~)7DpP`~J(I>>b71ibEqqMVN)(dDY;_!4c?N z#H$UCjtmZ2uZ&Agp0c^dPdh9q0Mdh8%hA!f(VK?sm*<0{(*D zc;P1NZHn?9C-%uJ=&Qa-k!Ut%dw zPy99Py-u7do|(8Ne~p{CN!_?QKXl&ECaK$pY?#sGUtZ5V+}uqkZ&-^bP4~p)En{DU zSrOO=+j>td_NTpxzELOs_4Qx!>`MpieSIUa<#6yNHar_^ZM`WT<2U2lo`}U98>JWN zPscj4v0QFpc>e2OFWO@}HavUgiCAYAn0dQx$A%wlJ@y0Zv6%g*y$mfBC+T+kAZrZ;$W9QGaKEWiIkiWL>y*8eGVbA;v%6=erdmb)_ z`0_Axj6P_U4@;{gK5;pGN&Ao2xWE&CuG<|s3jZBj?YKX=2J8 zwSn2TiS2vo;+=y|><4RLhdcYEePbWY=yAn%{|0oR_{iYu(V_nE*Ph;CT?_BFU|oe% z+@_;2dhU)PAMhV*xz~)0suS+F!(QivqmGE@4Wamlgt{Yt7*>n#ta>Z~8~0}hei7RQ zJFEZE^|M%h4ffBS`4h!W*IhHX_)2@M&$SnC_iUQae;%{b(B0of$x`fBpxA$0^04m% z^>Ih>7-~ECQ=tB*qr?)5`ZQ2q8IOHng+Y6Le89Rr-dO4#Kz*A~cR*|7x%+vGbNW@{ zOI{^zyh^F>tS|8Z6#U?l$DvjO@j$eLo3q;w0gHZS)9cm$^LF(f$@-s=^;HeJ1Fvxh ztk=8rUh1_z581xJIuT!rvsM8z3m@!at%4_>ef9~I9zLBo4P43UD`DT)a^)L`MjHaaHm+Ak#lLy!rcp_I}=peVCOmP8zBcPq5xZ z@sjz~q&jix{QN&* zCvQ9e|G!CZDi#uQ?EeK(G$pmAMK{s z4?MW>zb^mm+Sgw2$9-p3Jq26eH@@+WcIH;=R$yIjC1s~Kt^7)C)Uh90`wfqac>n50 zyup!6j>25^(E;}*j`Nlaz77k@=+LO+KC|(0uQ(X%$pYV1yk8z&uws8e%^C$Vr1$zr}M7{o{H^tJ5M?*KXAq49_;5&6*t*wU_1|< zbh^Hn$47L3l`cJBqf77C^Z3B_$Kip%pv*amg$uq5TePOP^x-9WX4QASc_;N$=XX6; zKFRMM0gis|s*_Io16^1`=FKbd()QLhcxirb7nZl;rd#*BS6&OAPk0^YIaypZj<{KG<*DNF zd3dLfehl*R|IkVu8CJ~kQeL~)<#l^KUax)2E2ix)TCo)w>ks12!UcCh4+2cPki$nCz^iT!lr zS7K*wa;)#4_lO7Eu+hPhxf|^abkILah*nEN9}e^)k2H9m)fzk1gJ%a#B&D&xdHIvT zNLi~G7y$O=)Ef8QuZO{X6|iKu#X19f8|yG_-(PX1bwrkRtB(#p);S;Ty>%n*2hQ*b z!bv_su+NY6Wb7jYBb%;roX7J&_hNA;{_w_o6PIm44j8w>bijZB9Wc;_V+4<8?4tw7 zLKpX9M!Q1CZm_l?Yki4b8@R;sffN1H6(qg5dqceFSigWgFQ$sT4rOFK+6Nb7?d^J) zpYN*EFg#s@%6KS`x@i!&V(V4B#Tt#BU*aSDN+%rmNAL#ka^nBSFOt9) z$zvf8!xZ~`U<$9sLk~A$&-LMX2%f|(IL<#@^wQmY9D-+H|BJUb4~(kF7RGD2OZJU~ zteurnh;)0+C1vlJSL_y&@=hW@)#O3|IzkXTnt*TplojP^SsZ*ycb`9}O7ky7XS3on{ zAfc~zTce}4t{`pQ-{`A~7xiD+u)gq~BE(}1dHgP%3oHV?fX($-9gM`8FkqJh>%6Ex z^6Hm44zTd8l6MT)ZAJhGVLfB61HV%)bEkBO%wW%NdVstmS;0c{Dxf{{@^x{AA)Hv4 zEh5x;J3a4Hf>(Na^jrW;2&#dyX`IiaZK*jN_ddaKH|Mum=(vgVd+X704YA}9x)^W< zFUYYZn_CDB7cah%-#8l+y9df{|pWy;+x_$M&i&Kd^|Ck7TvnTP{s!A8-cTPY^7$ZU(`tDsxiUF7Se=Pt=#MOHb?+R49M@|`dk zw#y!pd=?5s*d8fgZQ9s3x01AIzAHoLCY$t9u?+!Iij5BWr=?T zsvH!?OgGMqNVz#U%K(^PQKX;aKpV=YgHL;`emY=y{msVdMl-NU`p?x0k1M)p3bFq~ zB4wE16ANw-Fs*mi%@a2JxtvseuwW6i#ey_uvn9ojA=?CS?QDI)c78->N;_hP$p&i} zbz$j`M(+AbXE15~`0Y9eF0vG>fcRp*HLL8arpeg701+hJW<~VT_mlw6SyDYOi0*Rj zV8N2=6?Mut8E1;kEQs(?X*+aiWELBtA0Bdd!}Nwb8zw;~MrN~rXorWKYQP}!-bu3y z=F*}dQ9++7ae5$;2dn9m0~^#UJ!@3*G)x<1tJMY(J?C@&Wfl4OH%Qwq77Qv-(=9;$EQgR6p!C zYRRAYM}#lBV-9#y3=>-Sa+!`i`yFLHVz5qe zj1)(Gb$-ZaQ9GmUVUn3R%1U`_yI+LlG~ zAOmY};R6a(2OALoVLOF*ZqU>sgr{!84$lcSqJVa21UCsaqH+IvinUY_J^%<> zF2t8rHw>WRZDCK**Jp$(2WI-c)NLO^a8RthJ|uENz#@z1Sy1#3iY-8ce<5J0Ifwu_ zNlJ9#l<+k6O3^Lm#Oyk+C8GMx>Z&Wp<&0+2?I!<8E(*uMeNQiUhsmBv(~?um>u@__ z+hZ~Mk2@T%#sAykzqh;SR=?XZh!^EJyeb=BY%NgMfS}kd>4Y0^(Rqo%oi?_D1g$3t zPaYw0tL^>;))Y4azwDr<4qOnwWf0ZH)}q$7(*R47!z*&EZq|+zHhYQ^LkK&j``r6# z#C~sSVs+ib0JuJ&Y+{tPsLW1NDxz z!)amLQt8Y~3ZcA(sq}hF=cg)>STNzBI5HZju3IwvCIfl2X~=%l@yf%_IJP=H(SFFX19g+*IWVuc z559hbgNP+R=$GtWrHbB|L9KMWFtp~)jNWY)he_BH zgU^9c?`pB!GPc#=ORCkJilCeZS5D=1*(SxZGgOhYp#_dR6P_-ct19fU-}qu)I>(Ye zDlD!EM8>-!I+@)_Uv8jh8$M8ID$+xu-`J=q8_V|Va=!Id6SdnCIitkC0@2Yxo^Goo z;sg+SJ?`RgDG;S!%N7vty)X((U~q}q<#yTQ!?7;>?Xo-IKWZbF83lr7Z7!+VFdhzXhPX;+La5n-#>2@MV|wK~}IhN3t9xDgv+ z>u#PvEv`kU4k3@cY>~~&vS2V`l6e7G4tOAU8pNJ&@OH$JkKnL)VfF-9)6!+@IO!j> z#m0sG3R=xb;3E*vguY?BxtLvsbHZ}er0BX*XQc+KgKR(Ha`T{7#j^{|5uVu0Mxfdv zEJO!^t@9~H3pa9LU|`+f2K-ML$bikk>9`emf3Y6nRRzGKwL?X51AsT?0)}w`|2nSd zKgtn*<&{}K8OeW9FxY9i!fNqa*t5ik-~Tc_k4dzw<jLINAnc>#MdDC+~i04n}LYClYK?bEOx?wA0b-lOP}64;?q~heR?bIKTNR{7$Cn& zlr+-NAJK(|nqIicf>z?$hLPe>=r;Fj5eRwho}lJG@9lM1zAZHk^9_ zEFeMmMltdzaj*c9vm;7^A`)(umETB`egK{L zJHD;K3;^am3H+FCv#T-RYgJ9JRuvnk>goIbg%SSZa}LZE-!y%T!58!ONO-c#X}=aw zCpI2{^n7_LpM9CHiDUUlI4XTv7FKzM0>h*-(FI^d+@9LH*PyjfO+7v#KFhtp^q_O=sq zcxfJhmCASQN`*rr;o&GhIac$AVNZ3X>~1^=T{9cli@jy98j*I?>f+MiR&)`9w=UV+ zT)x!6CKqbvp(54HShEy}fLc%laY9_saSG(DKx?! z6MQSK)~+hr8m2QqWN&i5vIeKqN`knju=Q^Y^mUhk6GPwq#lB|qMbTCz9yyc8b(Xt) z6^^qt02@Vx*h0@QB)_i^+wrR4PZDX>t)yTUqOm39SRhCUY_U1QS3aMpaSwHHoOYBJ5gEsB zK zu>+Fd62uzK(fAUQB)%x*fq^TmZ!t$`>rH|(ci3G*yk51x2J68(B|kKTG(aDd;?R&q z4HUXo<4e(H0inG--im3G-_VHZXGn2FBQ@G$$2jjKiRRN#b*jhvoRjXT5?OP}!I-v1=g?`qgbrhK(+5!^)3ztNN?KoUkyU0Cu-3knPn_Dh~86^89=;2}4&V!#2djZcT>W z8xI3`e6WEwQ$Hjj{XLBOaAJh{U&hw?KMDg zMY|8z!($GYw3qSs!09B^%9zXmWs#KN7U@r}S5(PSwm9xMDaql4qwE>U7vgcO&NjAP zRjjAYj^fGXl?@p6QKb_XWe-R`j|9A=hSh<5j8e`8T7b=09(Igq{hLjo#C{8CwiO6@ zK!DM5A2ZJRu@B3?^PxNb;Q(d0g`Vr^`8Yj4LBRwt5IgG@qfQk^;Bau^ys#J+PIfaz zy2}7Q0(!dBnNnu0RE!9CTG=l8{5AxPih(0w(YVF9aavk$nquLeVj8~L=5KJTo1A8>t|&gu-tmi7u>Y+9Xa zk_O~`HJ=p{@{?>~%~7<|vf4UeP`id3oR{a=HZTCJfVSEA16A~*qk3xN0}yi?p9ll- zv+>Xe3Wc+~{P$eW@2tg2J)#^?2(D*VrxnI^nHD7o+YGB(J@lyhW`}jo-UZTf2r_(p zK{cLt!6=ry(mzadj7M8_W(ZtxnI_{aC%aux?<0Dp_fe%nhq_Z9Oz-NCVO1R$;Qe#s zl>MiuX|SRWDLeL-km#Bhgve7*NrBOMP9Ds7(#9uh1Tk5#ks}KNPlO>k7KKqxg;JF0#I2@ zWPLV^jX=j|JjA+S^(uU#o+!uN#m5b7WP9N$6J@*a)*yi=H;|MXh%)>RZ2jZ)01JQ6 z1;*96A*#v94#q*{{S8t)5d3ry)oW+nwC&%xr(|DN-6*VSxWoB;qi)&FQb)QKp=i)zR2F+Jhy<#! ztKqoeEw#kh5#DzA-AzoRt{dzhkTKE^!<=?!ipRRS{Iqdx{nPa{QSU1|ZlDI^r;P-j z=#5FSrbf2_y-owR9cbOTP|lesApvSpeA*a8+W#-4o{wH^tDg}7{o*p6P38KhjZaxv z#uo(j8h*6uVO2O;go{IJtm#{*vQE1UiBU~aqiU*A)ujQSA;%L%PzjvDhN1rr#ueUG zasT7A{a`rF5h)K9w+mcofbNGUd}M36hP72~W&f2VaS<5-q4Y;u0{3#h86})wbMZ|5 zvlw%#P$B)*X$*3gsTU!RqIkqcBms{#tdUdGA#V?mTG9&~;kx>y*JUk$M1ad`cv?4r|R}&*M8MIIML&-i?V@UW0I_p(+(WAV8k9@MGMQtVF0$jvtNl5`HSSb zXVqD*TaIYa7xL^Xd{!c|TvVfbJU8=aB@sCTfIT(XG25%8)iZxUu4zkgrOVsRQ*M^7Vc)jjVQ={_a5Cf{0kdtgrzTcj<`uX;|Gz zXdq$2e}v*@-VDRfA{{fSJEu-&d|@p%#W-G?rDp)X&M5z(*H4rxlNFsltf#AeFl3xn zR*t9VW+;9v62@KLLl&+rn(+Hp6a>U&0e{e-WqeuL7u+ATWIr3K15kpeFM$s+d(gQN zam^@QKMT6s5P2a|Ru&}c7)reR+59C`w4NXs&7|k#TtE)rG;KBCMatqPfL=p|0w1mM zopmwu-8_*o3Rbsk)M9t98POTJwwW7z*Gpy;U1D>?Bc`u1aZrjk8mNfpWe4G(Z_Uqq zpx#a~fG8%AeO1zYAd>BQ`4^yER*7+w@w9Yk_H1$W3^qzh{zmc5gYe}GO)=}ua!$I^ zA^fJPmmga?VGhqLXlK{ZY}_L6gK#lA)GTVoP89hwSiLH{J}$@lzGJ!M$M94m8lEGZ zfSG7Q^$3jGaHoW|k|1*~SG`6NOg}<^=j2E>WzZACW*t6Kpa?RNgJfHp_M5<_UBSO0 znag8>e>E^(6j5}&OMW5vt@#D?AnTCgo6=;4TKq#qq`%S}c3Q-hfhl7AWVTMQUYYF@ z;^xM!jlDt^^WNX@>=S#ELc+f92LrP5TL|jWrxM5x>hPRZSL&SpMq*^m@d5NniKZn(bi3KQc zxI&l3hKyFS^0>mQ&4wyG3EWbw`W0zG1(1rs4VvKw13GyikR0IQ(qPqOkD|Y#c8`^O zSwe?IIFJ#TvizD)bmGUQPI4^aAZ3cH$~0%B17 zE+o>&PJn;-!$Y+eugdP|h(^1*SOj|o-j9=v)@~zV0AE0$zqeyYqwX;FH`2@|O&bVl zgGu2l(0on2FKV#`T&u-q_W|=4yu(_Jf}b5N#cUdWajX_tuOIcDHklLw*A(K;I(Brx z%J@76*-q58>J;a(hEw%{1YTaFpJxHdxUkmfT8TE`0zXyflZaZKpt{XJy+3l~1(9a) z&k=x>-T-cNEOJNoDpJIiNi&zL)oP2B?2h0!$l}tRHtLWjp7je zBJzUbU*O?Dx&Ka#4YC?_9;bJd{Gj-!9|g7Nt_dn0t3>6gw5JCrw5bOXKn_x9?cYAj zil$D)&q8X4!u55Q?&W-LP<6T3)}WlLIPNBZV?Fd4@zeM8{{Xp zp(@*G2jNUgfdWwVw$!{oB%gnJ4@!Fc6sbBgvH6IcN0a% z{%{@9e|U%k#Zoc#wjws$g3))hvS&E|wi40yqtKx!uDrCAeGMyH(DB)B>*irBrincb z2bAnL!glKX09xJbF(4XHlQXJyrzg?~IO+mi7EyKrNR6~m5}#W|R#03W_`L-jTxbKJ zn5~vzvkk?xK#T~)NDqp!0sk8>%+tB$uu~{x>Gl8=zbeu@M8*ifh1Uj%kbY|1HMj8Z5#V;Dl{>ppL(SPw_^X?uqKL<>F5PtGv=GuNYij1waPV$_W7fTWMF6 zpEj(j!I@%LSm3cLE)**!1jNsHZ5ErYWB(*Fe5OWs#A!glwgg3OP>c##XVz1iGclcY zy7+w%?W_bu`G{$vhfQ7#>yo^o=AAO^c#@`Hpy6_Tvgs6p{RIm8FJOHhZ%e)a#rZG! z?~iB}e4_>%&mZDYqb@7>1GvSopaHW7GG=1UeslYoCELSn!w-fkk;!X9<$D|X9`Z}M zTly*3mqMazZVhRLV`@^4Tw;2woTz<~wMtwyYWVPxY(A#ISnQ{LHeHal6#YW%PpZN{ zS1+84k+@cu1;hr=DJZV+H7N;EoJ$c=&17=nx8{AMI$5EVx_~+6H7fRFCL2sG|9^-G zWrnVsF!$a$3bDM(L%{x0m;0{^`DR$f&J*K<_3#hNH+oT{qb+zQVmUkOv-aTuN!DUikTH4r0Y{Zoj7kcfnaj~R2tn9Cv2 zC8GedJd7e53pFXWa^8uvvaPbTf^7G|5;2X_;8w9>9ZPd$Uxx#^?}rRxrOSE!CCI z&(0ka-_aOAbl|Pp`y`zR^6AxxUdbO2mxn~ZV6)>`>}8=%Ecj-~zM7>qNUOl~slpz) zYk=-HOZG~o9;vI>nR5Z@_l;rWnU)gI)uL0bPP~{F=w6BPBq3% z)FT@vt__N;5U{89xX<!`W`mPgW&{5>wv8sYHKVwDfp?wW}(M zK_dVq*L6D=bq!k-ZCAFFrBIzF6P-pt-qQUX^xGJ$8;h4=deLxlN9a7If8;BiroAx0s{_R#5`w&mN#RD~cX-&+0Gfy)xwi0;# znjE&Ds{$yZP!Um#B@&^ismZmkN||Dgdq>pdrdrHV({8F&IkQu|S3-xa?32$h{=G^8 z;7=`&X#CBAn1K}$)j?Q8Bd0kUd##v)fXE|3au%JRDUY<)T~uMA@=)iwY*wG_@9g87 z-^X_~c8K)L*8J-0i4K7}bim5-phZQ_tguG9K*z%Df22HnORP??Zi-rwepIZXH!X#bglEG=t-?$D?GGpAuQTDob1& z>K2&+pjb|6d|u=8=4;u|k*X|56RI$`BT}JO!wRa-VtQhd++h>R~k$nF^`x{$ZrH&qrzxCXgByqou|tY0r-%wGV#~ zsm)SIO*Q$)k=n0(Y^5623tKh%*h+n1b{tz#wT$m#E8u($gMH0?Y^4&x6rSQ^D@ygh zV5{x%$)8AhR{~p6+O+>yZ1v%fVXHs**h-aPvx|LfrTmDk#sIPc?jg||9<8|g?&eYZUhNkMwo|LyO!sD|uO5`%TR*4_WfhV}jL8VXb*G6WrA;CB~uc~j%U+AS8) zdKZ-;N4mNcJq|E&5}or*lw}dM*?;WIf%iNXqw3YTvF}^bHM+*#Diw5aYw>9E4N34+* zhHgb=_QpYaEY{r(b4UCsL>o)$*k(2!+_a1wQ8d<&hHhk_%+$y>a)D}Z)U&NROXhtu z1SqL~cMaWddSqG(&rHM95p5&%eqo~@s>?MQHwCb3ZnsqD0Q117H0T{bA3t59yH;3d zU6#Sf;aXN5;EP3qHkLi;Mc~a>k{*b_qqa9c9vhix<8Ko&%c+fj6Q!0<35yA^|CGud05A0^ef50oRq zPs_7VetAy~?TP(^6y2bA1lx;DeU$xEX{;BF5|{B}cz*`O`emL6Y>D{iSawv3RmGT* z!*0|hIx(4zLYLb}Tk9T;Q}Y*Tq)_Lw$22O~B>{GlyTjQpYC`M*p0cTOebbK0`Nb25 z-ZFGaa8nJc#ZKZzJXi&Fv8TAUsq$#ayy{IgN>C#-GpODhR1DXbr}fH~lN?s%e45IpnqK}9zVdjM)heeF^-}DLxUXhI0ST$Uw~SAD1ZQ$*;Kk@6pE=ATD2E5qU+1`XBJJF&UriS8i|9#MZZ^sxnV2n2t zuJ;lyC8Uh!;g4n@{Luy90$m3z>{_CGeQ(E_bPJ=?^Wo1exZN#%j}Hj zKv;scDw7^rbh&yhTN#GV4W5qQA$D`kNR*8ANEJA2U=w#yyB{<^}t`C$w3igoyeoUE{V2k|s zC;oe_G6uqKRi+5oc4c1!jsB69S7`j>=v0XQkW7SbMN@$53OvNvAE`tx`$p5dns(Q8 zHojZ;G8#l=Q_-;Ax&qP_RSBlj0p^XE=QMKeMXP)VE77?cW2-aIYtg9URg;iMaNp2~ixdi~rlOudFBd+aCvsjk{S{bfU$s=J`fL~q%w z%I_hYo$Ys!9Y5Jl84pyiO8AIIA8f#ls>f^=^!vyr1-k?Y7KDJ_pH-ZIJLNw2dx-P` zwMxsEEB#e{ta!Qdt08e@4t?kQ{pJUfG3i{wSn+<%zB=Mf)%GePO~U%)@$+?jbAuTy zj~moEOpB09sEN(#j{@M!LLxuJ?&}{vM-T~#;*h7b{yS{;K>;QFpdh|``*8uy{m;~E z2c3C*CpCVu)@qMLEVe$?Kl<&1I)EPI`7o{bPot`9}q##@%i2)cg}{eq%2Xo;%e^`eIbZMIja28|H0 zAB%SYhYHkzUvm{~95( z6|ryXsg7sp<%V<&(=t*ces+;Wb`_Aq5&sH`e(@BLX+&!CYjn#n9U~P;s$Af-=@6d> z`EX57m1$5lZt7`9D#|8M(d4(Nh5=kg+a-U|WwhCeM>Wz^yoyLW>bRkM z*MP7ff$&F}d`BsXrdAXsxXG{-8*22MY+Vdy+wuVBtvbgIv!ngQk|3TxKvfkz3``ep zQ~oo6=Y$-|HwR}MQJAYQSI#mzIyz=L$`&PCnuGhJG6Mi1Ce!b$*F2d5-~eE-4#7Zs zwg%kB`Wmf5vRBLYn*bSDX}>aFyA;?3?Uw7r>gr@FfJ?bF_ta>vOxs_lMMUOjq%LEk zq70r9Ks^&*btYZ31Vnj&l!=m>GjX#!>E%|rCH@{@2QtNprZuHzfUV2pN2oi*4J2Bh zXz3$u$&L-uBN1n`&QPEHtqeYSs2T7q$C>8%<0ExwogBP?H$s55rHyuG5{h>RID~X3`}-=kJLYe_RI8F8@|v)=6cj; zq^U!?L}DyJwt<}xlc_Mc`()budOhNZ@sn{tl#P;JnCM2Um*`Gh1uEVOn8Da?PmB-g8e$=)%OxWH5~vH$1(ps7hC3|O zigqQ#h?eKYE-Gc)^HE19Ucz^~#!=u-nTr3=8Jm_SmlvI^dI8qXNDF`!_FUA7wA;$U zK3ma`18pz@+W2Adbi)!wfeI=1RPHz1rFKW{bi=9lq<&Ye4l7hoF;Hy%N8rVtR-5=w zL}r==)9v}{{U#YDf*IUwRn@uD#4WC_cAlGwDqN<>8fBQgEJx&q)a7xAe{eRTT~fUs zu&!q?r*#baU|`txTxNzu&Is|Z0D!%7DIV~+snM_ju#S|r8?J4Wm{(6>NAh$alZw`q zo@kmnluiYkFVmUo)P?l`hiS2T=zXKR81R=&fqp`zb?hg8R$euXnGv_qg*QL&UoZ5a9VOr5F`RV!C6gvz6dTT$$!`x6nZx6fp>c9_zcf?T(>^{7I zM$)YZ>|34RQAQG|gE?qsC}3Aej)(^eUK-Rg>7a z;M%HvVK5h13^#h73a$$S#JlVZ+{3p4LXQ>C6J8rTn2UIS3XJHIrfG)PCdJHZtX>MC zN}a}+u&2V6F~XJ5=p~I%vb?)ix5GA@O)W-sKLqKB$R8^%4@4>=6=Pu45m$|3)AIO@ zL(ynJrzlW)j)nS-_FVWB2+1L{^v4X6K5c?kd_vKUt-p!cBBtA$O&Ck;U$zgC*N_buSbi z+sndPfK$whRMm#rQa`ZoO8+40?gJ>Ft8=`r0h!0|#JHeWjD2{{!f_E|Ruz9tcLLl~ zJj3Xe;@%PsIw;x(OLKecFt#?2Y(%B0gP(NknQOC-TrxH_jF)A@R9lEs4aqf6nreLp zGObHNktI`L-SrfyB*kvD=Vz=VU3jG2tO!q2BvzFJ)tpJfSdJDy2v@fawmKp%rf-rTVG68O;DCjhRmYaT52vXImIM-iJ4 z0wDXa01ZT?(z=~?q6yaIlr^RBOuu0$JTs;a)uzbITZd}AIM=f5x_!2@!}?uwMErBq z`0LOFb01@Wo)-0 z(3vMIVH66NH|b%K9mIc&_sbQ(2~sa+>bZI$Zp>ldWg59gp%tm%IXM;Hgt!Cva=*(d zGEm;n0Ah(4dUval%d=!Q4Qh|fxn%&5z6MagQ#{^3R~EnBq%V>gUsviELpKzQOL)I5 z%7$d4bpD{fxbyCf;oN5?DbV$aQ4)@qy4ASsxD6d0uX})Sm^! zlv5zJRYlMlIj;^O2|n#DN$Gb$CU$@a^aV5;x??$ZXWkxsrW~t;g+E)G_Z9CqcSvI% zysR@V+3&3;=&RJPD)nxwdnEkB5|{rrVwE(gd5a}lF6j+!)CXj@@pk}f>C|O;(B#3; za8VfYO)%zL*Cj7T?VGIUUC*B4xDi8cj2M|7&(AUP#kH?MgnU#7kj%@JcUY@xpG3aL zLAnjALa>ldP>@9^Pg7VrMUB5yI6f6y{|kUz6Pgcm4!{7$J5T|L@Tnr8u&*4U8|7}r z1{~8%dM_(JsAffWM0Q3TBLfgK=SGSJwQMy~e||1@T;{SyZK^UH4haCRUGZxmck{&y zC5tUOD-9qF44DB)49Y%HrPoNIwv}YxwM0=m5mX)3faH%K+yU4r$HPm8r~r}xmKnSl z?pUg_?*b%|xCWKSP7L{4YjZl<9fuuE{mv2duQfam{8+k%GU08tFGCj&v)b5=*);j5 ziqBb4+&v-i+%V|%VP5ABSUCV4RLFE(x5R5~tQ8gyP6%~)wm0k4DWJQ&9+?G5AR_w# z66lusF#RL40H*&2*&nBWzZ{RBo)hVqt!I%b&jP)F`#x!WRG>$Uelc+s%rPU&$Ttd% z{vwy>XCSS8>SmC&tkXdBgP-cX5#zQ zICiH=QiT~N-#-W?B?W71k#f%dtW59j=^5jRWjrJ{UmpNCZU4=sJ0i0G+92TWk|_l^?YGV``FXm}p17_h<`fC$X@iU9HTd#6U@DY6jPh?pn=V92^1B1U+1cC#%0 zpib-dL~&3rzJV}RmOtSNc_3#Oa8o#6gv>#7;VFC>k@+}ZA^;2#BiHH{W7h*(x_3f| zuw9OxZ{&)+5qd7n@w{fhj=8*~0OocfRBAgf>}OfxDi~6cH6q;OS-dEx8=nP6mc#Q4 zjAB2QxSCfZPeE}`%ZXW@$mXYI^{pZx$NUj^8C@7=M;eme9+Z}!-3`PrR4@B~&VnlC zvY2msXm}}`1^iS2p7nLVv!dTUT<5N9qh$qHTi4WfYrt=vho#OOfJ1y&VQ1Hk0LI19c&M3I~po=Bfzh-S$?E7@<3w2%iw z>+?W@iY#EVZFZ}!wzec&Uwc%u*rPiC9P7ZVb1EDw%yvtE>+5CBcXaFgt$~!HyH*DR zn8R!WvhRJJjyHeK-qiUqw87{`>{9l&Cf=!A-Uu`~@Z=u@JqR7R3($aNTNkyEjN_Uh z83;Jn;CNA;;wc<9-H_;nMrO5&0VBj8fn*jN8}RV=^9``hXlqL0sjn^79ml@NX;#7t zV4+{H1llg;c!@SknqQURD!m%wSUfMk)fH_cx@7vgAX1jAgBm-ilffe;bo`Ys*(B2y zVfGSkNqlMHiRusior~8oh>pyz_d`g0TIokr^4kINIAtozR#Fd+vFrToN!j}$9wG<3 zgNru?(niWt=(@Lz4#sgb%YhqS^u9L{M_r+Cy1yl;_IK<2k923m+3`GvtEA_v*8sI8 z+Sohlo20&*&_SP@LdGC$i`}2iQFbg&1IP-6zxxAW>;*C>yd%Xos+z(NqdAYKQ^Y5A zPhof7nL?W^Rtr0lN_j=m-WyWRQTBSOA1lh<$>NXHnnC|$MnzX0K-9wEox0;zbg^gB z)Riylu8dc*Jxxxle$LzuRIiv^t;cmv96Zh%Gbh1xWH+YrPq6LNQ#ncA_mf=qrgXlT z>}1Y~J04F}=bk(1`zL73jm^y>n|{==N9bmeT@=2P+&9zLSLr#IQoTv;hcoDKI$d3| zg`RsUA;*{4L{~~YoY>YP#m>Un0#?}^{ND~gJGRGvcu9^6j2Q1OK%Ef= zw1gc+jnx))8S5EhQZ;s;uWtapHKHXc}>#UmULd1bl$*| z?wfnLr}T1H_@_vQ5C%yE-^!D{$I-e>T>ZmlcjBj=g>mnUzTVmBeKgV0bJ4pj;k_Td z+Y;UwdiN!~i_wdask}?k`)WdCWI1{fN|kpddXFW%PoftgR(aQ=w<|GV>(IM7;e8Ih zyAs|_=tZbi-mU0elkmPmNgMz#uBI}wPixP_JS!962vJok<*)jVe-OleCgCecTCG-R#o+7XiLayl z_2{okzv(iL+6aLDZ|8h9R%-Y6BxtX5tldR?>J?CgiQ>j}i z{#)uvF(=V;F@>zA=U$4xl)^hGZw-*7dHxc4}0LUw)WM=YCyub-}h%%-6?iM?(| z@5c%6-RRw&NIMg~ILgX92faOsulJ#MeofrF0KJXBOArR+8ClJULh*VV0Y@!RhJ5Z^5#ykMz2&@>=Yhu{@xXwVezdUqwq zo6xMtnI*VRtLw|)+cUM3gg29|N*8Z59R*xT`q&}%RJug}COYfI9!VDm3TNXb$Kyhc z{?2~{IwGCs2Py;!T~ znuD2Lcyoyv5}gx5%@f3S7K}-DZ;2MgTj&RAUc2YIZC=D37xo18pSL8tuS?6}IE1kV=|HMs|nUxGkafcP44#kTV9V1z6r~I_-XAqsyh7TOZ%owz{RbHK_e^xGw5H z42pyeJr7&?+qbE(GPSvv1obGD%!BlJBlLX+?A!YDV2Eur7u|@ zpwzYCr8=x_nv$mUQ__@TG}XxmWSrmS$kKI9dYfMA$dYH9^l^BrO{bow_j6?bopt-o zwyqAD`cR?XA@e`1(z|8$w?%rJDCD_W(DT`PzGw~LmE5xMSyZ9USW^Vm$XQydqtSts zb^UPt)0v7-xdvJ*zW{cDy zpc&yx-9EF}9>z|oAdiCZR!j7;m_b}A>q_B^RRRLGX0|YecPdEB0h)m#c@o;GE2u=? zw{L`T|GnHmL27U$ zu{!TUU8_-dKs*XBQ5h0{Iq67AyCvGxp_*m!f}9HLTof61xL4Q~ATMB2{ln)Sb_MXc zz6VwPpKh9Nc;RruvhodjpB)lAF)AjGO0yc3o6c*MDG1OJ-apTgI!v08QmlljGfm1T z5o}YJH|fJf`Pir!H469Qcq-YnHc~BV0F?87{YmhAfz;Lld=I|K6PaUa#`Ut9V%y@s z18kG#?@c%|dk>0f(~sdcP0m|QP)r8yA50xrF4HCllG6E1tZJ*0&OZZH&BCg-1Bgnq zt60ak@o=&3p!C*jmpXu?!<+JWWv)zp6vm+_SEei})mxw*Pz&DB4=R<#9!pJHT3x2M z0m9)6VE$RdbsmYZ^{MJmC(6WIq=r#`5T5^jZbV8#1;56PSEm_>Qj(IpEo6p8uaM@Z zCK%U2qr@n{IVm)*sWh(kg;*cQNO6qRa;fbNqVUXk7%JgGS+r3m)|P4!sUH}kZvdFM zI|%ig>hIs_wirLc*P+pe_Sw|KTx~IW1bf%~F;u(h`>585quP~tE%(+E6L3gw*aCb> z7Zx~SyoEwZ2%i>w$^f#<`Kl082EhCbsQGCPMtR|h$^&{B5LdPuV7t`&wq_C*}e`W3#s)M5_^{%sMd z=C6|StFn&^J}4mdfVXS(F;cu=r#l0roYjDPTO89w&(*n8=Zppn36JQ`ev__-*@ zzjb5=J?GIgM$d=od5b#sPSoK_0NRGf%N`}hW}}qT8=fdzMxI?l!vfZnt}Vq8KOpqD zcXcVMLKDe)K3|leaL? z()r&>XGPNa>!kCS8s@LsrE1pvO}(^2{ul`{aL;&a0EoOOwuD5L$wK=~b&5 z_$R-8s^_DAW0ddLek1&2P%z8R|6a&{Ct9b{jP@I-d{_EyRK7aDnXvqCXxMLTkZei) zJ3PuR@!PComHP&x3Ck#fQy9RSYFqCQfr{DSkAg32OBd{EyxGfQi%{4ci?(&J=ZFv4 zixj!IG9+?CtS2?jA6*(k&Fw>}agL}ZBu)?d_b5bd_DO0lw#UI6T*!L~>P#am(~Cp8 zjl|=3q$#`cx1}i_XnLCBiQ@iSDb`IYmfcYXOjDc*JQY`>o{|<Wown{s%YP^%d9Zp$ zoK{zgZ%ba&U3Q234!6~d6sXc&m7{L=`%Z|zM&Qc>e?YX$_pfE*jj{45UMM% z6)FF}X!*UXEdKhu-!}5~ASc)1{IL{`qdbQ;x?5bpbqVKY-`R#j!vg@pVZb%d44H0- zj7y+6T@Ep1L~6v`hIP7^*NKYyk|Nh1<|kBmwn^TVElyWynSZLO?GgUm^Z_3EnXvO{IQ?gl8Sk&l!RP zpMZ;@E!~YCmF#SIb%}8&R8Q3!bZ@_a@$m~_MdL$+@ z_YBmblCs}E3s{np9A462&(!+?h(3v#r>wze>RRMi^~Z|z7IEd|xC)MuY4jV0kx%iG z?6AlPK~bpBk?ncj4xXRQ1O0b;Fi&k>oXH-N30|Z>@ghZU#W@nii+G+jrCerjMGd>$ zj|b}i0WI6sq?Jo~tZ={CEerP|*P=s{Bjcwg^~f|Og~-9Cb&K(n#h8#!oa2SH1$tpm zg(!W+*S5xM^yudd=H#fBRh%87` z*JET_vR`|x-f5&p#ATx>ISj=QBooP~aa4H_@2^=p`stFOE9< zW{Nki53s{2Np5WqaBFB@@xv72(UN*gd-M&Z>><6E+7jBn|4PjsN7RfEe+nenG7Z_X zRtL{|z{D_cVw{8Aljj(^V;FroFbT5);8!uFHqF6+GkVP#yAT#Q}B&JVq6ZHN}YmzW0HbJ7h95uZO}$bmwIhA#d|}5O$dnW z5#n0lxCpIzw0N|U%JeC~CvW-4Q>H^OOr`yZAF~%V>Wih=R*2eBX@DRdnL&s%3lQgp zk^|yIwNX`l77!4zDRE$EOXX0=>QR^te(S#kpmrp-S~p=k9KVp>dYmb&1cievrIr0cGs*ar7I4> z-PwqwG+K?I{ryQoNq27d-=A}_K^-gI$N2_~`D!9$B^Q&6J}jU+a0!yw60XlL!b5e6 zKxdn{ysfT%=p92*C7mjFQ~>#LqHG%EElyq+61#aw3>s^-TT?9Layx$ z2`?sPnJR-@+pT?g8uI?8y9(}9HziCj&{}k(%rLsx)WnA@`T+d4R%U2Xb|dP?qd~xE z{MJc!hryu_{J{7|U~WrNJ1C2|Aesz8Je%ve&sUa5CUe!N73CF-jZ&9Qh+ zKPgt1>R0Q+liEH@gY{mpU7D`iqdKj-8z#%G1*pJt8$Pue_|!WJAWJjWA65fnVSl|< zrcN2Ejgjeh4%K>O%FRRdeKPI#p}L5UjVn;L7^&<7Ay1TTsh_5#$0$#Tu{VWKgTapJ zg31h9(Yod^ZkYKh^slCA$q_A=Vk-%FU&3|5coxqUm@fcDZd>lwBSh92Y?f`qx8~`*Wk-IK`-$^)rUxfy-@n03FEsJUXDjUQ`DW0b>BHp zv`*7jmaQtI8bc?i-Q0lHxfPY1kS42>a&4*J?4DoTAyc7~+Z{GP-B**UAnQb^E5WuP zjopFA$5{JNb&Twep_rb=us0(rS)b4vAS9sYXtc&Wu2rDQdcj0bx$+CWrisrad2 zFC7~(5jC`vGDk;@A90>??YxR{B4^|n6-C`Pwq+FXM zDpM6vnNCDy1`(Ahil|IeM5Q32(gvbZBvojUs1ylv${9#h_WH^WDVhlnz`ZEN(=@R? zUX^EAuEV}bzqc&}7IR3uU-!2DYjhhz9ISwN4xl&7X~Q z{YYDY=Hvh+Y@>O(Md$4$X3&9NdANoSiP4EcJh0-C>RLOgu30VCXlESH%XPrl3+Z7k61Q5jfF1~mE2^?;yJa$AkOSyND7HK)xp%os1sffzZwf4`#;4`TK7$P7}#&5am&cvoWDeps~n z<;e5{@UF@k?dxDeR9M{CS${rHMq)x+Zz%aWa{T&jSQr=?RC_4R+jmqd$2c?=? z9P-7gS-tAYi*m|k=G%jSSjbXJ-ZFJ>mHxnae$@u&TnO+Aaa)H$%1k}$-+FdW_~M=& z;^g(C*gJ;O$F^K+7#f${Ko*|w#H~JbEY$?!3>;Ow?^Sg)qmJg((N1fN*ug^L(FtRL zW225vgN}Bk2^}3CBU7-SJBGn@hJJSE5M4#{hiLxPW+QEw;~1JdQ`cG|MvC*>#CK_^ zPSXiBP;AFYi_qL?rMY2?^ij#`ry``&R#&znjT7Tc_8b z@j>^~se1%(_2bg>REA1HrhF$-&^kYpiQKbln1j^#wgS$5cV*+QL}p{QgpmF?m^uH-%C+l;QT z_Xpr}Y|<`9spx~Kf9PuB#lq*zm$PGMgaNz?j~idWBrn8kI`mJhV@9Xc4!{eq2ie@X z*tF=ZVZ&l`ux{AHm59I=V*~N?K(3U#2VQ(Z^4ySxs)nDTFhlZB8=t@xacb#e6YYti zJe?VmX99{kmC8G7>CUCu^%~odsqQPdy~?Gl%7YPCX1vgN1bMEb4X1e2>F_M)BIjZ& z+SLVr_~V@28fl&0EYp@X+#ouT@GlSM87$#hg2G20kJa$7S@2o_l(h*TU*^aqvi77s7 z+=Ti#BL5w6MKEGVCGTkH;7+(J(gK};BM(E`BQ6_3w(ICbnj3Z5A?%r0iyLKI(Iv_k zN_K12!={ZI1igCj4g$2S$jT^tL)qpK{X*i(pwm(piC*Wr;_`(63oe_T1+?qrMjW6n zHSS#s3Pwx0vG8K&>|s*-RE@um<39vhMcw&TSc>NgzcSEa9BKT@u<6Hj&p~N`EB-{GVzuq z(%gU2j7D#s$==GK%QMUag_Fc~DNYrgGApI=dLhhh$zLp7DxB+dZbhptyCUks+=+@P z^bk8mxi?F8Q}s>8uh5R_0xY$=h3+yP(R{|3&e(Ng(29udoH0&Z7?@`Lsx=n7XmtEX zw2WfwaNTY$m)d7ARuRvd;+*}<;Z;_Lb4D|e9s?Jfc+7B0;VHavQmy22(;)p^>$eH~ za#b*X;@*o4I^Pn1z9dPeit3P|v7LAx(P?F`lFIUvIXI@Tl;d4&>kO|G2wN{AibqNQ zXvrtsf=*}q3U~1h&e^}Z;N}Z&z7XCc#ad1`!-|d92Oz3}(G1pnGex+0t%38f^W^vQknk0fVrX3-7COR8Zis;kU^YF;Ybv!JVIqm007feAlWTpEbA zJ5kST9vx8#V9npc4vZz#rN;7>NLH#(I3FRCuF zx7kb>*Ptg#MgV&pb=@wQp*NMhYFMLNFUE_9-8ym2CG26%-F%AANh z4sS+5tBg}!H|&#j-g5Q{>PxV2hTbyg}L0}l|^mvkgShSxzHv`D-FM5yL-nD zdNFGX`@}Elu>U@pNf;FB{zBnmGl8Hk2eQ&TW0(}10gb^hJXbi;w9nBQ-im!iKo@|M zPE=mZ3$uH8euhZDMAr;~1~Skz^h;T2*!5uJlg2$+XeSOiEa+%A#x~LPid|g79!$kO zub`-%j3&)tm~$7KPK$R0XslTAezWKE4ynCgja&tvTCm>)&az7y^PBLvr9K%c3C}xJ zcaiuTFUq1BOc>GQxrV6X0&g9!LgSiMD3;NwUYtrlB@_C-9WjV+HmmiicLLzX()mLb&IA{s|Y_I6_@)an1W_a)F( z6xrWZ)!pwUd5{GN*%u%RXkI`Ac56CeRgo7K9b9-pMF*82Dk@4MD671%C@2sXQGp>W z3hGF}4HX3y9dr~CQBgo~n?VIcMMe1Tt*U;nUj_Zo%=ymz&v(AQgnR3EYw7Ol>Z)7S z{pwC9bfbd9kLuDSJkZQB314d#ZxX%}SDjz^q9);nKQamDH2*J}gvDN= z5b{=cG&|D#-!#phb&NtOk2d?iZklav{(Gj`<}}AN`yt_f%{1GR{I8g18`7jj_NWtB zDSM6=_^J}cd*QNX`($HsQkqFj6u#SnZMf*ZC*;J^9 zUJYlHXBpp{3?0_Nb5?dRaz#h-8Wp?k1!+!t2~=}8?nbOEGA=|jTd?Lhh?+!HbCN9%~zl{olTdaw=uZAvW`a2H)!%-@KR6~*tdT6jp_Wc=6L zY|8ku3ib;r3zF%YzAURQ@9olAkhC(mnRaT?DHs9XFRYP!i+3^fK{`QWn23L)r)eTR zel7JYVU2|Uf8J)Ow-k7|?kSq7 zgH`yq;N5;c8MH&w!xnk7$&sh<-wI5#$u~6WcNQ<_5Y?6hk9M5{se{`a8bXo!@cc*| zt3q~pD1vVR*n@4MPt|lR6&@_;SWB*^>8Tp|F>|%Q5xSUYt_7Q&EfnnftJrPx*f2ie zp+Dsye*5?D2$o$8Ls?bh4KVoe_kLnI<-$DjId_!3f_%u|B!42&PL8&79^u~+%;0>M z_}OBUy5aBM$Q++=kxnBy{xVU!Ow_J{wL8SXogd}32iaMJStZTEuj^*#?qeZ#);nwf zTwxGSI`m%1xptVBJa-yIU(!o_HwMw@TLH!XlL;314g$1Ai%?Ao4o&3ArcKCcmt=LU zSq7(t$S$~wVw#&83QdR8)Wm6a8_asSPZMx&ahlcg92=lOJV$7aks!OHtXHTu46T`V zNL!74YcMocoZ5yz5YHQAN2rQ5!U-?b>9ZyLgNuiC{+o4p4(^HS=0tUSH1=iA)Lefa z*$;g^gr)|kfqBgx1Rv1o`Y!l><`CFWcy(k;lWO>wlBmz$a3hYD;i@oh#ahg6;s3c%`Jc?Th zhn&*E)(h2&f8knkoC(j4Rb(kICR9asQ2HBwNmh^h`ffiHYx7#Rw)6+A*M_QK37JXR zV_l#TL8aKiYBH96(1Cjr#GkqFy0OXp0KeWv0dDtK*O6;D9?l_jr^G+F6Whw>)zs9G zX&Qbjn^OjpAt-!f67P0GG$)N5FkohM?97jH_>DZ+dZiD4wrCg|vZj~r&6!xboB!e~ zXB6knba8aw>bW%a{Dq1#+mh?7d}B9Z}Oih~(mu;I6^l-7UDw z#pUAe4gmrLcXxMphhP_XcXubjVR_zt_b*%fVQW8c)u}U8=fjykzwYVo>6z}PADO)P z;$LaTy+ZW$3dwpW_JLB={KH177Te0wE}ZbsMb94*J{7b|64c*Ox+H{8%wd-yypvl5 zB4O)R;i+! z^$SOraP$@CoEpT9w!-H-OgTE44nEUu=-v@GIAUj$Ez_feOn$V#M6-uv*@qf&4?E%K zc@ydkwG`~@&}jB6ee2sA_(CqY_-I_?53HJrVHGrt%8-BJaq-h7TIB|!aAuHSVGSIx zZ6Z`(b18%{7%9@QCd?8zl6Q~IAdRX zsDfzwFS|9yin&KXj;PVFHn0Zaw*Y0y_nYVZszzY&NmPs(J|MLZ`n`ra!PF;;V^C+h3RShh46 z>h$2qW}G$o&%DxhxCCc-hWxV~bh^c_?D)e*rdtHXR>5cbqcEy&G`_)wZbMA1stnoD zk#Ax(WBu6(@sYTBGyPvj+A;c{kjC$3l*GTctl)Birrmvi;w=ibZD)v?oKNf<(_6!b>GM9p)2UG1W^+G3u<$ z9;y%R?_`B@UuC*#oboNX_=?YWs9QTu+Z;MF^u?`{+^k__uJgRptA56Od~y(q%f%Bz zuLNV>byIgb$5+0jUc&tVxmL3_=EQK_lhE2|Fnl`XFX@^cIzm-#zY;sck8WD_?`ozG zLKp}Vcvp=qn3<#Tl>kBJRAm3JW}S^XUe~I>Q8X+Cm4nqoYHk$ziBZ&D`w1|?xno90 zsAd;1FR%0!H9N4@7LkPQ%%v2&C2wxQaoi+eB4UG~ISug!$3=VRV8W4yCo-|XCv8zZ zqGc74WZtIHAEg{VN_LBe{51$T?3NYXJ*ZzU}NEP@A>*DFkK1 zRS74vedvgfG;?dbO8>Ck;8nZN#fZVa2T)=Y4!oId4|o7^r51LrWin7xc-`jDIT!|< zJyFq^{oRWQ!h12lG+HEX30`t+IJTNO&uy;g8=80t2&;h z>+s|LH}kFjT8r=njaWd{>_2Z{}fHUrSMMhyZBlQ{m+J8 zJnFDW2=6Z62&IeH>3$pLi&&&4{rRP%4ul?A)Na_l_4-AF7eo$Q^`RDK;l6V$vzR`t z%4966ehH@u5$*L#Y&qB3W+UCr<;Vx5*DZqT{3|=i#e0-%8EO)+n+`5XI^3zvjWI9$4G6fj6mdx%p z_@|XA9JZj_4$C3v3FSy@uo;XK2$Y>>WFmzQuF3c+B!-hKYh|@ff8{iLlr(lfM^27s zl-)4k8m;lCpz?U)FSSjj+x$>YA>TIXA#i`CwjY z;>L0KIE31OV>z(w+!63C|7EGkds>JI(4)UK`&mf5;ZSGIu1QFx2KTWp*MmJMZgmFT_A=$7HorsOWr%yGk4vUQX#|jpI zwQZW#Y;LP+P*$8_x0%q!19*`|Z;SK+up^=yG`Q*|d6I`8pFVAEp-$GcS^Bjd-lO<2 zZ5}i+z?gx6rDP_`R ziE!*}ta>8I?s(&&zyA*xoQOU~1e(vDXuaz1mS3f_lr4JkfV-~l=|abk(=m>{jQFhX z+Tu5@*MJ&4vywXwUp-kh7DHr)?QO!O-yLYJQ+_0hW_nS;#8-l)7OhSWZ9=B=Sz zcI850Gwu#^0M-roPTFipKDmFYSw8D#RxmSv?O7?UbmAR~ki8;I@yLbDPlg8au^TNR zFNtFL*HDD=fYOSxRpr?lj1L992F)L2JQCK zIIS5~y}hBAE7{pN>boErH0?S$x37xY$Q?4jt}MKD^ytgJ_dNoi4uA(ct8jeIgdNmZ zNt!#yIT(tIyke(@UA`vYEkY+ZkjVAcM)0(V5&y*vdm54Qv1_zq9L))pg8hwM70ufQ zZ9F!AqBW*9_mZkwqA;#p=hzgGVj?X7`o+Mi+PYK&{*)wsgYR|47w29izC_Pq@2`{f zd_V#G{v)w;O4?<2VKoOLh5nmH+G%8jr`0en6mBlz>?ValSD2Bv-M_jPcrFFgBEFNM z$l+ms4q&Q=zI}s6ZrZoYsbn!fxETp2h1tO=Mpo4LH8S;hpi8gu*xVlim zFl#?Ij?}tja%ZzvSD5pCsv=AaLi6%QK%qseyoZaSyh)@!AD$Mhl2d^z{uuaukVn%- z75GoRV+2oLcE#o&#s;e5pud!uAEF^l z6V(;>3Yuv%KR-X_ii!j4ttviu0_1u)auB?A>{op4L-IHLerQp4Aqw4D?p+yO`mf%# zZEFNL2|jN$;I5biM!4JQ6%iJf@`;F@w3^xb2brEiW+Trgho%p&s4k#StQo#dlE~BS zh+?AdI47uYcq#CMqr!mj$Q1zu2ICBLcm z-#;tZS(><{@*gMQ;`u1Ryw~rmIJ&T_3+CaAk`G9Y^|vNRZf}uATvy?AM}?jM7&zM7 zH$;)sWn@|In>=WILnKvIqp%jHZ?&r!x};319OfQ1Y~~H~(u!s@7$P;G#^(oiY8Evy zuNV)`3Nn)?a3`Ur z$n2b;D%*}~kUe8JvgOZKMp(;K-9X2n4M$IQ4tbwGfy%J=MCWe7aCfo_yDQx8Owuu1-8?qZ z;h$NK=8xg_nE~=cSHY~_A{0$PFfwkfrPts)8p;$Cm4DItO5N{pwNPtvW0Pu$oh9UW zXbt28h0&+JQs=Ku=skwOY(49Q{`n%(r5VeWIs`b4rFi(rRt(;6C3>ukhn9Ymw?Irn>!>=^Q?B6{}boH3-Z;l{8OKpG3yqc1mFT&Q{ zUxVtbx^gjCM{F=sujQPcWCN}-*zsV%_mKoq+U7tdJf4G8zPm|hW(|6mNUahTPNT`J zL}YQg?pCE+gL&?wP+p~Q;G|;LB${kzunHQ^@GcSbeqtJ-#jOpi?J0iq+aEjivB^?A zX_R}%xI2b%LW~L4e+fM=82ZcH+h;+dyD1+lJ+*^7g>J9cbAbPxJlEv&5%u-0jeHb< z!P{#8$kz~B=0?(0M+enx=mTW%&Wbd8GWpXt!9H>gOTHkL8~pUD8MM%WW6K<84NF8m zO9{&hCSH3xrYbl#*nwbnJO@i+Bbuj@rq76WuE1IHQtoa}pR)SxpIPTPmXJHhUQ2<5 z8rLea<`|xNCa^!GiywYjD-4^TOWM^`ANXJ%G5z-S@OY$|GhZi$1oFwS~(1!H!(_npcF>hp9jImODp=B zi>KP_&MN-mb4bZH|Mp73q_~wO_}iQK-poGbR+zXOV;SP4XHbuw5hIZAtRpdo<<)zz z!he?DW@9Fp2Nhwk zmgIUqJ^_5+^@;K`z|o^CLdwA>f3yWyv!rfhrWi~!_1HRm!3WCe=g+JTGf-ziISi(I zuk8edj1&8nLE$~JRXz2Y4b2KVI7-8^(uB0cz^TXcHCf_9iO#tTcDwkALDPd})f zD0l&$S=}2WEXMQh``J$=y*%j$rRt{zW<*PvFU#<}ZjJ&Gk?)nx3g39$K5GxH66+49 z_8IF}_=gc*iPJZQ!JZMiCdu2y5>@8iT+3Tc4m~Q-zyB$KH#woZUYc8&CLhpMfE|W$R4Gd;@Mg-9q-Xj4p69?R*2h3QonW|(B@3hgHO>Ec zMA&*>YPJR=%pCL~HCO9;@drv@6tvR8c5w}t5`9DHD-`nQQh4taX=RUJg`(t) zsE?Y!^CemPy76^I_NiurwoNt;9PTc(FiQmxf?Z>Bo=RJ;ug_*$2-5zCSoB!nd-EA` zT^GFJ)zE>NdtxWw01sTCjrpDk_zD`NGtH$OjM-@s&q58?N7XLADpl(jQ4miq$Tq6o z8w_I2u`mxJIY^poIo`o9%qX<{Ey%wpU;-D|1uzS$VDj1@n*Pps#QgfI!Mhfd!@xqb> zSybg|)(;b3&{o)0MU(D*&TMYe9|MbKg|fNZC6|Q~OV5};fUNYA(pvU*G;&@%`cT-mI#lnk2l1~Ys~Qt zn{6b%7Q)X?9TC2!^a^TEPY$=^N;Xfy#p|rUPe~zQcPxcDTE||?W^3wk<>-?7#2fTV zlzt(~7K#vm4UL#9bLjAGNklKqq&UzT?s~Y0_O?HMD-6BNAVfWSZGdtao@n5wInbuz zl4%R)HGK=_4er8VI48w(#qU;hOEVaYd?~^(h?GX%qyRWbzw*iy4PVBisZa*>(ay4A z5&V97-}iV=*7PsiJL(vP*FE{-7LFY3F3E-Q4oO&de&CnmICaCHp6w+{j;}EH5Eq2! z&q4IPgTvPCx_kRgsrPrhm5p;N6cAVbnMNzg2hAx>%MH!s0uya}$@Zak-F3mlS<8bK zsnJ-re8yO++<38IygN2apefHNcwHV5DMO%0l9`|y!MgkHYk4J#<^;AoUn_88nKV2|CW(W*V2q#>O!+HRNTu4y<9U%>+>OMo1;@Qb;bV!50T9JcZ zASGX;^RfPnqn?G4QUMb-@f@9FmqP;)3M}eje1~J(Fv>z`KgB-BM3=K7QFnGwc(3U> zX5EE7+T%YiysdDyIQzje;^1p`=Del7kftG(`~`C!KAPy+|z8m zs;7q}JPCmpgSFJk27Zu^=sI8L!whK{j0 zw+Mdmq(|RnMa2Sdvh`OEJWF;JuSYT>xzbDwb?u88bQU=*B zzb8{_*!H*_5mw)znrSNKitZZodG#sWr{q!LZ_|V8wd*fZR{;&}UFbB)=_Sr%S>$I{ zS;Nns6hTKgws{iW38W^}cc%6D5k;<-t({D6P(`JJVcNe8^o7h5~cSvWR){hTH9Cx5r-DT1fpi8=MaG`wTXmWb%7ZnP zZmNS&mCLwW9h#n$+tS1y={AGWvjL~?TXY|0!wVx9WOiuIr!;@^Cl$dio+0)uCy>G8 z=CgZ9Kmue2)7c9oU|-=d?k#n~q!}1p?m3P0EX{>QEZcOp1IaT^dYBa?dyjL)dZG}r z-d|XQSsx*t!@6%mxiJz8)Sh2LcuJJ6VcnOdBpi)}mV1sT4NY|+7xM$v@w;13b{UjP z3(@bpQoc3CPUZvt?J%kvj`EP736g6;WF=i!v5Hc$HB2LFXe|*kX{BEWQn-O;mN#s# z*zC^Cm}e;tLnH*}=jyN+cZFOqsx?9oSmb{1h(=-X5nm+{~evL8>s5`%t0{wr8cl?9uZ-Y*3Z`TwdxVV4cgKskpA4n=Xf zA)5!Gxxi6UV;c&nw7Kd|Rxkzj5wRPRvlyZ$+~&kxuwT)OL(_O|iGPr>zs~ z6-A2bh!3YPykGT>%c>LAQB^mG2PhpyMZGa};>6a_g=o^U2jK9!&ZGO>0V7}9*e>s+ znSDYyW|bm|Nw2e}D!@ca$pL^D^S@zEA+-wOOp(p=XZ$JOa>)L>68R_E36=D<6i!IsTFIpdtR4tea&v z|NFlsIiszcI9VL#_YlsP=Sqk`nq(84nx)nw%>|K3M*6`q)Kz1!T(S zZ!_`-T(b%KMm#HW{tr-Njx(_-4O*i`Dt=@K<|>mZx6m{n3VKT>Vq8bxhBN#94h ze<%v<)%+ucOdwMx%PVY{6Xzi7F7MA5s#MTmU+ z>-wtjkMFz#?Hp3lcge#KNDwZ;#Yqm>CB1bZF#})V{8X!^#&1T z0-7o8H=19hdX@3lzDh>X-@lKi>(dPq_pk&D&&3GYX zJ#MV3IibGW4CR<}{bD?h14Pep;TyU9VFoIa2U&f^)k$YIbOvO-sAQ}@G5_WA$-t^T3ingfg)eY z{)A9|?+*P*IpLo;vc|;!U^(SJ6PGi%hEq~fivJ)xPE{v z4Ah|^52VL!VN2R`mv)tawj2%>>gM^tdYF1XzligCUF#;KE#D}G|{W}p3k}D&Y>OZ-&vXxilMW1pbXQ9o78yL}O=l7sT z%q6DBCv|aho!;Mg{aHrS%id`>e)n z*9P5OFC~sgoPu{5SzfA&$PVbDDf;a%HE3F7+s1%UC@8^)l#2qe;jUBN=OOj!tD_{c zG$>I?3L{qKdG0`Io#OfAP-0{uZ9OQ!%?baJ^FXv0l5a_3QYiZeYH+L9;{(zOIpp}p2`~={xQ!2^IO#`<>%o@rE;t@LB<7B z!|Xgy%_F?>)hf&TC&%~qo;=9@z=R0YR#Q3lR(WSEvdy>?H<_onMDL5BGNK}{aAr$j zI@q~6B=9mguqj!>W^9Jq0!*0mXq`yU99}!#mz3Mz;k0(5{LiYY=YLkm`fV5YK}2>9 zl;+o*Jcz~hHI3*Ak1$Scj9+txpsN!-(jt3kIBy8QA&PR{vF8lVPisDIUK!k8-Vo2G zV|uFyhy_bO6(_zF`WTEZ?BZjxDvsjL*3D_qPRM8Y>}aKMS{BY$Hr|lKQ9VLMt)_Bn z9nOw6=A9+E6-VWm$!c;==gI1z)8a7{-)13`ui)I+F0pg@HY?)9c>0<-!b7 z?YqcMKx-5J1MM$-1*Ct2_sh2{6sG4cL=6EmxSl>HGOw4d-Lt?NpD_PXbp@+D&Ks6( z;wHg_n`)!}eW)!fOSaqYe<>E-0KM*iW5h~*kwM<|@Q2p-dau>DUeh?O61uhM3d*nN zX0P9p0=x^Ab9U~WO^c=!*IGoocBnd14>JWa^-?Qi&#bsW!B-@zPx4z+XClk?eo}}B2{AGdU6DOo981?p{TzC<8NtA!ludmM z=)McIG-bc%PGI_F$ZU4Ypp0B?&bL~U>NBS*)_imLx7mi_3fBp91*;<~fw=J)tw26| zPwG{z(Qw^`Awmd)&otq^B$4UI6MRHhl$ZLk%`HrXH@@lKpH2^az?5J_cU1kzm|S;I z{Ya=>_pf>*?roitQF6K2U;Lx{9W)uQhy0qHVHUShiSqonVDgy%fBOH9!ShGj@tdFM zX0eO(lCG5*rDRYN{CO^FU|LoYlC)=BVo+gaoKt5adQm3T0UAvTqUBQ>QllFbP=RC# z9)mleSs@n;@8SSOq0s9D)r@|8`DLvUNA@{I1`mp?N<6Aoph z*yiD1SHjwdX4Ish73Srm56!5USK;TmEv*PAmMwb2@UAQW{{WJkRwcUs;L#X$RM{jy=u(-C zcWO?2koN3JbS})KJK(1|E6QX#fTF>cY5Oq>Tc}Ha5Tqjb{Zq@MB6=z`sNq^LSl?zM zQN{LyKGDl89}zA~D7I$b7Ee>yZOAHZAe3+WMDY9NrYMXTcfeg%schzXP?l~`#z^l0 zByQ`FG~1sM*DiFNlP`7-P+YtL8JWG*R1OgaFp_-fYXlP)lQZ`2>?WDLgbKTL3WmDu z+nGCA(T9vBnH>ZZ;#ABd@N$k&Yzd~@L{v)zR94xl%6})DmiW?PeORv@@{#D>>uVxm zGSPJoEEai(wT~>a9Z#P;OEMW0ss$!R{H5ap3~2byP4MSjZ@q?JwWjG69Rld|!p5y% z8L!*W#UQ^^wfCy~VdEUaEVcK!xM#m9SR(z*-iH#L0BEKehcPO}Z9{c!j96`K zD{$dl!Jw}j=Ht(IMCc#GtZf+Pym$$^3X4`2qhIrKU^DLu=OaFDut;B~{={c@4m!N# zAF+!)g|WQkXV@UwKxU2CB^g6@S|`~;Mpy@6w2R<#Sq!iD`r1j@IfUb9p2A#g6uG(# zf7xK6xJ*TJm!tZxar6cIcn=1fKL6&Sw*f@u2X-|l93&L}+=iB|+AvxS`GSptu9rUv9=Nz{0=)kH*fS9N$IOAwc94*Zj6#C9c*{(1sXk zeF#&fYv|Vtc;B6DpdAA&w)Q2nV=rf&LQUGz%UnawHgYHKONNEn&C@fQHnb*MI+m*I zcAvMlzP7gh8;=U#+YNLaK1*Y~K z-K@l-)SlhNh@G7huYC+2m`0B`9tKz&2u!NmhQLEc2?sDm0jLH76O8*T>(H?};xWmA`qP5O9zIr)enI_AYV){NPqQPg@WU67rzG^j9shZ|0Bd6R~ z>15^_K?B2FA=CgfgrUh|P2Er(O>+ra)EmbmR+TGS+?Y=nEeQ8An=oHo*9wO*s{$>C zry2`1;H5Q@7C**mOO^dqt&B98e@@cw;YJW});=5`=Sg!Wv}rQdz-yRITL_eJ9USM) z0+z7Q;mrNb*HE(19?RmKsb?LIIoZ@LIFlQ&x2sB@t! zYYNmxp4TRleZXkqRI(Om!ZT?<+DT?T<1rJ!AA8|w>dsq)wDLVGWUH(mr!`$n8)r>( z#fm7OGFf~YKOL(?OkJQV?*6I$wmp)o@mt&1BzS$S(mRzS2-uLy!Iu1NWF`Qv930pF zQyFS}s#*G%wn@Ka(RzLrj}9c%Bv`OmGQTQY;IUL!ng&Lr z#ldmBfl473>ss`*R8PA@Kw94T=(u0n8yhT0Kk=!=Vw@qZ#e5O8Xto*0!|AMh_&5$f zllqi~$ck;oIO;>MivTa+4K z9jtsvYsvr;GrNi3Q{eiCg(ORfAryeI`QK`IXNW-119v{NAc9=vnd7UW^pdt^?&VYtyLdpH)3 z8A%A%%fvrFuG6n#I>-&4^auEUY%C$&_Zbreg{JfzRJg^8eSTco`2#{0sazCo%mj3U zgdYjnbvy_uX;NrmQRNC! z>I$k0IlF2CNJ=7(j0^ImUNnpgg~es3wUtjHI!y%XOhaWF1?9a*8Un%P^aWw%wPoe< zs_MhV<@Lqoe)2KPJ(lHl@08_f@~RtiY8)MwL$Dd;$?WP?3mK)091MPXa}6I-bCIEY zDzCWQRL-n4fd+Un9yEhVqQac z%VK9NMRPe>;u(2XCSB<~gC_$>Gh@QT3DOh&EDXiU9mLgL9U~OE|K2GzBUUM6q~yG{ z7VJ0@IR~5M@tovzJX9{ys21D=%Kl|0Sea+v6YQ?mJ%yiJPI4&}cWwH!+D=H%iFUlT zg|T+e3MHc`>#$I#ck$!s@+pcs%Jb)nL!qYzI=~>EpnkP@18N16zaa8#am~1Rw}{UgR$Lp8OuyU z!TVO!bC7OCl5WNQ79YHY=tWbpUM||-lGf7Jmn?as>o7@yJMSerdmCPf1eUa+4V@mF zr+P<$;*2({M4?rp0%iEqDyJ=m$X|TQnZMTS_?*^(*e`k|r`0uIW_+8AcWLFxyNTtQ zX?o(R&|`bDayjj&HZe^uU4a|$ju+~S=(_W$PESWtRG_H2{66@)?Mf{NJNi~qET2_) zR?^r*%iv{mwGp=%@R{0&;2;5|5ww!0ja?d6RuFI<);Q4>c{PwwZlDZgS@L# z%Su%&O!t@PsQPl3rgnES@6$lCvYu$QNRftIcBoo*=m~lE`qPp!wS_Xx7wYh?>=3c+ zFkQ{rw|uITNxkIoQf&^*X+O?sUaWG57XthI4b{bds4mi=DH0b~iuH1Y#hsIDN$KwC z=Mx}tW;}CaJu}CK(&{i#&DpQ~$+^6Zb>hB>dCI~TW>%hVtdqLGv$d&>w%>=W|2)Zp zXq2^Qigmb|wF73nZsqW0rQ0ZR`lcU;l`t(pPE7JAfTT1gl%3a@a1P>*R95s*D*5NQ z@K7uTlu7Jrug~XeCmbshYoxgrcfS+Pp^+BO=OwwHnXA7(01(R|wnzYEt;YbBfoEfz zgcs3(pH+{++T>%x$zk+}%hyIr@#6Gfmlwd*BAggNHjpOi3tK&1oL;C64r@rIP(1>u zDmE*i5(5ZRPXKxXuaeM-E)oG*>J`B4WM{wSq_8A8zy60xGx82NAQMO+E-Q%s*SRqW zI#%!Jxeo}NtOH}E4gCJ=91Zjqs~18K3FHE8#8HsRib}@*6+RS`jMEFCM+V~7&&2}b zTqWHoSrLJ}^>Uy#FhXpTgc|}Y`pOD;Qgjgjgau8+6_LnFEaI<_fR0Gdf-0HnWkBlS z(Krh7&$>)el@#?@|2ddwa%kmOARnlNjE`{TD=38=KXM$E9wMcB2Vm`C&r#`vd=(z@ zAliRA&72qFT4EGssbzv^KM9}8Wb_KfYa@7LL{LiumL%zsdu7qM_f z79m$WKFPt4KGy)5lky=0twAPnMdW8e=TIQuxRw8)qYJ_&WsB2`J}3A@E{SwZj1vmT zQGXU2CGIA`8WKrn9q@U)YH)q*0=aciC2qYX_&u@`Wd##lEsiCU96}Ghassv!{siIc zN)|XiZh<5t>Rb@i5IZ5kiMm1ndLYjTvmvOT0ozG&!mNA;wUBl|uYf>JU`i6};BzDp z4Y-&bk<2>gTn@womWg#0{S+F;Pc96C8O7Xa>ifWdz~!-+Bxiw@7%O_wrlhLH0Bk~Tw3Jv&DVi6Z8WyrhED748a#K|YbN%i3& zX5L^=EM8k2AwtV2E?HaLXn9`oyQovo zWl-f88RK@N_n;>amR~6q6lt2U<3h0G)=-B{kawSL7g-^cJ+#V??m*+rp|JN5ztWyC zgZ5g$Q%tK-gC|PAQ2zp+o&ZX; zb6*!~4l*>qj60*hN}&G`B!I6$x>a6Z>nFftu0fcNbl2+k^v*|(7N0Pu{yvZpx;`~4 ze)m`7kfQ4DZek4jFa?q=)+RgKW;1q&>jh?9skag#RSfEoB485)MMJjH1Vz2`D<@qO z#^T$2>Iz@(U&{So*{d%D@PQmzy-e8EjeJCun2e|#NVJ}vewyDJ<)YcSNA{lW>3e=Z zs=6fS zLs0aP>9OT%23q}mw}J}D5Q3z$hBA^6`u2EtG(0)QFF>lSIG^C+KLg(y)|JOeI$A>Y zczY+spq;ufp_>_7Q(|m|JRj`k-kL1xtPI7$_r3Tr{`TM-ZjECn$sfcJ2RvOx$iieL zp*RB<+_{EuGgZfDGrM@0;lQAhK6SAoQ2=GHe;3>b&M$-=f7(UvADuc9y`B|c#>0Pz z25fHF$WFM;)8`-3%=4>n&VCV4#|V|8-EVVo++)UWwu0jNg4pLgygL5`-TRot&h!(H z9P#cz-8B@QQCoDMN6~nw)>hcdNbq=K4sGX0VvBuo30P+xA)GH@iMGB`?$*Zfe~Ej& zcigLME{aPX_+~T+%+AF0-02=nE^2>*W7?58jtG0 z6l#ypPPZD@Sb(0Y?G1!?nLa5Dxp9wmxxO?6MimEhz#773!L|qjQTcWpLbdWW24G6# z+89uy;!qICMdMKs=uYiX6Nvibym4t^SwW;kM}|+`p*oOH>*l~F;Xq5KeN(1AORFRo zKfe$kW%-RjexMn?T~8~N#GLj7o9@7mF{Vdy#-AdlMR}x0y^jy0QOg&L} zdUCq)@3D?cMqTC#&#N;HiUMJ2JW2zlvIz}h6jhXa_7YuO5wa_`DP(xAMx3&hW^L7G zFYM!L*m{z)rmsdedrkc zs(pwUow~+Hua~f`@Gi~=H-`Z}P!0m%5)nJ~+bgAOeE_l2wKCw$^ycBf9wH;4S{>-q zE(*Y=TUK$f2cW85e+8gwURwYZl^n7LqW>Yn(L-!3k)-_8Eh@BEyQb_7p%YpV?=V!s zQ+Y0wb2+IK_`>d(StZlA({a_O1(IJ`Oe7sUP2|}^qI#v<6 zglIFMIm!);Df_GU&A;1wn>#I+u2Sg~*oS5Kut}Nb@Vc2hwmA6r@Mq;0{vR|wQS+$E zqxkyYwrVmjL)&5WSis68RMaQtv>pM0DRhrv;l+P5_UoBMZ#!S4SBUqqz-+>!0VFK} zonOyz_a)F!<4>4i+rC|6-ufY>90@`0`^BP*T*7$f?#5i*EyRA{6wY+KIkumX>Q&g? zxDMr*cnZ1)jt4)I6=hB$G-K+nFueOkg*q`pZ%o_W?0tNnj`^}t;hFKa8Ta5=?ZgkucR&>CA}ib?bDH&%kPPvLeysg-{YyOsxQb*;W7ag#kLkEx zNw7@*&Ko`AB9^#^@_)+b zwH#nd{TdBWqkKJwusKWq{xp|s)E&iZanvD98L*CcTS1h+Wk)%O9OB}o*h&;TOmZm` zD){SyyLm%Tv*hHdXcod4A&+pkt^$3qCMPAWj6HMD*gePIzAoihRE4+q;av2m=2{$l4;ZvLjUgmI=w)@p-y_;t{YIDv)U~ZvK^)?ko zr*fYTW~W%6H|A?nU<|dEkY?GI^PX+EwBh%IK)d=xiKC$1%A4yn^486G8~CCebXomMdsF4W!7ph{RCgnge_4ic(NeE%5iz-|9`ElGgA$~7n8f2y>EI}C4w z|J|Y-W%=;CU9N?FpSg;ISpFWHEW;yrD4Tea9`yMTsfa{>NrQ3X0c(&*1j?ou_4Mlky*{bvlgtq+pPl&}_|b5y_DLXIRvPN``C{<@ z=o7=>*X=97;8*BV#o*WJi@@yE?Ng-oCTJKtvecVt<;DXAiOA6YEN1PIuE_`s&N-SBEAfKctv)Q<1pGL3@%i zdOrqwj*@w6Ug>5IF%#2 z&zsLA4_;KkqJ83}ZjA`+pz|>7dGy=n=brpJjjTEw^*e^aU`bb`1q!QohCmaM5}s1h)LuTx8Pz{ZcC? z-SXe|_Zh;}N8{5yihvzxS@WE>W0-c;oK^pyRv7=Q(1$+qa2iy5!EL*&4#JAWXqwDB z071Wc`vY1@78Y)|MtJs}`wPVJAQFURm0gjTE&Hr7=5T8s~Ohq5iT5Cs7@;+1)<; z)E%6`R%dzT<*6M0k1}j}qGQ4hZ?fHiu-1AV%B9+~o@Jvo3iYQK`;40Dnx6Bu>5Kkt zMAw(Sh^=>#WDy;TJ|X|NgCzru7C8TpDr7!pi;a=Lx7T9?u&z*)?^4+9RmA>PW5-Jd z(fn;sqEs``?+;srtV|tnOn+?79vwim2LYN*V#Rtp{#{TPdRGMm2uwEEKixCl{w>GC zQdEok&F!thrMO{O%t$mLylyxOLA6X^<%X`pdr~E|p>Z-@0ytQT0s9WDu_t`T>s{(% zsL|42HHbYAV5D(<=WQ_s{LZ^4CEf{H4GGnpQiy40j=tbxqQqV(_#F01{^J6*oc-yB zE+`Mbb=dI<$5CyEXj}NJMj@2~4fhAZjiI|o-dgkHY}ax2ue!GmMAu3Odgy9iQ`BYG z7XHYI;~A4>xQJz9HX(E*o`z*+>&;Sagl1SU?L=W4Z=L2j zr2Tz!Y#l>YM1#HQ6#CfT7pXrr&<1@LnWu||0)AAroPCd*0OoXCNy)Jpraw-P)Eg{e z>x%oqwPR($YT@KZ7GD#wTkq@$M~U4Tx3rle3=z6kqmpNZ`FWb1jMso-gJ@;ks9-r^?jDMWZtiATy>pOe)4AbgX_l^Hdu9|R()mtAnWP~T-^G|i} z@OEeERuwbtER*zqIPy&|EAFlt^o*va7Qfjhx$Hc*!#>}`na=w>d=J;FsrLO1_uQm6 zj1F6dL)|OWzyBJmoqx_;$zoH_^;himVWo_HRgJ~c}(0S-GCO*GLbAbas z^SOmirQnh}vQ@!5K~Gnnirf|xpMXEwOfJ?b7q0c)O*u7!oAN0nhxG&B(mn}SX0sQg zfUX*%&h9Orjes!IK+4;dzDJE_q~&F_LeJwrhZ?xpx6mYzDz-NfZTyHnDX)S0?v5E;#s<3fV$87bLTegfJwrok4Xo38JXU+W3E9Mz8TIFz7k#zZf zY(mOq;8&-}BV{!?jSA@<-HYiGoMptW99+E`QK?Cch+i!-c7DgP-GtV1%D^;Iz=0sJ z8hJtC?5zIB?gCo|)v~UX5#st=qqC0^*Ow40b-_CY>}8`%;#8Zuo`bFFJHwbS64F}a zL)ear2X?)0iY#s!iwUf}I`SoD`{v(6M9Z*95RJX!@6#+tDF>Yy9Zugr(Brmvfd8FZ zcZo+*Jp8J9Rb6f|*%eyfeyeQJ2VZzyc+{>GE^6$3<;r6~>`a__Fmq4p;CA)lDON{e zi%Va$8b`SIeKZV&_9R|ta&K>!?fuB~bAnS-?v@=f=Vc=UZLLq?s1bF(4%*tY2uRxI z`OfZa@yNmG%M?~G8^Slx{b31O5%#!B!&b(Tah&JYES6rP%+vNPc^%D*-EBF60m@j#VqCB^;$;oHnGX&?4KA>_Kx+uR#W>FJE-5lB7$A=nnH=j{r;6y zViB!syYC;#{q}7KL(>QYpHv}(<;?I-!H`#HnC_&73QV5&&RQF;7@6;*!_k=gU~R12 z5!p*(Kr^~57<^}v^@%5)oyB~iF>U=bMb&%l3(|Deve#TOFI|b&Hl9+G5p61rFVjZ1 zD2FJ6UnS2hIc{j>UY;@tRv1a5AraMp-(DxcV!|T3ar~j zJk)~e-02IoaflRn#dx$i%48C({hUkS0cVFZYmSy+wfytWD^Dp2t5>;8Tqk`Iq@Mdy z>*ybS-D%egF<)IIQS!y8lBEi9drsA(tI(h@JVq9f-#>0b+Pt;-#;IHPRf+xSX8*$R z!*FiRDn*RW8t*rke4|8CgU5^fO*b}A4}9r@RSa^)?huvTM_&jorXNFery1U!r@Y9n zD;(<>yjI@jKf0}L9a5iI-LgFXb!yznFS=sxAlm%hBH?hV&gu0gOZjG_?I3}Hh9Syu zcxESl%jEoikn4BcvB0RDZlO+z-!$4L)7UozSU&98MU#XYu498Gr2 zYa7$$F!~bqCZj;LJRE1G-tCHq@)kt<{EA28lK7 z=B!t3ALNmpS4;|($P3^b!60ZwU??KLqK8p;k3(ZMK6#P&!8J7lChPW^iczFq>mr_YUFCiQT!e@7%ZRhv z1sP-R;=#S58plVDyl>J&b^;hZYv;+wmE_WMzK`GK`|>SB-W!ig4TlfsrJMWpN*i}K zd`?|w-draglP@AE(qYtL67TWm+s=0h72kZHG+gt-6KV33ss7n-=VR>2tOkWs(c)EC#T$9d8d zPr}|aJZ)MfYP({5`JDL~Vf}_Rro-9nd#%F*F|a|VO#hG149Uh zW`mYe+-G%~6~8n1ZYnsdd?hych#22CndMz|8`ed>S2@oUkASrfL_qpEb^?hPEZ;4Jhc^Hc?-N`z5k*)f+`M~Ul zg0A+@Wus=i{Oum*!`&eYMTNXr#pj|)`UbY2>XK7Zl@5p}Om(WjV^fQ4)mE?I$_8AP6w-g0(weE@eQ{E)3a4USN3j5tP1&c z5qwge^?)fWXPlDAvHA$vbEn?ulqI>uYru@vnv1$|n|nsPIugcPn*`P|iLO}G@a#<2 zB^f_aG!N$qMwj-?FqOD`X_%2N1rg1c$-;8#JeIFJ75t#ydC+f6d@`#hAZ*rWe>!n> zfI|Ia!Zl(!F3p%s$pO6bmS;DcWtyTrqIMMO>0dGvm~WYSr{%{>y7?luLyV(qJa?Pc zOxff_??~<8vw7oGT&YT(T*9weAX_-?Aih0cQ999|R?IqyKrap(Bz3`l9GTbCn{sg(L5~k5Zz?&gGzE z)PL^O;-q-YrH6eHseHQ6JI-V^? zJDwx`K@C?Q3mXH!R#;54(=6-dxjG~6K-DdEX}@FTBRO5gZgU;2>0n;K^M<|#4lj>q zm)_BOWN+m%wV%1x7GEc-9qN9hy}z>Z@!)XiQ(F}^-28LZ^`$epF^}>LNg}x}?NJlh zScvbc&rW>&e6-WqY#^L9#2rB#6n=#$HFN}zi;)ni`=~f~`#;#aq}$cm-=@kj;LBQD*(nf02*C^r8T3 z04EmDoS{&jTSDv8-C6_lS&zK-^yu(Us^K#Cj`k*%hKr;`+q^s9l0OpoL{OY^C%g~S z6Zy87UlVsdzGLOBjF05?QL582ayvoP+f7de0x=_-~H8+HQqEhRJ@q;rmH5n@V&PCZ0< zTlfmAuFj!wUf)ZqVWHShvt^5Zraf#vwE@kXM|RQMq<$Rnr7npC*+Vm)*RP`o~Y`*onX5*n`5}J--|1!l;RzpGAqZ)Hr zwX?MKSJ)1?yu>3G7h+2tPmQ+*&lQ}G(yY(*YZ6*u%+M8*Nd2KJb9ySO`;hHEq4~l< z83t{dk`33{Vl6^rUwRUr5T->R$Mw55QTN*J;(~txqAtU#LTKCT zLQPW}24{Qn&Dqi^7A&7Pr74E5o13jFgkwDe2v>|%335YM=8E(vcc!*pDwLENZw#?T z50BFh3n(qu+#~g(*J{hZ|Gev(c7;(A!7{oiMyEO;YIEg#mUhMw|gE` zP9B6YRp(P)DRfCFwF}BgYi2v$c^Tl^e01^sygBu?vEkA+F9-FZ?lDRZtw1fS+r!ry zRqxN7esPZX;3`?i12x;4=~Q~hp>u`$i6J94>r8@qs=lYj*m?xE135#746wz>$!TX! z3ti0_&oFjRU);4wN)tIy;5t}-bW~iyLt^lQ+z@|VNe~w=vE-t!!vzeY_voL-TGwG| z$%z&NT~$tRh=F?K{p6p+7$9E4_$Z#}u=1vt%Y@~Zmew=XyUlnU#I7TGB5uQ-3HPyj z(_PJ;YQ8^k@smFMs&A6)t37g>bdwwAd>;6#!l!QCh`dkgzaJ-tb>tQ4Y5YEA*>|cv zPp~+3uezdP`)W6bq}%6&zV=CfzOR{@KA6DI4d>W)u}|`ip8Dp}7vF3#oEd=~lpNxC zYeCeOIaGr73oUa(8MY7pdO#oZ+>ES?te=sjyw&HO`RwcF)yDUtFr#Nl`@LM=b&Ma$ zep_q2^M1tYbmXSA(N+Y_n4q6s)!4U3%7)pp zrM34mt@}A&#!JxE-KZ+LZ*b9jXqDK_74M}$dqhW@Q>HQntG$N3V-AZ&XF7T6M{)waT$Sh?CF~!-` zqY;TTLJG0T3r0K-oo{DNHK&w+vnz8%wmFqc++ADMV>>KbC6MT8dE?P%$ za^)A=iVt?CtCq4M!^w1ro4_52mT7{GOh^}+?2>U|Z$}?4fh70TnYhjM=9bBxBr;+4 zR!0?qSyw$HZim3fc#3%HqdeC3iEz1rN?#<(YzPy|DC??R2Nl zr9ngWHV&^AH_iF;ojc>RW_8%^>y{4hSxTy7=D3Uuj+xrmU0Fn1@3QPol=!zbc~8GuRuR@B5A_oONkAOY4e8Vr@RYe9eOE zg4B~b${#d#w?kYTf)`zVZZtAx0)JJ#x5GoM>YI~(-{s~Toq_DbhIAjKzDU5*{FXUg z3#<8SD$9*=R4&?H%4_0FGt+%TCPGRTZO zO*}EU^jVjF0oZ|X7rv^>GmX=l``#`o>FXP#`xIY zXRAN8WMF=V)Bb$EMR`7b&HTagx)|xErMoy)YxA0A^Y0`p&5Q)@7zE#XazRISB|b%eZ8_ZGYir+b5arYz>8#{? z)|s7xu0jz~;iI2dI$CAMDO4?_!l+cA&o-nDz?v!Tqi%%~A1vP(9G-P>r)GgurM4hs z`&)GqorPKN-o7-G#DDi}?b2=hdMC3s+VrWX>=-e#l-a@-rC3@Hdc~C9~Im}afc<3nWqu^t3UUx#t$F(lMlMl9}Xm&>`&6| zceWj!-tX8puH#O@ugR$JZLj@aTl?x8>)mUfUK`TZR|Lq|gHBWU_n1vZ(>>JQ*bF$U z`Xun#lM?p%kzt%q4H1_UTX@uoR%@E>Q3_7gZSUg!ua`jQ39;WOQ=4XKGpv%PAYR*<7@~cg7&HlhRYpGG<<``bNQ=o1Ea~ zTMtNRtX43cpGTRk>F~mb6}%02IbXl{Aqi*laBt*3ViKsz@{RFejTkOt$L{XFqc@Hm zeiJqFL97B}PyvmFmfapKZ_?A9gEWADB0?Bh}~&6hWnjFz4I_R-^oC%3l_A)f4M zbh4=Yxl7yV$wn*mo|OGHd7^F{TbgGhSuZWIbDEOq7&+3=#t8H_biuo7ywJcc$nP5s z=oSR$G;#4+Oc+cb5YhkJf+(w8=P@<#M@)5_ZT6cYlo{hvKc*@!WYaIZs4b!F_(h`GyoIY(R#J`*jXFk3=3b>Y*b zlmRx8CG&$kQJ12zv_8bQJ$^Im*Xa?PdHtTmKjIEv3h#vPMZM4(W14h0yJV)+lE z>xwf(d`&{_D%xK}=Gv7|IDS~ID!#%PGkb?DNmDnTdw}&O3!S@^1^Gfmt?(J)jm2$V zxkRq165vmNIh#aZsT7ISGmICZz0JZiu*S6#oLhr#Z6+1;r5J~f+(hbw*N|t5-kF#p z&pQ*6^>vr5?62Z|r_R^Xk+mT@v$JHT_rq|li?X_~vtl|fmYkf7l!c=4Vk7!v#pqC} zASs50uF8-6@CwpbhS_fO$((zKUKtI-UnYadNt~8VX7jd)o?m^ts&Rzv|AtGBMfJuT zb)8MmEu*RQgXTeHg~xIk@AH(!c08YIuVv`X=`D{`)-4nTlcl^WDCa)<3Ut5q^y-+Rx;Ry@98D;FTPaW%{5wp1Uji`;b$-QCppUP%7SFBJ7i zX7O~(muh8i6Y)NiOiHNQUPd@lh-d7NeCsV^`P^TdI#JaUhwm9BHj(?KWM}iK@Yn!l zwn?$b*${)}xC6WA(tWd}FYRy2Yr1B>+39A~r}>P0CGy0z-CyG))vUO{&fr`BFZi)x z!``k{668p3pA7dj%SZ7{8u5U^&W%kkm+kuq^X+>)E0@W)xqWwND^O%#(mhg#V_z)UQq>5je8Jx5{kX6FKMDvERJ_oksJgNBX=!-K(2!C(c} zTsKV`+EP6UU@%Z;VL(@bT>AF*2nTx(1AQ|iM|K-)lfz~hK!g&$SAKtQ#RY?bB81#s z05E?N%&bj7z`t*vxiw!$stALDIuE&7PW+#njT{XvK$#$qLv#oqRMzvsV4%R3`0I)Z z{Rd%!M4DJ4j=TMQfh9NA__olm zE8_4Uf~&qM^4RdD&YeSMNW);Dpy5A#i}o{puKLzS2$!GXlK_E&=iGU~Id^Txa5FC& z42FpTgOUAuX5f+TE*i`ZVb5V?r|+z9V2R)`)VDK&8UF%EswBKyd*m zOD5=49sJ3b)cX zvp$aGjH`H=1sevtF9d_pKuE*r=zk6CC&|c3-`Wsi1P2P$0VuL#<67_fY(;|(gB1bw zO$(u^;X-HzNTh|8zMTc!(#+lgZsvfnIxe{DhQ<6AK(_n2cxEtu&x@0Xe_P1gvmKI5Ow|g+M)d z2GK4VUw}BefpUNrl_3QL;-GJEa;neqXS8twqz}M|7$D(zQbI}2NPuJwiql3+rhsP7)gsRxFTvXiu@F|BZoa@jV{iDi;F$Aq^N3 zu#$hfMi|gx*R750kY+}5`qpN~2z!U0&;Qd@z@~Itr=Vx`2nGXn=C|8{_00Cy^CKPY z3=#J1`gZn)zdORPQNqoca|}M>O?q z5ncpnpnz5V+oi#GGSLX}*DCtg41wun_e#c|1xTQnexI&@40xpNzFb z7z3>a_>MdD^%a;}(=!$?AiWZWE4sjIFpB{KDE~T8k1wes<&VIJ!A8;tsiCxdH z>WCIAvBXzPfR zKADDcv~3ff>)XJqL{QKPsgOm1wA6RBHZ(=p9XDR;;Be)3AUaUcZ>05r%TKc-XFOmcTLr1+5n)BUD5OeFr$ud96XSJZ{L|rT0oV0e1pL z51C?2V-!sAm4UURmBH~j{CKXyL<0*30|l)aQ6vhWGs57w-2j-xMGV#KE?_o5LBs2D z_!rIUkNyP$`?#~y-T>nS1uen_=i`9?!M}Xdo>a5|I8e}u9sza$zi%4Y{)+L>{$)Da zB>$5L?THJne_AhqU)YVxaI8Zdd1`9l@Mg=>;zb;}6>uv)iP|(&f8-OCT|Itv6 zHjCDY5EFR&2oxA=5$dmkwFKk{B6DSx^(BzrMpunN_FKha8_lp1s6tr8sjyn;C za#bIH&M+88XgMxN%(RY79qBh2ECNz^JAVyG^ z0sXq375@Qxf-{N{I(}ONP@vd;A%RDA@BbSWWnx<{M+Wr)82|;HFyI?>C)dD<-uRZW zsoo0{1_K361bx{bxF?w7?vXUDGO*}D(LoZi0Bj36At+k*E z?oSTMr(aGv1H2Uv3OXxu9jKTmS)|DFrLz%0e4wBSB>0MohuR}G{aM>`0TL)^>lj-+ znTB$Pl_|1yx_|`(3R*Uut0<9wa!H%GLq(O-Fc>JP4K1vrf}U)X#x~U2dDy^Q1A>;$ z<0DkW6MQm_;^A^GP=TPJiL}SYJZ|y*eA5?r576#-2bwnD@u(We<6zSXm7AR;{s*wGOhcZab?8fTLfH8oA=8~8SCG@1l{p7T20Ur<{C}>f7 z+(8LMy}FH6Cwlz>6ewsvTbKI-4&|6vWM`&c0S7>!7=INH@aU5YO6JK+k?>T=k+L{o zT!5g9JJ0O@A^)k#f9LV{1I&>Irv^@7(BR1+KrRY(cR;%(qm67*{DScmO@xL+?OjybG-Orq2D4nX+;jSPC^ zi&OmnQK$}ie*fw;J|rOY5124ROYq>{o*g)K{{5`@xNlbfx>s=R)Un^Q{x{+Gk2gUN z%!3bpBmD1M75~2b_fIoG54X^|^vjG0B(ZFEvGq}M2{trp^ Bx7h#y literal 190620 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 D!#Xzw diff --git a/assets/baidu.png b/assets/baidu.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb8af010c74fc98c63636e12f79f2270150dea2 GIT binary patch literal 3454 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 literal 0 HcmV?d00001 diff --git a/assets/bing.png b/assets/bing.png new file mode 100644 index 0000000000000000000000000000000000000000..1855e80a49bb2cf1f5f2c826097cd657cb777db4 GIT binary patch literal 12653 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 literal 0 HcmV?d00001 diff --git a/assets/duckduckgo.png b/assets/duckduckgo.png new file mode 100644 index 0000000000000000000000000000000000000000..a62119e5813079aea7061dce3397299b79711f9c GIT binary patch literal 20503 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

    neWrrpcCg7zy74F-8gpHuP#l$ zo40Px)9oc(FX+RMt5&dVpXEW{{LwD2FE&_VC(qCw%IgRV;hZa+qP}nNn@+A zlg74<#>q`%efRg?_x^<4Jv)2m%$Zs3PZQq~JFas(RJpFWlE01zkfiaCI)zi`{>LqW znbdj~1YdS5pH%1jQS>tiWEZ){h$}$YEP<3fF1q#T+U}S^{2)W$*LJ<-VN^k6iW|ED z+)qE+Tj(!_sY8_^`OWFG#@cU6DcSdL4?hG@if3rJYA(&p&LwP;(f)Khn=j_L$sdqK zC5&BFJ^UpCF)xe}8dU=n4g5`nwwzKNvbMjs=#=O|wo85^H&K>8JNrRAVV-E0Shcn) zR0PtBkQ|NsXWr0%xd|{eBPR101Lb`rz3T!)B2|PI88x!30=Pf2HSQw+{)0X0tNpny z1}lV>qxaUZYQ?(BU&z>=&4~g}ceCy^;=86qIl#7;JJpTI)oz%LOe3JqY}O}|hWk@p zr8@%}s%l*X+6MAk56pO&_%V!?V?^jc5KJPIrWeaXsIdS^RVDnb$YQeIt@BC6+!hYB z3qfMun*3XomA?eoufrcW+z2OMVxAXQPToI31$#>4aDy0ZSXX=+3%SCNvq+)ivl6i$ zJvU9B_+!ZSoy`rS*4v=M#9riiGFU_Cmm5C&wbj>R@gsP+QvKQ<{}9yR;@}54Z4zc} z1*VR04;`YP9*Aw&ft^eK49Qs@@X0O96cv+LV;VZE+@fL@VnyaTt3vnzXvUE!Oc_oJ ztJM%hUefJUw-jBQY58y*9-R3(DX?3MSgwk9;J0u{3W3`HANkbYbPmN9aRaWjDi0Sw zvv?^pym|x6BVfNbzNMBq83f|PwKj33bkTzxm#=Zs@EeroREW`8-pr0_pgQ$hREDKX zWTJ(3GD?u=#?7B(folm3FS#Nxw-?P5Bui-l9v*nCKfbPtJkguWm9Fy^(~8hF>-i)-^Y(OgB(gS@nke`d9%d;L1>qlR7!0 z#7laGb3R@5KkIix$zSIQGw6b{H#hhsTm^uMHxO#(S5q`1Q@jvR?3YsfkON%;zZ!HP ztX%GtM53TxePR$G`#e!5KU7J|9i3eK+lHc1zAyhcO2GWy_LgP^E?sa0rFJ=3eK~_b zDcXh$+|fPZig#z4o0bJJRrkhV$_HYRp_`)e>oplG47~|=-Q;0vFmXA%a>XS@iN_pa z)pN|>6~;icA$>sOI_-V#XlJ-yWqxb7i{-dV?^IE>kfaDTu?%x*>{gw#(5PdVOmUs! zUuAAx>s*G(?X%s`zqc*H6}Sh-TUbowI5j0LXu~=yWqd9(_-{t>A4)^lU=;Zl-ZEXC zzrB`>T6%(yj{VJiPv%p&wkl(LEb1*oHeTO`&VWa*W@K-^Yst| zzi)YUc>y5FBtjhw1)HUqX%822_FBJmou1_Jp|bA}NG;Y10eFBKL#w^q1uF1HlD9u5 zs-LR2>C1wgr>^+LBhn^E?k2=L#xBJ9ypn<^yO|im38ZbrBH~IdzFF1OB&OChP$*LLr~=2I zdz0A5ntc4HyEoJv0jE+uOPhnd;Fu=?_q7iy;_qVX)v5-fYcBTPSxj(*liSeARf2I z6$A7T?k(Cd)Djo0XBjgu<|EEVzG+I^>TN+IpeE@Qy1(t9VUZ0IK31vyXZ^tT-eO-? zYfQ6RhZ!kZZRJBn<=#MlLhN=Hl0%S}b!svpQqnwTsK?41vNc-T9GGM8c=~x$SAa@M z)Vb7Ig)>|@^CKMZ8{*IQf8wY*-N}|rkpz(fx_F`MbCZR%C3~rN8|H@ovQ#*q9C*4G z!ptGtl?)xg@q#ah?p8BP|L&mAQbUWO`J}``LDN`$@o_YZ*zbag;oI}5Z%{V^eHuf< zgG;h>YJ6ns;4B|wfWVTgUFeyXsG9*S|3L5>3#Bd9%4_025BMh%R^m;8k>d!N=Q?Y< z2Rxq?q=#D5-X7Ue!T8bE%3zfaD@I2VSEQRrG&q`Nt0QB34C+~IMdvIhUkqs#VODa^YxSuDe&3WkJ`hI(rHX@7Wsc;Ift*A zX6~7jYlAa(N;H*BLB%bVTo+|visW(?NFdB?SWjyBVdbv&iZnyR6BLz6@^8J9q z?>&UPtG_t2KUYn`_RUumQo&uo$t`{GBpskvvR8CA6IIj&GnP8_akhzFIGkEr4mBd} zOAOUhfj;}=n~C>giAoNAlT<;`wa#~P%Yl+PVi(hS40;>*#B z^TtS$podq6afI>sC7ev8-T-SjB`HArMrytFyBQOJgq$3)h%#a?Z^b zi!L`H&qT`^^`ozHw5&4xh2AoQ$1>FXRRv-C;be3o<4B%!ti6sK` zY>G%Hv(nU@eTM$_yN7fKvB4f@IR?@R_Nv?4jwiGk1*Suxo#Az};!TGL9EcVYO5c&% zH}hJbE_qF}Z*y0*CKGxcrsSRKP83=<<*SgqveLhkPqd#AJLY=)8O4Kx<2wK22(ptt z>bb06F8gvO^93$)6PA9$wuIQKOsJpfq}fqDcjLa@6npFo*`s)#(iCIX(1Xbk+u5Jk=$|`pXjK zRgP>bvx=3E-8y;5|14b2)8IFrnS;4ks|^z>ccF@O#A1TQLV9KVHm(j#Y6xV#wSHn! z;wi-j0)(@E4+mbP2Xs_y!QAuLO+|}Bq@;*vt9}lvtl$xIo@%CWRS`9riRVF@B}8#L zK|o&3pLtY8_RTbD;fp&*1GCt(s~0fOtZI^G)NTKlG@`-^3R1rs!$|Ece80To3woI^ z%+d6$qdpYEy);#7vJl(igojYx_Clhxh}!~#<43^Z8tZQ~Ce*HeQYs0EB?>Vyj;q0% z&6JjF@j5>#Q2*_TeTJrOJ-%n1HlH8F>{EFn{0lRU1zQA?aT5++>e$oyn1rWe8^ORQ zV?2%+d4W8zpOrE}T$lSBv$`i0=ygL81G}sBbD&mugNais3SB}tHZsA}e)OF? zi6td&{e0L+HG18*V$_2+Cfy29T33JLje#&5p)FW>3?BOxe^?i<8jC_Pa(;sP&y!2C z;nV2T>%r5%rE&})6m=ku9)37cztW6anFfRce5EBj4p(LXs zH1DKMjnV^mtNg!}3CJ4{D52y1?6NF3T0-M;_}TwE=C6#m5Pgu18%ae%9#Oa0v$qZZ zj~m`F-kscrxRhWmTX~vgdmR;@`!a}y$k8M>v#zH2xJPf#ke;kdV(Ihh)SQr5^N{Xu zfuW~WNS&_ws6N=5s~J@~=!rhlr$wu)CJAADRrq-7RKY}3$g%fm>St^p>=4h-!gbwy@G`1*2*oj7 zCZ8do7)p&061eF_0BoN3kV3!aJq`H(;JQr;^wi;hl&awbY?@)>HDZuKsobbjlfkUO zvzmel(cgb>jkkPz>mmOTiz5QL&Iqq?(Br1e?XcKRHU$z3$uiFw1JqnV?o`!Rw%ZFigXwS6W*aFBL#!mQ3 z3zh^BR0u|$t{6!Lub7q#ei^lLg()`#fm7VQx|#VuCaOsr{Pb;a;^FL)OwZI&}fnEF&Czp zrntC2m&z@dYU+8o=+LJo@UEcIG#dei^`|v{Lf1q@r~4TO>qkQrgs&h21{{t3FB3Uk zA68ihSWPuAoRCmV#gwP8Q4u4i$cn0dX$WeU<2s>|?#Wo$W}7~o%!Ih7wwz?&nsOh^ zqbI5{E+AbBdJbVQcCJZGu-NCNDR$MorEl);B@D3Kx>lRglwy`!_(Z#S-=^u28hE4O z?6Fv$XE9^C1*L|0xhH>f>< zPKx+uW`kLiZRH-5ZB;ta)mVEpk{4J+GY;r?uInN849x^q6Lk+qcF7y@U8a=(gZwQ- z?te5>1I1lkcTZ@H;MW~~EqpQXw0^L>RTn2{$tVSWFo^qr`>QQkns%;XIU3T;89|x3 zCAeqJm9BxCixAjHxf#_p*B$HhE*CW1L&80!%12up`h$;T_#4TJkx>))Kohci%s+Qk zI=~9GzbT&bfUxZ*?BEhoI|!rTsd#^45R{AZ#$x!vn)guq5EXBd?iVg+s%$U#i1E>t zSHZ}K{z)J=ZtP}sz{((B+3EQGx-h2bA+7Wgkd3Xfa%X@C-}HSNW&3%C?{P9wMnw{c zIo6kAIFe#8z=Lhg(_Phm`{UXNq5tmvH4pto{P;92qE6#v`tQ#bUIZd<7a?JX2nPwN z;CGnUm339Fq?}y@LZ$5tqoD%*)sS+UR4~ro{y&Yn$cKN(vD1)ZZHlFeb&Tsh_5HR^ zxhTKRe_ZD_xO&l$-wE4i`JRAiObSg`vSZ}N>=_>ksg(sbxUz7j?ca%5v6Z{=M1jlY z{B`ty_MUTkKGIoafpZwD_w=4azUd>{yyL-;uEgzyTNC~ci6-GdAOGOu)ear4t|>)f zJexS45zLL&>j!IdGg10v5T_S2sVAg66I1SDCpktpZk=z~qWpEf;cNK}SB z$GJM4ilHijZe}V|vvi@pJ9IGm(7#5Bw~xXHY+ru2UyG6lrtMRj|B==( z+4s)j3_UFeM4tT+Q!#QYl`%ljo74?-V=Z&#tazT0Ga2nFowhsrzhF!vAoweF#RBGi z!|{XDW#U*zU5U)9fEtZ@yu2z?qzqTF6l`Kr0wPv-5`zxZpz3JOvJ|Xl(8J)rXuQ&? zhVN5ylm4eqRf#B3B_(T^&i)|mS)g0iWGE3cz04Jbr zqR)9Z(YX(J3meAo@)&<+0RLdq%7H9sMB;Gx_jT!1oMBVUyroc~D5S%FPxmp%Axh1H ztExEUf5Zvj(aFJWRQPyVTOc~mIG~G12^_pJc9s0{7<%BzwWG}pdl?ztt_+gi!u~|H z@?(qBPk)FW-z(dsBrI<={1MT=^b)L^te?PKQ(e}^3}+nc zUSR%m;rEbD(Mo%_2x|R%f9QUb49-DA_1X#HWd`Js5PeoxT(wyOXh{b3N-Y!>@;ekH zm`fap6^&W`2WM8Sbu~MO=UIJPnVHxZnP6Z6t@7fN}dnqZs88%agtq@cX5F{r#Hik!^7 zTjj_4-233?nHEaFf2T+kNI`Wi?e@7+`fM)p?>rj^2qkUJZZCB?9cgT84O&)^%qJn^ zEJ){QFUpO;^8Phr{{+}O_E~o{w#vRKWWi*P4t5LW-Y_lis{XR|V5O;GH*N4IQ+PRF zLR={fGw)^4cDP%O=a`j7#v4&v1*-(Cw`AbzS@oJc=DGWvs`Q7$MJt@zhh` z-IO9aR8{|@b9Z`f0yU?{sf?$w1|8+5=MV0{IDz21nH%cOow589;G0QwX`NnO)i0KD zELjX-V>sO?;*t2XM9@5t4zA`9yxf|7VV^vHb*NW}z^klDLlLWiXFUz<$m42hU^-#l z_6uq(GUrdgjBC&dKDqN7hHf!TSV{bYYXW>Mfz8=sTQg>LaYRit zXdYJJJZY?|sfN>m)D-uCaE>H*H;}_Tyccg2fgCk!_18El8o`HHQ!CD}D~!>({`)M% zZlEMDZ}oxHNn1!R)}wEQ&;5i;3(doUSr@wIK2;T43zzeznzPd6n~_nmg9+`D&%g$! z-rKQ1ezM(H)9ihbHeC|l%k3@e>JB9uiq}rUIk4J@V{sCw`S!@0J6OYw&L?rZ7RGp9Hy7jdQHNfg$L^;w+16d#401#Hn?PVE;*v-7&B-N9el*ve^aIoRP znW3V1HZ}BvDyqRlsU93LQtQ@_y8|x&b@0ogH`(CBJVYj)q@T=K9f~;yS2a5!~S|%7pxQ3++xf8Gv!2e(3ze35t`rWW~=YHRRo3UD4 z;LBdkFZ#vuaFyrvd^Q2;Z*!LqMgsJSzTa}x2S9LJS`la zXin94QG_8<&XRjau_RP>H@if7Nl#&A3XOQ#ZADS){Y1q z?!c$jt%A_|nfW{Y2G>klVMEP8(M`}K{jdXJp};z@w>Q) z5-BZ$oQ!FK@g^)Rd$8LeX;QN|;sS#qb|lBK4;!?r=jIgHeC1^ar0P|&CBPkcuG68f z-jG&Kq+onFClChF&|r>m8jm&Ow%suh}h55{ZVwORZ6^Lp+6N7F{d(SHE-`l{R;`DomG|-7jh7< zEJkQDV}@&SyR}@O!S#yq8SJh%E&p^#=<-wxT@~0KbSDgJ>F6Ykvl#E&J;APna=7)C z7)f%NtCZs>V-ag8RI0SLz2}X6C(-g#g)1^Ut&w0!BHsf)J77eTsS6!9lBE7%g+Uer zR$``w1eJZ%5V0xf_Sg7!RqiRE;IMC%(#FgWB%s7oaJ`wMTKI%g)TrE;al3G>cx8$U zLtOF&yK&rZF2yNeBPF2-$ICyKr10k7Y!1n29KF)Oh+hv z&HX$;TeK7@-of&>Qg`I~W}yU$ZQfP%UKa2A{FJLw1OLeCpVjhK%VKVNL=l1l5xtWs zL~Ex-wBpl~bFm)zjlf?sa!H*lL(`>rSYgNdl9sl|pZv%~d%RBf==;0!AlBZl}G<=_B=}=0)8jH-UisnON*AR96EaA6VeBQxI=%DB54@PYXXhqXVi1XpTzTVTl z^b~YU;!q)d;%@(Q5?I;je~skEC2nMG@0;qVGM3C(Dzr|X;76L8L(vKcDSzlC+Lw;V1Nt+Lnu#92>Z0Re+7D*C6w>f-xX}lg)d%*}!hEh<4y~ zKnw3pSu^zliFGvahOyLVL_Am6=59vzz*!+9Fv;Q@uM=38Gc(a;JZVO{9v+0H1$O-*WOrT+ zSExc0#@kX?Otuqc@d1MdsI8jyz)QdteaTYF^jnuTt7c2wS!DR>g+@X6j)i(@$1)`; z%UHyGS*xHMb9plI6PsHiZbm5K_)ol-vAvK`=UP%1k1d)XSJmEI5m2V=(&8blliUNl zZZ}wZw6>=X)5iWuk=7O)pd+V0J=Z}w-g=`tpy0A-%zm#LL)Gz0_TyGx|EZ?ItmBo1 z9tJjFfo(eDSKV$WgIJRi97-Fsl+UJQ%sOm-O8?po9(1F*%2aAomB@c?FONao;lDq?Z-Gh>l4%Rp$z96Ox(!=-a79e(X@MkgAVp1dSxk`?IvpBDhvCA3u` zeMaUo8cX$3CwJ*aK?i6w^vpPh63By84wFyd*+`N+%{OgNC@iTMt{=484v#oLB=e7r zTJ@ZUav1ZdH)RVnWmtaygr9!GVyTV>&s4?C@H_zbxs86<3@&FK6>%a%=cr5QC?r%l z4*JXp4gf65eoJwj@U`FV%fa9%vGNFxWVd5rS&!njJ=R)jj6@Hy+Dt2gN8}lsj}O}e z-JT~K(A|L|gP__mT=a>Azp5*a@Ro_Qb?+EwPEl$W;=NX3_e>iqfiyFufJ=sa!YD;r zCM<_#E-hoIdV6qqqfYs^q)GH$hNS?y!(P6gzbm=OjFg#PDGPA{kmd6fy7~B#l5y_w zaSV}IDGi_mF}W%R>@s)s`Nr$J68`}0iT{BTj*u>zhCfx~TK~|7-^;1+7U_LMO_faI zi&=HY@k=VQo3f!24@x8!>alcPHyhqo@>qHL?FAKDS0*NXsSjJ^7m{^WNWFkMm#{W_ z66Zd`nN}{Bv5h$tHwXcQLm8e#_f1?0(t*MRM3=(6&1i1&*-@nRb1U;5*6+&TZ}l6v z46hcHTEDC~5EobQ(sj=MfeCA2i%H3)+68W0t43+9jCww+UHH?a_o1LX-P!9##*vxJ z-H&e|K9B=mtXb*UN7ihf8mTk_Wf{hU`m-@w#K~!RV-U`5*&6bt&Y#NJU%;60K5zg~AZy?+{|FjhTd;}#gW{pZ(I&Dg5PlOZ_b$XhrV;WLke`Nt#KeR5ClSnp zWD$p$9#XtgJ}Y~&Flr3RFu7LHWiEiO>`=jw*!Bw*=5_Jplynhz1IBlUO^bqEa@U{7%;f7F`xCD6HT!o%8)6Eo9T>98w)Ysz+0cT+rl2nsqVXyCZf<9#E8;Du?TUGLv@U!)-U zo{xg1-yI>irz_GJ5@eD5dS|5|puW%}M;;*JSllD?SpC3EE7wZD&PvXu3ywFTV!6fK5h1NtU|P2DCx-R1~^1<(W|E3RzYH}l!A>vS5t|nkgNGrG3~64p`;80N1NZ@ zJH5#NB1bG@y1@X!+EQQ;#5O}?CuA8OVBPOs;xRpwu#^xwq8 z6}>c$JnX%*f4-%#F>%uyE4?_*^h%I2R<)i;1_^|(jnO~WcPPN&Kya2>d$L9{bVZ90 zG;<}QG;vBc295r;kaL)-M@DCYF;pGa%#|0BCJ$z84<}9RipH&x*+76AxpQ|z7oGUd z?98@ilaX~9GmNZXe`Qx;WrFB#iD`{-={*MUl#?ZA1LeXZt}rI_!TYWD+-Y`0Pf-N5 zLG|*-ye$7}oHgT~9G{93o*V^T0Kw-LgBoT2lB79*bn=XX_q+vipFFQ-ZC1U)8T7(C>j4~=ql9n#%jy^pIk2H)FSV4VrExy3O`ro;ab|~ zN8M33eW^91C#T?hW{GE;I5)Y8`bXs9OX3_(MBIeaIwk7k#5Gt6`V?t!8)@U@S}oW++z`7#RPed^7bRHU>Qj-d^M4r>cCltfp) zuFut&f{5w@(e_E&M=3D3We@D5zN)EuZu`zOnWH5Z`M|8M7qUGe6G(@U632J2Icl!& z+)~UDyc1u@2^9;_aGE5lBwnK=m3$FtflPBG92GJXcfnIa5USH2{Q67rQ4XtrGJ@4V zR3)k}De|Tzu9fpm&1ESPVevN)+KsW?b zLWbA4={bKuZ0cuq&KdsZsNW)RQiE{YAfhC(?-0*2?q_|QElkzS*0Ur7f*TIBQKeGd zH5oiK1(Q+h8$~i8HgL~LSHimKQ)y|v_`DhlAh@SR_SNc7+IRl4Eg!b5*vf%(G&oq0 z*-s5`*X6|4=)#NoOCtLeuf0e!n-D4m4rHU_Y5s5q^e!kHzo2|YTB9Zo0?{L-*02c;&NcV6cv_^57j-$ zK6wdldYrm4<^MZAOiGqR4JMVxL6W&eo|M_YEnO!)EY{K)bC0cm#_1ecy_=Xv73P>q z`fP&I_9sC|>L*k&=c^HP-M@+S?BydB-UMU0hnB9WCp2gt^n%|G?6@?#IA|2hbz;NW zQTH$&X?~-WWX4ZiZ?nv9hGgbv6V*P#z~8WvW;(-}A9_Q@{w=T1x4l&E^v3O9$N*5A z8liEO0;XA}BW_o?wB*0m3gONWJ2g`G5|g%$zIf9LEB9qVaD}8>@*DPq~C{Q@mUy8MKS&n*Lc zQZ%J%6bnneOY~HYu+0Rt=Wd=e^{A+RneltFmVA_EblYo^X00)?km(}m@lk90H3(qD z9*FP)>3A_b(WKFY^V{w{x}#Lq;y7uLro#G6*!KYSP8PJ$d8gr6*XaiDYJih(~T zCt8xo8+!IDmMBB4Chvh4ELj3*qWnC(cCH(rN+>tAN0;hO_&%TR^`FTh`ji5DUYEqe zKztYe$v?{)iD`_`csSoQlP7UW{^qpcBaHBB3FztB+~;f}%geD^vwzt)3_EW+G?$Jb zCK1c_Op4ki{>M|yOJLA+=oi7Kw02ZjnsP8?Wsk*V>?<(?B=JIG|!nUoXLswraWbv4n^q?L6a#v(H9%HWI9hTetEJO zZE|%(vQlNoiPvKflNH6{Fl(J3j3*f_aFpTdlznoFbRB6jyfHukr}1z`Sod1y@85H-3nFF3gkMUwiufPt0LB-2mLN z1c~u-)!2q<97k&kS+PJt%36wC+{oQ?N)7*@pg)fj#;NRg`zg=&N|l)#sGZ7ZBojx? zSywP*Dr4?gqxUQk`_qa(XbI>;@`BnqfuYioSxCTaSSLOb+RK++j@nUC4Rga0!ocx0 z$lv5cV$-T`fSBH<8a?w{VZ+P%3=J>m9>*y_1xV~3PrJ9GS8(Cal+?&iR8=;v$7Zjx z)zBx%KW!sOZv90CDpJwu`dDOr{t<6ImV-fzqA7++UCtlpZA5W-L6yAc_Ch7mYKayU zWF`YJ4=^+L#@>j5-ZcLejgPID8r|?obav-pMG;+qaeMY9Jk+LF)CNM|`YBDqv-5`g zYK#}n1B%xK!{!ZT7?*zZkH?oE3K@m&LMdWt`p|E4js;cds3E%F9IP0Z_`h=!&PvA0 zYGjV3v3L-)5mUiLf$Rd(k!j;~tlznkzSguz&7&0G=BXJ`v4BcBu5lvCMIhIBO_qix{L=7B3zpG*?g}sv?#^D`Z&H(U5Sv)AP{ct(4$@F$ zQdX7zaO?}%5s>Tm2yA%IpA;iJ&2>Z<7o$G!zQPe-)r2?0OWgbbh8Y1WXSJ&nsx%el4QC8EnF{PKo#GB zlz7HY#Hd?nG07y$~d7`imVALu{`ZnVL2=G6B=+z$U9_Q zl?49)BcWj=VG~wL)cUXhAM&}8f4L|!VAw0Gc$`Xuapb!J(n#ctTD?GbYcpbsGy6i3@kGh?l_@0_Q*0p3;kK2! zX5^0n^70S~c|H7D(nxN^; z=0DTGjILe#(Itn5uDo-V5QF>x7LlT^JMrJqi_JTg!@}nC1(S+TDLnhMW;Qswk-j+)}RI-=p-Iq9ooC9mU1p;%}rx%ezd$8SUOxMQU&dB~o?iH}+O(ID|zH>W!P4r7=kr?_ zp(UsH#*^Ce<-&>n=cbx5-mSw`pCA~*`iOr>%-uIv!~U0}UF$h*GtH>HU>uEM2$$kk za;T6qH?e_TQjvduKT#m`M_zkS6)OyPb4|3lFW&rg4`vzi>Z@)T_acbYl8@68+WgiE zMg&GUi886hkqA(93DPXGtk0Y=&D*<1=ygfu?g&Al)Gaw6PSJE-~R zF%9|Z&Onx1EfeY9S^G+C0}|&hRuKm-y$iql0mFX=Anyayx=g)7$A(pdpuVfl+EJTL z`($XezmOCX>Sp7PdBePnN5TWi&SsuiEtB5ghzPWEeG~b#GC59N1Q5)zm<5SGDSfLo zGZ7nU{&ffw_}pQi+#;KMt>e0#@|B}PgyBAmHvX%4n%6+mFW zF_4+yMQ|dPdpq$1-<*xY*5sSda)U60ueAWeXHm|gN9>y-dOs|AL3nFRH9U&4#B zxbhv{*ukqOck={lXV~tzSJRsp$C6r?AgHIm5Yba0G}(OB<52TkSSqYy%w(NZuCFY~ zx*FO&!d^}jV!sOxaub@0H0#1ZU3Y#0(7kskhf9l!coCm%J%p-TW=Sv+YPabpW)v1fW$Ir15gFoL`aXHpay}L(}LI}Y~tjGZrtBBVxkd#1{rmi zZm50Y_#W}K6WP{oSZeBo@1BDTIG>1#g^EN4tNi2B|05YL4yCyE+A-)n6FZ~|Vnw=N z`0gCJiC2<2!sC^X5Zz-wn^{((@yEC`y-a56h}pg8{0O3T($A1?Ruc;fg$UN1q6nb| zYRP75NwzWVmBvH?eKQZ_a`!F_m!DHy;Lk48AyRMpy~&p`YI zx+rNuoAo?Vh{4>#DJo0^Ru}BN8wld6#WF;U2o$eMu@JVl^wx+;7E!tmpzD3RnT`Ga zl-VKMPXSo+^ixkTpSynz-$xkTYVWRy4mI}{?$*<$9f;IoeSx`VLDdF zqCFX5T#NpI?B3gB{ITXEi1(72oGH0VKh`6j6s0N^fs~NguE8dm)7)>^4lP7AGxVan z#iG9%eRS>++qPpa*tZNDihD9?vtRtah^aL zhR(c24aoawMe%H6o8+N9eW5IwD1=9a6n^+Y{F+YD_G-e=@jm#x(X(5jrO>m!Po7fVbDo;x!)y&Iw}ep2JVK*=+s zRJ)mUNujEm`~4NqRSV6(tGwo!KgpC4ou=(vq=^rFe`*obTT{gd9G!+o7Gtu^ShJq3P6ZTqh%zCq|^20x=8FT%85F%AZ;)t-q_@yZ5{I6~Q zFJDT?k#GKt!330~95qzP0?vb$>mdBLlJ|Gk;?#=QQ9h!}pmA8L*GXlPu_}7P@9=9e z2oRW|DvU*>Xh|J)NPjb==+5t9=E%_4uG*Yi!3Tqp!R7Iq8xir2(i}rxf6_y{AJjg9S3THWdP!b3@9=N06R) zxBRuu0@x+2IG*1eJ$l^Dq)667e>y5-s(1&n;s4oS4?%soOs~o(Toh0KEvAb*RS2hv#%TX!P6T}tcJ!IX z`!0=Xn<>w9dh-Nv;obh${>34{nHm3}++Q!cUMCY<-0Fg=nOO;wBZ`ocKvv`XVPCMJ zTq0*{{R?h<)E9f|yJ8*L-JN}tz{q*4v4LGB!ca@c<;=adh^zUbBzJ*2W{oYF9zWDZhbQC0T zq@dgoG=Q+7!a?w4n+mmDwVHFvJbZmn{_+>z%DT<~phLwUXrZ~rJ#Qx{`U7zoPrvVG z*0mHJ`GLSbT5sDpxKMz1xE1g6$F(O4ieCCrhzI=9>EY7#q1xlVU1-5w5~b;^S@)@3 ze@fhDc99n8-l2WYt%cQM3MxXi$cUL4;$B1so-i12rN#D(z`qNJnL_j0TR?X*&qRiO z2U1(pJMZzUtV-MPcTp^)Hic>eE|n&a#KsGQ!5?%Q*)cd#xosj1It0M)7k7w=w)M1Qwfu@%KP8$B~{qm zd9%^M<(TS2)r~2Y?*m5@kgIP76hj+kP=~`#YpG;dQe^vEj)onbWkIm1n@$edI2j5?dRPHA8~U zYU?N!325#1{M&cI1Z60ck&{CV)LUimL8r@bbwa*2#fMR1GWqlWh290NIaeCVCBJD- z)*B8(xms@>Pi$#CB9_$*HAn9r4l^l0z!239^VqaF!3A0@c%uR62g4b#DH2lxN>XK+ ziKyCw#(XajNDr2-Ot7eyIvTks#Z0f7!W{V!9@QE-9pyM8gqgQh5X|iUt(Nr1S5~P6({TouZNzE1iyls6 zsmhFXghO97Qrwnlj9MP_XVB}_MB)#qgZGUyw-0^PkjMT#I@a6A{VuKmapx6xt^VIm z)-sg5p4?L2l@cP9z&$pv+q^jKtRn8jh-TrVrANK#3o@3*=AcfyZSqU##-%6rw>b&Y z29cv*pwX6xUX-<|8XO*=bxuRkt>(D5{rdmsn9b|OaOGAvX z6X_p?GmzTXe(Q4nmv^~$y!M6_=}>0kgt?F;871q!%p9A#;GLkskxdbR$6~y_av#us zM?}0|aRz<%S16aCxQmrC0;9v%0@8^mEl6F}TQ4CIH|+(%EwMC1S9&;r%C0#IEyfqj z_E4Oh&*85m1Ox(0pArGv4*;UGMFkW^rZK0Kh%CG()X*Rkw`vawdej!<_tMN`c%d1j z_(d5+v{Yj_DgHG=?M&auPCk;mvxs$5;rH^}(IH_%2Z!Z&yE8MS?`?@By)f@@p>lQ{ z@A?W{?~t`u^dMaemM{RGlO#X6ho@vAeKGsD1JzjS*eI;Y;l>Tm_2&2e3GIjQ^(kci z0Vb_LZGBYc-t{os_0wflp{xaNQu8n>_47iyztH1osX3lsA;2lmPkVs?p9Kzwlc0>i zzTwKvS^SZ;Af7}-3NB*Qg6!Fal0|d#Ok=J%!5%nIK%fjW$Z;!_HBUOAcpXysG~4}Y z-;15QEQg7HDD;%~M$1yHsou!+0Ga`11T;$gDei9eBkOXa_#I0GP)SWD9*$?!Rj<$N zJ2xOi@XlhTlLI%|zVGjdF(x^CosMf%*s8k|26kvOu0!x*l67f)PM+ps$&tt`YN(5t z`TN{%FKL4FGGHiFRCH^%JvKstxZVyAKO`?w$aj$n`}^wX%?GTv5Y)gx2JNk*U~^($ zw1&at|9JsqCf&gWV>DEnqRM@*W(YK`AFVTPkoeWudO%HnnYcJGqoMPS#KEi-Adjxy zTmB`jkOZik$!uekG!X!p9Lz@wZPObBPzMXBQmfBM``3)0$2k{J4kaCR*K@a#Uc|!p=d(Q6N$Qs8rHAy| z;<1(CM`LP+;Ed?Y*RoxtCf?#m$b?6Is#LCDF+;yqki(Ed8YO=!S%W{ zseqo`0BWj!8lLh-n;cKD-7Z60qQ~w~7~Ml(K4u9R#F40Sg{J_me`ar~YhQXD0|$uo z;AU1PhMLPzSSP;`?u!F|G^jMKYt>mxH&a5)pC{9SL6r)^iqTB`I{8Eb;)}x=Un)U3 zOXM#=(`4%f36=ep^`nJ6#TKQ7sw0}8V{c;)086!5)|uu{>*|-FXBsmo7#AJoFg6Ik z6E^nMk>q*TN1c5$T17yQFT9-4gB*BWE$<-x^Sco{4f-INi#-OhISz*wa>6ny4uym} zB;uPga*h!MOU%5B@FljS1QJ9{G1Jb_%`xm~VBovg#^^1Xe`A~2jIvdD-ZsPcfENA# z*V0vnMfE;yYU%FYr5l!#PC>dmrID1*6)P|2>6vHlnS^Df8H7-#PE{~;3cQCwCTy+g2eP;4fmVX$e1$>+D|3S59eY)1>aIcm zwKPbC)9E*mq+k zL9(8I0TT{xS`8=j0MfV2_Gv0sItw2vV))Tq+0Wjop#wZ3+;@IlSR?zV@FRkVRq;pURs>9@>{wkNAVnvR(%1Gy?5jh*cByfH zi8PgWR3PlTtE1Ror~@fh<1;fP=pS%&o53yzjeF~pBj&(X3yaasc$sW0G^|VY`p^AJ zw`@o#V^Tl1N?q{)=C8%?_v4a4rIOZroRuR3G5##lUl9J*s~&9TT8L?}sr@`L(j zUj6R#3*=|Znss(5&0lNm$}9HPF8Ilo-yowRwa?nUa!-$u+1fnmgXi?72`(CG>yKS2W7>@X-&^L`zz!K%dY^-(8znA|)ohay; zKilZv_?W-NmVgrZoYEksxhA}NBKZ`-tj5Cd?SzW>FNZK(P@QtG5zIIGB%0LL{|>L2 zNFI$zS(4L#n2F%>1nVM5^oQLS-BFCN)pKh98v(gDCYN$_O*KK7F~WmVKsJx>W&p_I zTAiZ&ACqJ%RZEhrLX`kd77@v;uEFogWaeLy+szgN0TK--1}IYzM#_wu2yaQ3m9>U| zDccn$qooi-)ij;kQWcYx?|eT6edR`!TJ%q&ax7Dx)OQHdn}j0}?|8z1@*SusE#ffp zQFiL=0voXpXVTK9zVGwBRX@WNP)ED5 zJBDnYx2M$*za%Y?^?sMqF@KLq2MOb(NSPx$ve0z!s6|d(FLUYh!oNfu z?JeBjZBb3BBFs(_$csC~ORTT4i@w;q&*a))N^RXo6mou*DH!Pb&-sMibLZHnbgF}3 zp(!8JEths#(7{x(zkS%B3DiX2GKNo-HWYrXLn=hrK(aPl-T9Qd;{A%IHFr=*YT-52 z%+M%zKHe)M+PBdfU4WOhI00fM;S)T}^Jl=l;3>`7i-~qtTLtcC>+`r?QvXrVI2b*&G7Yn4ejMkeZ*{QeIn(D2}t89Uy(th`ke7 zXT(TFaMo8+RtO6xoftJqCPGO|^_oziEQ)qF6r<6|d~}ZTJqLfx@=a;P#O@945KQ$d zhzNs-awJI%3-(B4V)$L9gc%Y4_RG%_T@e+9mF?=Npor~=gc%o7#THnK1Yy>41`qPM zv^Vj|=~d8?H&${ZqQNFELRa`l(X#%vgOr&1GCM!cCa%;^SJQ;J6SI@Ab&>ZuUtFFy z3%v5UztekY6yD<*=!fSr$?zrGDI4lSPMM>rpa1gxNUJQq&&nHQ41LFTe() z!yM)<80V4g*W;v=R_VILQUrV)j?g`RkP||(YAdP8+L~$Xxk_Eg; z;FdZ(M_+pBs%_|fL(qqTPo%6y&te-y&Pr{cfFpaVuQmd=3G+4npm-)r;`+^%WsQKvcK7#?SDgvo zwp?h{I?nd%i>`7cmj&XEDKf}^^R48F?-L`28xjg4I{#<3ZuI(HJ?uKBo4+NkRu9V;p0iU7n%dfySn)}YP{3zT z;AAh(*+mClYRSu&?L0OIY}@{0BC|FB!!Rg0O zgA}mml>DQG^LM`<5{*d!&B(@3)dOc6{}BGJB$|qHOa>-$c4(Z^ttP^pGDCm1KLn&~ z;Hsv&!p<<_8NYTVtgjFS@$u|XkWZ6w4SLUjIlekcY4KN%g59jAz*;`#T>m1=2yxw$ z}{u zW52$}ddPkwA)#WXM;qhNR1=j_xX+~6hqYK!L^G0%YCyr%!rlxUKXh!F!C3em?qeEb zHnqj4#Pat3_W+_EHNxOd64TwP))g`m8uIm$s8zt&Z_16K_O%o+;Ccyo&h!?Jq zL8%mC3lc;l`cgoXu=6_xUFNr=<;!!{bn%vGaMI%H_Zwv+IFE&LmNk19m{}**shzjD zAVJVAVN5r&y9l^2_f6-&+{rgU z`WF>TEXOP9!Y#ZaB>Y4pGhGLmT&q5!WyO>jgd+sRQ1{BlPMIdg=!7I#M!|W8aBf5h zf}={MQ!@$}zvd8l()w3Oj}#0k^Y1aWxSaN*(;Ks=vgt;IWpJF+cH3fbAqfv5rdcpr zZP40S?;*zy#jbv79@X@Z*cxC)dtlUlV3ZiLC3)8+KPw*|vds{BhxxoNbY$UbwRLq< z>v6JF=*wLaO%c<9*rtSaKinM18LyJ3n^H0{G2RXTjSLw$FR1YFK6bIB zI~)xj%kWcm+4u>36?cR&g2fU^V|*8;06|;S`BXSy$Fa~H73{eZ^aE!*u!?K9880Dt zaxa!6bK6&dzbJU!Vfq{8fZ5tQ+v0xZQ>sE!f&FBjRwmS7z?DxI)cr?P=IM4+w3WF5 zDiw;fYEV1d8*?GCC3Mx-xre4a61;L?*Jy<-=GC1ZdUodj#|-6sdMo}<~ndby52hf_(I9BMWZYRPXhyughJ^mU4kIi+_< zNByon>p}$2M-Orm!9ga9zrzf_E)5j89291J_WTL(({u}rNb*3#KwU8*Z)a?&tGc`6 zSbf|>o0u3GCWR@dLevpN9Au@pbV!jQ59l&nqqp4Q_`5b@>dB&J8J3C)PDw`D$P!m9Haa?0HR+3Y%|4o+$E=bLR4&N z;-khWi;$elG3f22ro6Do755(vEN)TR{@T_lo;J0~UaxO0G%Tm!;nr@EG1yJNdEpA~U6gmZ3fPAI-Q{!3z2`GM+* zWRu;fv*$gPOH|x!3zA(TY48-`2q+2mp<-q15MtOuh)7k|ofOJ?tDsa=Vhl3lfzTv6eFl>>EuBu)Y? zX{#vb61`~535Q>3Q_$l+NHBv!Z<(8ARy5kgRHBzM{sm(S6VbR|cbLJ8(*G4J{ z<$QF-3Z@0&{J4DKMx7>92HQEgY=5^dq%qU>eWpx9o}QLg*Lf}sN(x3_Ii^gIyFig| zcII~nJ`E&M5ST97LdFC^IXDobkrO43NsyG?B0`E=sGa3iaPRk=~N_L&g~VH>s> z<#KoI=dhm$cxeTB@gganf;N_sSwZG|ms|>z{}eTbg5i?w?D8ky5!TZ2sM&=zs43xI znVh;xbeSI*_d{evz$ld9fpW!^(m(jyj~pk+2%(}+fkj&m!6S31tzd>#hv`m;-@TZ0YHWBjAG1=jd5nHJPd&<6b6m+|VEo z44DV<bHMP0ricn(4|ZC}RZm&u z=%CNoGXb_Oehn0b=3SdO8tA~h#4+cxl4DD~sIU0H4k*E1v>v~aLqJqX4z${y33+BO zz!LW&L3ixpt29&CDDs%?C(#59j^4Izsa*klTc9 z3bNlh-{*5q!u!uG^H0i}!!?8=xdBI~<-DK9^I3Dv0-7GlUr3gK3sFk*5qriO6=KSw zgO&p^Vsk-#@LJkbH&o)Ia=ORIqGVOJWRh}4hw@S=%G`0P5G2&qD$V45 zaQ?Q=s6vQsiOkfetHWTwjZ|Ts^zg5eH}g)b_sB8!wpbf6M+PFD9JX7Oj;iz&nC!o; zAUJnHFWhtk;#~PUS3%leMm7gVX~vZ#&AyZ0Wjpg)?Dt*~fc}zF8d3h9Rt9$4q0de1 z>pFPTqXP(A9F$IL7hR6KcR{D9zD3!90{@HoE9`3-@~v!_j#`&v|9pty)iz3GJL#-y zubK!FjsiKgtj)BV)Y>ttGB8XK73i(0$NLb1dz}XjXh>>t`U%{}v2djeHxQY(dL*gD zpxlo(v~G;vm>CYyg!4+0Dq!@cYUO_|iuvo?YQQync2@5G33}aQI(al6IGlv)ZVT7I zKH9gM9Y|wBsyliguwaaKxcTmtXui#ime?)&sqGP9^^bJ-2rp^^Yit)8kWpz6$=i3` zXLX?7vAP`z9&nL@tr8=R&$?P3`=B({?8jv`eBC)ui?yvo_`D&-g@Y2SAkINc238P6 z4r1RyTWEB`V0`^05l;pZz9Q(Ct7j}m2jg_R7bW)cJDL4V4t#OawG4m+O4o$261jw} zC=0F#s7nBK$A?|Z(weIr#CEwgo8DC(Y%Dgs{NRA#AH`zB8ep`lg0?I7+86H)n^xsJ_BkCc-u}g;`+ZLIRmh4c!TYw6hxT+7 zZ#AO!mh{)#+a_MOk7ti|HA^U=2K{7aVZO410l{sT=lCopUbMa^IepJv+? zVzet|vOG@KAm`UgCN~>m$3OVLI~P_prpOq0)U4#PWiEPb>_^a+q+57)*Pp_-fn*?h zdeGw>YAs%|n9Zdjgb+`33O2z5{KXzi5PLfX@MO}Bwj(083v<5_RRl=2%b?q05;@uY zlD(qc?ltG){}vB#{#3Hv-zv?%&~U)?LVL1G-xEJFKj&r@1v^tp?N)Y=M?jzz!rq75 zkW6m*F%O51BK-543w}?5FMimu%st43w)ENCDCt1RbfiD%rly;C%)-d)APU%;KmijvK8}dnvO4xwoK88v9pDIJx#(4^pKZ zAOaLk+L!wk5%JDxWn$^`$1p}#Ba=go59G+&&#vvZqxBnGmlA#`0v`@bp-5kO{nKY1 zRYX^4dI)Zt+~GNI>tkp7vNnvo=Tr$UyTd#M%M*X}N<4srfsh*M&@PcfowiRRe zjpR-!maaJ~G3Gt}mdB3n`<&;qjY&iM<)tu()EDgJe2VT=01sbO)y1nyi%==bQiD`2G@28&K++(v|;xUu_=|I4*!RNgwm!x7R6K^S* zi(rlwj0E^fJ!M&>yR=PCE3BvrG;De+VDcZ=eJYViAL~EYo4vu@4`` zdH*inUE6+AYjtMsZp9SnVL%sC06t*xD^CPr^K(@{1g@5{5KeI>gx2lLB-hA8^@cgm zBon%ID!UmHX+W}A!ug|88D6@pf9|HT9=u84@sM3&LH|7Xa<2$iS%^lpr#i;H3pf?r ztS77HoRe~THo!U}eMeiIF0PJ(bsH|hihJAYPrALnCRwsp%bMHO0%4b2pLlYpXxr^q zTY8tkAW51Ql6SE8@|9S=7l9(797A0X;!d+Rv}hLHMVE2Q2qaB$FP{N-qySjK-18RY zx!&sa5<7U3f1AA+3BkE`+x$CWD(KfJ7O5D<+lQMf3c}`BVCt?YXv-bmwH>NB2)l|E zylH86(`E=#nTRWII4DW7{8hD$Qf(|y*nkadGd5nG^ zu)0LQkAP~l%bw&?B)89tC~+htA_)}*IsJ7VwT}5%L+GCtEP^w~r(X5CR0r4&^ssSCvysPgcS2} zAe0$R){!4@b&V&=67#d;>Sd%kBY%O(1h-b092J}1=wSw!&(m9b%c3jQY^Hpy3npCD z*x6?Q zKv|$u<4Iq;ADh!S!zOC3HYjaH+V+@tPULUP$WqFLr zT~2I~F0La!A4!e!V+ix{+qXD^3MtazxP&%gI{1R>H2ppuH@;?k#|xwLNo7=PA%s(u zmDg7Xp_;?z8q%4yIfoTic;~_bIjcOy34^O+=De(dGkhU?(v6d_t4CqzqbI{wV)qWo zmdfFP5d4K@*P<*0u;biQQ{uE{Al%8uM^_xpM2Z-l4Mh zQ}Ww{*5UW?l0o_|VH7Qn8-*EbXe~yI8zo{-Z0$sd2mk2Kr(IM9a(-ZLX}Rc}d&+dD z$5SQ#^eeW`=qRTm=vpuC^Dwqz4-x2<4_%B>%XyAKM%V`XfIkb#1D%fY@P4q2V*VQg zukwoU!Bph5*H$4Ick#a+PSyjbnQ{viu=Q-d=b{@iZc)YYZ=;0+qft zXD!8@*)jegz^2Ui5SWD^X#Z}8Hr*QQxz#j*9~`!@dkAHLgk$_ga$W^BV(xO6BLGWv zL20spI>ku{437@pnv~gy`HWcqtt!<$H%^nSRt41NDo-wqRM4NCucT_#Of=>5+7I zm1xq)mew-2`K?84M-}BVc|Y&_Xch0QQl#I8AE^`k01-yZURy7SALub_`o?<|Yxh7R z^Z3A;!smaqb`pBHC+mLe(4tSJRkUCC1e~-JFyN1YBham|5+bkz3E!ZK zLv=c(7%%ND&`Xp-jvNE7ga+8Yabd&+-_B`yg*1132(-IXC9*X8SjM>wFCv_AYIr6v zpM;WEnuovseWy||QF%?dOq30a>STVXO-e|8fd%WWYYKbv@Q5<7B%oCDr z(6)c$t=?@-pStko4%^4Gth)fraeiTYnMv3aEB{tZu2swHr30*^TcQ=ZY4Wa7} z6WQ<@t#fEUW9H|NBD2gkq#Wgb_ewx(8=1{Y$+*A+a_s1#d%@Z9R$T5~Prb^u7~7if zX;I;(+6ySz5vpRId6YD8OBdqe_cA|5d28R8W0bY}D4bR3fJ2xs9`#U@@pj6*#cTi@ zd58A%K{8|u_Z$^r0+M$Zo8GYmZ80s)j^Y>48N1DBOO#NfamNZsxL7g|aB245BmE{A zGR6%o+MAA#K7iD}U(>?>c@xLneuQMU!WQ&R(fl>_khq$)g`<^4F*~K}Y@e;_()inz zERUnB9!cmTl8qUqpU9QG)^fz~rn+IKk9HgL$d=2PvClGYwL5Z%&^kXkvNx>GDEzlC zSDzNu`8-NrB8l&u@xb*}Uyho1Kp^sRg_)UMCH(}JDW3z2QEiBB8;;R>UJ-X0+hRBPQqL0ztJ(C(JFH~l42J>&XsA1~&dwL0O zYuec=?S?(RJ*(;^72CG9uCES1#uJE6C@J@0JuoYoiQO>a+$Dx}*X&zNo^lcY6~D#M$2Mg4|oIX`N(y5?OX4?k@3Z5_tP#M<=YZcF2F0p zb4)aHjaUchzNuHC)n!ke_^MPaPv7%9E^sdwG^Io72sKBs;rAfcJ2u6E$qI4IN+Ul& z(IfW>P+FQJvvuu>rqy5WHC5~OEXX|qIDT%k!3VX-D75?In9p$hv%cK5f4XzKsHZ|} z(JNUO-n57fXhS=a<%KIA{}FB`58g5d?A!2-hy7|inzc*An=HwG=c6->^j#qze=XK~ zm4nheD;Zol3@AJkY1qo~)iIlV{dZF9-XetaTrbJ(p53>W9+0%lWc8?XQ9R0Sw%HLAh-0lIc#T5)`#V7_>Q{PI}cQme4(uYd;*hOR~Q=U zLlR&ICVyVYx%sT2D03N5%-wVlymx6^t#{)5KjQg$V%vpW zsT+n?WS<_PLFn7D^08rX!m?!Y_2Nhoq#QXi`}|*ahmx^24iSP61*&h_Sri{zFVJvo z-Qy|1hl(*OVMO9o<%!bNhZR`ko)unZf@y;~GgO(#_0XURg*keaw5-DfXuAnRBW)v* zXORGw=&7N!O%{Hx)qTTYbYB9!Es;+F7X-r;vO}KQsk&ndK@bt4#iQ74dP_fhepYz+ znji(fmwjj2Gl#7zC^ihH!~H2&!}JP`UNvVNcTZPdI5MBm0-N1eAxf1&p7^yRqp|Y+ zvgWzCLRg5>8y|sRl1Z;il|Pcu$yvRJ1`PECl&3yBjqOm=jVsq?qSGtMqJb}z6r<_( zt&s$^@4zXGbw)%LqAS;9jIdEmRwm;FaTMkl#e>>iNL2tvH|?me3?eTNON~?>;S_om zPk=Zog6$*@GVdRtN?}U*3K(3n=JlJ@o3sMzfKLsSJA@Ims>=?W-ZlV-?R_+CjzKkk z^bpB_b8Q#~Fjc4yT{>H+5tGDYE)lb&0aH*RMlKvz0oae5s@=wkv;9-uwqhj2q_-Tj zSI*n&U}SwwsbpQ?-f2L^>k=(dlgR^?Bo)5^Hd=oh@TsLOg;6m~fVV0!v8;$d>Th`U zw4;UI4n~jkov6OK`0!6U6ZhCR2clhlv!clxn)(L(tHQ>~%vm=jK}UZi)4-)Z{Hhdw z_Gz0y@hB$+Dhgw}|Y@aOgkew(;r8)7?5oWrA4kMN|u{wvW zD?=6M^fr@7twYN`A)^tX?D8`2e-bt-g%S9PVpt02*yaPub1wE|W{fw?jY-;37*)>5)N)RUwj2DZX6Xr34*BKcdn@va_lC3x(+YvrtdqK~S zY-3iZ-Uq8-W-_)cU;bKH|L1|7!0yYl`kr8VpslNhW{Jm(vw-;q2UC5bx&LG-J#@m} zfF;?Fo;e6`@5}#rKM_1+_D{>xGed29maHyznLfK4am@Aus zt&l4(o}7Wq4r9=^cUrGQEQkqXh@>Trk&FF>R;tHnhV$VG$xN{D_gq4xvmR`mk;xc9 z$89P^L7-GBZPi_uY2?D5F7y+KsOEKV(|AB zkdE^G(ea;dP$xPN>pTPedS%BAtiZZ<;8ryLQsmv2FsdOt%JeX}16iD*cv~_a6PA>S z!PgPB@#wxILFE(EH$-LGLE*nE7CD{ZJW+476LljPBNy zZv{Pptu+Rikrb#@c)V?&=%UiAg!w<4DMn0X+H!cB*Q4WA7F37qeB6B*CXzYGB+FOO zB@=ZX!>=qD9GDP7t>;caJfHRdx=j6@S=R;HMM2xmxvu^9rmb4k|0@@Ht_^ zV%iLTSezC6chZXw=XZ?1v_-Rvi=Jp52n24PX(`fmr~~p|x+=05>vRRQ{6B?Dr`0(V zyYw-BaShmO#tnGGN>KV44=@v~R<9OIsl*0vkp2R-?17iMkUMZGKaiElrzwKLbVPdc z)%55CWCYHs%qW(u``)GQOOX)n&tkUHoyKP(gs`ajEy_+%fs=0t0?m0#Wa*WXEzK|QxWvtyo2LI?WcKgmk7cnMi9Ibi z9ez|JGRW>|T;Hbq6`1?0n=}iL^OBvmRPwdz$>x^mD=b( oICOwUGqh($ literal 0 HcmV?d00001 diff --git a/assets/yandex.png b/assets/yandex.png new file mode 100644 index 0000000000000000000000000000000000000000..3b73662aa8a96e246401e0cc0cb8e92e74023dea GIT binary patch literal 18854 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 BMN|L) literal 60844 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 diff --git a/ic_launcher_small.png b/ic_launcher_small.png index 03c2a093de73133182bd84d44b6c7a44e30d1355..9682c5f19125ce0ed8e526a3a75c828c4e4a5755 100644 GIT binary patch literal 12338 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 Y1MbZ<0nsan4FCWD07*qoM6N<$f&$^$cK`qY literal 12361 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 diff --git a/proguard-project.txt b/proguard-project.txt deleted file mode 100644 index 39a2e09..0000000 --- a/proguard-project.txt +++ /dev/null @@ -1,69 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: --keepclassmembers class fqcn.of.javascript.interface.for.webview { - public *; -} - --keep class acr.browser.barebones.webviewclasses.CustomChromeClient{ - public *; - private *; - protected *; -} - --keep class acr.browser.barebones.webviewclasses.CustomWebViewClient{ - public *; - private *; - protected *; -} - --keep class acr.browser.barebones.customwebview.CustomWebView{ - public *; - private *; - protected *; -} - --keep class acr.browser.barebones.activities.BrowserActivity{ - public void browserSettings(...); - public void makeTab(...); - public void newTab(...); - public void onLongClick(...); -} - --keep class acr.browser.barebones.incognitoclasses.IncognitoChromeClient{ - public *; - private *; - protected *; -} - --keep class acr.browser.barebones.incognitoclasses.IncognitoWebViewClient{ - public *; - private *; - protected *; -} - --keep class acr.browser.barebones.customwebview.IncognitoWebView{ - public *; - private *; - protected *; -} - --keep class acr.browser.barebones.activities.IncognitoModeActivity{ - public void browserSettings(...); - public void makeTab(...); - public void newTab(...); -} diff --git a/res/anim/down.xml b/res/anim/down.xml deleted file mode 100644 index 359f325..0000000 --- a/res/anim/down.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/anim/left.xml b/res/anim/left.xml deleted file mode 100644 index b699407..0000000 --- a/res/anim/left.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/res/anim/right.xml b/res/anim/right.xml deleted file mode 100644 index 5634516..0000000 --- a/res/anim/right.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/res/anim/rotate.xml b/res/anim/rotate.xml deleted file mode 100644 index 0d319f2..0000000 --- a/res/anim/rotate.xml +++ /dev/null @@ -1,10 +0,0 @@ - - \ No newline at end of file diff --git a/res/anim/slide_down.xml b/res/anim/slide_down.xml deleted file mode 100644 index 0864271..0000000 --- a/res/anim/slide_down.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/anim/slide_up.xml b/res/anim/slide_up.xml deleted file mode 100644 index ee24c69..0000000 --- a/res/anim/slide_up.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/anim/up.xml b/res/anim/up.xml deleted file mode 100644 index 4f8e748..0000000 --- a/res/anim/up.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/drawable-hdpi/action_search.png b/res/drawable-hdpi/action_search.png new file mode 100644 index 0000000000000000000000000000000000000000..f12e005ebe835c1dd2f6ae324224c3ee296d2d68 GIT binary patch literal 1764 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi)(9*=*)zHG!$-vFf5X3XIbTx5uc62i} zG&gZFgz0t3PcF?(%`1WFO+o0j#HkmQ7;+1MHoK%2WtOF;xE1B+Du6w0m5J3Y2F^}y zE>1YjgX&Ge>K3qGXPkQVfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;uyg*O2mt1n zFi#i9kcwMxX5P*g4iq?MeqHUBR%njnmW0b3zm{-xi3cqC%GT9Y-=L)QsQBYTjiwL* zQ5VNm{=WiPYXt*!emv`4R1xlT_0eA;?zI_Pugq9?|H1YREUD%vZ%*cYbAZ3>_M3U1 z=gu@XR_C0#EHh+tYp>RJ2L}ZOfqrb7mLU4AyVWH|NY* zQ^IzKO}@fjZcD>Y1y@7G0?{|jH@!F~c*?W)&e`MhOJ&F54VqgD7x3n=W>&q_yTREu zMN@!LZw0&f0pkxMTbg&APM3BRKha=UAkh+Q_qyY@$*$&y%G&i@GA#RJ?6egx^Q|lF zU&Hpgzxdm z0o;{y7qXw)*u936b3;UXgPPb%gU#n6Wt&)pt4V_e_XTU$-|uu^H+{|X zXZ1-)Ju5!3bk3Po7q(j27@Y8x4xMV6U@BAY;hOzWMd9=t;Y8C=!?>Wu3T zaP#eOXcUji;rddmYK6lR6#qHU^Ba<|-IJx*BXInxa_oeX8 z&koGeJ1b*sU*?``_TFR0-M1>UY_9anjWV7ajPD**^MBo$BXol|>{7KF|A+GjrSBb| zsdf3zhA`WcMl9}4?5PyAUL=N+fGo5O0o-4l-eZBPXoi)cTJa5{sjrl3T zJ#)!3`Is4Uu}nOCds^;h89V!&I~*UmWL|^xgL%65uYdH}JLO?Y=hl5^UucB6cwD^x zTCmM;im;^a4dJrMhwH@u=l}0{I&qPUi>PX|O*EhRHJA5)b$(R$DOpwCUu@L7YD?X1 zIfH+SN?wAi|7baEIxBa(%es@}w{L@}oNUj}|D7F%#=74ZGngx_5wSkHo@tJYN~A({ zY0APPSBajVQf>Z|uKs2?ud?r}!$S3aAOB7K_}x0>_&22|o9}lgai5%!Qjnw4(?cywKNmA!nDBnO22E9AG?%X^;ZK=!j0zz5Fu*~=rtI}m-Fl}9Ok z1wjzAmq)8yhx}8!bP&KHdwI*UmLYpf$e-2Sh_!s(+aY>Me6-hPSuU{8K4eb``TIQ2 zS0uE{5m7eJkl&Dy`2d-ov@$OeUfNFiFU`@U5Xr+-Y2h+^&Fz!7ypldm za#4)fkaYOplLMWvd)czen2t>^YG&h=GRe5G;NW`))xgl;_^?U481>l1!)FR53IYvg N@O1TaS?83{1OO&fGZ_E? literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/exit.png b/res/drawable-hdpi/ic_action_back.png similarity index 100% rename from res/drawable-hdpi/exit.png rename to res/drawable-hdpi/ic_action_back.png diff --git a/res/drawable-hdpi/ic_action_back_dark.png b/res/drawable-hdpi/ic_action_back_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..93601753767181cc7ade8846633a972906007766 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtUQZXtkcwMxXBhG|CVCR0WvAk;lhr@BA8n5a zJzcGLddZUBl%Mxb&Oi0^B3teSAX3|AHg7ktq1Eq>Pw~%wyl42t)w<(|;=GFj@{(2y tg~2HJ$JHeFsyjj#$#7d>?$B(V-=7j>Ea<=VcgN zUL50$iA`hZ5NPhh(%3hmti;b=((fTaGX;;aVdhtmV$I;x1zbx5BbGcaE=X Zc^|fOZojbjX${a&22WQ%mvv4FO#l>tRBiwO literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/stop.png b/res/drawable-hdpi/ic_action_delete.png similarity index 100% rename from res/drawable-hdpi/stop.png rename to res/drawable-hdpi/ic_action_delete.png diff --git a/res/drawable-hdpi/forward.png b/res/drawable-hdpi/ic_action_forward.png similarity index 100% rename from res/drawable-hdpi/forward.png rename to res/drawable-hdpi/ic_action_forward.png diff --git a/res/drawable-hdpi/ic_action_forward_dark.png b/res/drawable-hdpi/ic_action_forward_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b023a191fb3031d77ea51fdebca8366ecb4b1218 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtnVv3=Ar-gY&M@R^Fc4s=otSSZ z_V3~~@eK8g_D8jYJT_eR_%@?4w?EoQ!t**K14D?)Qj9NnG;Q0$vdM@&Eet`lvIiCGzFnLbJ}lW?;BrBi{9^vc5P*!U5<=22WQ%mvv4F FO#o17SS0`e literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_action_incognito.png b/res/drawable-hdpi/ic_action_incognito.png new file mode 100644 index 0000000000000000000000000000000000000000..2a641969333f6dbf1b0b4ae8ef780339a9fd77ee GIT binary patch literal 313 zcmV-90mlA`P)&W1p{AhPTda4oBi!I}F)_ouE@a}a^8AQI1Porib85+vaMf<$yWx{dFGeZg>*tlQOPyahHn zBTrx@IOn|2ZY&)HX3DS&7y(o2nBv(*>CSWzh^0YS;1qNn(RudcrpNceO&YW)akG&6 z*=?^$0Z;iPygF{`6qqPu+!8mgax-pHU`hcBv|L~a))IrC5~wImf%XdE#{zKpkfS1S zR^A773WRU`=dVgg0SZun0u-PC1t>rP3jC*l4|X-<8w|rR%(wCY`IXMC-p2ro00000 LNkvXXu0mjfH)Vo# literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_bookmark.png b/res/drawable-hdpi/ic_bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..a75825cd29960ee2f4166e10452000e6d06a5cba GIT binary patch literal 634 zcmV-=0)_pFP)!{8Tx>Aa7e0F3;LB_N;Azeb9DsZ=@z>4i()n|C5XKAX+%gY0aH zfEnL~UI5aixrDrxO3hG{Hw?VM1!n$#t*q6=~ z^I*ZYfso8(GJCaJ?FaDqTFx zqh)DTSMdd&+|tEMb!$&6Vyh4^5=|FTv(k##zLMvN;h2~93!m63&I7T<7F&qy4~-Y) UW8Nt+MgRZ+07*qoM6N<$f)WrVZ2$lO literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_bookmark_dark.png b/res/drawable-hdpi/ic_bookmark_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f49e2de381b7ddbc8068fa8efe2add4acd4e4eab GIT binary patch literal 554 zcmV+_0@eMAP)QE2d9;O~LnrIhMK7K5P`4tA0EeFn1Wh&zm|K=sCpO^mGxQ1-@Mj;Ipg_20AX{Z8}jGp8#Hb4B&T( zC>yBzh_|Un*}ye}ft#p`Fa23My}&jlRU*?s9@qkEz&>CBr@)Xwyv>mMSd^niIWc!S zsK_F41e^f_+(m&g@Bz#?M6Sw=#v0Su1JZ(;iYx}!fD;Kqc|lEUJTuXj^oz61NPE?C z+6KN9ipQ~cg1!^@a=j@K|BhpeT73$@lSJ`2RzdUaLWA#*^ zfob4lG^c@b2zx+Trhx-SQ5OVDTT7;a%Ozr-fvTf@m7e+axsoLwFFX?u5ubETOnDqb zENbJ{cfxgH33%o7DwjM%|GZCG6=fJ``jrbu9=Eb;$}rGhRxX^UTW4AIWf&N-mJ3Ht syR1fGi(dySA?B~(7%>wjO#Gkt1vocux$rOv5&!@I07*qoM6N<$g2YAaYXATM literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_drawer.png b/res/drawable-hdpi/ic_drawer.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7b1def9ac3f86488a855f502b965ac75b633fb GIT binary patch literal 2842 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 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_history.png b/res/drawable-hdpi/ic_history.png new file mode 100644 index 0000000000000000000000000000000000000000..cd05210df16dfcfdb913b9b0ce9e88e4f04ac3ab GIT binary patch literal 675 zcmV;U0$lxxP)5rx3ERKq`d@BBU~k>c4F!W@9_9 z^LAVJN_JrJyqnM6-^|W#EM~}%Awz}?DI(jp6Zw4Jg;9l3&*gGW9QaJ{T;%y{PRG$P zaI^)#?_mbf+(lw}jT%%kzo2`l1LmOP%QB@H@os_i&p~u>VGYOk*lC7&q;3h$#As{xy zW)T9plCare`%Pp4fa8xO_XfYqkp=Jz2yJrJh+H$dDmL^Z{Bhp}Y?X1YrOG002ov JPDHLkV1mY`FPZ=V literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_history_dark.png b/res/drawable-hdpi/ic_history_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..35ca5288179a02718e952760e25282420dbadd96 GIT binary patch literal 610 zcmV-o0-gPdP)Y5RJu|TwzL^voL~K2v^wHiUdo+A^}0J5iBgOuoFxpf~9B?L?RXr%p zceTGZ=rW)IhydR?5h15s^x*4&Zl3|Z17bi25#zJ8p5WGt7SFzAO!dTrw_-$ zcOmLhuCP@xHTWvvia37*1e|ohv1YoIX6V zCc0WnEY@r}J3&s)5$f+S`~<{LLuUXHDV61%oD<~iF~77dv60U9K+a0Y;9Vf+faxzJ z{%Se`XcB`ygLi|RW2Qf!_-pD2phemPhrzo?-Wk)ML)wm(jsRqhj+s1}%a;m1W4YJp z2td~74udm6X7NtJXGiWgMF#MSyf46dkpZZt&@NewAAr@OQb=hLBX<+rZDr0f6 wH5ONkV{^GXpzX-IUY{*lv0}xF6)T$L2YSJ}@k1AyMgRZ+07*qoM6N<$g4{<4%K!iX literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_launcher.png b/res/drawable-hdpi/ic_launcher.png index ac5cdbb7499608501f73b919ef17ff2545bcaafe..6761289c7b27423729266c752165183aa3f235cc 100644 GIT binary patch literal 4555 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 literal 5116 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 Eg1iG1^#A|> literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_stat_download.png b/res/drawable-hdpi/ic_stat_download.png new file mode 100644 index 0000000000000000000000000000000000000000..87d4016ce71e2e1ceb2961f27bc9738e67ad5f5d GIT binary patch literal 254 zcmV0%Nc<<6Nsyj@FpA%>PA!N zMJq=I0`b59q=9!ptU$|XW?0B1zS8Sn@uvj6}907*qoM6N<$ Eg1Zi6NB{r; literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_tab_number.png b/res/drawable-hdpi/ic_tab_number.png new file mode 100644 index 0000000000000000000000000000000000000000..122fa749ec8e5223de517910bdb2607fbb0551dc GIT binary patch literal 3202 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 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/webpage.png b/res/drawable-hdpi/ic_webpage.png similarity index 100% rename from res/drawable-hdpi/webpage.png rename to res/drawable-hdpi/ic_webpage.png diff --git a/res/drawable-hdpi/loading.png b/res/drawable-hdpi/loading.png deleted file mode 100644 index 300cc2265405a187f24acff6b315ee441711283f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCc~2L|kcwMx4>B?Wc})uc*XMaS cfS6#Q&!%F)z*v&MM-{~NboFyt=akR{0NSh(?*IS* diff --git a/res/drawable-hdpi/new_tab.png b/res/drawable-hdpi/new_tab.png deleted file mode 100644 index 0e835d91f2779f4042f1c1c1be56cccc5aacc6f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!pj3%#L`iUdT1k0gQ7S_~VrE{6o}X)oLYc9i zsh**M!Iz?iKvio!T^vI)oZsF^zz zz51LPOZPmR*f4#~w|(^<3Gd~jZ!MY84zd<#_ipYxNe2a#gr=_V2RfX=)78&qol`;+ E03Vcb3jhEB diff --git a/res/drawable-hdpi/options.png b/res/drawable-hdpi/options.png deleted file mode 100644 index 587d97e1d7ba0ae7ccdc23dca0dadfd1d15e7de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt8c!F;kcwMxZ*JsmP!MqqYsn*m$C(`^sjz!S6+tU bgT3ET$q(YoK4#hg-NE4L>gTe~DWM4fv1LDv diff --git a/res/drawable-hdpi/plus.png b/res/drawable-hdpi/plus.png deleted file mode 100644 index a122b8802fefe055eab4d4235fb2f322c611036a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt3QrfukcwMxuW#gRaS(A0j27@V z+0J6UflF9hfaNjok$K1DC3v{IJGoXrKX97oS(8PC2m`|h-KAHK9jkR-^Jja5-nMtM zlczE;GO=(}xH-ryJEylY{&xzacaBxXzWv4vPV$vsb7Ndz*;>=e!XcpGaNu$MD@KML b_t*}9?Yz1E;PY0X8yGxY{an^LB{Ts5GF3m? diff --git a/res/drawable-hdpi/refresh.png b/res/drawable-hdpi/refresh.png deleted file mode 100644 index 89a3f5e8cae26f2811d6078f1fb5f0578ed4fbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmV-81IPS{P)s?RI+&Ha`l`H!*(0xah^0|BP`8f*s=8 zOeV7)|G!+C&t|imW7W3O?yMhZA7Nh6Y~0WC`TX8kkXx3uO>Q0q*X#8o+QDO^Y^hZG z?xEGc;OCgX3^O^6XHEQl7SFC=d;|U$AcUnG{3yWu>1NyDF?*L9iB zl-TGOF5H2z>k$Kvg|PocobtoS!NV?hF~|s8t%hAsL9ym7zVVu#3;YOt4}6On=LH8l z;BmZnT!;2s!cM1+$x#?7X)Z3)=^$^}X^a2>T@-fuz^E*d0ZCjk+b98GGEar~*>2hi zd~^x05M#Q_L@~`&yWbO-cX^+=7^<>$*z+qL2jd3wr+!ahjuDqpnEpEklTC}5)1Ls2 zK&hs!iylgXXg#? zO}dLDcdn(qSYneZ#2uK$N!(_Oge@05y9AzAeNivrXJSd!dEugLC8~_`DofW`{54Eq zMD}rb>6QbW*=;YanW$PU!!97#mb`_s?FkhNI$oDt{SGh=-n~-E){xTR9sVxh5mg5P za3A}q^h#l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi)(9*=*)zI10$-vFf5X3XIbTx5uc62i} zG&gZFgz0t3PcF?(%`1WFO+n~&!KoLN7;+1MHoK%2WtOF;xE1B+Du6w0m5JLejyTPO z>P^Az7AKr~^?{Dj2SqJXRKtXT=?BDwCtM&0p7c}mfa$#mn6M+i2Q6b@V0_}~;uunK z>&^AE+Ae`I$3E`tm@-`{zx9(?>dU1k*tm~+ZG0%dVMD+vFR`R_eQ9k~)lEW^HhtI? zB&0NvW8=gpsXg!4y8B+<@$PBQ%`+>{C%wC~^SkBqd7pQuuW?X#(4E%(*>&epCKp?W zrqiE|F7`;J9Gc@U;Ny}9H~GSBM$UJ2|47y7x^EaYbO zm=^RUfnEK@zlTwYmbEt*&h}S4{%}u`&SQ?!WlSjvv9{-n3Kw#{NfhghW2)KCHS6mc z^@8V*Jmr$4uC6fJ$dg^zU&?d@|$3_EuOa%?|q_h0a*8dJ>+>(i$vUCaNY#uTIE zul#VEs1omUHKv?ZC$?1V2%BBCKXsA7(geZX8pRvuyee!cJTgs9KN2D`QS`=`xX%9*}?nyAhK z_Nf-Z4{Ui>oBh!|a6Nmso8l+YBlF(g-ZfEwMbWdDrE^;>d8}GD@Z@>D4V>xD8CRkc zdVC*mVv&1FrpctHKHIFmo)(#Y4~A;Ho~#?e&Q2v6MQ%0zKUO`Q$Im5rVUFgn)AKHP zSBG=VuX=ZVUZK&Y$p$gc*{*!{ocg_4$-5V<>uz* z;y?@gV3tEefIdK7U7Z)`^JbXkKz3F`Ljx1N;+z%e^D>y_KwPDwqQXuu&ocroPet;1 z8!#&P=oa)q%L9=tp8(8$QuMUk7RmBy78Vwo^ekw!fR;{2ig#FLQJI{;Yt_|v_(1%`t5fJMQeNQ6j^2pX_#I4BCD!B7;#Dr_mjZQ`zwzw1DeI)>FVdQ&MBb@0Ae69 AivR!s literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/exit.png b/res/drawable-mdpi/ic_action_back.png similarity index 100% rename from res/drawable-mdpi/exit.png rename to res/drawable-mdpi/ic_action_back.png diff --git a/res/drawable-mdpi/ic_action_back_dark.png b/res/drawable-mdpi/ic_action_back_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c9ce6543fe3643f1e70eb8dcfdd5daea0d2c37e1 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ6i*k&kcwN$2@vzM;aY+ycM6RA1}&EdVKJG z17m-a<3tX3S;JQy3!icPGWB3{otzV3;^lr&V}Tk2!y=(+-Bqb?ih%Ypc)I$ztaD0e F0sxR{H%0&e literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_action_copy.png b/res/drawable-mdpi/ic_action_copy.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f6a0e0be5871ac07e6e1a400f855355d5afff6 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJGEW!BkcwN$2@-i+#eX>1limvS&GzGu&OA5@6k+mzi{h(Z!bP0l+XkKpmsU_ literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/stop.png b/res/drawable-mdpi/ic_action_delete.png similarity index 100% rename from res/drawable-mdpi/stop.png rename to res/drawable-mdpi/ic_action_delete.png diff --git a/res/drawable-mdpi/forward.png b/res/drawable-mdpi/ic_action_forward.png similarity index 100% rename from res/drawable-mdpi/forward.png rename to res/drawable-mdpi/ic_action_forward.png diff --git a/res/drawable-mdpi/ic_action_forward_dark.png b/res/drawable-mdpi/ic_action_forward_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1998ab6a499d078ee8a8d52ac0c6b82cd9502e31 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJd`}n0kcwN$2@bQq#W;&^o9zqyRwX1CNOtgcaSwm=o4Ukv~_WxMCp+aMJxe^_5!zqI+z=ONJREA zXqmWO^6>SUqs-RK%x1>bR^lhIwdP7uRkWRklnV286={*)OMwPlD;ODOwoU66R`h%a Pw3@-w)z4*}Q$iB}xkoke literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_action_incognito.png b/res/drawable-mdpi/ic_action_incognito.png new file mode 100644 index 0000000000000000000000000000000000000000..462cf569ea41f7d50a7c43252ba38ecdf5d9be74 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ{hlt4Ar-fh6C_v{H~4(`|G!>O zA*?w`uPRE1`-rVWjZnvVhmW2sX6UTdW&c@bKk4WT36jE`w~aq`)o&gBA!StEK)Gd+*05mc;$m@#TA{V zRVU?38FXa?_>X8e?#OkJaaf|wnboFyt=akR{07Wueh5!Hn literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_bookmark.png b/res/drawable-mdpi/ic_bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c5ab39b24d122e92df601f60f7d92420b54458 GIT binary patch literal 439 zcmV;o0Z9IdP)*}cHC#&{`jUfO8#-SXK_bXfq+8htFMBW5M&sIF8Q=+F6Z@ zz9JXT)UMx9V8e_;9da%ubR;3*MZIp*H1$L4xkjahz9KhY^}5UYsI*Ajn6)qruj@L~ hH%XGS(=Xhg9zWMhQpuGqbrApn002ovPDHLkV1k%>%!vR1 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_bookmark_dark.png b/res/drawable-mdpi/ic_bookmark_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..92ab31580ca6a3614b2cedebd373b3ebf209e29a GIT binary patch literal 379 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 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_history.png b/res/drawable-mdpi/ic_history.png new file mode 100644 index 0000000000000000000000000000000000000000..a735d2ca6cfe5cbba93e74c2fcd2ff181b2a7f38 GIT binary patch literal 465 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 delta 3088 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 M07*qoM6N<$g6Wj4&Hw-a literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_stat_download.png b/res/drawable-mdpi/ic_stat_download.png new file mode 100644 index 0000000000000000000000000000000000000000..b97b1c0929512eb9f7251a3e4736268d0cfb430c GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjeV#6kAr-fh6C_x#F#Z4kKb$qG zRAbuGR#y4{$_M@ha=Ym&+`5qJ@JG69;z4_rk6B(i57-}B|1WIb>u|c>jx?4>Up>UOTu>6_WctXgV8?PqXN%T{GYt`G0b)m$9QMpO y6~S?nsrCOAcCHg*8U6d|dRJy20HN}Eh5v9en*1g!eQbLNvXH0w$A9?wT@3%>O zYZ9N)sPPeNjJW8c;6iQPbR*hm5%u=`hB@JMdS|}Rm?)GE{P~8Nd(Qd)&pG$boo_NS z{y+W$$EsDUdR0_ZOcrb|FE76$_`R&GtX=R7l$Mrq{u}og!&q$IIB_BLr4XxMxpHN@ zzzHeGubwOHHGWsDSix_*2&=2CtQ_+uGM*!7UA}zz3qe3?%a$$f$dMziv9Zy$w6wUJ zH*dOIw{8XC{OZ-K!M($W54+8qHwQM@mXwsdkn>i2b~|wi*js|tE?v6x`Lbop+}gEk zU44DMYi(_HZEbDt+O=x|(My*ux#s3(ck$xI4sh+tl`FxR8#itQHg$D%Zq1rCPW-tg zOO`yB%G460TgXe_4wpc8ii(Pyw2nJ<>Qq1)!WS-F=ztPNfI_e7nDgh)2S5;F@FlJ2 z@GU~_5UZmU_I~Ne~5hvpcpAhV@KYR9UaP9i_>u%q^eNN(l zKP5@yx`ez;w6EsPoA(!GCLn|e%6U^$(?0}Q;+HR9?tm3y1z@itm>-%HVi8jkH||x* ze=>LO+(%3{2;iJRDj2DB?m0j_;u4<+CD-8ux0C{;?;C1s zYXd_ofNEF)-L(o4Co16Bv16{LrUnu9iR6WNFPXfLalm6<1yD{LYZbcVIiT6swp9V} zKmgYkE?oFHaTi-$Ts&#pwr%d{(W8MO>Q#WRjk@Yd?CXEx5+5G$VWY^rlm%u|($ZOl z5eBICwGlzA09%EZ*$YLV!kT?w`=|iU7c5w?K30G%RhJm70-|jcR|OT}6XM&%MalcJ zZ`%hxY{P*}(;Hi%OKRIszOvmREQ5s+($lD_ThEt&>^>e{rbDH0(R`!@sL3b zwpEDE1)qqhkSHwiIP%fnx7ml+!Gj0g_U+prCapqGRX|)7;zU>>R*WUB#FNM;W&gl| z11zUcV+Ak(l~EB|g*Xu^#ES7j$EZyldAsu1?8A@ukvRUD+*A?KD#VG16XHXZcpUj? z_APl{df@64kVSb^gs+vNB78!u7z@1@C7z1BwvGy@uCAtqvU~!1?A^Qf0Se<<$%^m^ zv0{ACF;U`4y>t;!2*Lr)`wHWWNn=>Acs!Gj;0JDH}I#d}b@5 z6I+95(5M)nDBpc+Z;6vEOP)l+B{w(sJGiAIfHiiY%=V*V7^tWJa2TzIPfWV7_Lev? zSZ#<&Y&gJ0IK3CQ{(Gx1WXO0Us}9A09YH2!ROb6O%5mQ{vIAL!Ou$Hf-Q) z&ONxKoBfW5njkwTC+GXJva&~2RaL>COOzAm2+_8(LS6<+I+}H25Q~_^h67w;A6`i- zl3>upi4*h0(NlTd3^GDyR0!G9)>1N7l!d*|c#$R$vbHfge=jcw3Zc<3J}&d!B#VlPkgUly*l^+C^3H`cF5tC4tnpy5hF(Y zP*hZOpU+DK(TZ%^w5dZ3WFV!0q!LxKfU($Miw}I^Q}#KoxVZTK$dMy|B<9QZeJT+{ zv$M0u&zw24Niy`DZ(5a=l}@Wd&q9VwswfMtagQ;Kg*3MKz!yI8O$>?kL06L3qbJL& zV8p0VqY7rvp8YG|d-?VY0kTIHAqDt?2_VX^Ue`=xgDpPrg-`MQSs0^dcYSGnOVCg7 zkzkCh5c6iun$;p@f5Imr6$IpI9*_i_>vhI3cJboHPq4)YzCxe*p_>vhjW}GZ2DEOtYu<#EE@;w=F&Nc2ahOyXS8~PX!`pnFDjYno!>i&Yk zf?B?Wc})uc*XMaS cfSB*u1QZw;Pi{TD5y)ZiboFyt=akR{0L$qV761SM diff --git a/res/drawable-mdpi/new_tab.png b/res/drawable-mdpi/new_tab.png deleted file mode 100644 index 928b265bb056e1d9d7a20bc53db61d64e9702c66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!pj3%#L`iUdT1k0gQ7S_~VrE{6o}X)oLYc9i zsh**M!Iz?iKvhYeE{-7)?#T%ftcw*5q?nvdS^oY1KfkT#oK#@K0#tiIS|vq%{bDJ1 g=L8d$3r-9SpI6+|v)}F=544TJ)78&qol`;+0N7Da^Z)<= diff --git a/res/drawable-mdpi/options.png b/res/drawable-mdpi/options.png deleted file mode 100644 index a195da4a38db11ba862840f39c9f0910c88bcc7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJL{AsTkcwN$2@0Hp8=8>x4bk2Ms#x zXK{m62tCx0_^_zLM7+l;;ehng#R(z-!VC;oegTe~ HDWM4f@qsn? diff --git a/res/drawable-mdpi/refresh.png b/res/drawable-mdpi/refresh.png deleted file mode 100644 index 21aadb83022e576f523dd267aa9f7cda81280e1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)7fiV~vtVEqHb zMa=gRb&jaUx}xWhs;X0VDL>#0eqg;GiA4Gh_MX%_5Rbkc65ZASl#18h#f-X19s2k66~Nd;Z1)&^==QmNE{9S6>9djY)? zOS(_*vFD0&^bPw3yQg^9pvv6=;EeK&b5X$jwU#9+Qchf>4Ho%3j27y(WUOh)Iws+W zZl3x)>IqqIIF5HKlo~pSjEN$3PSku*C3W;J15AZ+*|Ywhn$qT9tcHI603&bf7?v3v QasU7T07*qoM6N<$f=hG|^#A|> diff --git a/res/drawable-xhdpi/action_search.png b/res/drawable-xhdpi/action_search.png new file mode 100644 index 0000000000000000000000000000000000000000..3549f84dd8f5e38665849b46e252bc34f29be027 GIT binary patch literal 2127 zcmaJ?3p8749=`}>v|V&cXT7fIiVk^PBSY|2Yr&=v7ow6Rs?3P)tYO9UbY&YptXLrxq`<;8g@B5$M@ArS6bB_lH z?%ndy?>_cC6SB(G6&(~SQ-pY&KIiL0O0N^7qU1>umoho2|NJ>z0}@`26fXS$!Y;UEMb9iezHJJmQ&F0bjj+o#*9aU z?;w&S3i{WeA{oJ;HzI;TB94IN5L_V8#Tf@V6G+Y^N6?7?5%7=`p5Tgw2xOuwnE-+B zAGF$=h#OB1rTM=1rM^+ni4uvBjK|AlGMwx)93o1;nrZR=!^>O;c6UJUq#;$DF zaAB#T;l97>E*sSPM#W}D*%&vC9?NAupxYHKzlA!#x5!R$$}KEz`?K}h?B51n479y{ zQ?w+-T-{f_$ZXze2L9K&)Yu$QW7O|sondWutk)Q_JN)t9M!T--)21nHt$r5=vLfUe z#a~sbymPXRm$zn0t^*N@y}d^w!HQdfF;iuh84+$H+Z4+ka__aF6WZ>MRwfDAoU*_4 zKAt=6rl=k>E5ha}R?E)6T2N6Nf^OP-%$aH>Bc8h!4HjG5*0h$}RLuF0wJIdU zjbsxQA=8r?J*La4uKG`NBKyje7GpNe$A4*b?~}^!@0p@BU-D}9Y0|DSGj9_&&vy2n zQeDat7d%QfdZnZfB$RpBz3j0+qI>gE4|*|g|5_uvwMYuieyxZbW3|Ym*9t0tEK}11 zgB`JFNiGkc^uC#|FE~5P={}HhaMbF44G_^7>)*O~(scZ=-NEp+E*C;j>-o*bCxDi3 zXOy%zwU#lt!zkoitfTlMMv&ukM11wB<9Ly8m4A7rd4=8VmEuTqCE#F>RMNjFx!hDS z*^3*Aj}bPwVf3_cag!0d1gTf#oDN&Pd_dVdv;*a))ZL!>%mq7^3xp5xV>fH7@?30Q zVZ_0I3ioUK1=0^Dmsa~f=zf0w_-@SpBesVoWKv#w7qz2*hgn81*v0aQExoe8xC}Ud zTF)@Kr5w^Hd|ny~nn#~01FEkQYo=Zk?|RW2wR1u*{x~g|l2$HI8$O*Sc9iaR|5^LT z7z@^tH7CEpE{iyR=lRT`f)Gq&W#>w?$%+474im${sA7G49aR&=5h)*xuKt( zs=lY~A0X2EGC2yz*(%&NQ`6m4sFRdnpWY(BuzLy9{bqK?^RhtY*?v?Rb8IX~Z+jfI z;;~&!>dGdE5QDf>2lR{f*G!oe^^i@6bj6^de z|760+^ec-hFSDPm&usrXosE~R+77^4Qp$9A=Gi&x>XqsJg^B&;MqPy~i!R@{7aI(* zPp*h%eOKpxS5Nuohv%4z8e7tNq)^&ziI^HKVDgG4t07*+q|$&B9LYtwE& zuX8zyz5BF4SJBd78KhXt*r~-u9TxnaihZE<@~dg zf?Taq%d**36IX-_-{`-ie?JGKIv|#fpz>=msy(frIe0zoOg8uRrTKhIv%w?7`7Tcyl|isZ*ecw#u<}mcLbp((0&jng0SYa%AcN literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/back.png b/res/drawable-xhdpi/back.png deleted file mode 100644 index 75cc6f50ed79785d4b1fb80474964e235a092c78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)5XSGs7m8vbDxyU&7$FjJm)o3J$XO@~f{j{;h@$u?Y*ZA%;t&cr;w@P~J1905|e@HqB0&>m)e?dC=0Wv^xt6AW0<2ddm3tz2PbAW%ftp0Nl1jCeL zz8`jPS@{px1ZDUxfTp&%M=vl<7CuRmRyg3;QR|l}S34guzvamIyQIq<;Flcmr+Rl# zj{DeA?yhhE>ZV-o#sT?mfqw-209kl6GJ{z8C(G78B)jj-oU=jQ0l$U-oUlON2|5V^_J(B=%%qeWVp|5K z5o$aKOtEc+Ba>8{WlJy9DM`DH(^icGHyqgwiU95HXb9>y~1 diff --git a/res/drawable-xhdpi/bar.9.png b/res/drawable-xhdpi/bar.9.png deleted file mode 100644 index 9de90515529421b4bee6f775d01b82d11a33400f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P1|(P5zFY^SSkfJR9T^xl_H+M9WCij$3p^r= z85sC>gD~UqA6LwPf>I@}5hcO-X(i=}MX3w{iJ5sNdVa1U3T4K6rh0}3249L60#)UE zx;TbJxWBz*$k(7Cz~K1rzfIM>BCRIT*4YyZj>c`0Dn9F=Gh6*w_4zH=l!DD)+CIpt zG)go126oEP)N2bPDNB8 zb~7$DE-^4L^m3s900T@(L_t(&L+zO@Y}-&2g#!l*3kwSul!XlrMFR;hibf(eL4{*e z6eWX$h51udSU6Y|l}s92;b5eZ3{3LwwS2APo9onn&vv>+`t)8B`@VCI68q}8QKOd^ zP=}YV!`p7RjjC8Kmv2|A)t*_e*B*^OH=E6cb!=Hw9?X0`e@#K`I1q$Bd!lg8taHks z(qPE=IR~IZ`3>_2I_8yiu4^g_h7FVPuMk2UbL)K9R2B>yRsqC9zp77G4VP3B3>&oq zVCcJWlzH&}+N$M>(t{y`A20xGu95HP?)BcP>4H*&A!F~v-}gESwD7ix~mTB?ixfbMLHmi@<3xB>YyJQN~h%HQ@6v*4lY-77Pjg zC?+rrWhxa|OVzotG~~faFeLg)n~}MEo(HLk^=N)&X~|0A!N3+mtcko}O{q)cp8F(A zQx*yhhAy_3ByeYlju^`e)|U6dxZ{4w(w3IOg5kb`gdOxMf|w`@T^q(iHn|E3Cb%v8 zy$T{?T_M3hC^CL0O}RF?3JHe9_`OOXO139Mp)NVHPOb(pcQ7R2vl3KFAc(A|MokOTCsPMf7N0G*8t4 zrVfU0g|tYxuOf@1h^i4?N?)o5FjX*o3#0|YUPX%#VRZm?i8dM&H-L$Q33`uAWYGFyZa(FV4JLTp;qR+Jk#K&BX#L>p zpvN(T;j1N2bPDNB8 zb~7$DE-^4L^m3s900SgRL_t(&L+zTabK5`=#SIG$0|NsK3kwVTCj=G-29^~T78Vu; z1{MYyX8b8wXy`Kct$M3@TCW^^+@0jKnfc9~^|ANfn^@XNnaR)bcpM#(@mGq!KPN$p z%>4s$uwJjPaJ?Zx9C3Hy*_$1Q;;`AaL)9 zt{EE&*VfNr+)KaYY3oX~V5F~ru#;XzQ4_JSwP}p-Py;wP7zp@k1Z4??(e>;IdN+WBf`NcLBP4q$iVcNy z^lAWm2P4l$!orh5!r)*ioX!nkuVCbv2o}wHEoqDDvAQtt)Btu4Ms9^zqtI5!@}!G;{0c7ygF@Boj)ny;0@ZA^ zH@@XO8;rj0um!2`#bEW*+QL=huXKV~?04n_^xCgN^sP^Irsklz$Wl78;EF$mBm2v)Lb)VY7ihWyvN00000< KMNUMnLSTaEL7(6N diff --git a/res/drawable-xhdpi/book.9.png b/res/drawable-xhdpi/book.9.png deleted file mode 100644 index 0d123941b347cbf9325bb3caec4c9a5d5112d1a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)R0#8Xq zK~z}7-I#51!axXyUp8B<^*Fu%5qcb3KVs+~w!m4Ov6u%cy572dQlPH@_RRdzGjS5pyMU#TxXQh6+#fQQgyZ`CfF!?{wWA6nFIV4y z+87Pu-i^4sx9rpgEyX%Q=1q_;oYaor4glTC+R>ytc%Zq>6x4>AxG z4gj^eIQy0h4V6o?zCN{Cg^~e+?J*C+Ip`pxct&o1xmQ?RC!b-n|et1wk3n;Gz zk44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfS&2Vq7F)?gK&AbW|YuPggqW*KI7p~j_o1wbLG64!{5;QX|b z^2DN4hJeJ(yb?V>*ARs=V?9$nLj!{^MGF}im`yxg977`9-`?=d7cmrIeXv14iM{a# zKgWa{e4OkPIBqL$k16t)^2fhUXg~8SXT21e?-wS^9pPEDM7{S|==;6fPUoFp=a{pmAWP+yl#FTm+N<4;i`O1BDc|+L z=RwYcn1es>D}27P!gt=aFB5LAyLc@{O2z4m(}SP~MGw3lWF6ef_+&?nX;$HbLo?gb zXUdw~n&nbu=hKP$Ix?f;%YZtz8H(b?`N(Rp2)EC&Ay~_heM!R zqC%uXszR(nt|IcoD#to~_jOWREeakUxjV~OUNUyE&{yBwOFA>=9&Z$H>^(61!0rRT z4;(+R{J?Xzea31qwXw6$&XY~OGC8x#`|(P_S-oEmq$Ox?kiEhAhV2{E@5W|iwZ6^M z=B-UPeJsA1?NY|MWpuk4gT5rpK)=T(q-x|1g(TT!E{rA|mRVM{E zY%aLG;OU&VUtcZ=%%Awi|9F?|?#nPOnr{Q$_D)x=o^7#aZlgTYZrhET2O@W5URdNg zyM1SmmDQZebBFiNyCL#G=Z=|(?yRzZ8H*=f)(~p{Ugw{~RUr1x(=Ap*q*_$T`UTu+ zOU+;D{LL>BDiF()a*z8p^@fjjvCY~ejr)z(2YBkS>2Y|MYMxxttM}AYU%7Xic)I-& zli&0ASX`d*`q7*;)!Vf5DO4&kTy5T;ZoV+fM84a(f-Q_H0#__ZE?QhYn!WZ#Cgdd9t0U<<T&jAz7+T;rv=hysm%u1iddODR^fJMAZt|$f)-EU^fq=sxs`|2yjCf(by zokL)5>zUxiW|akL{(LhRX91<)QyH?R rAC(Nuo|*mH{%Coi{4|N|?E8#2a~60+ z7BevL?F3=Q9c<$Jfr3&ct`Q}{`DrEPiAAXl0g0J;C3=3YAqr*2dZv1Y1_ob>76MgS zd%8G=Xapz!`2XKNj)z5osqf;`i-sHwnQta7NtzJ3m@TO7AY0O8hhq*2Ej=4oHYO@K iBn2@3|NnnJBg4Z36Ws!xJUM{IFnGH9xvX>?p diff --git a/res/drawable-xhdpi/drawer_shadow.9.png b/res/drawable-xhdpi/drawer_shadow.9.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3d853e902401d850f09b1cc50a58cda9bd3bb5 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^{6Or)!3HEd1bTh|DVAa<&kznEsNqQI0P;BtJR*x3 z7`Qt@n9=;?>9s(?2u~Ns5RcBc*A@8=2k^;BD$vKZ(B+Ju<=2igh OVDNPHb6Mw<&;$UPn>!5v literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/edit_text_bg.9.png b/res/drawable-xhdpi/edit_text_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..92c9b21ab3aab4584d9d573eb90650f79c4fc750 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqqqGQL%#5JPCIX^cyHLrx>+nH(mfnuSa zE{-7{$KPJx$lKt+;~XfxQDXApv}HRdPY_7e6S*I{OMSW5n({@nBJ4f3=~c?F-m0Q% zscm@s_?+8P%y4l1&eij~zenBN@pO6N$Hm`X-uq$2$*^{HUnbB322WQ%mvv4FO#ma% BM+g7_ literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/exit.png b/res/drawable-xhdpi/ic_action_back.png similarity index 100% rename from res/drawable-xhdpi/exit.png rename to res/drawable-xhdpi/ic_action_back.png diff --git a/res/drawable-xhdpi/ic_action_back_dark.png b/res/drawable-xhdpi/ic_action_back_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcf9b5832656e7b68a47ed2aca707766eeb7c5c GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ydl>XLn>~)y>*(C$x(#$V&tr5 zZe>G`$p-9~gBBO4E&sMtz(v5^%B0r+An$^%pE>tT7=gN0Uy8b|aymbI`YpxKe^Jp{ z#UU-`KUK93vHyIYw>5UvpBw%Rm7kuRoUHCY&j!Tk*ZY5CXW6Ti-&>zn-!_blYnad0 zQO{b#@|Vq3z>!7J1ws69Z`tUdvd^VspUCXV`K-qLs_{xs=AB|~)z3t0&$UuPYf?ml> z%c6#q=W6DKZzt|q`*x8+M=#f;S(Wl<*4aNfxFy(Qxu=VZ%RS$7KW}W_rN3`V(d)=q zL7+JwSU$Y2X6oSEuv>BgtHGB!7nmgeDRMF}H1spJRrxXjRRF<#<||SBpAE0O#WG|t zGAxWv*gP$p;Q|vw(v|}?|0Em47!pL-7O*n>5R1@ST5?PFz+)#ymmEfhi450V_uZP2 wz|9LZBWDQ~)y|t0|P=EkSVEY#b z2UQVA;V%x+53~;0-V|5j7Os8L|E+h+%8NY)N;?vPdKk)*=RJ4c^k?a}6|%ukkHNV(86q-1ckcbPuEma?Omc35--pjDRJAi+0-Omg6uGt-$ z&zd3c$gtkwNB@HVOixZuR`;K0Q~3$Z*w?v7c;*Y`mAxFvpVlTkTlgfpgTe~DWM4fAW&k9 literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_action_incognito.png b/res/drawable-xhdpi/ic_action_incognito.png new file mode 100644 index 0000000000000000000000000000000000000000..01d558867fe5e888bcf72e5a42091ecdb8689236 GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV2to|aSW-r^>&)AA5)-+8@mt} z7uQC^G83H!)`$rK-hVi4r8mgE(beb)dDqZ%vQx(;0j4 zf#L3e%b)COqHU&2*r=_~t(M)VD7WA6k9uW)n>*un*8cC4XLNKQP>H$yeb$|dnlI+Z z6!d>y-?w0${Iw&c(&6iy%&g7YDn#$;q3VT^|ev^ zoPvm`%zWR@nKNg0Qz;`xj2JOu#7G!YsZ{2ui6x*=D6CNv3EsBt zsZyzQMdfkg2mtVp<#PEiwOA~EN*ewN5YYAr;4#l727NA<%Xr{D<+;QVfRO)jn*iuu zQZoNE2>5fG0G`WcvolFZeol|4@8tp~*5K3W^g{ssc^3ivkJrSx@>}Wy{=Z_1EX8)| z!#qD3L;$ae<&p?+)*$d*YQ-`6ZTlsF*TxEby%#4yy9!2q_(5++4mpY2gCV_6K?i4gb>eIE5b{tX5`j{x{{ z`Z|_Xfz=s|v;-5-8hZr^h95x>1U~r#`lhR=e;-CS1re}GpR`wgFuWoF{7R_(130j# zvkL6425DPLr}rISacKm9MVq2_LfE9df@7x|z@O5V$n9XG(Re=2s*z*UhUBjA+_)n^ z^!EfzN*Z#&qF4fun7(Pq0pBIJzuFoIXp01&$z-1BXrR!BWm!+f5r9odPFEd3TM}E} zO^t1?rbGe`HI~9hqQJYm!(Xah8+LJB?I_;+JB;05zwAG+Sj=p(W$oSXw%)fCNtl;J zz_Q5XNITUkIXwub`4f3kwU0V47H^5llcqZDKEIPzwtY!3b%hD0YID7Di$z_yAEs zeEm;x2Ie40JZ|r?H@CL~zeX=R^L^~z&TbNm>CmA=hYlS&f{1#(oPWZJeBgR)5gyvcd71L#!!?&Tox@__aXq4I&|o862HT5UY9QAs<8k7002ovPDHLkV1gizCAa_p literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_drawer.png b/res/drawable-xhdpi/ic_drawer.png new file mode 100644 index 0000000000000000000000000000000000000000..b9bc3d70f1d29fec2e4530e5d1809edc8e15ad35 GIT binary patch literal 1056 zcmbVLy>HV%6u%0oKud=rkbnW5+yx|J`<&Q`t(wY-lQsgURT^lJI@GnVjg{JG>??6I zp$-TJMs}p`%!m$vm_Q6HNWhFgdkGtJ{wp^s;CS4?Jv|~pY7%o}Gu+V}T4Zw+(*J#qF zbyIVQ&)caDpZFm|128?4gtpVh6t3cRFVMN~yDvHDxjMHbTcQ<~aLb$PMtHGXYdGDu zqq^M8bvT`9jKIg#hKaus#9E?rJzkB;saoJ*&xE#ht{+s>T7V@IVJP$2j3Xih6@^DR zSy9k6D2YfCMD{8fl+$EIlk#xzaLileu4#3%GVsNAI@h8!)C8f^>F}K_Poi}Jsj8ZC zNK%GbWa6!W+DRser-lqBj-AL0sYe2sGTN(TljTGkrXC2cz{u9QL)^TGi#6lg%WHWNueXLCl!K`-2J4y{%G}?URu}iTxOyX?%IG|Ni z=hzAFdahPhWYd&UB`ZouDIio33t8338aX7(id>P097kc5Tt2T#qN-LD1EI21DCNpU z)l>>nF>e%+ImA|jnA(AZhkiZgcYrM%i`7aIwke4kglr5uV4+1QiCZLur9}l^v24c+ zQpMHug8KQIIP&gcw-ON__A0D-M?~=N%==jPf2t<1V1%?i{%V(@iuGVB9yUMQ9F7kT z*vv$1ICdVt{>%oeRyB=A^5xqTV+_DEZ*K2>+`fG7_s{+D?GHCbcTc|H-@OlOr+<7J z`MUh8J-U;h90BvQ$x;pMJp@l5JO^O;{&-)=znWYD7w()l&fdzcq%&JB*UV?dmF)v& C(MMl-*7{%~ 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 literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_search_dark.png b/res/drawable-xhdpi/ic_search_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3539eab608807bf9e3451c4336d7010cac164427 GIT binary patch literal 782 zcmV+p1M&QcP)=QH%tCK$^tbomx0ung}V@9A5aw>KYr-MyWiZ)fLbW`jVXP$(1%g+if74V_LW2bREP zumbLaJK#FF0FL_V_!Rg7{0X+ZumxU#o8X8Kjz0sd`C&hLgeaswWKv*4qUZ}Q+GcpM^z5%OhLoj13l40&Vo@+Jsl2r-yaR`Jt}HvBqzF)ACo}8N){cD*qzJHV zZR)qnyJ^Cn^$mFm0#vL`H5}U-W6?G#t@5iow)Oa-u3M5#y|arH$F>SgfEft_tUpv@ z!uk_TfT9Ee7FY$CcW7&gHAj6C1Q=yi;G#oYN0yy)NtNJ*wXtJIHioFm{BLJlk^r0R z8k8K^*kColxFi8aSSxIX8MzeKf5J}xRAM{4#WHjy#ZK@mi?HVs1sJ3OrX8lQQ*ge@ zggulz5}RgMp+&=t{yT>KmyqG=Mj#nxdQ1P&_NE)u&*x%%KST-drpx2W8|fmHBOJJ* zmi7fTHp5ijPEe6^)Wz}4iBO~gX8RsA3Ga|1q7@>-9(V$NGXoNFuSjM#K%??zLdT7B zr*^hCCm!R8ttRp*jf9w|Q~Dm^h{+r0roxLVaxyIfbHqG@P0};j3|*JLnBVTjh@e_# zA5~)ra1!$x`6&V=ymrru0Ea#%OsIZ|KqYrgMYx*?1HCT7ns50asR-MFZ%8OYIq(rN zMX0AarOKKJKftGf?}!kg-V@GSA`F;pPfb#$cS6bgkxp-?!$KYV~Jk<^J4UjP6A M07*qoM6N<$f@nQqlK=n! literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_stat_download.png b/res/drawable-xhdpi/ic_stat_download.png new file mode 100644 index 0000000000000000000000000000000000000000..3d843990974a44f8ab2513dcde84e96a506edfbf GIT binary patch literal 319 zcmV-F0l@x=P)VZ)YjCx?y1EU@o>K*_( zgb|3>0Pznj_#Yk*{KlatVjw&r0>qF0Qx4`0WK7sVLzP@`6^OY9IyqI6>G-cetTPz$ z0}~MMAj1R6gQ?^Z1LCJ7IDYY9EIu89_zw||zX8O&gS8H*BjEUNKx{CWD=}su-h;;j znM0u_mIUG#SRB6+Q~?g9p%vu(a0iI_huZj13)JzTrh>^(9N=OB;)6h(HmgALLj7p9dWN4}M@d)IH!ZtUVxtXL4e&V3E<%Y7~ruQ7{Uq1_0gC>kor} RzVQG6002ovPDHLkV1kLGeHH)! literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_tab_number.png b/res/drawable-xhdpi/ic_tab_number.png new file mode 100644 index 0000000000000000000000000000000000000000..6e37a4548f9efec93c24c1eadf5eff3b93b51dc6 GIT binary patch literal 4271 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 R$~XW3002ovPDHLkV1n8WLNx#Y literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/webpage.png b/res/drawable-xhdpi/ic_webpage.png similarity index 100% rename from res/drawable-xhdpi/webpage.png rename to res/drawable-xhdpi/ic_webpage.png diff --git a/res/drawable-xhdpi/incognito.png b/res/drawable-xhdpi/incognito.png deleted file mode 100644 index 0d1b4b725f4ad6de3450892ff27b2c54aa8eefe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!pj3%#L`iUdT1k0gQ7S_~VrE{6o}X)oLYc9i zsh**M!Iz?iKx0EaT^vI)oZrqo>vcFlpjCOr11Bye(K|aovo3kDD%Ml{-=kwqO0Ry~ zH$QI{(K|fho7BuD7VLH$C(rCGzE$9SS#7G+`fo?-xQ|;e3^o+@f8<=Vz2J=Hx$l*>o7#b{7?HI|<^XG)Sc~ zXfl7fc#b7u|1-h-O2Ma(aysK;#ml5qv%kHn`a5fON6|#ZgtmBX=0A**2aJ1Fm@Ae| zOkp^0GKuHGOt(plHkUn&8q%da**^FvpJbSqsRB~;q@Ml3)MLNSzgqa>Yn1BLS0R`G ZFfgYjM*Mi(Ar6cN22WQ%mvv4FO#poM$Q}Ry diff --git a/res/drawable-xhdpi/line.9.png b/res/drawable-xhdpi/line.9.png deleted file mode 100644 index 102c6246f2b5970d57c701db0d75c26e3385aef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4j10c+pb*+;VC@59p8c`CQpH@x|pEfZuX{d;>P&oGg|9?paP6zoX-bb&l1uAFoboFyt I=akR{0JX9%mjD0& diff --git a/res/drawable-xhdpi/loading.png b/res/drawable-xhdpi/loading.png deleted file mode 100644 index da04edbdd559bfc3a05b4c936c59c3fb685a41a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=>Ygr+Ar-gY9%SSN@(wNd?w`wN fz5vKX1`XxR4h{^A>#O))fP_6={an^LB{Ts5sIU~P diff --git a/res/drawable-xhdpi/new_tab.png b/res/drawable-xhdpi/new_tab.png deleted file mode 100644 index 75343da98ba440f2783b596918e00f2d9353510d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0003uNklAOQ(TKmrm-A~4VM6nT?|^ZT@s;+KDhc?94Tum{)# zBYj|)Ciq#%9mciw4qNzIm;iKuQ@|cz6KwPWSAo$9lvxJJ?kysg021~AM65Lii$;>- zWN(2P4j^L{z~f#5iw3DSH#K`|ANU;~xdlK8Bs<`8p!$mobpVAx4M2(71A1Cgb*)IS-^ zpa3cn&;bb>p;H=woFyVLr!4l{pd!VQe*{p408uj%Q>A`bD0_MSJ7QIKY7xA#ekojZ1u)E^+Vx0000!(H9ConK^C^P_x2LenDg+Biy@2F~kxF9hf i>4abLsf-LiCbDnjO1JUnoAD9oCI(MeKbLh*2~7Zth(Nah diff --git a/res/drawable-xhdpi/progress_bar.9.png b/res/drawable-xhdpi/progress_bar.9.png index 27f5168b10919573867a5dbc94009f449c965157..3ee17a7ef390839e2961bfa9249ae2ac9c45a8f2 100644 GIT binary patch delta 125 zcmV-@0D}Lp0j>d%Bo78+OGiWi{{a60|De66laVnPV+V9eO+^RY3kCufGUo*Qr2qf` zJ4r-AR0!8qjKK}SAP~bG)?f{`VBc=R8mwU+?IG1tKCzOh03=ZjKvc%FUjwY!X-RHT fw3__*KCP%6(I*=E%>WPN00000NkvXXu0mjflMyhj delta 148 zcmZ3-xPftkNbP0l+XkKQCKg1 diff --git a/res/drawable-xhdpi/refresh.png b/res/drawable-xhdpi/refresh.png deleted file mode 100644 index 2a5b8e6deaef9172641d7d4e8f1f793151ed06fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1060 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 F{{c`8bxQyM diff --git a/res/drawable-xxhdpi/ic_bookmark.png b/res/drawable-xxhdpi/ic_bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..2978ca35697b7d04dd09e2a4d34d77cd9ebbcc43 GIT binary patch literal 1277 zcmVDbz=S~2^tUt@B9mS|%Ci5q^T}OW zq<*m&<#E@Q=FaFZ>MFaUe!*QIeWYoO@-smy_&P7Ju#r-FRv@MMW_=R(l+2%vfVO```jVENbcAcjU z6-*>fLR3or{;Jyma?WqKui!USWwp)bn{z8-_-r$Cdek+_aQ4}hV0M*x)@=s&d$yQB4E1+cBxn_ zW<=22BJ@KUPvyHw**A}{53^17{RorPAdLlGpp(*V9=bwj=nf9R1vmjW;7BX!=roWY znW*l=;b`dYHo=*;E{$|Ly}!=Epj_sq1Bym z(?JwL;{P=QfRnJZ)eiab&m=$p1zbcDmWtI+h|gP2u)kjh2a)Cm$SNDO3))KltTFvZ zk}2*(+?ycsC!n)&FWwY6vHioH6r(1EU=U;24k26N(uS2I; zl|$tQbrw&pSU~;?bctn68l_xOU@^wzFZTEMACL9I0BY%?$aLJuM{A=sJw@>H7m`ALn~BSrkV$(dgNbk)=Ypwu zK(Sc7XuSd4Ja8R>8@ii>2x!XSOnAy_^3kxQ8e&bYey&>m(kDD5Ve*otO2|&xUI#M0 z66#oMfH;(-t$yE-TmkPj6Sk&?)@Ca!$;axFF8{C2^9oCz7}(Z%ZkZ^DS%9k@sVx1k zbgW9;OPa2PE*lLn=-1sKiL2L1l*7F}_0Zu&M^Em9nnn?ZmCwZq!O}r8^X_GRPM&F zTe6~2OB5N4(%txUOJg?V0E;HL8!v7Nvd5Zyw5H>AFmY`AgUpa!y{aa@8L)}&#*JID nDkCNcf*=TjAP9mWh{*954*D;gIw{7H00000NkvXXu0mjfJ$PX* literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/ic_bookmark_dark.png b/res/drawable-xxhdpi/ic_bookmark_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..14ec2cd9bece045724f438d7be91c39d0dffcebe GIT binary patch literal 1126 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 literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/ic_history_dark.png b/res/drawable-xxhdpi/ic_history_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..25f21a3a9246538d74b13b1c7e5e6d67582a856d GIT binary patch literal 1316 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 IM6N<$f<&A^q5uE@ literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/ic_tab_number.png b/res/drawable-xxhdpi/ic_tab_number.png new file mode 100644 index 0000000000000000000000000000000000000000..064608ac4e0519b8b4798692e5f78901f35ff164 GIT binary patch literal 7128 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

    )d5ETtcw%hc>v4sWIzT_ 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 Ap#T5? diff --git a/res/drawable/blueback.xml b/res/drawable/blueback.xml deleted file mode 100644 index 4fba658..0000000 --- a/res/drawable/blueback.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/drawable/bookmark.xml b/res/drawable/bookmark.xml deleted file mode 100644 index 6d483c8..0000000 --- a/res/drawable/bookmark.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/drawable/button.xml b/res/drawable/button.xml deleted file mode 100644 index 7defd69..0000000 --- a/res/drawable/button.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/drawable/card_bg.xml b/res/drawable/card_bg.xml new file mode 100644 index 0000000..b2587c7 --- /dev/null +++ b/res/drawable/card_bg.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/res/drawable/ginger_animation.xml b/res/drawable/ginger_animation.xml deleted file mode 100644 index 21f1469..0000000 --- a/res/drawable/ginger_animation.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - \ No newline at end of file diff --git a/res/drawable/ics_animation.xml b/res/drawable/ics_animation.xml deleted file mode 100644 index d875320..0000000 --- a/res/drawable/ics_animation.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - diff --git a/res/layout-large/activity_main.xml b/res/layout-large/activity_main.xml new file mode 100644 index 0000000..86112c7 --- /dev/null +++ b/res/layout-large/activity_main.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout-xlarge/activity_main.xml b/res/layout-xlarge/activity_main.xml new file mode 100644 index 0000000..86112c7 --- /dev/null +++ b/res/layout-xlarge/activity_main.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml index a9ae3e0..04a4dce 100644 --- a/res/layout/activity_main.xml +++ b/res/layout/activity_main.xml @@ -1,168 +1,195 @@ - + - - - - + android:background="@color/gray_medium" + android:orientation="vertical" > - - + android:id="@+id/progressWrapper" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?progressColor" + android:orientation="vertical" > - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/res/layout/advanced_settings.xml b/res/layout/advanced_settings.xml index f8c4b90..b6050de 100644 --- a/res/layout/advanced_settings.xml +++ b/res/layout/advanced_settings.xml @@ -4,34 +4,6 @@ android:layout_height="match_parent" android:orientation="vertical" > - - - - - - - - + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:orientation="vertical" > + + + + + - - - + android:layout_centerVertical="true" /> + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:layout_centerVertical="true" /> - - - - - - - - - + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:orientation="vertical" > + + + + + + android:layout_centerVertical="true" /> + + + + + + android:text="@string/reflow" + android:layout_centerVertical="true" + android:textAppearance="?android:attr/textAppearanceMedium" /> + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:layout_centerVertical="true" /> + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:orientation="vertical" > + + + + + + android:layout_alignParentRight="true" + android:layout_centerVertical="true" /> + - + + + + + android:layout_centerVertical="true" + android:orientation="vertical" > + + + + + + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - - + android:orientation="vertical" > + + + + - + android:layout_centerVertical="true" /> - + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:orientation="vertical" > + + + + + - - + android:layout_centerVertical="true" /> + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:orientation="vertical" > + + + + + - - + android:layout_centerVertical="true" /> + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:layout_centerVertical="true" /> + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:layout_centerVertical="true" /> + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - + android:orientation="vertical" > + + + + + - + android:layout_centerVertical="true" /> + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" > - - + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" > - + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" > + - + + + + - + android:layout_centerVertical="true" + android:orientation="vertical" > + + + + + + + + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" > - - + \ No newline at end of file diff --git a/res/layout/bookmark_list_item.xml b/res/layout/bookmark_list_item.xml new file mode 100644 index 0000000..d653847 --- /dev/null +++ b/res/layout/bookmark_list_item.xml @@ -0,0 +1,32 @@ + + + + + + + + + \ No newline at end of file diff --git a/res/layout/drawer_list_item.xml b/res/layout/drawer_list_item.xml new file mode 100644 index 0000000..5658158 --- /dev/null +++ b/res/layout/drawer_list_item.xml @@ -0,0 +1,27 @@ + + + \ No newline at end of file diff --git a/res/layout/license_activity.xml b/res/layout/license_activity.xml new file mode 100644 index 0000000..7953579 --- /dev/null +++ b/res/layout/license_activity.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/menu.xml b/res/layout/menu.xml deleted file mode 100644 index d9c513b..0000000 --- a/res/layout/menu.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/res/layout/menu_navigation.xml b/res/layout/menu_navigation.xml new file mode 100644 index 0000000..15af626 --- /dev/null +++ b/res/layout/menu_navigation.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/res/layout/search.xml b/res/layout/search.xml new file mode 100644 index 0000000..7e5eafc --- /dev/null +++ b/res/layout/search.xml @@ -0,0 +1,35 @@ + + + + + + + \ No newline at end of file diff --git a/res/layout/settings.xml b/res/layout/settings.xml index 2b33501..824df1a 100644 --- a/res/layout/settings.xml +++ b/res/layout/settings.xml @@ -1,53 +1,21 @@ - - - - - - - - - - + android:layout_height="60dp" + android:background="?android:attr/listChoiceBackgroundIndicator" + android:paddingRight="10dp" > - - - - - - + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - diff --git a/res/layout/tab_list_item.xml b/res/layout/tab_list_item.xml new file mode 100644 index 0000000..6fe57d5 --- /dev/null +++ b/res/layout/tab_list_item.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/two_line_autocomplete.xml b/res/layout/two_line_autocomplete.xml index 5981a56..9bd72d3 100644 --- a/res/layout/two_line_autocomplete.xml +++ b/res/layout/two_line_autocomplete.xml @@ -1,33 +1,46 @@ - - + + + + + android:background="?android:attr/listChoiceBackgroundIndicator" + android:clickable="false" + android:orientation="vertical" + android:paddingLeft="5dp" > + + - + + \ No newline at end of file diff --git a/res/layout/video_loading_progress.xml b/res/layout/video_loading_progress.xml new file mode 100644 index 0000000..9e3e421 --- /dev/null +++ b/res/layout/video_loading_progress.xml @@ -0,0 +1,36 @@ + + + + + + + + + \ No newline at end of file diff --git a/res/menu-xlarge/incognito.xml b/res/menu-xlarge/incognito.xml new file mode 100644 index 0000000..87deeb0 --- /dev/null +++ b/res/menu-xlarge/incognito.xml @@ -0,0 +1,26 @@ + +

    + + + + + + + + + + diff --git a/res/menu-xlarge/main.xml b/res/menu-xlarge/main.xml new file mode 100644 index 0000000..edf26c2 --- /dev/null +++ b/res/menu-xlarge/main.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/menu/incognito.xml b/res/menu/incognito.xml new file mode 100644 index 0000000..c612759 --- /dev/null +++ b/res/menu/incognito.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/res/menu/incognito_menu.xml b/res/menu/incognito_menu.xml deleted file mode 100644 index 5d8a295..0000000 --- a/res/menu/incognito_menu.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/res/menu/main.xml b/res/menu/main.xml new file mode 100644 index 0000000..a1a73a0 --- /dev/null +++ b/res/menu/main.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/menu/menu.xml b/res/menu/menu.xml deleted file mode 100644 index 2565675..0000000 --- a/res/menu/menu.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index c9516dd..fba29d9 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -129,4 +129,4 @@ USB-Speicher nicht verfügbar! Speicher aktiv. Um ein Herunterladen zu ermöglichen, schalten Sie den USB-Speicher in der Benachrichtigung aus. - + \ No newline at end of file diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 7a89f9c..349142a 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -1,20 +1,3 @@ - - - Lightning @@ -130,4 +113,4 @@ Almacenamiento USB no disponible El almacenamiento está ocupado. Para permitir las descargar, Desactiva el almacenamiento USB desde el área de notificación. - + \ No newline at end of file diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 751e6d6..4f69a37 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -15,11 +15,11 @@ Les paramètres ne s\'appliqueront qu\'aux nouveaux onglets Activer le mode plein écran Activer JavaScript - Historique - Aj. favoris - Favoris - Partager - Paramètres - Onglet incognito - Nouvel onglet + Historique + Aj. favoris + Favoris + Partager + Paramètres + Onglet incognito + Nouvel onglet \ No newline at end of file diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index b7afe9b..a532e98 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -17,12 +17,12 @@ Impostazioni valgono solo per le nuove schede Enable fullscreen mode Enable JavaScript - History - Aggiungi ai preferiti - Segnalibri - Azione - Impostazioni - Incognito tab - New tab + History + Aggiungi ai preferiti + Segnalibri + Azione + Impostazioni + Incognito tab + New tab \ No newline at end of file diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index aaeaf62..5615ae1 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -108,4 +108,4 @@ Для загрузки файла необходима карта памяти Карта памяти недоступна Карта памяти подключена к ПК. Для начала загрузки отключите её от ПК, нажав на уведомление - + \ No newline at end of file diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 00d80de..36c6d69 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -26,7 +26,6 @@ github.com/anthonycr/Lightning-Browser Apache License 2.0 YeniAyarlar - Ayarlar Uygulama Versiyonu Çıkışta önbelleği temizleme Metin akışını etkinleştirme @@ -44,13 +43,13 @@ Geniş görünüm kullanma Genel bakış modunda sayfaları yükleme Kaybolan pencereleri başlangıçta yükleme - Geçmiş - Yer imi ekle - Yer imleri - Paylaş - Ayarlar - Gizli sekme - Yeni pencere + Geçmiş + Yer imi ekle + Yer imleri + Paylaş + Ayarlar + Gizli sekme + Yeni pencere (Hiçbir stok tarayıcı tespit edilemedi) (Desteklenen stok tarayıcı tespit edildi) diff --git a/res/values-v11/styles.xml b/res/values-v11/styles.xml deleted file mode 100644 index 8b8577b..0000000 --- a/res/values-v11/styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/values-v14/styles.xml b/res/values-v14/styles.xml deleted file mode 100644 index f42f49d..0000000 --- a/res/values-v14/styles.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 053d129..47417df 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -1,7 +1,17 @@ - Lightning + 打开导航抽屉 + 关闭导航抽屉 + 网页搜索 + 刷新页面 + 新建标签 + 分享页面 + 历史记录 + 书签列表 + 添加书签 + 复制链接 + 前进 Google 浏览器设置 允许站点访问地理位置 @@ -35,8 +45,6 @@ 启用 Cookies 从浏览器中导入书签 页面文本尺寸 - AdvancedSettings - Hello world! (推荐) (可能导致部分网页排版混乱) 搜索引擎 @@ -44,17 +52,63 @@ 使用宽视图 使用概览模式载入页面 启动时恢复丢失页面 - 历史记录 - 添加书签 - 书签列表 - 分享页面 - 应用设置 - 隐身标签 - 新建标签 (尚未检测到已支持原生浏览器) (已检测到受支持的原生浏览器) 浏览时隐藏状态栏 清除浏览器 Cookies - 启用前进后退手势控制 - + 您希望对此图片进行什么操作? + 下载 + 打开 + 您希望对此链接进行什么操作? + 分享此页面 + What would you like to do with this bookmark? + 删除 + Blank Page + 默认 UA + 桌面访问 + 移动设备 + 自定义 UA + 搜索引擎 + 确认 + 您是否需要下载此文件? + 取消 + 警告 + "非常抱歉,Google 对此做了一些更改导致 Adobe Flash 无法支持 Android 4.4 以及更高版本。" + "未检测到您的设备中安装了 Adobe Flash Player, +请先安装 Adobe Flash Player 后再启用此选项。" + Adobe Flash 无法正常支持 Android 4.2 以及更高版本并且可能导致浏览器崩溃,若您启用后出现浏览器崩溃的问题请勿对此问题进行反馈。 + User Agent + 下载目录 + 自定义主页 + 网页 + "非常抱歉,Google 对此做了一些更改导致文本重拍无法支持 Android 4.4 以及更高版本。" + 清除历史记录 + 清除 Cookies + 您是否确认清除所有浏览器历史记录? + 您是否确认清除所有浏览器历史记录 Cookies? + 确认 + 取消 + 文本大小 + 最大 + 较大 + 普通 + 较小 + 最小 + 错误 + 暂未检测到任何可导入书签的浏览器 + Title + URL + 编辑书签 + 编辑 + 新建隐身标签 + Hello world! + 默认页面 + 返回 + 页内搜索 + 正在开始下载… + 仅可下载以 \"http\" 或 \"https\" 开头的链接地址 + 未发现 SDCard + 为正常下载此文件需要 USB 存储设备。 + USB 存储不可用 + USB 存储设备目前正忙,为确保正常下载此文件请在通知栏中确认关闭 USB 大容量存储。 \ No newline at end of file diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 6a3c1df..3dca1f1 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -1,20 +1,3 @@ - - - Lightning diff --git a/res/values/attr.xml b/res/values/attr.xml new file mode 100644 index 0000000..bf73fc6 --- /dev/null +++ b/res/values/attr.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/res/values/colors.xml b/res/values/colors.xml index 1f77ce6..f6f9cda 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -6,5 +6,10 @@ #ff000000 #ff3f3f3f #ffa0a0a0 + #222222 + #dddddd + #cdcdcd + #ffffff + #1b1b1b \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index abe5155..5e85ed5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1,6 +1,6 @@ - - - + + + + \ No newline at end of file diff --git a/src/acr/browser/barebones/activities/BrowserActivity.java b/src/acr/browser/barebones/activities/BrowserActivity.java deleted file mode 100644 index b83ef68..0000000 --- a/src/acr/browser/barebones/activities/BrowserActivity.java +++ /dev/null @@ -1,2282 +0,0 @@ -package acr.browser.barebones.activities; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import acr.browser.barebones.R; -import acr.browser.barebones.customwebview.CustomWebView; -import acr.browser.barebones.databases.DatabaseHandler; -import acr.browser.barebones.databases.SpaceTokenizer; -import acr.browser.barebones.utilities.BookmarkPageVariables; -import acr.browser.barebones.utilities.FinalVariables; -import acr.browser.barebones.utilities.HistoryPageVariables; -import acr.browser.barebones.utilities.Utils; -import acr.browser.barebones.webviewclasses.CustomChromeClient; -import acr.browser.barebones.webviewclasses.CustomDownloadListener; -import acr.browser.barebones.webviewclasses.CustomWebViewClient; -import android.annotation.SuppressLint; -import android.app.Activity; -import android.app.AlertDialog; -import android.content.ClipData; -import android.content.ClipboardManager; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager.NameNotFoundException; -import android.content.res.Configuration; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteException; -import android.database.sqlite.SQLiteMisuseException; -import android.graphics.Bitmap; -import android.graphics.Rect; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.location.LocationManager; -import android.net.Uri; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.provider.Browser; -import android.text.TextUtils; -import android.util.DisplayMetrics; -import android.util.Log; -import android.view.GestureDetector; -import android.view.Gravity; -import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.MotionEvent; -import android.view.View; -import android.view.GestureDetector.SimpleOnGestureListener; -import android.view.View.OnClickListener; -import android.view.View.OnKeyListener; -import android.view.View.OnLongClickListener; -import android.view.View.OnTouchListener; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; -import android.view.animation.AnimationUtils; -import android.view.inputmethod.EditorInfo; -import android.view.inputmethod.InputMethodManager; -import android.webkit.CookieManager; -import android.webkit.CookieSyncManager; -import android.webkit.ValueCallback; -import android.webkit.WebChromeClient.CustomViewCallback; -import android.webkit.WebIconDatabase; -import android.webkit.WebSettings; -import android.webkit.WebSettings.LayoutAlgorithm; -import android.webkit.WebView; -import android.webkit.WebView.HitTestResult; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.EditText; -import android.widget.FrameLayout; -import android.widget.HorizontalScrollView; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.MultiAutoCompleteTextView; -import android.widget.PopupMenu; -import android.widget.PopupMenu.OnMenuItemClickListener; -import android.widget.ProgressBar; -import android.widget.RelativeLayout; -import android.widget.SimpleAdapter; -import android.widget.TextView; -import android.widget.TextView.OnEditorActionListener; - -@SuppressWarnings("deprecation") -public class BrowserActivity extends Activity implements OnTouchListener { - - public static class ClickHandler extends Handler { - - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - String url = null; - url = msg.getData().getString("url"); - handleLongClickOnBookmarks(url, msg.arg1); - } - - } - - static class Handle extends Handler { - - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case 1: { - currentTab.loadUrl(getUrl.getText().toString()); - break; - } - case 2: { - // deleteTab(msg.arg1); - break; - } - case 3: { - currentTab.invalidate(); - break; - } - } - super.handleMessage(msg); - } - - } - - static class NewTabHandler extends Handler { - - @Override - public void handleMessage(Message msg) { - if (msg.what == 1) { - newTab(homepage, true); - } - super.handleMessage(msg); - } - - } - - private static BrowserActivity ACTIVITY; - - private static int index = 0; - - // constants - public static final int MAX_TABS = FinalVariables.MAX_TABS; - - public static final int MAX_BOOKMARKS = FinalVariables.MAX_BOOKMARKS; - - // variables - - public static final boolean PAID_VERSION = FinalVariables.PAID_VERSION; - public static final String HOMEPAGE = FinalVariables.HOMEPAGE; - public static final int API = FinalVariables.API; - public static final String SEPARATOR = "\\|\\$\\|SEPARATOR\\|\\$\\|"; - - public static boolean DEVICE_HAS_GPS = false; - // semi constants - public static Context mContext; - public static String mSearch; - - public static List tabList; - // variables - public static CustomWebView currentTab; - public static TextView currentTabTitle; - - public static MultiAutoCompleteTextView getUrl; - public static TextView[] urlTitle; - public static ProgressBar browserProgress; - public static CustomWebView[] main; - public static Rect bounds; - public static long timeTabPressed; - public static boolean fullScreen; - public static int[] tabOrder = new int[MAX_TABS]; - public static ValueCallback mUploadMessage; - public static ImageView refresh; - public static ProgressBar progressBar; - public static String defaultUser; - public static Drawable webpageOther; - public static Drawable incognitoPage; - public static Drawable exitTab; - public static long loadTime = 0; - public static int currentId = 0; - public static int height32; - public static int height; - public static int width; - public static int pixels; - public static int leftPad; - public static int rightPad; - public static int id; - public static int tenPad; - public static boolean isPhone = false; - public static boolean showFullScreen = false; - public static boolean noStockBrowser = true; - public static boolean gestures; - public static SharedPreferences settings; - public static SharedPreferences.Editor edit; - public static String user; - public static String[] memoryURL; - public static String[] bUrl; - public static String[] bTitle; - public static String[] columns; - public static String homepage; - public static String[][] urlToLoad; - public static FrameLayout background; - public static RelativeLayout uBar; - public static RelativeLayout screen; - public static HorizontalScrollView tabScroll; - public static Animation slideUp; - public static Animation slideDown; - public static Animation fadeOut; - public static Animation fadeIn; - public static CookieManager cookieManager; - public static Uri bookmarks; - public static Handler handler, browserHandler; - public static DatabaseHandler historyHandler; - public static Drawable inactive; - public static Drawable active; - public static LinearLayout tabLayout; - - // creates the tab and returns the ID of the view - public static int createTab(String theUrl, boolean display) { - int id = -1; - for (int n = 0; n < MAX_TABS; n++) { - if (main[n] == null) { - id = n; - break; - } - } - if (id != -1) { - if (tabList.size() > 0) { - if (display) { - if (API < 16) { - currentTabTitle.setBackgroundDrawable(inactive); - } else { - currentTabTitle.setBackground(inactive); - } - currentTabTitle.setPadding(leftPad, 0, rightPad, 0); - } - } - final TextView title = new TextView(mContext); - title.setText(mContext.getResources().getString(R.string.action_new_tab)); - if (display) { - if (API < 16) { - title.setBackgroundDrawable(active); - } else { - title.setBackground(active); - } - } else { - if (API < 16) { - title.setBackgroundDrawable(inactive); - } else { - title.setBackground(inactive); - } - } - title.setSingleLine(true); - title.setGravity(Gravity.CENTER_VERTICAL); - title.setHeight(height32); - title.setWidth(pixels); - title.setPadding(leftPad, 0, rightPad, 0); - title.setId(id); - title.setGravity(Gravity.CENTER_VERTICAL); - - title.setCompoundDrawables(webpageOther, null, exitTab, null); - - Drawable[] drawables = title.getCompoundDrawables(); - bounds = drawables[2].getBounds(); - title.setOnTouchListener(ACTIVITY); - Animation holo = AnimationUtils.loadAnimation(mContext, R.anim.up); - tabLayout.addView(title); - title.setVisibility(View.INVISIBLE); - holo.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation animation) { - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - - @Override - public void onAnimationStart(Animation animation) { - title.setVisibility(View.VISIBLE); - } - - }); - title.startAnimation(holo); - urlTitle[id] = title; - - urlTitle[id].setText(mContext.getResources().getString(R.string.action_new_tab)); - - if (theUrl != null) { - main[id] = generateTab(id, theUrl, display); - } else { - main[id] = generateTab(id, homepage, display); - } - - } else { - Utils.showToast(mContext, "Max number of tabs reached"); - } - return id; - } - - public static void deleteBookmark(String url) { - File book = new File(mContext.getFilesDir(), "bookmarks"); - File bookUrl = new File(mContext.getFilesDir(), "bookurl"); - int n = 0; - try { - BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book)); - BufferedWriter urlWriter = new BufferedWriter(new FileWriter( - bookUrl)); - while (bUrl[n] != null && n < (MAX_BOOKMARKS - 1)) { - if (!bUrl[n].equalsIgnoreCase(url)) { - bookWriter.write(bTitle[n]); - urlWriter.write(bUrl[n]); - bookWriter.newLine(); - urlWriter.newLine(); - } - n++; - } - bookWriter.close(); - urlWriter.close(); - } catch (FileNotFoundException e) { - } catch (IOException e) { - } - for (int p = 0; p < MAX_BOOKMARKS; p++) { - bUrl[p] = null; - bTitle[p] = null; - } - try { - BufferedReader readBook = new BufferedReader(new FileReader(book)); - BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); - String t, u; - int z = 0; - while ((t = readBook.readLine()) != null - && (u = readUrl.readLine()) != null && z < MAX_BOOKMARKS) { - bUrl[z] = u; - bTitle[z] = t; - z++; - } - readBook.close(); - readUrl.close(); - } catch (IOException ignored) { - } - openBookmarks(mContext, currentTab); - } - - public static void generateHistory(final CustomWebView view, - final Context context) { - - Thread history = new Thread(new Runnable() { - - @Override - public void run() { - String historyHtml = HistoryPageVariables.Heading; - Cursor historyCursor = null; - String[][] h = new String[50][3]; - - try { - SQLiteDatabase s = historyHandler.getReadableDatabase(); - historyCursor = s.query("history", // URI - // of - columns, // Which columns to return - null, // Which rows to return (all rows) - null, // Selection arguments (none) - null, null, null); - - handler.sendEmptyMessage(1); - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - - try { - if (historyCursor != null) { - if (historyCursor.moveToLast()) { - // Variable for holding the retrieved URL - int urlColumn = historyCursor.getColumnIndex("url"); - int titleColumn = historyCursor - .getColumnIndex("title"); - // Reference to the the column containing the URL - int n = 0; - do { - - h[n][0] = historyCursor.getString(urlColumn); - h[n][2] = h[n][0].substring(0, - Math.min(100, h[n][0].length())) - + "..."; - h[n][1] = historyCursor.getString(titleColumn); - historyHtml += (HistoryPageVariables.Part1 - + h[n][0] + HistoryPageVariables.Part2 - + h[n][1] + HistoryPageVariables.Part3 - + h[n][2] + HistoryPageVariables.Part4); - n++; - } while (n < 49 && historyCursor.moveToPrevious()); - } - } - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - - historyHtml += BookmarkPageVariables.End; - File historyWebPage = new File(context.getFilesDir(), - "history.html"); - try { - FileWriter hWriter = new FileWriter(historyWebPage, false); - hWriter.write(historyHtml); - hWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - if (uBar.isShown()) { - currentTabTitle.setText(mContext.getResources().getString(R.string.action_history)); - setUrlText(""); - getUrl.setPadding(tenPad, 0, tenPad, 0); - } - - view.loadUrl("file://" + historyWebPage); - } - - }); - history.run(); - } - - public static CustomWebView generateTab(final int pageToView, String Url, - final boolean display) { - CustomWebView view = new CustomWebView(mContext); - view.setId(pageToView); - view.setWebViewClient(new CustomWebViewClient(ACTIVITY)); - view.setWebChromeClient(new CustomChromeClient(ACTIVITY)); - if (API > 8) { - view.setDownloadListener(new CustomDownloadListener(ACTIVITY)); - } - main[pageToView] = view; - if (display) { - if (currentId != -1) { - background.removeView(currentTab); - } - background.addView(view); - view.requestFocus(); - currentId = pageToView; - currentTab = main[pageToView]; - currentTabTitle = urlTitle[pageToView]; - } - uBar.bringToFront(); - if (Url.contains("about:home")) { - goBookmarks(mContext, view); - } else if (Url.contains("about:blank")) { - view.loadUrl(""); - } else { - view.loadUrl(Url); - } - Log.i("Browser", "tab complete"); - return view; - } - - public static String[] getArray(String input) { - return input.split(SEPARATOR); - } - - public static void goBack(CustomWebView view) { - if (view.isShown() && view.canGoBack() && gestures) { - view.goBack(); - } - Animation left = AnimationUtils.loadAnimation(mContext, R.anim.left); - background.startAnimation(left); - - } - - static List> getBookmarks() { - List> bookmarks = new ArrayList>(); - File bookUrl = new File(mContext.getFilesDir(), "bookurl"); - File book = new File(mContext.getFilesDir(), "bookmarks"); - try { - BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); - BufferedReader readBook = new BufferedReader(new FileReader(book)); - String u, t; - while ((u = readUrl.readLine()) != null - && (t = readBook.readLine()) != null) { - Map map = new HashMap(); - map.put("title", '\u2605' + " " + t); - map.put("url", u); - bookmarks.add(map); - } - readBook.close(); - readUrl.close(); - } catch (FileNotFoundException ignored) { - } catch (IOException ignored) { - } - return bookmarks; - } - - static void goBookmarks(Context context, CustomWebView view) { - File book = new File(context.getFilesDir(), "bookmarks"); - File bookUrl = new File(context.getFilesDir(), "bookurl"); - try { - BufferedReader readBook = new BufferedReader(new FileReader(book)); - BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); - String t, u; - int n = 0; - while ((t = readBook.readLine()) != null - && (u = readUrl.readLine()) != null && n < MAX_BOOKMARKS) { - bUrl[n] = u; - bTitle[n] = t; - - n++; - } - readBook.close(); - readUrl.close(); - } catch (FileNotFoundException ignored) { - } catch (IOException ignored) { - } - openBookmarks(context, view); - } - - public static void goForward(CustomWebView view) { - if (view.isShown() && view.canGoForward() && gestures) { - view.goForward(); - } - Animation right = AnimationUtils.loadAnimation(mContext, R.anim.right); - background.startAnimation(right); - } - - public static void handleLongClickOnBookmarks(final String clickedURL, - final int n) { - if (clickedURL != null) { - - DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { - case DialogInterface.BUTTON_POSITIVE: { - renameBookmark(clickedURL); - break; - } - case DialogInterface.BUTTON_NEGATIVE: { - main[n].loadUrl(clickedURL); - break; - } - case DialogInterface.BUTTON_NEUTRAL: { - deleteBookmark(clickedURL); - break; - } - } - } - }; - - AlertDialog.Builder builder = new AlertDialog.Builder(mContext); // dialog - builder.setMessage(mContext.getResources().getString(R.string.dialog_bookmark)) - .setPositiveButton(mContext.getResources().getString(R.string.action_edit), dialogClickListener) - .setNegativeButton(mContext.getResources().getString(R.string.action_open), dialogClickListener) - .setNeutralButton(mContext.getResources().getString(R.string.action_delete), dialogClickListener).show(); - } - } - - public static int newId() { - - Random n = new Random(); - int id = n.nextInt(); - - while (tabList.contains(id)) { - id = n.nextInt(); - } - return id; - } - - // new tab method, takes the id of the tab to be created and the url to load - public static int newTab(final String theUrl, final boolean display) { - Log.i("Browser", "making tab"); - homepage = settings.getString("home", HOMEPAGE); - int finalID = createTab(theUrl, display); - if (finalID != -1) { - tabList.add(finalID); - if (display) { - currentId = finalID; - currentTab = main[finalID]; - currentTabTitle = urlTitle[finalID]; - } - - return finalID; - } else { - return 0; - } - } - - public static void onCreateWindow(Message resultMsg) { - newTab("", true); - WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; - transport.setWebView(currentTab); - resultMsg.sendToTarget(); - browserHandler.postDelayed(new Runnable() { - @Override - public void run() { - currentTab.loadUrl(getUrl.getText().toString()); - } - }, 500); - } - - public static void onHideCustomView(FrameLayout fullScreenContainer, - CustomViewCallback mCustomViewCallback, int orientation) { - if (!settings.getBoolean("hidestatus", false)) { - ACTIVITY.getWindow().clearFlags( - WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - FrameLayout screen = (FrameLayout) ACTIVITY.getWindow().getDecorView(); - screen.removeView(fullScreenContainer); - fullScreenContainer = null; - //mCustomViewCallback.onCustomViewHidden(); - //apparently causing browser to crash when video ends - ACTIVITY.setRequestedOrientation(orientation); - background.addView(currentTab); - uBar.setVisibility(View.VISIBLE); - uBar.bringToFront(); - } - - private static Message click; - - public static boolean onLongClick() { - int n = currentId; - if (currentId == -1 || currentTab == null) { - return true; - } - final HitTestResult result = currentTab.getHitTestResult(); - if (currentTab.getUrl().contains( - "file://" + mContext.getFilesDir() + "/bookmarks.html")) { - click = new Message(); - click.arg1 = n; - click.setTarget(new ClickHandler()); - currentTab.requestFocusNodeHref(click); - - return true; - } else if (result != null) { - if (result.getExtra() != null) { - if (result.getType() == 5 && API > 8) { - DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { - case DialogInterface.BUTTON_POSITIVE: { - int num = currentId; - newTab(result.getExtra(), false); - // urlTitle[num].performClick(); - currentId = num; - currentTab = main[num]; - currentTabTitle = urlTitle[num]; - break; - } - case DialogInterface.BUTTON_NEGATIVE: { - currentTab.loadUrl(result.getExtra()); - break; - } - case DialogInterface.BUTTON_NEUTRAL: { - if (API > 8) { - String url = result.getExtra(); - - Utils.downloadFile(mContext, url, null, null); - - } - break; - } - } - } - }; - - AlertDialog.Builder builder = new AlertDialog.Builder( - mContext); // dialog - builder.setMessage( - mContext.getResources().getString(R.string.dialog_image)) - .setPositiveButton(mContext.getResources().getString(R.string.action_new_tab), - dialogClickListener) - .setNegativeButton(mContext.getResources().getString(R.string.action_open), - dialogClickListener) - .setNeutralButton(mContext.getResources().getString(R.string.action_download), - dialogClickListener).show(); - - } else { - DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { - case DialogInterface.BUTTON_POSITIVE: { - int num = currentId; - newTab(result.getExtra(), false); - currentId = num; - currentTab = main[num]; - currentTabTitle = urlTitle[num]; - break; - } - case DialogInterface.BUTTON_NEGATIVE: { - currentTab.loadUrl(result.getExtra()); - break; - } - case DialogInterface.BUTTON_NEUTRAL: { - if (API < 11) { - android.text.ClipboardManager clipboard = (android.text.ClipboardManager) ACTIVITY - .getSystemService(Context.CLIPBOARD_SERVICE); - clipboard.setText(result.getExtra()); - } else { - ClipboardManager clipboard = (ClipboardManager) ACTIVITY - .getSystemService(CLIPBOARD_SERVICE); - ClipData clip = ClipData.newPlainText( - "label", result.getExtra()); - clipboard.setPrimaryClip(clip); - } - break; - } - } - } - }; - - AlertDialog.Builder builder = new AlertDialog.Builder( - mContext); // dialog - builder.setTitle(result.getExtra()) - .setMessage( - mContext.getResources().getString(R.string.dialog_link)) - .setPositiveButton(mContext.getResources().getString(R.string.action_new_tab), - dialogClickListener) - .setNegativeButton(mContext.getResources().getString(R.string.action_open), - dialogClickListener) - .setNeutralButton(mContext.getResources().getString(R.string.action_copy), dialogClickListener) - .show(); - } - } - return true; - - } else { - return false; - } - } - - public static void onPageFinished(WebView view, String url) { - if (view.isShown()) { - view.invalidate(); - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - - if (showFullScreen && uBar.isShown()) { - uBar.startAnimation(slideUp); - } - } - view.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); - Log.i("Lightning", "Page Finished"); - loadTime = System.currentTimeMillis() - loadTime; - Log.i("Lightning", "Load Time: " + loadTime); - } - - private static int numberPage; - - public static void onPageStarted(WebView view, String url, Bitmap favicon) { - Log.i("Lightning", "Page Started"); - loadTime = System.currentTimeMillis(); - numberPage = view.getId(); - - if (url.startsWith("file://")) { - view.getSettings().setUseWideViewPort(false); - } else { - view.getSettings().setUseWideViewPort( - settings.getBoolean("wideviewport", true)); - } - - if (view.isShown()) { - refresh.setVisibility(View.INVISIBLE); - progressBar.setVisibility(View.VISIBLE); - setUrlText(url); - } - - urlTitle[numberPage].setCompoundDrawables(webpageOther, null, exitTab, - null); - if (favicon != null) { - setFavicon(view.getId(), favicon); - } - - getUrl.setPadding(tenPad, 0, tenPad, 0); - urlToLoad[numberPage][0] = url; - - if (!uBar.isShown() && showFullScreen) { - uBar.startAnimation(slideDown); - } - } - - public static void onProgressChanged(int id, int progress) { - if (id == currentId) { - browserProgress.setProgress(progress); - if (progress < 100) { - browserProgress.setVisibility(View.VISIBLE); - } else { - browserProgress.setVisibility(View.GONE); - } - } - } - - public static void onReceivedTitle(int numberPage, String title) { - if (title != null && title.length() != 0) { - urlTitle[numberPage].setText(title); - urlToLoad[numberPage][1] = title; - Utils.updateHistory(mContext, mContext.getContentResolver(), - noStockBrowser, urlToLoad[numberPage][0], title); - } - } - - public static void onShowCustomView() { - ACTIVITY.getWindow().setFlags( - WindowManager.LayoutParams.FLAG_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FULLSCREEN); - background.removeView(currentTab); - uBar.setVisibility(View.GONE); - } - - static void openBookmarks(Context context, CustomWebView view) { - String bookmarkHtml = BookmarkPageVariables.Heading; - - for (int n = 0; n < MAX_BOOKMARKS; n++) { - if (bUrl[n] != null) { - bookmarkHtml += (BookmarkPageVariables.Part1 + bUrl[n] - + BookmarkPageVariables.Part2 + bUrl[n] - + BookmarkPageVariables.Part3 + bTitle[n] + BookmarkPageVariables.Part4); - } - } - bookmarkHtml += BookmarkPageVariables.End; - File bookmarkWebPage = new File(context.getFilesDir(), "bookmarks.html"); - try { - FileWriter bookWriter = new FileWriter(bookmarkWebPage, false); - bookWriter.write(bookmarkHtml); - bookWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - view.loadUrl("file://" + bookmarkWebPage); - - if (uBar.isShown()) { - currentTabTitle.setText("Bookmarks"); - setUrlText(""); - getUrl.setPadding(tenPad, 0, tenPad, 0); - } - - } - - public static void openFileChooser(ValueCallback uploadMsg) { - mUploadMessage = uploadMsg; - Intent i = new Intent(Intent.ACTION_GET_CONTENT); - i.addCategory(Intent.CATEGORY_OPENABLE); - i.setType("*/*"); - ACTIVITY.startActivityForResult( - Intent.createChooser(i, "File Chooser"), 1); - } - - public static void reinitializeSettings() { - int size = tabList.size(); - cookieManager = CookieManager.getInstance(); - CookieSyncManager.createInstance(mContext); - cookieManager.setAcceptCookie(settings.getBoolean("cookies", true)); - for (int n = 0; n < size; n++) { - main[tabList.get(n)].settingsInitialization(mContext); - } - } - - public static void renameBookmark(String url) { - index = 0; - for (int n = 0; n < MAX_BOOKMARKS; n++) { - if (bUrl[n] != null) { - if (bUrl[n].equalsIgnoreCase(url)) { - index = n; - break; - } - } - } - - final AlertDialog.Builder homePicker = new AlertDialog.Builder(mContext); - homePicker.setTitle(mContext.getResources().getString(R.string.title_edit_bookmark)); - final EditText getText = new EditText(mContext); - getText.setText(bTitle[index]); - - homePicker.setView(getText); - homePicker.setPositiveButton(mContext.getResources().getString(R.string.action_ok), - new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - bTitle[index] = getText.getText().toString(); - File book = new File(mContext.getFilesDir(), "bookmarks"); - File bookUrl = new File(mContext.getFilesDir(), - "bookurl"); - int n = 0; - try { - BufferedWriter bookWriter = new BufferedWriter( - new FileWriter(book)); - BufferedWriter urlWriter = new BufferedWriter( - new FileWriter(bookUrl)); - while (bUrl[n] != null && n < (MAX_BOOKMARKS - 1)) { - bookWriter.write(bTitle[n]); - urlWriter.write(bUrl[n]); - bookWriter.newLine(); - urlWriter.newLine(); - n++; - } - bookWriter.close(); - urlWriter.close(); - } catch (FileNotFoundException e) { - } catch (IOException e) { - } - for (int p = 0; p < MAX_BOOKMARKS; p++) { - bUrl[p] = null; - bTitle[p] = null; - } - try { - BufferedReader readBook = new BufferedReader( - new FileReader(book)); - BufferedReader readUrl = new BufferedReader( - new FileReader(bookUrl)); - String t, u; - int z = 0; - while ((t = readBook.readLine()) != null - && (u = readUrl.readLine()) != null - && z < MAX_BOOKMARKS) { - bUrl[z] = u; - bTitle[z] = t; - z++; - } - readBook.close(); - readUrl.close(); - } catch (IOException ignored) { - } - openBookmarks(mContext, currentTab); - } - }); - homePicker.show(); - - } - - static void searchTheWeb(String query, Context context) { - query = query.trim(); - currentTab.stopLoading(); - - if (query.startsWith("www.")) { - query = "http://" + query; - } else if (query.startsWith("ftp.")) { - query = "ftp://" + query; - } - - boolean containsPeriod = query.contains("."); - boolean isIPAddress = (TextUtils.isDigitsOnly(query.replace(".", "")) && (query - .replace(".", "").length() >= 4)); - boolean aboutScheme = query.contains("about:"); - boolean validURL = (query.startsWith("ftp://") - || query.startsWith("http://") || query.startsWith("file://") || query - .startsWith("https://")) || isIPAddress; - boolean isSearch = ((query.contains(" ") || !containsPeriod) && !aboutScheme); - - if (query.contains("about:home") || query.contains("about:bookmarks")) { - goBookmarks(context, currentTab); - } else if (query.contains("about:history")) { - generateHistory(currentTab, context); - } else if (isSearch) { - try { - URLEncoder.encode(query, "UTF-8"); - } catch (UnsupportedEncodingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - currentTab.loadUrl(mSearch + query); - } else if (!validURL) { - currentTab.loadUrl("http://" + query); - } else { - currentTab.loadUrl(query); - } - } - - @SuppressWarnings("unused") - public static void setFavicon(int id, Bitmap favicon) { - Drawable icon; - icon = new BitmapDrawable(null, favicon); - icon.setBounds(0, 0, width / 2, height / 2); - if (icon != null) { - urlTitle[id].setCompoundDrawables(icon, null, exitTab, null); - } else { - urlTitle[id] - .setCompoundDrawables(webpageOther, null, exitTab, null); - } - - } - - public static void setUrlText(String url) { - if (url != null) { - if (!url.startsWith("file://")) { - getUrl.setText(url); - } else { - getUrl.setText(""); - } - } - } - - static void share() { - Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); - - // set the type - shareIntent.setType("text/plain"); - - // add a subject - shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, - urlToLoad[currentId][1]); - - // build the body of the message to be shared - String shareMessage = urlToLoad[currentId][0]; - - // add the message - shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareMessage); - - // start the chooser for sharing - mContext.startActivity(Intent.createChooser(shareIntent, - mContext.getResources().getString(R.string.dialog_title_share))); - } - - public static void toggleFullScreen() { - showFullScreen = settings.getBoolean("fullscreen", false); - CustomWebView.showFullScreen = showFullScreen; - if (fullScreen) { - background.removeView(uBar); - screen.addView(uBar); - fullScreen = false; - } else { - screen.removeView(uBar); - background.addView(uBar); - fullScreen = true; - } - } - - void back() { - ImageView exit = (ImageView) findViewById(R.id.exit); - exit.setBackgroundResource(R.drawable.button); - if (isPhone) { - RelativeLayout relativeLayout1 = (RelativeLayout) findViewById(R.id.relativeLayout1); - relativeLayout1.removeView(exit); - } - exit.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - - if (currentTab.canGoBack()) { - currentTab.goBack(); - } else { - deleteTab(currentId); - } - - } - - }); - exit.setOnLongClickListener(new OnLongClickListener() { - - @Override - public boolean onLongClick(View v) { - clearCache(); - finish(); - return true; - } - - }); - - } - - void deleteTab(final int del) { - if (API >= 11) { - main[del].onPause(); - } - main[del].stopLoading(); - main[del].clearHistory(); - main[del].setVisibility(View.GONE); - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - edit.putString("oldPage", urlToLoad[del][0]); - edit.commit(); - urlToLoad[del][0] = null; - urlToLoad[del][1] = null; - if (API < 16) { - urlTitle[del].setBackgroundDrawable(active); - } else { - urlTitle[del].setBackground(active); - } - - urlTitle[del].setPadding(leftPad, 0, rightPad, 0); - Animation yolo = AnimationUtils.loadAnimation(this, R.anim.down); - yolo.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation animation) { - // urlTitle[del].setVisibility(View.GONE); - tabLayout.post(new Runnable() { - - @Override - public void run() { - tabLayout.removeView(urlTitle[del]); - } - - }); - findNewView(del); - if (main[del] != null) { - if (API > 11) { - main[del].onPause(); - } - if (main[del].isShown()) { - background.removeView(main[del]); - } - main[del].removeAllViews(); - main[del] = null; - } - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - - @Override - public void onAnimationStart(Animation animation) { - } - - }); - urlTitle[del].startAnimation(yolo); - uBar.bringToFront(); - } - - void enter() { - getUrl.setOnKeyListener(new OnKeyListener() { - - @Override - public boolean onKey(View arg0, int arg1, KeyEvent arg2) { - - switch (arg1) { - case KeyEvent.KEYCODE_ENTER: - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); - searchTheWeb(getUrl.getText().toString(), mContext); - return true; - default: - break; - } - return false; - } - - }); - getUrl.setOnEditorActionListener(new OnEditorActionListener() { - - @Override - public boolean onEditorAction(TextView arg0, int actionId, - KeyEvent arg2) { - if (actionId == EditorInfo.IME_ACTION_GO - || actionId == EditorInfo.IME_ACTION_DONE - || actionId == EditorInfo.IME_ACTION_NEXT - || actionId == EditorInfo.IME_ACTION_SEND - || actionId == EditorInfo.IME_ACTION_SEARCH - || (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) { - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); - searchTheWeb(getUrl.getText().toString(), mContext); - return true; - } - return false; - } - - }); - } - - @SuppressLint("HandlerLeak") - void enterUrl() { - getUrl = (MultiAutoCompleteTextView) findViewById(R.id.enterUrl); - getUrl.setPadding(tenPad, 0, tenPad, 0); - getUrl.setTextColor(getResources().getColor(android.R.color.black)); - getUrl.setPadding(tenPad, 0, tenPad, 0); - getUrl.setBackgroundResource(R.drawable.book); - getUrl.setPadding(tenPad, 0, tenPad, 0); - final List> list = new ArrayList>(); - List> books = getBookmarks(); - Iterator> it = books.iterator(); - while (it.hasNext()) { - list.add(it.next()); - } - handler = new Handler() { - - @Override - public void handleMessage(Message msg) { - - switch (msg.what) { - case 1: { - SimpleAdapter adapter = new SimpleAdapter(mContext, list, - R.layout.two_line_autocomplete, new String[] { - "title", "url" }, new int[] { R.id.title, - R.id.url }); - - getUrl.setAdapter(adapter); - - break; - } - case 2: { - - break; - } - } - } - }; - - Thread updateAutoComplete = new Thread(new Runnable() { - - @Override - public void run() { - - Cursor c = null; - Cursor managedCursor = null; - columns = new String[] { "url", "title" }; - try { - - bookmarks = Browser.BOOKMARKS_URI; - c = getContentResolver().query(bookmarks, columns, null, - null, null); - } catch (SQLiteException ignored) { - } catch (IllegalStateException ignored) { - } catch (NullPointerException ignored) { - } - - if (c != null) { - noStockBrowser = false; - Log.i("Browser", "detected AOSP browser"); - } else { - noStockBrowser = true; - Log.e("Browser", "did not detect AOSP browser"); - } - if (c != null) { - c.close(); - } - try { - - managedCursor = null; - SQLiteDatabase s = historyHandler.getReadableDatabase(); - managedCursor = s.query("history", // URI - // of - columns, // Which columns to return - null, // Which rows to return (all rows) - null, // Selection arguments (none) - null, null, null); - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - - try { - if (managedCursor != null) { - - if (managedCursor.moveToLast()) { - - // Variable for holding the retrieved URL - - int urlColumn = managedCursor.getColumnIndex("url"); - int titleColumn = managedCursor - .getColumnIndex("title"); - // Reference to the the column containing the URL - do { - String urlA = managedCursor - .getString(urlColumn); - String title = managedCursor - .getString(titleColumn); - Map map = new HashMap(); - map.put("title", title); - map.put("url", urlA); - list.add(map); - } while (managedCursor.moveToPrevious()); - } - } - handler.sendEmptyMessage(1); - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - managedCursor.close(); - } - - }); - try { - updateAutoComplete.start(); - } catch (NullPointerException ignored) { - } catch (SQLiteMisuseException ignored) { - } catch (IllegalStateException ignored) { - } - - getUrl.setThreshold(1); - getUrl.setTokenizer(new SpaceTokenizer()); - getUrl.setOnItemClickListener(new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView arg0, View arg1, int arg2, - long arg3) { - try { - String url; - url = ((TextView) arg1.findViewById(R.id.url)).getText() - .toString(); - getUrl.setText(url); - searchTheWeb(url, mContext); - url = null; - getUrl.setPadding(tenPad, 0, tenPad, 0); - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); - } catch (NullPointerException e) { - Log.e("Browser Error: ", - "NullPointerException on item click"); - } - } - - }); - - getUrl.setSelectAllOnFocus(true); // allows edittext to select all when - // clicked - } - - void findNewView(int id) { - int delete = tabList.indexOf(id); - int leftId = id; - boolean right = false, left = false; - if (id == currentId) { - - if (main[id].isShown()) { - main[id].startAnimation(fadeOut); - background.removeView(main[id]); - uBar.bringToFront(); - } - - if (tabList.size() > delete + 1) { - id = tabList.get(delete + 1); - if (urlTitle[id].isShown()) { - background.addView(main[id]); - main[id].setVisibility(View.VISIBLE); - uBar.bringToFront(); - if (API < 16) { - urlTitle[id].setBackgroundDrawable(active); - } else { - urlTitle[id].setBackground(active); - } - urlTitle[id].setPadding(leftPad, 0, rightPad, 0); - currentId = id; - currentTab = main[id]; - currentTabTitle = urlTitle[id]; - setUrlText(urlToLoad[currentId][0]); - getUrl.setPadding(tenPad, 0, tenPad, 0); - right = true; - if (main[id].getProgress() < 100) { - onProgressChanged(id, main[id].getProgress()); - refresh.setVisibility(View.INVISIBLE); - progressBar.setVisibility(View.VISIBLE); - } else { - onProgressChanged(id, main[id].getProgress()); - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - } - // break; - } - - } - if (!right) { - if (delete > 0) { - leftId = tabList.get(delete - 1); - if (urlTitle[leftId].isShown()) { - background.addView(main[leftId]); - main[leftId].setVisibility(View.VISIBLE); - // uBar.bringToFront(); - if (API < 16) { - urlTitle[leftId].setBackgroundDrawable(active); - } else { - urlTitle[leftId].setBackground(active); - } - urlTitle[leftId].setPadding(leftPad, 0, rightPad, 0); - currentId = leftId; - currentTab = main[leftId]; - currentTabTitle = urlTitle[leftId]; - setUrlText(urlToLoad[currentId][0]); - getUrl.setPadding(tenPad, 0, tenPad, 0); - left = true; - if (main[leftId].getProgress() < 100) { - refresh.setVisibility(View.INVISIBLE); - progressBar.setVisibility(View.VISIBLE); - onProgressChanged(leftId, - main[leftId].getProgress()); - } else { - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - onProgressChanged(leftId, - main[leftId].getProgress()); - } - // break; - } - - } - - } - - } else { - right = left = true; - } - tabList.remove(delete); - if (!(right || left)) { - if (API > 11) { - currentTab.onPause(); - } - currentTab.pauseTimers(); - clearCache(); - currentTab = null; - finish(); - } - uBar.bringToFront(); - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - } - - public void clearCache() { - if (settings.getBoolean("cache", false) && currentTab != null) { - currentTab.clearCache(true); - Log.i("Lightning", "Cache Cleared"); - - } - for (int n = 0; n < MAX_TABS; n++) { - if (main[n] != null) { - main[n].removeAllViews(); - main[n] = null; - } - } - } - - @Override - public void finish() { - background.clearDisappearingChildren(); - background.removeView(currentTab); - tabScroll.clearDisappearingChildren(); - super.finish(); - } - - @Override - protected void onDestroy() { - // TODO Auto-generated method stub - - super.onDestroy(); - } - - @Override - protected void onStop() { - // TODO Auto-generated method stub - - super.onStop(); - } - - void forward() { - ImageView forward = (ImageView) findViewById(R.id.forward); - forward.setBackgroundResource(R.drawable.button); - if (isPhone) { - RelativeLayout relativeLayout1 = (RelativeLayout) findViewById(R.id.relativeLayout1); - relativeLayout1.removeView(forward); - } - forward.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - if (currentTab.canGoForward()) { - currentTab.goForward(); - } - } - - }); - } - - @SuppressLint("InlinedApi") - private void initialize() { - - tabList = new ArrayList(); - bUrl = new String[MAX_BOOKMARKS]; - bTitle = new String[MAX_BOOKMARKS]; - main = new CustomWebView[MAX_TABS]; - urlTitle = new TextView[MAX_TABS]; - urlToLoad = new String[MAX_TABS][2]; - fullScreen = false; - DisplayMetrics metrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(metrics); - historyHandler = new DatabaseHandler(this); - cookieManager = CookieManager.getInstance(); - CookieSyncManager.createInstance(mContext); - cookieManager.setAcceptCookie(settings.getBoolean("cookies", true)); - - progressBar = (ProgressBar) findViewById(R.id.progressBar1); - browserProgress = (ProgressBar) findViewById(R.id.progressBar); - browserProgress.setVisibility(View.GONE); - - if (API >= 11) { - progressBar.setIndeterminateDrawable(getResources().getDrawable( - R.drawable.ics_animation)); - } else { - progressBar.setIndeterminateDrawable(getResources().getDrawable( - R.drawable.ginger_animation)); - } - - showFullScreen = settings.getBoolean("fullscreen", false); - uBar = (RelativeLayout) findViewById(R.id.urlBar); - screen = (RelativeLayout) findViewById(R.id.background); - slideUp = AnimationUtils.loadAnimation(this, R.anim.slide_up); - slideDown = AnimationUtils.loadAnimation(this, R.anim.slide_down); - fadeOut = AnimationUtils.loadAnimation(this, android.R.anim.fade_out); - fadeOut.setDuration(250); - fadeIn = AnimationUtils.loadAnimation(this, android.R.anim.fade_in); - // mShortAnimationDuration = getResources().getInteger( - // android.R.integer.config_mediumAnimTime); - slideUp.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation arg0) { - uBar.setVisibility(View.GONE); - } - - @Override - public void onAnimationRepeat(Animation arg0) { - - } - - @Override - public void onAnimationStart(Animation arg0) { - - } - - }); - slideDown.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation animation) { - - } - - @Override - public void onAnimationRepeat(Animation animation) { - - } - - @Override - public void onAnimationStart(Animation animation) { - uBar.setVisibility(View.VISIBLE); - } - - }); - - RelativeLayout refreshLayout = (RelativeLayout) findViewById(R.id.refreshLayout); - refreshLayout.setBackgroundResource(R.drawable.button); - - // user agent - if (API < 17) { - user = new WebView(mContext).getSettings().getUserAgentString(); - } else { - user = WebSettings.getDefaultUserAgent(this); - } - - background = (FrameLayout) findViewById(R.id.holder); - defaultUser = user; // setting mobile user - // agent - switch (settings.getInt("search", 1)) { - case 0: - mSearch = settings.getString("searchurl", FinalVariables.GOOGLE_SEARCH); - if(!mSearch.startsWith("http://") && ! mSearch.startsWith("https://") ) { - mSearch = FinalVariables.GOOGLE_SEARCH; - } - break; - case 1: - mSearch = FinalVariables.GOOGLE_SEARCH; - break; - case 2: - mSearch = FinalVariables.BING_SEARCH; - break; - case 3: - mSearch = FinalVariables.YAHOO_SEARCH; - break; - case 4: - mSearch = FinalVariables.STARTPAGE_SEARCH; - break; - case 5: - mSearch = FinalVariables.DUCK_SEARCH; - break; - case 6: - mSearch = FinalVariables.BAIDU_SEARCH; - break; - case 7: - mSearch = FinalVariables.YANDEX_SEARCH; - break; - case 8: - mSearch = FinalVariables.DUCK_LITE_SEARCH; - break; - } - - exitTab = getResources().getDrawable(R.drawable.stop); // user - // agent - homepage = settings.getString("home", HOMEPAGE); // initializing - // the - // stored - // homepage - // variable - - gestures = settings.getBoolean("gestures", true); - - // initializing variables declared - - height = getResources().getDrawable(R.drawable.loading) - .getMinimumHeight(); - width = getResources().getDrawable(R.drawable.loading) - .getMinimumWidth(); - - // hides keyboard so it doesn't default pop up - this.getWindow().setSoftInputMode( - WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); - - // opens icondatabase so that favicons can be stored - WebIconDatabase.getInstance().open( - getDir("icons", MODE_PRIVATE).getPath()); - - // scroll view containing tabs - tabLayout = (LinearLayout) findViewById(R.id.tabLayout); - tabScroll = (HorizontalScrollView) findViewById(R.id.tabScroll); - tabScroll.setBackgroundColor(getResources().getColor(R.color.black)); - tabScroll.setHorizontalScrollBarEnabled(false); - if (API > 8) { - tabScroll.setOverScrollMode(View.OVER_SCROLL_NEVER); // disallow - // overscroll - } - - // image dimensions and initialization - final int dps = 175; - final float scale = getApplicationContext().getResources() - .getDisplayMetrics().density; - pixels = (int) (dps * scale + 0.5f); - leftPad = (int) (17 * scale + 0.5f); - rightPad = (int) (15 * scale + 0.5f); - height32 = (int) (32 * scale + 0.5f); - tenPad = (int) (10 * scale + 0.5f); - - webpageOther = getResources().getDrawable(R.drawable.webpage); - incognitoPage = getResources().getDrawable(R.drawable.incognito); - webpageOther.setBounds(0, 0, width / 2, height / 2); - incognitoPage.setBounds(0, 0, width / 2, height / 2); - exitTab.setBounds(0, 0, width * 2 / 3, height * 2 / 3); - - Thread startup = new Thread(new Runnable() { - - @Override - public void run() { - // restores old tabs or creates a new one - } - - }); - startup.run(); - reopenOldTabs(); - // new tab button - ImageView newTab = (ImageView) findViewById(R.id.newTab); - newTab.setBackgroundResource(R.drawable.button); - newTab.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Handler click = new NewTabHandler(); - click.sendEmptyMessage(1); - tabScroll.postDelayed(new Runnable() { - @Override - public void run() { - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - } - }, 100L); - - } - }); - newTab.setOnLongClickListener(new OnLongClickListener() { - - @Override - public boolean onLongClick(View v) { - if (settings.getString("oldPage", "").length() > 0) { - newTab(settings.getString("oldPage", ""), true); - edit.putString("oldPage", ""); - edit.commit(); - tabScroll.postDelayed(new Runnable() { - @Override - public void run() { - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), - 0); - } - }, 100L); - } - return true; - } - - }); - refresh = (ImageView) findViewById(R.id.refresh); - refreshLayout.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View arg0) { - - if (currentTab.getProgress() < 100) { - currentTab.stopLoading(); - } else { - currentTab.reload(); - } - } - - }); - - enterUrl(); - if (showFullScreen) { - toggleFullScreen(); - } - browserHandler = new Handle(); - - } - - private void newSettings() { - startActivity(new Intent(FinalVariables.SETTINGS_INTENT)); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, - Intent intent) { - if (requestCode == 1) { - if (null == mUploadMessage) - return; - Uri result = intent == null || resultCode != RESULT_OK ? null - : intent.getData(); - mUploadMessage.onReceiveValue(result); - mUploadMessage = null; - - } - } - - @Override - public void onBackPressed() { - try { - if (showFullScreen && !uBar.isShown()) { - uBar.startAnimation(slideDown); - } - if (currentTab.isShown() && currentTab.canGoBack()) { - currentTab.goBack(); - } else { - deleteTab(currentId); - uBar.bringToFront(); - } - } catch (NullPointerException ignored) { - } - return; - } - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - if (settings.getBoolean("textreflow", false)) { - currentTab.getSettings().setLayoutAlgorithm( - LayoutAlgorithm.NARROW_COLUMNS); - } else { - currentTab.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL); - } - - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); // displays main xml layout - mContext = this; - ACTIVITY = this; - settings = getSharedPreferences("settings", 0); - edit = settings.edit(); - - if (settings.getBoolean("hidestatus", false)) { - getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - if (settings.getBoolean("savetabs", true)) { - String mem = settings.getString("memory", ""); - edit.putString("memory", ""); - memoryURL = new String[MAX_TABS]; - memoryURL = getArray(mem); - } - - try { - LocationManager locationManager = (LocationManager) mContext - .getSystemService(Context.LOCATION_SERVICE); - if (locationManager.getAllProviders().contains( - LocationManager.GPS_PROVIDER)) { - DEVICE_HAS_GPS = true; - } - } catch (Exception ignored) { - DEVICE_HAS_GPS = false; - } - inactive = getResources().getDrawable(R.drawable.bg_inactive); - active = getResources().getDrawable(R.drawable.bg_press); - initialize(); // sets up random stuff - options(); // allows options to be opened - enter();// enter url bar - DisplayMetrics metrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(metrics); - - float widthInInches = metrics.widthPixels / metrics.xdpi; - float heightInInches = metrics.heightPixels / metrics.ydpi; - double sizeInInches = Math.sqrt(Math.pow(widthInInches, 2) - + Math.pow(heightInInches, 2)); - // 0.5" buffer for 7" devices - isPhone = sizeInInches < 6.5; - forward();// forward button - back(); - PackageInfo p; - int code = 0; - try { - p = getPackageManager().getPackageInfo(getPackageName(), 0); - code = p.versionCode; - } catch (NameNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - if (settings.getInt("first", 0) == 0) { - // navigation tips - String message = "1. Long-press back button to exit browser\n\n" - + "2. Swipe from left edge toward the right (---->) to go back\n\n" - + "3. Swipe from right edge toward the left (<----)to go forward\n\n" - + "4. Visit settings and advanced settings to change options\n\n" - + "5. Long-press on the new tab button to open the last closed tab"; - - Utils.createInformativeDialog(mContext, "Browser Tips", message); - edit.putInt("first", 1); - edit.putInt("version", code); - edit.commit(); - } else if (settings.getInt("version", code - 1) != code) { - edit.putInt("version", code); - edit.commit(); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.menu, menu); - - return true; - } - - /* - * (non-Javadoc) - * - * @see android.app.Activity#onKeyDown(int, android.view.KeyEvent) - */ - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - switch (keyCode) { - case KeyEvent.KEYCODE_SEARCH: { - getUrl.requestFocus(); - InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - manager.showSoftInput(getUrl, 0); - - break; - } - case KeyEvent.KEYCODE_F5: { - currentTab.reload(); - } - case KeyEvent.KEYCODE_ESCAPE: { - currentTab.stopLoading(); - } - case KeyEvent.KEYCODE_TAB: { - InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - if (!manager.isActive()) { - newTab(homepage, true); - } - - } - case KeyEvent.KEYCODE_F12: { - clearCache(); - finish(); - } - case KeyEvent.KEYCODE_F6: { - getUrl.selectAll(); - } - case KeyEvent.KEYCODE_F10: { - startActivity(new Intent(FinalVariables.SETTINGS_INTENT)); - } - case KeyEvent.KEYCODE_F11: { - toggleFullScreen(); - } - case KeyEvent.KEYCODE_DEL: { - InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - if (!manager.isActive()) { - currentTab.goBack(); - } - } - } - return super.onKeyDown(keyCode, event); - } - - @Override - public boolean onKeyLongPress(int keyCode, KeyEvent event) { - - if (keyCode == KeyEvent.KEYCODE_BACK) { - if (!settings.getBoolean("restoreclosed", true)) { - for (int n = 0; n < MAX_TABS; n++) { - urlToLoad[n][0] = null; - } - } - clearCache(); - finish(); - return true; - } else - return super.onKeyLongPress(keyCode, event); - } - - @Override - public void onLowMemory() { - for (int n = 0; n < MAX_TABS; n++) { - if (n != currentId && main[n] != null) { - main[n].freeMemory(); - } - } - super.onLowMemory(); - } - - @Override - protected void onNewIntent(Intent intent) { - - String url = intent.getDataString(); - int id = -1; - int download = -1; - try { - id = intent.getExtras().getInt("acr.browser.barebones.Origin") - 1; - } catch (NullPointerException e) { - id = -1; - } - try { - download = intent.getExtras().getInt( - "acr.browser.barebones.Download"); - } catch (NullPointerException e) { - download = -1; - } - if (id >= 0) { - main[id].loadUrl(url); - } else if (download == 1) { - Utils.downloadFile(mContext, url, null, null); - } else if (url != null) { - newTab(url, true); - } - - super.onNewIntent(intent); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - - switch (item.getItemId()) { - case R.id.history: - generateHistory(currentTab, mContext); - return true; - case R.id.bookmark: - if (urlToLoad[currentId][1] != null) { - if (!urlToLoad[currentId][1].equals("Bookmarks")) { - Utils.addBookmark(mContext, urlToLoad[currentId][1], - urlToLoad[currentId][0]); - } - } - return true; - case R.id.settings: - newSettings(); - return true; - case R.id.allBookmarks: - if (urlToLoad[currentId][1] == null) { - goBookmarks(mContext, currentTab); - } else if (!urlToLoad[currentId][1].equals("Bookmarks")) { - goBookmarks(mContext, currentTab); - } - - return true; - case R.id.share: - share(); - return true; - case R.id.incognito: - startActivity(new Intent(FinalVariables.INCOGNITO_INTENT)); - // newTab(number, homepage, true, true); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - protected void onPause() { - if(historyHandler != null){ - historyHandler.close(); - historyHandler = null; - } - if (currentTab != null) { - if (API >= 11) { - currentTab.onPause(); - for (int n = 0; n < MAX_TABS; n++) { - if (main[n] != null) - main[n].onPause(); - } - } - currentTab.pauseTimers(); - } - - Thread remember = new Thread(new Runnable() { - - @Override - public void run() { - String s = ""; - for (int n = 0; n < MAX_TABS; n++) { - if (urlToLoad[n][0] != null) { - s = s + urlToLoad[n][0] + "|$|SEPARATOR|$|"; - } - } - edit.putString("memory", s); - edit.commit(); - } - }); - remember.start(); - super.onPause(); - } - - @Override - protected void onResume() { - super.onResume(); - if(historyHandler == null){ - historyHandler = new DatabaseHandler(this); - } - if (currentTab != null) { - onProgressChanged(currentId, currentTab.getProgress()); - if (currentTab.getProgress() == 100) { - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - - } - if (API >= 11) { - currentTab.onResume(); - for (int n = 0; n < MAX_TABS; n++) { - if (main[n] != null) - main[n].onResume(); - } - } - } - gestures = settings.getBoolean("gestures", true); - currentTab.resumeTimers(); - reinitializeSettings(); - if (settings.getBoolean("fullscreen", false) != fullScreen) { - toggleFullScreen(); - } - - } - - private int x; - private int y; - private boolean xPress; - private Rect edge; - private final GestureDetector mGestureDetector = new GestureDetector( - mContext, new CustomGestureListener()); - - private class CustomGestureListener extends SimpleOnGestureListener { - @Override - public void onLongPress(MotionEvent e) { - deleteTab(id); - super.onLongPress(e); - } - } - - @Override - public boolean onTouch(View v, MotionEvent event) { - id = v.getId(); - try { - background.clearDisappearingChildren(); - xPress = false; - x = (int) event.getX(); - y = (int) event.getY(); - edge = new Rect(); - v.getDrawingRect(edge); - currentTabTitle.setPadding(leftPad, 0, rightPad, 0); - if (event.getAction() == MotionEvent.ACTION_DOWN) { - } else if (event.getAction() == MotionEvent.ACTION_UP) { - - if (x >= (edge.right - bounds.width() - v.getPaddingRight() - 10 * 3 / 2) - && x <= (edge.right - v.getPaddingRight() + 10 * 3 / 2) - && y >= (v.getPaddingTop() - 10 / 2) - && y <= (v.getHeight() - v.getPaddingBottom() + 10 / 2)) { - xPress = true; - } - if (id == currentId) { - if (xPress) { - deleteTab(id); - uBar.bringToFront(); - } - } else if (id != currentId) { - if (xPress) { - deleteTab(id); - } else { - if (API < 16) { - currentTabTitle.setBackgroundDrawable(inactive); - } else if (API > 15) { - currentTabTitle.setBackground(inactive); - } - currentTabTitle.setPadding(leftPad, 0, rightPad, 0); - if (!showFullScreen) { - background.addView(main[id]); - main[id].startAnimation(fadeIn); - currentTab.startAnimation(fadeOut); - background.removeView(currentTab); - uBar.bringToFront(); - } else if (API >= 12) { - main[id].setAlpha(0f); - background.addView(main[id]); - try { - main[id].animate().alpha(1f).setDuration(250); - } catch (NullPointerException ignored) { - } - background.removeView(currentTab); - uBar.bringToFront(); - } else { - background.removeView(currentTab); - background.addView(main[id]); - } - uBar.bringToFront(); - - currentId = id; - currentTab = main[id]; - currentTabTitle = urlTitle[id]; - setUrlText(urlToLoad[currentId][0]); - getUrl.setPadding(tenPad, 0, tenPad, 0); - if (API < 16) { - currentTabTitle.setBackgroundDrawable(active); - } else if (API > 15) { - currentTabTitle.setBackground(active); - } - if (currentTab.getProgress() < 100) { - refresh.setVisibility(View.INVISIBLE); - - progressBar.setVisibility(View.VISIBLE); - - } else { - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - } - onProgressChanged(currentId, currentTab.getProgress()); - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - currentTab.invalidate(); - } - } - - } - uBar.bringToFront(); - v.setPadding(leftPad, 0, rightPad, 0); - } catch (Exception e) { - e.printStackTrace(); - Log.e("Lightning Error", "Well we dun messed up"); - } - mGestureDetector.onTouchEvent(event); - return true; - } - - void options() { - ImageView options = (ImageView) findViewById(R.id.options); - options.setBackgroundResource(R.drawable.button); - options.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - - if (API >= 11) { - PopupMenu menu = new PopupMenu(mContext, v); - MenuInflater inflate = menu.getMenuInflater(); - inflate.inflate(R.menu.menu, menu.getMenu()); - menu.setOnMenuItemClickListener(new OnMenuItemClickListener() { - - @Override - public boolean onMenuItemClick(MenuItem item) { - - switch (item.getItemId()) { - case R.id.history: - generateHistory(currentTab, mContext); - return true; - case R.id.bookmark: - if (urlToLoad[currentId][1] != null) { - if (!urlToLoad[currentId][1] - .equals("Bookmarks")) { - Utils.addBookmark(mContext, - urlToLoad[currentId][1], - urlToLoad[currentId][0]); - } - } - return true; - case R.id.settings: - newSettings(); - return true; - case R.id.allBookmarks: - if (urlToLoad[currentId][1] == null) { - goBookmarks(mContext, currentTab); - } else if (!urlToLoad[currentId][1] - .equals("Bookmarks")) { - goBookmarks(mContext, currentTab); - } - return true; - case R.id.share: - share(); - return true; - case R.id.incognito: - startActivity(new Intent( - FinalVariables.INCOGNITO_INTENT)); - // newTab(number, homepage, true, true); - return true; - default: - return false; - } - - } - - }); - menu.show(); - } else if (API < 11) { - - openOptionsMenu(); - } - } - - }); - } - - void reopenOldTabs() { - Intent url = getIntent(); - String URL = url.getDataString(); - boolean oldTabs = false; - - if (settings.getBoolean("savetabs", true)) { - if (URL != null) { - // opens a new tab with the url if its there - int n = newTab(URL, true); - main[n].resumeTimers(); - oldTabs = true; - - } - boolean first = false; - for (String aMemoryURL : memoryURL) { - if (aMemoryURL.length() > 0) { - if (!first) { - int n = newTab("", !oldTabs); - main[n].resumeTimers(); - main[n].getSettings().setCacheMode( - WebSettings.LOAD_CACHE_ELSE_NETWORK); - main[n].loadUrl(aMemoryURL); - } else { - int n = newTab("", false); - main[n].getSettings().setCacheMode( - WebSettings.LOAD_CACHE_ELSE_NETWORK); - main[n].loadUrl(aMemoryURL); - } - oldTabs = true; - } - - } - - if (!oldTabs) { - int n = newTab(homepage, true); - main[n].resumeTimers(); - } - } else { - if (URL != null) { - // opens a new tab with the URL if its there - int n = newTab(URL, true); - main[n].resumeTimers(); - - } else { - // otherwise it opens the home-page - int n = newTab(homepage, true); - main[n].resumeTimers(); - - } - } - } -} \ No newline at end of file diff --git a/src/acr/browser/barebones/activities/IncognitoModeActivity.java b/src/acr/browser/barebones/activities/IncognitoModeActivity.java deleted file mode 100644 index 34e8585..0000000 --- a/src/acr/browser/barebones/activities/IncognitoModeActivity.java +++ /dev/null @@ -1,2158 +0,0 @@ -package acr.browser.barebones.activities; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import acr.browser.barebones.R; -import acr.browser.barebones.customwebview.IncognitoWebView; -import acr.browser.barebones.databases.DatabaseHandler; -import acr.browser.barebones.databases.SpaceTokenizer; -import acr.browser.barebones.utilities.BookmarkPageVariables; -import acr.browser.barebones.utilities.FinalVariables; -import acr.browser.barebones.utilities.HistoryPageVariables; -import acr.browser.barebones.utilities.Utils; -import acr.browser.barebones.incognitoclasses.IncognitoChromeClient; -import acr.browser.barebones.incognitoclasses.IncognitoDownloadListener; -import acr.browser.barebones.incognitoclasses.IncognitoWebViewClient; -import android.annotation.SuppressLint; -import android.app.Activity; -import android.app.AlertDialog; -import android.content.ClipData; -import android.content.ClipboardManager; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.res.Configuration; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteException; -import android.database.sqlite.SQLiteMisuseException; -import android.graphics.Bitmap; -import android.graphics.Rect; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.provider.Browser; -import android.text.TextUtils; -import android.util.DisplayMetrics; -import android.util.Log; -import android.view.GestureDetector; -import android.view.Gravity; -import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.MotionEvent; -import android.view.View; -import android.view.GestureDetector.SimpleOnGestureListener; -import android.view.View.OnClickListener; -import android.view.View.OnKeyListener; -import android.view.View.OnLongClickListener; -import android.view.View.OnTouchListener; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; -import android.view.animation.AnimationUtils; -import android.view.inputmethod.EditorInfo; -import android.view.inputmethod.InputMethodManager; -import android.webkit.CookieManager; -import android.webkit.CookieSyncManager; -import android.webkit.ValueCallback; -import android.webkit.WebChromeClient.CustomViewCallback; -import android.webkit.WebIconDatabase; -import android.webkit.WebSettings; -import android.webkit.WebSettings.LayoutAlgorithm; -import android.webkit.WebView; -import android.webkit.WebView.HitTestResult; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.EditText; -import android.widget.FrameLayout; -import android.widget.HorizontalScrollView; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.MultiAutoCompleteTextView; -import android.widget.PopupMenu; -import android.widget.PopupMenu.OnMenuItemClickListener; -import android.widget.ProgressBar; -import android.widget.RelativeLayout; -import android.widget.SimpleAdapter; -import android.widget.TextView; -import android.widget.TextView.OnEditorActionListener; - -@SuppressWarnings("deprecation") -public class IncognitoModeActivity extends Activity implements OnTouchListener { - - public static class ClickHandler extends Handler { - - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - String url = null; - url = msg.getData().getString("url"); - handleLongClickOnBookmarks(url, msg.arg1); - } - - } - - static class Handle extends Handler { - - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case 1: { - currentTab.loadUrl(getUrl.getText().toString()); - break; - } - case 2: { - // deleteTab(msg.arg1); - break; - } - case 3: { - currentTab.invalidate(); - break; - } - } - super.handleMessage(msg); - } - - } - - static class NewTabHandler extends Handler { - - @Override - public void handleMessage(Message msg) { - if (msg.what == 1) { - newTab(homepage, true); - } - super.handleMessage(msg); - } - - } - - private static IncognitoModeActivity ACTIVITY; - - private static int index = 0; - - // constants - public static final int MAX_TABS = FinalVariables.MAX_TABS; - - public static final int MAX_BOOKMARKS = FinalVariables.MAX_BOOKMARKS; - - // variables - - public static final boolean PAID_VERSION = FinalVariables.PAID_VERSION; - public static final String HOMEPAGE = FinalVariables.HOMEPAGE; - public static final int API = FinalVariables.API; - public static final String SEPARATOR = "\\|\\$\\|SEPARATOR\\|\\$\\|"; - // semi constants - public static Context mContext; - public static String SEARCH; - - public static List tabList; - // variables - public static IncognitoWebView currentTab; - public static TextView currentTabTitle; - - public static MultiAutoCompleteTextView getUrl; - public static TextView[] urlTitle; - public static ProgressBar browserProgress; - public static IncognitoWebView[] main; - public static Rect bounds; - public static long timeTabPressed; - public static boolean fullScreen; - public static int[] tabOrder = new int[MAX_TABS]; - public static ValueCallback mUploadMessage; - public static ImageView refresh; - public static ProgressBar progressBar; - public static String defaultUser; - public static Drawable incognitoPage; - public static Drawable exitTab; - public static long loadTime = 0; - public static int currentId = 0; - public static int height32; - public static int height; - public static int width; - public static int pixels; - public static int leftPad; - public static int rightPad; - public static int id; - public static int tenPad; - public static boolean isPhone = false; - public static boolean showFullScreen = false; - public static boolean noStockBrowser = true; - public static SharedPreferences settings; - public static SharedPreferences.Editor edit; - public static String user; - public static String[] bUrl; - public static String[] bTitle; - public static String[] columns; - public static String homepage; - public static String[][] urlToLoad; - public static FrameLayout background; - public static RelativeLayout uBar; - public static RelativeLayout screen; - public static HorizontalScrollView tabScroll; - public static Animation slideUp; - public static Animation slideDown; - public static Animation fadeOut; - public static Animation fadeIn; - public static CookieManager cookieManager; - public static Uri bookmarks; - public static Handler handler, browserHandler; - public static DatabaseHandler historyHandler; - public static Drawable inactive; - public static Drawable active; - public static LinearLayout tabLayout; - - // creates the tab and returns the ID of the view - public static int createTab(String theUrl, boolean display) { - int id = -1; - for (int n = 0; n < MAX_TABS; n++) { - if (main[n] == null) { - id = n; - break; - } - } - if (id != -1) { - if (tabList.size() > 0) { - if (display) { - if (API < 16) { - currentTabTitle.setBackgroundDrawable(inactive); - } else { - currentTabTitle.setBackground(inactive); - } - currentTabTitle.setPadding(leftPad, 0, rightPad, 0); - } - } - final TextView title = new TextView(mContext); - title.setText(mContext.getResources().getString(R.string.action_new_tab)); - if (display) { - if (API < 16) { - title.setBackgroundDrawable(active); - } else { - title.setBackground(active); - } - } else { - if (API < 16) { - title.setBackgroundDrawable(inactive); - } else { - title.setBackground(inactive); - } - } - title.setSingleLine(true); - title.setGravity(Gravity.CENTER_VERTICAL); - title.setHeight(height32); - title.setWidth(pixels); - title.setPadding(leftPad, 0, rightPad, 0); - title.setId(id); - title.setGravity(Gravity.CENTER_VERTICAL); - - title.setCompoundDrawables(incognitoPage, null, exitTab, null); - - Drawable[] drawables = title.getCompoundDrawables(); - bounds = drawables[2].getBounds(); - title.setOnTouchListener(ACTIVITY); - Animation holo = AnimationUtils.loadAnimation(mContext, R.anim.up); - tabLayout.addView(title); - title.setVisibility(View.INVISIBLE); - holo.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation animation) { - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - - @Override - public void onAnimationStart(Animation animation) { - title.setVisibility(View.VISIBLE); - } - - }); - title.startAnimation(holo); - urlTitle[id] = title; - - urlTitle[id].setText(mContext.getResources().getString(R.string.action_new_tab)); - - if (theUrl != null) { - main[id] = generateTab(id, theUrl, display); - } else { - main[id] = generateTab(id, homepage, display); - } - - } else { - Utils.showToast(mContext, "Max number of tabs reached"); - } - return id; - } - - public static void deleteBookmark(String url) { - File book = new File(mContext.getFilesDir(), "bookmarks"); - File bookUrl = new File(mContext.getFilesDir(), "bookurl"); - int n = 0; - try { - BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book)); - BufferedWriter urlWriter = new BufferedWriter(new FileWriter( - bookUrl)); - while (bUrl[n] != null && n < (MAX_BOOKMARKS - 1)) { - if (!bUrl[n].equalsIgnoreCase(url)) { - bookWriter.write(bTitle[n]); - urlWriter.write(bUrl[n]); - bookWriter.newLine(); - urlWriter.newLine(); - } - n++; - } - bookWriter.close(); - urlWriter.close(); - } catch (FileNotFoundException e) { - } catch (IOException e) { - } - for (int p = 0; p < MAX_BOOKMARKS; p++) { - bUrl[p] = null; - bTitle[p] = null; - } - try { - BufferedReader readBook = new BufferedReader(new FileReader(book)); - BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); - String t, u; - int z = 0; - while ((t = readBook.readLine()) != null - && (u = readUrl.readLine()) != null && z < MAX_BOOKMARKS) { - bUrl[z] = u; - bTitle[z] = t; - z++; - } - readBook.close(); - readUrl.close(); - } catch (IOException ignored) { - } - openBookmarks(mContext, currentTab); - } - - public static void generateHistory(final IncognitoWebView view, - final Context context) { - - Thread history = new Thread(new Runnable() { - - @Override - public void run() { - String historyHtml = HistoryPageVariables.Heading; - Cursor historyCursor = null; - String[][] h = new String[50][3]; - - try { - SQLiteDatabase s = historyHandler.getReadableDatabase(); - historyCursor = s.query("history", // URI - // of - columns, // Which columns to return - null, // Which rows to return (all rows) - null, // Selection arguments (none) - null, null, null); - - handler.sendEmptyMessage(1); - - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - - try { - if (historyCursor != null) { - if (historyCursor.moveToLast()) { - // Variable for holding the retrieved URL - int urlColumn = historyCursor.getColumnIndex("url"); - int titleColumn = historyCursor - .getColumnIndex("title"); - // Reference to the the column containing the URL - int n = 0; - do { - - h[n][0] = historyCursor.getString(urlColumn); - h[n][2] = h[n][0].substring(0, - Math.min(100, h[n][0].length())) - + "..."; - h[n][1] = historyCursor.getString(titleColumn); - historyHtml += (HistoryPageVariables.Part1 - + h[n][0] + HistoryPageVariables.Part2 - + h[n][1] + HistoryPageVariables.Part3 - + h[n][2] + HistoryPageVariables.Part4); - n++; - } while (n < 49 && historyCursor.moveToPrevious()); - } - } - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - - historyHtml += BookmarkPageVariables.End; - File historyWebPage = new File(context.getFilesDir(), - "history.html"); - try { - FileWriter hWriter = new FileWriter(historyWebPage, false); - hWriter.write(historyHtml); - hWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - if (uBar.isShown()) { - currentTabTitle.setText("History"); - setUrlText(""); - getUrl.setPadding(tenPad, 0, tenPad, 0); - } - - view.loadUrl("file://" + historyWebPage); - } - - }); - history.run(); - } - - public static IncognitoWebView generateTab(final int pageToView, - String Url, final boolean display) { - IncognitoWebView view = new IncognitoWebView(mContext); - view.setId(pageToView); - view.setWebViewClient(new IncognitoWebViewClient(ACTIVITY)); - view.setWebChromeClient(new IncognitoChromeClient(ACTIVITY)); - if (API > 8) { - view.setDownloadListener(new IncognitoDownloadListener(ACTIVITY)); - } - main[pageToView] = view; - if (display) { - if (currentId != -1) { - background.removeView(currentTab); - } - background.addView(view); - view.requestFocus(); - currentId = pageToView; - currentTab = main[pageToView]; - currentTabTitle = urlTitle[pageToView]; - } - uBar.bringToFront(); - if (Url.contains("about:home")) { - goBookmarks(mContext, view); - } else if (Url.contains("about:blank")) { - view.loadUrl(""); - } else { - view.loadUrl(Url); - } - Log.i("Browser", "tab complete"); - return view; - } - - public static void goBack(IncognitoWebView view) { - if (view.isShown() && view.canGoBack()) { - view.goBack(); - } - Animation left = AnimationUtils.loadAnimation(mContext, R.anim.left); - background.startAnimation(left); - - } - - static void goBookmarks(Context context, IncognitoWebView view) { - File book = new File(context.getFilesDir(), "bookmarks"); - File bookUrl = new File(context.getFilesDir(), "bookurl"); - try { - BufferedReader readBook = new BufferedReader(new FileReader(book)); - BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); - String t, u; - int n = 0; - while ((t = readBook.readLine()) != null - && (u = readUrl.readLine()) != null && n < MAX_BOOKMARKS) { - bUrl[n] = u; - bTitle[n] = t; - - n++; - } - readBook.close(); - readUrl.close(); - } catch (FileNotFoundException ignored) { - } catch (IOException ignored) { - } - openBookmarks(context, view); - } - - public static void goForward(IncognitoWebView view) { - if (view.isShown() && view.canGoForward()) { - view.goForward(); - } - Animation right = AnimationUtils.loadAnimation(mContext, R.anim.right); - background.startAnimation(right); - } - - public static void handleLongClickOnBookmarks(final String clickedURL, - final int n) { - if (clickedURL != null) { - - DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { - case DialogInterface.BUTTON_POSITIVE: { - renameBookmark(clickedURL); - break; - } - case DialogInterface.BUTTON_NEGATIVE: { - main[n].loadUrl(clickedURL); - break; - } - case DialogInterface.BUTTON_NEUTRAL: { - deleteBookmark(clickedURL); - break; - } - } - } - }; - - AlertDialog.Builder builder = new AlertDialog.Builder(mContext); // dialog - builder.setMessage(mContext.getResources().getString(R.string.dialog_bookmark)) - .setPositiveButton(mContext.getResources().getString(R.string.action_edit), dialogClickListener) - .setNegativeButton(mContext.getResources().getString(R.string.action_open), dialogClickListener) - .setNeutralButton(mContext.getResources().getString(R.string.action_delete), dialogClickListener).show(); - } - } - - public static int newId() { - - Random n = new Random(); - int id = n.nextInt(); - - while (tabList.contains(id)) { - id = n.nextInt(); - } - return id; - } - - // new tab method, takes the id of the tab to be created and the url to load - public static int newTab(final String theUrl, final boolean display) { - Log.i("Browser", "making tab"); - homepage = settings.getString("home", HOMEPAGE); - int finalID = createTab(theUrl, display); - if (finalID != -1) { - tabList.add(finalID); - if (display) { - currentId = finalID; - currentTab = main[finalID]; - currentTabTitle = urlTitle[finalID]; - } - - return finalID; - } else { - return 0; - } - } - - public static void onCreateWindow(Message resultMsg) { - newTab("", true); - WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; - transport.setWebView(currentTab); - resultMsg.sendToTarget(); - browserHandler.postDelayed(new Runnable() { - @Override - public void run() { - currentTab.loadUrl(getUrl.getText().toString()); - } - }, 500); - } - - public static void onHideCustomView(FrameLayout fullScreenContainer, - CustomViewCallback mCustomViewCallback, int orientation) { - if (!settings.getBoolean("hidestatus", false)) { - ACTIVITY.getWindow().clearFlags( - WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); - } - FrameLayout screen = (FrameLayout) ACTIVITY.getWindow().getDecorView(); - screen.removeView(fullScreenContainer); - fullScreenContainer = null; - //causing video crashes - //mCustomViewCallback.onCustomViewHidden(); - ACTIVITY.setRequestedOrientation(orientation); - background.addView(currentTab); - uBar.setVisibility(View.VISIBLE); - uBar.bringToFront(); - } - - private static Message click; - - public static boolean onLongClick() { - int n = currentId; - if (currentId == -1 || currentTab == null) { - return true; - } - final HitTestResult result = currentTab.getHitTestResult(); - - if (currentTab.getUrl().contains( - "file://" + mContext.getFilesDir() + "/bookmarks.html")) { - click = new Message(); - click.arg1 = n; - click.setTarget(new ClickHandler()); - currentTab.requestFocusNodeHref(click); - - return true; - } else if (result != null) { - if (result.getExtra() != null) { - if (result.getType() == 5 && API > 8) { - DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { - case DialogInterface.BUTTON_POSITIVE: { - int num = currentId; - newTab(result.getExtra(), false); - // urlTitle[num].performClick(); - currentId = num; - currentTab = main[num]; - currentTabTitle = urlTitle[num]; - break; - } - case DialogInterface.BUTTON_NEGATIVE: { - currentTab.loadUrl(result.getExtra()); - break; - } - case DialogInterface.BUTTON_NEUTRAL: { - if (API > 8) { - String url = result.getExtra(); - - Utils.downloadFile(mContext, url, null, null); - - } - break; - } - } - } - }; - - AlertDialog.Builder builder = new AlertDialog.Builder( - mContext); // dialog - builder.setMessage( - mContext.getResources().getString(R.string.dialog_image)) - .setPositiveButton(mContext.getResources().getString(R.string.action_new_tab), - dialogClickListener) - .setNegativeButton(mContext.getResources().getString(R.string.action_open), - dialogClickListener) - .setNeutralButton(mContext.getResources().getString(R.string.action_download), - dialogClickListener).show(); - - } else { - DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { - case DialogInterface.BUTTON_POSITIVE: { - int num = currentId; - newTab(result.getExtra(), false); - currentId = num; - currentTab = main[num]; - currentTabTitle = urlTitle[num]; - break; - } - case DialogInterface.BUTTON_NEGATIVE: { - currentTab.loadUrl(result.getExtra()); - break; - } - case DialogInterface.BUTTON_NEUTRAL: { - if (API < 11) { - android.text.ClipboardManager clipboard = (android.text.ClipboardManager) ACTIVITY - .getSystemService(Context.CLIPBOARD_SERVICE); - clipboard.setText(result.getExtra()); - } else { - ClipboardManager clipboard = (ClipboardManager) ACTIVITY - .getSystemService(CLIPBOARD_SERVICE); - ClipData clip = ClipData.newPlainText( - "label", result.getExtra()); - clipboard.setPrimaryClip(clip); - } - break; - } - } - } - }; - - AlertDialog.Builder builder = new AlertDialog.Builder( - mContext); // dialog - builder.setTitle(result.getExtra()) - .setMessage( - mContext.getResources().getString(R.string.dialog_link)) - .setPositiveButton(mContext.getResources().getString(R.string.action_new_tab), - dialogClickListener) - .setNegativeButton(mContext.getResources().getString(R.string.action_open), - dialogClickListener) - .setNeutralButton(mContext.getResources().getString(R.string.action_copy), dialogClickListener) - .show(); - } - } - return true; - - } else { - return false; - } - } - - public static void onPageFinished(WebView view, String url) { - if (view.isShown()) { - view.invalidate(); - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - - if (showFullScreen && uBar.isShown()) { - uBar.startAnimation(slideUp); - } - } - view.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); - Log.i("Lightning", "Page Finished"); - loadTime = System.currentTimeMillis() - loadTime; - Log.i("Lightning", "Load Time: " + loadTime); - } - - private static int numberPage; - - public static void onPageStarted(WebView view, String url, Bitmap favicon) { - Log.i("Lightning", "Page Started"); - loadTime = System.currentTimeMillis(); - numberPage = view.getId(); - - if (url.startsWith("file://")) { - view.getSettings().setUseWideViewPort(false); - } else { - view.getSettings().setUseWideViewPort( - settings.getBoolean("wideviewport", true)); - } - - if (view.isShown()) { - refresh.setVisibility(View.INVISIBLE); - progressBar.setVisibility(View.VISIBLE); - setUrlText(url); - } - - urlTitle[numberPage].setCompoundDrawables(incognitoPage, null, exitTab, - null); - if (favicon != null) { - setFavicon(view.getId(), favicon); - } - - getUrl.setPadding(tenPad, 0, tenPad, 0); - urlToLoad[numberPage][0] = url; - - if (!uBar.isShown() && showFullScreen) { - uBar.startAnimation(slideDown); - } - } - - public static void onProgressChanged(int id, int progress) { - if (id == currentId) { - browserProgress.setProgress(progress); - if (progress < 100) { - browserProgress.setVisibility(View.VISIBLE); - } else { - browserProgress.setVisibility(View.GONE); - } - } - } - - public static void onReceivedTitle(int numberPage, String title) { - if (title != null && title.length() != 0) { - urlTitle[numberPage].setText(title); - urlToLoad[numberPage][1] = title; - } - } - - public static void onShowCustomView() { - ACTIVITY.getWindow().setFlags( - WindowManager.LayoutParams.FLAG_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FULLSCREEN); - background.removeView(currentTab); - uBar.setVisibility(View.GONE); - } - - static void openBookmarks(Context context, IncognitoWebView view) { - String bookmarkHtml = BookmarkPageVariables.Heading; - - for (int n = 0; n < MAX_BOOKMARKS; n++) { - if (bUrl[n] != null) { - bookmarkHtml += (BookmarkPageVariables.Part1 + bUrl[n] - + BookmarkPageVariables.Part2 + bUrl[n] - + BookmarkPageVariables.Part3 + bTitle[n] + BookmarkPageVariables.Part4); - } - } - bookmarkHtml += BookmarkPageVariables.End; - File bookmarkWebPage = new File(context.getFilesDir(), "bookmarks.html"); - try { - FileWriter bookWriter = new FileWriter(bookmarkWebPage, false); - bookWriter.write(bookmarkHtml); - bookWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - view.loadUrl("file://" + bookmarkWebPage); - - if (uBar.isShown()) { - currentTabTitle.setText("Bookmarks"); - setUrlText(""); - getUrl.setPadding(tenPad, 0, tenPad, 0); - } - - } - - public static void openFileChooser(ValueCallback uploadMsg) { - mUploadMessage = uploadMsg; - Intent i = new Intent(Intent.ACTION_GET_CONTENT); - i.addCategory(Intent.CATEGORY_OPENABLE); - i.setType("*/*"); - ACTIVITY.startActivityForResult( - Intent.createChooser(i, "File Chooser"), 1); - } - - public static void reinitializeSettings() { - int size = tabList.size(); - for (int n = 0; n < size; n++) { - main[tabList.get(n)].settingsInitialization(mContext); - } - } - - public static void renameBookmark(String url) { - index = 0; - for (int n = 0; n < MAX_BOOKMARKS; n++) { - if (bUrl[n] != null) { - if (bUrl[n].equalsIgnoreCase(url)) { - index = n; - break; - } - } - } - - final AlertDialog.Builder homePicker = new AlertDialog.Builder(mContext); - homePicker.setTitle(mContext.getResources().getString(R.string.title_edit_bookmark)); - final EditText getText = new EditText(mContext); - getText.setText(bTitle[index]); - - homePicker.setView(getText); - homePicker.setPositiveButton(mContext.getResources().getString(R.string.action_ok), - new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - bTitle[index] = getText.getText().toString(); - File book = new File(mContext.getFilesDir(), "bookmarks"); - File bookUrl = new File(mContext.getFilesDir(), - "bookurl"); - int n = 0; - try { - BufferedWriter bookWriter = new BufferedWriter( - new FileWriter(book)); - BufferedWriter urlWriter = new BufferedWriter( - new FileWriter(bookUrl)); - while (bUrl[n] != null && n < (MAX_BOOKMARKS - 1)) { - bookWriter.write(bTitle[n]); - urlWriter.write(bUrl[n]); - bookWriter.newLine(); - urlWriter.newLine(); - n++; - } - bookWriter.close(); - urlWriter.close(); - } catch (FileNotFoundException e) { - } catch (IOException e) { - } - for (int p = 0; p < MAX_BOOKMARKS; p++) { - bUrl[p] = null; - bTitle[p] = null; - } - try { - BufferedReader readBook = new BufferedReader( - new FileReader(book)); - BufferedReader readUrl = new BufferedReader( - new FileReader(bookUrl)); - String t, u; - int z = 0; - while ((t = readBook.readLine()) != null - && (u = readUrl.readLine()) != null - && z < MAX_BOOKMARKS) { - bUrl[z] = u; - bTitle[z] = t; - z++; - } - readBook.close(); - readUrl.close(); - } catch (IOException ignored) { - } - openBookmarks(mContext, currentTab); - } - }); - homePicker.show(); - - } - - static void searchTheWeb(String query, Context context) { - query = query.trim(); - currentTab.stopLoading(); - - if (query.startsWith("www.")) { - query = "http://" + query; - } else if (query.startsWith("ftp.")) { - query = "ftp://" + query; - } - - boolean containsPeriod = query.contains("."); - boolean isIPAddress = (TextUtils.isDigitsOnly(query.replace(".", "")) && (query - .replace(".", "").length() >= 4)); - boolean aboutScheme = query.contains("about:"); - boolean validURL = (query.startsWith("ftp://") - || query.startsWith("http://") || query.startsWith("file://") || query - .startsWith("https://")) || isIPAddress; - boolean isSearch = ((query.contains(" ") || !containsPeriod) && !aboutScheme); - - if (query.contains("about:home") || query.contains("about:bookmarks")) { - goBookmarks(context, currentTab); - } else if (query.contains("about:history")) { - generateHistory(currentTab, context); - } else if (isSearch) { - try { - URLEncoder.encode(query, "UTF-8"); - } catch (UnsupportedEncodingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - currentTab.loadUrl(SEARCH + query); - } else if (!validURL) { - currentTab.loadUrl("http://" + query); - } else { - currentTab.loadUrl(query); - } - } - - public static void setFavicon(int id, Bitmap favicon) { - Drawable icon; - icon = new BitmapDrawable(null, favicon); - icon.setBounds(0, 0, width / 2, height / 2); - urlTitle[id].setCompoundDrawables(incognitoPage, null, exitTab, null); - - } - - public static void setUrlText(String url) { - if (url != null) { - if (!url.startsWith("file://")) { - getUrl.setText(url); - } else { - getUrl.setText(""); - } - } - } - - static void share() { - Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); - - // set the type - shareIntent.setType("text/plain"); - - // add a subject - shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, - urlToLoad[currentId][1]); - - // build the body of the message to be shared - String shareMessage = urlToLoad[currentId][0]; - - // add the message - shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareMessage); - - // start the chooser for sharing - mContext.startActivity(Intent.createChooser(shareIntent, - mContext.getResources().getString(R.string.dialog_title_share))); - } - - public static void toggleFullScreen() { - showFullScreen = settings.getBoolean("fullscreen", false); - IncognitoWebView.showFullScreen = showFullScreen; - if (fullScreen) { - background.removeView(uBar); - screen.addView(uBar); - fullScreen = false; - } else { - screen.removeView(uBar); - background.addView(uBar); - fullScreen = true; - } - } - - void back() { - ImageView exit = (ImageView) findViewById(R.id.exit); - exit.setBackgroundResource(R.drawable.button); - if (isPhone) { - RelativeLayout relativeLayout1 = (RelativeLayout) findViewById(R.id.relativeLayout1); - relativeLayout1.removeView(exit); - } - exit.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - - if (currentTab.canGoBack()) { - currentTab.goBack(); - } else { - deleteTab(currentId); - } - - } - - }); - exit.setOnLongClickListener(new OnLongClickListener() { - - @Override - public boolean onLongClick(View v) { - clearCache(); - finish(); - return true; - } - - }); - - } - - void deleteTab(final int del) { - if (API >= 11) { - main[del].onPause(); - } - main[del].stopLoading(); - main[del].clearHistory(); - main[del].setVisibility(View.GONE); - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - edit.putString("oldPage", urlToLoad[del][0]); - edit.commit(); - urlToLoad[del][0] = null; - urlToLoad[del][1] = null; - if (API < 16) { - urlTitle[del].setBackgroundDrawable(active); - } else { - urlTitle[del].setBackground(active); - } - - urlTitle[del].setPadding(leftPad, 0, rightPad, 0); - Animation yolo = AnimationUtils.loadAnimation(this, R.anim.down); - yolo.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation animation) { - // urlTitle[del].setVisibility(View.GONE); - tabLayout.post(new Runnable() { - - @Override - public void run() { - tabLayout.removeView(urlTitle[del]); - } - - }); - findNewView(del); - if (main[del] != null) { - if (API > 11) { - main[del].onPause(); - } - if (main[del].isShown()) { - background.removeView(main[del]); - } - main[del].removeAllViews(); - main[del] = null; - } - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - - @Override - public void onAnimationStart(Animation animation) { - } - - }); - urlTitle[del].startAnimation(yolo); - uBar.bringToFront(); - } - - void enter() { - getUrl.setOnKeyListener(new OnKeyListener() { - - @Override - public boolean onKey(View arg0, int arg1, KeyEvent arg2) { - - switch (arg1) { - case KeyEvent.KEYCODE_ENTER: - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); - searchTheWeb(getUrl.getText().toString(), mContext); - return true; - default: - break; - } - return false; - } - - }); - getUrl.setOnEditorActionListener(new OnEditorActionListener() { - - @Override - public boolean onEditorAction(TextView arg0, int actionId, - KeyEvent arg2) { - if (actionId == EditorInfo.IME_ACTION_GO - || actionId == EditorInfo.IME_ACTION_DONE - || actionId == EditorInfo.IME_ACTION_NEXT - || actionId == EditorInfo.IME_ACTION_SEND - || actionId == EditorInfo.IME_ACTION_SEARCH - || (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) { - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); - searchTheWeb(getUrl.getText().toString(), mContext); - return true; - } - return false; - } - - }); - } - - static List> getBookmarks() { - List> bookmarks = new ArrayList>(); - File bookUrl = new File(mContext.getFilesDir(), "bookurl"); - File book = new File(mContext.getFilesDir(), "bookmarks"); - try { - BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); - BufferedReader readBook = new BufferedReader(new FileReader(book)); - String u, t; - while ((u = readUrl.readLine()) != null - && (t = readBook.readLine()) != null) { - Map map = new HashMap(); - map.put("title", '\u2605' + " " + t); - map.put("url", u); - bookmarks.add(map); - } - readBook.close(); - readUrl.close(); - } catch (FileNotFoundException ignored) { - } catch (IOException ignored) { - } - return bookmarks; - } - - @SuppressLint("HandlerLeak") - void enterUrl() { - getUrl = (MultiAutoCompleteTextView) findViewById(R.id.enterUrl); - getUrl.setPadding(tenPad, 0, tenPad, 0); - getUrl.setTextColor(getResources().getColor(android.R.color.black)); - getUrl.setPadding(tenPad, 0, tenPad, 0); - getUrl.setBackgroundResource(R.drawable.book); - getUrl.setPadding(tenPad, 0, tenPad, 0); - final List> list = new ArrayList>(); - List> books = getBookmarks(); - Iterator> it = books.iterator(); - while (it.hasNext()) { - list.add(it.next()); - } - handler = new Handler() { - - @Override - public void handleMessage(Message msg) { - - switch (msg.what) { - case 1: { - SimpleAdapter adapter = new SimpleAdapter(mContext, list, - R.layout.two_line_autocomplete, new String[] { - "title", "url" }, new int[] { R.id.title, - R.id.url }); - - getUrl.setAdapter(adapter); - - break; - } - case 2: { - - break; - } - } - } - }; - - Thread updateAutoComplete = new Thread(new Runnable() { - - @Override - public void run() { - - Cursor c = null; - Cursor managedCursor = null; - columns = new String[] { "url", "title" }; - try { - - bookmarks = Browser.BOOKMARKS_URI; - c = getContentResolver().query(bookmarks, columns, null, - null, null); - } catch (SQLiteException ignored) { - } catch (IllegalStateException ignored) { - } catch (NullPointerException ignored) { - } - - if (c != null) { - noStockBrowser = false; - Log.i("Browser", "detected AOSP browser"); - } else { - noStockBrowser = true; - Log.e("Browser", "did not detect AOSP browser"); - } - if (c != null) { - c.close(); - } - try { - - managedCursor = null; - SQLiteDatabase s = historyHandler.getReadableDatabase(); - managedCursor = s.query("history", // URI - // of - columns, // Which columns to return - null, // Which rows to return (all rows) - null, // Selection arguments (none) - null, null, null); - - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - - try { - if (managedCursor != null) { - - if (managedCursor.moveToLast()) { - - // Variable for holding the retrieved URL - - int urlColumn = managedCursor.getColumnIndex("url"); - int titleColumn = managedCursor - .getColumnIndex("title"); - // Reference to the the column containing the URL - do { - String urlA = managedCursor - .getString(urlColumn); - String title = managedCursor - .getString(titleColumn); - Map map = new HashMap(); - map.put("title", title); - map.put("url", urlA); - list.add(map); - } while (managedCursor.moveToPrevious()); - } - } - handler.sendEmptyMessage(1); - } catch (SQLiteException ignored) { - } catch (NullPointerException ignored) { - } catch (IllegalStateException ignored) { - } - managedCursor.close(); - } - - }); - try { - updateAutoComplete.start(); - } catch (NullPointerException ignored) { - } catch (SQLiteMisuseException ignored) { - } catch (IllegalStateException ignored) { - } - - getUrl.setThreshold(1); - getUrl.setTokenizer(new SpaceTokenizer()); - getUrl.setOnItemClickListener(new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView arg0, View arg1, int arg2, - long arg3) { - try { - String url; - url = ((TextView) arg1.findViewById(R.id.url)).getText() - .toString(); - getUrl.setText(url); - searchTheWeb(url, mContext); - url = null; - getUrl.setPadding(tenPad, 0, tenPad, 0); - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); - } catch (NullPointerException e) { - Log.e("Browser Error: ", - "NullPointerException on item click"); - } - } - - }); - - getUrl.setSelectAllOnFocus(true); // allows edittext to select all when - // clicked - } - - void findNewView(int id) { - int delete = tabList.indexOf(id); - int leftId = id; - boolean right = false, left = false; - if (id == currentId) { - - if (main[id].isShown()) { - main[id].startAnimation(fadeOut); - background.removeView(main[id]); - uBar.bringToFront(); - } - - if (tabList.size() > delete + 1) { - id = tabList.get(delete + 1); - if (urlTitle[id].isShown()) { - background.addView(main[id]); - main[id].setVisibility(View.VISIBLE); - uBar.bringToFront(); - if (API < 16) { - urlTitle[id].setBackgroundDrawable(active); - } else { - urlTitle[id].setBackground(active); - } - urlTitle[id].setPadding(leftPad, 0, rightPad, 0); - currentId = id; - currentTab = main[id]; - currentTabTitle = urlTitle[id]; - setUrlText(urlToLoad[currentId][0]); - getUrl.setPadding(tenPad, 0, tenPad, 0); - right = true; - if (main[id].getProgress() < 100) { - onProgressChanged(id, main[id].getProgress()); - refresh.setVisibility(View.INVISIBLE); - progressBar.setVisibility(View.VISIBLE); - } else { - onProgressChanged(id, main[id].getProgress()); - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - } - // break; - } - - } - if (!right) { - if (delete > 0) { - leftId = tabList.get(delete - 1); - if (urlTitle[leftId].isShown()) { - background.addView(main[leftId]); - main[leftId].setVisibility(View.VISIBLE); - // uBar.bringToFront(); - if (API < 16) { - urlTitle[leftId].setBackgroundDrawable(active); - } else { - urlTitle[leftId].setBackground(active); - } - urlTitle[leftId].setPadding(leftPad, 0, rightPad, 0); - currentId = leftId; - currentTab = main[leftId]; - currentTabTitle = urlTitle[leftId]; - setUrlText(urlToLoad[currentId][0]); - getUrl.setPadding(tenPad, 0, tenPad, 0); - left = true; - if (main[leftId].getProgress() < 100) { - refresh.setVisibility(View.INVISIBLE); - progressBar.setVisibility(View.VISIBLE); - onProgressChanged(leftId, - main[leftId].getProgress()); - } else { - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - onProgressChanged(leftId, - main[leftId].getProgress()); - } - // break; - } - - } - - } - - } else { - right = left = true; - } - tabList.remove(delete); - if (!(right || left)) { - if (API > 11) { - currentTab.onPause(); - } - currentTab.pauseTimers(); - clearCache(); - currentTab = null; - finish(); - } - uBar.bringToFront(); - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - } - - public void clearCache() { - if (settings.getBoolean("cache", false) && currentTab != null) { - currentTab.clearCache(true); - Log.i("Lightning", "Cache Cleared"); - - } - for (int n = 0; n < MAX_TABS; n++) { - if (main[n] != null) { - main[n].removeAllViews(); - main[n] = null; - } - } - } - - @Override - public void finish() { - background.clearDisappearingChildren(); - background.removeView(currentTab); - tabScroll.clearDisappearingChildren(); - super.finish(); - } - - @Override - protected void onStop() { - // TODO Auto-generated method stub - - super.onStop(); - } - - void forward() { - ImageView forward = (ImageView) findViewById(R.id.forward); - forward.setBackgroundResource(R.drawable.button); - if (isPhone) { - RelativeLayout relativeLayout1 = (RelativeLayout) findViewById(R.id.relativeLayout1); - relativeLayout1.removeView(forward); - } - forward.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - if (currentTab.canGoForward()) { - currentTab.goForward(); - } - } - - }); - } - - @SuppressLint("InlinedApi") - private void initialize() { - - tabList = new ArrayList(); - bUrl = new String[MAX_BOOKMARKS]; - bTitle = new String[MAX_BOOKMARKS]; - main = new IncognitoWebView[MAX_TABS]; - urlTitle = new TextView[MAX_TABS]; - urlToLoad = new String[MAX_TABS][2]; - fullScreen = false; - DisplayMetrics metrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(metrics); - historyHandler = new DatabaseHandler(this); - cookieManager = CookieManager.getInstance(); - CookieSyncManager.createInstance(mContext); - cookieManager.setAcceptCookie(false); - - progressBar = (ProgressBar) findViewById(R.id.progressBar1); - browserProgress = (ProgressBar) findViewById(R.id.progressBar); - browserProgress.setVisibility(View.GONE); - - if (API >= 11) { - progressBar.setIndeterminateDrawable(getResources().getDrawable( - R.drawable.ics_animation)); - } else { - progressBar.setIndeterminateDrawable(getResources().getDrawable( - R.drawable.ginger_animation)); - } - - showFullScreen = settings.getBoolean("fullscreen", false); - uBar = (RelativeLayout) findViewById(R.id.urlBar); - screen = (RelativeLayout) findViewById(R.id.background); - slideUp = AnimationUtils.loadAnimation(this, R.anim.slide_up); - slideDown = AnimationUtils.loadAnimation(this, R.anim.slide_down); - fadeOut = AnimationUtils.loadAnimation(this, android.R.anim.fade_out); - fadeOut.setDuration(250); - fadeIn = AnimationUtils.loadAnimation(this, android.R.anim.fade_in); - // mShortAnimationDuration = getResources().getInteger( - // android.R.integer.config_mediumAnimTime); - slideUp.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation arg0) { - uBar.setVisibility(View.GONE); - } - - @Override - public void onAnimationRepeat(Animation arg0) { - - } - - @Override - public void onAnimationStart(Animation arg0) { - - } - - }); - slideDown.setAnimationListener(new AnimationListener() { - - @Override - public void onAnimationEnd(Animation animation) { - - } - - @Override - public void onAnimationRepeat(Animation animation) { - - } - - @Override - public void onAnimationStart(Animation animation) { - uBar.setVisibility(View.VISIBLE); - } - - }); - - RelativeLayout refreshLayout = (RelativeLayout) findViewById(R.id.refreshLayout); - refreshLayout.setBackgroundResource(R.drawable.button); - - // user agent - if (API < 17) { - user = new WebView(mContext).getSettings().getUserAgentString(); - } else { - user = WebSettings.getDefaultUserAgent(this); - } - - background = (FrameLayout) findViewById(R.id.holder); - defaultUser = user; // setting mobile user - // agent - switch (settings.getInt("search", 1)) { - case 0: - SEARCH = settings.getString("searchurl", FinalVariables.GOOGLE_SEARCH); - if(!SEARCH.startsWith("http://") && ! SEARCH.startsWith("https://") ) { - SEARCH = FinalVariables.GOOGLE_SEARCH; - } - break; - - case 1: - SEARCH = FinalVariables.GOOGLE_SEARCH; - break; - case 2: - SEARCH = FinalVariables.BING_SEARCH; - break; - case 3: - SEARCH = FinalVariables.YAHOO_SEARCH; - break; - case 4: - SEARCH = FinalVariables.STARTPAGE_SEARCH; - break; - case 5: - SEARCH = FinalVariables.DUCK_SEARCH; - break; - case 6: - SEARCH = FinalVariables.BAIDU_SEARCH; - break; - case 7: - SEARCH = FinalVariables.YANDEX_SEARCH; - break; - case 8: - SEARCH = FinalVariables.DUCK_LITE_SEARCH; - break; - } - - exitTab = getResources().getDrawable(R.drawable.stop); // user - // agent - homepage = settings.getString("home", HOMEPAGE); // initializing - // the - // stored - // homepage - // variable - - // initializing variables declared - - height = getResources().getDrawable(R.drawable.loading) - .getMinimumHeight(); - width = getResources().getDrawable(R.drawable.loading) - .getMinimumWidth(); - - // hides keyboard so it doesn't default pop up - this.getWindow().setSoftInputMode( - WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); - - // opens icondatabase so that favicons can be stored - WebIconDatabase.getInstance().open( - getDir("icons", MODE_PRIVATE).getPath()); - - // scroll view containing tabs - tabLayout = (LinearLayout) findViewById(R.id.tabLayout); - tabScroll = (HorizontalScrollView) findViewById(R.id.tabScroll); - tabScroll.setBackgroundColor(getResources().getColor(R.color.black)); - tabScroll.setHorizontalScrollBarEnabled(false); - if (API > 8) { - tabScroll.setOverScrollMode(View.OVER_SCROLL_NEVER); // disallow - // overscroll - } - - // image dimensions and initialization - final int dps = 175; - final float scale = getApplicationContext().getResources() - .getDisplayMetrics().density; - pixels = (int) (dps * scale + 0.5f); - leftPad = (int) (17 * scale + 0.5f); - rightPad = (int) (15 * scale + 0.5f); - height32 = (int) (32 * scale + 0.5f); - tenPad = (int) (10 * scale + 0.5f); - - incognitoPage = getResources().getDrawable(R.drawable.incognito); - incognitoPage.setBounds(0, 0, width / 2, height / 2); - exitTab.setBounds(0, 0, width * 2 / 3, height * 2 / 3); - - Thread startup = new Thread(new Runnable() { - - @Override - public void run() { - reopenOldTabs(); // restores old tabs or creates a new one - } - - }); - startup.run(); - - // new tab button - ImageView newTab = (ImageView) findViewById(R.id.newTab); - newTab.setBackgroundResource(R.drawable.button); - newTab.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Handler click = new NewTabHandler(); - click.sendEmptyMessage(1); - tabScroll.postDelayed(new Runnable() { - @Override - public void run() { - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - } - }, 100L); - - } - }); - newTab.setOnLongClickListener(new OnLongClickListener() { - - @Override - public boolean onLongClick(View v) { - if (settings.getString("oldPage", "").length() > 0) { - newTab(settings.getString("oldPage", ""), true); - edit.putString("oldPage", ""); - edit.commit(); - tabScroll.postDelayed(new Runnable() { - @Override - public void run() { - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), - 0); - } - }, 100L); - } - return true; - } - - }); - refresh = (ImageView) findViewById(R.id.refresh); - refreshLayout.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View arg0) { - - if (currentTab.getProgress() < 100) { - currentTab.stopLoading(); - } else { - currentTab.reload(); - } - } - - }); - - enterUrl(); - if (showFullScreen) { - toggleFullScreen(); - } - browserHandler = new Handle(); - - } - - private void newSettings() { - startActivity(new Intent(FinalVariables.SETTINGS_INTENT)); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, - Intent intent) { - if (requestCode == 1) { - if (null == mUploadMessage) - return; - Uri result = intent == null || resultCode != RESULT_OK ? null - : intent.getData(); - mUploadMessage.onReceiveValue(result); - mUploadMessage = null; - - } - } - - @Override - public void onBackPressed() { - try { - if (showFullScreen && !uBar.isShown()) { - uBar.startAnimation(slideDown); - } - if (currentTab.isShown() && currentTab.canGoBack()) { - currentTab.goBack(); - } else { - deleteTab(currentId); - uBar.bringToFront(); - } - } catch (NullPointerException ignored) { - } - return; - } - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - if (settings.getBoolean("textreflow", false)) { - currentTab.getSettings().setLayoutAlgorithm( - LayoutAlgorithm.NARROW_COLUMNS); - } else { - currentTab.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL); - } - - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); // displays main xml layout - mContext = this; - ACTIVITY = this; - settings = getSharedPreferences("settings", 0); - edit = settings.edit(); - - if (settings.getBoolean("hidestatus", false)) { - getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - inactive = getResources().getDrawable(R.drawable.bg_inactive); - active = getResources().getDrawable(R.drawable.bg_press); - initialize(); // sets up random stuff - options(); // allows options to be opened - enter();// enter url bar - DisplayMetrics metrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(metrics); - - float widthInInches = metrics.widthPixels / metrics.xdpi; - float heightInInches = metrics.heightPixels / metrics.ydpi; - double sizeInInches = Math.sqrt(Math.pow(widthInInches, 2) - + Math.pow(heightInInches, 2)); - // 0.5" buffer for 7" devices - isPhone = sizeInInches < 6.5; - forward();// forward button - back(); - if (settings.getInt("firstIncognito", 0) == 0) { - // navigation tips - String message = "Incognito Mode keeps you safe while browsing the internet." - + " History is not saved, Cookies are disabled, and Location access is " - + "disabled to ensure as best we can that you are not being tracked. " - + "Happy Browsing!"; - - Utils.createInformativeDialog(mContext, "About Incognito", message); - edit.putInt("first", 1); - edit.commit(); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.incognito_menu, menu); - - return true; - } - - /* - * (non-Javadoc) - * - * @see android.app.Activity#onKeyDown(int, android.view.KeyEvent) - */ - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - switch (keyCode) { - case KeyEvent.KEYCODE_SEARCH: { - getUrl.requestFocus(); - InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - manager.showSoftInput(getUrl, 0); - - break; - } - case KeyEvent.KEYCODE_F5: { - currentTab.reload(); - } - case KeyEvent.KEYCODE_ESCAPE: { - currentTab.stopLoading(); - } - case KeyEvent.KEYCODE_TAB: { - InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - if (!manager.isActive()) { - newTab(homepage, true); - } - - } - case KeyEvent.KEYCODE_F12: { - clearCache(); - finish(); - } - case KeyEvent.KEYCODE_F6: { - getUrl.selectAll(); - } - case KeyEvent.KEYCODE_F10: { - startActivity(new Intent(FinalVariables.SETTINGS_INTENT)); - } - case KeyEvent.KEYCODE_F11: { - toggleFullScreen(); - } - case KeyEvent.KEYCODE_DEL: { - InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - if (!manager.isActive()) { - currentTab.goBack(); - } - } - } - return super.onKeyDown(keyCode, event); - } - - @Override - public boolean onKeyLongPress(int keyCode, KeyEvent event) { - - if (keyCode == KeyEvent.KEYCODE_BACK) { - if (!settings.getBoolean("restoreclosed", true)) { - for (int n = 0; n < MAX_TABS; n++) { - urlToLoad[n][0] = null; - } - } - clearCache(); - finish(); - return true; - } else - return super.onKeyLongPress(keyCode, event); - } - - @Override - public void onLowMemory() { - for (int n = 0; n < MAX_TABS; n++) { - if (n != currentId && main[n] != null) { - main[n].freeMemory(); - } - } - super.onLowMemory(); - } - - @Override - protected void onNewIntent(Intent intent) { - - String url = intent.getDataString(); - int id = -1; - int download = -1; - try { - id = intent.getExtras().getInt("acr.browser.barebones.Origin") - 1; - } catch (NullPointerException e) { - id = -1; - } - try { - download = intent.getExtras().getInt( - "acr.browser.barebones.Download"); - } catch (NullPointerException e) { - download = -1; - } - if (id >= 0) { - main[id].loadUrl(url); - } else if (download == 1) { - Utils.downloadFile(mContext, url, null, null); - } else if (url != null) { - newTab(url, true); - } - - super.onNewIntent(intent); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - - switch (item.getItemId()) { - case R.id.history: - generateHistory(currentTab, mContext); - return true; - case R.id.bookmark: - if (urlToLoad[currentId][1] != null) { - if (!urlToLoad[currentId][1].equals("Bookmarks")) { - Utils.addBookmark(mContext, urlToLoad[currentId][1], - urlToLoad[currentId][0]); - } - } - return true; - case R.id.settings: - newSettings(); - return true; - case R.id.allBookmarks: - if (urlToLoad[currentId][1] == null) { - goBookmarks(mContext, currentTab); - } else if (!urlToLoad[currentId][1].equals("Bookmarks")) { - goBookmarks(mContext, currentTab); - } - - return true; - case R.id.share: - share(); - return true; - case R.id.incognito: - newTab(homepage, true); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - protected void onPause() { - if(historyHandler == null){ - historyHandler = new DatabaseHandler(this); - historyHandler = null; - } - if (currentTab != null) { - if (API >= 11) { - currentTab.onPause(); - for (int n = 0; n < MAX_TABS; n++) { - if (main[n] != null) - main[n].onPause(); - } - } - currentTab.pauseTimers(); - } - super.onPause(); - } - - @Override - protected void onResume() { - super.onResume(); - if(historyHandler == null){ - historyHandler = new DatabaseHandler(this); - } - onProgressChanged(currentId, currentTab.getProgress()); - if (currentTab.getProgress() == 100) { - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - - } - if (API >= 11) { - currentTab.onResume(); - } - reinitializeSettings(); - currentTab.resumeTimers(); - if (settings.getBoolean("fullscreen", false) != fullScreen) { - toggleFullScreen(); - } - - } - - private int x; - private int y; - private Rect edge; - private boolean xPress; - private final GestureDetector mGestureDetector = new GestureDetector( - mContext, new CustomGestureListener()); - - private class CustomGestureListener extends SimpleOnGestureListener { - @Override - public void onLongPress(MotionEvent e) { - deleteTab(id); - super.onLongPress(e); - } - } - - @Override - public boolean onTouch(View v, MotionEvent event) { - try { - id = v.getId(); - background.clearDisappearingChildren(); - xPress = false; - x = (int) event.getX(); - y = (int) event.getY(); - edge = new Rect(); - v.getDrawingRect(edge); - currentTabTitle.setPadding(leftPad, 0, rightPad, 0); - if (event.getAction() == MotionEvent.ACTION_DOWN) { - - } else if (event.getAction() == MotionEvent.ACTION_UP) { - - if (x >= (edge.right - bounds.width() - v.getPaddingRight() - 10 * 3 / 2) - && x <= (edge.right - v.getPaddingRight() + 10 * 3 / 2) - && y >= (v.getPaddingTop() - 10 / 2) - && y <= (v.getHeight() - v.getPaddingBottom() + 10 / 2)) { - xPress = true; - } - if (id == currentId) { - if (xPress) { - deleteTab(id); - uBar.bringToFront(); - } - } else if (id != currentId) { - if (xPress) { - deleteTab(id); - } else { - if (API < 16) { - currentTabTitle.setBackgroundDrawable(inactive); - } else if (API > 15) { - currentTabTitle.setBackground(inactive); - } - currentTabTitle.setPadding(leftPad, 0, rightPad, 0); - if (!showFullScreen) { - background.addView(main[id]); - main[id].startAnimation(fadeIn); - currentTab.startAnimation(fadeOut); - background.removeView(currentTab); - uBar.bringToFront(); - } else if (API >= 12) { - main[id].setAlpha(0f); - background.addView(main[id]); - try { - main[id].animate().alpha(1f).setDuration(250); - } catch (NullPointerException ignored) { - } - background.removeView(currentTab); - uBar.bringToFront(); - } else { - background.removeView(currentTab); - background.addView(main[id]); - } - uBar.bringToFront(); - - currentId = id; - currentTab = main[id]; - currentTabTitle = urlTitle[id]; - setUrlText(urlToLoad[currentId][0]); - getUrl.setPadding(tenPad, 0, tenPad, 0); - if (API < 16) { - currentTabTitle.setBackgroundDrawable(active); - } else if (API > 15) { - currentTabTitle.setBackground(active); - } - if (currentTab.getProgress() < 100) { - refresh.setVisibility(View.INVISIBLE); - - progressBar.setVisibility(View.VISIBLE); - - } else { - progressBar.setVisibility(View.GONE); - refresh.setVisibility(View.VISIBLE); - } - onProgressChanged(currentId, currentTab.getProgress()); - tabScroll.smoothScrollTo(currentTabTitle.getLeft(), 0); - currentTab.invalidate(); - } - } - - } - uBar.bringToFront(); - v.setPadding(leftPad, 0, rightPad, 0); - } catch (Exception e) { - e.printStackTrace(); - Log.e("Lightning Error", "Well we dun messed up"); - } - mGestureDetector.onTouchEvent(event); - return true; - } - - void options() { - ImageView options = (ImageView) findViewById(R.id.options); - options.setBackgroundResource(R.drawable.button); - options.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - - if (API >= 11) { - PopupMenu menu = new PopupMenu(mContext, v); - MenuInflater inflate = menu.getMenuInflater(); - inflate.inflate(R.menu.incognito_menu, menu.getMenu()); - menu.setOnMenuItemClickListener(new OnMenuItemClickListener() { - - @Override - public boolean onMenuItemClick(MenuItem item) { - - switch (item.getItemId()) { - case R.id.history: - generateHistory(currentTab, mContext); - return true; - case R.id.bookmark: - if (urlToLoad[currentId][1] != null) { - if (!urlToLoad[currentId][1] - .equals("Bookmarks")) { - Utils.addBookmark(mContext, - urlToLoad[currentId][1], - urlToLoad[currentId][0]); - } - } - return true; - case R.id.settings: - newSettings(); - return true; - case R.id.allBookmarks: - if (urlToLoad[currentId][1] == null) { - goBookmarks(mContext, currentTab); - } else if (!urlToLoad[currentId][1] - .equals("Bookmarks")) { - goBookmarks(mContext, currentTab); - } - return true; - case R.id.share: - share(); - return true; - case R.id.incognito: - newTab(homepage, true); - return true; - default: - return false; - } - - } - - }); - menu.show(); - } else if (API < 11) { - - openOptionsMenu(); - } - } - - }); - } - - void reopenOldTabs() { - Intent url = getIntent(); - String URL = url.getDataString(); - if (URL != null) { - // opens a new tab with the URL if its there - int n = newTab(URL, true); - main[n].resumeTimers(); - } else { - // otherwise it opens the home-page - int n = newTab(homepage, true); - main[n].resumeTimers(); - } - - } -} \ No newline at end of file diff --git a/src/acr/browser/barebones/customwebview/CustomWebView.java b/src/acr/browser/barebones/customwebview/CustomWebView.java deleted file mode 100644 index 8b88c83..0000000 --- a/src/acr/browser/barebones/customwebview/CustomWebView.java +++ /dev/null @@ -1,311 +0,0 @@ -package acr.browser.barebones.customwebview; - -import acr.browser.barebones.activities.BrowserActivity; -import acr.browser.barebones.utilities.FinalVariables; -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.SharedPreferences; -import android.graphics.Point; -import android.util.DisplayMetrics; -import android.view.Display; -import android.view.GestureDetector; -import android.view.GestureDetector.SimpleOnGestureListener; -import android.view.MotionEvent; -import android.view.View; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.webkit.WebSettings; -import android.webkit.WebView; -import android.webkit.WebSettings.LayoutAlgorithm; -import android.webkit.WebSettings.PluginState; -import android.webkit.WebSettings.RenderPriority; - -public final class CustomWebView extends WebView { - static final int API = FinalVariables.API; - public static boolean showFullScreen;; - final View uBar = BrowserActivity.uBar; - final Animation slideUp = BrowserActivity.slideUp; - final Animation slideDown = BrowserActivity.slideDown; - final boolean DEVICE_HAS_GPS = BrowserActivity.DEVICE_HAS_GPS; - static Context CONTEXT; - static String defaultUser; - public WebSettings settings; - - public CustomWebView(Context context) { - - super(context); - defaultUser = BrowserActivity.defaultUser; - showFullScreen = BrowserActivity.showFullScreen; - mGestureDetector = new GestureDetector(context, - new CustomGestureListener()); - CONTEXT = context; - settings = getSettings(); - browserInitialization(context); - settingsInitialization(context); - } - - @SuppressWarnings("deprecation") - public void browserInitialization(Context context) { - setDrawingCacheBackgroundColor(0x00000000); - setFocusableInTouchMode(true); - setFocusable(true); - setAnimationCacheEnabled(false); - setDrawingCacheEnabled(true); - setBackgroundColor(context.getResources().getColor( - android.R.color.white)); - if (API >= 16) { - getRootView().setBackground(null); - } else { - getRootView().setBackgroundDrawable(null); - } - setWillNotCacheDrawing(false); - setAlwaysDrawnWithCacheEnabled(true); - setScrollbarFadingEnabled(true); - setSaveEnabled(true); - } - - @SuppressLint("SetJavaScriptEnabled") - @SuppressWarnings("deprecation") - public void settingsInitialization(Context context) { - SharedPreferences preferences = context.getSharedPreferences( - "settings", 0); - if(API < 11){ - settings.setLightTouchEnabled(true); - } - settings.setDomStorageEnabled(true); - settings.setAppCacheEnabled(true); - settings.setAppCachePath(context.getFilesDir().getAbsolutePath() - + "/cache"); - settings.setAllowFileAccess(true); - settings.setDatabaseEnabled(true); - settings.setDatabasePath(context.getFilesDir().getAbsolutePath() - + "/databases"); - settings.setSupportZoom(true); - settings.setBuiltInZoomControls(true); - if (API >= 11) { - settings.setDisplayZoomControls(false); - settings.setAllowContentAccess(true); - } - - if (preferences.getBoolean("java", true)) { - settings.setJavaScriptEnabled(true); - settings.setJavaScriptCanOpenWindowsAutomatically(true); - } - - if (API < 14) { - switch (preferences.getInt("textsize", 3)) { - case 1: - settings.setTextSize(WebSettings.TextSize.LARGEST); - break; - case 2: - settings.setTextSize(WebSettings.TextSize.LARGER); - break; - case 3: - settings.setTextSize(WebSettings.TextSize.NORMAL); - break; - case 4: - settings.setTextSize(WebSettings.TextSize.SMALLER); - break; - case 5: - settings.setTextSize(WebSettings.TextSize.SMALLEST); - break; - } - - } else { - switch (preferences.getInt("textsize", 3)) { - case 1: - settings.setTextZoom(200); - break; - case 2: - settings.setTextZoom(150); - break; - case 3: - settings.setTextZoom(100); - break; - case 4: - settings.setTextZoom(75); - break; - case 5: - settings.setTextZoom(50); - break; - } - } - settings.setSupportMultipleWindows(preferences.getBoolean("newwindow", - true)); - - switch (preferences.getInt("enableflash", 0)) { - case 0: - break; - case 1: { - settings.setPluginState(PluginState.ON_DEMAND); - break; - } - case 2: { - settings.setPluginState(PluginState.ON); - break; - } - default: - break; - } - if (preferences.getBoolean("passwords", false)) { - if (API < 18) { - settings.setSavePassword(true); - } - settings.setSaveFormData(true); - } - if (API < 18) { - try { - settings.setRenderPriority(RenderPriority.HIGH); - } catch (SecurityException ignored) { - - } - } - if (DEVICE_HAS_GPS) { - settings.setGeolocationEnabled(preferences.getBoolean("location", - false)); - settings.setGeolocationDatabasePath(context.getFilesDir() - .getAbsolutePath()); - } else { - settings.setGeolocationEnabled(false); - } - settings.setUseWideViewPort(preferences - .getBoolean("wideviewport", true)); - settings.setLoadWithOverviewMode(preferences.getBoolean("overviewmode", - true)); - - if (preferences.getBoolean("textreflow", false)) { - settings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); - } else { - settings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL); - } - - settings.setBlockNetworkImage(preferences.getBoolean("blockimages", - false)); - settings.setLoadsImagesAutomatically(true); - - switch (preferences.getInt("agentchoose", 1)) { - case 1: - getSettings().setUserAgentString(defaultUser); - break; - case 2: - getSettings().setUserAgentString(FinalVariables.DESKTOP_USER_AGENT); - break; - case 3: - getSettings().setUserAgentString(FinalVariables.MOBILE_USER_AGENT); - break; - case 4: - getSettings().setUserAgentString( - preferences.getString("userAgentString", defaultUser)); - break; - } - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if(API < 11){ - if(!hasFocus()) - requestFocus(); - } - mGestureDetector.onTouchEvent(event); - return super.onTouchEvent(event); - } - - @Override - protected void onWindowVisibilityChanged(int visibility) { - if (API >= 11) { - setActivated(visibility == View.VISIBLE); - } - setEnabled(visibility == View.VISIBLE); - super.onWindowVisibilityChanged(visibility); - } - - private final GestureDetector mGestureDetector; - - private class CustomGestureListener extends SimpleOnGestureListener { - final int SWIPE_THRESHOLD = 100; - final int SWIPE_VELOCITY_THRESHOLD = 100; - DisplayMetrics metrics; - WindowManager wm; - Display display; - Point size; - int width; - float diffY; - float diffX; - boolean first = false; - - @Override - public boolean onDown(MotionEvent e) { - first = true; - return super.onDown(e); - } - - @Override - public void onLongPress(MotionEvent e) { - if (BrowserActivity.currentId != -1) { - try { - BrowserActivity.onLongClick(); - } catch (NullPointerException ignored) { - ignored.printStackTrace(); - } - } - super.onLongPress(e); - } - - @Override - public boolean onScroll(MotionEvent e1, MotionEvent e2, - float distanceX, float distanceY) { - if (showFullScreen && first) { - if (uBar.isShown() && getScrollY() < 5) { - uBar.startAnimation(slideUp); - } else if (distanceY < -5 && !uBar.isShown()) { - uBar.startAnimation(slideDown); - } else if (distanceY > 5 && uBar.isShown()) { - uBar.startAnimation(slideUp); - } - first = false; - } - return super.onScroll(e1, e2, distanceX, distanceY); - } - - @Override - public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, - float velocityY) { - try { - - if (API < 13) { - metrics = CONTEXT.getResources() - .getDisplayMetrics(); - width = metrics.widthPixels; - } else { - wm = (WindowManager) CONTEXT - .getSystemService(Context.WINDOW_SERVICE); - display = wm.getDefaultDisplay(); - size = new Point(); - display.getSize(size); - width = size.x; - } - - if ((width - e1.getX() <= width / 15) - || (e1.getX() <= width / 15)) { - diffY = e2.getY() - e1.getY(); - diffX = e2.getX() - e1.getX(); - if (Math.abs(diffX) > Math.abs(diffY)) { - if (Math.abs(diffX) > SWIPE_THRESHOLD - && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { - if (diffX > 0) { - BrowserActivity.goBack(CustomWebView.this); - } else { - BrowserActivity.goForward(CustomWebView.this); - } - } - } - } - - } catch (Exception exception) { - exception.printStackTrace(); - } - return super.onFling(e1, e2, velocityX, velocityY); - } - } - -} diff --git a/src/acr/browser/barebones/customwebview/IncognitoWebView.java b/src/acr/browser/barebones/customwebview/IncognitoWebView.java deleted file mode 100644 index 58277df..0000000 --- a/src/acr/browser/barebones/customwebview/IncognitoWebView.java +++ /dev/null @@ -1,305 +0,0 @@ -package acr.browser.barebones.customwebview; - -import acr.browser.barebones.activities.IncognitoModeActivity; -import acr.browser.barebones.utilities.FinalVariables; -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.SharedPreferences; -import android.graphics.Point; -import android.util.DisplayMetrics; -import android.view.Display; -import android.view.GestureDetector; -import android.view.GestureDetector.SimpleOnGestureListener; -import android.view.MotionEvent; -import android.view.View; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.webkit.WebSettings; -import android.webkit.WebView; -import android.webkit.WebSettings.LayoutAlgorithm; -import android.webkit.WebSettings.PluginState; -import android.webkit.WebSettings.RenderPriority; - -public final class IncognitoWebView extends WebView { - static final int API = FinalVariables.API; - public static boolean showFullScreen;; - final View uBar = IncognitoModeActivity.uBar; - final Animation slideUp = IncognitoModeActivity.slideUp; - final Animation slideDown = IncognitoModeActivity.slideDown; - static Context CONTEXT; - static String defaultUser; - public WebSettings settings; - - public IncognitoWebView(Context context) { - - super(context); - defaultUser = IncognitoModeActivity.defaultUser; - showFullScreen = IncognitoModeActivity.showFullScreen; - mGestureDetector = new GestureDetector(context, - new CustomGestureListener()); - CONTEXT = context; - settings = getSettings(); - browserInitialization(context); - settingsInitialization(context); - } - - @SuppressWarnings("deprecation") - public void browserInitialization(Context context) { - setDrawingCacheBackgroundColor(0x00000000); - setFocusableInTouchMode(true); - setFocusable(true); - setAnimationCacheEnabled(false); - setDrawingCacheEnabled(true); - setBackgroundColor(context.getResources().getColor( - android.R.color.white)); - if (API >= 16) { - getRootView().setBackground(null); - } else { - getRootView().setBackgroundDrawable(null); - } - setWillNotCacheDrawing(false); - setAlwaysDrawnWithCacheEnabled(true); - setScrollbarFadingEnabled(true); - setSaveEnabled(true); - } - - @SuppressLint("SetJavaScriptEnabled") - @SuppressWarnings("deprecation") - public void settingsInitialization(Context context) { - SharedPreferences preferences = context.getSharedPreferences( - "settings", 0); - if(API < 11){ - settings.setLightTouchEnabled(true); - } - settings.setDomStorageEnabled(true); - settings.setAppCacheEnabled(true); - settings.setAppCachePath(context.getFilesDir().getAbsolutePath() - + "/cache"); - settings.setAllowFileAccess(true); - settings.setDatabaseEnabled(true); - settings.setDatabasePath(context.getFilesDir().getAbsolutePath() - + "/databases"); - settings.setSupportZoom(true); - settings.setBuiltInZoomControls(true); - if (API >= 11) { - settings.setDisplayZoomControls(false); - settings.setAllowContentAccess(true); - } - - if (preferences.getBoolean("java", true)) { - settings.setJavaScriptEnabled(true); - settings.setJavaScriptCanOpenWindowsAutomatically(true); - } - - if (API < 14) { - switch (preferences.getInt("textsize", 3)) { - case 1: - settings.setTextSize(WebSettings.TextSize.LARGEST); - break; - case 2: - settings.setTextSize(WebSettings.TextSize.LARGER); - break; - case 3: - settings.setTextSize(WebSettings.TextSize.NORMAL); - break; - case 4: - settings.setTextSize(WebSettings.TextSize.SMALLER); - break; - case 5: - settings.setTextSize(WebSettings.TextSize.SMALLEST); - break; - } - - } else { - switch (preferences.getInt("textsize", 3)) { - case 1: - settings.setTextZoom(200); - break; - case 2: - settings.setTextZoom(150); - break; - case 3: - settings.setTextZoom(100); - break; - case 4: - settings.setTextZoom(75); - break; - case 5: - settings.setTextZoom(50); - break; - } - } - settings.setSupportMultipleWindows(preferences.getBoolean("newwindow", - true)); - - switch (preferences.getInt("enableflash", 0)) { - case 0: - break; - case 1: { - settings.setPluginState(PluginState.ON_DEMAND); - break; - } - case 2: { - settings.setPluginState(PluginState.ON); - break; - } - default: - break; - } - if (preferences.getBoolean("passwords", false)) { - if (API < 18) { - settings.setSavePassword(true); - } - settings.setSaveFormData(true); - } - if (API < 18) { - try { - settings.setRenderPriority(RenderPriority.HIGH); - } catch (SecurityException ignored) { - - } - } - settings.setGeolocationEnabled(false); - settings.setUseWideViewPort(preferences - .getBoolean("wideviewport", true)); - settings.setLoadWithOverviewMode(preferences.getBoolean("overviewmode", - true)); - - if (preferences.getBoolean("textreflow", false)) { - settings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); - } else { - settings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL); - } - - settings.setBlockNetworkImage(preferences.getBoolean("blockimages", - false)); - settings.setLoadsImagesAutomatically(true); - - switch (preferences.getInt("agentchoose", 1)) { - case 1: - getSettings().setUserAgentString(defaultUser); - break; - case 2: - getSettings().setUserAgentString(FinalVariables.DESKTOP_USER_AGENT); - break; - case 3: - getSettings().setUserAgentString(FinalVariables.MOBILE_USER_AGENT); - break; - case 4: - getSettings().setUserAgentString( - preferences.getString("userAgentString", defaultUser)); - break; - } - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if(API < 11){ - if(!hasFocus()) - requestFocus(); - } - mGestureDetector.onTouchEvent(event); - return super.onTouchEvent(event); - } - - @Override - protected void onWindowVisibilityChanged(int visibility) { - if (API >= 11) { - setActivated(visibility == View.VISIBLE); - } - setEnabled(visibility == View.VISIBLE); - super.onWindowVisibilityChanged(visibility); - } - - private final GestureDetector mGestureDetector; - - private class CustomGestureListener extends SimpleOnGestureListener { - final int SWIPE_THRESHOLD = 100; - final int SWIPE_VELOCITY_THRESHOLD = 100; - DisplayMetrics metrics; - WindowManager wm; - Display display; - Point size; - int width; - float diffY; - float diffX; - boolean first = false; - - @Override - public boolean onDown(MotionEvent e) { - first = true; - return super.onDown(e); - } - - @Override - public void onLongPress(MotionEvent e) { - if (IncognitoModeActivity.currentId != -1) { - try { - IncognitoModeActivity.onLongClick(); - } catch (NullPointerException ig) { - ig.printStackTrace(); - } - } - super.onLongPress(e); - } - - @Override - public boolean onScroll(MotionEvent e1, MotionEvent e2, - float distanceX, float distanceY) { - if (showFullScreen && first) { - if (uBar.isShown() && getScrollY() < 5) { - uBar.startAnimation(slideUp); - } else if (distanceY < -5 && !uBar.isShown()) { - uBar.startAnimation(slideDown); - } else if (distanceY > 5 && uBar.isShown()) { - uBar.startAnimation(slideUp); - } - first = false; - } - return super.onScroll(e1, e2, distanceX, distanceY); - } - - @Override - public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, - float velocityY) { - try { - - if (API < 13) { - metrics = CONTEXT.getResources() - .getDisplayMetrics(); - width = metrics.widthPixels; - } else { - wm = (WindowManager) CONTEXT - .getSystemService(Context.WINDOW_SERVICE); - display = wm.getDefaultDisplay(); - size = new Point(); - display.getSize(size); - width = size.x; - } - - if ((width - e1.getX() <= width / 15) - || (e1.getX() <= width / 15)) { - diffY = e2.getY() - e1.getY(); - diffX = e2.getX() - e1.getX(); - if (Math.abs(diffX) > Math.abs(diffY)) { - if (Math.abs(diffX) > SWIPE_THRESHOLD - && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { - if (diffX > 0) { - IncognitoModeActivity - .goBack(IncognitoWebView.this); - } else { - IncognitoModeActivity - .goForward(IncognitoWebView.this); - } - } - } - } - - } catch (Exception exception) { - exception.printStackTrace(); - } - return super.onFling(e1, e2, velocityX, velocityY); - } - } - -} diff --git a/src/acr/browser/barebones/databases/DatabaseHandler.java b/src/acr/browser/barebones/databases/DatabaseHandler.java deleted file mode 100644 index 09ad535..0000000 --- a/src/acr/browser/barebones/databases/DatabaseHandler.java +++ /dev/null @@ -1,147 +0,0 @@ -package acr.browser.barebones.databases; - -import java.util.ArrayList; -import java.util.List; - -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; - -public class DatabaseHandler extends SQLiteOpenHelper { - - // All Static variables - // Database Version - private static final int DATABASE_VERSION = 1; - - // Database Name - private static final String DATABASE_NAME = "historyManager"; - - // HistoryItems table name - private static final String TABLE_HISTORY = "history"; - - // HistoryItems Table Columns names - private static final String KEY_ID = "id"; - private static final String KEY_URL = "url"; - private static final String KEY_TITLE = "title"; - - public DatabaseHandler(Context context) { - super(context, DATABASE_NAME, null, DATABASE_VERSION); - } - - // Creating Tables - @Override - public void onCreate(SQLiteDatabase db) { - String CREATE_HISTORY_TABLE = "CREATE TABLE " + TABLE_HISTORY + "(" - + KEY_ID + " INTEGER PRIMARY KEY," + KEY_URL + " TEXT," - + KEY_TITLE + " TEXT" +")"; - db.execSQL(CREATE_HISTORY_TABLE); - } - - // Upgrading database - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - // Drop older table if existed - db.execSQL("DROP TABLE IF EXISTS " + TABLE_HISTORY); - - // Create tables again - onCreate(db); - } - - /** - * All CRUD(Create, Read, Update, Delete) Operations - */ - - public void delete(String url){ - String n = getHistoryItem(url); - deleteHistoryItem(n); - } - - // Adding new item - public void addHistoryItem(HistoryItem item) { - SQLiteDatabase db = this.getWritableDatabase(); - - ContentValues values = new ContentValues(); - values.put(KEY_URL, item.getUrl()); // HistoryItem Name - values.put(KEY_TITLE, item.getTitle()); // HistoryItem Phone - // Inserting Row - db.insert(TABLE_HISTORY, null, values); - db.close(); // Closing database connection - } - - // Getting single item - String getHistoryItem(String url) { - SQLiteDatabase db = this.getReadableDatabase(); - - Cursor cursor = db.query(TABLE_HISTORY, new String[] { KEY_ID, - KEY_URL, KEY_TITLE}, KEY_URL + "=?", - new String[] { url }, null, null, null, null); - if (cursor != null) - cursor.moveToFirst(); - String m = cursor.getString(0); - cursor.close(); - db.close(); - // return item - return m; - } - - // Getting All HistoryItems - public List getAllHistoryItems() { - List itemList = new ArrayList(); - // Select All Query - String selectQuery = "SELECT * FROM " + TABLE_HISTORY; - - SQLiteDatabase db = this.getWritableDatabase(); - Cursor cursor = db.rawQuery(selectQuery, null); - - // looping through all rows and adding to list - if (cursor.moveToFirst()) { - do { - HistoryItem item = new HistoryItem(); - item.setID(Integer.parseInt(cursor.getString(0))); - item.setUrl(cursor.getString(1)); - item.setTitle(cursor.getString(2)); - // Adding item to list - itemList.add(item); - } while (cursor.moveToNext()); - } - cursor.close(); - // return item list - return itemList; - } - - // Updating single item - public int updateHistoryItem(HistoryItem item) { - SQLiteDatabase db = this.getWritableDatabase(); - - ContentValues values = new ContentValues(); - values.put(KEY_URL, item.getUrl()); - values.put(KEY_TITLE, item.getTitle()); - int n = db.update(TABLE_HISTORY, values, KEY_ID + " = ?", - new String[] { String.valueOf(item.getID()) }); - // updating row - db.close(); - return n; - } - - // Deleting single item - public void deleteHistoryItem(String id) { - SQLiteDatabase db = this.getWritableDatabase(); - db.delete(TABLE_HISTORY, KEY_ID + " = ?", - new String[] { String.valueOf(id) }); - db.close(); - } - - // Getting items Count - public int getHistoryItemsCount() { - String countQuery = "SELECT * FROM " + TABLE_HISTORY; - SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor = db.rawQuery(countQuery, null); - cursor.close(); - - // return count - return cursor.getCount(); - } - -} diff --git a/src/acr/browser/barebones/databases/HistoryItem.java b/src/acr/browser/barebones/databases/HistoryItem.java deleted file mode 100644 index 03ef83b..0000000 --- a/src/acr/browser/barebones/databases/HistoryItem.java +++ /dev/null @@ -1,57 +0,0 @@ -package acr.browser.barebones.databases; - -public class HistoryItem { - - - //private variables - private int _id; - private String _url; - private String _title; - - // Empty constructor - public HistoryItem(){ - - } - // constructor - public HistoryItem(int id, String url, String title){ - this._id = id; - this._url = url; - this._title = title; - } - - // constructor - public HistoryItem(String url, String title){ - this._url = url; - this._title = title; - } - // getting ID - public int getID(){ - return this._id; - } - - // setting id - public void setID(int id){ - this._id = id; - } - - // getting name - public String getUrl(){ - return this._url; - } - - // setting name - public void setUrl(String url){ - this._url = url; - } - - // getting phone number - public String getTitle(){ - return this._title; - } - - // setting phone number - public void setTitle(String title){ - this._title = title; - } - -} \ No newline at end of file diff --git a/src/acr/browser/barebones/incognitoclasses/IncognitoChromeClient.java b/src/acr/browser/barebones/incognitoclasses/IncognitoChromeClient.java deleted file mode 100644 index c31a2fb..0000000 --- a/src/acr/browser/barebones/incognitoclasses/IncognitoChromeClient.java +++ /dev/null @@ -1,219 +0,0 @@ -package acr.browser.barebones.incognitoclasses; - -import acr.browser.barebones.R; -import acr.browser.barebones.activities.IncognitoModeActivity; -import android.annotation.SuppressLint; -import android.app.Activity; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.net.Uri; -import android.os.Message; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.webkit.GeolocationPermissions; -import android.webkit.ValueCallback; -import android.webkit.WebChromeClient; -import android.webkit.WebView; -import android.webkit.WebStorage.QuotaUpdater; -import android.widget.FrameLayout; - -@SuppressLint("SetJavaScriptEnabled") -public class IncognitoChromeClient extends WebChromeClient { - private static Context context; - private static Activity browserActivity; - private static View mCustomView; - private static CustomViewCallback mCustomViewCallback; - public IncognitoChromeClient(IncognitoModeActivity activity){ - context = activity; - browserActivity = activity; - } - public Bitmap mDefaultVideoPoster; - public View mVideoProgressView; - public FrameLayout fullScreenContainer; - public int orientation; - - @Override - public void onExceededDatabaseQuota(String url, - String databaseIdentifier, long quota, - long estimatedDatabaseSize, long totalQuota, - QuotaUpdater quotaUpdater) { - quotaUpdater.updateQuota(totalQuota + estimatedDatabaseSize); - - } - - @Override - public void onProgressChanged(WebView view, int newProgress) { - IncognitoModeActivity.onProgressChanged(view.getId(), newProgress); - super.onProgressChanged(view, newProgress); - } - - @Override - public void onReachedMaxAppCacheSize(long requiredStorage, long quota, - QuotaUpdater quotaUpdater) { - quotaUpdater.updateQuota(quota + requiredStorage); - } - - @Override - public Bitmap getDefaultVideoPoster() { - if (mDefaultVideoPoster == null) { - mDefaultVideoPoster = BitmapFactory.decodeResource( - context.getResources(), android.R.color.black); - } - return mDefaultVideoPoster; - } - - @Override - public View getVideoLoadingProgressView() { - if (mVideoProgressView == null) { - LayoutInflater inflater = LayoutInflater.from(context); - mVideoProgressView = inflater.inflate( - android.R.layout.simple_spinner_item, null); - } - return mVideoProgressView; - } - - @Override - public void onCloseWindow(WebView window) { - Message msg = Message.obtain(); - msg.what = 3; - msg.arg1 = window.getId(); - IncognitoModeActivity.browserHandler.sendMessage(msg); - super.onCloseWindow(window); - } - - @Override - public boolean onCreateWindow(WebView view, boolean isDialog, - boolean isUserGesture, final Message resultMsg) { - - if (isUserGesture) { - IncognitoModeActivity.onCreateWindow(resultMsg); - } - return true; - } - - - @Override - public void onGeolocationPermissionsShowPrompt(final String origin, - final GeolocationPermissions.Callback callback) { - final boolean remember = true; - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("Location Access"); - String org = null; - if (origin.length() > 50) { - org = (String) origin.subSequence(0, 50) + "..."; - } else { - org = origin; - } - builder.setMessage(org + "\nWould like to use your Location ") - .setCancelable(true) - .setPositiveButton("Allow", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - callback.invoke(origin, true, remember); - } - }) - .setNegativeButton("Don't Allow", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - callback.invoke(origin, false, remember); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - - } - - @Override - public void onHideCustomView() { - if (mCustomView == null && mCustomViewCallback == null) { - return; - } - - mCustomView.setKeepScreenOn(false); - mCustomView = null; - IncognitoModeActivity.onHideCustomView(fullScreenContainer, mCustomViewCallback, orientation); - super.onHideCustomView(); - } - - @Override - public void onReceivedIcon(WebView view, Bitmap favicon) { - IncognitoModeActivity.setFavicon(view.getId(), favicon); - } - - @Override - public void onReceivedTitle(final WebView view, final String title) { - IncognitoModeActivity.onReceivedTitle(view.getId(), title); - super.onReceivedTitle(view, title); - } - - @Override - public void onShowCustomView(View view, int requestedOrientation, - CustomViewCallback callback) { - if (mCustomView != null) { - callback.onCustomViewHidden(); - return; - } - view.setKeepScreenOn(true); - orientation = browserActivity.getRequestedOrientation(); - FrameLayout screen = (FrameLayout) browserActivity.getWindow().getDecorView(); - fullScreenContainer = new FrameLayout(context); - fullScreenContainer.setBackgroundColor(context.getResources().getColor( - R.color.black)); - IncognitoModeActivity.onShowCustomView(); - fullScreenContainer.addView(view, - ViewGroup.LayoutParams.MATCH_PARENT); - screen.addView(fullScreenContainer, - ViewGroup.LayoutParams.MATCH_PARENT); - mCustomView = view; - mCustomViewCallback = callback; - browserActivity.setRequestedOrientation(requestedOrientation); - super.onShowCustomView(view, requestedOrientation, callback); - } - - @Override - public void onShowCustomView(View view, - WebChromeClient.CustomViewCallback callback) { - if (mCustomView != null) { - callback.onCustomViewHidden(); - return; - } - view.setKeepScreenOn(true); - orientation = browserActivity.getRequestedOrientation(); - FrameLayout screen = (FrameLayout) browserActivity.getWindow().getDecorView(); - fullScreenContainer = new FrameLayout(context); - fullScreenContainer.setBackgroundColor(context.getResources().getColor( - R.color.black)); - IncognitoModeActivity.onShowCustomView(); - fullScreenContainer.addView(view, - ViewGroup.LayoutParams.MATCH_PARENT); - screen.addView(fullScreenContainer, - ViewGroup.LayoutParams.MATCH_PARENT); - mCustomView = view; - mCustomViewCallback = callback; - browserActivity.setRequestedOrientation(browserActivity.getRequestedOrientation()); - super.onShowCustomView(view, callback); - } - - public void openFileChooser(ValueCallback uploadMsg) { - IncognitoModeActivity.openFileChooser(uploadMsg); - } - - public void openFileChooser(ValueCallback uploadMsg, - String acceptType) { - IncognitoModeActivity.openFileChooser(uploadMsg); - } - - public void openFileChooser(ValueCallback uploadMsg, - String acceptType, String capture) { - IncognitoModeActivity.openFileChooser(uploadMsg); - } - -} diff --git a/src/acr/browser/barebones/incognitoclasses/IncognitoDownloadListener.java b/src/acr/browser/barebones/incognitoclasses/IncognitoDownloadListener.java deleted file mode 100644 index 459bf8f..0000000 --- a/src/acr/browser/barebones/incognitoclasses/IncognitoDownloadListener.java +++ /dev/null @@ -1,60 +0,0 @@ -package acr.browser.barebones.incognitoclasses; - -import acr.browser.barebones.activities.IncognitoModeActivity; -import acr.browser.barebones.utilities.Utils; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.net.Uri; -import android.webkit.DownloadListener; - -public class IncognitoDownloadListener implements DownloadListener { - private static Context context; - public IncognitoDownloadListener(IncognitoModeActivity activity){ - context = activity; - } - @Override - public void onDownloadStart(final String url, String userAgent, - final String contentDisposition, final String mimetype, - long contentLength) { - if (url.endsWith(".mp4") || url.endsWith(".m4a")) { - - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("Open as..."); - builder.setMessage( - "Do you want to download this video or watch it in an app?") - .setCancelable(true) - .setPositiveButton("Download", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - Utils.downloadFile(context, url, - contentDisposition, mimetype); - } - }) - .setNegativeButton("Watch", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - Intent intent = new Intent( - Intent.ACTION_VIEW); - intent.setDataAndType(Uri.parse(url), - "video/mp4"); - intent.putExtra( - "acr.browser.barebones.Download", - 1); - context.startActivity(intent); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - - } else { - Utils.downloadFile(context, url, contentDisposition, mimetype); - } - } - -} diff --git a/src/acr/browser/barebones/incognitoclasses/IncognitoLongClickListener.java b/src/acr/browser/barebones/incognitoclasses/IncognitoLongClickListener.java deleted file mode 100644 index 6f8855f..0000000 --- a/src/acr/browser/barebones/incognitoclasses/IncognitoLongClickListener.java +++ /dev/null @@ -1,14 +0,0 @@ -package acr.browser.barebones.incognitoclasses; - -import acr.browser.barebones.activities.IncognitoModeActivity; -import android.view.View; -import android.view.View.OnLongClickListener; - -public class IncognitoLongClickListener implements OnLongClickListener{ - - @Override - public boolean onLongClick(View v) { - return IncognitoModeActivity.onLongClick(); - } - -} diff --git a/src/acr/browser/barebones/incognitoclasses/IncognitoWebViewClient.java b/src/acr/browser/barebones/incognitoclasses/IncognitoWebViewClient.java deleted file mode 100644 index e0b8f3a..0000000 --- a/src/acr/browser/barebones/incognitoclasses/IncognitoWebViewClient.java +++ /dev/null @@ -1,202 +0,0 @@ -package acr.browser.barebones.incognitoclasses; - -import acr.browser.barebones.activities.IncognitoModeActivity; -import acr.browser.barebones.utilities.Utils; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.graphics.Bitmap; -import android.net.MailTo; -import android.net.Uri; -import android.net.http.SslError; -import android.os.Message; -import android.text.InputType; -import android.text.TextUtils; -import android.text.method.PasswordTransformationMethod; -import android.util.Log; -import android.webkit.HttpAuthHandler; -import android.webkit.SslErrorHandler; -import android.webkit.WebView; -import android.webkit.WebViewClient; -import android.widget.EditText; -import android.widget.LinearLayout; - -public class IncognitoWebViewClient extends WebViewClient { - private static Context context; - public IncognitoWebViewClient(IncognitoModeActivity browserActivity){ - context = browserActivity; - } - - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - if (url.startsWith("market://") - || url.startsWith("http://play.google.com/store/apps") - || url.startsWith("https://play.google.com/store/apps")) { - Intent urlIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse(url)); - urlIntent.putExtra("acr.browser.barebones.Origin", - view.getId() + 1); - context.startActivity(urlIntent); - return true; - } else if (url.startsWith("http://www.youtube.com") - || url.startsWith("https://www.youtube.com")) { - Intent urlIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse(url)); - urlIntent.putExtra("acr.browser.barebones.Origin", - view.getId() + 1); - context.startActivity(urlIntent); - return true; - } else if (url.startsWith("http://maps.google.com") - || url.startsWith("https://maps.google.com")) { - Intent urlIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse(url)); - urlIntent.putExtra("acr.browser.barebones.Origin", - view.getId() + 1); - context.startActivity(urlIntent); - return true; - } else if (url.contains("tel:") || TextUtils.isDigitsOnly(url)) { - context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url))); - return true; - } else if (url.contains("mailto:")) { - MailTo mailTo = MailTo.parse(url); - Intent i = Utils.newEmailIntent(context, - mailTo.getTo(), mailTo.getSubject(), mailTo.getBody(), - mailTo.getCc()); - context.startActivity(i); - view.reload(); - return true; - } - return super.shouldOverrideUrlLoading(view, url); - } - - @Override - public void onReceivedHttpAuthRequest(final WebView view, - final HttpAuthHandler handler, final String host, - final String realm) { - - AlertDialog.Builder builder = new AlertDialog.Builder(context); - final EditText name = new EditText(context); - final EditText password = new EditText(context); - LinearLayout passLayout = new LinearLayout(context); - passLayout.setOrientation(LinearLayout.VERTICAL); - - passLayout.addView(name); - passLayout.addView(password); - - name.setHint("Username"); - password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); - password.setTransformationMethod(new PasswordTransformationMethod()); - password.setHint("Password"); - builder.setTitle("Sign in"); - builder.setView(passLayout); - builder.setCancelable(true) - .setPositiveButton("Sign in", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - String user = name.getText().toString(); - String pass = password.getText().toString(); - handler.proceed(user.trim(), pass.trim()); - Log.i("Lightning", "Request Login"); - - } - }) - .setNegativeButton("Cancel", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - handler.cancel(); - - } - }); - AlertDialog alert = builder.create(); - alert.show(); - - } - - @Override - public void onScaleChanged(WebView view, float oldScale, float newScale) { - if (view.isShown()) { - view.invalidate(); - } - super.onScaleChanged(view, oldScale, newScale); - } - - @Override - public void onPageFinished(WebView view, String url) { - IncognitoModeActivity.onPageFinished(view, url); - super.onPageFinished(view, url); - } - - @Override - public void onPageStarted(WebView view, String url, Bitmap favicon) { - IncognitoModeActivity.onPageStarted(view, url, favicon); - super.onPageStarted(view, url, favicon); - } - - @Override - public void onReceivedSslError(WebView view, - final SslErrorHandler handler, SslError error) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("Warning"); - builder.setMessage( - "The certificate of the site is not trusted. Proceed anyway?") - .setCancelable(true) - .setPositiveButton("Yes", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - handler.proceed(); - } - }) - .setNegativeButton("No", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - handler.cancel(); - } - }); - AlertDialog alert = builder.create(); - if (error.getPrimaryError() == SslError.SSL_UNTRUSTED) { - alert.show(); - } else { - handler.proceed(); - } - - } - - @Override - public void onFormResubmission(WebView view, final Message dontResend, - final Message resend) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("Form Resubmission"); - builder.setMessage("Would you like to resend the data?") - .setCancelable(true) - .setPositiveButton("Yes", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - - resend.sendToTarget(); - } - }) - .setNegativeButton("No", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - - dontResend.sendToTarget(); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - super.onFormResubmission(view, dontResend, resend); - } -} diff --git a/src/acr/browser/barebones/utilities/BookmarkPageVariables.java b/src/acr/browser/barebones/utilities/BookmarkPageVariables.java deleted file mode 100644 index 9acc39a..0000000 --- a/src/acr/browser/barebones/utilities/BookmarkPageVariables.java +++ /dev/null @@ -1,24 +0,0 @@ -package acr.browser.barebones.utilities; - -public class BookmarkPageVariables { - public static final String Heading = "" - + "" - + "Bookmarks"; - public static final String Part1 = ""; - public static final String End = ""; -} diff --git a/src/acr/browser/barebones/utilities/HistoryPageVariables.java b/src/acr/browser/barebones/utilities/HistoryPageVariables.java deleted file mode 100644 index 1b27745..0000000 --- a/src/acr/browser/barebones/utilities/HistoryPageVariables.java +++ /dev/null @@ -1,19 +0,0 @@ -package acr.browser.barebones.utilities; - -public class HistoryPageVariables { - public static final String Heading = "" - + "History"; - - public static final String Part1 = "

    "; - public static final String Part3 = "

    "; - public static final String Part4 = "

    "; - public static final String End = ""; -} diff --git a/src/acr/browser/barebones/utilities/Utils.java b/src/acr/browser/barebones/utilities/Utils.java deleted file mode 100644 index 9e08cd6..0000000 --- a/src/acr/browser/barebones/utilities/Utils.java +++ /dev/null @@ -1,198 +0,0 @@ -package acr.browser.barebones.utilities; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; - -import acr.browser.barebones.databases.DatabaseHandler; -import acr.browser.barebones.databases.HistoryItem; -import android.annotation.TargetApi; -import android.app.AlertDialog; -import android.app.DownloadManager; -import android.content.ContentResolver; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.database.Cursor; -import android.database.DatabaseUtils; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteException; -import android.net.Uri; -import android.os.Build; -import android.os.Environment; -import android.provider.Browser; -import android.util.Log; -import android.webkit.URLUtil; -import android.widget.Toast; - -public class Utils { - - public static DatabaseHandler historyHandler; - public static SQLiteDatabase history; - public static Cursor cursor; - public static StringBuilder sb; - public static Runnable update; - - public static void createInformativeDialog(Context context, String title, - String message) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(title); - builder.setMessage(message).setCancelable(true) - .setPositiveButton("Ok", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int id) { - } - }); - AlertDialog alert = builder.create(); - alert.show(); - } - - public static void addBookmark(Context context, String title, String url) { - File book = new File(context.getFilesDir(), "bookmarks"); - File bookUrl = new File(context.getFilesDir(), "bookurl"); - try { - BufferedReader readUrlRead = new BufferedReader(new FileReader( - bookUrl)); - String u; - int n = 0; - while ((u = readUrlRead.readLine()) != null - && n < FinalVariables.MAX_BOOKMARKS) { - if (u.contentEquals(url)) { - readUrlRead.close(); - return; - } - n++; - } - readUrlRead.close(); - - } catch (FileNotFoundException ignored) { - } catch (IOException ignored) { - } catch (NullPointerException ignored) { - } - try { - BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book, - true)); - BufferedWriter urlWriter = new BufferedWriter(new FileWriter( - bookUrl, true)); - bookWriter.write(title); - urlWriter.write(url); - bookWriter.newLine(); - urlWriter.newLine(); - bookWriter.close(); - urlWriter.close(); - } catch (FileNotFoundException ignored) { - } catch (IOException ignored) { - } catch (NullPointerException ignored) { - } - } - - public static void updateHistory(final Context context, - final ContentResolver content, final boolean noStockBrowser, - final String url, final String title) { - update = new Runnable() { - @Override - public void run() { - if (!noStockBrowser) { - try { - Browser.updateVisitedHistory(content, url, true); - } catch (NullPointerException ignored) { - } - } - try { - sb = new StringBuilder("url" + " = "); - DatabaseUtils.appendEscapedSQLString(sb, url); - historyHandler = new DatabaseHandler(context); - history = historyHandler.getReadableDatabase(); - cursor = history.query("history", new String[] { - "id", "url", "title" }, sb.toString(), null, null, - null, null); - if (!cursor.moveToFirst()) { - historyHandler.addHistoryItem(new HistoryItem(url, - title)); - } else { - historyHandler.delete(url); - historyHandler.addHistoryItem(new HistoryItem(url, - title)); - } - historyHandler.close(); - cursor.close(); - history.close(); - } catch (IllegalStateException e) { - Log.e("Barebones", "IllegalStateException in updateHistory"); - } catch (NullPointerException e) { - Log.e("Barebones", "NullPointerException in updateHistory"); - } catch (SQLiteException e) { - Log.e("Barebones", "SQLiteException in updateHistory"); - } - } - }; - if (url != null) { - if (!url.startsWith("file://")) { - new Thread(update).start(); - } - } - } - - @TargetApi(Build.VERSION_CODES.GINGERBREAD) - public static void downloadFile(final Context context, final String url, - final String contentDisposition, final String mimetype) { - try { - DownloadManager download = (DownloadManager) context - .getSystemService(Context.DOWNLOAD_SERVICE); - Uri nice = Uri.parse(url); - DownloadManager.Request it = new DownloadManager.Request( - nice); - String fileName = URLUtil.guessFileName(url, - contentDisposition, mimetype); - it.setTitle(fileName); - it.setDescription(url); - if (FinalVariables.API >= 11) { - it.allowScanningByMediaScanner(); - it.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); - } - String location = context.getSharedPreferences("settings", - 0).getString("download", - Environment.DIRECTORY_DOWNLOADS); - it.setDestinationInExternalPublicDir(location, fileName); - Log.i("Barebones", "Downloading" + fileName); - download.enqueue(it); - - } catch (NullPointerException e) { - Log.e("Barebones", "Problem downloading"); - Toast.makeText(context, "Error Downloading File", - Toast.LENGTH_SHORT).show(); - } catch (IllegalArgumentException e) { - Log.e("Barebones", "Problem downloading"); - Toast.makeText(context, "Error Downloading File", - Toast.LENGTH_SHORT).show(); - } catch (SecurityException ignored) { - - } - } - - public static void showToast(Context context, String message) { - Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); - } - - public static Intent newEmailIntent(Context context, String address, - String subject, String body, String cc) { - Intent intent = new Intent(Intent.ACTION_SEND); - intent.putExtra(Intent.EXTRA_EMAIL, new String[] { address }); - intent.putExtra(Intent.EXTRA_TEXT, body); - intent.putExtra(Intent.EXTRA_SUBJECT, subject); - intent.putExtra(Intent.EXTRA_CC, cc); - intent.setType("message/rfc822"); - return intent; - } - - public static int convertDensityPixels(Context context, int densityPixels) { - float scale = context.getResources().getDisplayMetrics().density; - int pixels = (int) (densityPixels * scale + 0.5f); - return pixels; - } - -} diff --git a/src/acr/browser/barebones/webviewclasses/CustomChromeClient.java b/src/acr/browser/barebones/webviewclasses/CustomChromeClient.java deleted file mode 100644 index df8cabc..0000000 --- a/src/acr/browser/barebones/webviewclasses/CustomChromeClient.java +++ /dev/null @@ -1,219 +0,0 @@ -package acr.browser.barebones.webviewclasses; - -import acr.browser.barebones.R; -import acr.browser.barebones.activities.BrowserActivity; -import android.annotation.SuppressLint; -import android.app.Activity; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.net.Uri; -import android.os.Message; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.webkit.GeolocationPermissions; -import android.webkit.ValueCallback; -import android.webkit.WebChromeClient; -import android.webkit.WebView; -import android.webkit.WebStorage.QuotaUpdater; -import android.widget.FrameLayout; - -@SuppressLint("SetJavaScriptEnabled") -public class CustomChromeClient extends WebChromeClient { - private static Context context; - private static Activity browserActivity; - private static View mCustomView; - private static CustomViewCallback mCustomViewCallback; - public CustomChromeClient(BrowserActivity activity){ - context = activity; - browserActivity = activity; - } - public Bitmap mDefaultVideoPoster; - public View mVideoProgressView; - public FrameLayout fullScreenContainer; - public int orientation; - - @Override - public void onExceededDatabaseQuota(String url, - String databaseIdentifier, long quota, - long estimatedDatabaseSize, long totalQuota, - QuotaUpdater quotaUpdater) { - quotaUpdater.updateQuota(totalQuota + estimatedDatabaseSize); - - } - - @Override - public void onProgressChanged(WebView view, int newProgress) { - BrowserActivity.onProgressChanged(view.getId(), newProgress); - super.onProgressChanged(view, newProgress); - } - - @Override - public void onReachedMaxAppCacheSize(long requiredStorage, long quota, - QuotaUpdater quotaUpdater) { - quotaUpdater.updateQuota(quota + requiredStorage); - } - - @Override - public Bitmap getDefaultVideoPoster() { - if (mDefaultVideoPoster == null) { - mDefaultVideoPoster = BitmapFactory.decodeResource( - context.getResources(), android.R.color.black); - } - return mDefaultVideoPoster; - } - - @Override - public View getVideoLoadingProgressView() { - if (mVideoProgressView == null) { - LayoutInflater inflater = LayoutInflater.from(context); - mVideoProgressView = inflater.inflate( - android.R.layout.simple_spinner_item, null); - } - return mVideoProgressView; - } - - @Override - public void onCloseWindow(WebView window) { - Message msg = Message.obtain(); - msg.what = 3; - msg.arg1 = window.getId(); - BrowserActivity.browserHandler.sendMessage(msg); - super.onCloseWindow(window); - } - - @Override - public boolean onCreateWindow(WebView view, boolean isDialog, - boolean isUserGesture, final Message resultMsg) { - - if (isUserGesture) { - BrowserActivity.onCreateWindow(resultMsg); - } - return true; - } - - - @Override - public void onGeolocationPermissionsShowPrompt(final String origin, - final GeolocationPermissions.Callback callback) { - final boolean remember = true; - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("Location Access"); - String org = null; - if (origin.length() > 50) { - org = (String) origin.subSequence(0, 50) + "..."; - } else { - org = origin; - } - builder.setMessage(org + "\nWould like to use your Location ") - .setCancelable(true) - .setPositiveButton("Allow", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - callback.invoke(origin, true, remember); - } - }) - .setNegativeButton("Don't Allow", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - callback.invoke(origin, false, remember); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - - } - - @Override - public void onHideCustomView() { - if (mCustomView == null && mCustomViewCallback == null) { - return; - } - - mCustomView.setKeepScreenOn(false); - mCustomView = null; - BrowserActivity.onHideCustomView(fullScreenContainer, mCustomViewCallback, orientation); - super.onHideCustomView(); - } - - @Override - public void onReceivedIcon(WebView view, Bitmap favicon) { - BrowserActivity.setFavicon(view.getId(), favicon); - } - - @Override - public void onReceivedTitle(final WebView view, final String title) { - BrowserActivity.onReceivedTitle(view.getId(), title); - super.onReceivedTitle(view, title); - } - - @Override - public void onShowCustomView(View view, int requestedOrientation, - CustomViewCallback callback) { - if (mCustomView != null) { - callback.onCustomViewHidden(); - return; - } - view.setKeepScreenOn(true); - orientation = browserActivity.getRequestedOrientation(); - FrameLayout screen = (FrameLayout) browserActivity.getWindow().getDecorView(); - fullScreenContainer = new FrameLayout(context); - fullScreenContainer.setBackgroundColor(context.getResources().getColor( - R.color.black)); - BrowserActivity.onShowCustomView(); - fullScreenContainer.addView(view, - ViewGroup.LayoutParams.MATCH_PARENT); - screen.addView(fullScreenContainer, - ViewGroup.LayoutParams.MATCH_PARENT); - mCustomView = view; - mCustomViewCallback = callback; - browserActivity.setRequestedOrientation(requestedOrientation); - super.onShowCustomView(view, requestedOrientation, callback); - } - - @Override - public void onShowCustomView(View view, - WebChromeClient.CustomViewCallback callback) { - if (mCustomView != null) { - callback.onCustomViewHidden(); - return; - } - view.setKeepScreenOn(true); - orientation = browserActivity.getRequestedOrientation(); - FrameLayout screen = (FrameLayout) browserActivity.getWindow().getDecorView(); - fullScreenContainer = new FrameLayout(context); - fullScreenContainer.setBackgroundColor(context.getResources().getColor( - R.color.black)); - BrowserActivity.onShowCustomView(); - fullScreenContainer.addView(view, - ViewGroup.LayoutParams.MATCH_PARENT); - screen.addView(fullScreenContainer, - ViewGroup.LayoutParams.MATCH_PARENT); - mCustomView = view; - mCustomViewCallback = callback; - browserActivity.setRequestedOrientation(browserActivity.getRequestedOrientation()); - super.onShowCustomView(view, callback); - } - - public void openFileChooser(ValueCallback uploadMsg) { - BrowserActivity.openFileChooser(uploadMsg); - } - - public void openFileChooser(ValueCallback uploadMsg, - String acceptType) { - BrowserActivity.openFileChooser(uploadMsg); - } - - public void openFileChooser(ValueCallback uploadMsg, - String acceptType, String capture) { - BrowserActivity.openFileChooser(uploadMsg); - } - -} diff --git a/src/acr/browser/barebones/webviewclasses/CustomDownloadListener.java b/src/acr/browser/barebones/webviewclasses/CustomDownloadListener.java deleted file mode 100644 index d9e7436..0000000 --- a/src/acr/browser/barebones/webviewclasses/CustomDownloadListener.java +++ /dev/null @@ -1,61 +0,0 @@ -package acr.browser.barebones.webviewclasses; - -import acr.browser.barebones.utilities.Utils; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.net.Uri; -import android.webkit.DownloadListener; - -public class CustomDownloadListener implements DownloadListener { - private static Context mContext; - public CustomDownloadListener(Context context){ - mContext = context; - } - - - @Override - public void onDownloadStart(final String url, String userAgent, - final String contentDisposition, final String mimetype, - long contentLength) { - if (url.endsWith(".mp4") || url.endsWith(".m4a")) { - - AlertDialog.Builder builder = new AlertDialog.Builder(mContext); - builder.setTitle("Open as..."); - builder.setMessage( - "Do you want to download this video or watch it in an app?") - .setCancelable(true) - .setPositiveButton("Download", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - Utils.downloadFile(mContext, url, - contentDisposition, mimetype); - } - }) - .setNegativeButton("Watch", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - Intent intent = new Intent( - Intent.ACTION_VIEW); - intent.setDataAndType(Uri.parse(url), - "video/mp4"); - intent.putExtra( - "acr.browser.barebones.Download", - 1); - mContext.startActivity(intent); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - - } else { - Utils.downloadFile(mContext, url, contentDisposition, mimetype); - } - } - -} diff --git a/src/acr/browser/barebones/webviewclasses/CustomWebViewClient.java b/src/acr/browser/barebones/webviewclasses/CustomWebViewClient.java deleted file mode 100644 index c87242a..0000000 --- a/src/acr/browser/barebones/webviewclasses/CustomWebViewClient.java +++ /dev/null @@ -1,202 +0,0 @@ -package acr.browser.barebones.webviewclasses; - -import acr.browser.barebones.activities.BrowserActivity; -import acr.browser.barebones.utilities.Utils; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.graphics.Bitmap; -import android.net.MailTo; -import android.net.Uri; -import android.net.http.SslError; -import android.os.Message; -import android.text.InputType; -import android.text.TextUtils; -import android.text.method.PasswordTransformationMethod; -import android.util.Log; -import android.webkit.HttpAuthHandler; -import android.webkit.SslErrorHandler; -import android.webkit.WebView; -import android.webkit.WebViewClient; -import android.widget.EditText; -import android.widget.LinearLayout; - -public class CustomWebViewClient extends WebViewClient { - private static Context context; - public CustomWebViewClient(BrowserActivity browserActivity){ - context = browserActivity; - } - - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - if (url.startsWith("market://") - || url.startsWith("http://play.google.com/store/apps") - || url.startsWith("https://play.google.com/store/apps")) { - Intent urlIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse(url)); - urlIntent.putExtra("acr.browser.barebones.Origin", - view.getId() + 1); - context.startActivity(urlIntent); - return true; - } else if (url.startsWith("http://www.youtube.com") - || url.startsWith("https://www.youtube.com")) { - Intent urlIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse(url)); - urlIntent.putExtra("acr.browser.barebones.Origin", - view.getId() + 1); - context.startActivity(urlIntent); - return true; - } else if (url.startsWith("http://maps.google.com") - || url.startsWith("https://maps.google.com")) { - Intent urlIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse(url)); - urlIntent.putExtra("acr.browser.barebones.Origin", - view.getId() + 1); - context.startActivity(urlIntent); - return true; - } else if (url.contains("tel:") || TextUtils.isDigitsOnly(url)) { - context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url))); - return true; - } else if (url.contains("mailto:")) { - MailTo mailTo = MailTo.parse(url); - Intent i = Utils.newEmailIntent(context, - mailTo.getTo(), mailTo.getSubject(), mailTo.getBody(), - mailTo.getCc()); - context.startActivity(i); - view.reload(); - return true; - } - return super.shouldOverrideUrlLoading(view, url); - } - - @Override - public void onReceivedHttpAuthRequest(final WebView view, - final HttpAuthHandler handler, final String host, - final String realm) { - - AlertDialog.Builder builder = new AlertDialog.Builder(context); - final EditText name = new EditText(context); - final EditText password = new EditText(context); - LinearLayout passLayout = new LinearLayout(context); - passLayout.setOrientation(LinearLayout.VERTICAL); - - passLayout.addView(name); - passLayout.addView(password); - - name.setHint("Username"); - password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); - password.setTransformationMethod(new PasswordTransformationMethod()); - password.setHint("Password"); - builder.setTitle("Sign in"); - builder.setView(passLayout); - builder.setCancelable(true) - .setPositiveButton("Sign in", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - String user = name.getText().toString(); - String pass = password.getText().toString(); - handler.proceed(user.trim(), pass.trim()); - Log.i("Lightning", "Request Login"); - - } - }) - .setNegativeButton("Cancel", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - handler.cancel(); - - } - }); - AlertDialog alert = builder.create(); - alert.show(); - - } - - @Override - public void onScaleChanged(WebView view, float oldScale, float newScale) { - if (view.isShown()) { - view.invalidate(); - } - super.onScaleChanged(view, oldScale, newScale); - } - - @Override - public void onPageFinished(WebView view, String url) { - BrowserActivity.onPageFinished(view, url); - super.onPageFinished(view, url); - } - - @Override - public void onPageStarted(WebView view, String url, Bitmap favicon) { - BrowserActivity.onPageStarted(view, url, favicon); - super.onPageStarted(view, url, favicon); - } - - @Override - public void onReceivedSslError(WebView view, - final SslErrorHandler handler, SslError error) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("Warning"); - builder.setMessage( - "The certificate of the site is not trusted. Proceed anyway?") - .setCancelable(true) - .setPositiveButton("Yes", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - handler.proceed(); - } - }) - .setNegativeButton("No", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - handler.cancel(); - } - }); - AlertDialog alert = builder.create(); - if (error.getPrimaryError() == SslError.SSL_UNTRUSTED) { - alert.show(); - } else { - handler.proceed(); - } - - } - - @Override - public void onFormResubmission(WebView view, final Message dontResend, - final Message resend) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("Form Resubmission"); - builder.setMessage("Would you like to resend the data?") - .setCancelable(true) - .setPositiveButton("Yes", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - - resend.sendToTarget(); - } - }) - .setNegativeButton("No", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - - dontResend.sendToTarget(); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - super.onFormResubmission(view, dontResend, resend); - } -} diff --git a/src/acr/browser/barebones/webviewclasses/WebPageLongClickListener.java b/src/acr/browser/barebones/webviewclasses/WebPageLongClickListener.java deleted file mode 100644 index 1313fed..0000000 --- a/src/acr/browser/barebones/webviewclasses/WebPageLongClickListener.java +++ /dev/null @@ -1,14 +0,0 @@ -package acr.browser.barebones.webviewclasses; - -import acr.browser.barebones.activities.BrowserActivity; -import android.view.View; -import android.view.View.OnLongClickListener; - -public class WebPageLongClickListener implements OnLongClickListener{ - - @Override - public boolean onLongClick(View v) { - return BrowserActivity.onLongClick(); - } - -} diff --git a/src/acr/browser/lightning/AdBlock.java b/src/acr/browser/lightning/AdBlock.java new file mode 100644 index 0000000..a0cb17e --- /dev/null +++ b/src/acr/browser/lightning/AdBlock.java @@ -0,0 +1,92 @@ +package acr.browser.lightning; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.TreeMap; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.AssetManager; + +public class AdBlock { + + private static TreeMap mAdBlockMap = null; + private SharedPreferences mPreferences; + private boolean mBlockAds = false; + + public AdBlock(Context context) { + if (mAdBlockMap == null) { + mAdBlockMap = new TreeMap( + String.CASE_INSENSITIVE_ORDER); + } + if (mAdBlockMap.isEmpty()) { + fillSearchTree(context); + } + mPreferences = context.getSharedPreferences( + PreferenceConstants.PREFERENCES, 0); + mBlockAds = mPreferences.getBoolean(PreferenceConstants.BLOCK_ADS, + false); + } + + public void updatePreference() { + mBlockAds = mPreferences.getBoolean(PreferenceConstants.BLOCK_ADS, + false); + } + + public void fillSearchTree(final Context context) { + Thread thread = new Thread(new Runnable() { + + @Override + public void run() { + AssetManager asset = context.getAssets(); + try { + InputStream input = asset.open("hosts.txt"); + InputStreamReader read = new InputStreamReader(input); + BufferedReader reader = new BufferedReader(read); + String line = reader.readLine(); + while (line != null) { + mAdBlockMap.put(line, 1); + line = reader.readLine(); + } + } catch (IOException e) { + e.printStackTrace(); + } + + } + + }); + thread.start(); + } + + public boolean isAd(String url) { + if (!mBlockAds) { + return false; + } + String domain = ""; + try { + domain = getDomainName(url); + } catch (URISyntaxException e) { + e.printStackTrace(); + return false; + } + return mAdBlockMap.containsKey(domain); + } + + private static String getDomainName(String url) throws URISyntaxException { + int index = url.indexOf("/", 8); + if (index != -1) { + url = url.substring(0, index); + } + URI uri = new URI(url); + String domain = uri.getHost(); + if (domain == null) { + return url; + } + return domain.startsWith("www.") ? domain.substring(4) : domain; + } + +} diff --git a/src/acr/browser/barebones/activities/AdvancedSettingsActivity.java b/src/acr/browser/lightning/AdvancedSettingsActivity.java similarity index 61% rename from src/acr/browser/barebones/activities/AdvancedSettingsActivity.java rename to src/acr/browser/lightning/AdvancedSettingsActivity.java index 02565f8..3489f26 100644 --- a/src/acr/browser/barebones/activities/AdvancedSettingsActivity.java +++ b/src/acr/browser/lightning/AdvancedSettingsActivity.java @@ -1,11 +1,10 @@ -package acr.browser.barebones.activities; +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; import java.io.File; -import acr.browser.barebones.R; -import acr.browser.barebones.utilities.FinalVariables; -import acr.browser.barebones.utilities.Utils; -import acr.browser.barebones.activities.BrowserActivity; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -16,47 +15,59 @@ import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; import android.database.Cursor; +import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; import android.webkit.CookieManager; import android.webkit.CookieSyncManager; import android.webkit.WebIconDatabase; +import android.webkit.WebView; import android.webkit.WebViewDatabase; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; -import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; -@SuppressWarnings("deprecation") public class AdvancedSettingsActivity extends Activity { - // settings variables - static int defaultZoom, textSize; - static final int API = FinalVariables.API; - static final String preferences = "settings"; - static SharedPreferences settings; - static SharedPreferences.Editor edit; - static RelativeLayout r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16; - static CheckBox cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9, cb10, cb11, cb12; - static Context CONTEXT; - Handler messageHandler; + // mPreferences variables + private static final int API = android.os.Build.VERSION.SDK_INT; + private static SharedPreferences mPreferences; + private static SharedPreferences.Editor mEditPrefs; + private static RelativeLayout r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, + r12, r13, r14, r15, rIncognitoCookies, rClearCache, + rSearchSuggestions; + private static CheckBox cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9, cb10, + cb11, cbIncognitoCookies, cbSearchSuggestions; + private static Context mContext; + private boolean mSystemBrowser; + private Handler messageHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.advanced_settings); - settings = getSharedPreferences(preferences, 0); - if (settings.getBoolean("hidestatus", false)) { + getActionBar().setHomeButtonEnabled(true); + getActionBar().setDisplayHomeAsUpEnabled(true); + mPreferences = getSharedPreferences(PreferenceConstants.PREFERENCES, 0); + if (mPreferences.getBoolean(PreferenceConstants.HIDE_STATUS_BAR, false)) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } - edit = settings.edit(); - CONTEXT = this; + mEditPrefs = mPreferences.edit(); + mSystemBrowser = mPreferences.getBoolean( + PreferenceConstants.SYSTEM_BROWSER_PRESENT, false); + mContext = this; initialize(); - + + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + finish(); + return true; } void initialize() { @@ -76,8 +87,9 @@ public class AdvancedSettingsActivity extends Activity { r13 = (RelativeLayout) findViewById(R.id.r13); r14 = (RelativeLayout) findViewById(R.id.r14); r15 = (RelativeLayout) findViewById(R.id.r15); - r16 = (RelativeLayout) findViewById(R.id.r16); - + rIncognitoCookies = (RelativeLayout) findViewById(R.id.rIncognitoCookies); + rClearCache = (RelativeLayout) findViewById(R.id.rClearCache); + rSearchSuggestions = (RelativeLayout) findViewById(R.id.rGoogleSuggestions); cb1 = (CheckBox) findViewById(R.id.cb1); cb2 = (CheckBox) findViewById(R.id.cb2); @@ -90,20 +102,40 @@ public class AdvancedSettingsActivity extends Activity { cb9 = (CheckBox) findViewById(R.id.cb9); cb10 = (CheckBox) findViewById(R.id.cb10); cb11 = (CheckBox) findViewById(R.id.cb11); - cb12 = (CheckBox) findViewById(R.id.cb12); - - cb1.setChecked(settings.getBoolean("passwords", true)); - cb2.setChecked(settings.getBoolean("cache", false)); - cb3.setChecked(settings.getBoolean("java", true)); - cb4.setChecked(settings.getBoolean("textreflow", false)); - cb5.setChecked(settings.getBoolean("blockimages", false)); - cb6.setChecked(settings.getBoolean("newwindows", true)); - cb7.setChecked(settings.getBoolean("cookies", true)); - cb8.setChecked(settings.getBoolean("wideviewport", true)); - cb9.setChecked(settings.getBoolean("overviewmode", true)); - cb10.setChecked(settings.getBoolean("restoreclosed", true)); - cb11.setChecked(settings.getBoolean("hidestatus", false)); - cb12.setChecked(settings.getBoolean("gestures", true)); + cbIncognitoCookies = (CheckBox) findViewById(R.id.cbIncognitoCookies); + cbSearchSuggestions = (CheckBox) findViewById(R.id.cbGoogleSuggestions); + + cb1.setChecked(mPreferences.getBoolean( + PreferenceConstants.SAVE_PASSWORDS, true)); + cb2.setChecked(mPreferences.getBoolean( + PreferenceConstants.CLEAR_CACHE_EXIT, false)); + cb3.setChecked(mPreferences.getBoolean(PreferenceConstants.JAVASCRIPT, + true)); + cb4.setChecked(mPreferences.getBoolean(PreferenceConstants.TEXT_REFLOW, + false)); + cb4.setEnabled(API < 19); + if (API >= 19) { + mEditPrefs.putBoolean(PreferenceConstants.TEXT_REFLOW, false); + mEditPrefs.commit(); + } + cb5.setChecked(mPreferences.getBoolean( + PreferenceConstants.BLOCK_IMAGES, false)); + cb6.setChecked(mPreferences + .getBoolean(PreferenceConstants.POPUPS, true)); + cb7.setChecked(mPreferences.getBoolean(PreferenceConstants.COOKIES, + true)); + cb8.setChecked(mPreferences.getBoolean( + PreferenceConstants.USE_WIDE_VIEWPORT, true)); + cb9.setChecked(mPreferences.getBoolean( + PreferenceConstants.OVERVIEW_MODE, true)); + cb10.setChecked(mPreferences.getBoolean( + PreferenceConstants.RESTORE_LOST_TABS, true)); + cb11.setChecked(mPreferences.getBoolean( + PreferenceConstants.HIDE_STATUS_BAR, false)); + cbIncognitoCookies.setChecked(mPreferences.getBoolean( + PreferenceConstants.INCOGNITO_COOKIES, false)); + cbSearchSuggestions.setChecked(mPreferences.getBoolean( + PreferenceConstants.GOOGLE_SEARCH_SUGGESTIONS, true)); r1(r1); r2(r2); @@ -120,7 +152,9 @@ public class AdvancedSettingsActivity extends Activity { r13(r13); r14(r14); r15(r15); - r16(r16); + rIncognitoCookies(rIncognitoCookies); + rClearCache(rClearCache); + rSearchSuggestions(rSearchSuggestions); cb1(cb1); cb2(cb2); cb3(cb3); @@ -132,49 +166,43 @@ public class AdvancedSettingsActivity extends Activity { cb9(cb9); cb10(cb10); cb11(cb11); - cb12(cb12); - back(); - - TextView importBookmarks = (TextView)findViewById(R.id.isImportAvailable); - - if(BrowserActivity.noStockBrowser){ - importBookmarks.setText(getResources().getString(R.string.stock_browser_unavailable)); - } - else{ - importBookmarks.setText(getResources().getString(R.string.stock_browser_available)); + cbIncognitoCookies(cbIncognitoCookies); + cbSearchSuggestions(cbSearchSuggestions); + + TextView importBookmarks = (TextView) findViewById(R.id.isImportAvailable); + + if (!mSystemBrowser) { + importBookmarks.setText(getResources().getString( + R.string.stock_browser_unavailable)); + } else { + importBookmarks.setText(getResources().getString( + R.string.stock_browser_available)); } - + messageHandler = new MessageHandler(); } - static class MessageHandler extends Handler{ + static class MessageHandler extends Handler { @Override public void handleMessage(Message msg) { - switch(msg.what){ + switch (msg.what) { case 1: - Utils.showToast(CONTEXT, "History Cleared"); + Utils.showToast( + mContext, + mContext.getResources().getString( + R.string.message_clear_history)); break; case 2: - Utils.showToast(CONTEXT, "Cookies Cleared"); + Utils.showToast( + mContext, + mContext.getResources().getString( + R.string.message_cookies_cleared)); break; } super.handleMessage(msg); } - - } - - void back() { - ImageView back = (ImageView) findViewById(R.id.advanced_back); - back.setBackgroundResource(R.drawable.button); - back.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View arg0) { - finish(); - } - - }); } static void cb1(CheckBox view) { @@ -183,8 +211,9 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("passwords", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.SAVE_PASSWORDS, + isChecked); + mEditPrefs.commit(); } }); @@ -196,8 +225,9 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("cache", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.CLEAR_CACHE_EXIT, + isChecked); + mEditPrefs.commit(); } }); @@ -209,8 +239,9 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("java", isChecked); - edit.commit(); + mEditPrefs + .putBoolean(PreferenceConstants.JAVASCRIPT, isChecked); + mEditPrefs.commit(); } }); @@ -222,8 +253,9 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("textreflow", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.TEXT_REFLOW, + isChecked); + mEditPrefs.commit(); } }); } @@ -234,8 +266,9 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("blockimages", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.BLOCK_IMAGES, + isChecked); + mEditPrefs.commit(); } }); @@ -247,8 +280,8 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("newwindows", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.POPUPS, isChecked); + mEditPrefs.commit(); } }); @@ -260,76 +293,95 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("cookies", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.COOKIES, isChecked); + mEditPrefs.commit(); } }); } - + void cb8(CheckBox view) { view.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("wideviewport", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.USE_WIDE_VIEWPORT, + isChecked); + mEditPrefs.commit(); } }); } + void cb9(CheckBox view) { view.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("overviewmode", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.OVERVIEW_MODE, + isChecked); + mEditPrefs.commit(); } }); } - + void cb10(CheckBox view) { view.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("restoreclosed", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.RESTORE_LOST_TABS, + isChecked); + mEditPrefs.commit(); } }); } - + void cb11(CheckBox view) { view.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("hidestatus", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.HIDE_STATUS_BAR, + isChecked); + mEditPrefs.commit(); } }); } - - void cb12(CheckBox view) { + + void cbIncognitoCookies(CheckBox view) { view.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - edit.putBoolean("gestures", isChecked); - edit.commit(); + mEditPrefs.putBoolean(PreferenceConstants.INCOGNITO_COOKIES, + isChecked); + mEditPrefs.commit(); } }); } + + void cbSearchSuggestions(CheckBox view){ + view.setOnCheckedChangeListener(new OnCheckedChangeListener(){ + + @Override + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + mEditPrefs.putBoolean(PreferenceConstants.GOOGLE_SEARCH_SUGGESTIONS, isChecked); + mEditPrefs.commit(); + } + + }); + } void r1(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @@ -373,7 +425,13 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onClick(View v) { // TODO Auto-generated method stub - cb4.setChecked(!cb4.isChecked()); + if (API < 19) { + cb4.setChecked(!cb4.isChecked()); + } else { + Utils.createInformativeDialog(mContext, getResources() + .getString(R.string.title_warning), getResources() + .getString(R.string.dialog_reflow_warning)); + } } }); @@ -422,10 +480,12 @@ public class AdvancedSettingsActivity extends Activity { public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder( AdvancedSettingsActivity.this); // dialog - builder.setTitle(CONTEXT.getResources().getString(R.string.title_clear_history)); + builder.setTitle(getResources().getString( + R.string.title_clear_history)); builder.setMessage( - CONTEXT.getResources().getString(R.string.dialog_history)) - .setPositiveButton(CONTEXT.getResources().getString(R.string.action_yes), + getResources().getString(R.string.dialog_history)) + .setPositiveButton( + getResources().getString(R.string.action_yes), new DialogInterface.OnClickListener() { @Override @@ -444,7 +504,8 @@ public class AdvancedSettingsActivity extends Activity { } }) - .setNegativeButton(CONTEXT.getResources().getString(R.string.action_no), + .setNegativeButton( + getResources().getString(R.string.action_no), new DialogInterface.OnClickListener() { @Override @@ -470,9 +531,9 @@ public class AdvancedSettingsActivity extends Activity { } }); - + } - + void r12(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @@ -484,7 +545,7 @@ public class AdvancedSettingsActivity extends Activity { }); } - + void r13(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @@ -495,6 +556,7 @@ public class AdvancedSettingsActivity extends Activity { }); } + void r14(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @@ -505,7 +567,7 @@ public class AdvancedSettingsActivity extends Activity { }); } - + void r15(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @@ -513,10 +575,12 @@ public class AdvancedSettingsActivity extends Activity { public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder( AdvancedSettingsActivity.this); // dialog - builder.setTitle(CONTEXT.getResources().getString(R.string.title_clear_cookies)); + builder.setTitle(getResources().getString( + R.string.title_clear_cookies)); builder.setMessage( - CONTEXT.getResources().getString(R.string.dialog_cookies)) - .setPositiveButton(CONTEXT.getResources().getString(R.string.action_yes), + getResources().getString(R.string.dialog_cookies)) + .setPositiveButton( + getResources().getString(R.string.action_yes), new DialogInterface.OnClickListener() { @Override @@ -535,13 +599,14 @@ public class AdvancedSettingsActivity extends Activity { } }) - .setNegativeButton(CONTEXT.getResources().getString(R.string.action_no), + .setNegativeButton( + getResources().getString(R.string.action_no), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { - + } }).show(); @@ -549,23 +614,55 @@ public class AdvancedSettingsActivity extends Activity { }); } - - void r16(RelativeLayout view) { + + void rIncognitoCookies(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - cb12.setChecked(!cb12.isChecked()); + // TODO Auto-generated method stub + cbIncognitoCookies.setChecked(!cbIncognitoCookies.isChecked()); } }); + } + void rSearchSuggestions(RelativeLayout view){ + view.setOnClickListener(new OnClickListener(){ + + @Override + public void onClick(View arg0) { + cbSearchSuggestions.setChecked(!cbSearchSuggestions.isChecked()); + } + + }); + } + + void rClearCache(RelativeLayout view) { + view.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + // TODO Auto-generated method stub + clearCache(); + } + + }); + + } + + public void clearCache() { + WebView webView = new WebView(this); + webView.clearCache(true); + webView.destroy(); + Utils.showToast(mContext, + getResources().getString(R.string.message_cache_cleared)); + } + public void clearHistory() { - CookieManager c = CookieManager.getInstance(); - CookieSyncManager.createInstance(this); - c.removeAllCookie(); - AdvancedSettingsActivity.this.deleteDatabase("historyManager"); + AdvancedSettingsActivity.this + .deleteDatabase(DatabaseHandler.DATABASE_NAME); WebViewDatabase m = WebViewDatabase .getInstance(AdvancedSettingsActivity.this); m.clearFormData(); @@ -574,32 +671,33 @@ public class AdvancedSettingsActivity extends Activity { m.clearUsernamePassword(); WebIconDatabase.getInstance().removeAllIcons(); } - if (!BrowserActivity.noStockBrowser) { + if (mSystemBrowser) { try { Browser.clearHistory(getContentResolver()); } catch (NullPointerException ignored) { } } + SettingsController.setClearHistory(true); trimCache(AdvancedSettingsActivity.this); messageHandler.sendEmptyMessage(1); } - public void clearCookies(){ + public void clearCookies() { CookieManager c = CookieManager.getInstance(); CookieSyncManager.createInstance(this); c.removeAllCookie(); messageHandler.sendEmptyMessage(2); } - + void r9(RelativeLayout view) { - + view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - + importFromStockBrowser(); - + } }); @@ -620,8 +718,8 @@ public class AdvancedSettingsActivity extends Activity { getResources().getString(R.string.size_normal), getResources().getString(R.string.size_small), getResources().getString(R.string.size_smallest) }; - - int n = settings.getInt("textsize", 3); + + int n = mPreferences.getInt(PreferenceConstants.TEXT_SIZE, 3); picker.setSingleChoiceItems(chars, n - 1, new DialogInterface.OnClickListener() { @@ -629,12 +727,15 @@ public class AdvancedSettingsActivity extends Activity { @Override public void onClick(DialogInterface dialog, int which) { - edit.putInt("textsize", which+1); - edit.commit(); - - } + mEditPrefs.putInt( + PreferenceConstants.TEXT_SIZE, + which + 1); + mEditPrefs.commit(); + + } }); - picker.setNeutralButton(CONTEXT.getResources().getString(R.string.action_ok), + picker.setNeutralButton( + getResources().getString(R.string.action_ok), new DialogInterface.OnClickListener() { @Override @@ -676,14 +777,12 @@ public class AdvancedSettingsActivity extends Activity { } public void importFromStockBrowser() { - if (!BrowserActivity.noStockBrowser) { + if (mSystemBrowser) { try { String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; - String sel = Browser.BookmarkColumns.BOOKMARK + " = 1"; // 0 = - // history, - // 1 = - // bookmark + // use 0 for history, 1 for bookmarks + String sel = Browser.BookmarkColumns.BOOKMARK + " = 1"; Cursor mCur; mCur = getContentResolver().query(Browser.BOOKMARKS_URI, proj, sel, null, null); @@ -698,17 +797,22 @@ public class AdvancedSettingsActivity extends Activity { .getColumnIndex(Browser.BookmarkColumns.TITLE)); url = mCur.getString(mCur .getColumnIndex(Browser.BookmarkColumns.URL)); - Utils.addBookmark(CONTEXT,title,url); + if (title.length() < 1) { + title = Utils.getDomainName(url); + } + Utils.addBookmark(mContext, title, url); mCur.moveToNext(); } } - Utils.showToast(CONTEXT, number + " Bookmarks were imported"); + Utils.showToast(mContext, number + " " + + getResources().getString(R.string.message_import)); } catch (NullPointerException ignored) { } - } - else{ - Utils.createInformativeDialog(CONTEXT, "Error", "No browser was detected to import bookmarks from."); + } else { + Utils.createInformativeDialog(mContext, + getResources().getString(R.string.title_error), + getResources().getString(R.string.dialog_import_error)); } } - + } \ No newline at end of file diff --git a/src/acr/browser/lightning/BookmarkPageVariables.java b/src/acr/browser/lightning/BookmarkPageVariables.java new file mode 100644 index 0000000..185cc7a --- /dev/null +++ b/src/acr/browser/lightning/BookmarkPageVariables.java @@ -0,0 +1,13 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +public class BookmarkPageVariables { + public static final String Heading = "Bookmarks
    "; + public static final String Part1 = "

    "; + public static final String Part4 = "

    "; + public static final String End = "
    "; +} diff --git a/src/acr/browser/lightning/BrowserActivity.java b/src/acr/browser/lightning/BrowserActivity.java new file mode 100644 index 0000000..63aca5f --- /dev/null +++ b/src/acr/browser/lightning/BrowserActivity.java @@ -0,0 +1,2388 @@ +/* + * Copyright 2014 A.C.R. Development + */ + +package acr.browser.lightning; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import android.app.ActionBar; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources.Theme; +import android.content.res.TypedArray; +import android.database.Cursor; +import android.database.DatabaseUtils; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; +import android.graphics.Bitmap; +import android.graphics.Bitmap.Config; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.media.MediaPlayer; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Message; +import android.provider.Browser; +import android.support.v4.app.ActionBarDrawerToggle; +import android.support.v4.widget.DrawerLayout; +import android.text.TextUtils; +import android.util.Log; +import android.util.TypedValue; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnKeyListener; +import android.view.View.OnTouchListener; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient.CustomViewCallback; +import android.webkit.CookieManager; +import android.webkit.CookieSyncManager; +import android.webkit.WebIconDatabase; +import android.webkit.WebView; +import android.webkit.WebView.HitTestResult; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ListView; +import android.widget.AutoCompleteTextView; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.VideoView; +import android.widget.TextView.OnEditorActionListener; + +public class BrowserActivity extends Activity implements BrowserController { + private static DrawerLayout mDrawerLayout; + private static ListView mDrawerList; + private static RelativeLayout mDrawer; + private static LinearLayout mDrawerRight; + private static ListView mDrawerListRight; + private static TextView mNewTab; + private static ActionBarDrawerToggle mDrawerToggle; + private List mWebViews = new ArrayList(); + private static List mIdList = new ArrayList(); + private LightningView mCurrentView; + private static int mIdGenerator; + private static LightningViewAdapter mTitleAdapter; + private static List mBookmarkList; + private static BookmarkViewAdapter mBookmarkAdapter; + private static AutoCompleteTextView mSearch; + private static ClickHandler mClickHandler; + private static ProgressBar mProgress; + private static boolean mSystemBrowser = false; + private static ValueCallback mUploadMessage; + private static View mCustomView; + private static int mOriginalOrientation; + private static int mActionBarSize; + private static ActionBar mActionBar; + private static boolean mFullScreen; + private static FrameLayout mBrowserFrame; + private static FullscreenHolder mFullscreenContainer; + private static CustomViewCallback mCustomViewCallback; + private static final FrameLayout.LayoutParams COVER_SCREEN_PARAMS = new FrameLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT); + private static Bitmap mDefaultVideoPoster; + private static View mVideoProgressView; + private static DatabaseHandler mHistoryHandler; + private static SQLiteDatabase mHistoryDatabase; + private static SharedPreferences mPreferences; + private static SharedPreferences.Editor mEditPrefs; + private static Context mContext; + private static Bitmap mWebpageBitmap; + private static String mSearchText; + private static Activity mActivity; + private static CookieManager mCookieManager; + private static final int API = android.os.Build.VERSION.SDK_INT; + private static Drawable mDeleteIcon; + private static Drawable mRefreshIcon; + private static Drawable mCopyIcon; + private static Drawable mIcon; + private static int mActionBarSizeDp; + private static int mNumberIconColor; + private static String mHomepage; + private static boolean mIsNewIntent = false; + private static VideoView mVideoView; + private static SearchAdapter mSearchAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + initialize(); + } + + private synchronized void initialize() { + setContentView(R.layout.activity_main); + TypedValue typedValue = new TypedValue(); + Theme theme = getTheme(); + theme.resolveAttribute(R.attr.numberColor, typedValue, true); + mNumberIconColor = typedValue.data; + mPreferences = getSharedPreferences(PreferenceConstants.PREFERENCES, 0); + mEditPrefs = mPreferences.edit(); + mContext = this; + if (mIdList != null) { + mIdList.clear(); + } else { + mIdList = new ArrayList(); + } + if (mWebViews != null) { + mWebViews.clear(); + } else { + mWebViews = new ArrayList(); + } + + mActivity = this; + mClickHandler = new ClickHandler(this); + mBrowserFrame = (FrameLayout) findViewById(R.id.content_frame); + mProgress = (ProgressBar) findViewById(R.id.activity_bar); + mProgress.setVisibility(View.GONE); + mNewTab = (TextView) findViewById(R.id.new_tab_button); + mDrawer = (RelativeLayout) findViewById(R.id.drawer); + mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); + mDrawerList = (ListView) findViewById(R.id.left_drawer); + mDrawerRight = (LinearLayout) findViewById(R.id.right_drawer); + mDrawerListRight = (ListView) findViewById(R.id.right_drawer_list); + mWebpageBitmap = BitmapFactory.decodeResource(getResources(), + R.drawable.ic_webpage); + mActionBar = getActionBar(); + final TypedArray styledAttributes = mContext.getTheme() + .obtainStyledAttributes( + new int[] { android.R.attr.actionBarSize }); + mActionBarSize = (int) styledAttributes.getDimension(0, 0); + if (pixelsToDp(mActionBarSize) < 48) { + mActionBarSize = getDp(48); + } + mActionBarSizeDp = pixelsToDp(mActionBarSize); + styledAttributes.recycle(); + + mHomepage = mPreferences.getString(PreferenceConstants.HOMEPAGE, + Constants.HOMEPAGE); + + mTitleAdapter = new LightningViewAdapter(this, R.layout.tab_list_item, + mWebViews); + mDrawerList.setAdapter(mTitleAdapter); + mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); + mDrawerList + .setOnItemLongClickListener(new DrawerItemLongClickListener()); + + mBookmarkList = getBookmarks(); + mBookmarkAdapter = new BookmarkViewAdapter(this, + R.layout.bookmark_list_item, mBookmarkList); + mDrawerListRight.setAdapter(mBookmarkAdapter); + mDrawerListRight + .setOnItemClickListener(new BookmarkItemClickListener()); + mDrawerListRight + .setOnItemLongClickListener(new BookmarkItemLongClickListener()); + + if (mHistoryHandler == null) { + mHistoryHandler = new DatabaseHandler(this); + } else if (!mHistoryHandler.isOpen()) { + mHistoryHandler = new DatabaseHandler(this); + } + mHistoryDatabase = mHistoryHandler.getReadableDatabase(); + + // set display options of the ActionBar + mActionBar.setDisplayShowTitleEnabled(false); + mActionBar.setDisplayShowCustomEnabled(true); + mActionBar.setDisplayShowHomeEnabled(true); + mActionBar.setDisplayHomeAsUpEnabled(true); + mActionBar.setCustomView(R.layout.search); + + RelativeLayout back = (RelativeLayout) findViewById(R.id.action_back); + RelativeLayout forward = (RelativeLayout) findViewById(R.id.action_forward); + if (back != null) { + back.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (mCurrentView != null) { + if (mCurrentView.canGoBack()) { + mCurrentView.goBack(); + } else { + deleteTab(mDrawerList.getCheckedItemPosition()); + } + } + } + + }); + } + if (forward != null) { + forward.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (mCurrentView != null) { + if (mCurrentView.canGoForward()) { + mCurrentView.goForward(); + } + } + } + + }); + } + + // create the search EditText in the ActionBar + mSearch = (AutoCompleteTextView) mActionBar.getCustomView() + .findViewById(R.id.search); + mDeleteIcon = getResources().getDrawable(R.drawable.ic_action_delete); + mDeleteIcon.setBounds(0, 0, Utils.convertToDensityPixels(mContext, 24), + Utils.convertToDensityPixels(mContext, 24)); + mRefreshIcon = getResources().getDrawable(R.drawable.ic_action_refresh); + mRefreshIcon.setBounds(0, 0, + Utils.convertToDensityPixels(mContext, 24), + Utils.convertToDensityPixels(mContext, 24)); + mCopyIcon = getResources().getDrawable(R.drawable.ic_action_copy); + mCopyIcon.setBounds(0, 0, Utils.convertToDensityPixels(mContext, 24), + Utils.convertToDensityPixels(mContext, 24)); + mIcon = mRefreshIcon; + mSearch.setCompoundDrawables(null, null, mRefreshIcon, null); + mSearch.setOnKeyListener(new OnKeyListener() { + + @Override + public boolean onKey(View arg0, int arg1, KeyEvent arg2) { + + switch (arg1) { + case KeyEvent.KEYCODE_ENTER: + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(mSearch.getWindowToken(), 0); + searchTheWeb(mSearch.getText().toString()); + if (mCurrentView != null) { + mCurrentView.requestFocus(); + } + return true; + default: + break; + } + return false; + } + + }); + mSearch.setOnFocusChangeListener(new View.OnFocusChangeListener() { + + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (!hasFocus && mCurrentView != null) { + if (mCurrentView != null) { + if (mCurrentView.getProgress() < 100) { + setIsLoading(); + } else { + setIsFinishedLoading(); + } + } + updateUrl(mCurrentView.getUrl()); + } else if (hasFocus) { + mIcon = mCopyIcon; + mSearch.setCompoundDrawables(null, null, mCopyIcon, null); + } + } + }); + mSearch.setOnEditorActionListener(new OnEditorActionListener() { + + @Override + public boolean onEditorAction(TextView arg0, int actionId, + KeyEvent arg2) { + // hide the keyboard and search the web when the enter key + // button is pressed + if (actionId == EditorInfo.IME_ACTION_GO + || actionId == EditorInfo.IME_ACTION_DONE + || actionId == EditorInfo.IME_ACTION_NEXT + || actionId == EditorInfo.IME_ACTION_SEND + || actionId == EditorInfo.IME_ACTION_SEARCH + || (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(mSearch.getWindowToken(), 0); + searchTheWeb(mSearch.getText().toString()); + if (mCurrentView != null) { + mCurrentView.requestFocus(); + } + return true; + } + return false; + } + + }); + + mSearch.setOnTouchListener(new OnTouchListener() { + + @Override + public boolean onTouch(View v, MotionEvent event) { + if (mSearch.getCompoundDrawables()[2] != null) { + boolean tappedX = event.getX() > (mSearch.getWidth() + - mSearch.getPaddingRight() - mIcon + .getIntrinsicWidth()); + if (tappedX) { + if (event.getAction() == MotionEvent.ACTION_UP) { + if (mSearch.hasFocus()) { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", + mSearch.getText().toString()); + clipboard.setPrimaryClip(clip); + Utils.showToast( + mContext, + mContext.getResources().getString( + R.string.message_text_copied)); + } else { + refreshOrStop(); + } + } + return true; + } + } + return false; + } + + }); + + mSystemBrowser = getSystemBrowser(); + Thread initialize = new Thread(new Runnable() { + + @Override + public void run() { + initializeSearchSuggestions(mSearch); + } + + }); + initialize.run(); + // ActionBarDrawerToggle ties together the the proper interactions + // between the sliding drawer and the action bar app icon + mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */ + mDrawerLayout, /* DrawerLayout object */ + R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ + R.string.drawer_open, /* "open drawer" description for accessibility */ + R.string.drawer_close /* "close drawer" description for accessibility */ + ) { + public void onDrawerClosed(View view) { + super.onDrawerClosed(view); + if (view.equals(mDrawer)) { + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_UNLOCKED, mDrawerRight); + } else if (view.equals(mDrawerRight)) { + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_UNLOCKED, mDrawer); + } + } + + public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + if (drawerView.equals(mDrawer)) { + mDrawerLayout.closeDrawer(mDrawerRight); + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawerRight); + } else if (drawerView.equals(mDrawerRight)) { + mDrawerLayout.closeDrawer(mDrawer); + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawer); + } + } + + @Override + public void onDrawerSlide(View drawerView, float slideOffset) { + super.onDrawerSlide(drawerView, slideOffset); + + } + + }; + + mNewTab.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View arg0) { + newTab(null, true); + } + + }); + + mDrawerLayout.setDrawerListener(mDrawerToggle); + + initializePreferences(); + initializeTabs(); + + if (API < 19) { + WebIconDatabase.getInstance().open( + getDir("icons", MODE_PRIVATE).getPath()); + } + } + + public synchronized void initializeTabs() { + mIdGenerator = 0; + + String url = null; + if (getIntent() != null) { + url = getIntent().getDataString(); + if (url != null) { + if (url.startsWith(Constants.FILE)) { + Utils.showToast( + this, + getResources().getString( + R.string.message_blocked_local)); + url = null; + } + } + } + if (mPreferences + .getBoolean(PreferenceConstants.RESTORE_LOST_TABS, true)) { + String mem = mPreferences.getString(PreferenceConstants.URL_MEMORY, + ""); + mEditPrefs.putString(PreferenceConstants.URL_MEMORY, ""); + String[] array = getArray(mem); + int count = 0; + for (int n = 0; n < array.length; n++) { + if (array[n].length() > 0) { + newTab(array[n], true); + count++; + } + } + if (url != null) { + newTab(url, true); + } else if (count == 0) { + newTab(null, true); + } + } else { + newTab(url, true); + } + + } + + public static String[] getArray(String input) { + return input.split("\\|\\$\\|SEPARATOR\\|\\$\\|"); + } + + public void initializePreferences() { + if (mPreferences == null) { + mPreferences = getSharedPreferences( + PreferenceConstants.PREFERENCES, 0); + } + mFullScreen = mPreferences.getBoolean(PreferenceConstants.FULL_SCREEN, + false); + if (mPreferences.getBoolean(PreferenceConstants.HIDE_STATUS_BAR, false)) { + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, + WindowManager.LayoutParams.FLAG_FULLSCREEN); + } else { + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + } + + switch (mPreferences.getInt(PreferenceConstants.SEARCH, 1)) { + case 0: + mSearchText = mPreferences.getString( + PreferenceConstants.SEARCH_URL, Constants.GOOGLE_SEARCH); + if (!mSearchText.startsWith(Constants.HTTP) + && !mSearchText.startsWith(Constants.HTTPS)) { + mSearchText = Constants.GOOGLE_SEARCH; + } + break; + case 1: + mSearchText = Constants.GOOGLE_SEARCH; + break; + case 2: + mSearchText = Constants.ANDROID_SEARCH; + break; + case 3: + mSearchText = Constants.BING_SEARCH; + break; + case 4: + mSearchText = Constants.YAHOO_SEARCH; + break; + case 5: + mSearchText = Constants.STARTPAGE_SEARCH; + break; + case 6: + mSearchText = Constants.STARTPAGE_MOBILE_SEARCH; + break; + case 7: + mSearchText = Constants.DUCK_SEARCH; + break; + case 8: + mSearchText = Constants.DUCK_LITE_SEARCH; + break; + case 9: + mSearchText = Constants.BAIDU_SEARCH; + break; + case 10: + mSearchText = Constants.YANDEX_SEARCH; + break; + } + + mCookieManager = CookieManager.getInstance(); + CookieSyncManager.createInstance(this); + mCookieManager.setAcceptCookie(mPreferences.getBoolean( + PreferenceConstants.COOKIES, true)); + + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_ENTER) { + if (mSearch.hasFocus()) { + searchTheWeb(mSearch.getText().toString()); + } + } + return super.onKeyDown(keyCode, event); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.main, menu); + return super.onCreateOptionsMenu(menu); + } + + /* Called whenever we call invalidateOptionsMenu() */ + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + // If the nav drawer is open, hide action items related to the content + // view + + return super.onPrepareOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // The action bar home/up action should open or close the drawer. + // ActionBarDrawerToggle will take care of this. + if (mDrawerToggle.onOptionsItemSelected(item)) { + return true; + } + // Handle action buttons + switch (item.getItemId()) { + case android.R.id.home: + if (mDrawerLayout.isDrawerOpen(mDrawerRight)) { + mDrawerLayout.closeDrawer(mDrawerRight); + } + mDrawerToggle.syncState(); + return true; + case R.id.action_back: + if (mCurrentView != null) { + if (mCurrentView.canGoBack()) + mCurrentView.goBack(); + } + return true; + case R.id.action_forward: + if (mCurrentView != null) { + if (mCurrentView.canGoForward()) + mCurrentView.goForward(); + } + return true; + case R.id.action_new_tab: + newTab(null, true); + return true; + case R.id.action_incognito: + startActivity(new Intent(Constants.INCOGNITO_INTENT)); + return true; + case R.id.action_share: + if (!mCurrentView.getUrl().startsWith(Constants.FILE)) { + Intent shareIntent = new Intent( + android.content.Intent.ACTION_SEND); + shareIntent.setType("text/plain"); + shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, + mCurrentView.getTitle()); + String shareMessage = mCurrentView.getUrl(); + shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, + shareMessage); + startActivity(Intent.createChooser(shareIntent, getResources() + .getString(R.string.dialog_title_share))); + } + return true; + case R.id.action_bookmarks: + openBookmarks(); + return true; + case R.id.action_copy: + if (mCurrentView != null) { + if (!mCurrentView.getUrl().startsWith(Constants.FILE)) { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", mCurrentView + .getUrl().toString()); + clipboard.setPrimaryClip(clip); + Utils.showToast(mContext, mContext.getResources() + .getString(R.string.message_link_copied)); + } + } + return true; + case R.id.action_settings: + startActivity(new Intent(Constants.SETTINGS_INTENT)); + return true; + case R.id.action_history: + openHistory(); + return true; + case R.id.action_add_bookmark: + if (!mCurrentView.getUrl().startsWith(Constants.FILE)) { + addBookmark(this, mCurrentView.getTitle(), + mCurrentView.getUrl()); + } + return true; + case R.id.action_find: + findInPage(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + /** + * refreshes the underlying list of the Bookmark adapter since the bookmark + * adapter doesn't always change when notifyDataChanged gets called. + */ + private void notifyBookmarkDataSetChanged() { + mBookmarkAdapter.clear(); + mBookmarkAdapter.addAll(mBookmarkList); + mBookmarkAdapter.notifyDataSetChanged(); + } + + /** + * method that shows a dialog asking what string the user wishes to search + * for. It highlights the text entered. + */ + private void findInPage() { + final AlertDialog.Builder finder = new AlertDialog.Builder(mActivity); + finder.setTitle(getResources().getString(R.string.action_find)); + final EditText getHome = new EditText(this); + getHome.setHint(getResources().getString(R.string.search_hint)); + finder.setView(getHome); + finder.setPositiveButton( + getResources().getString(R.string.search_hint), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + String text = getHome.getText().toString(); + if (mCurrentView != null) { + mCurrentView.find(text); + } + } + }); + finder.show(); + } + + /** The click listener for ListView in the navigation drawer */ + private class DrawerItemClickListener implements + ListView.OnItemClickListener { + @Override + public void onItemClick(AdapterView parent, View view, int position, + long id) { + mIsNewIntent = false; + selectItem(position); + } + } + + /** long click listener for Navigation Drawer */ + private class DrawerItemLongClickListener implements + ListView.OnItemLongClickListener { + @Override + public boolean onItemLongClick(AdapterView arg0, View arg1, + int position, long arg3) { + deleteTab(position); + return false; + } + } + + private class BookmarkItemClickListener implements + ListView.OnItemClickListener { + @Override + public void onItemClick(AdapterView parent, View view, int position, + long id) { + if (mCurrentView != null) { + mCurrentView.loadUrl(mBookmarkList.get(position).getUrl()); + } + mDrawerLayout.closeDrawer(mDrawerRight); + } + } + + private class BookmarkItemLongClickListener implements + ListView.OnItemLongClickListener { + @Override + public boolean onItemLongClick(AdapterView arg0, View arg1, + final int position, long arg3) { + + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(mContext.getResources().getString( + R.string.action_bookmarks)); + builder.setMessage( + getResources().getString(R.string.dialog_bookmark)) + .setCancelable(true) + .setPositiveButton( + getResources().getString(R.string.action_new_tab), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + newTab(mBookmarkList.get(position).getUrl(), + false); + mDrawerLayout.closeDrawers(); + } + }) + .setNegativeButton( + getResources().getString(R.string.action_delete), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, + int which) { + deleteBookmark(mBookmarkList.get(position) + .getUrl()); + } + }) + .setNeutralButton( + getResources().getString(R.string.action_edit), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, + int which) { + editBookmark(position); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + return true; + } + } + + /** + * Takes in the id of which bookmark was selected and shows a dialog that + * allows the user to rename and change the url of the bookmark + * + * @param id + * which id in the list was chosen + */ + public synchronized void editBookmark(final int id) { + final AlertDialog.Builder homePicker = new AlertDialog.Builder( + mActivity); + homePicker.setTitle(getResources().getString( + R.string.title_edit_bookmark)); + final EditText getTitle = new EditText(mContext); + getTitle.setHint(getResources().getString(R.string.hint_title)); + getTitle.setText(mBookmarkList.get(id).getTitle()); + getTitle.setSingleLine(); + final EditText getUrl = new EditText(mContext); + getUrl.setHint(getResources().getString(R.string.hint_url)); + getUrl.setText(mBookmarkList.get(id).getUrl()); + getUrl.setSingleLine(); + LinearLayout layout = new LinearLayout(mContext); + layout.setOrientation(LinearLayout.VERTICAL); + layout.addView(getTitle); + layout.addView(getUrl); + homePicker.setView(layout); + homePicker.setPositiveButton( + getResources().getString(R.string.action_ok), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + mBookmarkList.get(id).setTitle( + getTitle.getText().toString()); + mBookmarkList.get(id).setUrl( + getUrl.getText().toString()); + notifyBookmarkDataSetChanged(); + File book = new File(getFilesDir(), "bookmarks"); + File bookUrl = new File(getFilesDir(), "bookurl"); + try { + BufferedWriter bookWriter = new BufferedWriter( + new FileWriter(book)); + BufferedWriter urlWriter = new BufferedWriter( + new FileWriter(bookUrl)); + Iterator iter = mBookmarkList + .iterator(); + HistoryItem item; + while (iter.hasNext()) { + item = iter.next(); + + bookWriter.write(item.getTitle()); + urlWriter.write(item.getUrl()); + bookWriter.newLine(); + urlWriter.newLine(); + + } + + bookWriter.close(); + urlWriter.close(); + } catch (FileNotFoundException e) { + } catch (IOException e) { + } + Collections.sort(mBookmarkList); + notifyBookmarkDataSetChanged(); + } + }); + homePicker.show(); + + } + + /** + * displays the WebView contained in the LightningView Also handles the + * removal of previous views + * + * @param view + * the LightningView to show + */ + private synchronized void showTab(LightningView view) { + if (view == null) { + return; + } + if (mCurrentView != null) { + mCurrentView.onPause(); + } + mCurrentView = view; + + if (view.getWebView() != null) { + updateUrl(view.getUrl()); + updateProgress(view.getProgress()); + } else { + updateUrl(""); + updateProgress(0); + } + + mBrowserFrame.removeAllViews(); + mCurrentView.onResume(); + mBrowserFrame.addView(view.getWebView()); + } + + /** + * creates a new tab with the passed in URL if it isn't null + */ + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + if (mCurrentView == null) { + initialize(); + } + + String url = null; + if (intent != null) { + url = intent.getDataString(); + } + int num = 0; + if (intent != null && intent.getExtras() != null) + num = intent.getExtras().getInt(getPackageName() + ".Origin"); + if (num == 1) { + mCurrentView.loadUrl(url); + } else if (url != null) { + if (url.startsWith(Constants.FILE)) { + Utils.showToast(this, + getResources() + .getString(R.string.message_blocked_local)); + url = null; + } + newTab(url, true); + mIsNewIntent = true; + } + } + + private void selectItem(int position) { + // update selected item and title, then close the drawer + + mDrawerList.setItemChecked(position, true); + showTab(mWebViews.get(position)); + + mDrawerLayout.closeDrawer(mDrawer); + } + + /** + * When using the ActionBarDrawerToggle, you must call it during + * onPostCreate() and onConfigurationChanged()... + */ + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + // Sync the toggle state after onRestoreInstanceState has occurred. + mDrawerToggle.syncState(); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + // Pass any configuration change to the drawer toggls + mDrawerToggle.onConfigurationChanged(newConfig); + } + + private synchronized void newTab(String url, boolean show) { + mIsNewIntent = false; + LightningView startingTab = new LightningView(mActivity, url); + if (mIdGenerator == 0) { + startingTab.resumeTimers(); + } + mIdList.add(mIdGenerator); + mIdGenerator++; + mWebViews.add(startingTab); + + Drawable icon = writeOnDrawable(mWebViews.size()); + mActionBar.setIcon(icon); + mTitleAdapter.notifyDataSetChanged(); + if (show) { + mDrawerList.setItemChecked(mWebViews.size() - 1, true); + showTab(startingTab); + } + } + + private synchronized void deleteTab(int position) { + if (position >= mWebViews.size()) { + return; + } + + int current = mDrawerList.getCheckedItemPosition(); + LightningView reference = mWebViews.get(position); + if (reference == null) { + return; + } + boolean isShown = reference.isShown(); + if (current > position) { + mIdList.remove(position); + mWebViews.remove(position); + mDrawerList.setItemChecked(current - 1, true); + reference.onDestroy(); + } else if (mWebViews.size() > position + 1) { + mIdList.remove(position); + showTab(mWebViews.get(position + 1)); + mWebViews.remove(position); + mDrawerList.setItemChecked(position, true); + reference.onDestroy(); + } else if (mWebViews.size() > 1) { + mIdList.remove(position); + showTab(mWebViews.get(position - 1)); + mWebViews.remove(position); + mDrawerList.setItemChecked(position - 1, true); + reference.onDestroy(); + } else { + if (mCurrentView.getUrl().startsWith(Constants.FILE) + || mCurrentView.getUrl().equals(mHomepage)) { + moveTaskToBack(true); + } else { + mIdList.remove(position); + mWebViews.remove(position); + if (mPreferences.getBoolean( + PreferenceConstants.CLEAR_CACHE_EXIT, false) + && mCurrentView != null) { + mCurrentView.clearCache(true); + Log.i("Lightning", "Cache Cleared"); + + } + if (reference != null) { + reference.pauseTimers(); + reference.onDestroy(); + } + mCurrentView = null; + mTitleAdapter.notifyDataSetChanged(); + finish(); + + } + } + mTitleAdapter.notifyDataSetChanged(); + Drawable icon = writeOnDrawable(mWebViews.size()); + mActionBar.setIcon(icon); + + if (mIsNewIntent && isShown) { + mIsNewIntent = false; + moveTaskToBack(true); + } + + Log.i("Lightning", "deleted tab"); + } + + @Override + public boolean onKeyLongPress(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if (mPreferences.getBoolean(PreferenceConstants.CLEAR_CACHE_EXIT, + false) && mCurrentView != null) { + mCurrentView.clearCache(true); + Log.i("Lightning", "Cache Cleared"); + + } + mCurrentView = null; + for (int n = 0; n < mWebViews.size(); n++) { + if (mWebViews.get(n) != null) + mWebViews.get(n).onDestroy(); + } + mWebViews.clear(); + mTitleAdapter.notifyDataSetChanged(); + finish(); + } + return true; + } + + @Override + public void onBackPressed() { + if (!mActionBar.isShowing()) { + mActionBar.show(); + } + if (mDrawerLayout.isDrawerOpen(mDrawer)) { + mDrawerLayout.closeDrawer(mDrawer); + } else if (mDrawerLayout.isDrawerOpen(mDrawerRight)) { + mDrawerLayout.closeDrawer(mDrawerRight); + } else { + if (mCurrentView != null) { + Log.i("Lightning", "onBackPressed"); + if (mCurrentView.canGoBack()) { + if (!mCurrentView.isShown()) { + onHideCustomView(); + } else { + mCurrentView.goBack(); + } + } else { + deleteTab(mDrawerList.getCheckedItemPosition()); + } + } else { + Log.e("Lightning Browser", + "So madness. Much confusion. Why happen."); + super.onBackPressed(); + } + } + } + + @Override + protected void onPause() { + super.onPause(); + Log.i("Lightning", "onPause"); + if (mCurrentView != null) { + mCurrentView.pauseTimers(); + mCurrentView.onPause(); + } + if (mHistoryDatabase != null) { + if (mHistoryDatabase.isOpen()) + mHistoryDatabase.close(); + } + if (mHistoryHandler != null) { + if (mHistoryHandler.isOpen()) + mHistoryHandler.close(); + } + if (mPreferences + .getBoolean(PreferenceConstants.RESTORE_LOST_TABS, true)) { + String s = ""; + for (int n = 0; n < mWebViews.size(); n++) { + if (mWebViews.get(n).getUrl() != null) { + s = s + mWebViews.get(n).getUrl() + "|$|SEPARATOR|$|"; + } + } + mEditPrefs.putString(PreferenceConstants.URL_MEMORY, s); + mEditPrefs.commit(); + } + } + + @Override + protected void onDestroy() { + Log.i("Lightning", "onDestroy"); + if (mHistoryDatabase != null) { + if (mHistoryDatabase.isOpen()) + mHistoryDatabase.close(); + } + if (mHistoryHandler != null) { + if (mHistoryHandler.isOpen()) + mHistoryHandler.close(); + } + super.onDestroy(); + } + + @Override + protected void onPostResume() { + Log.i("Lightning", "onPostResume"); + super.onPostResume(); + } + + @Override + protected void onRestart() { + Log.i("Lightning", "onRestart"); + super.onRestart(); + } + + @Override + protected void onStart() { + Log.i("Lightning", "onStart"); + super.onStart(); + } + + @Override + protected void onStop() { + Log.i("Lightning", "onStop"); + super.onStop(); + } + + @Override + protected void onResume() { + super.onResume(); + Log.i("Lightning", "onResume"); + if (SettingsController.getClearHistory()) { + } + if (mSearchAdapter != null) { + mSearchAdapter.refreshPreferences(); + mSearchAdapter.refreshBookmarks(); + } + if (mActionBar != null) { + if (!mActionBar.isShowing()) { + mActionBar.show(); + } + } + if (mCurrentView != null) { + mCurrentView.resumeTimers(); + mCurrentView.onResume(); + + if (mHistoryHandler == null) { + mHistoryHandler = new DatabaseHandler(this); + } else if (!mHistoryHandler.isOpen()) { + mHistoryHandler = new DatabaseHandler(this); + } + mHistoryDatabase = mHistoryHandler.getReadableDatabase(); + mBookmarkList = getBookmarks(); + notifyBookmarkDataSetChanged(); + } else { + initialize(); + } + initializePreferences(); + if (mWebViews != null) { + for (int n = 0; n < mWebViews.size(); n++) { + if (mWebViews.get(n) != null) { + mWebViews.get(n).initializePreferences(this); + } else { + mWebViews.remove(n); + } + } + } else { + initialize(); + } + } + + /** + * searches the web for the query fixing any and all problems with the input + * checks if it is a search, url, etc. + */ + void searchTheWeb(String query) { + if (query.equals("")) { + return; + } + String SEARCH = mSearchText; + query = query.trim(); + mCurrentView.stopLoading(); + + if (query.startsWith("www.")) { + query = Constants.HTTP + query; + } else if (query.startsWith("ftp.")) { + query = "ftp://" + query; + } + + boolean containsPeriod = query.contains("."); + boolean isIPAddress = (TextUtils.isDigitsOnly(query.replace(".", "")) + && (query.replace(".", "").length() >= 4) && query + .contains(".")); + boolean aboutScheme = query.contains("about:"); + boolean validURL = (query.startsWith("ftp://") + || query.startsWith(Constants.HTTP) + || query.startsWith(Constants.FILE) || query + .startsWith(Constants.HTTPS)) || isIPAddress; + boolean isSearch = ((query.contains(" ") || !containsPeriod) && !aboutScheme); + + if (isIPAddress + && (!query.startsWith(Constants.HTTP) || !query + .startsWith(Constants.HTTPS))) { + query = Constants.HTTP + query; + } + + if (isSearch) { + try { + URLEncoder.encode(query, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + mCurrentView.loadUrl(SEARCH + query); + } else if (!validURL) { + mCurrentView.loadUrl(Constants.HTTP + query); + } else { + mCurrentView.loadUrl(query); + } + } + + public void deleteBookmark(String url) { + File book = new File(getFilesDir(), "bookmarks"); + File bookUrl = new File(getFilesDir(), "bookurl"); + try { + BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book)); + BufferedWriter urlWriter = new BufferedWriter(new FileWriter( + bookUrl)); + Iterator iter = mBookmarkList.iterator(); + HistoryItem item; + int num = 0; + int deleteIndex = -1; + while (iter.hasNext()) { + item = iter.next(); + if (!item.getUrl().equalsIgnoreCase(url)) { + bookWriter.write(item.getTitle()); + urlWriter.write(item.getUrl()); + bookWriter.newLine(); + urlWriter.newLine(); + } else { + deleteIndex = num; + } + num++; + } + if (deleteIndex != -1) { + mBookmarkList.remove(deleteIndex); + } + bookWriter.close(); + urlWriter.close(); + } catch (FileNotFoundException e) { + } catch (IOException e) { + } + notifyBookmarkDataSetChanged(); + mSearchAdapter.refreshBookmarks(); + openBookmarks(); + } + + /** + * converts the int num into density pixels + * + * @param num + * @return density pixels + */ + private int getDp(int num) { + float scale = getResources().getDisplayMetrics().density; + return (int) (num * scale + 0.5f); + } + + private int pixelsToDp(int num) { + float scale = getResources().getDisplayMetrics().density; + return (int) ((num - 0.5f) / scale); + } + + /** + * writes the number of open tabs on the icon. + */ + public BitmapDrawable writeOnDrawable(int number) { + + Bitmap bm = Bitmap.createBitmap(mActionBarSize, mActionBarSize, + Config.ARGB_8888); + String text = number + ""; + Paint paint = new Paint(); + paint.setTextAlign(Paint.Align.CENTER); + paint.setAntiAlias(true); + paint.setStyle(Style.FILL); + paint.setColor(mNumberIconColor); + if (number > 99) + number = 99; + // pixels, 36 dp + if (mActionBarSizeDp < 50) { + if (number > 9) { + paint.setTextSize(mActionBarSize * 3 / 4); // originally + // 40 + // pixels, + // 24 dp + } else { + paint.setTextSize(mActionBarSize * 9 / 10); // originally 50 + // pixels, 30 dp + } + } else { + paint.setTextSize(mActionBarSize * 3 / 4); + } + Canvas canvas = new Canvas(bm); + // originally only vertical padding of 5 pixels + + int xPos = (canvas.getWidth() / 2); + int yPos = (int) ((canvas.getHeight() / 2) - ((paint.descent() + paint + .ascent()) / 2)); + + canvas.drawText(text, xPos, yPos, paint); + + return new BitmapDrawable(getResources(), bm); + } + + public class LightningViewAdapter extends ArrayAdapter { + + Context context; + int layoutResourceId; + List data = null; + + public LightningViewAdapter(Context context, int layoutResourceId, + List data) { + super(context, layoutResourceId, data); + this.layoutResourceId = layoutResourceId; + this.context = context; + this.data = data; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + LightningViewHolder holder = null; + + if (row == null) { + LayoutInflater inflater = ((Activity) context) + .getLayoutInflater(); + row = inflater.inflate(layoutResourceId, parent, false); + + holder = new LightningViewHolder(); + holder.txtTitle = (TextView) row.findViewById(R.id.text1); + holder.favicon = (ImageView) row.findViewById(R.id.favicon1); + holder.exit = (ImageView) row.findViewById(R.id.delete1); + holder.exit.setTag(position); + row.setTag(holder); + } else { + holder = (LightningViewHolder) row.getTag(); + } + + holder.exit.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View view) { + Integer index = (Integer) view.getTag(); + deleteTab(index); + } + + }); + + LightningView web = data.get(position); + holder.txtTitle.setText(web.getTitle()); + Bitmap favicon = web.getFavicon(); + holder.favicon.setImageBitmap(favicon); + return row; + } + + class LightningViewHolder { + TextView txtTitle; + ImageView favicon; + ImageView exit; + } + } + + public class BookmarkViewAdapter extends ArrayAdapter { + + Context context; + int layoutResourceId; + List data = null; + + public BookmarkViewAdapter(Context context, int layoutResourceId, + List data) { + super(context, layoutResourceId, data); + this.layoutResourceId = layoutResourceId; + this.context = context; + this.data = data; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + BookmarkViewHolder holder = null; + + if (row == null) { + LayoutInflater inflater = ((Activity) context) + .getLayoutInflater(); + row = inflater.inflate(layoutResourceId, parent, false); + + holder = new BookmarkViewHolder(); + holder.txtTitle = (TextView) row.findViewById(R.id.text1); + holder.favicon = (ImageView) row.findViewById(R.id.favicon1); + row.setTag(holder); + } else { + holder = (BookmarkViewHolder) row.getTag(); + } + + HistoryItem web = data.get(position); + holder.txtTitle.setText(web.getTitle()); + holder.favicon.setImageBitmap(mWebpageBitmap); + if (web.getBitmap() == null) { + getImage(holder.favicon, web); + } else { + holder.favicon.setImageBitmap(web.getBitmap()); + } + return row; + } + + class BookmarkViewHolder { + TextView txtTitle; + ImageView favicon; + } + } + + public void getImage(ImageView image, HistoryItem web) { + try { + new DownloadImageTask(image, web).execute(Constants.HTTP + + getDomainName(web.getUrl()) + "/favicon.ico"); + } catch (URISyntaxException e) { + new DownloadImageTask(image, web) + .execute("https://www.google.com/s2/favicons?domain_url=" + + web.getUrl()); + e.printStackTrace(); + } + } + + private class DownloadImageTask extends AsyncTask { + ImageView bmImage; + HistoryItem mWeb; + + public DownloadImageTask(ImageView bmImage, HistoryItem web) { + this.bmImage = bmImage; + this.mWeb = web; + } + + protected Bitmap doInBackground(String... urls) { + String urldisplay = urls[0]; + Bitmap mIcon = null; + // unique path for each url that is bookmarked. + String hash = String.valueOf(urldisplay.hashCode()); + File image = new File(mContext.getCacheDir(), hash + ".png"); + // checks to see if the image exists + if (!image.exists()) { + try { + // if not, download it... + InputStream in = new java.net.URL(urldisplay).openStream(); + + if (in != null) { + mIcon = BitmapFactory.decodeStream(in); + } + // ...and cache it + if (mIcon != null) { + FileOutputStream fos = new FileOutputStream(image); + mIcon.compress(Bitmap.CompressFormat.PNG, 85, fos); + fos.flush(); + fos.close(); + } + + } catch (Exception e) { + } + } else { + // if it exists, retrieve it from the cache + mIcon = BitmapFactory.decodeFile(image.getPath()); + } + if (mIcon == null) { + try { + // if not, download it... + InputStream in = new java.net.URL( + "https://www.google.com/s2/favicons?domain_url=" + + urldisplay).openStream(); + + if (in != null) { + mIcon = BitmapFactory.decodeStream(in); + } + // ...and cache it + if (mIcon != null) { + FileOutputStream fos = new FileOutputStream(image); + mIcon.compress(Bitmap.CompressFormat.PNG, 85, fos); + fos.flush(); + fos.close(); + } + + } catch (Exception e) { + } + } + if (mIcon == null) { + return mWebpageBitmap; + } else { + return mIcon; + } + } + + protected void onPostExecute(Bitmap result) { + bmImage.setImageBitmap(result); + mWeb.setBitmap(result); + notifyBookmarkDataSetChanged(); + } + } + + public static String getDomainName(String url) throws URISyntaxException { + URI uri = new URI(url); + String domain = uri.getHost(); + if (domain == null) { + return url; + } + return domain.startsWith("www.") ? domain.substring(4) : domain; + } + + @Override + public void updateUrl(String url) { + if (url == null) + return; + url = url.replaceFirst(Constants.HTTP, ""); + if (url.startsWith(Constants.FILE)) { + url = ""; + } + + mSearch.setText(url); + } + + @Override + public void updateProgress(int n) { + if (!mProgress.isShown()) + mProgress.setVisibility(View.VISIBLE); + mProgress.setProgress(n); + if (n == 100) { + mProgress.setVisibility(View.INVISIBLE); + setIsFinishedLoading(); + } else { + setIsLoading(); + } + } + + @Override + public void updateHistory(final String title, final String url) { + Runnable update = new Runnable() { + @Override + public void run() { + if (isSystemBrowserAvailable()) { + try { + Browser.updateVisitedHistory(getContentResolver(), url, + true); + } catch (NullPointerException ignored) { + } + } + try { + StringBuilder sb = new StringBuilder("url" + " = "); + DatabaseUtils.appendEscapedSQLString(sb, url); + + if (mHistoryHandler == null) { + mHistoryHandler = new DatabaseHandler(mContext); + mHistoryDatabase = mHistoryHandler + .getReadableDatabase(); + } else if (!mHistoryHandler.isOpen()) { + mHistoryHandler = new DatabaseHandler(mContext); + mHistoryDatabase = mHistoryHandler + .getReadableDatabase(); + } else if (mHistoryDatabase == null) { + mHistoryDatabase = mHistoryHandler + .getReadableDatabase(); + } else if (!mHistoryDatabase.isOpen()) { + mHistoryDatabase = mHistoryHandler + .getReadableDatabase(); + } + Cursor cursor = mHistoryDatabase.query( + DatabaseHandler.TABLE_HISTORY, new String[] { "id", + "url", "title" }, sb.toString(), null, + null, null, null); + if (!cursor.moveToFirst()) { + mHistoryHandler.addHistoryItem(new HistoryItem(url, + title)); + } else { + mHistoryHandler.delete(url); + mHistoryHandler.addHistoryItem(new HistoryItem(url, + title)); + } + cursor.close(); + cursor = null; + } catch (IllegalStateException e) { + Log.e("Lightning", "IllegalStateException in updateHistory"); + } catch (NullPointerException e) { + Log.e("Lightning", "NullPointerException in updateHistory"); + } catch (SQLiteException e) { + Log.e("Lightning", "SQLiteException in updateHistory"); + } + } + }; + if (url != null) { + if (!url.startsWith(Constants.FILE)) { + new Thread(update).start(); + + } + } + } + + /** + * 1, 2, 3, testing... is there a system browser that has some nice + * bookmarks for us? + */ + public boolean isSystemBrowserAvailable() { + return mSystemBrowser; + } + + /** + * 1, 2, 3, testing... is there a system browser that has some nice + * bookmarks for us? helper method for isSystemBrowserAvailable + */ + public boolean getSystemBrowser() { + Cursor c = null; + String[] columns = new String[] { "url", "title" }; + boolean browserFlag = false; + try { + + Uri bookmarks = Browser.BOOKMARKS_URI; + c = getContentResolver() + .query(bookmarks, columns, null, null, null); + } catch (SQLiteException ignored) { + } catch (IllegalStateException ignored) { + } catch (NullPointerException ignored) { + } + + if (c != null) { + Log.i("Browser", "System Browser Available"); + browserFlag = true; + } else { + Log.e("Browser", "System Browser Unavailable"); + browserFlag = false; + } + if (c != null) { + c.close(); + c = null; + } + mEditPrefs.putBoolean("SystemBrowser", browserFlag); + mEditPrefs.commit(); + return browserFlag; + } + + /** + * method to generate search suggestions for the AutoCompleteTextView from + * previously searched URLs + */ + private void initializeSearchSuggestions(final AutoCompleteTextView getUrl) { + + getUrl.setThreshold(1); + getUrl.setDropDownWidth(-1); + getUrl.setDropDownAnchor(R.id.progressWrapper); + getUrl.setOnItemClickListener(new OnItemClickListener() { + + @Override + public void onItemClick(AdapterView arg0, View arg1, int arg2, + long arg3) { + try { + String url; + url = ((TextView) arg1.findViewById(R.id.url)).getText() + .toString(); + if (url.startsWith(mContext.getString(R.string.suggestion))) { + url = ((TextView) arg1.findViewById(R.id.title)) + .getText().toString(); + } else { + getUrl.setText(url); + } + searchTheWeb(url); + url = null; + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); + if (mCurrentView != null) { + mCurrentView.requestFocus(); + } + } catch (NullPointerException e) { + Log.e("Browser Error: ", + "NullPointerException on item click"); + } + } + + }); + + getUrl.setSelectAllOnFocus(true); + mSearchAdapter = new SearchAdapter(mContext, false); + getUrl.setAdapter(mSearchAdapter); + } + + private List getBookmarks() { + List bookmarks = new ArrayList(); + File bookUrl = new File(getApplicationContext().getFilesDir(), + "bookurl"); + File book = new File(getApplicationContext().getFilesDir(), "bookmarks"); + try { + BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); + BufferedReader readBook = new BufferedReader(new FileReader(book)); + String u, t; + while ((u = readUrl.readLine()) != null + && (t = readBook.readLine()) != null) { + HistoryItem map = new HistoryItem(u, t); + bookmarks.add(map); + } + readBook.close(); + readUrl.close(); + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } + Collections.sort(bookmarks); + return bookmarks; + } + + /** + * returns a list of HistoryItems + * + * @return + */ + private List getLatestHistory() { + DatabaseHandler historyHandler = new DatabaseHandler(mContext); + return historyHandler.getLastHundredItems(); + } + + /** + * function that opens the HTML history page in the browser + */ + private void openHistory() { + + Thread history = new Thread(new Runnable() { + + @Override + public void run() { + String historyHtml = HistoryPageVariables.Heading; + List historyList = getLatestHistory(); + Iterator it = historyList.iterator(); + HistoryItem helper; + while (it.hasNext()) { + helper = it.next(); + historyHtml += HistoryPageVariables.Part1 + helper.getUrl() + + HistoryPageVariables.Part2 + helper.getTitle() + + HistoryPageVariables.Part3 + helper.getUrl() + + HistoryPageVariables.Part4; + } + + historyHtml += HistoryPageVariables.End; + File historyWebPage = new File(getFilesDir(), "history.html"); + try { + FileWriter hWriter = new FileWriter(historyWebPage, false); + hWriter.write(historyHtml); + hWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + mCurrentView.loadUrl(Constants.FILE + historyWebPage); + mSearch.setText(""); + } + + }); + history.run(); + } + + /** + * helper function that opens the bookmark drawer + */ + private void openBookmarks() { + if (mDrawerLayout.isDrawerOpen(mDrawer)) { + mDrawerLayout.closeDrawers(); + } + mDrawerToggle.syncState(); + mDrawerLayout.openDrawer(mDrawerRight); + } + + @Override + /** + * open the HTML bookmarks page, parameter view is the WebView that should show the page + */ + public void openBookmarkPage(WebView view) { + String bookmarkHtml = BookmarkPageVariables.Heading; + Iterator iter = mBookmarkList.iterator(); + HistoryItem helper; + while (iter.hasNext()) { + helper = iter.next(); + bookmarkHtml += (BookmarkPageVariables.Part1 + helper.getUrl() + + BookmarkPageVariables.Part2 + helper.getUrl() + + BookmarkPageVariables.Part3 + helper.getTitle() + BookmarkPageVariables.Part4); + } + bookmarkHtml += BookmarkPageVariables.End; + File bookmarkWebPage = new File(mContext.getCacheDir(), + "bookmarks.html"); + try { + FileWriter bookWriter = new FileWriter(bookmarkWebPage, false); + bookWriter.write(bookmarkHtml); + bookWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + view.loadUrl(Constants.FILE + bookmarkWebPage); + } + + /** + * adds a bookmark with a title and url. Simple. + */ + public void addBookmark(Context context, String title, String url) { + File book = new File(context.getFilesDir(), "bookmarks"); + File bookUrl = new File(context.getFilesDir(), "bookurl"); + HistoryItem bookmark = new HistoryItem(url, title); + + try { + BufferedReader readUrlRead = new BufferedReader(new FileReader( + bookUrl)); + String u; + while ((u = readUrlRead.readLine()) != null) { + if (u.contentEquals(url)) { + readUrlRead.close(); + return; + } + } + readUrlRead.close(); + + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } catch (NullPointerException ignored) { + } + try { + BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book, + true)); + BufferedWriter urlWriter = new BufferedWriter(new FileWriter( + bookUrl, true)); + bookWriter.write(title); + urlWriter.write(url); + bookWriter.newLine(); + urlWriter.newLine(); + bookWriter.close(); + urlWriter.close(); + mBookmarkList.add(bookmark); + Collections.sort(mBookmarkList); + notifyBookmarkDataSetChanged(); + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } catch (NullPointerException ignored) { + } + mSearchAdapter.refreshBookmarks(); + } + + @Override + public void update() { + mTitleAdapter.notifyDataSetChanged(); + } + + @Override + /** + * opens a file chooser + * param ValueCallback is the message from the WebView indicating a file chooser + * should be opened + */ + public void openFileChooser(ValueCallback uploadMsg) { + mUploadMessage = uploadMsg; + Intent i = new Intent(Intent.ACTION_GET_CONTENT); + i.addCategory(Intent.CATEGORY_OPENABLE); + i.setType("*/*"); + startActivityForResult(Intent.createChooser(i, "File Chooser"), 1); + } + + @Override + /** + * used to allow uploading into the browser, doesn't get called in KitKat :( + */ + protected void onActivityResult(int requestCode, int resultCode, + Intent intent) { + if (requestCode == 1) { + if (null == mUploadMessage) + return; + Uri result = intent == null || resultCode != RESULT_OK ? null + : intent.getData(); + mUploadMessage.onReceiveValue(result); + mUploadMessage = null; + + } + } + + @Override + /** + * handles long presses for the browser, tries to get the + * url of the item that was clicked and sends it (it can be null) + * to the click handler that does cool stuff with it + */ + public void onLongPress() { + if (mClickHandler == null) { + mClickHandler = new ClickHandler(mContext); + } + Message click = mClickHandler.obtainMessage(); + if (click != null) { + click.setTarget(mClickHandler); + } + mCurrentView.getWebView().requestFocusNodeHref(click); + } + + @Override + public void onShowCustomView(View view, int requestedOrientation, + CustomViewCallback callback) { + if (view == null) { + return; + } + if (mCustomView != null && callback != null) { + callback.onCustomViewHidden(); + return; + } + view.setKeepScreenOn(true); + mOriginalOrientation = getRequestedOrientation(); + FrameLayout decor = (FrameLayout) getWindow().getDecorView(); + mFullscreenContainer = new FullscreenHolder(this); + mCustomView = view; + mFullscreenContainer.addView(mCustomView, COVER_SCREEN_PARAMS); + decor.addView(mFullscreenContainer, COVER_SCREEN_PARAMS); + setFullscreen(true); + mCurrentView.setVisibility(View.GONE); + if (view instanceof FrameLayout) { + if (((FrameLayout) view).getFocusedChild() instanceof VideoView) { + mVideoView = (VideoView) ((FrameLayout) view).getFocusedChild(); + mVideoView.setOnErrorListener(new VideoCompletionListener()); + mVideoView + .setOnCompletionListener(new VideoCompletionListener()); + } + } + mCustomViewCallback = callback; + } + + @Override + public void onHideCustomView() { + if (mCustomView == null || mCustomViewCallback == null + || mCurrentView == null) + return; + Log.i("Lightning", "onHideCustomView"); + mCurrentView.setVisibility(View.VISIBLE); + mCustomView.setKeepScreenOn(false); + setFullscreen(mPreferences.getBoolean("hidestatus", false)); + FrameLayout decor = (FrameLayout) getWindow().getDecorView(); + if (decor != null) { + decor.removeView(mFullscreenContainer); + } + + if (API < 19) { + try { + mCustomViewCallback.onCustomViewHidden(); + } catch (Throwable ignored) { + + } + } + mFullscreenContainer = null; + mCustomView = null; + if (mVideoView != null) { + mVideoView.setOnErrorListener(null); + mVideoView.setOnCompletionListener(null); + mVideoView = null; + } + setRequestedOrientation(mOriginalOrientation); + } + + private class VideoCompletionListener implements + MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener { + + @Override + public boolean onError(MediaPlayer mp, int what, int extra) { + return false; + } + + @Override + public void onCompletion(MediaPlayer mp) { + onHideCustomView(); + } + + } + + /** + * turns on fullscreen mode in the app + * + * @param enabled + * whether to enable fullscreen or not + */ + public void setFullscreen(boolean enabled) { + Window win = getWindow(); + WindowManager.LayoutParams winParams = win.getAttributes(); + final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN; + if (enabled) { + winParams.flags |= bits; + } else { + winParams.flags &= ~bits; + if (mCustomView != null) { + mCustomView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + } else { + mBrowserFrame + .setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + } + } + win.setAttributes(winParams); + } + + /** + * a class extending FramLayout used to display fullscreen videos + */ + static class FullscreenHolder extends FrameLayout { + + public FullscreenHolder(Context ctx) { + super(ctx); + setBackgroundColor(ctx.getResources().getColor( + android.R.color.black)); + } + + @Override + public boolean onTouchEvent(MotionEvent evt) { + return true; + } + + } + + @Override + /** + * a stupid method that returns the bitmap image to display in place of + * a loading video + */ + public Bitmap getDefaultVideoPoster() { + if (mDefaultVideoPoster == null) { + mDefaultVideoPoster = BitmapFactory.decodeResource(getResources(), + android.R.drawable.ic_media_play); + } + return mDefaultVideoPoster; + } + + @Override + /** + * dumb method that returns the loading progress for a video + */ + public View getVideoLoadingProgressView() { + if (mVideoProgressView == null) { + LayoutInflater inflater = LayoutInflater.from(this); + mVideoProgressView = inflater.inflate( + R.layout.video_loading_progress, null); + } + return mVideoProgressView; + } + + @Override + /** + * handles javascript requests to create a new window in the browser + */ + public void onCreateWindow(boolean isUserGesture, Message resultMsg) { + if (resultMsg == null) { + return; + } + newTab("", true); + WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; + transport.setWebView(mCurrentView.getWebView()); + resultMsg.sendToTarget(); + } + + @Override + /** + * returns the Activity instance for this activity, + * very helpful when creating things in other classes... I think + */ + public Activity getActivity() { + return mActivity; + } + + /** + * it hides the action bar, seriously what else were you expecting + */ + @Override + public void hideActionBar() { + if (mActionBar.isShowing() && mFullScreen) { + mActionBar.hide(); + } + } + + @Override + /** + * obviously it shows the action bar if it's hidden + */ + public void showActionBar() { + if (!mActionBar.isShowing() && mFullScreen) { + mActionBar.show(); + } + } + + @Override + /** + * handles a long click on the page, parameter String url + * is the url that should have been obtained from the WebView touch node + * thingy, if it is null, this method tries to deal with it and find a workaround + */ + public void longClickPage(final String url) { + HitTestResult result = null; + if (mCurrentView.getWebView() != null) { + result = mCurrentView.getWebView().getHitTestResult(); + } + if (url != null) { + if (url != null) { + if (result != null) { + if (result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE + || result.getType() == HitTestResult.IMAGE_TYPE) { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(url, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(url); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + if (API > 8) { + Utils.downloadFile(mActivity, url, + mCurrentView.getUserAgent(), + "attachment", false); + } + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(url.replace(Constants.HTTP, "")) + .setMessage( + getResources().getString( + R.string.dialog_image)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_download), + dialogClickListener).show(); + + } else { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(url, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(url); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText( + "label", url); + clipboard.setPrimaryClip(clip); + + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(url) + .setMessage( + getResources().getString( + R.string.dialog_link)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_copy), + dialogClickListener).show(); + } + } else { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(url, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(url); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", + url); + clipboard.setPrimaryClip(clip); + + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(url) + .setMessage( + getResources().getString( + R.string.dialog_link)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_copy), + dialogClickListener).show(); + } + } + } else if (result != null) { + if (result.getExtra() != null) { + final String newUrl = result.getExtra(); + if (result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE + || result.getType() == HitTestResult.IMAGE_TYPE) { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(newUrl, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(newUrl); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + if (API > 8) { + Utils.downloadFile(mActivity, newUrl, + mCurrentView.getUserAgent(), + "attachment", false); + } + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(newUrl.replace(Constants.HTTP, "")) + .setMessage( + getResources().getString( + R.string.dialog_image)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_download), + dialogClickListener).show(); + + } else { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(newUrl, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(newUrl); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", + newUrl); + clipboard.setPrimaryClip(clip); + + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(newUrl) + .setMessage( + getResources().getString( + R.string.dialog_link)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_copy), + dialogClickListener).show(); + } + + } + + } + + } + + /** + * This method lets the search bar know that the page is currently loading + * and that it should display the stop icon to indicate to the user that + * pressing it stops the page from loading + */ + public void setIsLoading() { + if (!mSearch.hasFocus()) { + mIcon = mDeleteIcon; + mSearch.setCompoundDrawables(null, null, mDeleteIcon, null); + } + } + + /** + * This tells the search bar that the page is finished loading and it should + * display the refresh icon + */ + public void setIsFinishedLoading() { + if (!mSearch.hasFocus()) { + mIcon = mRefreshIcon; + mSearch.setCompoundDrawables(null, null, mRefreshIcon, null); + } + } + + /** + * handle presses on the refresh icon in the search bar, if the page is + * loading, stop the page, if it is done loading refresh the page. + * + * See setIsFinishedLoading and setIsLoading for displaying the correct icon + */ + public void refreshOrStop() { + if (mCurrentView != null) { + if (mCurrentView.getProgress() < 100) { + mCurrentView.stopLoading(); + } else { + mCurrentView.reload(); + } + } + } + + @Override + public boolean isActionBarShowing() { + if (mActionBar != null) { + return mActionBar.isShowing(); + } else { + return false; + } + } + +} \ No newline at end of file diff --git a/src/acr/browser/lightning/BrowserController.java b/src/acr/browser/lightning/BrowserController.java new file mode 100644 index 0000000..9c86524 --- /dev/null +++ b/src/acr/browser/lightning/BrowserController.java @@ -0,0 +1,49 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +import android.app.Activity; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.Message; +import android.view.View; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient.CustomViewCallback; +import android.webkit.WebView; + +public interface BrowserController { + public void updateUrl(String title); + + public void updateProgress(int n); + + public void updateHistory(String title, String url); + + public void openFileChooser(ValueCallback uploadMsg); + + public void update(); + + public void onLongPress(); + + public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback); + + public void onHideCustomView(); + + public Bitmap getDefaultVideoPoster(); + + public View getVideoLoadingProgressView(); + + public void onCreateWindow(boolean isUserGesture, Message resultMsg); + + public Activity getActivity(); + + public void hideActionBar(); + + public void showActionBar(); + + public void longClickPage(String url); + + public void openBookmarkPage(WebView view); + + public boolean isActionBarShowing(); +} diff --git a/src/acr/browser/lightning/ClickHandler.java b/src/acr/browser/lightning/ClickHandler.java new file mode 100644 index 0000000..d9f2b4c --- /dev/null +++ b/src/acr/browser/lightning/ClickHandler.java @@ -0,0 +1,31 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +import android.content.Context; +import android.os.Handler; +import android.os.Message; + +public class ClickHandler extends Handler { + + private BrowserController mBrowserController; + + public ClickHandler(Context context) { + try { + mBrowserController = (BrowserController) context; + } catch (ClassCastException e) { + throw new ClassCastException(context.toString() + + " must implement BrowserController"); + } + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + String url = null; + url = msg.getData().getString("url"); + mBrowserController.longClickPage(url); + } + +} \ No newline at end of file diff --git a/src/acr/browser/barebones/utilities/FinalVariables.java b/src/acr/browser/lightning/Constants.java similarity index 61% rename from src/acr/browser/barebones/utilities/FinalVariables.java rename to src/acr/browser/lightning/Constants.java index 44ff39e..bd46d4f 100644 --- a/src/acr/browser/barebones/utilities/FinalVariables.java +++ b/src/acr/browser/lightning/Constants.java @@ -1,13 +1,16 @@ -package acr.browser.barebones.utilities; +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; import android.os.Environment; +public class Constants { -public class FinalVariables { + public Constants() { + // TODO Auto-generated constructor stub + } - public static final int MAX_TABS = 5; - public static final int MAX_BOOKMARKS = 100; - public static final boolean PAID_VERSION = false; public static final String DESKTOP_USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/20 Safari/537.17"; public static final String MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; U; Android 4.2; en-us; Nexus 4 Build/JOP24G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"; public static final int API = android.os.Build.VERSION.SDK_INT; @@ -16,13 +19,20 @@ public class FinalVariables { public static final String BING_SEARCH = "http://www.bing.com/search?q="; public static final String DUCK_SEARCH = "https://duckduckgo.com/?t=lightning&q="; public static final String DUCK_LITE_SEARCH = "https://duckduckgo.com/lite/?t=lightning&q="; - public static final String STARTPAGE_SEARCH = "https://startpage.com/do/m/mobilesearch?language=english&query="; - public static final String HOMEPAGE = "https://www.google.com"; + public static final String STARTPAGE_MOBILE_SEARCH = "https://startpage.com/do/m/mobilesearch?language=english&query="; + public static final String STARTPAGE_SEARCH = "https://startpage.com/do/search?language=english&query="; + public static final String ANDROID_SEARCH = "http://www.androidsearchresult.com/search.pg?aff=olb&keyword="; + public static final String HOMEPAGE = "about:home"; public static final String BAIDU_SEARCH = "http://www.baidu.com/s?wd="; public static final String YANDEX_SEARCH = "http://yandex.ru/yandsearch?lr=21411&text="; - public static final String ADVANCED_SETTINGS_INTENT = "android.intent.action.ADVANCED_SETTINGS"; - public static final String SETTINGS_INTENT = "android.intent.action.SETTINGS"; - public static final String INCOGNITO_INTENT = "android.intent.action.BROWSER_INCOGNITO"; + public static final String ADVANCED_SETTINGS_INTENT = "android.intent.action.LIGHTNING_ADVANCED_SETTINGS"; + public static final String LICENSE_INTENT = "android.intent.action.LIGHTNING_LICENSE"; + public static final String SETTINGS_INTENT = "android.intent.action.LIGHTNING_SETTINGS"; + public static final String INCOGNITO_INTENT = "android.intent.action.LIGHTNING_INCOGNITO"; public static final String EXTERNAL_STORAGE = Environment.getExternalStorageDirectory().toString(); + public static final String SEPARATOR = "\\|\\$\\|SEPARATOR\\|\\$\\|"; + public static final String HTTP = "http://"; + public static final String HTTPS = "https://"; + public static final String FILE = "file://"; } diff --git a/src/acr/browser/lightning/DatabaseHandler.java b/src/acr/browser/lightning/DatabaseHandler.java new file mode 100644 index 0000000..68f2e16 --- /dev/null +++ b/src/acr/browser/lightning/DatabaseHandler.java @@ -0,0 +1,199 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +import java.util.ArrayList; +import java.util.List; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +public class DatabaseHandler extends SQLiteOpenHelper { + + // All Static variables + // Database Version + private static final int DATABASE_VERSION = 1; + + // Database Name + public static final String DATABASE_NAME = "historyManager"; + + // HistoryItems table name + public static final String TABLE_HISTORY = "history"; + + // HistoryItems Table Columns names + public static final String KEY_ID = "id"; + public static final String KEY_URL = "url"; + public static final String KEY_TITLE = "title"; + public static SQLiteDatabase mDatabase; + + public DatabaseHandler(Context context) { + super(context.getApplicationContext(), DATABASE_NAME, null, + DATABASE_VERSION); + mDatabase = this.getWritableDatabase(); + } + + // Creating Tables + @Override + public void onCreate(SQLiteDatabase db) { + String CREATE_HISTORY_TABLE = "CREATE TABLE " + TABLE_HISTORY + "(" + + KEY_ID + " INTEGER PRIMARY KEY," + KEY_URL + " TEXT," + + KEY_TITLE + " TEXT" + ")"; + db.execSQL(CREATE_HISTORY_TABLE); + } + + // Upgrading database + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + // Drop older table if existed + db.execSQL("DROP TABLE IF EXISTS " + TABLE_HISTORY); + + // Create tables again + onCreate(db); + } + + public boolean isOpen(){ + if(mDatabase != null) + return mDatabase.isOpen(); + else + return false; + } + + @Override + public synchronized void close() { + if(mDatabase != null) + mDatabase.close(); + super.close(); + } + + /** + * All CRUD(Create, Read, Update, Delete) Operations + */ + + public synchronized void delete(String url) { + String n = getHistoryItem(url); + if(n != null) + deleteHistoryItem(n); + } + + // Adding new item + public synchronized void addHistoryItem(HistoryItem item) { + ContentValues values = new ContentValues(); + values.put(KEY_URL, item.getUrl()); // HistoryItem Name + values.put(KEY_TITLE, item.getTitle()); // HistoryItem Phone + // Inserting Row + mDatabase.insert(TABLE_HISTORY, null, values); + } + + // Getting single item + String getHistoryItem(String url) { + Cursor cursor = mDatabase.query(TABLE_HISTORY, new String[] { KEY_ID, KEY_URL, + KEY_TITLE }, KEY_URL + "=?", new String[] { url }, null, null, + null, null); + String m = null; + if (cursor != null) { + cursor.moveToFirst(); + m = cursor.getString(0); + + cursor.close(); + } + // return item + return m; + } + + public List findItemsContaining(String search) { + List itemList = new ArrayList(); + //select query + String selectQuery = "SELECT * FROM " +TABLE_HISTORY +" WHERE "+KEY_TITLE+" LIKE '%" + search + "%'"; + Cursor cursor = mDatabase.rawQuery(selectQuery, null); + + // looping through all rows and adding to list + if (cursor.moveToLast()) { + do { + HistoryItem item = new HistoryItem(); + item.setID(Integer.parseInt(cursor.getString(0))); + item.setUrl(cursor.getString(1)); + item.setTitle(cursor.getString(2)); + item.setImageId(R.drawable.ic_history); + // Adding item to list + itemList.add(item); + } while (cursor.moveToPrevious()); + } + cursor.close(); + // return item list + return itemList; + } + + public List getLastHundredItems() { + List itemList = new ArrayList(); + String selectQuery = "SELECT * FROM " + TABLE_HISTORY; + + Cursor cursor = mDatabase.rawQuery(selectQuery, null); + int counter = 0; + if (cursor.moveToLast()) { + do { + HistoryItem item = new HistoryItem(); + item.setID(Integer.parseInt(cursor.getString(0))); + item.setUrl(cursor.getString(1)); + item.setTitle(cursor.getString(2)); + item.setImageId(R.drawable.ic_history); + itemList.add(item); + counter++; + } while (cursor.moveToPrevious() && counter < 100); + } + cursor.close(); + return itemList; + } + + public List getAllHistoryItems() { + List itemList = new ArrayList(); + String selectQuery = "SELECT * FROM " + TABLE_HISTORY; + + Cursor cursor = mDatabase.rawQuery(selectQuery, null); + + if (cursor.moveToFirst()) { + do { + HistoryItem item = new HistoryItem(); + item.setID(Integer.parseInt(cursor.getString(0))); + item.setUrl(cursor.getString(1)); + item.setTitle(cursor.getString(2)); + item.setImageId(R.drawable.ic_history); + itemList.add(item); + } while (cursor.moveToNext()); + } + cursor.close(); + return itemList; + } + + // Updating single item + public synchronized int updateHistoryItem(HistoryItem item) { + + ContentValues values = new ContentValues(); + values.put(KEY_URL, item.getUrl()); + values.put(KEY_TITLE, item.getTitle()); + int n = mDatabase.update(TABLE_HISTORY, values, KEY_ID + " = ?", + new String[] { String.valueOf(item.getId()) }); + // updating row + return n; + } + + // Deleting single item + public synchronized void deleteHistoryItem(String id) { + mDatabase.delete(TABLE_HISTORY, KEY_ID + " = ?", + new String[] { String.valueOf(id) }); + } + + // Getting items Count + public int getHistoryItemsCount() { + String countQuery = "SELECT * FROM " + TABLE_HISTORY; + Cursor cursor = mDatabase.rawQuery(countQuery, null); + cursor.close(); + + // return count + return cursor.getCount(); + } + +} diff --git a/src/acr/browser/lightning/DownloadHandler.java b/src/acr/browser/lightning/DownloadHandler.java new file mode 100644 index 0000000..d831896 --- /dev/null +++ b/src/acr/browser/lightning/DownloadHandler.java @@ -0,0 +1,215 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + + + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.DownloadManager; +import android.content.ActivityNotFoundException; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.net.Uri; +import android.os.Environment; +import android.text.TextUtils; +import android.util.Log; +import android.webkit.CookieManager; +import android.webkit.URLUtil; +import android.widget.Toast; + +/** + * Handle download requests + */ +public class DownloadHandler { + + + private static final String LOGTAG = "DLHandler"; + private static Activity mActivity; + + /** + * Notify the host application a download should be done, or that + * the data should be streamed if a streaming viewer is available. + * @param activity Activity requesting the download. + * @param url The full url to the content that should be downloaded + * @param userAgent User agent of the downloading application. + * @param contentDisposition Content-disposition http header, if present. + * @param mimetype The mimetype of the content reported by the server + * @param privateBrowsing If the request is coming from a private browsing tab. + */ + public static void onDownloadStart(Activity activity, String url, + String userAgent, String contentDisposition, String mimetype, + boolean privateBrowsing) { + mActivity = activity; + // if we're dealing wih A/V content that's not explicitly marked + // for download, check if it's streamable. + if (contentDisposition == null + || !contentDisposition.regionMatches( + true, 0, "attachment", 0, 10)) { + // query the package manager to see if there's a registered handler + // that matches. + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setDataAndType(Uri.parse(url), mimetype); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + ResolveInfo info = activity.getPackageManager().resolveActivity(intent, + PackageManager.MATCH_DEFAULT_ONLY); + if (info != null) { + ComponentName myName = activity.getComponentName(); + // If we resolved to ourselves, we don't want to attempt to + // load the url only to try and download it again. + if (!myName.getPackageName().equals( + info.activityInfo.packageName) + || !myName.getClassName().equals( + info.activityInfo.name)) { + // someone (other than us) knows how to handle this mime + // type with this scheme, don't download. + try { + activity.startActivity(intent); + return; + } catch (ActivityNotFoundException ex) { + // Best behavior is to fall back to a download in this + // case + } + } + } + } + onDownloadStartNoStream(activity, url, userAgent, contentDisposition, + mimetype, privateBrowsing); + } + + // This is to work around the fact that java.net.URI throws Exceptions + // instead of just encoding URL's properly + // Helper method for onDownloadStartNoStream + private static String encodePath(String path) { + char[] chars = path.toCharArray(); + + boolean needed = false; + for (char c : chars) { + if (c == '[' || c == ']' || c == '|') { + needed = true; + break; + } + } + if (needed == false) { + return path; + } + + StringBuilder sb = new StringBuilder(""); + for (char c : chars) { + if (c == '[' || c == ']' || c == '|') { + sb.append('%'); + sb.append(Integer.toHexString(c)); + } else { + sb.append(c); + } + } + + return sb.toString(); + } + + /** + * Notify the host application a download should be done, even if there + * is a streaming viewer available for thise type. + * @param activity Activity requesting the download. + * @param url The full url to the content that should be downloaded + * @param userAgent User agent of the downloading application. + * @param contentDisposition Content-disposition http header, if present. + * @param mimetype The mimetype of the content reported by the server + * @param privateBrowsing If the request is coming from a private browsing tab. + */ + /*package */ static void onDownloadStartNoStream(Activity activity, + String url, String userAgent, String contentDisposition, + String mimetype, boolean privateBrowsing) { + + String filename = URLUtil.guessFileName(url, + contentDisposition, mimetype); + + // Check to see if we have an SDCard + String status = Environment.getExternalStorageState(); + if (!status.equals(Environment.MEDIA_MOUNTED)) { + int title; + String msg; + + // Check to see if the SDCard is busy, same as the music app + if (status.equals(Environment.MEDIA_SHARED)) { + msg = activity.getString(R.string.download_sdcard_busy_dlg_msg); + title = R.string.download_sdcard_busy_dlg_title; + } else { + msg = activity.getString(R.string.download_no_sdcard_dlg_msg, filename); + title = R.string.download_no_sdcard_dlg_title; + } + + new AlertDialog.Builder(activity) + .setTitle(title) + .setIcon(android.R.drawable.ic_dialog_alert) + .setMessage(msg) + .setPositiveButton(R.string.action_ok, null) + .show(); + return; + } + + // java.net.URI is a lot stricter than KURL so we have to encode some + // extra characters. Fix for b 2538060 and b 1634719 + WebAddress webAddress; + try { + webAddress = new WebAddress(url); + webAddress.setPath(encodePath(webAddress.getPath())); + } catch (Exception e) { + // This only happens for very bad urls, we want to chatch the + // exception here + Log.e(LOGTAG, "Exception trying to parse url:" + url); + return; + } + + String addressString = webAddress.toString(); + Uri uri = Uri.parse(addressString); + final DownloadManager.Request request; + try { + request = new DownloadManager.Request(uri); + } catch (IllegalArgumentException e) { + Toast.makeText(activity, R.string.cannot_download, Toast.LENGTH_SHORT).show(); + return; + } + request.setMimeType(mimetype); + // set downloaded file destination to /sdcard/Download. + // or, should it be set to one of several Environment.DIRECTORY* dirs depending on mimetype? + + String location = mActivity.getSharedPreferences(PreferenceConstants.PREFERENCES, 0) + .getString(PreferenceConstants.DOWNLOAD_DIRECTORY, Environment.DIRECTORY_DOWNLOADS); + request.setDestinationInExternalPublicDir(location, filename); + // let this downloaded file be scanned by MediaScanner - so that it can + // show up in Gallery app, for example. + request.allowScanningByMediaScanner(); + request.setDescription(webAddress.getHost()); + // XXX: Have to use the old url since the cookies were stored using the + // old percent-encoded url. + String cookies = CookieManager.getInstance().getCookie(url); + request.addRequestHeader("cookie", cookies); + request.setNotificationVisibility( + DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); + if (mimetype == null) { + if (TextUtils.isEmpty(addressString)) { + return; + } + // We must have long pressed on a link or image to download it. We + // are not sure of the mimetype in this case, so do a head request + new FetchUrlMimeType(activity, request, addressString, cookies, + userAgent).start(); + } else { + final DownloadManager manager + = (DownloadManager) activity.getSystemService(Context.DOWNLOAD_SERVICE); + new Thread("Browser download") { + public void run() { + manager.enqueue(request); + } + }.start(); + } + Toast.makeText(activity, R.string.download_pending, Toast.LENGTH_SHORT) + .show(); + } + +} \ No newline at end of file diff --git a/src/acr/browser/lightning/FetchMimeUrlType.java b/src/acr/browser/lightning/FetchMimeUrlType.java new file mode 100644 index 0000000..2fe25bd --- /dev/null +++ b/src/acr/browser/lightning/FetchMimeUrlType.java @@ -0,0 +1,109 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + + +import org.apache.http.Header; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpHead; +import android.app.DownloadManager; +import android.content.Context; +import android.net.http.AndroidHttpClient; +import android.os.Environment; +import android.webkit.MimeTypeMap; +import android.webkit.URLUtil; + +import java.io.IOException; + +/** + * This class is used to pull down the http headers of a given URL so that + * we can analyse the mimetype and make any correction needed before we give + * the URL to the download manager. + * This operation is needed when the user long-clicks on a link or image and + * we don't know the mimetype. If the user just clicks on the link, we will + * do the same steps of correcting the mimetype down in + * android.os.webkit.LoadListener rather than handling it here. + * + */ +class FetchUrlMimeType extends Thread { + + private Context mContext; + private DownloadManager.Request mRequest; + private String mUri; + private String mCookies; + private String mUserAgent; + + public FetchUrlMimeType(Context context, DownloadManager.Request request, + String uri, String cookies, String userAgent) { + mContext = context.getApplicationContext(); + mRequest = request; + mUri = uri; + mCookies = cookies; + mUserAgent = userAgent; + } + + @Override + public void run() { + // User agent is likely to be null, though the AndroidHttpClient + // seems ok with that. + AndroidHttpClient client = AndroidHttpClient.newInstance(mUserAgent); + + HttpHead request = new HttpHead(mUri); + + if (mCookies != null && mCookies.length() > 0) { + request.addHeader("Cookie", mCookies); + } + + HttpResponse response; + String mimeType = null; + String contentDisposition = null; + try { + response = client.execute(request); + // We could get a redirect here, but if we do lets let + // the download manager take care of it, and thus trust that + // the server sends the right mimetype + if (response.getStatusLine().getStatusCode() == 200) { + Header header = response.getFirstHeader("Content-Type"); + if (header != null) { + mimeType = header.getValue(); + final int semicolonIndex = mimeType.indexOf(';'); + if (semicolonIndex != -1) { + mimeType = mimeType.substring(0, semicolonIndex); + } + } + Header contentDispositionHeader = response.getFirstHeader("Content-Disposition"); + if (contentDispositionHeader != null) { + contentDisposition = contentDispositionHeader.getValue(); + } + } + } catch (IllegalArgumentException ex) { + request.abort(); + } catch (IOException ex) { + request.abort(); + } finally { + client.close(); + } + + if (mimeType != null) { + if (mimeType.equalsIgnoreCase("text/plain") || + mimeType.equalsIgnoreCase("application/octet-stream")) { + String newMimeType = + MimeTypeMap.getSingleton().getMimeTypeFromExtension( + MimeTypeMap.getFileExtensionFromUrl(mUri)); + if (newMimeType != null) { + mRequest.setMimeType(newMimeType); + } + } + String filename = URLUtil.guessFileName(mUri, contentDisposition, + mimeType); + mRequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename); + } + + // Start the download + DownloadManager manager = (DownloadManager) mContext.getSystemService( + Context.DOWNLOAD_SERVICE); + manager.enqueue(mRequest); + } + +} diff --git a/src/acr/browser/lightning/HistoryItem.java b/src/acr/browser/lightning/HistoryItem.java new file mode 100644 index 0000000..d660024 --- /dev/null +++ b/src/acr/browser/lightning/HistoryItem.java @@ -0,0 +1,101 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +import android.graphics.Bitmap; + +public class HistoryItem implements Comparable { + + // private variables + private int mId; + private String mUrl; + private String mTitle; + private Bitmap mBitmap; + private int mImageId; + + // Empty constructor + public HistoryItem() { + + } + + // constructor + public HistoryItem(int id, String url, String title) { + this.mId = id; + this.mUrl = url; + this.mTitle = title; + this.mBitmap = null; + } + + // constructor + public HistoryItem(String url, String title) { + this.mUrl = url; + this.mTitle = title; + this.mBitmap = null; + } + + // constructor + public HistoryItem(String url, String title, int imageId) { + this.mUrl = url; + this.mTitle = title; + this.mBitmap = null; + this.mImageId = imageId; + } + + // getting ID + public int getId() { + return this.mId; + } + + public int getImageId(){ + return this.mImageId; + } + + // setting id + public void setID(int id) { + this.mId = id; + } + + public void setImageId(int id){ + this.mImageId = id; + } + + public void setBitmap(Bitmap image) { + mBitmap = image; + } + + public Bitmap getBitmap() { + return mBitmap; + } + + // getting name + public String getUrl() { + return this.mUrl; + } + + // setting name + public void setUrl(String url) { + this.mUrl = url; + } + + // getting phone number + public String getTitle() { + return this.mTitle; + } + + // setting phone number + public void setTitle(String title) { + this.mTitle = title; + } + + @Override + public String toString() { + return mTitle; + } + + @Override + public int compareTo(HistoryItem another) { + return mTitle.compareTo(another.mTitle); + } + +} \ No newline at end of file diff --git a/src/acr/browser/lightning/HistoryPageVariables.java b/src/acr/browser/lightning/HistoryPageVariables.java new file mode 100644 index 0000000..1abf411 --- /dev/null +++ b/src/acr/browser/lightning/HistoryPageVariables.java @@ -0,0 +1,13 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +public class HistoryPageVariables { + public static final String Heading = "History
    "; + public static final String Part1 = "

    "; + public static final String Part3 = "

    "; + public static final String Part4 = "

    "; + public static final String End = ""; +} diff --git a/src/acr/browser/lightning/HomepageVariables.java b/src/acr/browser/lightning/HomepageVariables.java new file mode 100644 index 0000000..0cb32de --- /dev/null +++ b/src/acr/browser/lightning/HomepageVariables.java @@ -0,0 +1,23 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +public class HomepageVariables { + public static final String HEAD = "" + + "" + + "" + + "" + + "Homepage" + + "" + + "
















    " + + ""; +} diff --git a/src/acr/browser/lightning/IncognitoActivity.java b/src/acr/browser/lightning/IncognitoActivity.java new file mode 100644 index 0000000..d65dd47 --- /dev/null +++ b/src/acr/browser/lightning/IncognitoActivity.java @@ -0,0 +1,2254 @@ +/* + * Copyright 2014 A.C.R. Development + */ + +package acr.browser.lightning; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import android.app.ActionBar; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources.Theme; +import android.content.res.TypedArray; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.media.MediaPlayer; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Message; +import android.provider.Browser; +import android.support.v4.app.ActionBarDrawerToggle; +import android.support.v4.widget.DrawerLayout; +import android.text.TextUtils; +import android.util.Log; +import android.util.TypedValue; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnKeyListener; +import android.view.View.OnTouchListener; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient.CustomViewCallback; +import android.webkit.CookieManager; +import android.webkit.CookieSyncManager; +import android.webkit.WebIconDatabase; +import android.webkit.WebView; +import android.webkit.WebView.HitTestResult; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ListView; +import android.widget.AutoCompleteTextView; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.VideoView; +import android.widget.TextView.OnEditorActionListener; + +public class IncognitoActivity extends Activity implements BrowserController { + private static DrawerLayout mDrawerLayout; + private static ListView mDrawerList; + private static RelativeLayout mDrawer; + private static LinearLayout mDrawerRight; + private static ListView mDrawerListRight; + private static TextView mNewTab; + private static ActionBarDrawerToggle mDrawerToggle; + private List mWebViews = new ArrayList(); + private static List mIdList = new ArrayList(); + private LightningView mCurrentView; + private static int mIdGenerator; + private static LightningViewAdapter mTitleAdapter; + private static List mBookmarkList; + private static BookmarkViewAdapter mBookmarkAdapter; + private static AutoCompleteTextView mSearch; + private static ClickHandler mClickHandler; + private static ProgressBar mProgress; + private static boolean mSystemBrowser = false; + private static ValueCallback mUploadMessage; + private static View mCustomView; + private static int mOriginalOrientation; + private static int mActionBarSize; + private static ActionBar mActionBar; + private static boolean mFullScreen; + private static FrameLayout mBrowserFrame; + private static FullscreenHolder mFullscreenContainer; + private static CustomViewCallback mCustomViewCallback; + private static final FrameLayout.LayoutParams COVER_SCREEN_PARAMS = new FrameLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT); + private static Bitmap mDefaultVideoPoster; + private static View mVideoProgressView; + private static DatabaseHandler mHistoryHandler; + private static SQLiteDatabase mHistoryDatabase; + private static SharedPreferences mPreferences; + private static SharedPreferences.Editor mEditPrefs; + private static Context mContext; + private static Bitmap mWebpageBitmap; + private static String mSearchText; + private static Activity mActivity; + private static CookieManager mCookieManager; + private static final int API = android.os.Build.VERSION.SDK_INT; + private static Drawable mDeleteIcon; + private static Drawable mRefreshIcon; + private static Drawable mCopyIcon; + private static Drawable mIcon; + private static int mActionBarSizeDp; + private static String mHomepage; + private static boolean mIsNewIntent = false; + private static VideoView mVideoView; + private static SearchAdapter mSearchAdapter; + private static BitmapDrawable mIncognitoIcon; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + initialize(); + } + + private synchronized void initialize() { + setContentView(R.layout.activity_main); + TypedValue typedValue = new TypedValue(); + Theme theme = getTheme(); + theme.resolveAttribute(R.attr.numberColor, typedValue, true); + mPreferences = getSharedPreferences(PreferenceConstants.PREFERENCES, 0); + mEditPrefs = mPreferences.edit(); + mContext = this; + if (mIdList != null) { + mIdList.clear(); + } else { + mIdList = new ArrayList(); + } + if (mWebViews != null) { + mWebViews.clear(); + } else { + mWebViews = new ArrayList(); + } + + mActivity = this; + mClickHandler = new ClickHandler(this); + mBrowserFrame = (FrameLayout) findViewById(R.id.content_frame); + mProgress = (ProgressBar) findViewById(R.id.activity_bar); + mProgress.setVisibility(View.GONE); + mNewTab = (TextView) findViewById(R.id.new_tab_button); + mDrawer = (RelativeLayout) findViewById(R.id.drawer); + mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); + mDrawerList = (ListView) findViewById(R.id.left_drawer); + mDrawerRight = (LinearLayout) findViewById(R.id.right_drawer); + mDrawerListRight = (ListView) findViewById(R.id.right_drawer_list); + Bitmap bm = BitmapFactory.decodeResource(getResources(), + R.drawable.ic_action_incognito); + mIncognitoIcon = new BitmapDrawable(getResources(), bm); + mWebpageBitmap = BitmapFactory.decodeResource(getResources(), + R.drawable.ic_webpage); + mActionBar = getActionBar(); + final TypedArray styledAttributes = mContext.getTheme() + .obtainStyledAttributes( + new int[] { android.R.attr.actionBarSize }); + mActionBarSize = (int) styledAttributes.getDimension(0, 0); + if (pixelsToDp(mActionBarSize) < 48) { + mActionBarSize = getDp(48); + } + mActionBarSizeDp = pixelsToDp(mActionBarSize); + styledAttributes.recycle(); + + mHomepage = mPreferences.getString(PreferenceConstants.HOMEPAGE, + Constants.HOMEPAGE); + + mTitleAdapter = new LightningViewAdapter(this, R.layout.tab_list_item, + mWebViews); + mDrawerList.setAdapter(mTitleAdapter); + mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); + mDrawerList + .setOnItemLongClickListener(new DrawerItemLongClickListener()); + + mBookmarkList = getBookmarks(); + mBookmarkAdapter = new BookmarkViewAdapter(this, + R.layout.bookmark_list_item, mBookmarkList); + mDrawerListRight.setAdapter(mBookmarkAdapter); + mDrawerListRight + .setOnItemClickListener(new BookmarkItemClickListener()); + mDrawerListRight + .setOnItemLongClickListener(new BookmarkItemLongClickListener()); + + if (mHistoryHandler == null) { + mHistoryHandler = new DatabaseHandler(this); + } else if (!mHistoryHandler.isOpen()) { + mHistoryHandler = new DatabaseHandler(this); + } + mHistoryDatabase = mHistoryHandler.getReadableDatabase(); + + // set display options of the ActionBar + mActionBar.setDisplayShowTitleEnabled(false); + mActionBar.setDisplayShowCustomEnabled(true); + mActionBar.setDisplayShowHomeEnabled(true); + mActionBar.setDisplayHomeAsUpEnabled(true); + mActionBar.setCustomView(R.layout.search); + + RelativeLayout back = (RelativeLayout) findViewById(R.id.action_back); + RelativeLayout forward = (RelativeLayout) findViewById(R.id.action_forward); + if (back != null) { + back.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (mCurrentView != null) { + if (mCurrentView.canGoBack()) { + mCurrentView.goBack(); + } else { + deleteTab(mDrawerList.getCheckedItemPosition()); + } + } + } + + }); + } + if (forward != null) { + forward.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (mCurrentView != null) { + if (mCurrentView.canGoForward()) { + mCurrentView.goForward(); + } + } + } + + }); + } + + // create the search EditText in the ActionBar + mSearch = (AutoCompleteTextView) mActionBar.getCustomView() + .findViewById(R.id.search); + mDeleteIcon = getResources().getDrawable(R.drawable.ic_action_delete); + mDeleteIcon.setBounds(0, 0, Utils.convertToDensityPixels(mContext, 24), + Utils.convertToDensityPixels(mContext, 24)); + mRefreshIcon = getResources().getDrawable(R.drawable.ic_action_refresh); + mRefreshIcon.setBounds(0, 0, + Utils.convertToDensityPixels(mContext, 24), + Utils.convertToDensityPixels(mContext, 24)); + mCopyIcon = getResources().getDrawable(R.drawable.ic_action_copy); + mCopyIcon.setBounds(0, 0, Utils.convertToDensityPixels(mContext, 24), + Utils.convertToDensityPixels(mContext, 24)); + mIcon = mRefreshIcon; + mSearch.setCompoundDrawables(null, null, mRefreshIcon, null); + mSearch.setOnKeyListener(new OnKeyListener() { + + @Override + public boolean onKey(View arg0, int arg1, KeyEvent arg2) { + + switch (arg1) { + case KeyEvent.KEYCODE_ENTER: + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(mSearch.getWindowToken(), 0); + searchTheWeb(mSearch.getText().toString()); + if (mCurrentView != null) { + mCurrentView.requestFocus(); + } + return true; + default: + break; + } + return false; + } + + }); + mSearch.setOnFocusChangeListener(new View.OnFocusChangeListener() { + + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (!hasFocus && mCurrentView != null) { + if (mCurrentView != null) { + if (mCurrentView.getProgress() < 100) { + setIsLoading(); + } else { + setIsFinishedLoading(); + } + } + updateUrl(mCurrentView.getUrl()); + } else if (hasFocus) { + mIcon = mCopyIcon; + mSearch.setCompoundDrawables(null, null, mCopyIcon, null); + } + } + }); + mSearch.setOnEditorActionListener(new OnEditorActionListener() { + + @Override + public boolean onEditorAction(TextView arg0, int actionId, + KeyEvent arg2) { + // hide the keyboard and search the web when the enter key + // button is pressed + if (actionId == EditorInfo.IME_ACTION_GO + || actionId == EditorInfo.IME_ACTION_DONE + || actionId == EditorInfo.IME_ACTION_NEXT + || actionId == EditorInfo.IME_ACTION_SEND + || actionId == EditorInfo.IME_ACTION_SEARCH + || (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(mSearch.getWindowToken(), 0); + searchTheWeb(mSearch.getText().toString()); + if (mCurrentView != null) { + mCurrentView.requestFocus(); + } + return true; + } + return false; + } + + }); + + mSearch.setOnTouchListener(new OnTouchListener() { + + @Override + public boolean onTouch(View v, MotionEvent event) { + if (mSearch.getCompoundDrawables()[2] != null) { + boolean tappedX = event.getX() > (mSearch.getWidth() + - mSearch.getPaddingRight() - mIcon + .getIntrinsicWidth()); + if (tappedX) { + if (event.getAction() == MotionEvent.ACTION_UP) { + if (mSearch.hasFocus()) { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", + mSearch.getText().toString()); + clipboard.setPrimaryClip(clip); + Utils.showToast( + mContext, + mContext.getResources().getString( + R.string.message_text_copied)); + } else { + refreshOrStop(); + } + } + return true; + } + } + return false; + } + + }); + + mSystemBrowser = getSystemBrowser(); + Thread initialize = new Thread(new Runnable() { + + @Override + public void run() { + initializeSearchSuggestions(mSearch); + } + + }); + initialize.run(); + // ActionBarDrawerToggle ties together the the proper interactions + // between the sliding drawer and the action bar app icon + mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */ + mDrawerLayout, /* DrawerLayout object */ + R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ + R.string.drawer_open, /* "open drawer" description for accessibility */ + R.string.drawer_close /* "close drawer" description for accessibility */ + ) { + public void onDrawerClosed(View view) { + super.onDrawerClosed(view); + if (view.equals(mDrawer)) { + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_UNLOCKED, mDrawerRight); + } else if (view.equals(mDrawerRight)) { + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_UNLOCKED, mDrawer); + } + } + + public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + if (drawerView.equals(mDrawer)) { + mDrawerLayout.closeDrawer(mDrawerRight); + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawerRight); + } else if (drawerView.equals(mDrawerRight)) { + mDrawerLayout.closeDrawer(mDrawer); + mDrawerLayout.setDrawerLockMode( + DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawer); + } + } + + @Override + public void onDrawerSlide(View drawerView, float slideOffset) { + super.onDrawerSlide(drawerView, slideOffset); + + } + + }; + + mNewTab.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View arg0) { + newTab(null, true); + } + + }); + + mDrawerLayout.setDrawerListener(mDrawerToggle); + + initializePreferences(); + initializeTabs(); + + if (API < 19) { + WebIconDatabase.getInstance().open( + getDir("icons", MODE_PRIVATE).getPath()); + } + } + + public synchronized void initializeTabs() { + mIdGenerator = 0; + + String url = null; + + newTab(url, true); + + } + + public static String[] getArray(String input) { + return input.split("\\|\\$\\|SEPARATOR\\|\\$\\|"); + } + + public void initializePreferences() { + if (mPreferences == null) { + mPreferences = getSharedPreferences( + PreferenceConstants.PREFERENCES, 0); + } + mFullScreen = mPreferences.getBoolean(PreferenceConstants.FULL_SCREEN, + false); + if (mPreferences.getBoolean(PreferenceConstants.HIDE_STATUS_BAR, false)) { + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, + WindowManager.LayoutParams.FLAG_FULLSCREEN); + } else { + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + } + + switch (mPreferences.getInt(PreferenceConstants.SEARCH, 1)) { + case 0: + mSearchText = mPreferences.getString( + PreferenceConstants.SEARCH_URL, Constants.GOOGLE_SEARCH); + if (!mSearchText.startsWith(Constants.HTTP) + && !mSearchText.startsWith(Constants.HTTPS)) { + mSearchText = Constants.GOOGLE_SEARCH; + } + break; + case 1: + mSearchText = Constants.GOOGLE_SEARCH; + break; + case 2: + mSearchText = Constants.ANDROID_SEARCH; + break; + case 3: + mSearchText = Constants.BING_SEARCH; + break; + case 4: + mSearchText = Constants.YAHOO_SEARCH; + break; + case 5: + mSearchText = Constants.STARTPAGE_SEARCH; + break; + case 6: + mSearchText = Constants.STARTPAGE_MOBILE_SEARCH; + break; + case 7: + mSearchText = Constants.DUCK_SEARCH; + break; + case 8: + mSearchText = Constants.DUCK_LITE_SEARCH; + break; + case 9: + mSearchText = Constants.BAIDU_SEARCH; + break; + case 10: + mSearchText = Constants.YANDEX_SEARCH; + break; + } + + mCookieManager = CookieManager.getInstance(); + CookieSyncManager.createInstance(this); + mCookieManager.setAcceptCookie(mPreferences.getBoolean( + PreferenceConstants.INCOGNITO_COOKIES, true)); + + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_ENTER) { + if (mSearch.hasFocus()) { + searchTheWeb(mSearch.getText().toString()); + } + } + return super.onKeyDown(keyCode, event); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.incognito, menu); + return super.onCreateOptionsMenu(menu); + } + + /* Called whenever we call invalidateOptionsMenu() */ + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + // If the nav drawer is open, hide action items related to the content + // view + + return super.onPrepareOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // The action bar home/up action should open or close the drawer. + // ActionBarDrawerToggle will take care of this. + if (mDrawerToggle.onOptionsItemSelected(item)) { + return true; + } + // Handle action buttons + switch (item.getItemId()) { + case android.R.id.home: + if (mDrawerLayout.isDrawerOpen(mDrawerRight)) { + mDrawerLayout.closeDrawer(mDrawerRight); + } + mDrawerToggle.syncState(); + return true; + case R.id.action_back: + if (mCurrentView != null) { + if (mCurrentView.canGoBack()) + mCurrentView.goBack(); + } + return true; + case R.id.action_forward: + if (mCurrentView != null) { + if (mCurrentView.canGoForward()) + mCurrentView.goForward(); + } + return true; + case R.id.action_new_tab: + newTab(null, true); + return true; + case R.id.action_incognito: + startActivity(new Intent(Constants.INCOGNITO_INTENT)); + return true; + case R.id.action_share: + if (!mCurrentView.getUrl().startsWith(Constants.FILE)) { + Intent shareIntent = new Intent( + android.content.Intent.ACTION_SEND); + shareIntent.setType("text/plain"); + shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, + mCurrentView.getTitle()); + String shareMessage = mCurrentView.getUrl(); + shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, + shareMessage); + startActivity(Intent.createChooser(shareIntent, getResources() + .getString(R.string.dialog_title_share))); + } + return true; + case R.id.action_bookmarks: + openBookmarks(); + return true; + case R.id.action_copy: + if (mCurrentView != null) { + if (!mCurrentView.getUrl().startsWith(Constants.FILE)) { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", mCurrentView + .getUrl().toString()); + clipboard.setPrimaryClip(clip); + Utils.showToast(mContext, mContext.getResources() + .getString(R.string.message_link_copied)); + } + } + return true; + case R.id.action_settings: + startActivity(new Intent(Constants.SETTINGS_INTENT)); + return true; + case R.id.action_history: + openHistory(); + return true; + case R.id.action_add_bookmark: + if (!mCurrentView.getUrl().startsWith(Constants.FILE)) { + addBookmark(this, mCurrentView.getTitle(), + mCurrentView.getUrl()); + } + return true; + case R.id.action_find: + findInPage(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + /** + * refreshes the underlying list of the Bookmark adapter since the bookmark + * adapter doesn't always change when notifyDataChanged gets called. + */ + private void notifyBookmarkDataSetChanged() { + mBookmarkAdapter.clear(); + mBookmarkAdapter.addAll(mBookmarkList); + mBookmarkAdapter.notifyDataSetChanged(); + } + + /** + * method that shows a dialog asking what string the user wishes to search + * for. It highlights the text entered. + */ + private void findInPage() { + final AlertDialog.Builder finder = new AlertDialog.Builder(mActivity); + finder.setTitle(getResources().getString(R.string.action_find)); + final EditText getHome = new EditText(this); + getHome.setHint(getResources().getString(R.string.search_hint)); + finder.setView(getHome); + finder.setPositiveButton( + getResources().getString(R.string.search_hint), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + String text = getHome.getText().toString(); + if (mCurrentView != null) { + mCurrentView.find(text); + } + } + }); + finder.show(); + } + + /** The click listener for ListView in the navigation drawer */ + private class DrawerItemClickListener implements + ListView.OnItemClickListener { + @Override + public void onItemClick(AdapterView parent, View view, int position, + long id) { + mIsNewIntent = false; + selectItem(position); + } + } + + /** long click listener for Navigation Drawer */ + private class DrawerItemLongClickListener implements + ListView.OnItemLongClickListener { + @Override + public boolean onItemLongClick(AdapterView arg0, View arg1, + int position, long arg3) { + deleteTab(position); + return false; + } + } + + private class BookmarkItemClickListener implements + ListView.OnItemClickListener { + @Override + public void onItemClick(AdapterView parent, View view, int position, + long id) { + if (mCurrentView != null) { + mCurrentView.loadUrl(mBookmarkList.get(position).getUrl()); + } + mDrawerLayout.closeDrawer(mDrawerRight); + } + } + + private class BookmarkItemLongClickListener implements + ListView.OnItemLongClickListener { + @Override + public boolean onItemLongClick(AdapterView arg0, View arg1, + final int position, long arg3) { + + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(mContext.getResources().getString( + R.string.action_bookmarks)); + builder.setMessage( + getResources().getString(R.string.dialog_bookmark)) + .setCancelable(true) + .setPositiveButton( + getResources().getString(R.string.action_new_tab), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + newTab(mBookmarkList.get(position).getUrl(), + false); + mDrawerLayout.closeDrawers(); + } + }) + .setNegativeButton( + getResources().getString(R.string.action_delete), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, + int which) { + deleteBookmark(mBookmarkList.get(position) + .getUrl()); + } + }) + .setNeutralButton( + getResources().getString(R.string.action_edit), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, + int which) { + editBookmark(position); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + return true; + } + } + + /** + * Takes in the id of which bookmark was selected and shows a dialog that + * allows the user to rename and change the url of the bookmark + * + * @param id + * which id in the list was chosen + */ + public synchronized void editBookmark(final int id) { + final AlertDialog.Builder homePicker = new AlertDialog.Builder( + mActivity); + homePicker.setTitle(getResources().getString( + R.string.title_edit_bookmark)); + final EditText getTitle = new EditText(mContext); + getTitle.setHint(getResources().getString(R.string.hint_title)); + getTitle.setText(mBookmarkList.get(id).getTitle()); + getTitle.setSingleLine(); + final EditText getUrl = new EditText(mContext); + getUrl.setHint(getResources().getString(R.string.hint_url)); + getUrl.setText(mBookmarkList.get(id).getUrl()); + getUrl.setSingleLine(); + LinearLayout layout = new LinearLayout(mContext); + layout.setOrientation(LinearLayout.VERTICAL); + layout.addView(getTitle); + layout.addView(getUrl); + homePicker.setView(layout); + homePicker.setPositiveButton( + getResources().getString(R.string.action_ok), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + mBookmarkList.get(id).setTitle( + getTitle.getText().toString()); + mBookmarkList.get(id).setUrl( + getUrl.getText().toString()); + notifyBookmarkDataSetChanged(); + File book = new File(getFilesDir(), "bookmarks"); + File bookUrl = new File(getFilesDir(), "bookurl"); + try { + BufferedWriter bookWriter = new BufferedWriter( + new FileWriter(book)); + BufferedWriter urlWriter = new BufferedWriter( + new FileWriter(bookUrl)); + Iterator iter = mBookmarkList + .iterator(); + HistoryItem item; + while (iter.hasNext()) { + item = iter.next(); + + bookWriter.write(item.getTitle()); + urlWriter.write(item.getUrl()); + bookWriter.newLine(); + urlWriter.newLine(); + + } + + bookWriter.close(); + urlWriter.close(); + } catch (FileNotFoundException e) { + } catch (IOException e) { + } + notifyBookmarkDataSetChanged(); + } + }); + homePicker.show(); + + } + + /** + * displays the WebView contained in the LightningView Also handles the + * removal of previous views + * + * @param view + * the LightningView to show + */ + private synchronized void showTab(LightningView view) { + if (view == null) { + return; + } + if (mCurrentView != null) { + mCurrentView.onPause(); + } + mCurrentView = view; + + if (view.getWebView() != null) { + updateUrl(view.getUrl()); + updateProgress(view.getProgress()); + } else { + updateUrl(""); + updateProgress(0); + } + + mBrowserFrame.removeAllViews(); + mCurrentView.onResume(); + mBrowserFrame.addView(view.getWebView()); + } + + /** + * creates a new tab with the passed in URL if it isn't null + */ + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + if (mCurrentView == null) { + initialize(); + } + + String url = null; + if (intent != null) { + url = intent.getDataString(); + } + int num = 0; + if (intent != null && intent.getExtras() != null) + num = intent.getExtras().getInt(getPackageName() + ".Origin"); + if (num == 1) { + mCurrentView.loadUrl(url); + } else if (url != null) { + url = null; + newTab(url, true); + mIsNewIntent = true; + } + } + + private void selectItem(int position) { + // update selected item and title, then close the drawer + + mDrawerList.setItemChecked(position, true); + showTab(mWebViews.get(position)); + + mDrawerLayout.closeDrawer(mDrawer); + } + + /** + * When using the ActionBarDrawerToggle, you must call it during + * onPostCreate() and onConfigurationChanged()... + */ + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + // Sync the toggle state after onRestoreInstanceState has occurred. + mDrawerToggle.syncState(); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + // Pass any configuration change to the drawer toggls + mDrawerToggle.onConfigurationChanged(newConfig); + } + + private synchronized void newTab(String url, boolean show) { + mIsNewIntent = false; + LightningView startingTab = new LightningView(mActivity, url); + if (mIdGenerator == 0) { + startingTab.resumeTimers(); + } + mIdList.add(mIdGenerator); + mIdGenerator++; + mWebViews.add(startingTab); + + Drawable icon = writeOnDrawable(mWebViews.size()); + mActionBar.setIcon(icon); + mTitleAdapter.notifyDataSetChanged(); + if (show) { + mDrawerList.setItemChecked(mWebViews.size() - 1, true); + showTab(startingTab); + } + } + + private synchronized void deleteTab(int position) { + if (position >= mWebViews.size()) { + return; + } + + int current = mDrawerList.getCheckedItemPosition(); + LightningView reference = mWebViews.get(position); + if (reference == null) { + return; + } + boolean isShown = reference.isShown(); + if (current > position) { + mIdList.remove(position); + mWebViews.remove(position); + mDrawerList.setItemChecked(current - 1, true); + reference.onDestroy(); + } else if (mWebViews.size() > position + 1) { + mIdList.remove(position); + showTab(mWebViews.get(position + 1)); + mWebViews.remove(position); + mDrawerList.setItemChecked(position, true); + reference.onDestroy(); + } else if (mWebViews.size() > 1) { + mIdList.remove(position); + showTab(mWebViews.get(position - 1)); + mWebViews.remove(position); + mDrawerList.setItemChecked(position - 1, true); + reference.onDestroy(); + } else { + if (mCurrentView.getUrl().startsWith(Constants.FILE) + || mCurrentView.getUrl().equals(mHomepage)) { + finish(); + } else { + mIdList.remove(position); + mWebViews.remove(position); + if (mPreferences.getBoolean( + PreferenceConstants.CLEAR_CACHE_EXIT, false) + && mCurrentView != null) { + mCurrentView.clearCache(true); + Log.i("Lightning", "Cache Cleared"); + + } + if (reference != null) { + reference.pauseTimers(); + reference.onDestroy(); + } + mCurrentView = null; + mTitleAdapter.notifyDataSetChanged(); + finish(); + + } + } + mTitleAdapter.notifyDataSetChanged(); + Drawable icon = writeOnDrawable(mWebViews.size()); + mActionBar.setIcon(icon); + + if (mIsNewIntent && isShown) { + mIsNewIntent = false; + finish(); + } + + Log.i("Lightning", "deleted tab"); + } + + @Override + public boolean onKeyLongPress(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if (mPreferences.getBoolean(PreferenceConstants.CLEAR_CACHE_EXIT, + false) && mCurrentView != null) { + mCurrentView.clearCache(true); + Log.i("Lightning", "Cache Cleared"); + + } + mCurrentView = null; + for (int n = 0; n < mWebViews.size(); n++) { + if (mWebViews.get(n) != null) + mWebViews.get(n).onDestroy(); + } + mWebViews.clear(); + mTitleAdapter.notifyDataSetChanged(); + finish(); + } + return true; + } + + @Override + public void onBackPressed() { + if (!mActionBar.isShowing()) { + mActionBar.show(); + } + if (mDrawerLayout.isDrawerOpen(mDrawer)) { + mDrawerLayout.closeDrawer(mDrawer); + } else if (mDrawerLayout.isDrawerOpen(mDrawerRight)) { + mDrawerLayout.closeDrawer(mDrawerRight); + } else { + if (mCurrentView != null) { + Log.i("Lightning", "onBackPressed"); + if (mCurrentView.canGoBack()) { + if (!mCurrentView.isShown()) { + onHideCustomView(); + } else { + mCurrentView.goBack(); + } + } else { + deleteTab(mDrawerList.getCheckedItemPosition()); + } + } else { + Log.e("Lightning Browser", + "So madness. Much confusion. Why happen."); + super.onBackPressed(); + } + } + } + + @Override + protected void onPause() { + super.onPause(); + Log.i("Lightning", "onPause"); + if (mCurrentView != null) { + mCurrentView.pauseTimers(); + mCurrentView.onPause(); + } + if (mHistoryDatabase != null) { + if (mHistoryDatabase.isOpen()) + mHistoryDatabase.close(); + } + if (mHistoryHandler != null) { + if (mHistoryHandler.isOpen()) + mHistoryHandler.close(); + } + } + + @Override + protected void onDestroy() { + Log.i("Lightning", "onDestroy"); + if (mHistoryDatabase != null) { + if (mHistoryDatabase.isOpen()) + mHistoryDatabase.close(); + } + if (mHistoryHandler != null) { + if (mHistoryHandler.isOpen()) + mHistoryHandler.close(); + } + super.onDestroy(); + } + + @Override + protected void onPostResume() { + Log.i("Lightning", "onPostResume"); + super.onPostResume(); + } + + @Override + protected void onRestart() { + Log.i("Lightning", "onRestart"); + super.onRestart(); + } + + @Override + protected void onStart() { + Log.i("Lightning", "onStart"); + super.onStart(); + } + + @Override + protected void onStop() { + Log.i("Lightning", "onStop"); + super.onStop(); + } + + @Override + protected void onResume() { + super.onResume(); + Log.i("Lightning", "onResume"); + if (SettingsController.getClearHistory()) { + } + if (mSearchAdapter != null) { + mSearchAdapter.refreshPreferences(); + mSearchAdapter.refreshBookmarks(); + } + if (mActionBar != null) { + if (!mActionBar.isShowing()) { + mActionBar.show(); + } + } + if (mCurrentView != null) { + mCurrentView.resumeTimers(); + mCurrentView.onResume(); + + if (mHistoryHandler == null) { + mHistoryHandler = new DatabaseHandler(this); + } else if (!mHistoryHandler.isOpen()) { + mHistoryHandler = new DatabaseHandler(this); + } + mHistoryDatabase = mHistoryHandler.getReadableDatabase(); + mBookmarkList = getBookmarks(); + notifyBookmarkDataSetChanged(); + } else { + initialize(); + } + initializePreferences(); + if (mWebViews != null) { + for (int n = 0; n < mWebViews.size(); n++) { + if (mWebViews.get(n) != null) { + mWebViews.get(n).initializePreferences(this); + } else { + mWebViews.remove(n); + } + } + } else { + initialize(); + } + } + + /** + * searches the web for the query fixing any and all problems with the input + * checks if it is a search, url, etc. + */ + void searchTheWeb(String query) { + if (query.equals("")) { + return; + } + String SEARCH = mSearchText; + query = query.trim(); + mCurrentView.stopLoading(); + + if (query.startsWith("www.")) { + query = Constants.HTTP + query; + } else if (query.startsWith("ftp.")) { + query = "ftp://" + query; + } + + boolean containsPeriod = query.contains("."); + boolean isIPAddress = (TextUtils.isDigitsOnly(query.replace(".", "")) + && (query.replace(".", "").length() >= 4) && query + .contains(".")); + boolean aboutScheme = query.contains("about:"); + boolean validURL = (query.startsWith("ftp://") + || query.startsWith(Constants.HTTP) + || query.startsWith(Constants.FILE) || query + .startsWith(Constants.HTTPS)) || isIPAddress; + boolean isSearch = ((query.contains(" ") || !containsPeriod) && !aboutScheme); + + if (isIPAddress + && (!query.startsWith(Constants.HTTP) || !query + .startsWith(Constants.HTTPS))) { + query = Constants.HTTP + query; + } + + if (isSearch) { + try { + URLEncoder.encode(query, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + mCurrentView.loadUrl(SEARCH + query); + } else if (!validURL) { + mCurrentView.loadUrl(Constants.HTTP + query); + } else { + mCurrentView.loadUrl(query); + } + } + + public void deleteBookmark(String url) { + File book = new File(getFilesDir(), "bookmarks"); + File bookUrl = new File(getFilesDir(), "bookurl"); + try { + BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book)); + BufferedWriter urlWriter = new BufferedWriter(new FileWriter( + bookUrl)); + Iterator iter = mBookmarkList.iterator(); + HistoryItem item; + int num = 0; + int deleteIndex = -1; + while (iter.hasNext()) { + item = iter.next(); + if (!item.getUrl().equalsIgnoreCase(url)) { + bookWriter.write(item.getTitle()); + urlWriter.write(item.getUrl()); + bookWriter.newLine(); + urlWriter.newLine(); + } else { + deleteIndex = num; + } + num++; + } + if (deleteIndex != -1) { + mBookmarkList.remove(deleteIndex); + } + bookWriter.close(); + urlWriter.close(); + } catch (FileNotFoundException e) { + } catch (IOException e) { + } + notifyBookmarkDataSetChanged(); + mSearchAdapter.refreshBookmarks(); + openBookmarks(); + } + + /** + * converts the int num into density pixels + * + * @param num + * @return density pixels + */ + private int getDp(int num) { + float scale = getResources().getDisplayMetrics().density; + return (int) (num * scale + 0.5f); + } + + private int pixelsToDp(int num) { + float scale = getResources().getDisplayMetrics().density; + return (int) ((num - 0.5f) / scale); + } + + /** + * writes the number of open tabs on the icon. + */ + public BitmapDrawable writeOnDrawable(int number) { + + return mIncognitoIcon; + } + + public class LightningViewAdapter extends ArrayAdapter { + + Context context; + int layoutResourceId; + List data = null; + + public LightningViewAdapter(Context context, int layoutResourceId, + List data) { + super(context, layoutResourceId, data); + this.layoutResourceId = layoutResourceId; + this.context = context; + this.data = data; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + LightningViewHolder holder = null; + + if (row == null) { + LayoutInflater inflater = ((Activity) context) + .getLayoutInflater(); + row = inflater.inflate(layoutResourceId, parent, false); + + holder = new LightningViewHolder(); + holder.txtTitle = (TextView) row.findViewById(R.id.text1); + holder.favicon = (ImageView) row.findViewById(R.id.favicon1); + holder.exit = (ImageView) row.findViewById(R.id.delete1); + holder.exit.setTag(position); + row.setTag(holder); + } else { + holder = (LightningViewHolder) row.getTag(); + } + + holder.exit.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View view) { + Integer index = (Integer) view.getTag(); + deleteTab(index); + } + + }); + + LightningView web = data.get(position); + holder.txtTitle.setText(web.getTitle()); + Bitmap favicon = web.getFavicon(); + holder.favicon.setImageBitmap(favicon); + return row; + } + + class LightningViewHolder { + TextView txtTitle; + ImageView favicon; + ImageView exit; + } + } + + public class BookmarkViewAdapter extends ArrayAdapter { + + Context context; + int layoutResourceId; + List data = null; + + public BookmarkViewAdapter(Context context, int layoutResourceId, + List data) { + super(context, layoutResourceId, data); + this.layoutResourceId = layoutResourceId; + this.context = context; + this.data = data; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + BookmarkViewHolder holder = null; + + if (row == null) { + LayoutInflater inflater = ((Activity) context) + .getLayoutInflater(); + row = inflater.inflate(layoutResourceId, parent, false); + + holder = new BookmarkViewHolder(); + holder.txtTitle = (TextView) row.findViewById(R.id.text1); + holder.favicon = (ImageView) row.findViewById(R.id.favicon1); + row.setTag(holder); + } else { + holder = (BookmarkViewHolder) row.getTag(); + } + + HistoryItem web = data.get(position); + holder.txtTitle.setText(web.getTitle()); + holder.favicon.setImageBitmap(mWebpageBitmap); + if (web.getBitmap() == null) { + getImage(holder.favicon, web); + } else { + holder.favicon.setImageBitmap(web.getBitmap()); + } + return row; + } + + class BookmarkViewHolder { + TextView txtTitle; + ImageView favicon; + } + } + + public void getImage(ImageView image, HistoryItem web) { + try { + new DownloadImageTask(image, web).execute(Constants.HTTP + + getDomainName(web.getUrl()) + "/favicon.ico"); + } catch (URISyntaxException e) { + new DownloadImageTask(image, web) + .execute("https://www.google.com/s2/favicons?domain_url=" + + web.getUrl()); + e.printStackTrace(); + } + } + + private class DownloadImageTask extends AsyncTask { + ImageView bmImage; + HistoryItem mWeb; + + public DownloadImageTask(ImageView bmImage, HistoryItem web) { + this.bmImage = bmImage; + this.mWeb = web; + } + + protected Bitmap doInBackground(String... urls) { + String urldisplay = urls[0]; + Bitmap mIcon = null; + // unique path for each url that is bookmarked. + String hash = String.valueOf(urldisplay.hashCode()); + File image = new File(mContext.getCacheDir(), hash + ".png"); + // checks to see if the image exists + if (!image.exists()) { + try { + // if not, download it... + InputStream in = new java.net.URL(urldisplay).openStream(); + + if (in != null) { + mIcon = BitmapFactory.decodeStream(in); + } + // ...and cache it + if (mIcon != null) { + FileOutputStream fos = new FileOutputStream(image); + mIcon.compress(Bitmap.CompressFormat.PNG, 85, fos); + fos.flush(); + fos.close(); + } + + } catch (Exception e) { + } + } else { + // if it exists, retrieve it from the cache + mIcon = BitmapFactory.decodeFile(image.getPath()); + } + if (mIcon == null) { + try { + // if not, download it... + InputStream in = new java.net.URL( + "https://www.google.com/s2/favicons?domain_url=" + + urldisplay).openStream(); + + if (in != null) { + mIcon = BitmapFactory.decodeStream(in); + } + // ...and cache it + if (mIcon != null) { + FileOutputStream fos = new FileOutputStream(image); + mIcon.compress(Bitmap.CompressFormat.PNG, 85, fos); + fos.flush(); + fos.close(); + } + + } catch (Exception e) { + } + } + if (mIcon == null) { + return mWebpageBitmap; + } else { + return mIcon; + } + } + + protected void onPostExecute(Bitmap result) { + bmImage.setImageBitmap(result); + mWeb.setBitmap(result); + notifyBookmarkDataSetChanged(); + } + } + + public static String getDomainName(String url) throws URISyntaxException { + URI uri = new URI(url); + String domain = uri.getHost(); + if (domain == null) { + return url; + } + return domain.startsWith("www.") ? domain.substring(4) : domain; + } + + @Override + public void updateUrl(String url) { + if (url == null) + return; + url = url.replaceFirst(Constants.HTTP, ""); + if (url.startsWith(Constants.FILE)) { + url = ""; + } + + mSearch.setText(url); + } + + @Override + public void updateProgress(int n) { + if (!mProgress.isShown()) + mProgress.setVisibility(View.VISIBLE); + mProgress.setProgress(n); + if (n == 100) { + mProgress.setVisibility(View.INVISIBLE); + setIsFinishedLoading(); + } else { + setIsLoading(); + } + } + + @Override + public void updateHistory(final String title, final String url) { + + } + + /** + * 1, 2, 3, testing... is there a system browser that has some nice + * bookmarks for us? + */ + public boolean isSystemBrowserAvailable() { + return mSystemBrowser; + } + + /** + * 1, 2, 3, testing... is there a system browser that has some nice + * bookmarks for us? helper method for isSystemBrowserAvailable + */ + public boolean getSystemBrowser() { + Cursor c = null; + String[] columns = new String[] { "url", "title" }; + boolean browserFlag = false; + try { + + Uri bookmarks = Browser.BOOKMARKS_URI; + c = getContentResolver() + .query(bookmarks, columns, null, null, null); + } catch (SQLiteException ignored) { + } catch (IllegalStateException ignored) { + } catch (NullPointerException ignored) { + } + + if (c != null) { + Log.i("Browser", "System Browser Available"); + browserFlag = true; + } else { + Log.e("Browser", "System Browser Unavailable"); + browserFlag = false; + } + if (c != null) { + c.close(); + c = null; + } + mEditPrefs.putBoolean("SystemBrowser", browserFlag); + mEditPrefs.commit(); + return browserFlag; + } + + /** + * method to generate search suggestions for the AutoCompleteTextView from + * previously searched URLs + */ + private void initializeSearchSuggestions(final AutoCompleteTextView getUrl) { + + getUrl.setThreshold(1); + getUrl.setDropDownWidth(-1); + getUrl.setDropDownAnchor(R.id.progressWrapper); + getUrl.setOnItemClickListener(new OnItemClickListener() { + + @Override + public void onItemClick(AdapterView arg0, View arg1, int arg2, + long arg3) { + try { + String url; + url = ((TextView) arg1.findViewById(R.id.url)).getText() + .toString(); + if (url.startsWith(mContext.getString(R.string.suggestion))) { + url = ((TextView) arg1.findViewById(R.id.title)) + .getText().toString(); + } else { + getUrl.setText(url); + } + searchTheWeb(url); + url = null; + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); + if (mCurrentView != null) { + mCurrentView.requestFocus(); + } + } catch (NullPointerException e) { + Log.e("Browser Error: ", + "NullPointerException on item click"); + } + } + + }); + + getUrl.setSelectAllOnFocus(true); + mSearchAdapter = new SearchAdapter(mContext, true); + getUrl.setAdapter(mSearchAdapter); + } + + /** + * returns a list of bookmarks in the style (Title, Url) that is useful. the + * boolean addStarChar just adds an ASCII star character to each title if + * you want, primarily for use in search suggestions where the star + * indicates that it is a bookmarked url. All other uses can just supply + * false to this method. + */ + private List getBookmarks() { + List bookmarks = new ArrayList(); + File bookUrl = new File(getApplicationContext().getFilesDir(), + "bookurl"); + File book = new File(getApplicationContext().getFilesDir(), "bookmarks"); + try { + BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); + BufferedReader readBook = new BufferedReader(new FileReader(book)); + String u, t; + while ((u = readUrl.readLine()) != null + && (t = readBook.readLine()) != null) { + HistoryItem map = new HistoryItem(u, t); + bookmarks.add(map); + } + readBook.close(); + readUrl.close(); + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } + Collections.sort(bookmarks); + return bookmarks; + } + + /** + * returns a list of HistoryItems + * + * @return + */ + private List getLatestHistory() { + DatabaseHandler historyHandler = new DatabaseHandler(mContext); + return historyHandler.getLastHundredItems(); + } + + /** + * function that opens the HTML history page in the browser + */ + private void openHistory() { + + Thread history = new Thread(new Runnable() { + + @Override + public void run() { + String historyHtml = HistoryPageVariables.Heading; + List historyList = getLatestHistory(); + Iterator it = historyList.iterator(); + HistoryItem helper; + while (it.hasNext()) { + helper = it.next(); + historyHtml += HistoryPageVariables.Part1 + helper.getUrl() + + HistoryPageVariables.Part2 + helper.getTitle() + + HistoryPageVariables.Part3 + helper.getUrl() + + HistoryPageVariables.Part4; + } + + historyHtml += HistoryPageVariables.End; + File historyWebPage = new File(getFilesDir(), "history.html"); + try { + FileWriter hWriter = new FileWriter(historyWebPage, false); + hWriter.write(historyHtml); + hWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + mCurrentView.loadUrl(Constants.FILE + historyWebPage); + mSearch.setText(""); + } + + }); + history.run(); + } + + /** + * helper function that opens the bookmark drawer + */ + private void openBookmarks() { + if (mDrawerLayout.isDrawerOpen(mDrawer)) { + mDrawerLayout.closeDrawers(); + } + mDrawerToggle.syncState(); + mDrawerLayout.openDrawer(mDrawerRight); + } + + @Override + /** + * open the HTML bookmarks page, parameter view is the WebView that should show the page + */ + public void openBookmarkPage(WebView view) { + String bookmarkHtml = BookmarkPageVariables.Heading; + Iterator iter = mBookmarkList.iterator(); + HistoryItem helper; + while (iter.hasNext()) { + helper = iter.next(); + bookmarkHtml += (BookmarkPageVariables.Part1 + helper.getUrl() + + BookmarkPageVariables.Part2 + helper.getUrl() + + BookmarkPageVariables.Part3 + helper.getTitle() + BookmarkPageVariables.Part4); + } + bookmarkHtml += BookmarkPageVariables.End; + File bookmarkWebPage = new File(mContext.getCacheDir(), + "bookmarks.html"); + try { + FileWriter bookWriter = new FileWriter(bookmarkWebPage, false); + bookWriter.write(bookmarkHtml); + bookWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + view.loadUrl(Constants.FILE + bookmarkWebPage); + } + + /** + * adds a bookmark with a title and url. Simple. + */ + public void addBookmark(Context context, String title, String url) { + File book = new File(context.getFilesDir(), "bookmarks"); + File bookUrl = new File(context.getFilesDir(), "bookurl"); + HistoryItem bookmark = new HistoryItem(url, title); + + try { + BufferedReader readUrlRead = new BufferedReader(new FileReader( + bookUrl)); + String u; + while ((u = readUrlRead.readLine()) != null) { + if (u.contentEquals(url)) { + readUrlRead.close(); + return; + } + } + readUrlRead.close(); + + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } catch (NullPointerException ignored) { + } + try { + BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book, + true)); + BufferedWriter urlWriter = new BufferedWriter(new FileWriter( + bookUrl, true)); + bookWriter.write(title); + urlWriter.write(url); + bookWriter.newLine(); + urlWriter.newLine(); + bookWriter.close(); + urlWriter.close(); + mBookmarkList.add(bookmark); + Collections.sort(mBookmarkList); + notifyBookmarkDataSetChanged(); + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } catch (NullPointerException ignored) { + } + mSearchAdapter.refreshBookmarks(); + } + + @Override + public void update() { + mTitleAdapter.notifyDataSetChanged(); + } + + @Override + /** + * opens a file chooser + * param ValueCallback is the message from the WebView indicating a file chooser + * should be opened + */ + public void openFileChooser(ValueCallback uploadMsg) { + mUploadMessage = uploadMsg; + Intent i = new Intent(Intent.ACTION_GET_CONTENT); + i.addCategory(Intent.CATEGORY_OPENABLE); + i.setType("*/*"); + startActivityForResult(Intent.createChooser(i, "File Chooser"), 1); + } + + @Override + /** + * used to allow uploading into the browser, doesn't get called in KitKat :( + */ + protected void onActivityResult(int requestCode, int resultCode, + Intent intent) { + if (requestCode == 1) { + if (null == mUploadMessage) + return; + Uri result = intent == null || resultCode != RESULT_OK ? null + : intent.getData(); + mUploadMessage.onReceiveValue(result); + mUploadMessage = null; + + } + } + + @Override + /** + * handles long presses for the browser, tries to get the + * url of the item that was clicked and sends it (it can be null) + * to the click handler that does cool stuff with it + */ + public void onLongPress() { + if (mClickHandler == null) { + mClickHandler = new ClickHandler(mContext); + } + Message click = mClickHandler.obtainMessage(); + if (click != null) { + click.setTarget(mClickHandler); + } + mCurrentView.getWebView().requestFocusNodeHref(click); + } + + @Override + public void onShowCustomView(View view, int requestedOrientation, + CustomViewCallback callback) { + if (view == null) { + return; + } + if (mCustomView != null && callback != null) { + callback.onCustomViewHidden(); + return; + } + view.setKeepScreenOn(true); + mOriginalOrientation = getRequestedOrientation(); + FrameLayout decor = (FrameLayout) getWindow().getDecorView(); + mFullscreenContainer = new FullscreenHolder(this); + mCustomView = view; + mFullscreenContainer.addView(mCustomView, COVER_SCREEN_PARAMS); + decor.addView(mFullscreenContainer, COVER_SCREEN_PARAMS); + setFullscreen(true); + mCurrentView.setVisibility(View.GONE); + if (view instanceof FrameLayout) { + if (((FrameLayout) view).getFocusedChild() instanceof VideoView) { + mVideoView = (VideoView) ((FrameLayout) view).getFocusedChild(); + mVideoView.setOnErrorListener(new VideoCompletionListener()); + mVideoView + .setOnCompletionListener(new VideoCompletionListener()); + } + } + mCustomViewCallback = callback; + } + + @Override + public void onHideCustomView() { + if (mCustomView == null || mCustomViewCallback == null + || mCurrentView == null) + return; + Log.i("Lightning", "onHideCustomView"); + mCurrentView.setVisibility(View.VISIBLE); + mCustomView.setKeepScreenOn(false); + setFullscreen(mPreferences.getBoolean("hidestatus", false)); + FrameLayout decor = (FrameLayout) getWindow().getDecorView(); + if (decor != null) { + decor.removeView(mFullscreenContainer); + } + + if (API < 19) { + try { + mCustomViewCallback.onCustomViewHidden(); + } catch (Throwable ignored) { + + } + } + mFullscreenContainer = null; + mCustomView = null; + if (mVideoView != null) { + mVideoView.setOnErrorListener(null); + mVideoView.setOnCompletionListener(null); + mVideoView = null; + } + setRequestedOrientation(mOriginalOrientation); + } + + private class VideoCompletionListener implements + MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener { + + @Override + public boolean onError(MediaPlayer mp, int what, int extra) { + return false; + } + + @Override + public void onCompletion(MediaPlayer mp) { + onHideCustomView(); + } + + } + + /** + * turns on fullscreen mode in the app + * + * @param enabled + * whether to enable fullscreen or not + */ + public void setFullscreen(boolean enabled) { + Window win = getWindow(); + WindowManager.LayoutParams winParams = win.getAttributes(); + final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN; + if (enabled) { + winParams.flags |= bits; + } else { + winParams.flags &= ~bits; + if (mCustomView != null) { + mCustomView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + } else { + mBrowserFrame + .setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + } + } + win.setAttributes(winParams); + } + + /** + * a class extending FramLayout used to display fullscreen videos + */ + static class FullscreenHolder extends FrameLayout { + + public FullscreenHolder(Context ctx) { + super(ctx); + setBackgroundColor(ctx.getResources().getColor( + android.R.color.black)); + } + + @Override + public boolean onTouchEvent(MotionEvent evt) { + return true; + } + + } + + @Override + /** + * a stupid method that returns the bitmap image to display in place of + * a loading video + */ + public Bitmap getDefaultVideoPoster() { + if (mDefaultVideoPoster == null) { + mDefaultVideoPoster = BitmapFactory.decodeResource(getResources(), + android.R.drawable.ic_media_play); + } + return mDefaultVideoPoster; + } + + @Override + /** + * dumb method that returns the loading progress for a video + */ + public View getVideoLoadingProgressView() { + if (mVideoProgressView == null) { + LayoutInflater inflater = LayoutInflater.from(this); + mVideoProgressView = inflater.inflate( + R.layout.video_loading_progress, null); + } + return mVideoProgressView; + } + + @Override + /** + * handles javascript requests to create a new window in the browser + */ + public void onCreateWindow(boolean isUserGesture, Message resultMsg) { + if (resultMsg == null) { + return; + } + newTab("", true); + WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; + transport.setWebView(mCurrentView.getWebView()); + resultMsg.sendToTarget(); + } + + @Override + /** + * returns the Activity instance for this activity, + * very helpful when creating things in other classes... I think + */ + public Activity getActivity() { + return mActivity; + } + + /** + * it hides the action bar, seriously what else were you expecting + */ + @Override + public void hideActionBar() { + if (mActionBar.isShowing() && mFullScreen) { + mActionBar.hide(); + } + } + + @Override + /** + * obviously it shows the action bar if it's hidden + */ + public void showActionBar() { + if (!mActionBar.isShowing() && mFullScreen) { + mActionBar.show(); + } + } + + @Override + /** + * handles a long click on the page, parameter String url + * is the url that should have been obtained from the WebView touch node + * thingy, if it is null, this method tries to deal with it and find a workaround + */ + public void longClickPage(final String url) { + HitTestResult result = null; + if (mCurrentView.getWebView() != null) { + result = mCurrentView.getWebView().getHitTestResult(); + } + if (url != null) { + if (url != null) { + if (result != null) { + if (result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE + || result.getType() == HitTestResult.IMAGE_TYPE) { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(url, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(url); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + if (API > 8) { + Utils.downloadFile(mActivity, url, + mCurrentView.getUserAgent(), + "attachment", false); + } + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(url.replace(Constants.HTTP, "")) + .setMessage( + getResources().getString( + R.string.dialog_image)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_download), + dialogClickListener).show(); + + } else { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(url, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(url); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText( + "label", url); + clipboard.setPrimaryClip(clip); + + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(url) + .setMessage( + getResources().getString( + R.string.dialog_link)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_copy), + dialogClickListener).show(); + } + } else { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(url, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(url); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", + url); + clipboard.setPrimaryClip(clip); + + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(url) + .setMessage( + getResources().getString( + R.string.dialog_link)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_copy), + dialogClickListener).show(); + } + } + } else if (result != null) { + if (result.getExtra() != null) { + final String newUrl = result.getExtra(); + if (result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE + || result.getType() == HitTestResult.IMAGE_TYPE) { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(newUrl, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(newUrl); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + if (API > 8) { + Utils.downloadFile(mActivity, newUrl, + mCurrentView.getUserAgent(), + "attachment", false); + } + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(newUrl.replace(Constants.HTTP, "")) + .setMessage( + getResources().getString( + R.string.dialog_image)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_download), + dialogClickListener).show(); + + } else { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + newTab(newUrl, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + mCurrentView.loadUrl(newUrl); + break; + } + case DialogInterface.BUTTON_NEUTRAL: { + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", + newUrl); + clipboard.setPrimaryClip(clip); + + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder( + mActivity); // dialog + builder.setTitle(newUrl) + .setMessage( + getResources().getString( + R.string.dialog_link)) + .setPositiveButton( + getResources().getString( + R.string.action_new_tab), + dialogClickListener) + .setNegativeButton( + getResources().getString( + R.string.action_open), + dialogClickListener) + .setNeutralButton( + getResources().getString( + R.string.action_copy), + dialogClickListener).show(); + } + + } + + } + + } + + /** + * This method lets the search bar know that the page is currently loading + * and that it should display the stop icon to indicate to the user that + * pressing it stops the page from loading + */ + public void setIsLoading() { + if (!mSearch.hasFocus()) { + mIcon = mDeleteIcon; + mSearch.setCompoundDrawables(null, null, mDeleteIcon, null); + } + } + + /** + * This tells the search bar that the page is finished loading and it should + * display the refresh icon + */ + public void setIsFinishedLoading() { + if (!mSearch.hasFocus()) { + mIcon = mRefreshIcon; + mSearch.setCompoundDrawables(null, null, mRefreshIcon, null); + } + } + + /** + * handle presses on the refresh icon in the search bar, if the page is + * loading, stop the page, if it is done loading refresh the page. + * + * See setIsFinishedLoading and setIsLoading for displaying the correct icon + */ + public void refreshOrStop() { + if (mCurrentView != null) { + if (mCurrentView.getProgress() < 100) { + mCurrentView.stopLoading(); + } else { + mCurrentView.reload(); + } + } + } + + @Override + public boolean isActionBarShowing() { + if (mActionBar != null) { + return mActionBar.isShowing(); + } else { + return false; + } + } + +} \ No newline at end of file diff --git a/src/acr/browser/lightning/LicenseActivity.java b/src/acr/browser/lightning/LicenseActivity.java new file mode 100644 index 0000000..8541c0a --- /dev/null +++ b/src/acr/browser/lightning/LicenseActivity.java @@ -0,0 +1,71 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.LinearLayout; + +/* + *NOTE: This activity must not be removed in order to comply with the Mozilla Public License v. 2.0 + *under which this code is licensed. Unless you plan on providing other attribution in the app to + *the original source in another visible way, it is advised against the removal of this Activity. + */ +public class LicenseActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.license_activity); + getActionBar().setHomeButtonEnabled(true); + getActionBar().setDisplayHomeAsUpEnabled(true); + LinearLayout thunder = (LinearLayout) findViewById(R.id.browserLicense); + LinearLayout aosp = (LinearLayout) findViewById(R.id.licenseAOSP); + LinearLayout hosts = (LinearLayout) findViewById(R.id.licenseHosts); + thunder.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri + .parse("http://www.mozilla.org/MPL/2.0/"))); + finish(); + } + + }); + aosp.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri + .parse("http://www.apache.org/licenses/LICENSE-2.0"))); + finish(); + } + + }); + + hosts.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri + .parse("http://hosts-file.net/"))); + finish(); + } + + }); + + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + finish(); + return super.onOptionsItemSelected(item); + } + +} diff --git a/src/acr/browser/lightning/LightningDownloadListener.java b/src/acr/browser/lightning/LightningDownloadListener.java new file mode 100644 index 0000000..b4ae046 --- /dev/null +++ b/src/acr/browser/lightning/LightningDownloadListener.java @@ -0,0 +1,52 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.util.Log; +import android.webkit.DownloadListener; +import android.webkit.URLUtil; + +public class LightningDownloadListener implements DownloadListener { + private Activity mActivity; + LightningDownloadListener(Activity activity){ + mActivity = activity; + } + + @Override + public void onDownloadStart(final String url, final String userAgent, + final String contentDisposition, final String mimetype, + long contentLength) { + String fileName = URLUtil.guessFileName(url, contentDisposition, + mimetype); + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: { + DownloadHandler.onDownloadStart(mActivity, url, userAgent, contentDisposition, mimetype, false); + break; + } + case DialogInterface.BUTTON_NEGATIVE: { + break; + } + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); // dialog + builder.setTitle(fileName) + .setMessage(mActivity.getResources().getString(R.string.dialog_download)) + .setPositiveButton(mActivity.getResources().getString(R.string.action_download), + dialogClickListener) + .setNegativeButton(mActivity.getResources().getString(R.string.action_cancel), dialogClickListener) + .show(); + Log.i("Lightning", "Downloading" + fileName); + + } + +} + diff --git a/src/acr/browser/lightning/LightningView.java b/src/acr/browser/lightning/LightningView.java new file mode 100644 index 0000000..2127d86 --- /dev/null +++ b/src/acr/browser/lightning/LightningView.java @@ -0,0 +1,921 @@ +/* + * Copyright 2014 A.C.R. Development + */ + +package acr.browser.lightning; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.net.URISyntaxException; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.net.MailTo; +import android.net.Uri; +import android.net.http.SslError; +import android.os.Message; +import android.text.InputType; +import android.text.TextUtils; +import android.text.method.PasswordTransformationMethod; +import android.util.Log; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.view.View; +import android.view.GestureDetector.SimpleOnGestureListener; +import android.view.View.OnTouchListener; +import android.webkit.GeolocationPermissions; +import android.webkit.HttpAuthHandler; +import android.webkit.SslErrorHandler; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient; +import android.webkit.WebResourceResponse; +import android.webkit.WebSettings; +import android.webkit.WebSettings.LayoutAlgorithm; +import android.webkit.WebSettings.PluginState; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.EditText; +import android.widget.LinearLayout; + +public class LightningView { + + private Title mTitle; + private WebView mWebView; + private BrowserController mBrowserController; + private GestureDetector mGestureDetector; + private Activity mActivity; + private WebSettings mSettings; + private static int API = android.os.Build.VERSION.SDK_INT; + private static String mPackageName; + private static String mHomepage; + private static String mDefaultUserAgent; + private static Bitmap mWebpageBitmap; + private static SharedPreferences mPreferences; + private static boolean mWideViewPort; + private static AdBlock mAdBlock; + + public LightningView(Activity activity, String url) { + mActivity = activity; + mWebView = new WebView(activity); + mTitle = new Title(activity); + mAdBlock = new AdBlock(activity); + mPackageName = activity.getPackageName(); + mWebpageBitmap = BitmapFactory.decodeResource(activity.getResources(), + R.drawable.ic_webpage); + + try { + mBrowserController = (BrowserController) activity; + } catch (ClassCastException e) { + throw new ClassCastException(activity.toString() + + " must implement BrowserController"); + } + mWebView.setDrawingCacheBackgroundColor(0x00000000); + mWebView.setFocusableInTouchMode(true); + mWebView.setFocusable(true); + mWebView.setAnimationCacheEnabled(false); + mWebView.setDrawingCacheEnabled(true); + mWebView.setBackgroundColor(activity.getResources().getColor( + android.R.color.white)); + if (API > 15) { + mWebView.getRootView().setBackground(null); + } else { + mWebView.getRootView().setBackgroundDrawable(null); + } + mWebView.setWillNotCacheDrawing(false); + mWebView.setAlwaysDrawnWithCacheEnabled(true); + mWebView.setScrollbarFadingEnabled(true); + mWebView.setSaveEnabled(true); + + mWebView.setWebChromeClient(new LightningChromeClient(activity)); + mWebView.setWebViewClient(new LightningWebClient(activity)); + mWebView.setDownloadListener(new LightningDownloadListener(activity)); + mGestureDetector = new GestureDetector(activity, + new CustomGestureListener()); + mWebView.setOnTouchListener(new OnTouchListener() { + + float mLocation = 0; + float mY = 0; + int mAction = 0; + + @Override + public boolean onTouch(View view, MotionEvent arg1) { + if (view != null && !view.hasFocus()) { + view.requestFocus(); + } + mAction = arg1.getAction(); + mY = arg1.getY(); + if (mAction == MotionEvent.ACTION_DOWN) { + mLocation = mY; + } else if (mAction == MotionEvent.ACTION_UP) { + if ((mY - mLocation) > 10) { + mBrowserController.showActionBar(); + } else if ((mY - mLocation) < -10) { + mBrowserController.hideActionBar(); + } + mLocation = 0; + } + mGestureDetector.onTouchEvent(arg1); + return false; + } + + }); + mDefaultUserAgent = mWebView.getSettings().getUserAgentString(); + mSettings = mWebView.getSettings(); + initializeSettings(mWebView.getSettings(), activity); + initializePreferences(activity); + + if (url != null) { + if (!url.equals("")) { + mWebView.loadUrl(url); + } + } else { + if (mHomepage.startsWith("about:home")) { + mSettings.setUseWideViewPort(false); + mWebView.loadUrl(getHomepage()); + } else if (mHomepage.startsWith("about:bookmarks")) { + mBrowserController.openBookmarkPage(mWebView); + } else { + mWebView.loadUrl(mHomepage); + } + } + } + + public String getHomepage() { + String home = ""; + home = HomepageVariables.HEAD; + switch (mPreferences.getInt(PreferenceConstants.SEARCH, 1)) { + case 1: + // GOOGLE_SEARCH; + home = home + "file:///android_asset/google.png"; + // + "https://www.google.com/images/srpr/logo11w.png"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.GOOGLE_SEARCH; + break; + case 2: + // ANDROID SEARCH; + home = home + "file:///android_asset/lightning.png"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.ANDROID_SEARCH; + break; + case 3: + // BING_SEARCH; + home = home + "file:///android_asset/bing.png"; + // + + // "http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Bing_logo_%282013%29.svg/500px-Bing_logo_%282013%29.svg.png"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.BING_SEARCH; + break; + case 4: + // YAHOO_SEARCH; + home = home + "file:///android_asset/yahoo.png"; + // + + // "http://upload.wikimedia.org/wikipedia/commons/thumb/2/24/Yahoo%21_logo.svg/799px-Yahoo%21_logo.svg.png"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.YAHOO_SEARCH; + break; + case 5: + // STARTPAGE_SEARCH; + home = home + "file:///android_asset/startpage.png"; + // + "https://startpage.com/graphics/startp_logo.gif"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.STARTPAGE_SEARCH; + break; + case 6: + // STARTPAGE_MOBILE + home = home + "file:///android_asset/startpage.png"; + // + "https://startpage.com/graphics/startp_logo.gif"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.STARTPAGE_MOBILE_SEARCH; + case 7: + // DUCK_SEARCH; + home = home + "file:///android_asset/duckduckgo.png"; + // + "https://duckduckgo.com/assets/logo_homepage.normal.v101.png"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.DUCK_SEARCH; + break; + case 8: + // DUCK_LITE_SEARCH; + home = home + "file:///android_asset/duckduckgo.png"; + // + "https://duckduckgo.com/assets/logo_homepage.normal.v101.png"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.DUCK_LITE_SEARCH; + break; + case 9: + // BAIDU_SEARCH; + home = home + "file:///android_asset/baidu.png"; + // + "http://www.baidu.com/img/bdlogo.gif"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.BAIDU_SEARCH; + break; + case 10: + // YANDEX_SEARCH; + home = home + "file:///android_asset/yandex.png"; + // + + // "http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Yandex.svg/600px-Yandex.svg.png"; + home = home + HomepageVariables.MIDDLE; + home = home + Constants.YANDEX_SEARCH; + break; + + } + + home = home + HomepageVariables.END; + + File homepage = new File(mActivity.getCacheDir(), "homepage.html"); + try { + FileWriter hWriter = new FileWriter(homepage, false); + hWriter.write(home); + hWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + return Constants.FILE + homepage; + } + + public synchronized void initializePreferences(Context context) { + mPreferences = context.getSharedPreferences(PreferenceConstants.PREFERENCES, 0); + mHomepage = mPreferences.getString(PreferenceConstants.HOMEPAGE, Constants.HOMEPAGE); + mAdBlock.updatePreference(); + if (mSettings == null && mWebView != null) { + mSettings = mWebView.getSettings(); + } else if (mSettings == null) { + return; + } + mSettings.setGeolocationEnabled(mPreferences.getBoolean(PreferenceConstants.LOCATION, + false)); + if (API < 19) { + switch (mPreferences.getInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 0)) { + case 0: + mSettings.setPluginState(PluginState.OFF); + break; + case 1: { + mSettings.setPluginState(PluginState.ON_DEMAND); + break; + } + case 2: { + mSettings.setPluginState(PluginState.ON); + break; + } + default: + break; + } + } + + switch (mPreferences.getInt(PreferenceConstants.USER_AGENT, 1)) { + case 1: + if (API > 16) + mSettings.setUserAgentString(WebSettings + .getDefaultUserAgent(context)); + else + mSettings.setUserAgentString(mDefaultUserAgent); + break; + case 2: + mSettings.setUserAgentString(Constants.DESKTOP_USER_AGENT); + break; + case 3: + mSettings.setUserAgentString(Constants.MOBILE_USER_AGENT); + break; + case 4: + mSettings.setUserAgentString(mPreferences.getString( + PreferenceConstants.USER_AGENT_STRING, mDefaultUserAgent)); + break; + } + + if (mPreferences.getBoolean(PreferenceConstants.SAVE_PASSWORDS, false)) { + if (API < 18) { + mSettings.setSavePassword(true); + } + mSettings.setSaveFormData(true); + } + + if (mPreferences.getBoolean("java", true)) { + mSettings.setJavaScriptEnabled(true); + mSettings.setJavaScriptCanOpenWindowsAutomatically(true); + } + + if (mPreferences.getBoolean("textreflow", false)) { + mSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); + } else { + mSettings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL); + } + + mSettings.setBlockNetworkImage(mPreferences.getBoolean(PreferenceConstants.BLOCK_IMAGES, + false)); + mSettings.setSupportMultipleWindows(mPreferences.getBoolean( + PreferenceConstants.POPUPS, true)); + mSettings.setUseWideViewPort(mPreferences.getBoolean(PreferenceConstants.USE_WIDE_VIEWPORT, + true)); + mWideViewPort = mPreferences.getBoolean(PreferenceConstants.USE_WIDE_VIEWPORT, true); + mSettings.setLoadWithOverviewMode(mPreferences.getBoolean( + PreferenceConstants.OVERVIEW_MODE, true)); + switch (mPreferences.getInt(PreferenceConstants.TEXT_SIZE, 3)) { + case 1: + mSettings.setTextZoom(200); + break; + case 2: + mSettings.setTextZoom(150); + break; + case 3: + mSettings.setTextZoom(100); + break; + case 4: + mSettings.setTextZoom(75); + break; + case 5: + mSettings.setTextZoom(50); + break; + } + } + + @SuppressLint("SetJavaScriptEnabled") + public void initializeSettings(WebSettings settings, Context context) { + if (API < 18) { + settings.setAppCacheMaxSize(Long.MAX_VALUE); + } + if (API < 17) { + settings.setEnableSmoothTransition(true); + } + if (API > 16) { + settings.setMediaPlaybackRequiresUserGesture(true); + } + if (API < 19) { + settings.setDatabasePath(context.getFilesDir().getAbsolutePath() + + "/databases"); + } + settings.setDomStorageEnabled(true); + settings.setAppCachePath(context.getCacheDir().toString()); + settings.setAppCacheEnabled(true); + settings.setCacheMode(WebSettings.LOAD_DEFAULT); + settings.setGeolocationDatabasePath(context.getCacheDir() + .getAbsolutePath()); + settings.setAllowFileAccess(true); + settings.setDatabaseEnabled(true); + settings.setSupportZoom(true); + settings.setBuiltInZoomControls(true); + settings.setDisplayZoomControls(false); + settings.setAllowContentAccess(true); + settings.setDefaultTextEncodingName("utf-8"); + if (API > 16) { + settings.setAllowFileAccessFromFileURLs(false); + settings.setAllowUniversalAccessFromFileURLs(false); + } + } + + public boolean isShown() { + if (mWebView != null) + return mWebView.isShown(); + else + return false; + } + + public synchronized void onPause() { + if (mWebView != null) + mWebView.onPause(); + } + + public synchronized void onResume() { + if (mWebView != null) + mWebView.onResume(); + } + + public int getProgress() { + if (mWebView != null) { + return mWebView.getProgress(); + } else { + return 100; + } + } + + public synchronized void stopLoading() { + if (mWebView != null) { + mWebView.stopLoading(); + } + } + + public synchronized void pauseTimers() { + if (mWebView != null) { + mWebView.pauseTimers(); + } + } + + public synchronized void resumeTimers() { + if (mWebView != null) { + mWebView.resumeTimers(); + } + } + + public void requestFocus() { + if (mWebView != null) { + if (!mWebView.hasFocus()) + mWebView.requestFocus(); + } + } + + public void setVisibility(int visible) { + if (mWebView != null) { + mWebView.setVisibility(visible); + } + } + + public void clearCache(boolean disk) { + if (mWebView != null) { + mWebView.clearCache(disk); + } + } + + public synchronized void reload() { + if (mWebView != null) { + mWebView.reload(); + } + } + + public synchronized void find(String text) { + if (mWebView != null) { + if (API > 16) { + mWebView.findAllAsync(text); + } else { + mWebView.findAll(text); + } + } + } + + public synchronized void onDestroy() { + if (mWebView != null) { + mWebView.stopLoading(); + mWebView.onPause(); + mWebView.clearHistory(); + mWebView.setVisibility(View.GONE); + mWebView.removeAllViews(); + mWebView.destroyDrawingCache(); + // mWebView.destroy(); //this is causing the segfault + mWebView = null; + } + } + + public synchronized void goBack() { + if (mWebView != null) + mWebView.goBack(); + } + + public String getUserAgent() { + if (mWebView != null) { + return mWebView.getSettings().getUserAgentString(); + } else { + return ""; + } + } + + public synchronized void goForward() { + if (mWebView != null) + mWebView.goForward(); + } + + public boolean canGoBack() { + if (mWebView != null) { + return mWebView.canGoBack(); + } else { + return false; + } + } + + public boolean canGoForward() { + if (mWebView != null) { + return mWebView.canGoForward(); + } else { + return false; + } + } + + public WebView getWebView() { + return mWebView; + } + + public Bitmap getFavicon() { + return mTitle.getFavicon(); + } + + public synchronized void loadUrl(String url) { + if (mWebView != null) + mWebView.loadUrl(url); + } + + public synchronized void invalidate() { + if (mWebView != null) + mWebView.invalidate(); + } + + public String getTitle() { + return mTitle.getTitle(); + } + + public String getUrl() { + if (mWebView != null) + return mWebView.getUrl(); + else + return ""; + } + + public class LightningWebClient extends WebViewClient { + + Context mActivity; + + LightningWebClient(Context context) { + mActivity = context; + } + + @Override + public WebResourceResponse shouldInterceptRequest(WebView view, + String url) { + if (mAdBlock.isAd(url)) { + Log.i("Blocked Domain:", url); + ByteArrayInputStream EMPTY = new ByteArrayInputStream( + "".getBytes()); + WebResourceResponse response = new WebResourceResponse( + "text/plain", "utf-8", EMPTY); + return response; + } + return super.shouldInterceptRequest(view, url); + } + + @Override + public void onPageFinished(WebView view, String url) { + if (view.isShown()) { + view.invalidate(); + } + mTitle.setTitle(view.getTitle()); + mBrowserController.update(); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + if (!mSettings.getUseWideViewPort()) { + mSettings.setUseWideViewPort(mWideViewPort); + } + if (isShown()) { + mBrowserController.updateUrl(url); + mBrowserController.showActionBar(); + } + mTitle.setFavicon(mWebpageBitmap); + mBrowserController.update(); + } + + @Override + public void onReceivedHttpAuthRequest(final WebView view, + final HttpAuthHandler handler, final String host, + final String realm) { + + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + final EditText name = new EditText(mActivity); + final EditText password = new EditText(mActivity); + LinearLayout passLayout = new LinearLayout(mActivity); + passLayout.setOrientation(LinearLayout.VERTICAL); + + passLayout.addView(name); + passLayout.addView(password); + + name.setHint(mActivity.getString(R.string.hint_username)); + password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); + password.setTransformationMethod(new PasswordTransformationMethod()); + password.setHint(mActivity.getString(R.string.hint_password)); + builder.setTitle(mActivity.getString(R.string.title_sign_in)); + builder.setView(passLayout); + builder.setCancelable(true) + .setPositiveButton(mActivity.getString(R.string.title_sign_in), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + String user = name.getText().toString(); + String pass = password.getText().toString(); + handler.proceed(user.trim(), pass.trim()); + Log.i("Lightning", "Request Login"); + + } + }) + .setNegativeButton(mActivity.getString(R.string.action_cancel), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + handler.cancel(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + + } + + @Override + public void onScaleChanged(WebView view, float oldScale, float newScale) { + if (view.isShown()) { + view.invalidate(); + } + } + + @Override + public void onReceivedSslError(WebView view, + final SslErrorHandler handler, SslError error) { + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(mActivity.getString(R.string.title_warning)); + builder.setMessage( + mActivity.getString(R.string.message_untrusted_certificate)) + .setCancelable(true) + .setPositiveButton(mActivity.getString(R.string.action_yes), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + handler.proceed(); + } + }) + .setNegativeButton(mActivity.getString(R.string.action_no), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + handler.cancel(); + } + }); + AlertDialog alert = builder.create(); + if (error.getPrimaryError() == SslError.SSL_UNTRUSTED) { + alert.show(); + } else { + handler.proceed(); + } + + } + + @Override + public void onFormResubmission(WebView view, final Message dontResend, + final Message resend) { + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(mActivity.getString(R.string.title_form_resubmission)); + builder.setMessage(mActivity.getString(R.string.message_form_resubmission)) + .setCancelable(true) + .setPositiveButton(mActivity.getString(R.string.action_yes), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + + resend.sendToTarget(); + } + }) + .setNegativeButton("No", + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + + dontResend.sendToTarget(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + if (url.startsWith("market://") + || url.startsWith("http://play.google.com/store/apps") + || url.startsWith("https://play.google.com/store/apps")) { + Intent urlIntent = new Intent(Intent.ACTION_VIEW, + Uri.parse(url)); + urlIntent.putExtra(mPackageName + ".Origin", 1); + mActivity.startActivity(urlIntent); + return true; + } else if (url.startsWith("http://www.youtube.com") + || url.startsWith("https://www.youtube.com") + || url.startsWith("http://m.youtube.com") + || url.startsWith("https://m.youtube.com")) { + Intent urlIntent = new Intent(Intent.ACTION_VIEW, + Uri.parse(url)); + urlIntent.putExtra(mPackageName + ".Origin", 1); + mActivity.startActivity(urlIntent); + return true; + } else if (url.startsWith("http://maps.google.com") + || url.startsWith("https://maps.google.com")) { + Intent urlIntent = new Intent(Intent.ACTION_VIEW, + Uri.parse(url)); + urlIntent.putExtra(mPackageName + ".Origin", 1); + mActivity.startActivity(urlIntent); + return true; + } else if (url.contains("tel:") || TextUtils.isDigitsOnly(url)) { + mActivity.startActivity(new Intent(Intent.ACTION_DIAL, Uri + .parse(url))); + return true; + } else if (url.contains("mailto:")) { + MailTo mailTo = MailTo.parse(url); + Intent i = Utils.newEmailIntent(mActivity, mailTo.getTo(), + mailTo.getSubject(), mailTo.getBody(), mailTo.getCc()); + mActivity.startActivity(i); + view.reload(); + return true; + } else if (url.startsWith("magnet:?")) { + Intent urlIntent = new Intent(Intent.ACTION_VIEW, + Uri.parse(url)); + urlIntent.putExtra(mPackageName + ".Origin", 1); + mActivity.startActivity(urlIntent); + } else if (url.startsWith("intent://")) { + Intent intent = null; + try { + intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); + } catch (URISyntaxException ex) { + return false; + } + if (intent != null) { + mActivity.startActivity(intent); + return true; + } + } + return super.shouldOverrideUrlLoading(view, url); + } + } + + public class LightningChromeClient extends WebChromeClient { + + Context mActivity; + + LightningChromeClient(Context context) { + mActivity = context; + } + + @Override + public void onProgressChanged(WebView view, int newProgress) { + if (isShown()) { + mBrowserController.updateProgress(newProgress); + } + } + + @Override + public void onReceivedIcon(WebView view, Bitmap icon) { + mTitle.setFavicon(icon); + mBrowserController.update(); + } + + @Override + public void onReceivedTitle(WebView view, String title) { + mTitle.setTitle(title); + mBrowserController.update(); + mBrowserController.updateHistory(title, view.getUrl()); + } + + @Override + public void onGeolocationPermissionsShowPrompt(final String origin, + final GeolocationPermissions.Callback callback) { + final boolean remember = true; + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(mActivity.getString(R.string.location)); + String org = null; + if (origin.length() > 50) { + org = (String) origin.subSequence(0, 50) + "..."; + } else { + org = origin; + } + builder.setMessage(org + mActivity.getString(R.string.message_location)) + .setCancelable(true) + .setPositiveButton(mActivity.getString(R.string.action_allow), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + callback.invoke(origin, true, remember); + } + }) + .setNegativeButton(mActivity.getString(R.string.action_dont_allow), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int id) { + callback.invoke(origin, false, remember); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + + } + + @Override + public boolean onCreateWindow(WebView view, boolean isDialog, + boolean isUserGesture, Message resultMsg) { + mBrowserController.onCreateWindow(isUserGesture, resultMsg); + return isUserGesture; + } + + @Override + public void onCloseWindow(WebView window) { + // TODO Auto-generated method stub + super.onCloseWindow(window); + } + + public void openFileChooser(ValueCallback uploadMsg) { + mBrowserController.openFileChooser(uploadMsg); + } + + public void openFileChooser(ValueCallback uploadMsg, + String acceptType) { + mBrowserController.openFileChooser(uploadMsg); + } + + public void openFileChooser(ValueCallback uploadMsg, + String acceptType, String capture) { + mBrowserController.openFileChooser(uploadMsg); + } + + @Override + public Bitmap getDefaultVideoPoster() { + return mBrowserController.getDefaultVideoPoster(); + } + + @Override + public View getVideoLoadingProgressView() { + return mBrowserController.getVideoLoadingProgressView(); + } + + @Override + public void onHideCustomView() { + mBrowserController.onHideCustomView(); + super.onHideCustomView(); + } + + @Override + public void onShowCustomView(View view, CustomViewCallback callback) { + Activity activity = mBrowserController.getActivity(); + mBrowserController.onShowCustomView(view, + activity.getRequestedOrientation(), callback); + super.onShowCustomView(view, callback); + } + + @Override + @Deprecated + public void onShowCustomView(View view, int requestedOrientation, + CustomViewCallback callback) { + mBrowserController.onShowCustomView(view, requestedOrientation, + callback); + super.onShowCustomView(view, requestedOrientation, callback); + } + + } + + public class Title { + private Bitmap mFavicon; + private String mTitle; + private Bitmap mDefaultIcon; + + public Title(Context context) { + mDefaultIcon = BitmapFactory.decodeResource(context.getResources(), + R.drawable.ic_webpage); + mFavicon = mDefaultIcon; + mTitle = mActivity.getString(R.string.action_new_tab); + } + + public void setFavicon(Bitmap favicon) { + mFavicon = favicon; + if (mFavicon == null) { + mFavicon = mDefaultIcon; + } + } + + public void setTitle(String title) { + if (title == null) { + title = ""; + } + mTitle = title; + } + + public void setTitleAndFavicon(String title, Bitmap favicon) { + mTitle = title; + mFavicon = favicon; + if (mFavicon == null) { + mFavicon = mDefaultIcon; + } + } + + public String getTitle() { + return mTitle; + } + + public Bitmap getFavicon() { + return mFavicon; + } + } + + private class CustomGestureListener extends SimpleOnGestureListener { + + @Override + public void onLongPress(MotionEvent e) { + mBrowserController.onLongPress(); + } + + } +} diff --git a/src/acr/browser/lightning/PreferenceConstants.java b/src/acr/browser/lightning/PreferenceConstants.java new file mode 100644 index 0000000..b3fd194 --- /dev/null +++ b/src/acr/browser/lightning/PreferenceConstants.java @@ -0,0 +1,34 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +public class PreferenceConstants { + public static final String ADOBE_FLASH_SUPPORT = "enableflash"; + public static final String BLOCK_ADS = "AdBlock"; + public static final String BLOCK_IMAGES = "blockimages"; + public static final String CLEAR_CACHE_EXIT = "cache"; + public static final String COOKIES = "cookies"; + public static final String DOWNLOAD_DIRECTORY = "download"; + public static final String FULL_SCREEN = "fullscreen"; + public static final String HIDE_STATUS_BAR = "hidestatus"; + public static final String HOMEPAGE = "home"; + public static final String INCOGNITO_COOKIES = "incognitocookies"; + public static final String JAVASCRIPT = "java"; + public static final String LOCATION = "location"; + public static final String OVERVIEW_MODE = "overviewmode"; + public static final String POPUPS = "newwindows"; + public static final String PREFERENCES = "settings"; + public static final String RESTORE_LOST_TABS = "restoreclosed"; + public static final String SAVE_PASSWORDS = "passwords"; + public static final String SEARCH = "search"; + public static final String SEARCH_URL = "searchurl"; + public static final String SYSTEM_BROWSER_PRESENT = "SystemBrowser"; + public static final String TEXT_REFLOW = "textreflow"; + public static final String TEXT_SIZE = "textsize"; + public static final String URL_MEMORY = "memory"; + public static final String USE_WIDE_VIEWPORT = "wideviewport"; + public static final String USER_AGENT = "agentchoose"; + public static final String USER_AGENT_STRING = "userAgentString"; + public static final String GOOGLE_SEARCH_SUGGESTIONS = "GoogleSearchSuggestions"; +} diff --git a/src/acr/browser/lightning/SearchAdapter.java b/src/acr/browser/lightning/SearchAdapter.java new file mode 100644 index 0000000..9f159ec --- /dev/null +++ b/src/acr/browser/lightning/SearchAdapter.java @@ -0,0 +1,393 @@ +package acr.browser.lightning; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.AsyncTask; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.Filter; +import android.widget.Filterable; +import android.widget.ImageView; +import android.widget.TextView; + +public class SearchAdapter extends BaseAdapter implements Filterable { + + private List mHistory; + private List mBookmarks; + private List mSuggestions; + private List mFilteredList; + private List mAllBookmarks; + private DatabaseHandler mDatabaseHandler; + private SharedPreferences mPreferences; + private boolean mUseGoogle = true; + private Context mContext; + private boolean mIncognito = false; + + public SearchAdapter(Context context, boolean incognito) { + mDatabaseHandler = new DatabaseHandler(context); + mFilteredList = new ArrayList(); + mHistory = new ArrayList(); + mBookmarks = new ArrayList(); + mSuggestions = new ArrayList(); + mAllBookmarks = Utils.getBookmarks(context); + mPreferences = context.getSharedPreferences( + PreferenceConstants.PREFERENCES, 0); + mUseGoogle = mPreferences.getBoolean( + PreferenceConstants.GOOGLE_SEARCH_SUGGESTIONS, true); + mContext = context; + mIncognito = incognito; + } + + public void refreshPreferences() { + mUseGoogle = mPreferences.getBoolean( + PreferenceConstants.GOOGLE_SEARCH_SUGGESTIONS, true); + if (!mUseGoogle && mSuggestions != null) { + mSuggestions.clear(); + } + } + + public void refreshBookmarks() { + mAllBookmarks = Utils.getBookmarks(mContext); + } + + @Override + public int getCount() { + if (mFilteredList != null) { + return mFilteredList.size(); + } else { + return 0; + } + } + + @Override + public Object getItem(int position) { + return mFilteredList.get(position); + } + + @Override + public long getItemId(int position) { + return 0; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + SuggestionHolder holder = null; + + if (row == null) { + LayoutInflater inflater = ((Activity) mContext).getLayoutInflater(); + row = inflater.inflate(R.layout.two_line_autocomplete, parent, + false); + + holder = new SuggestionHolder(); + holder.mTitle = (TextView) row.findViewById(R.id.title); + holder.mUrl = (TextView) row.findViewById(R.id.url); + holder.mImage = (ImageView) row.findViewById(R.id.suggestionIcon); + row.setTag(holder); + } else { + holder = (SuggestionHolder) row.getTag(); + } + + HistoryItem web = mFilteredList.get(position); + holder.mTitle.setText(web.getTitle()); + holder.mUrl.setText(web.getUrl()); + + int imageId = R.drawable.ic_bookmark; + switch (web.getImageId()) { + case R.drawable.ic_bookmark: { + if (!mIncognito) { + imageId = R.drawable.ic_bookmark; + } else { + holder.mTitle.setTextColor(Color.WHITE); + imageId = R.drawable.ic_bookmark_dark; + } + break; + } + case R.drawable.ic_search: { + if (!mIncognito) { + imageId = R.drawable.ic_search; + } else { + holder.mTitle.setTextColor(Color.WHITE); + imageId = R.drawable.ic_search_dark; + } + break; + } + case R.drawable.ic_history: { + if (!mIncognito) { + imageId = R.drawable.ic_history; + } else { + holder.mTitle.setTextColor(Color.WHITE); + imageId = R.drawable.ic_history_dark; + } + break; + } + } + + holder.mImage.setImageDrawable(mContext.getResources().getDrawable( + imageId)); + + return row; + } + + public void setContents(List list) { + if (mFilteredList != null) { + mFilteredList.clear(); + mFilteredList.addAll(list); + } + } + + @Override + public Filter getFilter() { + return new SearchFilter(); + } + + public class SearchFilter extends Filter { + + @Override + protected FilterResults performFiltering(CharSequence constraint) { + FilterResults results = new FilterResults(); + if (constraint == null) { + return results; + } + String query = constraint.toString().toLowerCase( + Locale.getDefault()); + if (query == null) { + return results; + } + if (mUseGoogle && !mIncognito) { + new RetrieveSearchSuggestions().execute(query); + } + + List filter = new ArrayList(); + + int counter = 0; + mBookmarks = new ArrayList(); + for (int n = 0; n < mAllBookmarks.size(); n++) { + if (counter >= 5) { + break; + } + if (mAllBookmarks.get(n).getTitle() + .toLowerCase(Locale.getDefault()).startsWith(query)) { + filter.add(mAllBookmarks.get(n)); + mBookmarks.add(mAllBookmarks.get(n)); + counter++; + } + + } + if (mDatabaseHandler == null || !mDatabaseHandler.isOpen()) { + mDatabaseHandler = new DatabaseHandler(mContext); + } + mHistory = mDatabaseHandler.findItemsContaining(constraint + .toString()); + for (int n = 0; n < mHistory.size(); n++) { + if (n >= 5) { + break; + } + filter.add(mHistory.get(n)); + } + + for (int n = 0; n < mSuggestions.size(); n++) { + if (filter.size() >= 5) { + break; + } + filter.add(mSuggestions.get(n)); + } + + results.count = filter.size(); + results.values = filter; + return results; + } + + @Override + public CharSequence convertResultToString(Object resultValue) { + return ((HistoryItem) resultValue).getUrl(); + } + + @Override + protected void publishResults(CharSequence constraint, + FilterResults results) { + synchronized (mFilteredList) { + mFilteredList = getSuggestions(); + notifyDataSetChanged(); + } + } + + } + + private class SuggestionHolder { + ImageView mImage; + TextView mTitle; + TextView mUrl; + } + + private class RetrieveSearchSuggestions extends + AsyncTask> { + + @Override + protected List doInBackground(String... arg0) { + if (!isNetworkConnected(mContext)) { + return new ArrayList(); + } + List filter = new ArrayList(); + String query = arg0[0]; + try { + query = query.replace(" ", "+"); + URLEncoder.encode(query, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + InputStream download = null; + try { + try { + download = new java.net.URL( + "http://google.com/complete/search?q=" + query + + "&output=toolbar&hl=en").openStream(); + XmlPullParserFactory factory = XmlPullParserFactory + .newInstance(); + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + xpp.setInput(download, "iso-8859-1"); + int eventType = xpp.getEventType(); + int counter = 0; + while (eventType != XmlPullParser.END_DOCUMENT) { + if (eventType == XmlPullParser.START_TAG) { + if (xpp.getName().equals("suggestion")) { + String suggestion = xpp.getAttributeValue(null, + "data"); + filter.add(new HistoryItem(mContext + .getString(R.string.suggestion) + + " \"" + + suggestion + "\"", suggestion, + R.drawable.ic_search)); + counter++; + if (counter >= 5) { + break; + } + } + } + eventType = xpp.next(); + } + } finally { + if (download != null) { + download.close(); + } + } + } catch (FileNotFoundException e) { + } catch (MalformedURLException e) { + } catch (IOException e) { + } catch (XmlPullParserException e) { + } + return filter; + } + + @Override + protected void onPostExecute(List result) { + synchronized (mFilteredList) { + mSuggestions = result; + + mFilteredList = getSuggestions(); + notifyDataSetChanged(); + } + } + + } + + private boolean isNetworkConnected(Context context) { + NetworkInfo networkInfo = getActiveNetworkInfo(context); + return networkInfo != null && networkInfo.isConnected(); + } + + private NetworkInfo getActiveNetworkInfo(Context context) { + ConnectivityManager connectivity = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + if (connectivity == null) { + return null; + } + return connectivity.getActiveNetworkInfo(); + } + + public List getSuggestions() { + List filteredList = new ArrayList(); + + int suggestionsSize = 0; + int historySize = 0; + int bookmarkSize = 0; + + if (mSuggestions != null) { + suggestionsSize = mSuggestions.size(); + } + if (mHistory != null) { + historySize = mHistory.size(); + } + if (mBookmarks != null) { + bookmarkSize = mBookmarks.size(); + } + + int maxSuggestions = 2; + int maxHistory = 1; + int maxBookmarks = 2; + + if (!mUseGoogle || mIncognito) { + maxHistory++; + maxBookmarks++; + } + + if (bookmarkSize + historySize < 3) { + maxSuggestions = 5 - (bookmarkSize + historySize); + } else if (bookmarkSize < 2) { + maxSuggestions += 2 - bookmarkSize; + } else if (historySize < 1) { + maxSuggestions += 1; + } + if (suggestionsSize + bookmarkSize < 4) { + maxHistory = 5 - (suggestionsSize + bookmarkSize); + } + if (suggestionsSize + historySize < 3) { + maxBookmarks = 5 - (suggestionsSize + historySize); + } + + for (int n = 0; n < bookmarkSize; n++) { + if (n >= maxBookmarks) { + break; + } + filteredList.add(mBookmarks.get(n)); + } + + for (int n = 0; n < historySize; n++) { + if (n >= maxHistory) { + break; + } + filteredList.add(mHistory.get(n)); + } + + for (int n = 0; n < suggestionsSize; n++) { + if (n >= maxSuggestions) { + break; + } + filteredList.add(mSuggestions.get(n)); + } + + return filteredList; + } + +} diff --git a/src/acr/browser/barebones/activities/SettingsActivity.java b/src/acr/browser/lightning/SettingsActivity.java similarity index 56% rename from src/acr/browser/barebones/activities/SettingsActivity.java rename to src/acr/browser/lightning/SettingsActivity.java index 62a6092..1d91e54 100644 --- a/src/acr/browser/barebones/activities/SettingsActivity.java +++ b/src/acr/browser/lightning/SettingsActivity.java @@ -1,15 +1,17 @@ -package acr.browser.barebones.activities; +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; -import acr.browser.barebones.R; -import acr.browser.barebones.utilities.FinalVariables; -import acr.browser.barebones.utilities.Utils; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; +import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; @@ -19,6 +21,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.Color; import android.util.Log; import android.util.TypedValue; +import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; @@ -26,99 +29,115 @@ import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; -import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.Switch; import android.widget.TextView; public class SettingsActivity extends Activity { - static int API = FinalVariables.API; - static final String preferences = "settings"; - static SharedPreferences.Editor mEditPrefs; - static int agentChoice; - static String homepage; - static String searchurl; - static TextView agentText; - static String agent; - static TextView download; - static int egg = 0; - static String downloadLocation; - static TextView homepageText; - static SharedPreferences settings; - static TextView searchText; + + private static int API = android.os.Build.VERSION.SDK_INT; + private static SharedPreferences.Editor mEditPrefs; + private static int mAgentChoice; + private static String mHomepage; + private static TextView mAgentTextView; + private static TextView mDownloadTextView; + private static int mEasterEggCounter = 0; + private static String mSearchUrl; + private static String mDownloadLocation; + private static TextView mHomepageText; + private static SharedPreferences mPreferences; + private static TextView mSearchText; + private Context mContext; + private Activity mActivity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings); - + mContext = this; + mActivity = this; init(); } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + finish(); + return true; + } + @SuppressLint("NewApi") public void init() { - // settings storage - settings = getSharedPreferences(preferences, 0); - if (settings.getBoolean("hidestatus", false)) { + // mPreferences storage + getActionBar().setHomeButtonEnabled(true); + getActionBar().setDisplayHomeAsUpEnabled(true); + mPreferences = getSharedPreferences(PreferenceConstants.PREFERENCES, 0); + if (mPreferences.getBoolean(PreferenceConstants.HIDE_STATUS_BAR, false)) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } - mEditPrefs= settings.edit(); + + mEditPrefs = mPreferences.edit(); // initialize UI RelativeLayout layoutLocation = (RelativeLayout) findViewById(R.id.layoutLocation); RelativeLayout layoutFullScreen = (RelativeLayout) findViewById(R.id.layoutFullScreen); RelativeLayout layoutFlash = (RelativeLayout) findViewById(R.id.layoutFlash); - ImageView back = (ImageView) findViewById(R.id.back); + RelativeLayout layoutBlockAds = (RelativeLayout) findViewById(R.id.layoutAdBlock); - searchText = (TextView) findViewById(R.id.searchText); + mSearchText = (TextView) findViewById(R.id.searchText); - switch (settings.getInt("search", 1)) { + switch (mPreferences.getInt(PreferenceConstants.SEARCH, 1)) { case 0: - searchText.setText("Custom URL"); + mSearchText.setText(getResources().getString(R.string.custom_url)); break; case 1: - searchText.setText("Google"); + mSearchText.setText("Google"); break; case 2: - searchText.setText("Bing"); + mSearchText.setText("Android Search"); break; case 3: - searchText.setText("Yahoo"); + mSearchText.setText("Bing"); break; case 4: - searchText.setText("StartPage"); + mSearchText.setText("Yahoo"); break; case 5: - searchText.setText("DuckDuckGo"); + mSearchText.setText("StartPage"); break; case 6: - searchText.setText("Baidu"); + mSearchText.setText("StartPage (Mobile)"); break; case 7: - searchText.setText("Yandex"); + mSearchText.setText("DuckDuckGo"); break; case 8: - searchText.setText("DuckDuckGo Lite"); + mSearchText.setText("DuckDuckGo Lite"); break; + case 9: + mSearchText.setText("Baidu"); + break; + case 10: + mSearchText.setText("Yandex"); } - back.setBackgroundResource(R.drawable.button); - agentText = (TextView) findViewById(R.id.agentText); - homepageText = (TextView) findViewById(R.id.homepageText); - download = (TextView) findViewById(R.id.downloadText); - - boolean locationBool = settings.getBoolean("location", false); - int flashNum = settings.getInt("enableflash", 0); - boolean fullScreenBool = settings.getBoolean("fullscreen", false); - agentChoice = settings.getInt("agentchoose", 1); - homepage = settings.getString("home", FinalVariables.HOMEPAGE); - downloadLocation = settings.getString("download", + mAgentTextView = (TextView) findViewById(R.id.agentText); + mHomepageText = (TextView) findViewById(R.id.homepageText); + mDownloadTextView = (TextView) findViewById(R.id.downloadText); + if (API >= 19) { + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 0); + mEditPrefs.commit(); + } + boolean locationBool = mPreferences.getBoolean(PreferenceConstants.LOCATION, false); + int flashNum = mPreferences.getInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 0); + boolean fullScreenBool = mPreferences.getBoolean(PreferenceConstants.FULL_SCREEN, false); + mAgentChoice = mPreferences.getInt(PreferenceConstants.USER_AGENT, 1); + mHomepage = mPreferences.getString(PreferenceConstants.HOMEPAGE, Constants.HOMEPAGE); + mDownloadLocation = mPreferences.getString(PreferenceConstants.DOWNLOAD_DIRECTORY, Environment.DIRECTORY_DOWNLOADS); - download.setText(FinalVariables.EXTERNAL_STORAGE + "/" - + downloadLocation); + mDownloadTextView.setText(Constants.EXTERNAL_STORAGE + "/" + mDownloadLocation); String code = "HOLO"; @@ -134,88 +153,84 @@ public class SettingsActivity extends Activity { TextView version = (TextView) findViewById(R.id.versionCode); version.setText(code + ""); - if (homepage.contains("about:home")) { - homepageText.setText(getResources().getString( + if (mHomepage.contains("about:home")) { + mHomepageText.setText(getResources().getString( R.string.action_homepage)); - } else if (homepage.contains("about:blank")) { - homepageText.setText(getResources() + } else if (mHomepage.contains("about:blank")) { + mHomepageText.setText(getResources() .getString(R.string.action_blank)); + } else if (mHomepage.contains("about:bookmarks")) { + mHomepageText.setText(getResources().getString( + R.string.action_bookmarks)); } else { - homepageText.setText(homepage); + mHomepageText.setText(mHomepage); } - switch (agentChoice) { + switch (mAgentChoice) { case 1: - agentText.setText(getResources().getString(R.string.agent_default)); + mAgentTextView.setText(getResources().getString(R.string.agent_default)); break; case 2: - agentText.setText(getResources().getString(R.string.agent_desktop)); + mAgentTextView.setText(getResources().getString(R.string.agent_desktop)); break; case 3: - agentText.setText(getResources().getString(R.string.agent_mobile)); + mAgentTextView.setText(getResources().getString(R.string.agent_mobile)); break; case 4: - agentText.setText(getResources().getString(R.string.agent_custom)); + mAgentTextView.setText(getResources().getString(R.string.agent_custom)); } - RelativeLayout r1, r2, r3; + RelativeLayout r1, r2, r3, r4, licenses; r1 = (RelativeLayout) findViewById(R.id.setR1); r2 = (RelativeLayout) findViewById(R.id.setR2); r3 = (RelativeLayout) findViewById(R.id.setR3); - if (API >= 14) { - Switch location = new Switch(this); - Switch fullScreen = new Switch(this); - Switch flash = new Switch(this); - - r1.addView(location); - r2.addView(fullScreen); - r3.addView(flash); - location.setChecked(locationBool); - fullScreen.setChecked(fullScreenBool); - if (flashNum > 0) { - flash.setChecked(true); - } else { - flash.setChecked(false); - } - - initSwitch(location, fullScreen, flash); - clickListenerForSwitches(layoutLocation, layoutFullScreen, - layoutFlash, location, fullScreen, flash); + r4 = (RelativeLayout) findViewById(R.id.setR4); + licenses = (RelativeLayout) findViewById(R.id.layoutLicense); + + licenses.setOnClickListener(new OnClickListener(){ - } else { - CheckBox location = new CheckBox(this); - CheckBox fullScreen = new CheckBox(this); - CheckBox flash = new CheckBox(this); - - r1.addView(location); - r2.addView(fullScreen); - r3.addView(flash); - - location.setChecked(locationBool); - fullScreen.setChecked(fullScreenBool); - if (flashNum > 0) { - flash.setChecked(true); - } else { - flash.setChecked(false); + @Override + public void onClick(View arg0) { + //NOTE: In order to comply with the open source license, + //it is advised that you leave this code so that the License + //Activity may be viewed by the user. + startActivity(new Intent(Constants.LICENSE_INTENT)); } - initCheckBox(location, fullScreen, flash); - clickListenerForCheckBoxes(layoutLocation, layoutFullScreen, - layoutFlash, location, fullScreen, flash); + + }); + + Switch location = new Switch(this); + Switch fullScreen = new Switch(this); + Switch flash = new Switch(this); + Switch adblock = new Switch(this); + + r1.addView(location); + r2.addView(fullScreen); + r3.addView(flash); + r4.addView(adblock); + location.setChecked(locationBool); + fullScreen.setChecked(fullScreenBool); + if (flashNum > 0) { + flash.setChecked(true); + } else { + flash.setChecked(false); } + adblock.setChecked(mPreferences.getBoolean(PreferenceConstants.BLOCK_ADS, false)); + + initSwitch(location, fullScreen, flash, adblock); + clickListenerForSwitches(layoutLocation, layoutFullScreen, layoutFlash, layoutBlockAds, + location, fullScreen, flash, adblock); RelativeLayout agent = (RelativeLayout) findViewById(R.id.layoutUserAgent); RelativeLayout download = (RelativeLayout) findViewById(R.id.layoutDownload); RelativeLayout homepage = (RelativeLayout) findViewById(R.id.layoutHomepage); RelativeLayout advanced = (RelativeLayout) findViewById(R.id.layoutAdvanced); RelativeLayout source = (RelativeLayout) findViewById(R.id.layoutSource); - RelativeLayout license = (RelativeLayout) findViewById(R.id.layoutLicense); - back(back); agent(agent); download(download); homepage(homepage); advanced(advanced); source(source); - license(license); search(); easterEgg(); } @@ -226,15 +241,16 @@ public class SettingsActivity extends Activity { @Override public void onClick(View v) { - AlertDialog.Builder picker = new AlertDialog.Builder( - SettingsActivity.this); + AlertDialog.Builder picker = new AlertDialog.Builder(mActivity); picker.setTitle(getResources().getString( R.string.title_search_engine)); - CharSequence[] chars = { getResources().getString(R.string.custom_url), - "Google", "Bing", "Yahoo", - "StartPage", "DuckDuckGo (Privacy)" , "Baidu (Chinese)", "Yandex (Russian)", "DuckDuckGo Lite (Privacy)"}; + CharSequence[] chars = { + getResources().getString(R.string.custom_url), + "Google", "Android Search", "Bing", "Yahoo", "StartPage", "StartPage (Mobile)", + "DuckDuckGo (Privacy)", "DuckDuckGo Lite (Privacy)", "Baidu (Chinese)", + "Yandex (Russian)" }; - int n = settings.getInt("search", 1); + int n = mPreferences.getInt(PreferenceConstants.SEARCH, 1); picker.setSingleChoiceItems(chars, n, new DialogInterface.OnClickListener() { @@ -242,40 +258,46 @@ public class SettingsActivity extends Activity { @Override public void onClick(DialogInterface dialog, int which) { - mEditPrefs.putInt("search", which); + mEditPrefs.putInt(PreferenceConstants.SEARCH, which); mEditPrefs.commit(); switch (which) { case 0: searchUrlPicker(); break; case 1: - searchText.setText("Google"); + mSearchText.setText("Google"); break; case 2: - searchText.setText("Bing"); + mSearchText.setText("Android Search"); break; case 3: - searchText.setText("Yahoo"); + mSearchText.setText("Bing"); break; case 4: - searchText.setText("StartPage"); + mSearchText.setText("Yahoo"); break; case 5: - searchText.setText("DuckDuckGo"); + mSearchText.setText("StartPage"); break; case 6: - searchText.setText("Baidu"); + mSearchText.setText("StartPage (Mobile)"); break; case 7: - searchText.setText("Yandex"); + mSearchText.setText("DuckDuckGo"); break; case 8: - searchText.setText("DuckDuckGo Lite"); + mSearchText.setText("DuckDuckGo Lite"); + break; + case 9: + mSearchText.setText("Baidu"); break; + case 10: + mSearchText.setText("Yandex"); } } }); - picker.setNeutralButton(getResources().getString(R.string.action_ok), + picker.setNeutralButton( + getResources().getString(R.string.action_ok), new DialogInterface.OnClickListener() { @Override @@ -293,62 +315,42 @@ public class SettingsActivity extends Activity { public void searchUrlPicker() { final AlertDialog.Builder urlPicker = new AlertDialog.Builder( SettingsActivity.this); - - urlPicker.setTitle(getResources().getString( - R.string.custom_url)); + + urlPicker.setTitle(getResources().getString(R.string.custom_url)); final EditText getSearchUrl = new EditText(SettingsActivity.this); - searchurl = settings.getString("searchurl", FinalVariables.GOOGLE_SEARCH); - getSearchUrl.setText(searchurl); + mSearchUrl = mPreferences + .getString(PreferenceConstants.SEARCH_URL, Constants.GOOGLE_SEARCH); + getSearchUrl.setText(mSearchUrl); urlPicker.setView(getSearchUrl); - urlPicker.setPositiveButton( - getResources().getString(R.string.action_ok), + urlPicker.setPositiveButton(getResources() + .getString(R.string.action_ok), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String text = getSearchUrl.getText().toString(); - mEditPrefs.putString("searchurl", text); + mEditPrefs.putString(PreferenceConstants.SEARCH_URL, text); mEditPrefs.commit(); - searchText.setText( getResources().getString(R.string.custom_url) + ": " + text); + mSearchText.setText(getResources().getString( + R.string.custom_url) + + ": " + text); } }); urlPicker.show(); } - - public void clickListenerForCheckBoxes(RelativeLayout one, - RelativeLayout two, RelativeLayout three, final CheckBox loc, - final CheckBox full, final CheckBox flash) { - one.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - loc.setChecked(!loc.isChecked()); - } - - }); - two.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - full.setChecked(!full.isChecked()); - } - - }); - three.setOnClickListener(new OnClickListener() { + public void clickListenerForSwitches(RelativeLayout one, + RelativeLayout two, RelativeLayout three, RelativeLayout layoutBlockAds, final Switch loc, + final Switch full, final Switch flash, final Switch adblock) { + layoutBlockAds.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { - flash.setChecked(!flash.isChecked()); + adblock.setChecked(!adblock.isChecked()); } - + }); - } - - public void clickListenerForSwitches(RelativeLayout one, - RelativeLayout two, RelativeLayout three, final Switch loc, - final Switch full, final Switch flash) { one.setOnClickListener(new OnClickListener() { @Override @@ -369,7 +371,13 @@ public class SettingsActivity extends Activity { @Override public void onClick(View v) { - flash.setChecked(!flash.isChecked()); + if (API < 19) { + flash.setChecked(!flash.isChecked()); + } else { + Utils.createInformativeDialog(mContext, getResources() + .getString(R.string.title_warning), getResources() + .getString(R.string.dialog_adobe_dead)); + } } }); @@ -381,41 +389,53 @@ public class SettingsActivity extends Activity { @Override public void onClick(View v) { - egg++; - if (egg == 10) { + mEasterEggCounter++; + if (mEasterEggCounter == 10) { startActivity(new Intent(Intent.ACTION_VIEW, Uri .parse("http://imgs.xkcd.com/comics/compiling.png"))); finish(); - egg = 0; + mEasterEggCounter = 0; } } }); } - public void initSwitch(Switch location, Switch fullscreen, Switch flash) { + public void initSwitch(Switch location, Switch fullscreen, Switch flash, Switch adblock) { + adblock.setOnCheckedChangeListener(new OnCheckedChangeListener(){ + + @Override + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + mEditPrefs.putBoolean(PreferenceConstants.BLOCK_ADS, isChecked); + mEditPrefs.commit(); + } + + }); location.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - mEditPrefs.putBoolean("location", isChecked); + mEditPrefs.putBoolean(PreferenceConstants.LOCATION, isChecked); mEditPrefs.commit(); } }); + flash.setEnabled(API < 19); flash.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - int n = 0; if (isChecked) { - n = 1; + getFlashChoice(); + } else { + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 0); + mEditPrefs.commit(); } - mEditPrefs.putInt("enableflash", n); - mEditPrefs.commit(); + boolean flashInstalled = false; try { PackageManager pm = getPackageManager(); @@ -433,7 +453,7 @@ public class SettingsActivity extends Activity { getResources().getString( R.string.dialog_adobe_not_installed)); buttonView.setChecked(false); - mEditPrefs.putInt("enableflash", 0); + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 0); mEditPrefs.commit(); } else if ((API >= 17) && isChecked) { @@ -451,7 +471,7 @@ public class SettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - mEditPrefs.putBoolean("fullscreen", isChecked); + mEditPrefs.putBoolean(PreferenceConstants.FULL_SCREEN, isChecked); mEditPrefs.commit(); } @@ -459,6 +479,44 @@ public class SettingsActivity extends Activity { }); } + private void getFlashChoice() { + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(mContext.getResources() + .getString(R.string.title_flash)); + builder.setMessage(getResources().getString(R.string.flash)) + .setCancelable(true) + .setPositiveButton( + getResources().getString(R.string.action_manual), + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 1); + mEditPrefs.commit(); + } + }) + .setNegativeButton( + getResources().getString(R.string.action_auto), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, + int which) { + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 2); + mEditPrefs.commit(); + } + }).setOnCancelListener(new OnCancelListener() { + + @Override + public void onCancel(DialogInterface dialog) { + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 0); + mEditPrefs.commit(); + } + + }); + AlertDialog alert = builder.create(); + alert.show(); + } + public void initCheckBox(CheckBox location, CheckBox fullscreen, CheckBox flash) { location.setOnCheckedChangeListener(new OnCheckedChangeListener() { @@ -466,7 +524,7 @@ public class SettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - mEditPrefs.putBoolean("location", isChecked); + mEditPrefs.putBoolean(PreferenceConstants.LOCATION, isChecked); mEditPrefs.commit(); } @@ -481,7 +539,7 @@ public class SettingsActivity extends Activity { if (isChecked) { n = 1; } - mEditPrefs.putInt("enableflash", n); + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, n); mEditPrefs.commit(); boolean flashInstalled = false; try { @@ -500,7 +558,7 @@ public class SettingsActivity extends Activity { getResources().getString( R.string.dialog_adobe_not_installed)); buttonView.setChecked(false); - mEditPrefs.putInt("enableflash", 0); + mEditPrefs.putInt(PreferenceConstants.ADOBE_FLASH_SUPPORT, 0); mEditPrefs.commit(); } else if ((API > 17) && isChecked) { @@ -518,7 +576,7 @@ public class SettingsActivity extends Activity { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - mEditPrefs.putBoolean("fullscreen", isChecked); + mEditPrefs.putBoolean(PreferenceConstants.FULL_SCREEN, isChecked); mEditPrefs.commit(); } @@ -526,24 +584,13 @@ public class SettingsActivity extends Activity { }); } - public void back(ImageView view) { - view.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - finish(); - } - - }); - } - public void agent(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder agentPicker = new AlertDialog.Builder( - SettingsActivity.this); + mActivity); agentPicker.setTitle(getResources().getString( R.string.title_user_agent)); CharSequence[] chars = { @@ -551,30 +598,30 @@ public class SettingsActivity extends Activity { getResources().getString(R.string.agent_desktop), getResources().getString(R.string.agent_mobile), getResources().getString(R.string.agent_custom) }; - agentChoice = settings.getInt("agentchoose", 1); - agentPicker.setSingleChoiceItems(chars, agentChoice - 1, + mAgentChoice = mPreferences.getInt(PreferenceConstants.USER_AGENT, 1); + agentPicker.setSingleChoiceItems(chars, mAgentChoice - 1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - mEditPrefs.putInt("agentchoose", which + 1); + mEditPrefs.putInt(PreferenceConstants.USER_AGENT, which + 1); mEditPrefs.commit(); switch (which + 1) { case 1: - agentText.setText(getResources().getString( + mAgentTextView.setText(getResources().getString( R.string.agent_default)); break; case 2: - agentText.setText(getResources().getString( + mAgentTextView.setText(getResources().getString( R.string.agent_desktop)); break; case 3: - agentText.setText(getResources().getString( + mAgentTextView.setText(getResources().getString( R.string.agent_mobile)); break; case 4: - agentText.setText(getResources().getString( + mAgentTextView.setText(getResources().getString( R.string.agent_custom)); agentPicker(); break; @@ -608,11 +655,11 @@ public class SettingsActivity extends Activity { }); } - + public void agentPicker() { final AlertDialog.Builder agentStringPicker = new AlertDialog.Builder( - SettingsActivity.this); - + mActivity); + agentStringPicker.setTitle(getResources().getString( R.string.title_user_agent)); final EditText getAgent = new EditText(SettingsActivity.this); @@ -624,9 +671,9 @@ public class SettingsActivity extends Activity { @Override public void onClick(DialogInterface dialog, int which) { String text = getAgent.getText().toString(); - mEditPrefs.putString("userAgentString", text); + mEditPrefs.putString(PreferenceConstants.USER_AGENT_STRING, text); mEditPrefs.commit(); - agentText.setText(getResources().getString( + mAgentTextView.setText(getResources().getString( R.string.agent_custom)); } }); @@ -639,17 +686,16 @@ public class SettingsActivity extends Activity { @Override public void onClick(View v) { - AlertDialog.Builder picker = new AlertDialog.Builder( - SettingsActivity.this); + AlertDialog.Builder picker = new AlertDialog.Builder(mActivity); picker.setTitle(getResources().getString( R.string.title_download_location)); CharSequence[] chars = { getResources().getString(R.string.agent_default), getResources().getString(R.string.agent_custom) }; - downloadLocation = settings.getString("download", + mDownloadLocation = mPreferences.getString(PreferenceConstants.DOWNLOAD_DIRECTORY, Environment.DIRECTORY_DOWNLOADS); int n = -1; - if (downloadLocation.contains(Environment.DIRECTORY_DOWNLOADS)) { + if (mDownloadLocation.contains(Environment.DIRECTORY_DOWNLOADS)) { n = 1; } else { n = 2; @@ -664,10 +710,10 @@ public class SettingsActivity extends Activity { switch (which + 1) { case 1: - mEditPrefs.putString("download", + mEditPrefs.putString(PreferenceConstants.DOWNLOAD_DIRECTORY, Environment.DIRECTORY_DOWNLOADS); mEditPrefs.commit(); - download.setText(FinalVariables.EXTERNAL_STORAGE + mDownloadTextView.setText(Constants.EXTERNAL_STORAGE + "/" + Environment.DIRECTORY_DOWNLOADS); break; @@ -696,26 +742,27 @@ public class SettingsActivity extends Activity { public void homePicker() { final AlertDialog.Builder homePicker = new AlertDialog.Builder( - this); + mActivity); homePicker.setTitle(getResources().getString( R.string.title_custom_homepage)); final EditText getHome = new EditText(SettingsActivity.this); - homepage = settings.getString("home", FinalVariables.HOMEPAGE); - if (!homepage.startsWith("about:")) { - getHome.setText(homepage); + mHomepage = mPreferences.getString(PreferenceConstants.HOMEPAGE, Constants.HOMEPAGE); + if (!mHomepage.startsWith("about:")) { + getHome.setText(mHomepage); } else { getHome.setText("http://www.google.com"); } homePicker.setView(getHome); - homePicker.setPositiveButton(getResources().getString(R.string.action_ok), + homePicker.setPositiveButton( + getResources().getString(R.string.action_ok), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String text = getHome.getText().toString(); - mEditPrefs.putString("home", text); + mEditPrefs.putString(PreferenceConstants.HOMEPAGE, text); mEditPrefs.commit(); - homepageText.setText(text); + mHomepageText.setText(text); } }); homePicker.show(); @@ -724,15 +771,15 @@ public class SettingsActivity extends Activity { @SuppressWarnings("deprecation") public void downPicker() { final AlertDialog.Builder downLocationPicker = new AlertDialog.Builder( - this); + mActivity); LinearLayout layout = new LinearLayout(this); downLocationPicker.setTitle(getResources().getString( R.string.title_download_location)); final EditText getDownload = new EditText(SettingsActivity.this); getDownload.setBackgroundResource(0); - downloadLocation = settings.getString("download", + mDownloadLocation = mPreferences.getString(PreferenceConstants.DOWNLOAD_DIRECTORY, Environment.DIRECTORY_DOWNLOADS); - int padding = Utils.convertDensityPixels(this, 10); + int padding = Utils.convertToDensityPixels(this, 10); LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, @@ -740,13 +787,13 @@ public class SettingsActivity extends Activity { getDownload.setLayoutParams(lparams); getDownload.setTextColor(Color.DKGRAY); - getDownload.setText(downloadLocation); + getDownload.setText(mDownloadLocation); getDownload.setPadding(0, padding, padding, padding); TextView v = new TextView(this); v.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18); v.setTextColor(Color.DKGRAY); - v.setText(FinalVariables.EXTERNAL_STORAGE + "/"); + v.setText(Constants.EXTERNAL_STORAGE + "/"); v.setPadding(padding, padding, 0, padding); layout.addView(v); layout.addView(getDownload); @@ -765,9 +812,9 @@ public class SettingsActivity extends Activity { @Override public void onClick(DialogInterface dialog, int which) { String text = getDownload.getText().toString(); - mEditPrefs.putString("download", text); + mEditPrefs.putString(PreferenceConstants.DOWNLOAD_DIRECTORY, text); mEditPrefs.commit(); - download.setText(FinalVariables.EXTERNAL_STORAGE + "/" + mDownloadTextView.setText(Constants.EXTERNAL_STORAGE + "/" + text); } }); @@ -779,18 +826,23 @@ public class SettingsActivity extends Activity { @Override public void onClick(View v) { - AlertDialog.Builder picker = new AlertDialog.Builder( - SettingsActivity.this); - picker.setTitle("Homepage"); - CharSequence[] chars = { "Bookmarks", "Blank Page", "Webpage" }; - homepage = settings.getString("home", FinalVariables.HOMEPAGE); + AlertDialog.Builder picker = new AlertDialog.Builder(mActivity); + picker.setTitle(getResources().getString(R.string.home)); + CharSequence[] chars = { + getResources().getString(R.string.action_homepage), + getResources().getString(R.string.action_blank), + getResources().getString(R.string.action_bookmarks), + getResources().getString(R.string.action_webpage) }; + mHomepage = mPreferences.getString(PreferenceConstants.HOMEPAGE, Constants.HOMEPAGE); int n = -1; - if (homepage.contains("about:home")) { + if (mHomepage.contains("about:home")) { n = 1; - } else if (homepage.contains("about:blank")) { + } else if (mHomepage.contains("about:blank")) { n = 2; - } else { + } else if (mHomepage.contains("about:bookmarks")) { n = 3; + } else { + n = 4; } picker.setSingleChoiceItems(chars, n - 1, @@ -802,23 +854,36 @@ public class SettingsActivity extends Activity { switch (which + 1) { case 1: - mEditPrefs.putString("home", "about:home"); + mEditPrefs.putString(PreferenceConstants.HOMEPAGE, "about:home"); mEditPrefs.commit(); - homepageText.setText("Bookmarks"); + mHomepageText + .setText(getResources().getString( + R.string.action_homepage)); break; case 2: - mEditPrefs.putString("home", "about:blank"); + mEditPrefs.putString(PreferenceConstants.HOMEPAGE, "about:blank"); mEditPrefs.commit(); - homepageText.setText("Blank Page"); + mHomepageText.setText(getResources() + .getString(R.string.action_blank)); break; case 3: + mEditPrefs.putString(PreferenceConstants.HOMEPAGE, + "about:bookmarks"); + mEditPrefs.commit(); + mHomepageText.setText(getResources() + .getString( + R.string.action_bookmarks)); + + break; + case 4: homePicker(); break; } } }); - picker.setNeutralButton("OK", + picker.setNeutralButton( + getResources().getString(R.string.action_ok), new DialogInterface.OnClickListener() { @Override @@ -838,34 +903,19 @@ public class SettingsActivity extends Activity { @Override public void onClick(View v) { - startActivity(new Intent( - FinalVariables.ADVANCED_SETTINGS_INTENT)); + startActivity(new Intent(Constants.ADVANCED_SETTINGS_INTENT)); } }); } public void source(RelativeLayout view) { - view.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - startActivity(new Intent( - Intent.ACTION_VIEW, - Uri.parse("https://github.com/anthonycr/Lightning-Browser"))); - finish(); - } - - }); - } - - public void license(RelativeLayout view) { view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(Intent.ACTION_VIEW, Uri - .parse("http://www.apache.org/licenses/LICENSE-2.0"))); + .parse("http://twitter.com/ACRDevelopment"))); finish(); } diff --git a/src/acr/browser/lightning/SettingsController.java b/src/acr/browser/lightning/SettingsController.java new file mode 100644 index 0000000..e450596 --- /dev/null +++ b/src/acr/browser/lightning/SettingsController.java @@ -0,0 +1,31 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +public class SettingsController { + static boolean clearHistory = false; + + /** + * The purpose of this class is so that + * I can clear the dropdown history in the main + * activities if the user selects to clear the + * history from the disk in advanced settings + * @param choice + */ + static void setClearHistory(boolean choice) { + clearHistory = choice; + } + + /** + * return the choice + * @return + */ + static boolean getClearHistory() { + if (clearHistory) { + clearHistory = false; + return true; + } + return clearHistory; + } +} diff --git a/src/acr/browser/barebones/databases/SpaceTokenizer.java b/src/acr/browser/lightning/SpaceTokenizer.java similarity index 93% rename from src/acr/browser/barebones/databases/SpaceTokenizer.java rename to src/acr/browser/lightning/SpaceTokenizer.java index a5cc3ea..f44264f 100644 --- a/src/acr/browser/barebones/databases/SpaceTokenizer.java +++ b/src/acr/browser/lightning/SpaceTokenizer.java @@ -1,4 +1,7 @@ -package acr.browser.barebones.databases; +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; import android.widget.MultiAutoCompleteTextView.Tokenizer; diff --git a/src/acr/browser/lightning/Utils.java b/src/acr/browser/lightning/Utils.java new file mode 100644 index 0000000..91a03fb --- /dev/null +++ b/src/acr/browser/lightning/Utils.java @@ -0,0 +1,149 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.util.Log; +import android.webkit.URLUtil; +import android.widget.Toast; + +public class Utils { + + public Utils() { + // TODO Auto-generated constructor stub + } + + public static void downloadFile(final Activity activity, final String url, final String userAgent, final String contentDisposition, final boolean privateBrowsing){ + String fileName = URLUtil.guessFileName(url, null, + null); + DownloadHandler.onDownloadStart(activity, url, userAgent, contentDisposition, null, privateBrowsing); + Log.i("Lightning", "Downloading" + fileName); + } + + public static synchronized void addBookmark(Context context, String title, String url) { + File book = new File(context.getFilesDir(), "bookmarks"); + File bookUrl = new File(context.getFilesDir(), "bookurl"); + if((title.equals("Bookmarks")||title.equals("History"))&& url.startsWith("file://")){ + return; + } + try { + BufferedReader readUrlRead = new BufferedReader(new FileReader( + bookUrl)); + String u; + while ((u = readUrlRead.readLine()) != null) { + if (u.contentEquals(url)) { + readUrlRead.close(); + return; + } + } + readUrlRead.close(); + + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } catch (NullPointerException ignored) { + } + try { + BufferedWriter bookWriter = new BufferedWriter(new FileWriter(book, + true)); + BufferedWriter urlWriter = new BufferedWriter(new FileWriter( + bookUrl, true)); + bookWriter.write(title); + urlWriter.write(url); + bookWriter.newLine(); + urlWriter.newLine(); + bookWriter.close(); + urlWriter.close(); + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } catch (NullPointerException ignored) { + } + } + + public static Intent newEmailIntent(Context context, String address, + String subject, String body, String cc) { + Intent intent = new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_EMAIL, new String[] { address }); + intent.putExtra(Intent.EXTRA_TEXT, body); + intent.putExtra(Intent.EXTRA_SUBJECT, subject); + intent.putExtra(Intent.EXTRA_CC, cc); + intent.setType("message/rfc822"); + return intent; + } + + public static void createInformativeDialog(Context context, String title, + String message) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(title); + builder.setMessage(message).setCancelable(true) + .setPositiveButton(context.getResources().getString(R.string.action_ok), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + public static void showToast(Context context, String message) { + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + } + + public static int convertToDensityPixels(Context context, int densityPixels) { + float scale = context.getResources().getDisplayMetrics().density; + int pixels = (int) (densityPixels * scale + 0.5f); + return pixels; + } + + public static String getDomainName(String url) { + URI uri; + try { + uri = new URI(url); + } catch (URISyntaxException e) { + return url; + } + String domain = uri.getHost(); + if (domain == null) { + return url; + } + return domain.startsWith("www.") ? domain.substring(4) : domain; + } + + public static List getBookmarks(Context context) { + List bookmarks = new ArrayList(); + File bookUrl = new File(context.getFilesDir(), + "bookurl"); + File book = new File(context.getFilesDir(), "bookmarks"); + try { + BufferedReader readUrl = new BufferedReader(new FileReader(bookUrl)); + BufferedReader readBook = new BufferedReader(new FileReader(book)); + String u, t; + while ((u = readUrl.readLine()) != null + && (t = readBook.readLine()) != null) { + HistoryItem map = new HistoryItem(u, t, R.drawable.ic_bookmark); + bookmarks.add(map); + } + readBook.close(); + readUrl.close(); + } catch (FileNotFoundException ignored) { + } catch (IOException ignored) { + } + return bookmarks; + } +} diff --git a/src/acr/browser/lightning/WebAddress.java b/src/acr/browser/lightning/WebAddress.java new file mode 100644 index 0000000..2a8613b --- /dev/null +++ b/src/acr/browser/lightning/WebAddress.java @@ -0,0 +1,169 @@ +/* + * Copyright 2014 A.C.R. Development + */ +package acr.browser.lightning; + + + +import static android.util.Patterns.GOOD_IRI_CHAR; + +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +/** + * {@hide} + * + * Web Address Parser + * + * This is called WebAddress, rather than URL or URI, because it + * attempts to parse the stuff that a user will actually type into a + * browser address widget. + * + * Unlike java.net.uri, this parser will not choke on URIs missing + * schemes. It will only throw a ParseException if the input is + * really hosed. + * + * If given an https scheme but no port, fills in port + * + */ +public class WebAddress { + + private String mScheme; + private String mHost; + private int mPort; + private String mPath; + private String mAuthInfo; + + static final int MATCH_GROUP_SCHEME = 1; + static final int MATCH_GROUP_AUTHORITY = 2; + static final int MATCH_GROUP_HOST = 3; + static final int MATCH_GROUP_PORT = 4; + static final int MATCH_GROUP_PATH = 5; + + static Pattern sAddressPattern = Pattern.compile( + /* scheme */ "(?:(http|https|file)\\:\\/\\/)?" + + /* authority */ "(?:([-A-Za-z0-9$_.+!*'(),;?&=]+(?:\\:[-A-Za-z0-9$_.+!*'(),;?&=]+)?)@)?" + + /* host */ "([" + GOOD_IRI_CHAR + "%_-][" + GOOD_IRI_CHAR + "%_\\.-]*|\\[[0-9a-fA-F:\\.]+\\])?" + + /* port */ "(?:\\:([0-9]*))?" + + /* path */ "(\\/?[^#]*)?" + + /* anchor */ ".*", Pattern.CASE_INSENSITIVE); + + /** parses given uriString. + * @throws Exception */ + public WebAddress(String address) throws Exception { + if (address == null) { + throw new NullPointerException(); + } + + // android.util.Log.d(LOGTAG, "WebAddress: " + address); + + mScheme = ""; + mHost = ""; + mPort = -1; + mPath = "/"; + mAuthInfo = ""; + + Matcher m = sAddressPattern.matcher(address); + String t; + if (m.matches()) { + t = m.group(MATCH_GROUP_SCHEME); + if (t != null) mScheme = t.toLowerCase(Locale.ROOT); + t = m.group(MATCH_GROUP_AUTHORITY); + if (t != null) mAuthInfo = t; + t = m.group(MATCH_GROUP_HOST); + if (t != null) mHost = t; + t = m.group(MATCH_GROUP_PORT); + if (t != null && t.length() > 0) { + // The ':' character is not returned by the regex. + try { + mPort = Integer.parseInt(t); + } catch (NumberFormatException ex) { + throw new Exception(); + } + } + t = m.group(MATCH_GROUP_PATH); + if (t != null && t.length() > 0) { + /* handle busted myspace frontpage redirect with + missing initial "/" */ + if (t.charAt(0) == '/') { + mPath = t; + } else { + mPath = "/" + t; + } + } + + } else { + // nothing found... outa here + throw new Exception(); + } + + /* Get port from scheme or scheme from port, if necessary and + possible */ + if (mPort == 443 && mScheme.equals("")) { + mScheme = "https"; + } else if (mPort == -1) { + if (mScheme.equals("https")) + mPort = 443; + else + mPort = 80; // default + } + if (mScheme.equals("")) mScheme = "http"; + } + + @Override + public String toString() { + String port = ""; + if ((mPort != 443 && mScheme.equals("https")) || + (mPort != 80 && mScheme.equals("http"))) { + port = ":" + Integer.toString(mPort); + } + String authInfo = ""; + if (mAuthInfo.length() > 0) { + authInfo = mAuthInfo + "@"; + } + + return mScheme + "://" + authInfo + mHost + port + mPath; + } + + public void setScheme(String scheme) { + mScheme = scheme; + } + + public String getScheme() { + return mScheme; + } + + public void setHost(String host) { + mHost = host; + } + + public String getHost() { + return mHost; + } + + public void setPort(int port) { + mPort = port; + } + + public int getPort() { + return mPort; + } + + public void setPath(String path) { + mPath = path; + } + + public String getPath() { + return mPath; + } + + public void setAuthInfo(String authInfo) { + mAuthInfo = authInfo; + } + + public String getAuthInfo() { + return mAuthInfo; + } +} \ No newline at end of file
    " - + "
    " + "

    " + ""+ - ""; - public static final String Part4 = "