From dd3ec6061f0c7c945e79bc42a9a2a7610a317fd8 Mon Sep 17 00:00:00 2001 From: 1aerostorm Date: Sun, 3 Nov 2024 22:52:57 +0300 Subject: [PATCH] Mobile application --- app/MainApp.js | 159 +++-- app/app_cfg.js | 79 +++ app/assets/icons/badge-new-nobg.svg | 13 + app/assets/icons/badge-new.svg | 12 + app/assets/images/app/android48x48.png | Bin 0 -> 516 bytes app/components/App.jsx | 139 ++++- app/components/App.scss | 11 +- app/components/all.scss | 3 +- app/components/cards/PostSummary.jsx | 10 +- app/components/cards/PostSummary.scss | 12 + .../dialogs/AddImageDialog/index.jsx | 9 +- app/components/elements/DropdownMenu.jsx | 7 +- app/components/elements/Icon.jsx | 1 + app/components/elements/Icon.scss | 5 + app/components/elements/NewsPopups.jsx | 10 +- app/components/elements/QrCode.jsx | 8 +- app/components/elements/VerticalMenu.jsx | 17 +- app/components/elements/VerticalMenu.scss | 14 + app/components/elements/VotesAndComments.jsx | 8 +- .../elements/app/LoginAppReminder.jsx | 51 ++ .../elements/app/LoginAppReminder.scss | 2 + app/components/elements/app/URLLoader.jsx | 3 + app/components/elements/donate/Donate.scss | 4 + .../elements/donate/TipAssetList.jsx | 5 +- .../postEditor/CommentFooter/index.jsx | 12 +- .../EditorSwitcher/EditorSwitcher.jsx | 9 +- .../EditorSwitcher/EditorSwitcher.scss | 1 - .../MarkdownEditorToolbar/index.jsx | 54 +- .../MarkdownEditorToolbar/index.scss | 4 + .../postEditor/PostFooter/PostFooter.jsx | 12 +- .../postEditor/PostFooter/PostFooter.scss | 5 + .../elements/postEditor/TagInput/index.jsx | 12 +- .../elements/postEditor/TagInput/index.scss | 4 + app/components/modules/Donate.jsx | 61 +- app/components/modules/Header.jsx | 30 +- app/components/modules/Header.scss | 25 +- app/components/modules/LoginForm.jsx | 17 +- app/components/modules/MiniTopics.jsx | 53 ++ app/components/modules/MiniTopics.scss | 10 + app/components/modules/Modals.jsx | 17 +- app/components/modules/PostForm/PostForm.jsx | 11 +- app/components/modules/PromotePost.jsx | 10 +- app/components/modules/Settings.jsx | 41 +- .../modules/SponsorSubscription.jsx | 12 +- app/components/modules/TopRightMenu.jsx | 41 +- app/components/modules/TopRightMenu.scss | 10 + app/components/{pages => modules}/Topics.jsx | 20 +- app/components/{pages => modules}/Topics.scss | 0 app/components/modules/app/AppDownload.jsx | 29 +- app/components/pages/PostsIndex.jsx | 27 +- app/components/pages/PostsIndex.scss | 22 +- app/components/pages/Search.jsx | 155 +++-- app/components/pages/Search.scss | 3 + app/components/pages/UserProfile.jsx | 87 ++- app/components/pages/UserProfile.scss | 2 +- app/components/pages/app/AppSettings.jsx | 75 ++- app/locales/en.json | 30 +- app/locales/ru-RU.json | 27 +- app/redux/User.js | 3 +- app/redux/UserSaga.js | 11 +- app/redux/UserSaga_UploadImage.js | 25 +- app/redux/services/PushNotificationSaga.js | 22 +- app/renderApp.js | 3 + app/utils/ScreenSize.jsx | 75 +++ app/utils/app/RoutingUtils.js | 65 ++ app/utils/app/ShortcutUtils.js | 84 +++ app/utils/app/UpdateUtils.js | 110 ++++ build_app_entry.js | 4 + config.xml | 37 ++ config/mobile.json | 62 ++ native_core/package.json | 4 + native_core/plugin.xml | 46 ++ native_core/res/ic_empty.xml | 10 + native_core/res/notify.png | Bin 0 -> 11389 bytes native_core/src/android/ApiClient.kt | 50 ++ native_core/src/android/AppPrefs.kt | 9 + native_core/src/android/BootReceiver.kt | 31 + native_core/src/android/CorePlugin.kt | 34 ++ native_core/src/android/NotificationHelper.kt | 97 +++ native_core/src/android/NotifyApiClient.kt | 88 +++ native_core/src/android/NotifyService.kt | 132 ++++ native_core/src/android/ServiceHelper.kt | 70 +++ package.json | 39 +- postbuild_mobile.js | 89 +++ prebuild_mobile.js | 27 + res/blg_setting.png | Bin 0 -> 1133 bytes res/blog0.png | Bin 0 -> 6128 bytes res/blog1.png | Bin 0 -> 10726 bytes res/icon-hdpi.png | Bin 0 -> 7910 bytes res/icon-ldpi.png | Bin 0 -> 2844 bytes res/icon-mdpi.png | Bin 0 -> 4260 bytes res/icon-xhdpi.png | Bin 0 -> 13880 bytes res/icon-xxhdpi.png | Bin 0 -> 25906 bytes res/icon-xxxhdpi.png | Bin 0 -> 39300 bytes res/logo.png | Bin 0 -> 12766 bytes res/logo_x.png | Bin 0 -> 34575 bytes res/screen/android/land/splash-land-hdpi.png | Bin 0 -> 17388 bytes res/screen/android/land/splash-land-ldpi.png | Bin 0 -> 14107 bytes res/screen/android/land/splash-land-mdpi.png | Bin 0 -> 15410 bytes res/screen/android/land/splash-land-xhdpi.png | Bin 0 -> 43621 bytes .../android/land/splash-land-xxhdpi.png | Bin 0 -> 47396 bytes .../android/land/splash-land-xxxhdpi.png | Bin 0 -> 52757 bytes res/screen/android/splash-hdpi.png | Bin 0 -> 17893 bytes res/screen/android/splash-ldpi.png | Bin 0 -> 14237 bytes res/screen/android/splash-mdpi.png | Bin 0 -> 15622 bytes res/screen/android/splash-xhdpi.png | Bin 0 -> 44730 bytes res/screen/android/splash-xxhdpi.png | Bin 0 -> 47899 bytes res/screen/android/splash-xxxhdpi.png | Bin 0 -> 53255 bytes webpack/dev-app.config.js | 2 +- webpack/dev.config.js | 2 +- webpack/prod-app.config.js | 2 +- webpack/prod-mobile.config.js | 45 ++ webpack/prod.config.js | 2 +- yarn.lock | 568 +++++++++++++++++- 114 files changed, 3041 insertions(+), 317 deletions(-) create mode 100644 app/app_cfg.js create mode 100644 app/assets/icons/badge-new-nobg.svg create mode 100644 app/assets/icons/badge-new.svg create mode 100644 app/assets/images/app/android48x48.png create mode 100644 app/components/elements/app/LoginAppReminder.jsx create mode 100644 app/components/elements/app/LoginAppReminder.scss create mode 100644 app/components/modules/MiniTopics.jsx create mode 100644 app/components/modules/MiniTopics.scss rename app/components/{pages => modules}/Topics.jsx (89%) rename app/components/{pages => modules}/Topics.scss (100%) create mode 100644 app/utils/ScreenSize.jsx create mode 100644 app/utils/app/RoutingUtils.js create mode 100644 app/utils/app/ShortcutUtils.js create mode 100644 app/utils/app/UpdateUtils.js create mode 100644 config.xml create mode 100644 config/mobile.json create mode 100644 native_core/package.json create mode 100644 native_core/plugin.xml create mode 100644 native_core/res/ic_empty.xml create mode 100644 native_core/res/notify.png create mode 100644 native_core/src/android/ApiClient.kt create mode 100644 native_core/src/android/AppPrefs.kt create mode 100644 native_core/src/android/BootReceiver.kt create mode 100644 native_core/src/android/CorePlugin.kt create mode 100644 native_core/src/android/NotificationHelper.kt create mode 100644 native_core/src/android/NotifyApiClient.kt create mode 100644 native_core/src/android/NotifyService.kt create mode 100644 native_core/src/android/ServiceHelper.kt create mode 100644 postbuild_mobile.js create mode 100644 prebuild_mobile.js create mode 100644 res/blg_setting.png create mode 100644 res/blog0.png create mode 100644 res/blog1.png create mode 100644 res/icon-hdpi.png create mode 100644 res/icon-ldpi.png create mode 100644 res/icon-mdpi.png create mode 100644 res/icon-xhdpi.png create mode 100644 res/icon-xxhdpi.png create mode 100644 res/icon-xxxhdpi.png create mode 100644 res/logo.png create mode 100644 res/logo_x.png create mode 100644 res/screen/android/land/splash-land-hdpi.png create mode 100644 res/screen/android/land/splash-land-ldpi.png create mode 100644 res/screen/android/land/splash-land-mdpi.png create mode 100644 res/screen/android/land/splash-land-xhdpi.png create mode 100644 res/screen/android/land/splash-land-xxhdpi.png create mode 100644 res/screen/android/land/splash-land-xxxhdpi.png create mode 100644 res/screen/android/splash-hdpi.png create mode 100644 res/screen/android/splash-ldpi.png create mode 100644 res/screen/android/splash-mdpi.png create mode 100644 res/screen/android/splash-xhdpi.png create mode 100644 res/screen/android/splash-xxhdpi.png create mode 100644 res/screen/android/splash-xxxhdpi.png create mode 100644 webpack/prod-mobile.config.js diff --git a/app/MainApp.js b/app/MainApp.js index f8fb5e38b..5f4141d33 100644 --- a/app/MainApp.js +++ b/app/MainApp.js @@ -2,12 +2,41 @@ import renderApp from 'app/renderApp' import golos from 'golos-lib-js' import tt from 'counterpart' +import { openAppSettings } from 'app/components/pages/app/AppSettings' import * as api from 'app/utils/APIWrapper' import getState from 'app/utils/StateBuilder' -import { checkUpdates } from './appUpdater' +import { addShortcut } from 'app/utils/app/ShortcutUtils' +import { checkUpdates } from 'app/utils/app/UpdateUtils' +import defaultCfg from 'app/app_cfg' require('app/cookieHelper') -const appConfig = window.appSettings.load() +let appConfig +if (process.env.MOBILE_APP) { + console.log('Loading app config...') + let cfg = localStorage.getItem('app_settings') + if (cfg) { + try { + cfg = JSON.parse(cfg) + // Add here migrations + cfg = { ...defaultCfg, ...cfg } + } catch (err) { + console.error('Cannot parse app_settings', err) + cfg = defaultCfg + } + } else { + cfg = defaultCfg + } + if (!cfg.ws_connection_client) { + cfg.ws_connection_client = cfg.ws_connection_app[0].address + } + if (cfg.images.use_img_proxy === undefined) { + cfg.images.use_img_proxy = true + } + cfg.app_version = defaultCfg.app_version + appConfig = cfg +} else { + appConfig = window.appSettings.load() +} const initialState = { offchain: { @@ -28,60 +57,106 @@ window.$STM_Config = initialState.offchain.config window.$STM_csrf = null // not used in app function closeSplash() { - if (window.appSplash) - window.appSplash.contentLoaded() + try { + if (process.env.MOBILE_APP) { + navigator.splashscreen.hide() + } else { + window.appSplash.contentLoaded() + } + } catch (err) { + console.error('closeSplash', err) + } +} + +const isSettings = () => { + return window.location.hash === '#app-settings' || + window.location.pathname === '/__app_settings' } function showNodeError() { - alert(tt('app_settings.node_error_NODE', { NODE: $STM_Config.ws_connection_client })) + if (isSettings()) return + if (confirm(tt('app_settings.node_error_new_NODE', { NODE: $STM_Config.ws_connection_client }) + + ' ' + tt('app_settings.node_error_new_NODE2') + '?')) { + openAppSettings() + } +} + +const showError = (err, label = '') => { + if (!process.env.MOBILE_APP) return + alert(label + ' error:\n' + + (err && err.toString()) + '\n' + + (err && JSON.stringify(err.stack)) + ) } async function initState() { - // these are need for getState - await golos.importNativeLib(); - const config = initialState.offchain.config - golos.config.set('websocket', config.ws_connection_client) - if (config.chain_id) - golos.config.set('chain_id', config.chain_id) - - const { pathname } = window.location - if (pathname.startsWith('/__app_')) { - return { - content: {} + try { + // these are need for getState + await golos.importNativeLib(); + const config = initialState.offchain.config + golos.config.set('websocket', config.ws_connection_client) + if (config.chain_id) + golos.config.set('chain_id', config.chain_id) + + const { pathname } = window.location + if (pathname.startsWith('/__app_')) { + return { + content: {} + } } - } - let splashTimeout = setTimeout(() => { - closeSplash() - showNodeError() - }, 30000) + // First add - for case if all failed at all, and not rendering + if (process.env.MOBILE_APP) { + await addShortcut({ + id: 'the_settings', + shortLabel: 'Настройки', + longLabel: 'Настройки', + hash: '#app-settings' + }) + } + + let splashTimeout = setTimeout(() => { + closeSplash() + showNodeError() + }, 30000) + + const doUpdate = Math.random() > 0.7 + if (doUpdate) { + try { + $STM_Config.add_notify_site = await checkUpdates() + } catch (err) { + console.error('Cannot check updates', err) + clearTimeout(splashTimeout) + closeSplash() + alert('Cannot check updates' + err) + //showError(err, 'Cannot check updates') + } + } + + let onchain + let nodeError = null + try { + onchain = await getState(api, pathname, initialState.offchain) + } catch (error) { + nodeError = error + } - try { - $STM_Config.add_notify_site = await checkUpdates() - } catch (err) { - console.error('Cannot check updates', err) clearTimeout(splashTimeout) closeSplash() - alert('Cannot check updates' + err) - } - - let onchain - let nodeError = null - try { - onchain = await getState(api, pathname, initialState.offchain) - } catch (error) { - nodeError = error - } - clearTimeout(splashTimeout) - closeSplash() + if (nodeError) { + showNodeError() + throw nodeError + } - if (nodeError) { - showNodeError() - throw nodeError + return onchain + } catch (err) { + if (isSettings()) { + console.error(err) + return + } + showError(err, 'initState') } - - return onchain } initState().then((onchain) => { diff --git a/app/app_cfg.js b/app/app_cfg.js new file mode 100644 index 000000000..3a661eb0d --- /dev/null +++ b/app/app_cfg.js @@ -0,0 +1,79 @@ +/* Only Mobile. Generated automatically. Do not edit. */ +module.exports = { + "app_version": "1.5.0", + "ws_connection_app": [ + { + "address": "wss://apibeta.golos.today/ws" + }, + { + "address": "wss://api.golos.id/ws" + }, + { + "address": "wss://api.aleksw.space/ws" + }, + { + "address": "wss://api-golos.blckchnd.com/ws" + } + ], + "ws_connection_exchange": "wss://apibeta.golos.today/ws", + "logo": { + "icon": "https://i.imgur.com/Q7GCdPf.png", + "title": "https://i.imgur.com/36zv8We.png" + }, + "images": { + "img_proxy_prefix": "https://devimages.golos.today", + "img_proxy_backup_prefix": "https://steemitimages.com", + "upload_image": "https://api.imgur.com/3/image", + "client_id": "6c09ebf8c548126" + }, + "wallet_service": { + "host": "https://devwallet.golos.today" + }, + "messenger_service": { + "host": "https://devchat.golos.app" + }, + "auth_service": { + "host": "https://dev.golos.app", + "custom_client": "blogs" + }, + "notify_service": { + "host": "https://devnotify.golos.app", + "host_ws": "wss://devnotify.golos.app/ws" + }, + "elastic_search": { + "url": "https://search.golos.today", + "login": "golosclient", + "password": "golosclient" + }, + "apidex_service": { + "host": "https://devapi-dex.golos.app", + "host_local": "https://devapi-dex.golos.app" + }, + "app_updater": { + "host": "https://files.golos.app" + }, + "forums": { + "white_list": [ + "fm-golostalk", + "fm-prizmtalk", + "fm-graphenetalks" + ], + "fm-golostalk": { + "domain": "golostalk.com" + }, + "fm-prizmtalk": { + "domain": "prizmtalk.com" + }, + "fm-graphenetalks": { + "domain": "forum.gph.ai" + } + }, + "hidden_assets": { + "RUDEX": true, + "PRIZM": true, + "DOGECOIN": true, + "YMZEC": true, + "YMWMZ": true, + "YMBTC": true + } +} \ No newline at end of file diff --git a/app/assets/icons/badge-new-nobg.svg b/app/assets/icons/badge-new-nobg.svg new file mode 100644 index 000000000..2f8594884 --- /dev/null +++ b/app/assets/icons/badge-new-nobg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/icons/badge-new.svg b/app/assets/icons/badge-new.svg new file mode 100644 index 000000000..c35612189 --- /dev/null +++ b/app/assets/icons/badge-new.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/images/app/android48x48.png b/app/assets/images/app/android48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd064cdcd7982b8e43acfb7f0b84075d24c74d7 GIT binary patch literal 516 zcmV+f0{i`mP)?K@i6m1VKRreFQD6twfMGb0S8>E-xVX02ZR& ztlUdzVP|6#LClVbqJoXSf`y=9Ds7dZphVW3i61#PANLj99}FD3bGP%q{qNlfVX;^& znp{5DB^t!b=enE8j~rsSB*xp7lc|1Fu6Hy&pmX&-A}vUT7m~3o88%G0#JE$*#WRr> zT!o{O;guNPh+&f$&q-lXGM04c>&h7H`o)*lRAxk^1+S19*0%7AGe-fg=n#fP8juY0 zQo&Qh#rr{wkFwy*C0abOGf50D)xz{ysGf&9@pE3m^E%^1BE@@Zu2(YLd@XQ!f4pyX z&lwC7P;Z_Xub1*;J+TWQhQ(jDP`D)(YzNvVa2^&C5P+x6`u>kNj$MFM_z;!=Vz`f8 zfF&*@!|cbORAJFon5~V6=Krz|(|RrAw*;SGi@T@=P{4XE6a1#4+5xOPZUsoY186PO z67~?Y{R;ha3sI;4iCu+R{U9B5;LJoVzztY0bfOXv8yzozzInCXfcCxKEH$sTUpz(W z^+qvSB5})@umY0C?m*I*T7b}7gs?HS0I{_Q7K_Cq;^ZB1eHx2i6#|j~0000 { + await this.checkShortcutIntent() + onShortcutIntent(intent => { + if (intent.extras['gls.blogs.hash'] === '#app-settings') { + openAppSettings() + } + }) + + fixRouteIfApp() + + document.addEventListener('pause', this.onPause) + document.addEventListener('resume', this.onResume) + + this.setState({ + can_render: true + }) + + this.stopService() + })() + } + const { nightmodeEnabled } = this.props; this.toggleBodyNightmode(nightmodeEnabled); @@ -164,6 +212,10 @@ class App extends React.Component { if (process.env.BROWSER) { window.removeEventListener('click', this.checkLeaveGolos); } + if (process.env.MOBILE_APP) { + document.addEventListener('pause', this.onPause) + document.addEventListener('resume', this.onResume) + } } componentDidUpdate(nextProps) { @@ -173,6 +225,51 @@ class App extends React.Component { } } + componentDidCatch(err, info) { + const errStr = (err && err.toString()) ? err.toString() : JSON.stringify(err) + const infoStr = (info && info.componentStack) || JSON.stringify(info) + if (confirm(';( Ошибка рендеринга. Продолжить работу?\n\n' + errStr + '\n' + infoStr)) { + reloadLocation('/') + return + } + throw err + } + + onPause = () => { + const { username } = this.props + const notifySess = localStorage.getItem('X-Session') + const notifyHost = $STM_Config.notify_service.host + if (username && notifySess) { + const settings = PushNotificationSaga.getScopePresets(username) + if (!settings.inBackground) { + console.warn('Notify - inBackground false, so do not starting service...') + return + } + if (!settings.bgPresets.length) { + console.warn('Notify - all background presets disabled, so do not starting service...') + return + } + const lastTake = 0 + cordova.exec((winParam) => { + console.log('pause ok', winParam) + }, (err) => { + console.error('pause err', err) + }, 'CorePlugin', 'startService', [username, notifySess, settings.bgPresets.join(','), lastTake, notifyHost]) + } + } + + onResume = () => { + this.stopService() + } + + stopService = () => { + cordova.exec((winParam) => { + console.log('resume ok', winParam) + }, (err) => { + console.error('resume err', err) + }, 'CorePlugin', 'stopService', []) + } + checkLogin = event => { if (event.key === 'autopost2') { if (!event.newValue) this.props.logoutUser(); @@ -250,14 +347,26 @@ class App extends React.Component { } render() { + if (process.env.MOBILE_APP && !this.state.can_render) { + return + } + const { location, params, children, flash, new_visitor, - nightmodeEnabled + nightmodeEnabled, + loggedIn, + } = this.props; + let { + hideOrders, + hideOrdersMe, } = this.props; + if (loggedIn) { + hideOrders = hideOrdersMe + } const route = resolveRoute(location.pathname); const lp = false; //location.pathname === '/'; @@ -268,7 +377,7 @@ class App extends React.Component { (params_keys.length === 2 && params_keys[0] === 'order' && params_keys[1] === 'category'); - const alert = this.props.error || flash.get('alert'); + const f_alert = this.props.error || flash.get('alert'); const warning = flash.get('warning'); const success = flash.get('success'); let callout = null; @@ -276,7 +385,7 @@ class App extends React.Component { const notifyTitle = $STM_Config.add_notify_site.title; const showInfoBox = $STM_Config.add_notify_site.show && this.isShowInfoBox($STM_Config.add_notify_site); - if (this.state.showCallout && (alert || warning || success)) { + if (this.state.showCallout && (f_alert || warning || success)) { callout = (
@@ -286,7 +395,7 @@ class App extends React.Component { this.setState({ showCallout: false }) } /> -

{alert || warning || success}

+

{f_alert || warning || success}

@@ -366,7 +475,7 @@ class App extends React.Component { const themeClass = nightmodeEnabled ? ' theme-dark' : ' theme-light'; - const isApp = process.env.IS_APP && location.pathname.startsWith('/__app_') + const isApp = location.pathname.startsWith('/__app_') || this.appSettings const noHeader = isApp const noFooter = isApp || location.pathname.startsWith('/submit') @@ -386,12 +495,13 @@ class App extends React.Component { {noHeader ? null : (miniHeader ? :
)}
{welcome_screen} {callout} - {children} + {this.appSettings ? : children} {noFooter ? null :
} @@ -417,21 +527,26 @@ App.propTypes = { loginUser: PropTypes.func.isRequired, logoutUser: PropTypes.func.isRequired, depositSteem: PropTypes.func.isRequired, - nightmodeEnabled: PropTypes.bool + nightmodeEnabled: PropTypes.bool, + loggedIn: PropTypes.bool }; export default connect( state => { let nightmodeEnabled = process.env.BROWSER ? localStorage.getItem('nightmodeEnabled') == 'true' || false : false + const currentUser = state.user.get('current') + return { error: state.app.get('error'), flash: state.offchain.get('flash'), + loggedIn: !!state.user.get('current'), new_visitor: - !state.user.get('current') && + !currentUser && !state.offchain.get('account') && state.offchain.get('new_visit'), - nightmodeEnabled: nightmodeEnabled + nightmodeEnabled: nightmodeEnabled, + username: currentUser && currentUser.get('username'), }; }, dispatch => ({ @@ -451,4 +566,4 @@ export default connect( dispatch(g.actions.fetchExchangeRates()); }, }) -)(App); +)(withScreenSize(App)) diff --git a/app/components/App.scss b/app/components/App.scss index 432731208..3f1cc5248 100644 --- a/app/components/App.scss +++ b/app/components/App.scss @@ -16,18 +16,9 @@ HTML { .App__content { margin-top: 2.5rem; - /* Small only */ - @media screen and (max-width: 39.9375em) { + &.ho { margin-top: 0; } - /* Medium only */ - @media screen and (min-width: 40em) and (max-width: 63.9375em) { - margin-top: 2.5rem; - } - /* Large and above */ - @media screen and (min-width: 64.063em) { - margin-top: 2.5rem; - } .callout { @include themify($themes) { color: themed('textColorPrimary'); diff --git a/app/components/all.scss b/app/components/all.scss index b6ba1da3f..54ad5ea64 100644 --- a/app/components/all.scss +++ b/app/components/all.scss @@ -80,6 +80,8 @@ @import "./modules/SponsorSubscription"; @import "./modules/BottomPanel"; @import "./modules/TopRightMenu"; +@import "./modules/MiniTopics"; +@import "./modules/Topics"; @import "./modules/Modals"; @import "./modules/PostForm/PostForm"; @@ -92,5 +94,4 @@ @import "./pages/PostsIndex"; @import "./pages/SubmitPost"; @import "./pages/TagsIndex"; -@import "./pages/Topics"; @import "./pages/UserProfile"; diff --git a/app/components/cards/PostSummary.jsx b/app/components/cards/PostSummary.jsx index 77a0ca07d..1f0ea4121 100644 --- a/app/components/cards/PostSummary.jsx +++ b/app/components/cards/PostSummary.jsx @@ -34,6 +34,7 @@ import { addHighlight, unsubscribePost } from 'app/utils/NotifyApiClient' import { detransliterate } from 'app/utils/ParsersAndFormatters' import { proxifyImageUrl } from 'app/utils/ProxifyUrl' import { EncryptedStates } from 'app/utils/sponsors' +import { reloadLocation } from 'app/utils/app/RoutingUtils' import { walletUrl } from 'app/utils/walletUtils' function isLeftClickEvent(event) { @@ -45,8 +46,13 @@ function isModifiedEvent(event) { } function navigate(e, onClick, post, url, isForum, isSearch, warn) { - if (isForum || isSearch) + if (isForum || isSearch) { + if (process.env.MOBILE_APP) { + e.preventDefault() + reloadLocation(url) + } return; + } if (warn) { e.preventDefault() return @@ -372,7 +378,7 @@ class PostSummary extends React.Component { if(gray) commentClasses.push('downvoted') // rephide if (loginBlurring) commentClasses.push('blurring') - total_search = total_search ? + total_search = total_search ? {tt('g.and_more_search_posts_COUNT', { COUNT: total_search })} : null diff --git a/app/components/cards/PostSummary.scss b/app/components/cards/PostSummary.scss index 362c909b5..b6c747e26 100644 --- a/app/components/cards/PostSummary.scss +++ b/app/components/cards/PostSummary.scss @@ -1,5 +1,17 @@ ul.PostsList__summaries { margin-left: 0; + + .search-header { + font-size: 1rem; + } +} +/* Small only */ +@media screen and (max-width: 39.9375em) { + ul.PostsList__summaries { + .search-header { + font-size: 0.75rem; + } + } } .PostSummary { diff --git a/app/components/dialogs/AddImageDialog/index.jsx b/app/components/dialogs/AddImageDialog/index.jsx index b42a1ec4d..2c3c3e5f0 100644 --- a/app/components/dialogs/AddImageDialog/index.jsx +++ b/app/components/dialogs/AddImageDialog/index.jsx @@ -14,9 +14,11 @@ export default class AddImageDialog extends React.PureComponent { }; componentDidMount() { - const linkInput = document.getElementsByClassName('AddImageDialog__link-input')[0]; - if (linkInput) - linkInput.focus(); + if (!process.env.MOBILE_APP) { + const linkInput = document.getElementsByClassName('AddImageDialog__link-input')[0] + if (linkInput) + linkInput.focus() + } } render() { @@ -49,6 +51,7 @@ export default class AddImageDialog extends React.PureComponent { block className="AddImageDialog__link-input" placeholder="https://" + enterkeyhint="enter" onKeyDown={this._onInputKeyDown} />
diff --git a/app/components/elements/DropdownMenu.jsx b/app/components/elements/DropdownMenu.jsx index 2a4dfabf9..5d69d4187 100644 --- a/app/components/elements/DropdownMenu.jsx +++ b/app/components/elements/DropdownMenu.jsx @@ -14,7 +14,8 @@ export default class DropdownMenu extends React.Component { title: PropTypes.string, href: PropTypes.string, el: PropTypes.string.isRequired, - noArrow: PropTypes.bool + noArrow: PropTypes.bool, + arrowCenter: PropTypes.bool }; constructor(props) { @@ -68,12 +69,12 @@ export default class DropdownMenu extends React.Component { } render() { - const {el, items, selected, children, className, title, href, noArrow} = this.props; + const {el, items, selected, children, className, title, href, noArrow, arrowCenter} = this.props; const hasDropdown = items.length > 0 let entry = children || {this.getSelectedLabel(items, selected)} - {hasDropdown && !noArrow && } + {hasDropdown && !noArrow && } if(hasDropdown) entry = {entry} diff --git a/app/components/elements/Icon.jsx b/app/components/elements/Icon.jsx index e5d99b77e..faf1e0300 100644 --- a/app/components/elements/Icon.jsx +++ b/app/components/elements/Icon.jsx @@ -30,6 +30,7 @@ const icons = new Map([ ['printer', require('app/assets/icons/printer.svg')], ['search', require('app/assets/icons/search.svg')], ['menu', require('app/assets/icons/menu.svg')], + ['badge-new', require('app/assets/icons/badge-new-nobg.svg')], ['voter', require('app/assets/icons/voter.svg')], ['voters', require('app/assets/icons/voters.svg')], ['empty', require('app/assets/icons/empty.svg')], diff --git a/app/components/elements/Icon.scss b/app/components/elements/Icon.scss index 65d755d91..ee8287245 100644 --- a/app/components/elements/Icon.scss +++ b/app/components/elements/Icon.scss @@ -74,3 +74,8 @@ margin: 24px 0 24px 0; } +.badge-new { + color: red; + margin-left: 2px; + margin-right: 3px; +} diff --git a/app/components/elements/NewsPopups.jsx b/app/components/elements/NewsPopups.jsx index a153590bc..583097187 100644 --- a/app/components/elements/NewsPopups.jsx +++ b/app/components/elements/NewsPopups.jsx @@ -5,6 +5,7 @@ import { api } from 'golos-lib-js' import CloseButton from 'react-foundation-components/lib/global/close-button' +import Icon from '@elements/Icon'; import user from 'app/redux/User' const APP_REMINDER_INTERVAL = 30*24*60*60*1000 @@ -94,8 +95,7 @@ class NewsPopups extends React.Component { } showAppReminder = () => { - if (process.env.IS_APP || typeof(localStorage) === 'undefined' - || location.pathname.startsWith('/submit')) { + if (process.env.IS_APP || typeof(localStorage) === 'undefined') { return false } const now = Date.now() @@ -105,6 +105,10 @@ class NewsPopups extends React.Component { } render() { + if (process.env.BROWSER && location.pathname.startsWith('/submit')) { + return null + } + const { news,hiddenNews } = this.state let appReminder = null @@ -117,6 +121,8 @@ class NewsPopups extends React.Component { }} /> {tt('app_reminder.text')} + + {tt('app_reminder.text2')} } diff --git a/app/components/elements/QrCode.jsx b/app/components/elements/QrCode.jsx index 4b37932c9..db9bf76d2 100644 --- a/app/components/elements/QrCode.jsx +++ b/app/components/elements/QrCode.jsx @@ -9,8 +9,12 @@ export default class ReactQR extends Component { } render() { - var pngBuffer = qrImage.imageSync(this.props.text, { type: 'png', margin: 1 }) - var dataURI = 'data:image/png;base64,' + pngBuffer.toString('base64') + let opts = { type: 'png', margin: 1 } + if (this.props.size) { + opts.size = this.props.size + } + let pngBuffer = qrImage.imageSync(this.props.text, opts) + let dataURI = 'data:image/png;base64,' + pngBuffer.toString('base64') return ( ) diff --git a/app/components/elements/VerticalMenu.jsx b/app/components/elements/VerticalMenu.jsx index e5ea20848..0b871074a 100644 --- a/app/components/elements/VerticalMenu.jsx +++ b/app/components/elements/VerticalMenu.jsx @@ -4,6 +4,10 @@ import PropTypes from 'prop-types' import Icon from 'app/components/elements/Icon' import LinkEx from 'app/utils/LinkEx' +const isSepar = (item) => { + return item && item.value === '-' +} + export default class VerticalMenu extends React.Component { static propTypes = { items: PropTypes.arrayOf(PropTypes.object).isRequired, @@ -32,10 +36,21 @@ export default class VerticalMenu extends React.Component { {title &&
  • {title}
  • } {description &&
  • {description}
  • } {items.map((i, k) => { + const prev = items[k - 1] + const next = items[k + 1] if(i.value === hideValue) return null + if (isSepar(i)) { + return
    + } const iconSize = i.iconSize || '1x' const target = i.target - return
  • + let className = '' + if (isSepar(prev)) { + className += ' padd-top' + } else if (isSepar(next)) { + className += ' padd-bottom' + } + return
  • {i.link ? {i.icon && }{i.label ? i.label : i.value} {i.data && {i.data}} diff --git a/app/components/elements/VerticalMenu.scss b/app/components/elements/VerticalMenu.scss index 83ebd09c2..20e486ed1 100644 --- a/app/components/elements/VerticalMenu.scss +++ b/app/components/elements/VerticalMenu.scss @@ -24,6 +24,14 @@ letter-spacing: 0.4px; } + > li.padd-top > a { + padding-top: 1rem; + } + + > li.padd-bottom > a { + padding-bottom: 1rem; + } + > li > a:hover { background-color: #f0f0f0; } @@ -52,6 +60,12 @@ border-bottom: 1px solid $light-gray; } + > hr { + width: 90%; + margin-top: 0px; + margin-bottom: 0px; + } + &_nav-profile { width: 262px; diff --git a/app/components/elements/VotesAndComments.jsx b/app/components/elements/VotesAndComments.jsx index c6479fee3..cc9e1b9d0 100644 --- a/app/components/elements/VotesAndComments.jsx +++ b/app/components/elements/VotesAndComments.jsx @@ -2,9 +2,11 @@ import React from 'react'; import PropTypes from 'prop-types' import { Link } from 'react-router'; import { connect } from 'react-redux'; +import tt from 'counterpart'; + import Icon from 'app/components/elements/Icon'; import shouldComponentUpdate from 'app/utils/shouldComponentUpdate' -import tt from 'counterpart'; +import { reloadLocation } from 'app/utils/app/RoutingUtils' class VotesAndComments extends React.Component { @@ -29,6 +31,10 @@ class VotesAndComments extends React.Component { const { isForum, fromSearch, commentsLink } = this.props; if (isForum || fromSearch) { event.preventDefault(); + if (process.env.MOBILE_APP) { + reloadLocation(commentsLink) + return + } window.open(commentsLink, '_blank'); } }; diff --git a/app/components/elements/app/LoginAppReminder.jsx b/app/components/elements/app/LoginAppReminder.jsx new file mode 100644 index 000000000..534c11033 --- /dev/null +++ b/app/components/elements/app/LoginAppReminder.jsx @@ -0,0 +1,51 @@ + +import React, { Component } from 'react' +import tt from 'counterpart' + +import Icon from '@elements/Icon' +import QRCode from 'app/components/elements/QrCode' + +class LoginAppReminder extends Component { + state = { showAndroid: false } + + showForAndroid = (e) => { + e.preventDefault() + this.setState({ + showAndroid: !this.state.showAndroid + }) + } + + render() { + const winUrl = 'https://files.golos.app/api/exe/desktop/windows/latest' + const linuxUrl = 'https://files.golos.app/api/exe/desktop/linux/latest' + const androidUrl = 'https://files.golos.app/api/exe/blogs/android/latest' + + const { showAndroid } = this.state + + const androidTitle = (tt('login_app_reminder.title') + 'Android') + + return
    + {tt('login_app_reminder.or_download_for')} + + + + + + + + + + + {showAndroid ? + : null} +
    + } +} + +export default LoginAppReminder diff --git a/app/components/elements/app/LoginAppReminder.scss b/app/components/elements/app/LoginAppReminder.scss new file mode 100644 index 000000000..fbd829316 --- /dev/null +++ b/app/components/elements/app/LoginAppReminder.scss @@ -0,0 +1,2 @@ +.LoginAppReminder { +} diff --git a/app/components/elements/app/URLLoader.jsx b/app/components/elements/app/URLLoader.jsx index 627a4a836..5e188cb0c 100644 --- a/app/components/elements/app/URLLoader.jsx +++ b/app/components/elements/app/URLLoader.jsx @@ -3,6 +3,9 @@ import { browserHistory } from 'react-router' class URLLoader extends React.Component { componentDidMount() { + if (process.env.MOBILE_APP) { + return + } window.appNavigation.onRouter((url) => { try { let parsed = new URL(url) diff --git a/app/components/elements/donate/Donate.scss b/app/components/elements/donate/Donate.scss index 70899b537..a5ae9f54b 100644 --- a/app/components/elements/donate/Donate.scss +++ b/app/components/elements/donate/Donate.scss @@ -21,6 +21,10 @@ &.micro { font-size: 70%; } + + &.small { + width: 120px; + } } .PresetSelector { diff --git a/app/components/elements/donate/TipAssetList.jsx b/app/components/elements/donate/TipAssetList.jsx index 56265e077..15f99a622 100644 --- a/app/components/elements/donate/TipAssetList.jsx +++ b/app/components/elements/donate/TipAssetList.jsx @@ -11,6 +11,7 @@ class TipAssetList extends React.Component { currentAccount: PropTypes.object.isRequired, uias: PropTypes.object, onChange: PropTypes.func.isRequired, + small: PropTypes.bool, } onSelected = (e) => { @@ -26,7 +27,7 @@ class TipAssetList extends React.Component { } render() { - const { currentAccount, currentBalance } = this.props + const { currentAccount, currentBalance, small } = this.props const golosBalance = Asset(currentAccount.get('tip_balance')) let tipBalanceValue = currentBalance && currentBalance.toString(0) @@ -66,7 +67,7 @@ class TipAssetList extends React.Component { ' mini' : '' return ( -
    +
    {tt('token_names.TIP_TOKEN')}:
    {tipBalanceValue}
    diff --git a/app/components/elements/postEditor/CommentFooter/index.jsx b/app/components/elements/postEditor/CommentFooter/index.jsx index 6229d88fa..14a432970 100644 --- a/app/components/elements/postEditor/CommentFooter/index.jsx +++ b/app/components/elements/postEditor/CommentFooter/index.jsx @@ -2,12 +2,14 @@ import React from 'react'; import PropTypes from 'prop-types'; import cn from 'classnames'; import tt from 'counterpart'; + import Button from 'app/components/elements/common/Button'; import Hint from 'app/components/elements/common/Hint'; import EmojiPicker from 'app/components/elements/EmojiPicker'; import './index.scss'; +import { withScreenSize } from 'app/utils/ScreenSize' -export default class CommentFooter extends React.PureComponent { +class CommentFooter extends React.PureComponent { static propTypes = { editMode: PropTypes.bool, postDisabled: PropTypes.bool, @@ -38,9 +40,11 @@ export default class CommentFooter extends React.PureComponent { }; render() { - const { editMode, postDisabled } = this.props; + const { editMode, postDisabled, isS } = this.props; const { temporaryErrorText } = this.state; + const ePicker = + return (
    - + {(!isS) && ePicker}
    @@ -86,3 +90,5 @@ export default class CommentFooter extends React.PureComponent { }, 5000); } } + +export default withScreenSize(CommentFooter) diff --git a/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.jsx b/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.jsx index 2dc9189d8..cd9dfdd18 100644 --- a/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.jsx +++ b/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.jsx @@ -8,10 +8,16 @@ export default class EditorSwitcher extends PureComponent { items: PropTypes.array.isRequired, activeId: PropTypes.number, onChange: PropTypes.func.isRequired, + isS: PropTypes.bool, }; render() { - const { items, activeId } = this.props; + const { items, activeId, isS } = this.props; + + let fontSize + if (!isS) { + fontSize = '18px' + } return (
    @@ -21,6 +27,7 @@ export default class EditorSwitcher extends PureComponent { className={cn('EditorSwitcher__item', { EditorSwitcher__item_active: item.id === activeId, })} + style={{ fontSize }} onClick={ item.id === activeId ? null diff --git a/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.scss b/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.scss index 3322a2ae4..31ede9f06 100644 --- a/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.scss +++ b/app/components/elements/postEditor/EditorSwitcher/EditorSwitcher.scss @@ -13,7 +13,6 @@ white-space: nowrap; letter-spacing: 1.4px; color: #b7b7b9; - font-size: 18px; transition: color 0.1s; flex-shrink: 0; cursor: pointer; diff --git a/app/components/elements/postEditor/MarkdownEditorToolbar/index.jsx b/app/components/elements/postEditor/MarkdownEditorToolbar/index.jsx index eaeb75497..6fe6947f0 100644 --- a/app/components/elements/postEditor/MarkdownEditorToolbar/index.jsx +++ b/app/components/elements/postEditor/MarkdownEditorToolbar/index.jsx @@ -1,17 +1,20 @@ import React from 'react'; import cn from 'classnames'; import tt from 'counterpart'; + import KEYS from 'app/utils/keyCodes'; import Icon from 'app/components/elements/Icon'; import DialogManager from 'app/components/elements/common/DialogManager'; import AddImageDialog from '../../../dialogs/AddImageDialog'; import LinkOptionsDialog from '../../../dialogs/LinkOptionsDialog'; import plusSvg from 'app/assets/icons/editor-toolbar/plus.svg'; +import { withScreenSize } from 'app/utils/ScreenSize' const MAX_HEADING = 4; const TOOLBAR_OFFSET = 7; const TOOLBAR_WIDTH = 468; const TOOLBAR_COMMENT_WIDTH = 336; +const TOOLBAR_SMALL_WIDTH = 300; const MIN_TIP_OFFSET = 29; const PLUS_ACTIONS = [ @@ -34,7 +37,7 @@ const PLUS_ACTIONS = [ }, ]; -export default class MarkdownEditorToolbar extends React.PureComponent { +class MarkdownEditorToolbar extends React.PureComponent { constructor(props) { super(props); @@ -79,12 +82,12 @@ export default class MarkdownEditorToolbar extends React.PureComponent { } render() { - const { commentMode } = this.props; + const { commentMode, isS, } = this.props; const { newLineHelper } = this.state; return (
    @@ -95,15 +98,17 @@ export default class MarkdownEditorToolbar extends React.PureComponent { } _renderToolbar() { - const { SM, commentMode } = this.props; + const { SM, commentMode, isS } = this.props; const { state, toolbarPosition, toolbarShow } = this.state; const { root } = this.refs; const editor = this._editor; - const toolbarWidth = commentMode + const toolbarWidth = isS + ? TOOLBAR_SMALL_WIDTH + : (commentMode ? TOOLBAR_COMMENT_WIDTH - : TOOLBAR_WIDTH; + : TOOLBAR_WIDTH) const style = { width: toolbarWidth, @@ -139,9 +144,22 @@ export default class MarkdownEditorToolbar extends React.PureComponent { style.left = Math.round(left); } + //alert(JSON.stringify(rootPos) + ' ' + style.left) } - const actions = [ + const largeActions = [ + { + icon: 'picture', + tooltip: tt('editor_toolbar.add_image'), + onClick: this._addImage, + }, + { + icon: 'video', + tooltip: tt('editor_toolbar.add_video'), + onClick: this._drawVideo, + } + ] + let actions = [ { active: state.bold, icon: 'bold', @@ -192,17 +210,10 @@ export default class MarkdownEditorToolbar extends React.PureComponent { tooltip: tt('editor_toolbar.add_link'), onClick: this._draw, }, - { - icon: 'picture', - tooltip: tt('editor_toolbar.add_image'), - onClick: this._addImage, - }, - { - icon: 'video', - tooltip: tt('editor_toolbar.add_video'), - onClick: this._drawVideo, - }, - ]; + ] + if (!isS) { + actions = [...actions, ...largeActions] + } return (
    @@ -356,6 +369,9 @@ export default class MarkdownEditorToolbar extends React.PureComponent { toolbarPosition.top = Math.round(bound.top); toolbarPosition.left = Math.round(bound.left + bound.width / 2); } + if (process.env.MOBILE_APP && !toolbarPosition.left) { + toolbarPosition.left = 0 + } newState.toolbarShow = true; newState.toolbarPosition = toolbarPosition; @@ -699,3 +715,5 @@ export default class MarkdownEditorToolbar extends React.PureComponent { } }; } + +export default withScreenSize(MarkdownEditorToolbar) diff --git a/app/components/elements/postEditor/MarkdownEditorToolbar/index.scss b/app/components/elements/postEditor/MarkdownEditorToolbar/index.scss index 10dd4b3b2..0ab0479a8 100644 --- a/app/components/elements/postEditor/MarkdownEditorToolbar/index.scss +++ b/app/components/elements/postEditor/MarkdownEditorToolbar/index.scss @@ -55,6 +55,10 @@ color: #0078c4; } + &_small { + width: 30px; + } + & > svg { vertical-align: middle; width: unset; diff --git a/app/components/elements/postEditor/PostFooter/PostFooter.jsx b/app/components/elements/postEditor/PostFooter/PostFooter.jsx index 4207ea7e8..08129e226 100644 --- a/app/components/elements/postEditor/PostFooter/PostFooter.jsx +++ b/app/components/elements/postEditor/PostFooter/PostFooter.jsx @@ -2,6 +2,7 @@ import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import cn from 'classnames'; import tt from 'counterpart'; + import TagInput from 'app/components/elements/postEditor/TagInput'; import TagsEditLine from 'app/components/elements/postEditor/TagsEditLine'; import PostOptions from 'app/components/elements/postEditor/PostOptions/PostOptions'; @@ -20,6 +21,7 @@ export default class PostFooter extends PureComponent { postDisabled: PropTypes.bool, postEncrypted: PropTypes.bool, disabledHint: PropTypes.string, + isS: PropTypes.bool, onPayoutTypeChange: PropTypes.func.isRequired, onCurationPercentChange: PropTypes.func.isRequired, onDecryptFeeChange: PropTypes.func.isRequired, @@ -139,6 +141,7 @@ export default class PostFooter extends PureComponent { categories, postDisabled, disabledHint, + isS, } = this.props; const { temporaryErrorText, singleLine, showVisibleOptions } = this.state; @@ -238,8 +241,10 @@ export default class PostFooter extends PureComponent { >
    - {!editMode && + { categories.map((cat) => { return ; @@ -256,7 +261,8 @@ export default class PostFooter extends PureComponent { onChange={onTagsChange} /> ) : null} - +
    {isMobile ? null : options} {isMobile ? null : buttons} diff --git a/app/components/elements/postEditor/PostFooter/PostFooter.scss b/app/components/elements/postEditor/PostFooter/PostFooter.scss index b618474e0..bc0797b05 100644 --- a/app/components/elements/postEditor/PostFooter/PostFooter.scss +++ b/app/components/elements/postEditor/PostFooter/PostFooter.scss @@ -23,6 +23,11 @@ border-radius: 20px; box-shadow: 0 2px 12px 0 rgba(0,0,0,0.18); font-size: 15px; + + &.small { + width: 150px; + font-size: 14px; + } } &__cat { diff --git a/app/components/elements/postEditor/TagInput/index.jsx b/app/components/elements/postEditor/TagInput/index.jsx index aec329df9..7f66388b1 100644 --- a/app/components/elements/postEditor/TagInput/index.jsx +++ b/app/components/elements/postEditor/TagInput/index.jsx @@ -12,6 +12,7 @@ export default class TagInput extends React.PureComponent { tags: PropTypes.array.isRequired, className: PropTypes.string, onChange: PropTypes.func.isRequired, + isS: PropTypes.bool, }; constructor(props) { @@ -31,10 +32,12 @@ export default class TagInput extends React.PureComponent { } render() { - const { className } = this.props; + const { className, isS } = this.props; return ( -
    +
    + {inputError} ); @@ -72,7 +76,7 @@ export default class TagInput extends React.PureComponent { if (temporaryHintText) { return ( - + {temporaryHintText} ); diff --git a/app/components/elements/postEditor/TagInput/index.scss b/app/components/elements/postEditor/TagInput/index.scss index 0e38600d8..8c995ef3c 100644 --- a/app/components/elements/postEditor/TagInput/index.scss +++ b/app/components/elements/postEditor/TagInput/index.scss @@ -4,6 +4,10 @@ position: relative; display: block; + &.small { + margin-left: 0.5rem; + } + &__input { width: 185px; height: $input-height; diff --git a/app/components/modules/Donate.jsx b/app/components/modules/Donate.jsx index 51c6b5993..1372d762f 100644 --- a/app/components/modules/Donate.jsx +++ b/app/components/modules/Donate.jsx @@ -18,6 +18,7 @@ import VoteSlider from 'app/components/elements/donate/VoteSlider' import { checkMemo } from 'app/utils/ParsersAndFormatters'; import { accuEmissionPerDay } from 'app/utils/StateFunctions' import { checkAllowed, AllowTypes } from 'app/utils/Allowance' +import { withScreenSize } from 'app/utils/ScreenSize' class Donate extends React.Component { constructor(props) { @@ -118,7 +119,8 @@ class Donate extends React.Component { } render() { - const { currentUser, currentAccount, opts, uias, sliderMax } = this.props + const { currentUser, currentAccount, opts, uias, sliderMax, + isS } = this.props const { sym } = opts const { isMemoEncrypted } = this.state @@ -139,35 +141,52 @@ class Donate extends React.Component { disabled = !isValid || (!values.sliderPercent && !values.amount.asset.amount) } + let bAmount =
    + +
    + let bPreset = + this.onPresetChange(amountStr, values, setFieldValue)} + /> + + return (
    this.onSliderChange(val, values, setFieldValue)} /> -
    + {isS ?
    +
    + {tt('transfer_jsx.donate_amount')} +
    +
    + {bAmount} +
    +
    :
    {tt('transfer_jsx.donate_amount')}
    -
    - -
    + {bAmount}
    - this.onPresetChange(amountStr, values, setFieldValue)} - /> - + {bPreset}
    -
    +
    } + {isS &&
    +
    + {bPreset} +
    +
    }
    @@ -175,10 +194,10 @@ class Donate extends React.Component {
    -
    +
    {tt('transfer_jsx.memo')}
    -
    +
      -
    • +
    • - {selected_sort_order && } + {selected_sort_order && hideOrders && }
    @@ -211,11 +224,14 @@ class Header extends React.Component {
    - {route.hideSubMenu ? null : -
    + {(route.hideSubMenu || hideOrders) ? null : +
    @@ -241,4 +257,4 @@ export default connect( account_meta: account_user, } } -)(Header); +)(withScreenSize(Header)) diff --git a/app/components/modules/Header.scss b/app/components/modules/Header.scss index 6d09266db..78fab296d 100644 --- a/app/components/modules/Header.scss +++ b/app/components/modules/Header.scss @@ -145,6 +145,7 @@ @media screen and (max-width: 39.9375em) { .shrink { padding: .3rem 1rem 0 1rem; + padding-left: 0px; } } } @@ -154,6 +155,12 @@ ul > li.Header__top-logo > a { transition: none; } +.Header__top-logo.small { + img { + width: 35px; + } +} + .Header__sub-nav { position: relative; padding: 0; @@ -170,7 +177,13 @@ ul > li.Header__top-logo > a { line-height: 1rem; padding: 1.2rem 0 1.2rem 0; margin: 0 0 0 2rem; - } + } + + @media screen and (max-width: 63.9375em) { + li { + margin: 0 0 0 1.3rem; + } + } // No margin adjustments for first child element in menu items li:first-child { margin: 0 0 0 0; @@ -242,8 +255,18 @@ ul > li.Header__top-logo > a { .Header__sort-order-menu { margin-left: 10px; + &:not(.me) > a { + font-size: 1.2em !important; + } + .VerticalMenu { left: 0; + + li { + a { + padding: 0.6rem 0.6rem; + } + } } } diff --git a/app/components/modules/LoginForm.jsx b/app/components/modules/LoginForm.jsx index 2ef21da2e..ddf7e99a3 100644 --- a/app/components/modules/LoginForm.jsx +++ b/app/components/modules/LoginForm.jsx @@ -13,6 +13,8 @@ import tt from 'counterpart'; import { APP_DOMAIN } from 'app/client_config'; import { translateError } from 'app/utils/ParsersAndFormatters'; import { authUrl, authRegisterUrl, } from 'app/utils/AuthApiClient'; +import LoginAppReminder from 'app/components/elements/app/LoginAppReminder' +import { openAppSettings } from 'app/components/pages/app/AppSettings' class LoginForm extends Component { @@ -155,7 +157,8 @@ class LoginForm extends Component { const authType = /^vote|comment/.test(opType) ? tt('loginform_jsx.posting') : tt('loginform_jsx.active_or_owner'); const submitLabel = loginBroadcastOperation ? tt('g.sign_in') : tt('g.login'); const cancelIsRegister = loginDefault && loginDefault.get('cancelIsRegister'); - let error = password.touched && password.error ? password.error : this.props.login_error; + let loginError = this.props.login_error + let error = password.touched && password.error ? password.error : (loginError && loginError.get('error')) if (error === 'account_frozen') { error = {tt('loginform_jsx.account_frozen')} @@ -179,6 +182,15 @@ class LoginForm extends Component {   {tt('loginform_jsx.you_may_use_this_active_key_on_other_more')} + } else if (error === 'Node failure') { + const NODE = loginError && loginError.get('node') + error = + {tt('app_settings.node_error_new_NODE', { NODE } )}  + {process.env.MOBILE_APP ? { + e.preventDefault() + openAppSettings() + }}>{tt('app_settings.node_error_new_NODE2')} : null} + } let message = null; if (msg) { @@ -255,6 +267,9 @@ class LoginForm extends Component {
    {form} + {(!process.env.MOBILE_APP && !process.env.DESKTOP_APP && !loginBroadcastOperation && !isMemo) &&
    + +
    }
    ) } diff --git a/app/components/modules/MiniTopics.jsx b/app/components/modules/MiniTopics.jsx new file mode 100644 index 000000000..72c1ee002 --- /dev/null +++ b/app/components/modules/MiniTopics.jsx @@ -0,0 +1,53 @@ +import React from 'react' +import {connect} from 'react-redux'; +import { withRouter } from 'react-router' + +import constants from 'app/redux/constants'; +import Topics from 'app/components/modules/Topics' + +class MiniTopics extends React.Component { + loadSelected = (keys) => { + let { router } = this.props + let { accountname, + category, + order = constants.DEFAULT_SORT_ORDER, + } = router.params + if (category === 'feed') { + accountname = order.slice(1); + order = 'by_feed'; + } + // if (isFetchingOrRecentlyUpdated(this.props.status, order, category)) return; + this.props.requestData({ order, keys, }); + }; + + render() { + let { loggedIn, categories, router } = this.props + let {category, order = constants.DEFAULT_SORT_ORDER} = router.params + if (category === 'feed') { + order = loggedIn ? 'created' : 'trending' + } + return
    + +
    + } +} + +module.exports = withRouter(connect( + (state) => { + return { + categories: state.global.get('tag_idx'), + loggedIn: !!state.user.get('current'), + }; + }, + (dispatch) => { + return { + requestData: (args) => dispatch({ type: 'REQUEST_DATA', payload: args, }), + }; + } +)(MiniTopics)) diff --git a/app/components/modules/MiniTopics.scss b/app/components/modules/MiniTopics.scss new file mode 100644 index 000000000..4897beead --- /dev/null +++ b/app/components/modules/MiniTopics.scss @@ -0,0 +1,10 @@ +.MiniTopics_in-header { + float: left; + margin-right: 1rem; + + > select { + border: none; + border-bottom: 1px solid $light-gray; + border-radius: 0; + } +} diff --git a/app/components/modules/Modals.jsx b/app/components/modules/Modals.jsx index d51bb37a4..d8d7f5d81 100644 --- a/app/components/modules/Modals.jsx +++ b/app/components/modules/Modals.jsx @@ -17,6 +17,7 @@ import AppDownload from 'app/components/modules/app/AppDownload' import user from 'app/redux/User'; import tr from 'app/redux/Transaction'; import shouldComponentUpdate from 'app/utils/shouldComponentUpdate'; +import { withScreenSize } from 'app/utils/ScreenSize' let keyIndex = 0; @@ -75,6 +76,7 @@ class Modals extends React.Component { hideAppDownload, notifications, removeNotification, + isS, } = this.props; const notifications_array = notifications ? notifications.toArray().map(n => { @@ -87,6 +89,13 @@ class Modals extends React.Component { const loginClass = loginBlurring ? 'reveal-blurring' : undefined + let width400 + let width600 + if (!isS) { + width400 = '400px' + width600 = '600px' + } + return (
    {show_login_modal && @@ -96,11 +105,11 @@ class Modals extends React.Component { } - {show_donate_modal && + {show_donate_modal && } - {show_gift_nft_modal && + {show_gift_nft_modal && } @@ -108,7 +117,7 @@ class Modals extends React.Component { } - {show_change_account_modal && + {show_change_account_modal && } @@ -190,4 +199,4 @@ export default connect( removeNotification: (key) => dispatch({type: 'REMOVE_NOTIFICATION', payload: {key}}), }) -)(Modals) +)(withScreenSize(Modals)) diff --git a/app/components/modules/PostForm/PostForm.jsx b/app/components/modules/PostForm/PostForm.jsx index 357292469..82dc38fb2 100644 --- a/app/components/modules/PostForm/PostForm.jsx +++ b/app/components/modules/PostForm/PostForm.jsx @@ -33,6 +33,8 @@ import { import { DRAFT_KEY, EDIT_KEY } from 'app/utils/postForm'; import { checkAllowed, AllowTypes } from 'app/utils/Allowance' import { makeOid, encryptPost, } from 'app/utils/sponsors' +import { withScreenSize } from 'app/utils/ScreenSize' +import { reloadLocation } from 'app/utils/app/RoutingUtils' const EDITORS_TYPES = { MARKDOWN: 1, @@ -210,7 +212,8 @@ class PostForm extends React.Component { } render() { - const { editMode, editParams, categories } = this.props; + const { editMode, editParams, categories, + isS, } = this.props; const { editorId, @@ -256,6 +259,7 @@ class PostForm extends React.Component { ]} activeId={editorId} onChange={this._onEditorChange} + isS={isS} /> {isPreview ? null : (
    -
    +
    @@ -166,4 +168,4 @@ export default connect( })) } }) -)(PromotePost) +)(withScreenSize(PromotePost)) diff --git a/app/components/modules/Settings.jsx b/app/components/modules/Settings.jsx index 27c8eca5e..2a0c6c680 100644 --- a/app/components/modules/Settings.jsx +++ b/app/components/modules/Settings.jsx @@ -1,9 +1,14 @@ import React from 'react'; import {connect} from 'react-redux' +import cookie from "react-cookie"; +import Dropzone from 'react-dropzone' +import ReactTooltip from 'react-tooltip' import user from 'app/redux/User'; import g from 'app/redux/GlobalReducer'; import tt from 'counterpart'; import throttle from 'lodash/throttle' +import {fromJS, Set, Map} from 'immutable' + import transaction from 'app/redux/Transaction' import { getMetadataReliably } from 'app/utils/NormalizeProfile'; import DoNotBother from 'app/components/elements/DoNotBother'; @@ -11,12 +16,11 @@ import Icon from 'app/components/elements/Icon'; import LoadingIndicator from 'app/components/elements/LoadingIndicator' import Userpic from 'app/components/elements/Userpic'; import reactForm from 'app/utils/ReactForm' -import {fromJS, Set, Map} from 'immutable' import UserList from 'app/components/elements/UserList'; import ContentSettings from 'app/components/elements/settings/ContentSettings' -import cookie from "react-cookie"; -import Dropzone from 'react-dropzone' +import AppSettings, { openAppSettings } from 'app/components/pages/app/AppSettings' import { LANGUAGES, DEFAULT_LANGUAGE, LOCALE_COOKIE_KEY, USER_GENDER } from 'app/client_config' +import { withScreenSize } from 'app/utils/ScreenSize' class Settings extends React.Component { @@ -84,6 +88,11 @@ class Settings extends React.Component { if (!notifyPresets) notifyPresets = { receive: true, donate: true, comment_reply: true, mention: true, message: true, fill_order: true, } + if (process.env.MOBILE_APP) { + if (notifyPresets.in_background === undefined) { + notifyPresets.in_background = true + } + } this.setState({notifyPresets}) } @@ -295,7 +304,7 @@ class Settings extends React.Component { const {profile_image, cover_image, name, about, gender, location, website, donatePresets, emissionDonatePct, notifyPresets, notifyPresetsTouched} = this.state - const {follow, block, account, isOwnAccount} = this.props + const {follow, block, account, isOwnAccount, isS} = this.props const following = follow && follow.getIn(['getFollowingAsync', account.name]); const ignores = isOwnAccount && block && block.getIn(['blocking', account.name, 'result']) const mutedInNew = isOwnAccount && props.mutedInNew; @@ -473,7 +482,7 @@ class Settings extends React.Component {


    -

    {tt('settings_jsx.notifications_settings')}

    +

    {isS ? tt('settings_jsx.notifications_settings2') : tt('settings_jsx.notifications_settings')}

    + {process.env.MOBILE_APP ? : null}
    } + {isOwnAccount && process.env.MOBILE_APP && +
    +
    +
    +

    {tt('settings_jsx.app_settings')}

    + {tt('settings_jsx.advanced_settings')} + +
    +
    } +
    } } @@ -588,4 +617,4 @@ export default connect( }); } }) -)(Settings) +)(withScreenSize(Settings)) diff --git a/app/components/modules/SponsorSubscription.jsx b/app/components/modules/SponsorSubscription.jsx index 22c7f0b14..2dd9a74f5 100644 --- a/app/components/modules/SponsorSubscription.jsx +++ b/app/components/modules/SponsorSubscription.jsx @@ -9,6 +9,7 @@ import AmountAssetField from 'app/components/elements/forms/AmountAssetField' import LoadingIndicator from 'app/components/elements/LoadingIndicator' import transaction from 'app/redux/Transaction' import session from 'app/utils/session' +import { withScreenSize } from 'app/utils/ScreenSize' class SponsorSubscription extends React.Component { constructor(props) { @@ -130,7 +131,7 @@ class SponsorSubscription extends React.Component { render() { const { pso, creating, submitting } = this.state - let { account, username } = this.props + let { account, username, isS } = this.props if (!username && process.env.BROWSER) { username = session.load().currentName } @@ -178,13 +179,14 @@ class SponsorSubscription extends React.Component { handleSubmit, isValid, values, dirty, setFieldValue, handleChange, }) => { const { symbol } = values.cost.asset + const clsColumn = 'column small-' + (isS ? '10' : '6') return (
    {tt('sponsors_jsx.cost')}
    -
    +
    @@ -195,7 +197,7 @@ class SponsorSubscription extends React.Component {
    - {pso.author ?
    + {pso.author ?
    @@ -205,7 +207,7 @@ class SponsorSubscription extends React.Component { {this._renderSubmittingIndicator()} {this.state.saved ? {tt('g.saved') + '!'} : null} {this.state.created ? {tt('sponsors_jsx.created') + '!'} : null} -
    :
    +
    :
    @@ -312,4 +314,4 @@ export default connect( dispatch({type: 'FETCH_STATE', payload: {pathname}}) } }) -)(SponsorSubscription) +)(withScreenSize(SponsorSubscription)) diff --git a/app/components/modules/TopRightMenu.jsx b/app/components/modules/TopRightMenu.jsx index d92c208e7..6cb531d76 100644 --- a/app/components/modules/TopRightMenu.jsx +++ b/app/components/modules/TopRightMenu.jsx @@ -15,6 +15,7 @@ import LoadingIndicator from 'app/components/elements/LoadingIndicator'; import NotifiCounter from 'app/components/elements/NotifiCounter'; import { LIQUID_TICKER, DEBT_TICKER } from 'app/client_config'; import LocalizedCurrency from 'app/components/elements/LocalizedCurrency'; +import { openAppSettings } from 'app/components/pages/app/AppSettings' import { vestsToSteem, toAsset } from 'app/utils/StateFunctions'; import { authRegisterUrl, } from 'app/utils/AuthApiClient'; import { msgsHost, msgsLink, } from 'app/utils/ExtLinkUtils'; @@ -55,24 +56,27 @@ const calculateEstimateOutput = ({ account, price_per_golos, savings_withdraws, return Number(((total_steem * price_per_golos) + total_sbd).toFixed(2) ); } -function TopRightMenu({account, savings_withdraws, price_per_golos, globalprops, username, showLogin, goChangeAccount, loggedIn, vertical, navigate, probablyLoggedIn, location, locationQueryParams, toggleNightmode}) { +function TopRightMenu({account, savings_withdraws, price_per_golos, globalprops, username, showLogin, goChangeAccount, loggedIn, vertical, navigate, probablyLoggedIn, location, locationQueryParams, toggleNightmode, + hideOrders, hideOrdersMe, }) { + if (loggedIn) { + hideOrders = hideOrdersMe + } const APP_NAME = tt('g.APP_NAME'); const mcn = 'menu' + (vertical ? ' vertical show-for-small-only' : ''); const mcl = vertical ? '' : ' sub-menu'; const lcn = vertical ? '' : 'show-for-large'; - const scn = vertical ? '' : 'show-for-medium'; const nav = navigate || defaultNavigate; const topbutton =
  • {tt('g.topbutton')}
  • ; - const submitStory =
  • + const submitStory = (vertical || !hideOrders) &&
  • {tt('g.submit_a_story')}
  • ; - const submitStoryPencil =
  • + const submitStoryPencil = hideOrders &&
  • @@ -88,13 +92,13 @@ function TopRightMenu({account, savings_withdraws, price_per_golos, globalprops, const messagesLink = msgsHost() ? msgsLink() : ''; const ordersLink = walletUrl(`/@${username}/filled-orders`) - const faqItem =
  • + const faqItem = (vertical || !hideOrders) &&
  • ; - const searchItem =
  • + const searchItem = (vertical || !hideOrders) &&
  • @@ -112,15 +116,15 @@ function TopRightMenu({account, savings_withdraws, price_per_golos, globalprops, const registerUrl = authRegisterUrl() + (invite ? ('?invite=' + invite) : ''); const additional_menu = [] - if (!loggedIn) { + if (!loggedIn && hideOrders) { additional_menu.push( - { link: '/login.html', onClick: showLogin, value: tt('g.login'), className: 'show-for-small-only' }, + { link: '/login.html', onClick: showLogin, value: tt('g.login') }, { link: registerUrl, onClick: (e) => { e.preventDefault(); window.location.href = registerUrl; }, - value: tt('g.sign_up'), className: 'show-for-small-only' } + value: tt('g.sign_up') } ) } additional_menu.push( @@ -134,6 +138,15 @@ function TopRightMenu({account, savings_withdraws, price_per_golos, globalprops, { link: 'https://wiki.golos.id/', icon: 'new/wikipedia', value: tt("navigation.wiki"), target: 'blank' }, { link: 'https://explorer.golos.id/', icon: 'cog', value: tt("navigation.explorer"), target: 'blank' } ); + if (!loggedIn && process.env.MOBILE_APP) { + const openSettings = (e) => { + e.preventDefault() + openAppSettings() + } + additional_menu.push( + { link: '#', onClick: openSettings, icon: 'new/setting', value: tt("g.settings"), } + ) + } const navAdditional = - + {(vertical || !hideOrders) && } {faqItem} {searchItem} -
  • + {!hideOrders &&
  • } {topbutton} {submitStory} {!vertical && submitStoryPencil} -
  • + {!hideOrders &&
  • } - {!probablyLoggedIn &&
  • + {!probablyLoggedIn && (vertical || !hideOrders) &&
  • {tt('g.login')}
  • } - {!probablyLoggedIn &&
  • + {!probablyLoggedIn && (vertical || !hideOrders) &&
  • {tt('g.sign_up')}
  • } {probablyLoggedIn &&
  • diff --git a/app/components/modules/TopRightMenu.scss b/app/components/modules/TopRightMenu.scss index 10da325c6..8604337cd 100644 --- a/app/components/modules/TopRightMenu.scss +++ b/app/components/modules/TopRightMenu.scss @@ -6,6 +6,16 @@ margin: 0 0 0 1rem; } } +@media screen and (max-width: 39.9375em) { + .sub-menu { + li { + margin: 0 5px; + } + li:last-child { + margin: 0 0 0 0.5rem; + } + } +} li.Header__profile { padding: 0; diff --git a/app/components/pages/Topics.jsx b/app/components/modules/Topics.jsx similarity index 89% rename from app/components/pages/Topics.jsx rename to app/components/modules/Topics.jsx index 6ee76ccf1..1c4888aad 100644 --- a/app/components/pages/Topics.jsx +++ b/app/components/modules/Topics.jsx @@ -2,11 +2,13 @@ import React from 'react'; import PropTypes from 'prop-types' import { Link } from 'react-router'; import { browserHistory } from 'react-router'; +import cookie from "react-cookie"; import tt from 'counterpart'; +import capitalize from 'lodash/capitalize' + import { detransliterate } from 'app/utils/ParsersAndFormatters'; import { isCyrillicTag, processCyrillicTag } from 'app/utils/tags'; import { SELECT_TAGS_KEY } from 'app/client_config'; -import cookie from "react-cookie"; export default class Topics extends React.Component { static propTypes = { @@ -119,10 +121,22 @@ export default class Topics extends React.Component { let isSelected = false if (compact) { - return { + const { value } = e.target + if (value === '_home') { + e.preventDefault() + browserHistory.push(homePath) + return + } + browserHistory.push(value) + }} value={currentValue}> + + {(process.env.BROWSER && location.pathname !== homePath) ? + : null} {categories.map(cat => { const link = order ? `/${order}/${cat}` : `/hot/${cat}`; + cat = capitalize(cat) return })} ; diff --git a/app/components/pages/Topics.scss b/app/components/modules/Topics.scss similarity index 100% rename from app/components/pages/Topics.scss rename to app/components/modules/Topics.scss diff --git a/app/components/modules/app/AppDownload.jsx b/app/components/modules/app/AppDownload.jsx index 850c3edae..0dd73faf8 100644 --- a/app/components/modules/app/AppDownload.jsx +++ b/app/components/modules/app/AppDownload.jsx @@ -1,14 +1,30 @@ import React from 'react' import tt from 'counterpart' +import Icon from '@elements/Icon' +import QRCode from 'app/components/elements/QrCode' + +const updaterHost = 'https://files.golos.app' +const winUrl = new URL('/api/exe/desktop/windows/latest', updaterHost) +const linuxUrl = new URL('/api/exe/desktop/linux/latest', updaterHost) +const androidUrl = new URL('/api/exe/blogs/android/latest', updaterHost) + class AppDownload extends React.Component { + state = { + qrShow: false, + } + componentDidMount() { } + showQR = (e) => { + e.preventDefault() + this.setState({ + qrShow: !this.state.qrShow, + }) + } + render() { - const updaterHost = 'https://files.golos.app' - const winUrl = new URL('/api/exe/desktop/windows/latest', updaterHost) - const linuxUrl = new URL('/api/exe/desktop/linux/latest', updaterHost) return } diff --git a/app/components/pages/PostsIndex.jsx b/app/components/pages/PostsIndex.jsx index b0ce07f92..0bea7aaf7 100644 --- a/app/components/pages/PostsIndex.jsx +++ b/app/components/pages/PostsIndex.jsx @@ -2,21 +2,24 @@ import React from 'react'; import PropTypes from 'prop-types' import {connect} from 'react-redux'; -import Topics from './Topics'; +import {Link} from 'react-router'; +import tt from 'counterpart'; +import Immutable from "immutable"; +import cookie from "react-cookie"; +import cn from 'classnames' + import constants from 'app/redux/constants'; import shouldComponentUpdate from 'app/utils/shouldComponentUpdate'; import PostsList from 'app/components/cards/PostsList'; import {isFetchingOrRecentlyUpdated} from 'app/utils/StateFunctions'; -import {Link} from 'react-router'; import MarkNotificationRead from 'app/components/elements/MarkNotificationRead'; -import tt from 'counterpart'; -import Immutable from "immutable"; import Callout from 'app/components/elements/Callout' import CMCWidget from 'app/components/elements/market/CMCWidget' +import Topics from 'app/components/modules/Topics' import { APP_NAME, SELECT_TAGS_KEY } from 'app/client_config'; -import cookie from "react-cookie"; import transaction from 'app/redux/Transaction' import { getMetadataReliably } from 'app/utils/NormalizeProfile'; +import { withScreenSize } from 'app/utils/ScreenSize' class PostsIndex extends React.Component { @@ -123,7 +126,7 @@ class PostsIndex extends React.Component { } render() { - let { loggedIn, categories, has_from_search } = this.props; + let { loggedIn, categories, has_from_search, hideOrders, hideOrdersMe, } = this.props; let {category, order = constants.DEFAULT_SORT_ORDER} = this.props.routeParams; let topics_order = order; let posts = []; @@ -172,10 +175,14 @@ class PostsIndex extends React.Component { posts = posts.slice(slice_step) } + if (loggedIn) hideOrders = hideOrdersMe + return (
    -
    -
    +
    + {hideOrders &&
    -
    +
    } { markNotificationRead } {(promo_posts && promo_posts.size) ?
    select { border: none; border-bottom: 1px solid $medium-gray; @@ -68,17 +72,9 @@ color: gray; } -/* Small only */ -@media screen and (max-width: 39.9375em) { - .PostsIndex__left { - padding: 0; - } - .PostsIndex__topics_compact { - padding: 0 0.5rem; - float: none; - width: auto; - margin-top: 1.5rem; - } +/* hideOrders */ +.PostsIndex__left.ho { + padding: 0; } /* Medium and up */ diff --git a/app/components/pages/Search.jsx b/app/components/pages/Search.jsx index 6826a754a..8bf6b1bc6 100644 --- a/app/components/pages/Search.jsx +++ b/app/components/pages/Search.jsx @@ -3,11 +3,7 @@ import golos from 'golos-lib-js'; import { Link } from 'react-router'; import { browserHistory } from 'react-router'; import tt from 'counterpart'; -import Icon from 'app/components/elements/Icon'; -import TimeAgoWrapper from 'app/components/elements/TimeAgoWrapper'; -import remarkableStripper from 'app/utils/RemarkableStripper'; import sanitize from 'sanitize-html'; -import { detransliterate } from 'app/utils/ParsersAndFormatters'; import truncate from 'lodash/truncate'; import Pagination from 'rc-pagination'; import localeEn from 'rc-pagination/lib/locale/en_US'; @@ -16,6 +12,13 @@ if (typeof(document) !== 'undefined') require('rc-pagination/assets/index.css'); let Multiselect; if (typeof(document) !== 'undefined') Multiselect = require('multiselect-react-dropdown').Multiselect; +import Icon from 'app/components/elements/Icon'; +import TimeAgoWrapper from 'app/components/elements/TimeAgoWrapper'; +import remarkableStripper from 'app/utils/RemarkableStripper'; +import { detransliterate } from 'app/utils/ParsersAndFormatters'; +import { hrefClick } from 'app/utils/app/RoutingUtils' +import { withScreenSize } from 'app/utils/ScreenSize' + class Search extends React.Component { constructor(props) { super(props); @@ -273,7 +276,95 @@ class Search extends React.Component { }); }; + _renderWhereButton = () => { + const { isS } = this.props + + let button = + +    + + + + if (isS) { + return
    + {button} +
    + } + + return button + } + + _renderSettings = () => { + const { isS } = this.props + + const dateFrom = + const dateSep =  —  + const dateTo = + const sep =    + const dateAll = (this.state.dateFrom || this.state.dateTo) && + + + + const selAuthor = Multiselect && + const selTags = Multiselect && + let sel = + {selAuthor} + {sep} + {isS ? sep : null} + {selTags} + + if (isS) { + sel =
    + {sel} +
    + } + + return
    + {dateFrom} + {dateSep} + {dateTo} + {isS ? null : sep} + {dateAll} + {isS ? null : sep} + {sel} +
    + } + render() { + const { isS } = this.props + let wordWrap + if (isS) { + wordWrap = 'break-word' + } let results = []; let totalPosts = 0; let display = null; @@ -307,13 +398,13 @@ class Search extends React.Component { body = sanitize(body, {allowedTags: ['em', 'img']}); return (
    -
    +
     — @ {hit.fields.author[0]} -
    +

    ); }); @@ -343,56 +434,14 @@ class Search extends React.Component { />
    ); } + return (
    - + {isS ? null : }
    - -    - -
    -
    - -  —  - -    - {(this.state.dateFrom || this.state.dateTo) ? - - : null} -    - {Multiselect ? : null} -    - {Multiselect ? : null} + {this._renderWhereButton()}
    + {this._renderSettings()} {display}

    @@ -410,5 +459,5 @@ class Search extends React.Component { module.exports = { path: '/search(/:query)', - component: Search + component: withScreenSize(Search) }; diff --git a/app/components/pages/Search.scss b/app/components/pages/Search.scss index b42b95662..2be46fbc1 100644 --- a/app/components/pages/Search.scss +++ b/app/components/pages/Search.scss @@ -72,6 +72,9 @@ .esearch-settings input { width: 150px; } + .esearch-settings input.searchBox { + width: 140px; + } .another-search { font-size: 1.3em; } diff --git a/app/components/pages/UserProfile.jsx b/app/components/pages/UserProfile.jsx index 2140d8562..0e0191218 100644 --- a/app/components/pages/UserProfile.jsx +++ b/app/components/pages/UserProfile.jsx @@ -38,6 +38,7 @@ import TimeAgoWrapper from 'app/components/elements/TimeAgoWrapper'; import Userpic from 'app/components/elements/Userpic'; import Callout from 'app/components/elements/Callout'; import normalizeProfile, { getLastSeen } from 'app/utils/NormalizeProfile'; +import { withScreenSize } from 'app/utils/ScreenSize' export default class UserProfile extends React.Component { constructor(props) { @@ -79,7 +80,11 @@ export default class UserProfile extends React.Component { np.location.pathname !== this.props.location.pathname || np.routeParams.accountname !== this.props.routeParams.accountname || np.follow_count !== this.props.follow_count || - ns.repLoading !== this.state.repLoading + ns.repLoading !== this.state.repLoading || + np.hideMainMe !== this.props.hideMainMe || + np.hideMainFor !== this.props.hideMainFor || + np.hideRewardsMe !== this.props.hideRewardsMe || + np.hideRewardsFor !== this.props.hideRewardsFor ) } @@ -153,8 +158,9 @@ export default class UserProfile extends React.Component { render() { const { - props: {current_user, current_account, wifShown, global_status, follow}, - onPrint + props: {current_user, current_account, wifShown, global_status, follow, + hideMainMe, hideRewardsMe, hideMainFor, hideRewardsFor,}, + onPrint, } = this; let { accountname, section, id, action } = this.props.routeParams; // normalize account from cased params @@ -428,6 +434,56 @@ export default class UserProfile extends React.Component { accountjoin = transferFromSteemToGolosDate; } + const hideMain = isMyAccount ? hideMainMe : hideMainFor + const hideRewards = isMyAccount ? hideRewardsMe : hideRewardsFor + let mentionCounter = isMyAccount && + let disCounter = isMyAccount && + let walletCounter = isMyAccount && + + let kebab + let kebabNotify = '' + if (hideMain) { + let kebabMenu = [ + { link: `/@${accountname}/mentions`, label: tt('g.mentions'), value: tt('g.mentions'), addon: mentionCounter } + ] + if (isMyAccount) { + kebabMenu.unshift({ link: `/@${accountname}/discussions`, label: tt('g.discussions'), value: tt('g.discussions'), addon: disCounter }) + kebabMenu.push({ value: '-' }) + kebabMenu.push({ link: `/@${accountname}/settings`, label: tt('g.settings'), value: tt('g.settings') }) + kebabNotify += ',mention,subscriptions' + } + if (hideRewards) { + kebabMenu = [ + ...rewardsMenu, + { value: '-' }, + ...kebabMenu, + ] + kebabNotify += ',donate,donate_msgs' + } + kebabMenu = [ + { link: walletUrl(`/@${accountname}/transfers`), target: walletTarget(), label: tt('g.wallet'), value: tt('g.wallet'), addon: walletCounter }, + { value: '-' }, + ...kebabMenu, + ] + kebabNotify += ',send,receive,fill_order,nft_receive,nft_token_sold,nft_buy_offer' + + if (kebabMenu.length) { + if (kebabMenu[kebabMenu.length - 1].value === '-') kebabMenu.pop() + } + if (kebabNotify[0] === ',') kebabNotify = kebabNotify.slice(1) + kebab = kebabMenu.length ? } + > + + + {(isMyAccount && kebabNotify) ? : null} + + : null + } + const top_menu =
    @@ -440,18 +496,18 @@ export default class UserProfile extends React.Component { {tt('g.replies')} {isMyAccount && } - {isMyAccount ? - {tt('g.discussions')} + {(!hideMain && isMyAccount) ? + {tt('g.discussions')} {disCounter} : null} - - {tt('g.mentions')} {isMyAccount && } - + {!hideMain && + {tt('g.mentions')} {mentionCounter} + }
    - - {tt('g.wallet')} {isMyAccount && } - - + {tt('g.wallet')} {walletCounter} + } + {!hideRewards && } - + } {isMyAccount && msgsHost() ? : null} - {isMyAccount ? + {(isMyAccount && !hideMain) ? : null} + {kebab}
    @@ -641,5 +698,5 @@ module.exports = { }, requestData: (args) => dispatch({type: 'REQUEST_DATA', payload: args}), }) - )(UserProfile) + )(withScreenSize(UserProfile)) }; diff --git a/app/components/pages/UserProfile.scss b/app/components/pages/UserProfile.scss index 380b90232..3277e27d5 100644 --- a/app/components/pages/UserProfile.scss +++ b/app/components/pages/UserProfile.scss @@ -306,7 +306,7 @@ } } -@media screen and (max-width: 400px) { +@media screen and (max-width: 330px) { .UserProfile { &__filler { display: none; diff --git a/app/components/pages/app/AppSettings.jsx b/app/components/pages/app/AppSettings.jsx index cb6bd2f25..a41bf3e83 100644 --- a/app/components/pages/app/AppSettings.jsx +++ b/app/components/pages/app/AppSettings.jsx @@ -2,6 +2,8 @@ import React from 'react' import tt from 'counterpart' import { Formik, Field } from 'formik' +import Icon from 'app/components/elements/Icon' + class AppSettings extends React.Component { _onSubmit = (data) => { let cfg = { ...$STM_Config } @@ -22,12 +24,25 @@ class AppSettings extends React.Component { cfg.images.use_img_proxy = data.use_img_proxy cfg.auth_service.host = data.auth_service cfg.notify_service.host = data.notify_service + cfg.notify_service.host_ws = data.notify_service_ws cfg.elastic_search.url = data.elastic_search - cfg.main_app = data.main_app + if (process.env.MOBILE_APP) { + cfg = JSON.stringify(cfg) + localStorage.setItem('app_settings', cfg) + window.location.href = '/' + return + } else { + cfg.main_app = data.main_app + } window.appSettings.save(cfg) } - _onClose = () => { + _onClose = (e) => { + e.preventDefault() + if (process.env.MOBILE_APP) { + window.location.href = '/' + return + } window.close() } @@ -38,6 +53,7 @@ class AppSettings extends React.Component { use_img_proxy: $STM_Config.images.use_img_proxy, auth_service: $STM_Config.auth_service.host, notify_service: $STM_Config.notify_service.host, + notify_service_ws: $STM_Config.notify_service.host_ws || '', elastic_search: $STM_Config.elastic_search.url, main_app: $STM_Config.main_app, } @@ -49,6 +65,17 @@ class AppSettings extends React.Component { this.makeInitialValues() } + showLogs = (e) => { + e.preventDefault() + NativeLogs.getLog( + 200, + false, + logs => { + alert(logs) + } + ) + } + _renderNodes(ws_connection_client) { let fields = [] for (let i in $STM_Config.ws_connection_app) { @@ -85,8 +112,14 @@ class AppSettings extends React.Component { } render() { + const { MOBILE_APP } = process.env return
    -

    {tt('g.settings')}

    +

    + {MOBILE_APP ? + + : null} + {MOBILE_APP ? tt('app_settings.mobile_title') : tt('g.settings')} +

    {tt('app_settings.to_save_click_button')}
    @@ -150,6 +183,17 @@ class AppSettings extends React.Component {
    +
    +
    + {tt('app_settings.notify_service_ws')} +
    + +
    +
    +
    {tt('app_settings.elastic_search')} @@ -161,7 +205,7 @@ class AppSettings extends React.Component {
    -
    + {MOBILE_APP ? null :
    {tt('app_settings.main_app')}
    @@ -174,16 +218,19 @@ class AppSettings extends React.Component {
    -
    +
    }
    - + } + {MOBILE_APP ? + {tt('app_settings.logs')} + : null}
    @@ -197,3 +244,15 @@ module.exports = { path: '/__app_settings', component: AppSettings, } + +module.exports.openAppSettings = function() { + if (!process.env.MOBILE_APP) { + window.location.href = '/__app_settings' + return + } + const { pathname } = window.location + window.location.href = '/#app-settings' + if (pathname === '/' && window.appMounted) { + window.location.reload() + } +} diff --git a/app/locales/en.json b/app/locales/en.json index 3dd088df0..68b6dbca7 100644 --- a/app/locales/en.json +++ b/app/locales/en.json @@ -69,6 +69,7 @@ "age": "age", "approximately": "approximately", "all_langs": "All languages", + "all_posts": "All posts", "amount": "Amount", "and": "and", "at_least": "at least", @@ -214,7 +215,7 @@ "tag": "Tag", "team": "Team", "to": " to ", - "topics": "Topics", + "topics": "Categories", "transaction_history": "Transaction History", "transfer": "Transfer ", "transfer2": "Transfer", @@ -306,7 +307,7 @@ "show_more_low_value_posts": "Show more low value posts", "select_topic": "Select Topic", "tags_filter": "Filter", - "no_tags_selected": "No tags selected", + "no_tags_selected": "no categories selected", "filter": "Filter", "show_more_topics": "Go to tag rating", "personal_info_will_be_private": "Your personal information will be kept", @@ -466,6 +467,7 @@ "tag_your_story": "Tag (up to 5 tags), the first tag is your main category.", "select_a_tag": "Select tag", "select_a_category": "Select category", + "select_a_category2": "Category", "maximum_tag_length_is_24_characters": "Maximum tag length is 24 characters", "use_only_lowercase_letters": "Use only lowercase letters", "use_one_dash": "Use only one dash", @@ -859,12 +861,18 @@ "choose_preset_tips": "Choose the amounts for the reward buttons", "emission_donate_pct": "Donation percent of your daily token emission", "notifications_settings": "Notification settings", + "notifications_settings2": "Notification settings", "notifications_transfer": "Transfer notifications", "notifications_donate": "Donate notifications", "notifications_reply": "Reply notifications", "notifications_mention": "Mention notifications", "notifications_message": "Private message notifications", "notifications_order": "Market order filled", + "notifications_bg": "Show notifications in background", + "notifications_bg_title": "Show notification when app hidden, screen is off", + "app_settings": "App Settings", + "advanced_settings": "Select the blockchain node, and another advanced settings...", + "open": "Open", "invalid_url": "Invalid URL", "name_is_too_long": "Name is too long", "name_must_not_begin_with": "Name must not begin with @", @@ -1156,21 +1164,30 @@ "mention_comment": " mentioned you in their comment", "message": " sent you a private message" }, + "login_app_reminder": { + "or_download_for": "...or download for ", + "title": "Click to download for " + }, "app_download": { - "title": "Download Golos Desktop" + "title": "Download Golos Desktop", + "download_for": "Download for", + "mobile": "Download Golos Blogs for" }, "app_reminder": { - "text": "Install desktop application for Windows or Linux to receive data directly from blockchain" + "text": "Install desktop application for Windows, Linux, Android", + "text2": "to receive data directly from blockchain" }, "app_goto_url": { "goto": "Goto", "wrong_domain_DOMAINS": "This address is not belong to GOLOS Blogs.\nGOLOS Blogs domains are: %(DOMAINS)s\nThis address will be opened in external browser." }, "app_settings": { + "mobile_title": "Settings of Blogs", "ws_connection_client": "GOLOS node URL", "img_proxy_prefix": "Use Proxy For Images", "auth_service": "Golos Auth & Registration Service (for notifications)", "notify_service": "Golos Notify Service (for notifications)", + "notify_service_ws": "Golos Notify Service WebSocket (for notifications)", "messenger_service": "Messenger", "elastic_search": "Search", "main_app": "When start app, open:", @@ -1179,7 +1196,10 @@ "save_and_restart": "Save and restart", "cancel": "Cancel", "node_error_NODE": "Не удалось подключиться к ноде %(NODE)s. Возможно, это проблемы с интернетом. Или попробуйте задать другую ноду GOLOS в меню Настройки.", - "to_save_click_button": "To save settings, click \"Save and restart\" button at bottom of the window." + "node_error_new_NODE": "Не удалось подключиться к ноде %(NODE)s. Возможно, это проблемы с интернетом (или с нодой).", + "node_error_new_NODE2": "Выбрать другую ноду", + "to_save_click_button": "To save settings, click \"Save and restart\" button at bottom of the window.", + "logs": "Logs" }, "app_update": { "notify_VERSION": "Доступна новая версия GOLOS Блогов - %(VERSION)s", diff --git a/app/locales/ru-RU.json b/app/locales/ru-RU.json index 6acf3262e..5198765c6 100644 --- a/app/locales/ru-RU.json +++ b/app/locales/ru-RU.json @@ -15,6 +15,7 @@ "tag_your_story": "Добавьте тэги, первый станет категорией.", "select_a_tag": "Выбрать тэг", "select_a_category": "Выберите категорию", + "select_a_category2": "Категория", "maximum_tag_length_is_24_characters": "Максимальная длина категории 24 знака", "use_only_lowercase_letters": "Используйте только символы нижнего регистра", "use_one_dash": "Используйте только одно тире", @@ -129,6 +130,7 @@ "active": "Активный ключ", "advanced": "Расширенные опции", "all_langs": "Показать всё", + "all_posts": "Все посты", "amount": "Количество", "and": "и", "are_you_sure": "Вы уверены?", @@ -277,7 +279,7 @@ "tag": "Тэг", "team": "Команда", "to": " к ", - "topics": "Темы", + "topics": "Категории", "transaction_history": "История транзакций", "transfer": "Передать ", "transfer2": "Перевод", @@ -721,12 +723,18 @@ "choose_preset_tips": "Выберите суммы для кнопок вознаграждений", "emission_donate_pct": "Процент от вашей суточной эмиссии токенов для вознаграждения", "notifications_settings": "Настройки уведомлений на сайте", + "notifications_settings2": "Настройки уведомлений", "notifications_transfer": "Перевод средств", "notifications_donate": "Вознаграждения (донаты)", "notifications_reply": "Ответ на комментарий или пост", "notifications_mention": "Упоминание @ника в посте или комментарии", "notifications_message": "Новое сообщение", "notifications_order": "Сработал ордер на бирже", + "notifications_bg": "Показывать уведомления в фоне", + "notifications_bg_title": "Показывать ли уведомления при свернутом приложении, выключенном экране", + "app_settings": "Настройки приложения", + "advanced_settings": "Выбор ноды и другие расширенные настройки...", + "open": "Открыть", "invalid_url": "Недопустимый URL-адрес", "invalid_ws": "wss://api-full.golos.id/ws", "invalid_ip_port": "Пример: 120.16.10.18:2001", @@ -1222,22 +1230,30 @@ "mention_comment": " упомянул вас в комментарии", "message": " написал вам сообщение" }, + "login_app_reminder": { + "or_download_for": "...или скачайте для ", + "title": "Нажмите, чтобы скачать для " + }, "app_download": { "title": "Скачать Golos Desktop", - "download_for": "Скачать для" + "download_for": "Скачать для", + "mobile": "Скачать Golos Блоги для" }, "app_reminder": { - "text": "Установите десктоп-приложение для Windows или Linux и получайте информацию напрямую с блокчейна" + "text": "Установите приложение для Windows, Linux, Android", + "text2": "и получайте информацию напрямую с блокчейна" }, "app_goto_url": { "goto": "Перейти", "wrong_domain_DOMAINS": "Похоже, эта ссылка не с GOLOS Блогов.\nДомены GOLOS Блогов: %(DOMAINS)s\nЭта ссылка будет открыта во внешнем браузере." }, "app_settings": { + "mobile_title": "Настройки Блогов", "ws_connection_client": "Адрес ноды GOLOS", "img_proxy_prefix": "Использовать прокси для изображений", "auth_service": "Golos Auth & Registration Service (для уведомлений)", "notify_service": "Golos Notify Service (для уведомлений)", + "notify_service_ws": "Golos Notify Service WebSocket (для уведомлений)", "messenger_service": "Мессенджер", "elastic_search": "Поиск", "main_app": "При запуске открывать:", @@ -1246,7 +1262,10 @@ "save_and_restart": "Сохранить и перезапустить", "cancel": "Отмена", "node_error_NODE": "Не удалось подключиться к ноде %(NODE)s. Возможно, это проблемы с интернетом. Или попробуйте задать другую ноду GOLOS в меню Настройки.", - "to_save_click_button": "Чтобы сохранить настройки, нажмите кнопку \"Сохранить и перезапустить\" внизу окна." + "node_error_new_NODE": "Не удалось подключиться к ноде %(NODE)s. Возможно, это проблемы с интернетом (или с нодой).", + "node_error_new_NODE2": "Выбрать другую ноду", + "to_save_click_button": "Чтобы сохранить настройки, нажмите кнопку \"Сохранить и перезапустить\" внизу окна.", + "logs": "Логи" }, "app_update": { "notify_VERSION": "Доступна новая версия GOLOS Блогов - %(VERSION)s", diff --git a/app/redux/User.js b/app/redux/User.js index d39cb1f09..a25e92497 100644 --- a/app/redux/User.js +++ b/app/redux/User.js @@ -133,7 +133,8 @@ export default createModule({ }, { action: 'LOGIN_ERROR', - reducer: (state, {payload: {error}}) => state.merge({ login_error: error, logged_out: undefined }) + reducer: (state, {payload: {error, ...rest}}) => state.merge({ login_error: { error, ...rest }, + logged_out: undefined }) }, { action: 'LOGOUT', diff --git a/app/redux/UserSaga.js b/app/redux/UserSaga.js index 870c10b7c..ab7ab6e38 100644 --- a/app/redux/UserSaga.js +++ b/app/redux/UserSaga.js @@ -12,7 +12,7 @@ import { fetchState } from 'app/redux/FetchDataSaga' import {loadFollows} from 'app/redux/FollowSaga' import { signData } from 'golos-lib-js/lib/auth' import {PrivateKey, Signature, hash} from 'golos-lib-js/lib/auth/ecc' -import {api} from 'golos-lib-js' +import {api, config} from 'golos-lib-js' import g from 'app/redux/GlobalReducer' import React from 'react'; import PushNotificationSaga from 'app/redux/services/PushNotificationSaga'; @@ -170,7 +170,14 @@ function* usernamePasswordLogin2({payload: {username, password, saveLogin, const isRole = (role, fn) => (!userProvidedRole || role === userProvidedRole ? fn() : undefined) - let account = yield call(getAccount, username) + let account + try { + account = yield call(getAccount, username) + } catch (err) { + console.error(err) + yield put(user.actions.loginError({ error: 'Node failure', node: config.get('websocket') })) + return + } if (!account) { yield put(user.actions.loginError({ error: 'Username does not exist' })) return diff --git a/app/redux/UserSaga_UploadImage.js b/app/redux/UserSaga_UploadImage.js index 5e38af67d..654ba7ee0 100644 --- a/app/redux/UserSaga_UploadImage.js +++ b/app/redux/UserSaga_UploadImage.js @@ -55,7 +55,7 @@ function* uploadImage(action) { let data, dataBase64; if (file) { - const reader = new FileReader(); + const reader = new (window.FileReader0 || FileReader)(); data = yield new Promise(resolve => { reader.addEventListener('load', () => { @@ -148,12 +148,33 @@ function* uploadImage(action) { const xhr = new XMLHttpRequest(); + let tm + let connected + const clearTm = () => { + if (tm) clearTimeout(tm) + } + const resetTm = () => { + clearTm() + tm = setTimeout(() => { + onError(tt('user_saga_js.image_upload.error.upload_failed')) + xhr.abort() + }, connected ? 10000 : 5000) + } + resetTm() + xhr.open('POST', postUrl); if (!golosImages) { xhr.setRequestHeader('Authorization', 'Client-ID ' + $STM_Config.images.client_id) } + xhr.onloadstart = function () { + connected = true + resetTm() + } + xhr.onload = async function() { + clearTm() + let data; try { @@ -230,11 +251,13 @@ function* uploadImage(action) { }; xhr.onerror = function(error) { + clearTm() onError(tt('user_saga_js.image_upload.error.server_unavailable')); console.error(error); }; xhr.upload.onprogress = function(event) { + resetTm() if (event.lengthComputable) { const percent = Math.round((event.loaded / event.total) * 100); diff --git a/app/redux/services/PushNotificationSaga.js b/app/redux/services/PushNotificationSaga.js index aa4db98da..ae164fc73 100644 --- a/app/redux/services/PushNotificationSaga.js +++ b/app/redux/services/PushNotificationSaga.js @@ -27,11 +27,26 @@ function getScopePresets(username) { if (presets.donate) { presets.donate_msgs = true } - return Object.keys(presets).filter(k => presets[k]); + + let bgPresets = [] + if (process.env.MOBILE_APP) { + const forApp = ['comment_reply', 'mention'] + for (const p of forApp) { + if (presets[p]) bgPresets.push(p) + } + if (presets.in_background === undefined) { + presets.in_background = true + } + } + const inBackground = presets.in_background + delete presets.in_background + return { presets: Object.keys(presets).filter(k => presets[k]), + bgPresets, + inBackground } } export function* onUserLogin(action) { - let presets = getScopePresets(action.username).join(','); + let presets = getScopePresets(action.username).presets.join(','); if (!presets) { console.log('GNS: all scopes disabled, so will not subscribe'); @@ -72,7 +87,7 @@ export function* onUserLogin(action) { removeTaskIds = yield notificationTake(action.username, removeTaskIds, (type, op, timestamp, id, scope) => { if (op._offchain) return; - if (!getScopePresets(action.username).includes(scope)) { + if (!getScopePresets(action.username).presets.includes(scope)) { return; } if (scope === 'message') { @@ -130,4 +145,5 @@ export function* pushNotificationWatches() { export default { onUserLogin, pushNotificationWatches, + getScopePresets, } diff --git a/app/renderApp.js b/app/renderApp.js index 43adae76d..e05e5e9ae 100644 --- a/app/renderApp.js +++ b/app/renderApp.js @@ -34,6 +34,9 @@ export default async function renderApp(initialState) { clientRender(initialState) } catch (error) { console.error(error) + if (process.env.MOBILE_APP) { + alert('renderApp ' + error.toString() + '\n' + JSON.stringify(error.stack)) + } serverApiRecordEvent('client_error', error) } } \ No newline at end of file diff --git a/app/utils/ScreenSize.jsx b/app/utils/ScreenSize.jsx new file mode 100644 index 000000000..926743958 --- /dev/null +++ b/app/utils/ScreenSize.jsx @@ -0,0 +1,75 @@ +import React from 'react' + +const isScreenS = () => { + const res = window.matchMedia('screen and (max-width: 39.9375em)').matches + return res +} + +const shortQuestion = '63.9375em' +const hideOrders = '710px' +const hideOrdersMe = '768px' + +const hideMainMe = '800px' +const hideRewardsMe = '440px' + +const hideMainFor = '560px' +const hideRewardsFor = '440px' + +const isSmaller = (val) => { + const res = window.matchMedia('screen and (max-width: ' + val + ')').matches + return res +} + +export const withScreenSize = (WrappedComponent) => { + class ScreenSize extends React.Component { + state = {} + + componentDidMount() { + if (!process.env.BROWSER) return + this.updateSize() + window.addEventListener('resize', this.onResize) + } + + componentWillUnmount() { + if (!process.env.BROWSER) return + window.removeEventListener('resize', this.onResize) + } + + onResize = () => { + this.updateSize() + } + + updateSize = () => { + this.setState({ + _isSmall: isScreenS(), + _shortQuestion: isSmaller(shortQuestion), + _hideOrders: isSmaller(hideOrders), + _hideOrdersMe: isSmaller(hideOrdersMe), + _hideMainMe: isSmaller(hideMainMe), + _hideRewardsMe: isSmaller(hideRewardsMe), + _hideMainFor: isSmaller(hideMainFor), + _hideRewardsFor: isSmaller(hideRewardsFor), + }) + } + + render() { + const { _shortQuestion, _hideOrders, _hideOrdersMe, + _hideMainMe, _hideRewardsMe, _hideMainFor, _hideRewardsFor, } = this.state + return ( + + ) + } + } + + return ScreenSize +} diff --git a/app/utils/app/RoutingUtils.js b/app/utils/app/RoutingUtils.js new file mode 100644 index 000000000..dfd93da2f --- /dev/null +++ b/app/utils/app/RoutingUtils.js @@ -0,0 +1,65 @@ +import { browserHistory, } from 'react-router' + +export function reloadLocation(href) { + if (href && href[0] === '#') { + throw new Error('reloadLocation cannot reload with href starts with #') + } + const { MOBILE_APP } = process.env + if (MOBILE_APP) { + let { pathname, hash, host } = window.location + if (href) { + if (href.startsWith('http:') || href.startsWith('https:')) { + const url = new URL(href) + if (url.host !== host) { + window.open(href, '_blank') + // And just opening in same tab - not working, somewhy opens with app's hostname... + return + } + href = url.pathname + url.search + url.hash + } + if (href[0] !== '/') { + href = '/' + href + } + } else { + href = pathname || '/' + } + window.location.href = '/#' + href + if (!pathname || pathname === '/') { + window.location.reload() + } + return + } + window.location.href = href +} + +export function hrefClick(e) { + if (process.env.MOBILE_APP) { + let node, href, target + do { + node = node ? node.parentNode : e.target + if (!node) break + href = node.href + target = node.target + } while (!href) + if (!href) return + e.preventDefault() + reloadLocation(href) + } +} + +//... and this processes such reloads: + +export function fixRouteIfApp() { + const { MOBILE_APP } = process.env + if (!MOBILE_APP) { + return true + } + let hash = window.location.hash + if (hash && hash[1] === '/') { + hash = hash.slice(1) + if (!hash) hash = '/' + browserHistory.push(hash) + return false + } + return true +} diff --git a/app/utils/app/ShortcutUtils.js b/app/utils/app/ShortcutUtils.js new file mode 100644 index 000000000..35c3b524a --- /dev/null +++ b/app/utils/app/ShortcutUtils.js @@ -0,0 +1,84 @@ + +async function getShorcuts() { + let i = 0 + for (let i = 0; i < 5; ++i) { + if (!window.plugins || !window.plugins.Shortcuts) { + await new Promise(resolve => setTimeout(resolve, 50)) + continue + } + const { Shortcuts } = window.plugins + return Shortcuts + } + return null +} + +async function dynShortcutsSupported() { + const Shortcuts = await getShorcuts() + return await new Promise(async (resolve, reject) => { + Shortcuts.supportsDynamic((supported) => { + resolve(supported) + }, (err) => { + reject(err) + }) + }) +} + +async function setDynShortcut(shortcut) { + const Shortcuts = await getShorcuts() + await new Promise(async (resolve, reject) => { + Shortcuts.setDynamic([shortcut], () => { + resolve() + }, (err) => { + reject(err) + }) + }) +} + +export async function addShortcut({ id, shortLabel, longLabel, hash }) { + try { + let shortcutSupport = await dynShortcutsSupported() + if (!shortcutSupport) { + console.error('Cannot add shortcut - not supported') + return + } + let shortcut = { + id, + shortLabel, + longLabel, + iconFromResource: 'blg_setting', + intent: { + action: 'android.intent.action.RUN', + flags: 67108864, // FLAG_ACTIVITY_CLEAR_TOP + extras: { + id: Math.random().toString(), + hash + } + } + } + await setDynShortcut(shortcut) + console.log('Shortcut successfully created') + } catch (err) { + console.error('Adding shortcut failed with', err) + } +} + +export async function getShortcutIntent() { + const Shortcuts = await getShorcuts() + return await new Promise((resolve, reject) => { + try { + Shortcuts.getIntent(intent => { + resolve(intent) + }) + } catch (err) { + reject(err) + } + }) +} + +export async function onShortcutIntent(handler) { + const Shortcuts = await getShorcuts() + Shortcuts.onNewIntent() + Shortcuts.onNewIntent((intent) => { + handler(intent) + }) +} diff --git a/app/utils/app/UpdateUtils.js b/app/utils/app/UpdateUtils.js new file mode 100644 index 000000000..6af0dbf70 --- /dev/null +++ b/app/utils/app/UpdateUtils.js @@ -0,0 +1,110 @@ +import tt from 'counterpart' +import { fetchEx } from 'golos-lib-js/lib/utils' + +function updaterHost() { + return $STM_Config.app_updater.host +} + +async function httpGet(url, timeout = fetchEx.COMMON_TIMEOUT, responseType = 'text') { + if (process.env.MOBILE_APP) { + return await new Promise((resolve, reject) => { + try { + cordova.plugin.http.sendRequest(url.toString(), { + responseType, + timeout: Math.ceil(timeout / 1000) + }, (resp) => { + resolve(resp.data) + }, (resp) => { + reject(resp.error) + }) + } catch (err) { + reject(err) + } + }) + } else { + let res = await fetchEx(url, { + timeout + }) + if (responseType === 'arraybuffer') { + res = await res.arrayBuffer() + } else { + res = await res.text() + } + return res + } +} + +export async function checkUpdates(timeout = 2000) { + let url = '' + try { + let path + const isDesktop = !process.env.MOBILE_APP + if (isDesktop) { + path = 'desktop/' + ($STM_Config.platform === 'linux' ? 'linux' : 'windows') + } else { + path = 'messenger/android' + } + url = new URL( + '/api/' + path, updaterHost() + ) + url.searchParams.append('latest', '1') + url.searchParams.append('after', $STM_Config.app_version) + let res = await httpGet(url, timeout) + res = JSON.parse(res) + if (res.status === 'ok' && res.data) { + const versions = Object.entries(res.data) + if (versions[0]) { + const [ v, obj ] = versions[0] + if (obj.exe) { + let link = '/__app_update?v=' + v + '&exe=' + obj.exe + '&txt=' + obj.txt + if (!isDesktop) { + link = new URL('/api/html/' + path + '/' + v, updaterHost()) + link = link.toString() + } + return { + show: true, + id: v, + link, + title: tt('app_update.notify_VERSION', { VERSION: v }), + new_tab: true, + } + } else { + console.error(versions[0]) + } + } + } else { + if (res.error) { + if (process.env.MOBILE_APP) { + throw new Error(res.error) + } + } + console.error(res) + } + } catch (err) { + if (process.env.MOBILE_APP) { + throw new Error((err || 'checkUpdates') + ' (' + url + ')', + { cause : err }) + } else { + console.error('checkUpdates', err) + } + } + return {} +} + +export async function getChangelog(txtLink) { + try { + const decoder = new TextDecoder('windows-1251') + let res + if (process.env.MOBILE_APP) { + res = await httpGet(txtLink, 1000, 'arraybuffer') + res = decoder.decode(res) + } else { + res = await fetch(txtLink) + res = decoder.decode(await res.arrayBuffer()) + } + return res + } catch (err) { + console.error('getChangelog', err) + throw err + } +} diff --git a/build_app_entry.js b/build_app_entry.js index c2af0a1a7..9ce77d71f 100644 --- a/build_app_entry.js +++ b/build_app_entry.js @@ -29,6 +29,10 @@ if (destDir !== 'null') { fse.copySync('app/assets/images', destDir + '/images', { overwrite: true }) // for some direct links } +if (cfgFile === '_mobile') { + process.exit(0) +} + let cfg = {} const copyKey = (key) => { cfg[key] = config.get('desktop.' + key) diff --git a/config.xml b/config.xml new file mode 100644 index 000000000..151ded74a --- /dev/null +++ b/config.xml @@ -0,0 +1,37 @@ + + + GOLOS Блоги + Мобильное приложение Блогов на блокчейне Golos. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/config/mobile.json b/config/mobile.json new file mode 100644 index 000000000..d173bd35c --- /dev/null +++ b/config/mobile.json @@ -0,0 +1,62 @@ +{ + "mobile": { + "ws_connection_app": [ + { "address": "wss://apibeta.golos.today/ws" }, + { "address": "wss://api.golos.id/ws" }, + { "address": "wss://api.aleksw.space/ws" }, + { "address": "wss://api-golos.blckchnd.com/ws" } + ], + "ws_connection_exchange": "wss://apibeta.golos.today/ws", + "site_domain": "beta.golos.today", + "logo": { + "icon": "https://i.imgur.com/Q7GCdPf.png", + "title": "https://i.imgur.com/36zv8We.png" + }, + "images": { + "img_proxy_prefix": "https://devimages.golos.today", + "img_proxy_backup_prefix": "https://steemitimages.com", + "upload_image": "https://api.imgur.com/3/image", + "client_id": "6c09ebf8c548126" + }, + "wallet_service": { + "host": "https://devwallet.golos.today" + }, + "messenger_service": { + "host": "https://devchat.golos.app" + }, + "auth_service": { + "host": "https://dev.golos.app", + "custom_client": "blogs" + }, + "notify_service": { + "host": "https://devnotify.golos.app", + "host_ws": "wss://devnotify.golos.app/ws" + }, + "elastic_search": { + "url": "https://search.golos.today", + "login": "golosclient", + "password": "golosclient" + }, + "apidex_service": { + "host": "https://devapi-dex.golos.app", + "host_local": "https://devapi-dex.golos.app" + }, + "app_updater": { + "host": "https://files.golos.app" + }, + "forums": { + "white_list": ["fm-golostalk", "fm-prizmtalk", "fm-graphenetalks"], + "fm-golostalk": {"domain": "golostalk.com"}, + "fm-prizmtalk": {"domain": "prizmtalk.com"}, + "fm-graphenetalks": {"domain": "forum.gph.ai"} + }, + "hidden_assets": { + "RUDEX": true, + "PRIZM": true, + "DOGECOIN": true, + "YMZEC": true, + "YMWMZ": true, + "YMBTC": true + } + } +} diff --git a/native_core/package.json b/native_core/package.json new file mode 100644 index 000000000..3f854d9de --- /dev/null +++ b/native_core/package.json @@ -0,0 +1,4 @@ +{ + "name": "gls-blogs-native-core", + "version": "1.0.0" +} diff --git a/native_core/plugin.xml b/native_core/plugin.xml new file mode 100644 index 000000000..b6e9a8cb3 --- /dev/null +++ b/native_core/plugin.xml @@ -0,0 +1,46 @@ + + + Golos Blogs Native Core + Provides notification service when activity is paused, as well as on boot received + Apache 2.0 + cordova + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/native_core/res/ic_empty.xml b/native_core/res/ic_empty.xml new file mode 100644 index 000000000..16f82337d --- /dev/null +++ b/native_core/res/ic_empty.xml @@ -0,0 +1,10 @@ + + + + diff --git a/native_core/res/notify.png b/native_core/res/notify.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad1960572e9bdd120e4c824d034bccf970e0a4f GIT binary patch literal 11389 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 literal 0 HcmV?d00001 diff --git a/native_core/src/android/ApiClient.kt b/native_core/src/android/ApiClient.kt new file mode 100644 index 000000000..70a7cd928 --- /dev/null +++ b/native_core/src/android/ApiClient.kt @@ -0,0 +1,50 @@ +package gls.blogs.core + +import okhttp3.HttpUrl +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.OkHttpClient +import okhttp3.Request +import okhttp3.Response +import org.json.JSONObject +import java.util.concurrent.TimeUnit + +open class ApiClient(val host: String) { + private var client: OkHttpClient = OkHttpClient() + + fun urlBuilder(): HttpUrl.Builder { + return host.toHttpUrl().newBuilder() + } + + open fun reqBuilder(url: HttpUrl): Request.Builder { + return Request.Builder() + .url(url) + } + + private fun call(req: Request, err: String, timeoutMsec : Long? = null) : Response { + try { + var clientBuilder = client.newBuilder() + if (timeoutMsec != null) { + clientBuilder = clientBuilder.readTimeout(timeoutMsec, TimeUnit.MILLISECONDS) + } + return clientBuilder.build().newCall(req).execute() + } catch (e: Exception) { + e.printStackTrace() + throw Exception(err) + } + } + + private fun getJSON(str: String, err: String) : JSONObject { + try { + return JSONObject(str) + } catch (e: Exception) { + e.printStackTrace() + throw Exception(err) + } + } + + fun callForJSON(req: Request, err: String, timeoutMsec : Long? = null) : JSONObject { + val res = call(req, err, timeoutMsec) + val str = res.body?.string() + return getJSON(str!!, err) + } +} \ No newline at end of file diff --git a/native_core/src/android/AppPrefs.kt b/native_core/src/android/AppPrefs.kt new file mode 100644 index 000000000..ab2a37361 --- /dev/null +++ b/native_core/src/android/AppPrefs.kt @@ -0,0 +1,9 @@ +package gls.blogs.core + +data class AppPrefs( + var account: String = "", + var session: String = "", + var scopes: String = "", + var lastTake: Long = 0, + var notifyHost: String = "" + ) \ No newline at end of file diff --git a/native_core/src/android/BootReceiver.kt b/native_core/src/android/BootReceiver.kt new file mode 100644 index 000000000..8dce2e8d8 --- /dev/null +++ b/native_core/src/android/BootReceiver.kt @@ -0,0 +1,31 @@ +package gls.blogs.core + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.util.Log + +const val TAG = "GLS/BootReceiver" + +class BootReceiver: BroadcastReceiver() { + override fun onReceive(ctx: Context?, intent: Intent?) { + if (intent == null) { + Log.e(TAG, "Boot received, but no Intent") + return + } + if (intent.action != Intent.ACTION_BOOT_COMPLETED) { + Log.e(TAG, "Boot received, but Intent has wrong action: ${intent.action}") + return + } + if (ctx != null) { + if (ServiceHelper.loadPrefs(ctx).account != "") { + Log.i(TAG, "Boot received, starting service") + ServiceHelper.startNotifyService(ctx.applicationContext) + } else { + Log.w(TAG, "Boot received, but account in prefs is null, so we should not start service") + } + } else { + Log.e(TAG, "Boot received, but no Context, so cannot start service") + } + } +} \ No newline at end of file diff --git a/native_core/src/android/CorePlugin.kt b/native_core/src/android/CorePlugin.kt new file mode 100644 index 000000000..6991c187b --- /dev/null +++ b/native_core/src/android/CorePlugin.kt @@ -0,0 +1,34 @@ +package gls.blogs.core + +import android.content.Context +import org.apache.cordova.CordovaPlugin +import org.apache.cordova.CallbackContext + +import org.json.JSONArray +import org.json.JSONException +import org.json.JSONObject +import android.widget.Toast + +class CorePlugin : CordovaPlugin() { + override fun execute(action: String, args: JSONArray, callbackContext: CallbackContext) : Boolean { + val ctx = this.cordova.getContext() + if (action.equals("startService")) { + var prefs = AppPrefs() + prefs.account = args.getString(0) + prefs.session = args.getString(1) + prefs.scopes = args.getString(2) + prefs.lastTake = args.getLong(3) + prefs.notifyHost = args.getString(4) + // And not passing subscriber id because service should subscribe again + ServiceHelper.savePrefs(ctx, prefs) + ServiceHelper.startNotifyService(ctx) + callbackContext.success() + } else if (action.equals("stopService")) { + ServiceHelper.stopNotifyService(ctx) + callbackContext.success() + } else if (action.equals("logout")) { + ServiceHelper.clearPrefs(ctx) + } + return false + } +} \ No newline at end of file diff --git a/native_core/src/android/NotificationHelper.kt b/native_core/src/android/NotificationHelper.kt new file mode 100644 index 000000000..0d8b46797 --- /dev/null +++ b/native_core/src/android/NotificationHelper.kt @@ -0,0 +1,97 @@ +package gls.blogs.core + +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.content.Context +import android.content.Intent +import android.media.RingtoneManager +import android.net.Uri +import android.os.Build +import android.widget.Toast +import androidx.core.app.NotificationCompat +import androidx.core.app.NotificationManagerCompat +import gls.blogs.MainActivity +import gls.blogs.R + +private const val MESSAGES_CHANNEL = "MESSAGES" +private const val MESSAGE_NOTIFICATION_ID = 2 + +private const val FOREGROUND_CHANNEL = "FOREGROUND" +const val FOREGROUND_NOTIFICATION_ID = 1 + +class NotificationHelper(val ctx: Context) { + private val soundUri: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) + private val notificationManager: NotificationManager = + ctx.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + private var notifId = MESSAGE_NOTIFICATION_ID + + private fun createChannel(id: String, name: String, description: String, importance: Int, silent: Boolean = false) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val channel = NotificationChannel(id, name, importance).apply { + description + } + if (!silent) { + channel.enableVibration(true) + channel.setSound(soundUri, null) + } + notificationManager.createNotificationChannel(channel) + } + } + + private fun createMessagesChannel() { + createChannel(MESSAGES_CHANNEL, "Messages", "New messages notifications", + NotificationManager.IMPORTANCE_HIGH) + } + + private fun createForegroundChannel() { + createChannel( + FOREGROUND_CHANNEL, "Others", "Others channel", + NotificationManager.IMPORTANCE_LOW, true) + } + + private fun pendingIntent() : PendingIntent { + val intent = Intent(ctx, MainActivity::class.java).apply { + flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + } + return PendingIntent.getActivity(ctx, 0, intent, PendingIntent.FLAG_IMMUTABLE) + } + + private fun makeMessage(title: String, description: String, icon: Int): Notification { + createMessagesChannel() + + return NotificationCompat.Builder(ctx, MESSAGES_CHANNEL) + .setSmallIcon(icon) + .setContentTitle(title) + .setContentText(description) + .setContentIntent(pendingIntent()) + .setAutoCancel(true) + .setPriority(NotificationCompat.PRIORITY_HIGH) + .setSound(soundUri) + .build() + } + + fun notifyMessage(title: String, description: String) { + val notification = makeMessage(title, description, R.drawable.notify) + + with(NotificationManagerCompat.from(ctx)) { + if (notifId >= MESSAGE_NOTIFICATION_ID+2) { + notifId = MESSAGE_NOTIFICATION_ID + } + notificationManager.notify(notifId++, notification) + } + } + + fun makeForeground(title: String, description: String, icon: Int): Notification { + createForegroundChannel() + + return NotificationCompat.Builder(ctx, FOREGROUND_CHANNEL) + .setSmallIcon(icon) + .setContentTitle(title) + .setContentText(description) + .setContentIntent(pendingIntent()) + .setPriority(NotificationCompat.PRIORITY_LOW) + .build() + } +} \ No newline at end of file diff --git a/native_core/src/android/NotifyApiClient.kt b/native_core/src/android/NotifyApiClient.kt new file mode 100644 index 000000000..cb45b4925 --- /dev/null +++ b/native_core/src/android/NotifyApiClient.kt @@ -0,0 +1,88 @@ +package gls.blogs.core + +import android.util.Log +import okhttp3.HttpUrl +import okhttp3.Request +import org.json.JSONObject + +class NotifyApiClient(notifyHost: String) : ApiClient(notifyHost) { + var session = "" + + override fun reqBuilder(url: HttpUrl): Request.Builder { + val builder = super.reqBuilder(url) + return builder.header("X-Session", session) + } + + public fun subscribe(acc: String, scopes: String) : Int { + val url = urlBuilder().addPathSegments("subscribe/@$acc/$scopes").build() + val request = reqBuilder(url).build() + + val json = callForJSON(request, "Cannot subscribe") + try { + return json.getInt("subscriber_id") + } catch (e: Exception) { + throw Exception("Cannot subscribe, error: " + json.optString("error")) + } + } + + data class TakeResult( + var removeTaskIds: ArrayList = ArrayList(), + var lastTake: Long = 0 + ) {} + + public fun take(acc: String, subId: String, callback: (String, JSONObject) -> Unit, removeTaskIds: String?): TakeResult { + var builder = urlBuilder().addPathSegments("take/@$acc/$subId") + if (removeTaskIds != null) { + builder = builder.addPathSegment(removeTaskIds) + } + + val request = reqBuilder(builder.build()).build() + + val json = callForJSON(request, "Cannot take", 61000) + try { + val lastTake = json.getLong("__") + val tasks = json.getJSONArray("tasks") + var removeTaskIds = ArrayList() + (0 until tasks.length()).forEach { + val task = tasks.getJSONObject(it) + + val data = task.getJSONArray("data") + val type = data.getString(0) + val op = data.getJSONObject(1) + + callback(type, op) + + val taskId = task.getString("id") + removeTaskIds.add(taskId) + } + return TakeResult(removeTaskIds, lastTake) + } catch (e: Exception) { + e.printStackTrace() + throw Exception(json.getString("error")) + } + } + + public fun getInbox(acc: String, lastTake: Long, callback: (JSONObject) -> Unit) { + var builder = urlBuilder().addPathSegments("msgs/get_inbox/@$acc") + .addQueryParameter("unread_only", "true") + val request = reqBuilder(builder.build()).build() + val json = callForJSON(request, "Cannot getInbox") + try { + val results = json.getJSONArray("result") + for (index in 0 until results.length()) { + val result = results.getJSONObject(index) + + val time = result.getLong("__time") + + if (time >= lastTake) { + callback(result) + } else { + break + } + } + } catch (e: Exception) { + e.printStackTrace() + throw Exception(json.getString("error")) + } + } +} \ No newline at end of file diff --git a/native_core/src/android/NotifyService.kt b/native_core/src/android/NotifyService.kt new file mode 100644 index 000000000..5155cb33c --- /dev/null +++ b/native_core/src/android/NotifyService.kt @@ -0,0 +1,132 @@ +package gls.blogs.core + +import android.app.Service +import android.content.Intent +import android.os.Handler +import android.os.IBinder +import android.os.Looper +import android.widget.Toast +import android.util.Log +import org.json.JSONObject +import kotlin.concurrent.thread +import gls.blogs.R + +class NotifyService() : Service() { + companion object { + private const val TAG = "GLS/NotifyService" + + const val ACTION_STOP = "ACTION_STOP" + } + + private lateinit var nac: NotifyApiClient + private lateinit var nh: NotificationHelper + private lateinit var prefs: AppPrefs + private var workThread: Thread? = null + + private var subId = "" + + private fun showNotification(descr: String) { + Handler(Looper.getMainLooper()).post { + nh.notifyMessage("GOLOS Блоги", descr) + } + } + + private fun doLoop(removeTaskIds: ArrayList) { + if (Thread.interrupted()) return + + if (subId.isEmpty()) { + try { + subId = nac?.subscribe(prefs.account, prefs.scopes).toString() + } catch (e: Exception) { + e.printStackTrace() + Thread.sleep(5000) + doLoop(removeTaskIds) + return + } + Log.i(TAG, "NotifyService subscribed $subId") + + if (Thread.interrupted()) return + } + + if (Thread.interrupted()) return + + var entries = ArrayList() + val rti = removeTaskIds.joinToString(",") + var newRTI = ArrayList() + try { + val takeRes = nac?.take(prefs.account, subId, { typ: String, op: JSONObject -> + var entry = typ + ":" + op.toString() + val author = op.optString("author", "") + val parent_author = op.optString("parent_author", "") + if (typ == "comment_reply") { + val _depth = op.optInt("_depth", 0) + if (_depth > 1) { + entry = "@" + author + " ответил на ваш комментарий." + } else { + entry = "@" + author + " прокомментировал ваш пост." + } + } else if (typ == "comment_mention") { + if (parent_author != "") { + entry = "@" + author + " упомянул вас в комментарии." + } else { + entry = "@" + author + " упомянул вас в своем посте." + } + } + entries.add(entry) + }, rti) + newRTI = takeRes.removeTaskIds + + if (Thread.interrupted()) return + + prefs.lastTake = takeRes.lastTake + ServiceHelper.savePrefs(applicationContext, prefs) + + for (i in 0..entries.size) { + showNotification(entries[i]) + } + } catch (e: Exception) { + e.printStackTrace() + if (e.message != null && e.message!!.contains("No such queue")) { + Log.e(TAG, "No such queue - resubscribing") + subId = "" + } + } + Thread.sleep(2500) + doLoop(newRTI) + } + + override fun onBind(intent: Intent?): IBinder? { + return null + } + + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + if (intent != null && intent.action == ACTION_STOP) { + if (workThread != null) { + workThread!!.interrupt() + stopForeground(true) + stopSelfResult(startId) + } + return START_STICKY + } + + nh = NotificationHelper(this) + val n = nh.makeForeground(" ", "GOLOS Блоги работают.", R.drawable.ic_empty) + startForeground(FOREGROUND_NOTIFICATION_ID, n) + + Log.i(TAG, "Started") + + prefs = ServiceHelper.loadPrefs(applicationContext) + nac = NotifyApiClient(prefs.notifyHost) + nac.session = prefs.session + + workThread = thread { + try { + doLoop(ArrayList()) + } catch (e: InterruptedException) { + Log.i(TAG, "Service stopped - InterruptedException", e) + } + } + + return START_STICKY + } +} diff --git a/native_core/src/android/ServiceHelper.kt b/native_core/src/android/ServiceHelper.kt new file mode 100644 index 000000000..6c4c59e1a --- /dev/null +++ b/native_core/src/android/ServiceHelper.kt @@ -0,0 +1,70 @@ +package gls.blogs.core + +import android.app.Application +import android.content.Context +import android.content.Context.MODE_PRIVATE +import android.content.Intent +import android.content.SharedPreferences + +const val PREF_ACCOUNT = "pref_account" +const val PREF_SESSION = "pref_session" +const val PREF_SCOPES = "pref_scopes" +const val PREF_LAST_TAKE = "pref_last_take" +const val PREF_NOTIFYHOST = "pref_notify_host" + +class ServiceHelper { + companion object { + private fun getSharedPrefs(ctx: Context): SharedPreferences { + return ctx.getSharedPreferences("prefs", MODE_PRIVATE) + } + + fun savePrefs(ctx: Context, prefs: AppPrefs) { + val sharedPrefs = getSharedPrefs(ctx) + with (sharedPrefs.edit()) { + putString(PREF_ACCOUNT, prefs.account) + putString(PREF_SESSION, prefs.session) + putString(PREF_SCOPES, prefs.scopes) + putLong(PREF_LAST_TAKE, prefs.lastTake) + putString(PREF_NOTIFYHOST, prefs.notifyHost) + apply() + } + } + + fun loadPrefs(ctx: Context): AppPrefs { + val sharedPrefs = getSharedPrefs(ctx) + return AppPrefs( + sharedPrefs.getString(PREF_ACCOUNT, "")!!, + sharedPrefs.getString(PREF_SESSION, "")!!, + sharedPrefs.getString(PREF_SCOPES, "")!!, + sharedPrefs.getLong(PREF_LAST_TAKE, 0), + sharedPrefs.getString(PREF_NOTIFYHOST, "")!! + ) + } + + fun clearPrefs(ctx: Context) { + val sharedPrefs = getSharedPrefs(ctx) + with (sharedPrefs.edit()) { + remove(PREF_ACCOUNT) + remove(PREF_SESSION) + remove(PREF_SCOPES) + remove(PREF_LAST_TAKE) + remove(PREF_NOTIFYHOST) + apply() + } + } + + fun startNotifyService(ctx: Context?) { + if (ctx != null) { + ctx.startForegroundService(Intent(ctx, NotifyService::class.java)) + } + } + + fun stopNotifyService(ctx: Context?) { + if (ctx != null) { + val intent = Intent(ctx, NotifyService::class.java) + intent.action = NotifyService.ACTION_STOP + ctx.startService(intent) + } + } + } +} diff --git a/package.json b/package.json index 12cc35dff..cf7d10f6b 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "description": "Golos Blogs — децентрализованная платформа блогов, работающая на блокчейне Golos.", "main": "dist/electron/electron.js", "scripts": { + "cordova": "cordova", "build-version": "./server/build-version.sh", "build-hash": "node check_integrity --save", "build": "npm run build-hash && NODE_ENV=production NODE_CONFIG_ENV=production,blacklist ./node_modules/.bin/webpack --config ./webpack/prod.config.js", @@ -22,7 +23,10 @@ "build-storybook": "build-storybook", "dev:app": "npm run build-hash && cross-env NODE_CONFIG_ENV=blacklist IS_APP=1 ./node_modules/@babel/node/bin/babel-node.js ./webpack/dev-server.js", "build:app": "npm run build-hash && cross-env NODE_ENV=production NODE_CONFIG_ENV=production,desktop ./node_modules/.bin/webpack --config ./webpack/prod-app.config.js", - "build:app-entry": "cross-env NODE_ENV=production NODE_CONFIG_ENV=production,desktop ./node_modules/@babel/node/bin/babel-node.js build_app_entry.js" + "build:app-entry": "cross-env NODE_ENV=production NODE_CONFIG_ENV=production,desktop ./node_modules/@babel/node/bin/babel-node.js build_app_entry.js", + "prebuild:mobile": "cross-env NODE_CONFIG_ENV=production,mobile node ./prebuild_mobile.js", + "build:mobile": "npm run build-hash && cross-env NODE_ENV=production NODE_CONFIG_ENV=production,mobile ./node_modules/.bin/webpack --config ./webpack/prod-mobile.config.js", + "postbuild:mobile": "npm run build:app-entry dist _mobile && cross-env NODE_CONFIG_ENV=production,mobile node ./postbuild_mobile.js && cd cordova && cordova prepare && cordova run android" }, "author": "Golos ", "license": "MIT", @@ -138,11 +142,23 @@ "@babel/plugin-transform-runtime": "^7.16.0", "@babel/preset-env": "^7.16.0", "@babel/preset-react": "^7.16.0", + "@red-mobile/cordova-plugin-shortcuts-android": "^1.0.1", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.3", "babel-plugin-styled-components": "^1.5.1", "chai": "^4.1.2", + "cheerio": "1.0.0-rc.10", "co-mocha": "^1.2.2", + "cordova-android": "^10.1.2", + "cordova-config": "^0.7.0", + "cordova-plugin-advanced-http": "^3.3.1", + "cordova-plugin-androidx-adapter": "^1.1.3", + "cordova-plugin-backbutton": "^0.3.0", + "cordova-plugin-badge": "^0.8.9", + "cordova-plugin-device": "^3.0.0", + "cordova-plugin-file": "^7.0.0", + "cordova-plugin-native-logs": "^1.0.5", + "cordova-plugin-splashscreen": "^6.0.2", "core-js": "^3.19.1", "cross-env": "^7.0.3", "eslint": "^4.9.0", @@ -151,6 +167,7 @@ "eslint-plugin-jsx-a11y": "^6.0.2", "eslint-plugin-react": "^7.4.0", "folder-hash": "^4.0.4", + "gls-blogs-native-core": "file:native_core", "jsdom": "^21.0.0", "mini-css-extract-plugin": "^0.4.0", "mocha": "^5.2.0", @@ -162,7 +179,7 @@ "svg-sprite-loader": "^4.3.0", "uglifyjs-webpack-plugin": "^1.2.5", "webpack-command": "^0.2.1", - "webpack-merge": "^4.1.2", + "webpack-merge": "5.2.0", "webpack-serve": "^1.0.4" }, "optionalDependencies": { @@ -177,5 +194,23 @@ "tabWidth": 4, "semi": true, "trailingComma": "es5" + }, + "cordova": { + "platforms": [ + "android" + ], + "plugins": { + "cordova-plugin-advanced-http": { + "ANDROIDBLACKLISTSECURESOCKETPROTOCOLS": "SSLv3,TLSv1" + }, + "cordova-plugin-androidx-adapter": {}, + "cordova-plugin-backbutton": {}, + "cordova-plugin-native-logs": {}, + "cordova-plugin-splashscreen": {}, + "@red-mobile/cordova-plugin-shortcuts-android": { + "ANDROIDX_CORE_VERSION": "1.3.2" + }, + "gls-blogs-native-core": {} + } } } diff --git a/postbuild_mobile.js b/postbuild_mobile.js new file mode 100644 index 000000000..d8f44e398 --- /dev/null +++ b/postbuild_mobile.js @@ -0,0 +1,89 @@ +const fs = require('fs') +const fse = require('fs-extra') +const cheerio = require('cheerio') +const CordovaConfig = require('cordova-config') +const config = require('config') + +function dirExists(path) { + try { + return fs.statSync(path).isDirectory(); + } catch (e) { + return false + } +} + +function copyDir(dir) { + fse.copySync(dir, distPath + '/' + dir) +} + +function patchLocalPluginVersion(moduleName, dir) { // Patch plugin version to do not broke on cordova prepare + const coreVersion = JSON.parse(fs.readFileSync(dir + '/package.json')).version + console.log(' ' + moduleName, 'version:', coreVersion) + + let json = JSON.parse(fs.readFileSync(distPath + '/package.json')) + if (!json.devDependencies[moduleName]) { + throw new Error(moduleName + ' dependency is not found in package.json/devDependencies') + } + json.devDependencies[moduleName] = coreVersion + json = JSON.stringify(json, null, 2) + fs.writeFileSync(distPath + '/package.json', json) +} + + +const distPath = 'cordova' +const configFile = distPath + '/config.xml' +const indexHtml = distPath + '/www/index.html' + +console.log('--- Copying files to "' + distPath + '" folder...') + +if (!fs.existsSync(distPath)) { + fs.mkdirSync(distPath) +} +fs.copyFileSync('config.xml', configFile) +fs.copyFileSync('package.json', distPath + '/package.json') // for "cordova prepare" +fs.copyFileSync('yarn.lock', distPath + '/yarn.lock') + +console.log('--- Adding hostname to "' + configFile + '" file...') + +let cc = new CordovaConfig(configFile) +cc.setPreference('hostname', config.get('mobile.site_domain')) +cc.writeSync() + +console.log('--- Moving react "build" folder to "' + distPath + '/www"') + +if (dirExists('dist')) { + fs.rmSync(distPath + '/www', { recursive: true, force: true }); + fs.renameSync('dist', distPath + '/www') +} + +console.log('--- Copying "native_core" folder to "' + distPath + '/native_core"') + +copyDir('native_core') + +console.log('--- Patching "native_core" version for correct installation') + +patchLocalPluginVersion('gls-blogs-native-core', 'native_core') + +console.log('--- Clearing cordova in order to update in on "cordova prepare"') + +fs.rmSync(distPath + '/platforms', { recursive: true, force: true }) +fs.rmSync(distPath + '/plugins', { recursive: true, force: true }) + +console.log('--- Copying "res" folder to "' + distPath + '/res"') + +copyDir('res') + +console.log('--- Including cordova.js script into "' + indexHtml + '" file...') + +let idx = fs.readFileSync(indexHtml, 'utf8') +idx = cheerio.load(idx) +if (idx('script[src="cordova.js"]').length === 0) { + idx('').insertBefore('script:first-of-type') + idx('').insertBefore('script:first-of-type') + console.log('Included.') +} else { + console.log('Already exists.') +} +fs.writeFileSync(indexHtml, idx.html()) + +console.log('--- Copied. Installing Cordova plugins and platforms ("cordova prepare"), and building+running android') diff --git a/prebuild_mobile.js b/prebuild_mobile.js new file mode 100644 index 000000000..149890c0f --- /dev/null +++ b/prebuild_mobile.js @@ -0,0 +1,27 @@ +const config = require('config') +const fs = require('fs') +const app_version = require('./package.json').version + +console.log('--- Making default config for react build...') + +let cfg = {} +const copyKey = (key) => { + cfg[key] = config.get('mobile.' + key) +} +cfg.app_version = app_version +copyKey('ws_connection_app') +copyKey('ws_connection_exchange') +copyKey('logo') +copyKey('images') +copyKey('wallet_service') +copyKey('messenger_service') +copyKey('auth_service') +copyKey('notify_service') +copyKey('elastic_search') +copyKey('apidex_service') +copyKey('app_updater') +copyKey('forums') +copyKey('hidden_assets') +fs.writeFileSync('app/app_cfg.js', '/* Only Mobile. Generated automatically. Do not edit. */\r\nmodule.exports = ' + JSON.stringify(cfg, null, 4)) + +console.log('--- Config done. Next stage is running react build.') diff --git a/res/blg_setting.png b/res/blg_setting.png new file mode 100644 index 0000000000000000000000000000000000000000..acaff94a8e7bb1f9320391cacd3a62baa4dc0a11 GIT binary patch literal 1133 zcmV-z1d{uSP)EX>4Tx04R}tkv&MmKpe$iKcpfN2Rn#}WT;LSL`B3&s#pXIrLEAagUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwM<*vm7b)?7NufoI2gm(*ckglc4)8ZBOf`e!fT~$W zDjpNFxm7XriXes|U>1VJOg)ia%)oPe-NVP%yC~1{KKJM7Rq`eSd?N82(+!JwgLrz= z(mC%FhgnHdh|h_~47wokBiCh@-#8Z?_VdiJkx9)Hhl#~v2g@DIN`^{2MI2F7jq?3j zmle)ioYhK=weHDZDCD)3G}mbkA&w;^kc0>sHIz|-g($5WDJD|1AM@}JI{qZNWO9|k z$gzMbR7j2={11M2YZfLa+$13ebiLU2#|RMG1)6o+{yw(t<_QpZ2ClTWzuEw1K1r{) zwa5|Bw+&oew>5bWxZD8-o^;8O94SE4Unl_YXY@@up#K)=S#x`9?c?+T$WT|yH^9Lm zFj}PSb&q#uV-Nb{_fVv3d9t=W0KALO=h%(W098n&Ix!Ftfd+Ko43_4s--=7vhpVC669C(a z0JJL(+h4)nE0}@aNZ*2@($t(3E` z6t*=98??tr_z|{>L;7l}c9uQWpa zc!diwN9rb-vg4VQ!3vxVni;JW(57hjx8a~CW4{{(T*@ixu4LV^nCN4{edmg3`|>PV znds(6H)Y$tE5lnIK{NG}aa21=KxGFr6Wsu|L~7Otm6B)3oTXF{)3_@NQSC`?q z#+o{ literal 0 HcmV?d00001 diff --git a/res/blog0.png b/res/blog0.png new file mode 100644 index 0000000000000000000000000000000000000000..d465a76eb5900b71ec4625de4636244120979e14 GIT binary patch literal 6128 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

    #FuHPFWa% zwh>1tI!?in3|Dj6vbLTF?R%RowUN?b{mZ2VYuf?0v0>7Z)+0&WFf3%O!c9%ZI0^5V$(A>a-{pv^Ib=AIGA zC#D&~pFCUKw9&n(t2D6frP5{9%~f|5w7fPJ$__zdUwu66g@tubT-w^bad-G;SD~O6 zB@yDRAy3M3Z(1@2h6Kw#q6oB?9&*ys*2CGQp`bOe>c;Y#H7QkV>QbueHjLAGR^GO> zY`6YSOVg{9R&>S8#kDtD^ed#eY!MqohHEQYdF7AuI(yTyXgvTbTSe~}Fng*#^0~2m z>yuu$Q|ob9QEr$dI|O7$YR&IHBs^qnMOD>#D*`V(rLXHK@%ubvjLIlzBub&8ic}^q zDOrue-Kqi|4eg$8YyYjMa@|ySp+#brs}2|7SFYcF_5Gd~e+@4{MkyBC9EE4-xgx)_ z+go0n!Ey*fO<+v@UP4tA&|yPaQn7mhLj;*kfr8o5bh<)V$%=KaZYis*9_EHI$g~!K z2No$%?3IjFyPuo9Jo0T?cGJ;)!U9LZ+8^7*x! zGOVTLv_-SLo3s56lPL9AB^aQvwCn;TRLpxku0qMSa>vg-gCJ1xKU&(1*AM2FQNgk(mrmm3aNEj3M~;e3W*Pb*>h<8~Gv zEsgLAtxWJj=<`cjsz)JVk+r_h3-ltBd_Pc8eW?{CfXQUh5}tr*u_SQg0iRQSSq5H)z+<9CCx56 zaA>5WunaGB*OxDE?_IfmYns(!I?ZA&kn3H!*+2`|%H@wqu8nOn?P`Xnq13H`)l(-d zi!jFZs01ME>b-1vq}y5f{0&xP9^!y)$nk2ezFH3MkHR&>o%eTT1}RuxdEO1C&d-yx z8l!TI1|DpfDZ9>JdxzbuJEopfKlMg)Vu1;@Z&m#xEFlmcWQ~Ruz->pbH$^`676;Gc zCcm%yWiek;?2#(!yPinOWIhohPed|@j5m6VrTx94;^H&%a&wi;+uB!B^(BL#*9)ti zUD!}hC1Ap*D8&(E`q9T6J66-Gsjyy;Q<~vwe;El?R0wsUNWhLHA+PXlKV+&Xc1n5q zI*roMQ5qTXJc4nl9VNxhXzk{F>1kJeaZ+|G6Nml>j4Rn8U#-=tUgmosK zYyerJ+QhJ$bdoW!;r{d`?M!-lkU0xi!=&Q=!tfy`PX?p0AA<%aa`Y%g#YIDIwS?bh zIiXl9%cTYJ8$IjEgE>w%CC)v$Jp(yt7j>qGnRSVDdn7eT^lB{0E{ld*R)2O(= z9#d_bZu_nk&Rv?7k0kG8D_8BV2TMx;~-`v1A!9nR5Ntt?FhlTfxCMrIeyt8OtCxeMe(=L8)W z)^c9N^EtuRx>1=*sxLD0rXxu1qWR^!7P){oU#I_mmTG`kDG6%tD(v_j%Mp4N@&xfQ zdijb-_wzeL83jsNWH~{L)og}qbb8LZHoxVQlx*4335O-gmAR3B6#7a>tMPG}cm1Pj zIT3`s#v@90EwX&psLa}DxI5o4Rcw2*xFmQka~KmmA2R4f+hDz4qk*n!-32#Ux;{_N zY>>4dz!2x6(+rWnmR8oBPuD5>k!FkV-M%&TGdvr@2G538o#**B!yrTF+R$n!-5j3h zbh!~{QI~q1(laIP4ag$nlYt{?3tMBATf_H>_8)|LqMj@*gI+^d*|?DDJhI=zA`7NV z%WjFzE!rD&Bd)?#eUF%G)sSJ%qOyyxHFSKzB#~A_fsBE7xWUl+fv>12k#2sVM;S~x zN`pnxZ2$g4qm?9xf*OlbapJP}n7bNb4RIA^p0=bUc-noA$m=6fqf*)F?$uSc>j8!Zs=gId`;Cc8Oyv%cwV zY69Y;h?fwK#4_c{@`Jy+WDaU5r0s0yv27(jm63|U&d-hJ&c8c7zM=F6KCfGv>4}6% zoSY0a_m0hO=s_|NHTzahVM|hVDJSUgXqj;@D5##vwi%TIOp0Y7Q$*;9J#5>t$@x7k z6+F>eVPW}p|K*o2Z4(_d3IersH!|Mn&H20Eu-j;bCvVQPWbwJ|(xdL?9iuZteQ`CN zdBl=P)LFCTcDiUb{moFM!s3dI8_ga6#qud#ZobHQhf)%;k-^%XCFk{~j?b2t@6NAX zv+{hlV@(t+6D5n;s-+uQZgQrk=ZM6Ez(lZSLU5<8^-ZVKDG99QQ20gJi~C2- zYdC@|`5z=SU5sYYzDk!{S%*=wbl+kM|Iy+04dqFK+wGF>Eo|S%!~^bESSmBT$t&7> z-Q{aDEQl9Yi|vGrqDHdSHqQ`zFijRJ<5WzT}`rKa8K4ec7g9xK)r-fPtp~h}8hd*$- z{X-3~aIeQD-S3P!EhneCtSN$ zvaI>umI|TfT78#KTGAS4sUcyhH|Fj6watq4;K|8Op%6|qtX&^=g?2)jMMg_kJ`PD! z1`<1e?Y3K){8;)DE`&H(tk>&KwAVK0-0kRkn_iDKeAYJxI>{gA^T#yRwcF9*(lWY&Hyvz}- znPl>mPpofhx%Kg~gCCBV(;%#rg*usW3x(?Toyn#?yHN9rn}Q%fBsNNkaG3GoIZwS) zln8KF$JKr%`*j1(QJ3+!4LbQ&h2?nJuY5>vclj^4Cb#WxDcOp30aglJ@wNG_pWB_D zvn}TS3D?m&*Q8~l#g3g1b*#JU`5R|@!yU|D)KfBgn9PJC{(5lg3__LlJL05rMGMcS@Cktk37h7@|c`KGn^_$m9&sH65zjRJR zECW{9PpB^MP!n8L0b<7r|At4?7PZGj%_duF&*=FL(R*F{KiE;f^-LWK?7^;p^c^50 zOSHQ@=U$T=`U}eoaoh!WlmgAaD!=2q!lH^4-V``tovJ^TI@OZkF0@HA3-<0Foh35g z?xR_DYwRierb3rZoR21|jevotJM=1c>^VQMadz4wxy`6F6}l0Eq7S>nZR9(=lcukM zFvtxF_5?(a7;c&kk@>!z?$ia%azkXH?25%_PD`vHSUah&`A}%lOY#CC<1L0f(Soyzi)PGHZQ?!>;+M95+optPDi0nQF=wxQG}qr!hq7KX z!CL(#6_;F-ANe{(bd+T6Pe)yrniGy0s&>yOqw@8JV`?wrGny**z*s8kC(()^R zN%;snh@eYgGND{HOUTXBC2oCTo%C$w%k9Glvs4OI>5npLm|NEIJjuX@Tq18%$6XlQign>!T97eZ?1EZ-{)B4CU^B_z;TSU)b6i2ow)x zNx~Rt7Ogs~mh0h~r6NzE^rW-Cl#PFpr7P#FV=^0irx_!ED=MwHnDww3`*S!7H5K)p z%QtSVpJ-z{7Pyg=a_yTU=rmL0fw`RGN0loJYw!Q9lITEP=a-tz0lHctThvXvea4s$N zUem7j+Lh&!-{(d0HuxyQZ?HgdO0%?N=W^ac;4xocLjXL1TSnFydEHsPd3srS=@3T& zt<5AA7x|>ZK=tIA1-sWW&W{tJMtD8}BN?z(R5aufHWfis6z~d<1rPjknj!qLv3&EB zMSV@-%+G z@AL=U`+mg?m049>yQ-JHR^Ao5)!P2StiruJpRleoK4w^@f6U#m_8xoW9Rg(lS59|& zL`h?cyw5~Q+~5<54oecfw77WNvN7U3RWuL!GG-scgB0Vppzc`Rd`K z125n2Xg`E;@IH+D#fTi7;b?#9o`T51r-NO)U0y$%CK{i|o%o5cZTjY)HmK?3B5igzcWT_mNQkEhdlWr41|dn1A(F;My1b9gQDU- z73^%e_}RwTxW#R;n~bd=E~?qLA-Jt8XK_L0^!a-Kba!pTWBT?%+9rEyMYxZ2=y^VO_VVzZS?%Y+jp520ZnW6)l3+ zrks>S<(_eKHv}5JJg+OZrs3s$YO_hH_4+QJRaBjOyS?j^q)c&8-76n%H;cNH$BU!I zt%~^36k}uL(m9Q>pX7)C24y^lO&8XUzLN4$(+fJ@V@;URS8Ix9LJw-~=x7)L>tu2H zEK^)}Ip&te2+X;&aNi$%B^4tW?wAyj?>wd}DfUWFmF!~;&&I;xB!sRJbHM}bokw?~ zbBE9|e2#pFOIB<-^9BCHsf!{pW5u?o?8X(+fRldtt_-s*PoR9v3}^VDAXHq<5C^?I z%6*(3xra$%D3_rY$;pvCr>UE%Kbdp0rQ=gts#@p9owjJbE{C+Vs?EtmgCsW1d4M3p z>m9$SNw~}L@;#ky<&F``f#z;(qL&*+!u5COs``glRh2S3Oz3|t$0&JyMMDwO-yZ`v zpP}A!QZ8=M3uO!(IibUN{y%BijfZbGh2I6;XEPTNcb@h6$T`-Jd8+#L4=Eg829x)% z@MMv^Z^lm0&MQFTP8YAVq-65)SvdB9Gkm}sC>>!DFy$bex+ zYvQ8Nck~FL<%oQB=IEt1FinWt}^xJ$8qlZ%3Y13BLC^j%lGJS zvUL2JS|Zw3(C{(x?KWYV94IZsGuF7A!!db9I6BJ{-e)a){yv-4qUl$n^xarAY1tRG zmcKCb4qNy)Y*x!w*%+hiMluu!zY%V^QNU&q{!B^dZeRJT@w8B#&T!1lc{aHbQ!kkA zdgZ%I=Z3^}R$di3@t`%di3@Gl89TppdHlT4rrz|^I13A;HEU`vUJ%$-c&)zu@5$m` zRwzcVl9sLT12of;xChqJoHJD)`D;#Kr@5%ece=?ax@Ow=vW4!~kJ2V*W!Dx8U)(!_ z;xNZhZdQtu8scDhqE}2NY#7`$W5?$!%62aExeF!Loge2yu{aCVi0sd9mVAMdi;U%4 zpLoQvck_L&uJ^AqgukA=JRF<2M81pr;}wzEb^7qv_qn@1yx+X5A-8g`(NVhkieRx% z94Q@BbN0WAs^uJik^c;PP5mQ}I`+PBS7GP7*XY9kgDh9TC$1aJkuPVs+TWO0ytm9< zxqd3$l|_l6gVnWc;T1X@r_D5OuDfCJ#->}AZfd}2I`NR_-LUxirUy-1*B3h7A{XeZ zks(+ri{ME~Wm0a%?%Y|EyjWG-M88Iefoes)V3tBZHXsPHj<|) zJO{OiQqa=xKwUH{K(E(dbhfjme#X<@J!>9twja91+WrOa4y$~)9DMkRF8uA?&V3)v zuRaRG?;R;lY(K$-40gh?FH6>79 zaS7XPPQd0NxIq-`$9bN=Q~P& zLSE~gWmkbO$<-^X&-TK@3D`!%F*ij9XYx@ueDozCr1w1NW<5sa>?rX>frsUycWg9@ zT1~!FBwpUpp6ZKC;;=xx2f}+!)Mc)61C2XN>crF`>NUay)wbH!WoRyy#9C>U%UQAIzqBKHCPp z{V>Q;ky$DzDCmc1z>7>m*e;hFT3evDwzLBHKlw_dI*&(t>V{Pu^4n_irM5o!aq9{T z3&pyB_v@2KU9nlQR2AP9$4R#w)!T&@&_NX@^(Ag;wm&t9`;&GUgk;8LTKl$>N}Ntf5_ zeWtv;JXgMbVA1|N1Tja?xP?AdMc6XH;!%?RwCCn!?wA z&-1OnPBa^U1vGQy(n|Es&K%R zOQ1ww*VNQxh}R_J7!tQeqresL#oKHSN44AS-f59voj83koP*IcU}y%uYZ`~=cy3ah zEeC_aXE5G}aL>TAOJM|mgFz%KHz)*lGbA?+y`pSpOkK@s=iJNmg zy8Er~M>LUxIBE6j)$f#+mfk92g;_ofRxCoJxRRkD@?8jbilUj~?x}ictb7h6Qlrj^ z8yYZT7zFw;G(BC}tTz7enR5oL5%Co3ilJB=RhaP>tE}ydW9m?8P?aqHySSkjN55)u z0|m>n0X#altgP(gqN1YPIS>38iSO?r#RRvk000T0NklD^WbJ@1Lo7P&{W0U{|J`)2}U}~1yP>h+39`R zE8HA#UAt=4s?3s-lDk1uqOz_Gc-8{mkAX82bZ6MaePeT<%VWI5+B*PyF0A@$!o%Me zj6e`^B$5?lcDtIWtS(x`Qc>Of?lSX>gyV44uNm~-E`$;InBl!D#hDYET zt_l+{E&`0l@NA+=&oM%!`vpG=r|De zIvDcm+O=y#V9IYn{7QT#uyaJ@VA2fC`6FO=0cIP1`v6SM#`B?I`e#@>k@)fbS&R^b znSgN`@NNYizXAlLgy7r$At{xA5wgYdxU_b@Mqj369*PXdm1;CyA>x^*F} z`!#5;#r#(>=L(FGnDZM&i5>;)&#~v1I2YgF0K69ge^i{;P~GTw?ClFMkxHprGTraH zpz(RatgEYQBQF5sm%x(|=YBuJ@8|Px{C*3JMr2Ccw|obrEQJ1HZip+JA}f4={usBUEfe!ov5l=zS2HN+i?{AeasW zpMtmyY$Oq%f5w_A_-zOX{2k_-I2VYhJ!eA!Iv|`XtH_jH86b#SdJpF?bH#=)1H+eL z{rT9~=NK1Y&J%e4X9#R6nGO7Ppd|z$o`eS!kNGjco`Ao{;rm~ea55MB`53>SOZo^8-*^|J(STd!7j%e+yXT@rC&Nvg28*1O|TyfcGi!irHEs zi3ibZKwLGg0iT~>O)?NY3hjH1Na0qv`O_3Po(zru0*KB8%u@Vap}3+%%t=s7C;UDf zO7Q`-aWi0jLYGhXgzqCE&`&_eFwu#zScZsqM!+mG9iOF8oOLE~_GvtW&q2pacs2`+ zyB!<-Eg8lb2wX!56EvI+rhP$W1dKG$#XS(-0^sW)EQ~W1cX=OR{0i{+Oymrhe;4-j z5g0gBu_iUX{Rnh^4jAK<*i0U1i647Agmq7142MwviuE*{B7D|TaWOAZ;W2UE4*K2# zPZF>Pu6sg>r`-E#FYuKdyMgf*VoN4nRsMH%`L&&%}TsJjWGxU*pFv3fO9Em+O1@SiScnA z&v}pe8sJOCem;#8>H&2=8HvAVB9y!Zn%GCyg3&`rALw~hO={v|EnWHVf&YBfb<&%W zcknFhVNG7_e;D>7gbKV3u=pH>wgg2v5*Fmo8?d_68eFlO2cX=4AoG+` zZv{NnL3#9{s^1=8y4QC#G@g! zQYJSbbQp*^o$&~3uEr)wz&==59W|9M2f!zTz;^&gr<5Nfv6(+&V+)xPat;LcAe5&P z@EB9S!4U2P&&#p)72r$+JR3Iu2HhInD};S9G=ClDrU9-GzwcHoMYtyXeGns)b0O3) zU~k0V7ZM*vGT?ULZ^qO~N=*H4t^;!xz*3+k!Q}13fPS2i@UTc5twvW3%|fjY)Q z(uB>QgLUi4Jm5P3_-|va4d1sh`M~B!;J0Qn6b$(p*48LiCrT#3z6qJ|R>o8?E))1m zm6D-f?W&YC!^jV;$pT|v!`y?|>sx@?2wWFZS)q`ru&{c}5iuL|q+xVo9{GC!`+N;_ z%vNen5uyNV4ru-zd5XRNC%(6USM+)ZlydC~Rvq~L6~=n-Y~G-!G$fLxgi=S*a()8j zQ}{i;sE5EbYLA#iQaizbG$8pYzMroU*Vk21T7qQO%owV zu&JA{2~o=_bt)4PO?;Ca3UOLIO>~uD)EKP25o<41=^s#6@L_ho#hr8f9-o zl)mjTJy-QRm6M-Tcw>@!`(qs}9|`0|J_Avp45Dit-pJEz8M(0dkmIu-Lq@=XcA z-3Q?=QX3AW8#0;(rAQvMP94yqN>CdMYS(69yD+|$MFFVu)h^S(b{(0b!c(3PdfF0i z4NMOBJDCvQHHz!l^lP%m(=>3cx~GBj2ZI$)*I>U7e$ph887Xd$+IUwzpqW1yKL+wF zQK6rSrx)X02=95-V<<2N;*(DHfA^$;eaFF0Z;sbz9i)%hZ_bI1pia>H9dypA(sU}P zBgdiPghzaF@K4x3J`sKWj^N@H9M*U-EOa%(#p8o`jAQWq@LxCo4-C~)D4G0_lO1pV YFEok?+93dNy8r+H07*qoM6N<$f}z*>j{pDw literal 0 HcmV?d00001 diff --git a/res/icon-hdpi.png b/res/icon-hdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..474425e46dd4379867e4811377d790059380b1ab GIT binary patch literal 7910 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 bL;)cO&#euuI=fM`-U5F6j`%cq6Egk>1f88D literal 0 HcmV?d00001 diff --git a/res/icon-mdpi.png b/res/icon-mdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..478cda1c67457671e2c01462e4174bf1b8571ba8 GIT binary patch literal 4260 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 literal 0 HcmV?d00001 diff --git a/res/icon-xhdpi.png b/res/icon-xhdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..252b7307d099d4eb772dd6189da855da4f015bfc GIT binary patch literal 13880 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 literal 0 HcmV?d00001 diff --git a/res/icon-xxhdpi.png b/res/icon-xxhdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..5fdcff6d2a46d55177ef49adafeb0325503926a2 GIT binary patch literal 25906 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 MQ`T0(Dxkyv2ZRkU=Kufz literal 0 HcmV?d00001 diff --git a/res/logo.png b/res/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c1579ea6f55e3342b78c25c2fa7dc930c6ab1366 GIT binary patch literal 12766 zcmV<4F(J;0P)004R=004l4008;_004mK004C`008P>0026d000+nm#LZ500009 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 literal 0 HcmV?d00001 diff --git a/res/logo_x.png b/res/logo_x.png new file mode 100644 index 0000000000000000000000000000000000000000..78e852dd55a63c71138822911e958d22e6af5fa7 GIT binary patch literal 34575 zcmV)TK(W7xP)004R=004l4008;_004mK004C`008P>0026d000+nm#LZ5004%X zNkl|T3#b8* z3qIrm5gq*d_YXroHZw-SC>RB!fE)l2Ktr-XMQ&7MD;Ti>P+|J(*Dr>@fB!NtGcz-= zu&{tJsrKQsV-$>nQ82OrKmZMi0u{a0iC&ob1@b}q znVFfu1uJA|0LTW?AT|S7j+ucKgxT1@g)XiF6klt2xB+rUh6W;RNOdc%-H6XUgDve0 zwy?tmC>g1wrJDf)aAQU*0D>?Soe!DX|NpBp$h@Yqh`<*SyD&Bsbf`PRmIP|;lfpAI zdG9HNkbQ<`0w_QV&xn&DhR%2cm&zKdfV5cxsopg038sg0WUVD*Oa`mWL-uR`u2_uP zBUWNY>N!61Y`P1se$oSTSw-)A{?_bwkKJ3oP|tm%-p8esbqT$Q8i-H!z;WExC7`AyJu}B3JAhj7Y!fU91BUl>ht312L(fd<4KiExAj*t& zTQBIModfeFTf|VMoP^ejft3bi)S-&sUP>5c?YsnsmMG?f|NkWTU{@(nDKg`O z*Vu&ZVXU0A&DkmACka(dD^gLNDJ6(8!YM1#(#GStktJN`O5Ej7|1J-1|7jI<3V;?1 z`65;&OVkOLpa-1a-Dh%j2M5kMSi%C~7{Gg9{L7YrsMde6smwS&P-EM_L*uMoq;0Sl zV+Vi4aoY0#QX5Zw6wKbcsv0tci(6 z!J{qhQ852@Y)asm*}X9%Tqub4LofG;sW4MwqbV0w%58*ME{{r$(}V_5VyUg7)>lD; zDME^=^a10e{)*FgWGSP{uUsX}wW&F0JGNG zn=lLmuZ5;<*76u=|Nj^5U+g2VwdtF(bJD_?kS4~Y%@QD03UV)JpJV6WB~-Do|0$KH zOy-R#P!xp?SOM2g=UoY8X(^S4&m*`UEP0o}IIHNV|Lq3_wu;ufVU+~lakvH0G_~!= z+UM=1AA7>(j;atVj$))tsH@fLoK%%kci(^gOZ(FC7@u04i>kxEY#CTRwt0<1Rw1ie zG@ZlDE%t2%>cswJt60xg?M$c>4@neIcw#J*5HS;M8cq1ifD9xN|IXoP?4z5yL*AUQ z$!hGf5(oM$?@+eR=kv*hUsH;J_@L?2>`7sf##qlHB%zO)Rus+Pibp@OeO}>hV{kAH zx#a|F>|8lP2M7=5dWx52f@P{7#^PQR&X>e(M<2JuZJ!f2L)>Z>F(O25ca=~jz5*sE zO(BxKUC*`k`#Dw6e3wWCw&)n`Hov~NTk9kSMbHiT_+A~ceJ`=$NBoz)uP6XD{q6dr zUGEQZFT>|xD!k(&yB2mPi{EP!DtloqBJ=p7q0K{91PQox0JsY?U7`X8U zjSq~$L=(dg_}zYmG0~vWM0}vUL=f0`gZHisV0(;v}^BePtR$)f0z7=R!jyq z22e-N&sZZHW;zj_X3$bK&0&kqNjy1Gl3jBDvG?9=WK$e5Q)Opa7A)Ixo(!_gin%Sr z*+G}fT6j;^=DZP=>Dp*Cn=lO%;cytb9{BWitp5&+Y|jkksoBP5sfClGg;EE&s`gQ9 z_R*n<#^z;-#aktVp;(AJFG* z`05WBLb8eUh!jh;-oRP0g+gP3)B7&&>Rkc}o?M(inX3&qNFK>yEnG#A+88%AWRn^) zri9%3GBRlsisr{pnBy(A;qbVIe6bCS0D!?%Q^e?`c@H*aj6SiOQgE=Bo&)M%9CW_- zGp8rc9J?%AI4V3N|6t>~)^qGO9E&kN9t+jxDn@xmP!umQe2OckicH*({Z${fqD$CF z8VH4gaP9VewdQWyz52ONM5prjjEjEmLouo|H}Ji} z7jQk7K-Nd8SfZo2WUK$#bUmJxMjzXAkAruoxXHqdU;Qfq<&1e+BJ{}EXHI#rgO1zu%eOza9sOC5GS!rK$1Y(MgHATJa zpw+j~c%9(QiC|hGfdcJIDDRf>BP~iE5KBr@24c2KNjCJ*8e~u|XsDY$s)qrtPIpl` z*pWb|l5HJZNXB>Hb8*}Jfa`}~;${$dvpYnn5X>~3?9uz9ENW+^%@*UAw$wT42!bih zclzFuz=JtKk683GfmGlA#Mqh1j%1-J@Jx!(^52d)&6EncKzo!zv+v-^%;K29_2O6% zIC;1{%A-t0O4k)gtqZK*Ek1*OAmi|^W78f@WC7^gAqM2H<*}T@1zzdlD^FPQH~t0= zb2?>Y=R}=|ktRQLvU93XWs}TWOJQ645`bCjdr26I!rzv^(6WNi9(=Q2#HSvEphx?Y zB_!xMLZ}RCkfCBAnww7N++63}>*iY0LkV?XrW5Y{+&TNscfWK0R7!=9Kd}<@8%><( z;s}%Y4O9^mg6No}_>YIHxaY0B&+u5+fsc-;xz6)5N%K~o2NNb&alSlDYE>N;+lI<7SnH%$}Tn0({|kQV9r%+XXYpt7AXD#vq=T) zxjjI&q2sbKMrUBbn9M*c3alw2?{s|CbP5_|a;Csf^2>f*6vfmh*`*MQ(GeXT&j`c#E2znurV7W1z z9?26z$)vXtEBiwL;;p79VIYXkwk6g^OuTqC@yf}6;K5()4>0P%gC7YO{D=mPABmz+ z3yN)8y3X6(wp%fBkSNK75<FP+N^mZ< z6=fGn$P^P5xvV9)S$km%L+I%}g(Et+=+pjrNNr}PcLPplsWg2vUbCwg;W|?H*1r|5 zs`cqSYygn=Wc0!J&-8YOtC3!m(9Nr)%~noptIHJljdK2R*2|Wgq$nqIb>H6@_HBAf z>Gv}b({VQ8%40-_m+a@O0UfiiZ<)yt$C>ggSUT<>KoeMxAm71PH03JGsf^(cRe|GLNsX8KOMr+wN!=~3qa)l$OO)m4Si zt$PKeo~waWPXg&yRBm0zG0DMm%x71WKFlUsPnoAC_$dG}SJKij5QV>Kk|y2kK@TmS z^bhEt@ZU;7#IqMquDE~)LBXPy8r!PTZZ_k4Z;~bfmx`bRb0`TDGRv25dGzlYY78t< z@;)L4I3(sbVQ?ZqQUpkf0f;2N$E=iqR@*khw6u@D^j~f44_T>-eb)GAw(KMQ=O}Tw zWc*rJI$vXeEEZV?+Qdem#S%zAi$4f{=RqnH7+mYMx_~l+^M99CrJvsmhPY_@XzaJJ zb@oE?t&g&!;nE44FC}bL8$Ox|0l8_dgun{pQZcaRQkzrD!E~$$;i&Pr)uMvy%)W!o z`WTS8Za-t^{0@zS4tB3NkQkxrY0P;RF)Yi3jYz5%03>WQ88LN%%iR ze;(p|K5y)fjM44}*gkDzq)61GbJ#4@gPaD#Y?45sQ*Hvq~HEUvYftV}0))n@3&b^hDTmg`_$IzLZHt zY&i~}Lg}V-N~aN$?-dng)=dD|qCG={R0|3PCp-VYZSMjQZ#6v$13`2u6ex)#1`_KP zuLS>%KUAa9n3#Cr;z<-tI6)$pBB%%`&@boB?zW&IF&wlB0SevD%G=&h+*{&D1F3=w|)pyYEt^Tuypc{{yL}sT9#W%X`}y(AoVP-E<~2nfX-8q3Wy)O32

    iYB$K|H(DF}!=4Cm-piP-TOOU> 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 P00000NkvXXu0mjf9ng#k literal 0 HcmV?d00001 diff --git a/res/screen/android/land/splash-land-hdpi.png b/res/screen/android/land/splash-land-hdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..b5893cff31dd9ae2e6eab2c1a317d6202ab34aa9 GIT binary patch literal 17388 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 KZH$5Ii~j>PIyPwl literal 0 HcmV?d00001 diff --git a/res/screen/android/land/splash-land-ldpi.png b/res/screen/android/land/splash-land-ldpi.png new file mode 100644 index 0000000000000000000000000000000000000000..05c53b4f2a5285ddd0e681bab8b08217a140b878 GIT binary patch literal 14107 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 CZrTvQe>;&bh5?X}llYu)$#+S1%aR76@t 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 literal 0 HcmV?d00001 diff --git a/res/screen/android/land/splash-land-xhdpi.png b/res/screen/android/land/splash-land-xhdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..db95d626adf756317b7c9266a7996d61ce486c8b GIT binary patch literal 43621 zcmeFZ`CF3P_dc$br?O)7=Qdl~ZYGlUZ5L^O*C1fD;ZN*rXoQv`I}(P0b+@ zH5E_@OwBCE8~_E8%$%4s6;KiVa9-#7{te$>-dqeN&nBhf9{6VuK!-lIJfQcf7ZQ>{ZiZhGyOB9 z_Wfra_TO>;KkL)s6aV*-|2LNZ=R{Kfw|XS8=KsRR|G)9lHT=h)#oMK%#?Okw&f!1% zolEbU+WZ~%6s$)xI{k0Nu9cHMCM6Y5&-f!A&KDuJZr1OVy!w&&?;h|;?ugjwXV{}l z$w}N;I*eF!^1yB@jhDz4Wq1BsTN^p$oppXUh(A_kyuYplcVdF$dzDt6mAT#C+Vi4N=(#8;b$ zqPgnGMA}iQ`;q_K9VbTS>SW=qHL0KK=xMNJC|(s9N81c0QrVUdd|H+G8^b05m!gN} z$va4vZ{cPU3k#g!zk6+WRjJ)iyFN5D|4M!v=G2Zm<@Px$DG$@)+aU)ZH%xFR+b4X6 z!Ia-0$1W1>j8R->t^ZbJOk*a$FubuKL5@)al;k3wNB$j{cn5gv8}{sXRNY{RE84j+ z2&E{;=0Z~^i+sp+rgOlwZRT5zI+h&|`0gX3fkfN6T<;Nwh_|-i(NjH#b588WfzCf~ zx?|*@cjt>nr3NU>uUj_xq5K}p)Lp=WIQZLrnef?D?Z2xKD_ul@=d@fGz7Y){)6+hA zh)?@dW#04aw8zA2hB(DObrumks6%MVp*%&wN*Z8LS8G?{mx1Xy@48<%gpr7Kp8j8h zlc^@nR8N)FlI6|$X+G86S6qL+j#mqx0>uVG#x1KLD@CFJQL&{3PNDz0Tr-G zPx%rzAZGrXZFoN4GQ7eZPW2grGm6M6azF!>&4jv2ZzO_AuN!^}6NjoWqX%?NC-3Wh zQTmnRI%hiDu>+)``QHYDO8CwTk!;C zTN4DgE5--%Ljn(PoA|rBF5iue@Gpd3uRT+ZGR5`9QfadBeCwF7)AQI{4AL4(%-+iv>2`FjY2F=jCb1ejiF}4ji&0 zbRG;PvT}NQXaMst!elyivae^*aIO|tt0A0sANI;cPXf#=iaiEfci(cEtzo@+;&Ex7 z#ThV`I0@n3tnI$>^tB88Rh8@dLP{7EMP-}avp@VJc){tfADfjv+9NM@)NHOFOn9so zY^`wg@u_3l#w>xd8vIg=_JRZ9 zOe0?6e9@CzGWXM7D>iBsoSF&8zy9E9;#(fx4)~(`(mo;{s(-dsk?SH2Mw2mN@O$j+ z9FVgzmdmQ~4`~)U2BT+DoXy)B2S|GpTq@J9(kgCWEGYQue(oSHEs@qBi@Q-<#{S?0 zq9yb5K~x%#_GFtg)u4zq$S!D^`S2}q=ukzvkyp1Rg!Cw;&)Aay!kd7bW9ilSSX4_a zkY7{#Bj!S{ndiWIV)=o{p5Paoq}wPUUarKP3r7o`8|=bT-whcZ%v@Lk2*%*{Vi5x=RW&n$&&2N~&lFZ%JQ|9e>(6OE}*@`#5_ujQ( z{(WdcUfu`45Bp?ZEo}2W9FjO1dwvcZ4np~9>Sc3VmJJDxhHy}MAj(4*g@uLPGyi3O zt&+}?o1hHl2i+* zJ9+jg&8H2#5?x8hPLuD#=M%@gnH>7El5#AV=v!czd}XE|6eF%O4&G-K;u<&Zqjl1y zD|x<#L41vw8a@YK8GWZ}ZUCCE+17%pqk0b%jWxB#2aS1O^7-ICjIr~Sc8h_s&O1Bw z6THTg&VtktKb`?%MAEGc47Q6LKNWn(T!^+u)4!GHi+}Jz@ZWw6>pCL@0Seom#Oy7C zJJR0|Rkz5K$6r`~IX#`zF?__7^bD7p^@}5DdBwnA2t0W3q)Tj5vADJlRkB{)O>?Pg zFiY1pNoLN|yzdb+lw_Nw^Q_mx>1x^6wpf$QED*bcCBD^DDn(Hx2m zHwuhX|2kHNyE|5xT2VSt-2vM!nc_$P3uT9H&$SdccOVj|x$!dh@l+oaBg$uHCn?y= z{hIL2*;}c+uF7M!0}$tXrS*Ef8a4N%)OPCn0dzW>cF_%AGO^ibJ^w&Cb`Q#LkL2r%@0A-}`r`DY`nmduE z@Mc}jj~C2ux?ORgqsWD2F^Y5iYi4`yd(ZKuZ?6IIe+S!47zV22g>MpwZ)rjCd>safNi=r+L>TNIhsu^DLs=>eUi0S#l5Ae)8qlKv&oQZ2P zre_PGIu<3gxnMDE1??S2eMi`v6d%-M?WHaHwDi-t>rBf!c*Ni%9c}mzZ?;)y{Wy)W zczFB~Y?GCLI%vvhvVV=3x+I7*kN9LJ{wm!Q5Dk9Bm`InB`tjv|#j?6=h~3SKA9dt# z-W|?<{!wLD6nTaHYgtC;P`a6;!;ebp)z|yFe*>~_WTeQ!lFZ$MW1bH-kacVU`+KGv zKp>DC#yQ%GyfeAFl0w&_gAT~;IYTSyyoRl>Urd2-Pl-wzxxpS{H-Ug~Ix+%A-<%=m zBNk%%yuHHKCtoQKp*n@7w?B&?pQ7EK%qm*-eHpfW%aV+!B2g1%(HNwG)d3{Aa+6127J@TF?t*3z)@BtRB%3Yen}$jnH#4_#1^g$&I$T zZ=(c-%iJ?e zC0TP9=drZ=xUsMZ&S}-O86Yc7cChVwXYn$%$(~ zAL}v=joHfQHxGkHhwISv+1A#er1f4rAi5&F(nZ-BJU0QcdtDiC^T54Z_uKW}1EvqG z6h=Z+0a@)zfH-aimETxIfEvDQnmDp5VyOCj9V1$5aOOO(I3@I8Z41T7@lyDZm#1WG z0Igxg(a=p+Pk~_lHY2Q-)SU#4M{X(qWD8IT%k=gV#(k@FCfY+mMRc|Y5J_$ds)S_U z=yL7>5t?`#7su>8SJ1nc zlau$3k<`mrm@i{<0a7=L^JZWjdgRQ{rPW%w82ZS2Ww8b;*$&kAbyid_s@X3G$j?)&4qh+8 z2(MhyrZu`uEl&%+1(JbturIdWhzuk^+PJ}v`;xiOZPA-F`y(QYg`w7xYcMULUb-lq zAU69Da{?Pc1h;q(M6D0;oT>HKi}(FQA`>hgv}Yem(yJ%diSEYXviIG13~i5v0Z!v_ zg|Ov$?dzJu`0Bes{iUf7QkDyd}~1 zpU5cl3NMdjwLr^?;n;=Aj|_Og(B3{z#ycguLZ|p%Zyy@Ajui0?xn+tHbSj}@BO3$9 zt}|uxKc2{~uR%e=;^nV`D$T32u$0Szfa(eN5i7g&C)Ce}#$IXQBC>7?d#XL)n4!jD z6@bSC7|%B`a=JWq>aQhpTcQ;`XyDhp+}BaF<^|TP^|!l9O?rR%$FlEq z^Gr=ZxTCK#urb+*>?NlADgW>6(e4|an@eMgqDKp-=`P+A4f<@Bg>i(4`uTMJpBDPl z+T&1qh$-%I?2|*P&vSf#7?r5arQTa$411)UKeXgc6E+%x_GX_4*}x< z*`cdM$36?csnBjI+~!E+)55g^)h~HBSY~FA&%ToE@AnIy{`)9AyG0&Htbtp)V3q!2 z7aO+)y{&Hd;;oPT&6QTS4FVIxqqh2@D~lTX)AiipaC&uK1{CT8Ks*;Ff36t|aVOgI zuSKz+t_KR)C;~N%TyI zIbkhvV&{YW``3wGct$244^YoI_3FENc3nC5P;!#{mgU&Nvyb&?&=&g-mELX*<{O)M z#P9NkY@pq-cSm4l6OLhfTwDNgPMj4+OPGAk_{b3MiANZ3_J(D8|J0{}PadHb(zY0~ zu#UYM&h^bYjTvqa=oU(SWdC@qnwTziwyBj>^Xb?8Or!NHg%k>7l_7@2zP!x@wQ1*?TACsj(o( z$XWal$6|I^&yFyU;MeTY-)8^1wsH-?$Lt(#J&I|hPS_%f8_x%QInF2h>noIEP+}&R)Cj-;dIt) zzuWSBr7oWnZM51ShhC#;F~n>K##K9SrDIc}H}vX$8MymZ z2+3~JMJf5v@#gQ}nXocnHk*wcqfIPLmQwiq!+%_7U2HyU4oTgsCaEj5%;6tGh_)2d zP=Y%SLX02WTzsD{AiEUAMxuZ_Z=dT4&3K2(+IF^2%JlH5D!Zx!GN!VB=)bR0^3Zs{ zs41Jdv48G0rj~x=_=}WB+N;CgT`-S=+R%og*x9x>h^00+QSU)ZPMYZqX1YKY6cdXH z_eq?2D4vYV;qIJuN1mz=Qlx|qnPDJgr@kYFTMTbRXz~>n;}ChI4t4yS>~ucZ&P(yJ z1(CU-O*$&~=xGbo1;wL9nc@*y0UaEd71D8hy~In)1%w7&5~+)wQn z!KGLvC<|I~>vBw>R$`4va+H@ON!_WLbel`@R!!537izmg00!@^I}t@@Tf~zh21Ivk zIT*eb4r^_Us9Y%A}_0r%>|Ej zo6XOEuvI9!*){NA^__dwnjDRSAH}z?Pd9XWBghAG&s+y&tHHjmtBYRCA%81@78g4x zJ<~M=OyDDM*E*@vi)zxbTW%v_z;#?+@lL1WYL$}vz=F?}tGiYmH32pn25``L>H`*| z624da&v7}etBYs<{FtHuhMItwWxV!sD{NDfLf?UL_L_H65nZF;+bE|uL-k_f=R-3} ziTl>9kAOthjX?v2-k7bGr%s~AU@tl!9;T&^T-(>BJGjp&nmdMb5B?F1D(vs%VDla` z;x0gNXMTZ7UI{uLLDjEp0SiUNtz8A3=rNU1XQIE3hn#8aU_C!&>|1tbp?4@kLl-cV9~%b8BH%GI8*#IC&>;@`OJ zV|b`y(3cAoiSxo-y~m%b78CWbiixi=J8~P}+0BFrr#SL)S!sXX;hiMvRE(K# ztKioak)=AJvqIB~bm{jj4N$$ew4_zDzjiEXlTt0FE z$i_$Mhl-1^?`*tZP#~D_AC#=(OQC5lHttL`U0V??ERlEP1e*s64yu1x)wLAAlX0%| zz|oh9OA6uPR2r5s=Xxd(`MQ|5P=3U_EX~x!Y$PpZ78|GW+xCx1_>Q0kXYK5b-VRvp z@nqTE!W72?-opb09tE+Xq2DM}3gTGRXgjrwSZQkykXBNXr#(Mm86M@=PX6Y^Q{AUp zfSP>^v}wir6(_MiigCd`g6^oELspSJm5T8eLfdGawO0Py3Hx%-q0HVO?t=~sg8#W- zp_=ySWL`!e-iS<;E-T9Hh`%BFrxQIbTOBeQULKl@&Bu-zz}Ng3-YvFJHlN$(aa*9D zb+k!-99k}Q7Is(qULzU1Q0R)?TIZ$W)Y)HW4$UY^@QNoRn;YW^$Naly8k~D8PFKQ(EeD{wF8Qh+s90{c zl^lGma3Hwfk+T6C4nr5UX1zVLBktnrWgDoSPS}NJm>qJx!M`GkijJEo2o( zvkpv^ibz1vNo(ygBH}{LSg!Yb(ea6wEw9a~CO48vESV~xf5o$=F0c+wQ~fn2YaB2I zm#%2UXBGE1y1ShuL}l-YrEj|1UrwZuh2-oM#8f~hmJJZii!?d2>UoWR9|C@VHeJq> z_$BcnTmrW)s-08LG|0^f=UVwRtS)S1-bJkS94aWp2$&*x(AMx)z_()2#q@zbiHkQ} zHw!j8=lke{C1~+^*65EZb=<@wdD`Vh7HOsQByzRpq%-w2boE)FB)rOw)hI?^WJcFH zYUA%}qRHuF?&Vzg2d&Qqg+9Y(x3)Gwx9}_+I-7&@yIiO9h zMogxv2;fY5gB;c9U}$52edF1#jb}c|XYolM1k*)x)I`=%9U2ps*li|y@JR64YbQ7J zn!b_SNXFNTR^^R3y}wQuLI)WBO#$M_y9!a*vtCX9J2kiy9S*SreiWY9oplkTuSHe8 zNO!c|QDNItwN_dPu7A4+y;>5$;yS4wfJ=(Iw4Raceb6d$^rvnZ^71ugR(}w8Sbl(3 zhgiHX9(j}=yRrBNW%;czx2E`?zZP;z;b!_yO(&L5!WTon@nWIFI~0MKTF?m187Mi^ zB^!PGgEEa3>zDV~)P*q|llkZ*{D&Kn;xlt&+mrK);3LYUFRV!M5ZHRy+%#bN)nq&(HTGXsi*2{*G$M!th}rgH$ZG){85 zp$9E&&39B8%&XgjtLn!y-@&4htC=6gEYU0%5qD;EqxaQG``UAH?dCpVO;y2Rm*$z& zMNx9z3kEWxoA<_s4%oAs06oL*uO!4e%=eg0{eKA7*_o^L6?y`MaP<2U8sf&;+EBGh znorLO!J*-+|L`-_h3wDP#YQ5Yu(xRK!5FHJb{VkQUxaBJdLah`q%&a!osgDJKfLCT zrG`$M!Uk{cK*kBn(}w!~T0*>D@ZrBl3P6Nr?+*(_wPVq_cq7xi#z(^m<~1&Wg^^(! zq1eGSyC+bW>phJ1k~`r%aM{INZkoL8?IJv!p|NL>xLv41QW2n*8pqyr9z3Tmcuy^( z{ncbS7ddAX0sYG1#5EDYMU2Z~grWLM8#G-B*&M_)bNamydc(=W-Ry$0nRb(1h>6Rc zu`XU-L#z0Kg(wX^!hV2n*9a} z>pU>?tb)kwxP{QyO;-&E->DsmvyD3wz?oI^sxMC3c*cn9d8HW5dp-VJM~VSz3`y%J zuEBMzZLR~Zq|d+BLHS!v*S1p2Qc_Uo!}KwYv$TpqE$K zuL6JwqRS6D-LI>6fjYWLc(#FjuW0BUx{di+pd`bVE_ibqZ+tDHGHRl^Dp42Nt}d*q zkEac=-eA66RoHyGcTGY(8}F1pCMC77fBh;0gb5dM+}PsZ>h#a*i2fIRyrI=ecFRd@ zOQ@g^l82bw6XYYxmn(wz|Di`x&>gtszg?J56yQ(pJ?+XNi9m1n)w?&2?$L7v`ggeV ztl&|RgF~r%*Pb1F0`!wm$DAP+R{X8eLqM$?;oj2%XQ}tOUV6TgPU7fDtq4UuN*mEk zQ5UFI_>Rt9KlWWuS0+LEubRovgf^#LhqeK-QuYHwLYN@bzH_qs5Op0$gDd~ETW~8K zPp?rsu*M#zmOpnkh}ZOc1Y#-{M3}&Yo5(tET;KbsYPMKCXr5B|^&}^4>YxCn?%q_K z5Hm=&lTN4oEvp@;lznv2p|z^{IrQ(avS!nXrUeTlhi>BWjpfp(ajXs65Ej8LR}@Xm z=cAor&b@!95JyXozug^&&o3m+Zzd@VMEdf5V@%lAai-NdHJ3Fw8@~1z&E--~{k$J# zMmCaO0}W3gOvAs-lkU$4C}f0*&z^23tGH@S(X>!*PovGgE1(2dY3K*w*Kf}_Oc90Jf&U6ZDN)JzIYO{ zmqH2tX46><$yRdo7^?FwDa@*qs$5xZoIzQG>BReYjA`uPGcQIo1lQM_gUuIkT0o{4 z&&Iy6E`yhKys7toO+GTDLU6BFnU?5#p}ydOX|V2$nK|!-VGR{*njyQ8yuP}uX0y8J zte1+)~-tLJq8N@t9*j(tVmXmm2s}kyhT#_ww`*-~Q0FcBM1m%YO>> zaDxUqR@>>3j7ugzrOK^C{WlBAAD5`3d};rLs8Fc$E6fYPHH<$ zhi=QvN6g0b^+TW=MA68eJHm(Q0;9zwW#x6YyZAR3nJ~i*f8# zLV4gT*hyr2_U|@2RImA+lPM|bU8f=YaanQGU7DAN3b}$PvZ-r&|$b;-7Q=us_5!htm$uAyFI+iJQLTZ;^u|>jOYNC9A6&P6n6wr7bZ&k zrUjp)gu=Jb38n@TcwvFgo0?1wmS4-DWBiE>+#a@}DKxYP3q;TL?a#-!`1&!)b^v|~ z;dhe_f1E9E&zM3%UiIV#pYAki2ZGJe+*niOR2+aS7V zj3VfZ&~%g%HFnGoh&lurDYHH9Q|}r&Hp0SujkSjDiAM>{SYP%aH5MF+tOTW ziodN!oE80)RQ^^#P@lZwUV{<6>^ttqQNKzc14UYNs?S8jQ}-BoGnpO7pB?1-5T!IV zHO1k?<>fs_#-_8H?62>Jkq5Hei9skf5bTD55jRtw`M&BNzSF+EyliA@%I>(HEPwo+ z?VL+&SL?@*0dx;K#GS%lyqKy#2L%Be!z**f8z>)c1Mjsou_jq(IR`3sl}}~b2qR1l z3LE5^fWYF!@2XpiY6#>ZPxYp+;AaN}$B#P?0tr`oreiXETVB+AF$$Nd&MJbR_Vh4r z5vmbJZNWF+6_>$>*z;z|$|(gHd8Q%A=4f&3tcQ!m3UYJ+jL`GB&VKAa{O2e2kN&ix zkI}Rst59LZw)a)kJZG0k+HFD=W?j&Io8Dhzh#t#$SYtb58VZ3MsoXVf^!yE&XK|}6 zOJO%zq@?OX*cQfwb>#?-u=gETjI&uSN;)UZTj`pk44$W1!*lPg-tgeEs; z9)QfG-v!KjF0*Dyz^6BigO-zD1CSSd<8)_qpX;`uz33u5k79LFB;vKiwo*uxa7r!T>hjLbM`^+p@yXGLXGS!0rD+mhLW6iiNG}m_0xz(*)#j z_0!sNhe5G6q6go)a{7>p>#(Ygc6L*0)(rP~*~OmFpuLtQ?@jl+jD=n6ST^#yN#Aa% z$sPSjh#j%A2@Kuu@)iaT)7u?~0a4(a%gv0#B=f&i)m_g47Kx4wa<#H(9cUNHdnG!O z4h3A|OLpYSI0yMF& zugdaS`^SLuvU^A5bPF>N$sk~N+nAqpkMCMx2b4}cfN`LGCaMT{mS7S)UufoEsN~ax zY&lAt328`iHFecSF2)*ss;Q)2mJWaL%fK%Yp;rUQln zOJr4sah^aR(D}Wir<0dg-DTnS5y2kG@;`TOazXvDfH5B{ksGY~exlRq$oA(2=n38! zP)Cl?Jh(Jj-L4}Z+`2B$nx@Q4P^Yywh@TT$gy?hl%EIeJW-R??5-_CVVF%mCVE;9P zBOTUsQR|65SkD=BE+_%T3l@^$c%jerYuCya>(~>`2s8hMR?M8{?_H$=2J!mDoeS8A z3Fzbe!qv@=d;^W?y0T35Ol7iN%loDC=vwdlDiXcSD>g-?pSRIJe1)erm)uuT*zCCc zGV?8#Z@0VxB=$T8#J~Hcxzen*IWDJivEVM9o2tPby*j87rTiDC zRx8eHK8q63*Bs5Qp{@&PFe-p_&VVe|gyh|#$4nr?c19)*+_4z>x&5-xk@_%YwU{14 zQ!4gpG*4ueiaUpMIm!Bi^?ow!P3AsJ=m;MhUASg+*hmu0Z$Pr1o(KRulH;RzU zMmy{BNG)ug=84}6c)efeaNc)_(J6qK6_U@mtl6u@ z6p#XWTykIeDh)&C;tgqD!>60@>TipW#Fz1cVf>dq7mjcI7P%CTADF|$XoC)x?=HyC z7ZBGBT2d)<5|0JZohi;W?kEeD3uS!Sfhq88r{7>uaFA|skLb~gNV&G`awG!L!6Iq8 z1vI?@8p8g>tJA~u!F1iY43nMPF&Ker`c++FBMcb&@{zs;VT+RB5t9YED{7uNc}dkQ z_xThW2g5pp*YW}xDkNdy!?I)5IHRnwpN?O^=Fb}aG?drj`U>YG2~dfurugh>vz4eQt^*u_Qq3#r@;x=9h z7yK()((+KN`oF|oX1#$CPJ27?Ps*g652=@oJWhql9vE@3&FWZc`fOx$8ae-hPUYop zMiD{5E^qj$nQ_mNm*@m9aR*|c8 zF5s5KH+5Z1unf*#`puqtuhjG<5B^`CZ@R}odt}r@7^m|=tJt*~)$a;KaBKI_HcYlj z`MOoacU(SdDhLgdd#bp(fB4t=0zL^n@(1$J)b;SQ98)E-M+q)Pe|Gp>fnIqy_^L4e z4q$ULvHtkErLp)V77LFU<{QWE)!Pyi(0LB_C6eHz4=VM>tmJRQIhNZ=A- z$qUu|+iUsc{B?8rKafj`gC|QY8n?68JyEe7Q5{4Atr5bugt#;RPS#0L*@9;ipKi1vG-&i%1WDp>F7RP^P{dM&TqL_P3KxD zPOFu-EMm;B$m}nLnhgW>d{bu2M9lHq-k5T@CWrrpBL{YK}!oTYFSg{$3bPH=vEzLzVb z!Tp3RC{75RsSc;#6^_~smAO}A!*s;u4!r&}kCA2F+`;R5q2@=vK8><~X;F{8Y>`NG z$?(2b-XX5Jfn|JcQEZ^gBqi(Z&U;mm@AKD*`+J^}fQmE;L?8XI4w$gt6R~6J*OwcZF|CS8E3MHhj3Rkfa1iqpZT@{H}x}$7(=!lBvGgTj|D{K z@ni{PE0nD<_MpT-flbQJXs1NIOZ>Mqn_U)(HlOSVD=Nz-KjDjgTA7Vu#2L*$BxE6N zo@}HXA_D{YMGXZ7Rp=JpBDh<$WuzFRH2qra1=CHIJehd0bTXFhR!(V}?n`lEsj3IP zH-4u#r2FB))sp67g?F!&T_t+X7!y`u{K=kaEMl45AogLpf7lW#>Cv`?J-Hn7M8vmE zF*T)!`DgCp^4w4FtvDa=CHjWCPfJMB`bu@77gO%;cD^^NX`RBl4rtxDNNrIs+Nr+T zQkfSpzV!ZapaX9w@oY@l@tkdgS50OXo+`-!G9T*eH5J0YBbCv$ASVW9<;1*nvx81$ z@YA4SBb~c0#hD9ZN47QA7j1oR8AuO0M_IGhgwzxYUPjOQnW*D3fTl7r4{BRpdnCSP zA$iS8CcI^e(}4>gzwnb3{?S-WSRH*QZZC_D-FjYH{562^{w*0%>-l{CF(K3IqG>tM zy!KCovw}7lKd||}JRc$Yg+=h-Y=L?!_Gc|_k05uzv#GI1g~G;e;7yV?myO2{NyI3L z|6A4Xi9Qu@UQeRU!KA-Sckf>5?yAGS zV#G3>vC3FaRac^_u&pfR8t;`#I${0YczP{ZOp;%WF*lca2!EQg=5q(XUAjTPI$gE%$2g}(qO4B#r`n?_lGL|@hBlsPJ-v(VU07u3 z4$`5jP{L6=?-{J6FvpelcLHS{mTI3H_%9*brmOhw1IT!iZ<2tMBbi|D#;tXtoM=Pd zh#SphHkq#%d8{-KlnTv-VmaI7pZ-%3DDTPJG8L!wLu{=-RUxW5{C*I45V199Ue{hfPVHy3@a!YX_seJCBqNcEaI zf^hMcLc^b}uYkMRYpoLJ#4)q5NB(d^#z$)Si?6l~oIO2#n{3nrHUHB!`fJ5dq?Lx^ z?CXWdS9jipM@7+YC%+Jtf9B$-LL#p_`w7UU+ichP!bHsRQ{N-*F@_;wQQZT7zHxju z%5@_S*1MMl6@nF{wBLL;DwBQ`BtyX_drsKr%Z=?WDdM4A&|xI8+BA{@#&!ED`_rZC*lZUhTj4}_;1b2fG_w+19D5pX#QMmyi zfmBWQL<;k_mEO79#!<<#xm)+V1U9nSRLFX7G&Ei277k6W0vS9=h6UZ&8TWGTsvX22 z>CeFdUTD*tB~DKlW^<(gMxXy(XdKl`Lh>#VV8Foy=a;MN_}1~P$!8l8^D)}<+uIB7 z9?W>R0sVpeZZX52tNSP92<28^`7&G5<1pwRMlDo-X{7JeP@E9owz>Iok6@4>Yn10A z#lS_Ycf9(*8Z7^%*_u&C-{@?x9i4)iQ!Eb94lEY2c1C6dd zWlU5WuV0kJToIhjJR|9%A-o{nTu97whFs*w5~lX5^!DbrX6L4i3GlaLOQ+pW9bVks z_B9Kv{`*9#?zG@}{wcRUV*HX{XMfE|4Vky*W1?_ib@CZ6p%P_#HYo27#c%$h{LiSd z8u|Pf`PQfwPU`kJiBbwRnfWHdQ}z!&{;H(@fucUBlkS*O_iwjRXb# z{7Wa?Z@UTIjdUDSYe)`eNGk?o9PJ4gaG={-urd z<$K4jSw4x4(B^Ij$~*xHZEjU6@wfdsS$W&GId9Og8h8#gbH>y|H;!XkN9AUbTEVSb zTq{BLY%X_vsREk%03hi`TANtMSxJ^st>U)JfG{=k3a18oNGVb3@PhF41b6+1wa*X4 z(1C|lS98J0HC;U$ z`UG-K*lS*WNocN`E})0SN%SCMbciXxG(0Y*)esa69`uhHFq2E>;{D}(?7~%!Fl*)?-oQAgqhf~h#0EaPe50NiYdOvqyJ|doc3_9m^p#+_nyiz^o6Opvm z>6P^D^}@xxe}ZuFsqfFjSJ&lGvxj`3!rX-qRr|&PRHD$mFy!@OUxkiyG;Vd^&4P3_ zq8Zh1SZQ9_5j$*HH*lq0cXIh1E?{-ab{t`rE@*@A9W&n;JtrzQM}9*7ejZAInnA>_ z?atKz4|EKA$T90O|E8*7S41je8m^Mp_ZrkMS%;oe} z2kpr66wdxB>4dOqwUe|(2&MWYo*41Tq{OZ!1ILJZiiQ8)vn1`d2Qxl#W2SNc<6PANjc2&AdVAoo@bX@GU4^) zF})T+t38%{NpvWtu=H7sG3fwi*m@6Mlh(TVYv@*icF<{pkIR?1S3tcuK-eGta=-Z{ z4Rsqg`@F8P@RGhIC>d*N88aLsItLUOG-5<;g-YV*AvS}Xr<_0Ok(q}AnWobfh%IXsm1RbVhMIuGv*poqW6pR{O~oAO*F#OjM&; z@dwRRz*`W-FGNHB9V=IwD(dQGAB0Ol;#p2~RZ(s&N!BW#@wzyE3N3h#ue9IY6Yyg2 zMeM*Z?9Q5n&~W8in%5w$3%pp>CC)Lvt>Kr$C$bzfWbF}(U*CiA!6lMuGNacPnpQ90 zTXC_%Z6asqwIBB>C}TVen!G&b-c;o!zMH95;RiUNOP9-G)`#qoUw*`mThnj%GSkmb z)iT4i=b1x>3t8U^ApjOKPqqawZpQ2!+;PFUBP4{v>#CWEoQ`8`uH;1%z7tr<)yG_Y z-xU9I9iYkBZQVJ3Yj1%lDz*pDS$y-_!~CV**!C_ZPNVvz@GZ{ER4(q{B|H5=i?CHM zx)eC%4D3QzA9+W30%4dR;XMw`KWuodi(ENhoBM_kB!8D(^ez$(E%!H%hxU1!G_o{p zC4U)UOwIaX{I?|VS}V)R{2Z&fJB}m-n)9`Qi8D%Q=v@6tI>>6yI}Qxch5Yh%2+6)} zVf9xiCEU#q;iaG8O3i-0npgZ`Tu)p&z0fkOTu4H&r{zQ}D~X`Sp(DxgoP~jJGHFAH z^BpWZ_D;euS(TTnc|dke%UW2Sbf`F9&G4o&vuudcWEH&{g7L22**&JhZ6hZ6JKjyy zco5YXRuLm}*p@^JGfC2>#(jmBswIP4rf+P&oSoa`cU+=GO3<0HC&`U?Sc_yu!_U5f z2g1uJI4*2Jc=;$s=sJ5l6uyDICGxO2J!-!B?V6xK{bESc!Z!=iQ+Yia1hMi~d;*s! zQ7RJn_uEIBF(v?JP6wl9TWZ!diS*Rq5j(($cMTH)6{{w@xtHqt@!ou{@dS?DaN{0j ziN7q>I*;0S6i`vB=7Wz@zO8Gg7^m{(p?0qg3T@o19oXJG6_s*SUe<>jfgE@ncMiQU z+t@2ztj83W+jXy>{5YgG>W&V^1RXX(Ou^-`o`galh+E58V>7*E;Gx&=Ff*=&km)G@ zG2HJ5eCniEVTa3h%(7W-$3IoZz%Pi{V9lu5+2>lK(d|1qO3b8m@p>vGlKS(wsP}|} z;L~JH;JBe9IPB13$khYfD;7F0M+|eLrcXK6j+hFFRFnYoGSDL$`Y(U$vf`5%E;{gvC4_7PTX@!+Yq z!}ki|!^lkF*~cNU zKhr~!+|;FR5Tz^@_zDsDlQosXc2U^?Gv9RLYX9E;8Bq1JC12-OC7F`i2ju5C zs4*P>Hoeo{>E>&neMLUV^?yWb z|A>dC_QVc6e-UWE8-;_BW?hE3j#n}S7x5g;+zfj78Q;zrzqt67qGz|SJiF~W7Dmg< z?mpX#ztSN~_ADHzH3VUf-u+byOC_Q%u8XS#toN=F(9?l0b10ls3-v^9rCODKXGUN4 z3*LIB$d^WHH_750{d^1?zbxsy7(p4~Ywwl<$*JIK z?lGP~Q7FCOcm{k@c(LjAwogRMsKDweYk3O#2+q zm6w(@$Oia*4`0<=B!(NwZW)9dWn+=&10Mwp30K%%QG#hUhy@IYP+zY1dpmRcO<|rxbGaxRDsFm>N2J?OBBR@r=c5AVy@B@Gb11_NUcj+-y~#NynjRRem%ARF;!NJ@R~mJrt`HZsh6eztVGbZJ8|dP} z)@J$XfHS_9!RL*yIf|@EzF}G>!tej_bnfv?_kY~iL0u_v6$#PwA(i87KF!#HBw@2nu?=&$zy0pVegEyR`F_6N z&-?ItJzpgOnJjt1U+YvE)jAZp-!rAG*#u>e969!&LUqmbAk*l8wB_U^diz`#zRHY$GunJy#=NzXDpMf;)VYelRn|KNsCVjuv3j)Rf}mu3 z!6mx%`B;h9|GAx2X*APjrytThZZDx=2DaH(QuGjEGoyKYpw3IWmulUneu}A+Z7b#i z1%O`#_1SwE!KU)b%4NT1ve{lV>g$3~LQY`eC}Sotb}Y0Yv^jST?9b`>`P+DZ^s`N; zYz4_vbZqiAQlro8C|g+QVzfRjUsbe8fl0LrPa7vUpP1g$eY`Z!_1d=Dc<9HzOz{zj zR&LXi;fn=Y+Bcmv+4PUm$A%9GG_5|%e-|z+_;toTD2C}UI#PWj$}Q=?gRU_uPa^>Z z6i(sv2zMx|^H%C({)sB%m6b2lVwQ3k-D=!$T#OsRj_W@g z{!`U}(NSgM&G^}n?ChLfE*bM7K(dY}pU^Vc;o zPNt6`hU>Z;qIVjtneK?4;vHdU(#>d}9_HA>$Ucp{zz;{R%P-U0-=Vzu>T>ZYKrezR>Q*KorWm-+4O?(D}iP;uaT3il} zJ-jRVaYBc+A@q7u0gnu?xXX?5pQRv5r;;=!dYX~Psp7$nBiF+0$LV%8R3gvo(G^4a zM)Rya1*ea%Z_r9&B$7YhPm2Ni@VvzFmfj5H2CkfpFZX$GUub>?QKtG_JXj5O27e@cUV!oVQ6~e!CZEf4|*Z0TH*q|pSr7} zbk_a@)EC;_cRJ*czcwAyZtbELy^rqy%KB4mNJA@>c2{2u5D3(JoaT79<=mA+^S7>6 zOqE|aSI|h>Z?_V2(4qq?kF@M9F&tT(sYPsy5(}R!>54zJ5Fk+wo7Gea@2pC_5+T#xEF-`bZojcXdb{xoDqZ8m zu^$6kI=IyK%MucwAIY4tpyXx7?Qw~9#5&f-{(P2=il1QjgQ10GCpbUDMonVJhy>>M z+==?Tqo#4pwdhG0dADj)UumYB=!sg>SVer_P}^Ef&PGaG;P~X4Zuf@Jw4PaE3UedC zLu4C)9k%$pz5-WbA>5+-p#be@4vpMtc!>@(8Oyh-5NR=JxrlP`P)BMX^%32?Kso9%eF^S;MEFUOK8& zQmL9EC1J@}ahE@Loiq)2pCFp(zWKKR2fj@CPP%RQOkS_BFmGEwPI?{x!{4+|})C(lWCAxC-&F#fQnd-4&RNB1`k3ki6~| zm`#h1Np4;I z52N0Dl;Vi_T!6CpFIPA~u@oZa?yQktAm*V8tk{<~&E4_dahU-CSozhf7fM>>uF|PD)RBP$B+i$tJ^po56WTj}nPHmTVi6^uT;#JT9f1=iQ{*}rbRKu~o zS(`=B{GBBLzoaP;H_&JUD~|jPac?=dDCwC> z{BirkOF^LC`=#4X!fk@?7+xVbCc%=k86+@+PbWomIF=Q60Gx@&=|2;uT1LG1!&Br;nRLulEUOFH2yUJqaq<@97CtK2 z3%^n6ekpzp!Yp8va*SZ>)@9fFcM>wj{MBN9z`6bLdSI6ZgfQ^4cT!X-XZI8ifrh6i zCl3Z~Pfe6rIX~jUko57COs57>4GH*l%Bz3pK!Qs>q`P{D(sFw5Z9v6T0lGyntp$xH z;_a(QWix#){USv7iBiKQ=<4s%0l!9ieXo0`G5N90Jp(9o@*FXfe&(;ekz=Htxp*aE z*Qck2t?#a@8}o?&iQU4S;%K6sX^0@zsM%@z=+p2#Jqu;y($32Lcb<6l+nypU;HWt> z9!piC9BgBZcjlU#`p;V}&>6o;(ZEQeM*iii2Xj`Y)p7{YzjlEjlNfp<7B+@z=CHf< zV2l<)IWUi)WhdJ}op3IU-4#FmH#bsA6$`_es&$Y<8m!YLZ*8KwB5@{-w+Q}y&I|1p z9k@1Vcr;n-zab^1490wCu(5wstYM&tbq;2!;NjK>S9H;+#R{q6f`H)#YJro@mqEgf zQvXjqp>6QOfoXftj)Fo8+L68~NHDRJnmb3iThu3zr}wBp;@_qQ84DLU%0h+yQ{&#C zwm=0#lg;LlZo63vfxT?yMEp!L&+c`D2452}gt*p`GJ2W~qPq9?>($a0=4qqcvc2-A zd&9dnluO=EOxA^<))okf#XVB8-o|Y(yFzBuFw~|7zqaWiG8%F^Bri#_TjgSK z(&|GUTbtFgGbYfMmWSO$T0^6LPTrfQXAq-;K38YaM7Xyw%ihBWjp*(3@~EHnh5%OA z#yj!rJ%D7GT8$=cXsv7c8jN3+s|+|OICrZ;dy5HLnQ-ED$JHn_-d%bq9%E%iO}^NZ zcH*?mFAG%Wu16};mJ7|umcrx1S}3PE6~WD6V|SPKHTDPR=t%f}f0GQ21DoK4!JCst z!Ur#daCelImBL6Sck4!bXTqGdbJp*U<*Hf|kou*aFPbnXVr&4f_jr{66Qa-Rw2i*z zpa(+N3=S(f*Qml7y^jkS!ER*}4Y95M;gZqoUlTtuS09F}m_$|u*`ah9Rb|9%j*8l5 z)oihnU2#eNsTmqs5Vg$)Kgs6@PD^2zLh4MhXe{Zpd^ z_Zp~%i~A@~2%Dfr(>*ik*psHIeRNIvf%^1bnD|3Yjd1rQgkTyEXLP0GYeM9hLCTWX z*pZd!8ua6t;XS0K%U$4K@86KOFxS-jc=2Alq5x4?|C@1XiH=8jV;aMQ$&vV#w?NF#jG6*uW;c43jW}D!JS@PbQDwYE=E5{jaYPNbE$%3-RU;} zaRD%BiL*QX7m$R0*AJe<=Md>#<2WL6`eQOuFascO%z8ZuDkiQ^Atz@xZS4E$HKVv* z?$ZrwIP?$rq6v+N=+)Suv~QMJvUb?hzH9JM1QI;&zF?e>0ET(AKa843XP?`=Mmy7i zDS_`sh}U=%&7}t4Ky3&sh0fgQFzk{SeIoe^;FE}_l1vesBHj)TwdzN<@kpr1S&Ho> z+B;;7?M%%vf&wN6dTLoUQZ$mY(QCyK()vSI#Ouf{Yv9LezGAP1UYW9u&}*B@6};dt z)K94iE;xKEo^bi&ce9%?^-obKPcAl>qkE__JydUK4h$bi+Wu2RIAAhw?MJ8>e2yO^ z;)1A3>B$WKdu*0%MeKhSvNs(miO9;`Z?|7gN-q&n83Vf?mAzDZS{rFjZjW*~Rtt&H zfF4EF^&%dQh|ieioQoN04?^yy8Ce9a58^& zJYWP(t%U%RK<*9JC|)_r4|k`(XyUhMKs=RK9fRg_-dJB1$vUc?m+lyWN})1(?s4lG z<$9cLhuO+1(4%adQK)#2(&-#A-ire{Te^gKd)*A8c~f}|Z$e2A>O2iM$ z0me|&!+W3OgvEeN^)wN&;I$(cmHW7GKS%=Dy|bI4&gOTi=mCQ!k~LF_p1V4c-4aYk z8h!^1^ze$)P7Ad)r8)W?C)R6cnC`v65^`ZVj9QqLj}ERORPjWICHZUC*11FF_Ol9x z`S^v2ka_*N)1+s_AAwtI*3E0x`-6-;Wu&P6Ax&InxydYiys{Y&(IG|YFp{VZP{LDk zSp9-&F5oC&QGS0YfWu}ZI4jVo_CDe*EyT|xv?atbqV z+mEld5r3$P6fgPbaIxOZWwNDbS?o&nbYulpjf6PKzBG4aGO{iJ_2Anhl{}pm_h&_x zfUfx19bPVR&dB@E60!WuO#IgOKma-6(coTlm(cTbA(e45SlzTPxOO^aQGQ9Qpy&(z zp87N;Q6u*9RJ?rXWTX5g0Rp*IhJ=|Y4KWnoEyViXt}rqN$XC9cnT$x*TE4w=BUSsY z{bGr1$7FXOvdSe{R?=*cCOXqoKgtuUdNd{_BG;xQ#p#)oe$lE=lij_p%Ym;kqD?%Z z`25k(G}Nn7D&E7;zp=3~?qBSvbla$A?BF{UD=RBJ9`C2po1AY=zgl%KJUrac;NlD| zZTlzIKm4IGtEk`9Ea%g?o-tP+mnLua_4bXw=tzP2`F#dN?_x!1Ys}}lU$IMo!2~;b z$=}RmD+s7)I}#*dWvacw8vLD6xi;EiRkR0?bv^?C1fbG`#~r@*X> z(iJ0Th8|Om@003Sf~gl~^z1O&?o(21IpSRG93>nL??)}&GW6lMA-gsQJ3|0Xdh~mm z?qQH^JS-R}6HLkXwq^4SuXT`5q|8b)|(yrlLDFAMNkh(#ua~8QWn)Uemd%tt` zbCoq6o(J$A`lOqxD?T+0T*is%9i|^I@KmX{)c+YS!P`$M?O#t7`*8{J?B`^Dk)$Y} z@t&;4u9+qImxp*ijHAZQLKOh~&?wTb>mAhJ^zSsxLzj1la2u~kh9L!dV^j0Bk*qXb zmw2^H#vLzHW-LsrI!oCVQ+;gDi$*W-sMy;didy|Q8+?9R6-0`=)!qXc$2yHH>G4vIa@-xU_BeEgn|Zt-_Wsd8Q}LICjWtVFoAhpMo5D#z zpnGilWk59esbuS^r8m8%7Z2KCzucGwOWVgjBn5DfCQW+xp5j@$x|e{lj===Xk*4qMsZ)TgSI%q#7)H>IY!I*e4-B zn%Xs35}BKu3xgq9DwedA1VA z=IF$R6|4y8N5PM&6$@%{3$HgmBGV{v zv4dF1{n(-_PE*5-%~A;8`5TqvcN9*(j0=c*&2pa6t{ytB;YrZ^@wLTxcIa$;=9dA8 z9nGQF(?r)#W94u5&p;_{a@cqC+ z1xHOL*vRc2G?;SU%PpUlrZw@FR+E4i2Pjni>`)jnEds5%?n0J#g`O)&;QgAznr6R~ z9RPj&J{n5%Y8kAzg6Nvox?wq6Xa1sQFJs!@f(B+TPo=@2OOe$HBT5$8Czqfw^29lp*Kb+Lih~{lO>|s-gJznGX zxMC>o0zMfTMMOfI*1$)Gi{~D+pVb<(|MJp_M55)xJta+`yf;X_u>kC8$BV}H5>E&}}QL31!rGE)k z+q-X+LX~-U(C1n8IL|`)a-OFLL;MM(XM~`TIdIRUw=!zOKMb=r^Y<;U-8%~{^I*p3 zjQB~7MyAfcnLA9SxR1aUX@|z&Z6Bx<%|>Xi+T z!6hN&)+}*_P%nWJauRk>n3kzlmkHqd$~B%+&`j-#fSM#j5A=C%_Fj2_e(6)dTe%_i zh81`I>+@u+9t_7_4jSGdO>IiM!RdPdF>zS8?WvYdD`}G!N0E73q)O0AvrJq{#|xY{ z_u7XFlS`9eg6@xnT-Aa`pb(BMsVo+D96t!CGv)p?d#!2n-OILf#VHTyDVlqe9#fS( zV_;~G`LjEI-~8`Uckayl_`cyf>xuQ1C#$oR=o}dpCdZv=j5$0U+`jg^D9U>P8B$!Q zr}4D22|_-UGo>%e^^RPrtjNxBo8aEeijQ5OxD`Zr|28;l`4`xNdt?}V-aLfFs`sjZ zR^1EJkT_DtrDol@Qk(-fVtWBl8$ju@^O4j|3r3xL4Snr%GR|Fh%Paov_znHI?a#la z?uqALMw6mR(6VW2xfJ-2#*ksIoom~qK;#Cg5+L7~-2Ou5rj&nX$_#EYp*+2$dr~{) z*EBV|%6H}1?LRepNK)5l&^UjwT|^9H1l=!NS#v4a5p6p%+!Ks>Ro|IuH~#AyD;gF* z^?({qNow07msc+uJ*4) zoLF0{!r1E~FEr24OGZ`4BGi3R&4hbx!Vec?mRD+R%BJC|yqISG_fdPXw(RhlRDi*&wQu+66Vc*VtoR5c ziG8!~f??y7id#9>C)Q_uTA05??2*-hhohTLIWdcz6rnB0qngZ|J%{#PS*4y0IG3In zqNidW!O}V7^u?Y35r%)=Bs1yuw7pFXplYfn>ZXp(0w7M@-K(NEm+Bpt^#9c(MGcd8 zF7ZCjPi~{02s(yKF+mwu@C>3K42BalU!7`JIPaFWxp8x@+He&2cA9!-E}cl)WwM9F zxjY0$dJoE=z)_)n)DC$7%njH6b6tOaM7fzpc@O<}0@kQF39&QRxEtr{b^hZScN_EQ z(&rY%Pbg#1UsD~S*PHd&*U7vIQ6qsEW`6svhDm>+CSnXlSro_Yt**$@5v`a_*wGh1 z7KR_Ps}`Z~>0N4`!dn|196$=4pPp=j$M6TE%OpbIsy+gY+5kULVofzLuhu(0;=uDk zWKNB|={;AFgrEq~7|8nibx*;Y*9{RTRkF$cBu?2s7Fo7OUVk04R_At{C{z%9J0P9r zw7bRDE-UIPsC?P7vqU)Z@W%07gAc>|J6aq_HGx!Ke(bf5R2;c$2)Qh`HqY$KeHk_T zc+TrZrWy+WX?`QcGx;tH#A~)uaEQ8R5t#u3J;%}TOx05!`^|mQn9HO}i zBGTCN-I3w}gwie*p#1Tm9@=|QE9P6kAQ;jAY-8x|lJJ*!w$@R*S+^u+t|}Cl($)5o zmID>CXkAf${3~kkK&W%i5W)xn_9-b?XQWD+fOKP&jL#%F?)L z;J{d&b|SNkDdgCKYcPz!@9A~Y?9B;q+~lhb=H1;3PeeTo=Dk7h@KVQ~I76sz46N#o zo_FPV9u69`p;e;X$TjWD8xWE-=tErZ~n^1wabb zZma`R^x3IEtCs$zXK_FOziw;a)#4ub<%4$GH=i;FzgAj~hCTci!w8tW-MmUcxK(vN zf4MWBZzv*rrL`*|Kha9#oZr7)yeZNcE_wEG_(lm*tYJTJ5R{g%R}#F|jxEk!Qc8Z% zde3eG6k_?)VAZmTS|{c5?(R@1Q`SRspoSI%4jx)$>PT-Jt@D1pQoib8}SEob(*iU~c0J?j(vwXzFM)Wyt zb*XF|V(=o_3=by&N`jvq+630z#l8Kd1A0;k#wsj`-DB^b+^HQ$fji^Y6iW=(8MB)- z3Pd%Be9lli<>vQ;5-A=Bc_qR3==^Ai3eff?^nOG?52Lx1&T?AELj{YGsb*JntM9s+ zu?$Qw+fPVaj)L~c$Ki<8HQUjzRq}f2S<$v*dZyqIRNTD}JhCr+$W1WutQ|KP9__os z^oXDU>$LIQiB({m_1}ub04`NVA|SvvOkR zqv8zGW9Oce;lS$eMH8gruCujF?Nnd)jj|A%=!N_**HA`<{z+q$UZ!&pwl2UMxTas@ zV@Xx2z)e3ne`g3BamgQ0IuC&bb5~+kRuXJ}=$i<}s&eD;P(p@ZHe$FB>%8#sR!3j3 zFqZKzgK9TxHESanXj6H7W3)v;d+S}YHm{l*|L{a+EkM>V{fwtIXiCq;u@U@Sg^{~G3@KEJs&+mS@@e>WB1fyqRDeUGOSw- z;tbnngie!9Pz_X=u8_-Zi{(B8#US+a$7!CqN~&nQGM;Ym6hD-WgPLOdp{Zo25tYrxuvzJXtB~F%ZXH}A; zHh*`%MFv%(laJdeyo|e(Q5ycxPh6dUdBQK)$^YEme#_p%#S_MBsw_fS8GP0SzfhIM5wi59W7a%| z4cW+=Q4%lranYymgPCAA!@WLdnwEW zHw0{T_cQM->7Ni;$o+^QdA2nft8gNSad=1h7q%7a1FnL~p}MbwK4}2|5MSRizk_(I z>fTa#IK_Wr4tu`3VEg;BvJ()9_mWSspRbd|1%1%nPeYrHGANVy30rbh7obN&S2T5z zqi@H3fRhByCZXRRVLN;GYnY)et*F7|US|eg+rWg>3afAliYqxJx@|R+Aw!D@Y4w9N z?yx*D7vf|yh33t=_IwVmelF}drEv>na_L1KJr_ha|7)ZVz3~nRZHf86S8S>b9%c5$NOLoKXJ%=tWtP`{%glW((IRaDz8t|dlGp&sv*D- z`w>BT+dmQ#cLUm<7qj5wzx`N!Fg()keVVe934p0AiQX#7rj~>4ytrj+(dLls2R{-&WfL3~I~2E}v7e!#`livZ)EDbnJ#JAN zGHV3E<5|n*megbR>Io&5HhF-tZ!He{azvi7nMg-o{?u7HNVRkcD}p7`(tKxs`A#6?d+QWn!( z1A4ocNuvRP?Ggy!sKxKbd-C0T$cj>?Kl*w3m~vD6R^o0cI2N;*V<){ zMMY}AgSG2Qozl=J8hH%S^k-s{xXEoH%t@-2i!#2+zCNh*pl5dmhBGzHDR-~j=ZWaj z)URsRwN`+^8|n_a^8kVH!0|J>G;l#jIC-XT32)LV6;qRrm-#}1ThdSG{kx)wGdQ;7 zc$TZ7kQY81MSQ-P6YfgvPVZM zus_tP3CUE|8PmIT4yx7)9X%Ny7_%`{zVQtw4XIw{jsy*#h8e<0^M+5$*1@j|_U!_7 zlhiZ-M$^{KQB~535H*VEISUa=M{tQU+eoY;`QMU23d6XOL~t}c>etW-h$kenbC8fa zl&IqBx=7xIqXZ~R8X$rV3!>H*6akuEZCmGCvz)8v0#jsEn;87&j*zV=2k~n7Po?|( zi;S{t;%HKV2&9>nfA2)`^N_87Zdk-ixBlLoU^-<__07Je)#Lp_ zqi8wFMNk_S_H^NOw;LkWWuF0Mj#5|K#M;J%;rjW-h~SV*msAKQ1Ps|2!;+Jz)~Io| zKIusU(n~^V_eY+H$AFfL}64m1tV*wp0q7-oPajEUabht7?&1E9a#}K&buUQ z1}Nnm;$57L6Jnc19Xe9K&YyS6l4FLS2?02BuEu$Fz+l-~M@2N&P|k=(%d^x5GVxT@ z1G&V2-#b9n8pQ}Fo0*qF2T?y=gO9>bhwte=xi%Ug(9QnJ=y~S1pQW<>NW#t}8-HLP zE!s8`!`6E6WASg(J^ww!U?<`Mp>SWJ$t-_I<@ghWM2D<9M=r*W!A;_rDd{nyUr~p7 z?P^=ufhP!aMX5edE_*U!|B0CS#eV zfktQ}A`dgz{hdqlzyUswH^Wo58=D>*QS1l4A;ExQY%%KpdjHI}zS2q-gSI4UI5|aV zG;F*Piyc=(#;Chk**=9eqdgLWgm~U&zV7jj-YuH8is^duaAtDV z=iMNyz}NL+t1QWnyX@y?jg$kNomo%n_$ki~O@Ii7%XBcpe**k)>m3NeNkm;V%GGf# zc3lR2ZLgOEbOwFi7x;X|!_j;-509o&%Z#JMlGDD-R2juw?9k5#4S`-7DAMh@Ms5<1578*vb% zW|%fz(F`ZpVEQM*N~X!9+9~1TZuR4jh*+s$u$Qev=x# z=@V%&d{5qglmS@zA?jIm<7UjCzy0)+65FEPPX28JK4AATIwuh_q{Xs46}Xi2N+s_W z{{tStU_V7pJF;@BF$)oWH$Jth{U+v~TnxZ5Ho=ec|GIMU(N)orGTh0f#Sbhq~f-^gGU+3QUIL+VV=^5nEVjnEFQp0D6>LgM~YyZ!l zJxHshZ47vs`j{DVVwOF%j?A|R&My$C!4^|*gfH+|sukD>h35LN| zi}I##Of@2Ef&$MgQ3{&^EP`+$rGrQCH24#;(^!RYSg7rQN-Y3r_r;V_;2*H^>&pM& z#IGo=DWBqf)RK+zTc?@MjMLdBVArSoeFB!1_a;lY*#fcTtbW?)-@QXhwsg-GDYxFg zltk*Nu*dLz-MIg--o0qP+WJo-y6~jh;Nm3ZB(W>7UEZ*VTb+F0MiT+9GP{bHPlfR7J`lQF7KlFU9#>W2bzweg=8TCFDczbASU zBLe-~Xl9JI-(5O!V-0xP#eD*jTV$*by@FR?IqmA@C44+wAZc1EQ1-M)hhyK{ahK>& z>^Lxk>tT4WYG*Nj&=R4gpd4}+KGJP*$HqX=0VcEr1rQ82-0sOUx$nr_D} z=gRM-s910sfhYh49I)-p8xcBTjdLy;n{LIN18dArF-kE+_cL~u&jV$BJHF4Y@2!MX=SMn5FYB6HLzwga2 zT6ZOZj`fn^Ry0sM1UD?YiMJkx$rN7nTg~jsX&V-jWyC&<=nL|Ic|tB@r@i~ZKCs0dS=Fz4@}0{kB%Q+ zXE;pd3XAbl7<^&ek@Qhd+G8_tQe{ww?4`5}m)Q%69}nOe{1wq=t#EkNURise8ZMfp z{5SgmzyVmCPWfN>KwWoR9j6`&$<8li1Tfsu{JUW3DeBD$&5~RFCWKeJzM0)b=(DQV0iEr0cSKG@PMUkipR4^^9T3Aw!#AEoZr?tr2x`{Q82uxB_+Q z-qv)A|H2c(%&FX`ZjA?%{;TfJo^zFZ&_q|dWl{$acE+uLHsr-y#?S;YAhlCkx1T07 zKSsU%2c_d$b$*HvPkLsXd#tls$ zpK0(M3x?nf>Jr6Xm_5c#UAS018tq|Qb6ZoMnF&i|mzkP44n#ftAtWD*wqxjBG7O0q znWqUkc0m^d03x=!xE8WGks>o561!Z7{7l~ZQvcHC=K;*K$AY!9RwwmjzFajmQtmDE zx}UGo?5OQt??^m#L8;6wfuQ5dIGu}T%&!!G_4%^6Jn~9yQygWFG;h{d^3#&Nb-1c? zK>sG63-W@M5;Ne+i6|Ty5m$9d*Qeq6M%P}8$zfqJ*hfrmKf55EHxZ=PKv*Y}N1BSd zMjs9w=qt^bLIc9_Q8n0ZP<&0)1ATf_6R$L~MX6Lwl?`H<+QZv6qSPcZMz42b_XM}s z-3GSTKK%MGb5TBOQ|r$t8dFF`U49V5pf$P-ui`m-!%R7-U=aDo=#%-slh!)dP2B!| zhMQdIjdjD#P(G6MzW-|G(G(1 zlif~d)rltaag!_Wn>K`ihYA}zXBhK+0S*p?8pzr}s)&n(vX6>9y!UPcD+T z;ffF&@&Lf+i1wvD@TfC?n;npZC<&{cTaXo~2dzb<;nHNdS1Mk{*CRFg6?-C9>U9M6 zvLND!bbtldrHEY`Bb~gqV8mQOXf4{W=Ch1O^m_g~65w5po%5LUhm}U+Dv_9Su(pFQ zRGDifW`=y1&&GKJHWW^>X!!v^1$Iwn1AKI;Z{_9XOaXW!8G3rep7vjWXA+a{+&#DW zjZ=&W*nR+)&Xcda9L5jj4Nea&kxgq9&?lb^3WFG-eOLLJc$Q|NDXtJdcy@uX|IeE9 zz}BcD7_i*%4bE|#;w zVGEj%NTcAllQ4(_p8x-TS;4y%pn3ucMP@1Kz0yF7``gsc)|S4|)6;icRo&yS zD@EIPC&}p4=umdQozVTU1P~Mb0V<*ifXRt6GFd+;c~a{6(@!OQRv9tz%=O~J?K(i> zV183PT3_j&_Jv!DQtA6ujDN(WCW*}J!hU`KRCv>3MvH0hT6)=HrmFWz=re>JN84ja zD3#nqZttig(~mFcjkpP1Jv^3Yo+6%9ZTf^gm%TmT(ta)*8#6h7*bzTE94BXyN;gdm zrdRak;;B$N%F6}0+?a7}`MGi#%&|PfTrjdWbz%81f>Lz}mzQDbJMS*#<9a%G2^)yy zItZK!=2{L>O`6h#(PhMELosxMpWWywGW$MaedRvH)wOxy&D_|Z4uWCDPaSn(%s013 z9-vz@lDUx?P2>#o$A6mojf+xd&kxfrV6vEt*)=eWnCM;AF`5wW+qEk2)OuB+8KhFh zsocv&k?42T7Ygz0Ksbt%?*0V=P1bGzWFOogQ}s8H_D;y40+)ggapAUYgm!GMl{MfX zAgj+2rk6y%-a2Cb_cds=B4xU0%}9kniQ!R*V)b2xUX$9~$8FKyzTfKthgnW+j!qB% zj}vd1q32%ZTKC{+2B(p2z-4(*Z^^&uwn4VFN6?_B%cttVcqJWVGEYZ@Xw=(+9MRQnGv6AY974LT@kXM6~aZHVlP zKOXIIS9D>C$76`#4ut(bPHtfJv4UG@PLOC^Y! zOH|9wYFbkUy99q&`nN?A^t#wtnbXW`p5EW~tjODbJm{E8X_td%Bs}7jv44<;N-6yc zxA=^kPstooC52rU7I8#hU*Cie94_z9s&gZ!)#dih%)5@L#xR`3P7lOgI@mFw5{zP( zZUn^O3i=90hc7yjBgu)xq@@zh_1RmTputU?UZIGLf&l8ZyMKzn!^e0g%|<mx z;u6o?A>C@Mu*Hm{ObGy-8e4F3!bW5I*c3`tr03{6=k=JqN&}=T<0`IYRKmTZ@RW*| z!cBlr{7dZ5tx$W@D4IMAO=~Rk87Tf8)$Pbau1tBcg+%8XDw>@Wq3tv5aAGp6j>aAH zP=|LaNJWW@wF*vM1wD5k~O^Zs`=3RGe)Ykb&Mt<7;i0&LV{zk?1 z!nY?c0o%U!Uf_PUmg)%I1hoG=r^zt~9XH6T-?Qg^wMsD0*^ zvX<-cRYkgOXUSTnH5D@J$%iVd6bR8#H(3!X0jAmx#T9fjM)iKF8b@y~r1Pyvjz?bk zp0>%Hqr@6JXIFd!9?hh&Gu3=%zIARr0Lg`j9Ue+G2ulScpXr2Al9)$Ax)sBA;F9Q8 z9IZFh`l>kN{b=koRY54k{7Iz`^jskixy5jq0J!io^^@iW#^tUb3p1Qy4ul-`_^R zLBj)=955a&_+OQH_CNw=P}WBe-55>w_nNHJTfhCa2n4}}kvTEUK;dK&q!&9sx>qDl z^IM^&k<272Q^CgWy8x0X3WsVX1)z|3J^*UdYb1V-TlY-b;2CfKHX^&l%Z0D0=GTnc zyP8lIe$6}6x+Dak8mi>!j(up^)9rf;{CtcFaCOl(ZGBg(esq{7{Z)JklzeSl;`Y+) zY^rA6d?a%5i~-0ut>gI}epJYA$s1CS9d}Efk^!&01uYMlgEj4C%Pb{9QWi}`2>U8{ zu|jUUyyOKS<>GC|74p|2q|i+*Uu&R+PZ2Ln#P9{aT5s(G$^?!%!W#TdlfbRwo>_n% zzT1K>e7swAk&(!C!VW-he#lBVsgly=@cx~^ad*;xY{l}(ruc02;@ySqC(v78j%BVC zW2G7$@m_nkJ<{7;zab`Kfajg9J#MY*W|K=DK@*xl7<_W3J z!rMc>PCz{cPLR3TyPX-Uh@{&t?Ff2X0#R0O0>MFVD%pp82n9E3UUDkXUU!nMns&IY zkYSf;nW-ue3|^#BsA4- zmaZeoQn#t9#<@OQQoA|^ykScp585rfk--%M9mvf`fRP&@=${2br@wjj+tH_DMz5JI z{)138(-pK1-XY@)$<0CD@qxXRwHwq?ZBHP?1mPAj38;6i7+NP2Q+8N2Zv>>apt^f0 zXlJoAf0?@&(G|D(;pN7tB|sYiho*tzXjckQd3CRo#gsi%tB&ZJKS8zz+^=?@UvvYA z-m?W-e%y&tec>W^FYtL$EcoJ&Jlsgc`zb5izb;#}+m@M-et9MX{{(ReQ;VVhbdEsj zlgmQy-k*9T^Vn?Vca#G%a=%=T=FZ_#vrO68IgmH@)2G6zMyUk3_y0|}tW>?f%FwK{ zuPmvvo^sICKay!WnUQcvGEf_G00*GE4b-FB-FjOlII*D9^uo;4Q_on{a<%rq;)%Pt2usT{A>C`LvygAS@#2ISVotK@FKO0GcaJa8Bf$_#~7J_}u^6Z%@> z_N!O3RVzKROKCvvltL0x+ohkn<8H#zhmfWJ?^QA>zdnf3*q$umzGwPTPE@Do)!Z(Pb)9GNkmw%?ox?HBITGRPe}t;>ieWwxSW8Wa}H~O?RH*ys62c zdynNFqS~i<4O4IwFPdQtr+DK(j7oL|F>zyOap8#h&Eguwk?JEraVNc{JvE;6O|K&nc&v3eh zdQlO_USR*eVj~sr1bGI>a;%Fh*@x-ZX_-Pa%_#$;ATV~~J0LfmX31O$;B`OpXLH66 zTWcrdop8enF2RAm)F9kb@j12jltH~AgsN`3Ux)1*H(^KI*5W+Oq@LLndqcltf34Ax z?=|XeYuc01@tjP&HPL7&_4QWE5SxCh3`+!^qXGr*_yVLp<@APhAJ63`1{iw z7)mO6AF@m$voW_Xd#}r9R9Y5|YPG0ykvY=B{DtIl$a3d9{tckyz?0m+B=`dcaRS(-Mmy=%-y z69Fn=FcswGQ9}pVO5B=$y>WoR)wj7k?KlaFF`$raX z&_M+;+#A@_Mc-yNR3);`72rfHLm$+`;EBz?-7<7N%GPtx1I8Ph94Rv;43XT2DEhAxKq{|(Q(tZv0=)JKhbEUo!iPblNSPCoQc~yT&Ob}OP|AS8 z;Hz(ae0|6Hz!;3LMR@SVuiTGGnH-PFsPb}m^j0CUFRT%B{!e??{>bG1$5Bd3IU%|r z=bYS%bm~xwG0c(c5V?~>nufl)ZswMu<5mepb6aezZOVpZl)fij4n{WFTuO)MlpOog~(eXXMbV!<3(qSnEUY5 zC318WKF(DU{q8+FtQya^?3joOn57R2q38v2@vJ`_REq0*0#J~Gal48*&->AwUi&1!^9%nfF9~|aa2pn6B+1@dF0jFgds6~YzsCfia7nUL`}`y0`C`SaI7?KX6Z}= z3b@u5!kV2zm7dRrp@WwG!=`9-5H`bs(LJ1~>~&!x%IxHU;k?#C%Xuc`^s6{3?qZT2+1u>Znoz?}-m3%RlB_;nQ6;Cq#l$ohWClGtUgF`U+#bGDu-WXO?sCLre}T7x{7^3>_4X_$VbF8|QkcWp*xMmR6`nTfN7DKi=mcizGgK&=qI! zB&8B(%mKvNXo>XCJ-{(f{a6QNLCY74ySx8W7O}BPfLwecQ?su^C2)fSkbd}+&GAED z>z4QxeZFDUI;Gk)nH=}{(1D9wOm6jG20;GJZ~bX50mu$6*GO>&#UBW|XF`(>Rnab) z^55N>4Nfo5JzO`Uem>j5HXEvl)i|)PX-1C;MCRCDA3P}DSFcCEYi(^yjhjV(a~)Vk zuVR;fJSI7lt)tvx3Yb|mj|T~+OVGUy`V9+Hf7_-HoWiPRveOB~B1==(=9*x4Jpq&F zub^`ILh{3AnAO6mVL$a|!;3rQ^K(j!y@#$v-y>uVsZxr{8bwToM9|f9STRyLX?UM; zi2R+Lm7FkICI^ISbO71$#K_Yf5hSpfiBAnPJ^{y{9PZ`u(8J?J`8;71!Lsw1fkXFC zr_Sl5SvJHKaEf)rXCWxprACtrRU-UHX37P*dYvS_b3506C?!jy{@$yd|JGximMy)4 zYaUpx*k{$fmq7ruIfDtB{f|*yMl_$wcWJ%qL<-{UcqP2Wm^2>$pbnK|{{9=SsK_z? ztEDd3XOT=%!!yp}q~Vm26QtY*&e>r-TH)-W=xW6KIQQ3axY?Da6~YP$^E!&#bS@~Q zLh+(-h{u7^+)GJcF0}TX7iN1u%YzQZ703$C^<+VrAXCW~owk=PN7fhcYNAH;ldiUj zqesCC$!RI~*(Ul@F`9og^0N7<@YsQWHD>l{s+pHMuiChj#LSjwWv@HShmJ8UXDjI_ zk z{%^I_SqHFNlr;q%6T0;lG&~c(}7A2v=FRo*sHKX zk+E-WvBCqhPTyM3?`FRV*E}kXUJsv`|H|XAQwGs^`I@Ln#6d;_&yH(kwp-94 zB4oHPHKtY29IQ?Y@3Wq=W?&ti@%}dKOuG7SyxYU&Yey z(YXMwiL%mq3^!(g!OlmC=^a~0ZQFdVJ2Or;XC7_2>-qt?as@3Y>%<7E_OIXHuDM{a zh@+#6-TaJnT~%u^>;CP%ZOSJFX%}f^1?=ER&)zH(6Xl-}tO`=>WUf-hr=%yR!bSrV z4IbSF$=K(H_u7-^?kq_Oa&TV1+W@EbPdn>8Wwjt6C@($hq<3?lFvD}UcFI11U3bed z^R|Mz;yr&yG5h^qeWr&hL8vYwitn=FXb?8)ERg&X4KV77RU&C5iMZP>)&R>XFe zgZ%xsz8*xr#v$Wu&t(ISoBSgb?#keRa=CZTKJ5|(TfXm%>x=5FGprCQDHRu>XwNBT zd)-P{96J+|uIOs)7!i#@5+*Jy8#^|F3F1Zde2vu5n=Jv?r<2uk%t?K$ZJhEV=ia77 zuW`CNlEic4A65Q^Me?X6vNg$sjy&rdh?7AroZKQu;m8?y5WTR-sh6lzQK9XJR0DbO zrra!Z;qTslh+<|i%Dd7i`+W+l!;+9Rb}ct{3(gBkNPuFXp_JAkJm&(RWbQehP%z!$ zb#|_EuELAj&-C&sZhF>wVQt!S@LEnQtL_&%W&V*!Wt!UhzJmjs2^qO`TGw(LZoBKP zx&c}FQHm@Gm#pcPQR5KuT8OnS?f^Y_rMP_L2_bGY%^ezeeE2@ZQVB;tbPR(t%L zc^hzl)DHImjQe_bdn^@= zr`t7}XW^MQdknFb{!ovHaj@y4x4ZO$l<31N?h%Lp?8#bf8m`s%OjE9cHqt^u6#n|N z;PvgFtmC~I8g)ivAbpj{s$;qoE2pN$@%k$j3{@bkG(m@g0m~g(8_pg8fB@%pW}@Y8 zmMfQ(iiDh(zr%)ys-qGRXQhvhWY+?hDjBgI>u%`-VENZTsH(aMn5}c*c_EetHC<7IeK<98wc)$Bl-MHr?nsr;V?Q z4q*9ld57jvaA~}o2D2%*t|(w6_Jdn3UWe|cRG&~Ni>w*^lQzxOwvz);4WZ!AZqMis z&NHq2(H3rE8a{?sT1LKVezk@Dm~wE&;k3^yy$`T#hUudD43c+l^6qNMp{ zi^JJ-zBHf>0T|l}o;d+W@1&Ug!l zB$hF(%QWd0dba|Ej9+;a&U~E1bIWhtF%vJiNbjONR$aXbg1ZEVUTu^@)8hOZ(d>eE zI_{*&G|D%?=n$(eT#HczHh2GHuys*EA$89^DwCD`$6PKu+6rLZ!RL_V;4y!G)Gu3H zXYn3Uu%-nKYjTT2|7qI1@xb48Qd+tRe#44F(z|GjS> z){oVN+GN@g9h1`qGpb#Nf`DK@(Tl9NeNT}r(r@`a1um8qc{aT0bw;lU-%taaIkq)M z`4Y6|x)pGJ4`Yv6vQ^_0(Ofu;YtJ>Fg)`J&8%A~9uJT*w+c93#45!{d^;rXHw$CH? z&u*jN;Mnt|G5XmKJOgx?i)nUf`$0@_NpWiiAZjuZSFffGaK^h>0YTlfIvHE? z0hva#TiXnpe?;vXWX%zgtxYrzyJ7 zf^Ang8^z&FRnC#&*rmrI#e=`F8b&;;T6g4+6-XB9JFYzS>qQ^I^J}D0DQz92$bJ2v z3-9h%NLHD-FaXuY z7ig6oPF)*Wc=0X4m!e=SJUnC#6XV4%2T+ty+vza6kI+skN zbXju)i9>y(7aAY+hp3aZb)q>%bH4qfRxY2 z?Hx+@tn68!#08 zkiCd)Kv!YIZineE<%EXOtYTo8SXyUgP_?w+o%Mv1#Y!^l-JNJ7cP;{h(GN-e>;OqA zTs+>m?5_7UV03J*)@fOlFG8vV;n#lefdC*GJ0^eofKhZ}SNP88byY#R! zAz5aa?irOJ=R@7DXi zDp2)`=lL_2L&)q$o+SSkR=o2&)Ho$EYAvu||NN2kYDnLC60_Jwesxf3Lx1+Vg(S7R z3fyQ4C-dRtD9)=Im%2la2>g?+#(1%l8BB7Wu!BKanjTrY;u9(!Gr=YH4nVn4=44jP z+6-kYJ~1?KJThVgDw`yvbAy+KYum;LC0=N zGtH-&uvXn4cp!sG(PDyB429pC_N2Zo6LZH)J&s(ehnoqeKlTG;muC7fPN3 ze3#sZ?>&t9V=%-B+DvemuHJ`5OGdjPOokNo?N{C9!cKyRyL_-Q4y*(`gD+a`5R}RN z-y~D+JN0zI<#7qJFZG;zDOPSaceSH>`w7J~4CJw6H}`sXVSA~Nn}_y(PH?gsYNSOx z8Dvfz9fus-nxm)mvnuGloJfYLmNWgBJDG?_f8hhCFdBZGk@@G}^Y!J+;xT9ay^AyL zN5=NL+uPzcSeI70Sm+tuzt*mr{=?4q3sh_$k;E`y&o1+0P6f8V2U2pR~d!FpMleZ|?fCFfu1$;;Y$V155^NTV| z{oY<_$shjTnb|AZGs;@V37D+IvQ}_H!A5qJT`#L5`QE|{WaCEGw8FP$$d2HaTHn8v z>~!;%Kw5G0U2YDd|Bv;oZnTAOKLzYg>Bd4eM@RSH;7lz;W{9f#-wpb(%Xh=Ix%b`X zGtA__+jf}3cN^~6dRX?;>>W0;!{&vXFGn^GHb>5;b;$Mtn^VW;^eEf(ZLS@g>!ZwJ k*xWp9?yUZAyGM3n!NYrhePGe!z{rzxa&WV!Ktr?s3s=YUs{jB1 literal 0 HcmV?d00001 diff --git a/res/screen/android/land/splash-land-xxhdpi.png b/res/screen/android/land/splash-land-xxhdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..46146a12b27f139112e0ecc44b9c53478c4fb9c6 GIT binary patch literal 47396 zcmeFY_g@lf|37Z0PG*+2EoU7~Q;(W^OKM4KqUI_G9<|(i3yPJiG^I2(Cz-hixfMmq znVJ(3H#u>E3mhQ$p>x0Q??3Uqc|3S=jyU}NLz z`29SQD#^vi#@5)Re_z`?6uiOMZ+Ow$jV>R(Cqw0`dRbn3ClJ+}M&UvB(!NtE)4s1@N~ znoXva+cg_gGsqdaXFhGg`Zp@oETG7`y~$>pDuXd*Eh&HQ6zhlm`?#xJoe%tP=fxZC zKmNZ@9`Rqg`QH!znSaN2;=i5Cai`AwxBXFt_4WVv_||dj#2^3dh;ngU_;35J-@_OG zZNGS<`@gUF-$1ebZ$+`O{cm5evHh=ru(AEG(z3Dr@4R4R``^LJ_CI*Q#`ZrP#rFSS zcmQ&~{x0Ryd&!Jh~h+P`hx9Vdj)VrLDX`hRE)?C-b7){whTGDI~X zGtU%&4S0*9sW$*Rnt4+{^c=0{2lpnHdr5VB?xq|6#Y?%|?R2a48=T8(9P<}%HrawZ z9dC*1w5W1CzH`O=#_b3G6Sf+nscF;{L0ioO<5vx9;b2l`>r)>K0>+NWTv(}4!-rH4 z&h|oADo`%0@!3j=`j{^maiq7ehlfi)B6Xs}h;45+YfZC|e^vC(5XL}e>YL}Pw1 zkKZ_M37MeacngvhwvVIa_DxP19SdsfM8F4~p`N1tqI){r&x&7jKnNtkxRjFC1C= zd(13<$?_g`7E45}H4QfB5!!;b-V5Gd5N~%prcFk#&k@OGjbb`Kg;?CShom)r)ain99*SV>eN}@q68R7$uiTNbR z5vnf;?epbGc^S7km>Y{uQp+36%y~v@4D9C*_#^LQU#a;cnpBn~4foZ~W{gSoBP4>u zPlD0>gs3^#`gupF&0MP|eC$9r(z`!WY*9C>&pY5&nWt8*D%giLd`Gqavg{W^oU$Bq z7lm}$mDNk}eC`Uovfs%66a(!#Ub`L;FyCldM-!gXPk(3#_+1criB-6g`5`O3S(C$C z{nosx2-gR7-!+t4POz=9NGsW`emZFjtn!zj6W1xL-m6B&#vXot+wPaXJo&rp{@e8< z{ddg0NUwmnDg<9eZhfYmqWVd%jk-GY)QERk8AxWeX7Se$J`WQSzLDjNZYeaF<#=bS zXSVdpxlke#AyM-9ryDAp6aF;yEGSz=c4xT>EcSJcl)I;{>IJcVjjn z3vKV|e;|zL>r^t=&2n~s&~IcF=vr7_^4L-y_qmsg44(n|bc}%wdGPC#l_72DRFRK5 z`1{_#$eS_bVNXS5!J&A+u~mvPLA#Zhl}Aw0#DG$knw4l zJ>9Yh8SLsK6J8k60?60W;F+{Jv+q>!ksGg3wrZe{#U(En#^-IeGoFff+<&rc^q=`U z5dN)-ya=(SNv?#BeDerbnY&ojz$=n3$G^CzCbV3qVzA`TpJ;mLn$tb?g})zuMUWe- z$}kiZ`72f9Qpa~3#Ez;r-j<*8mtfHRm)F2dTchZ=lUbn1r8@1xqC!Q0GBPISPa`8- z@~M8~7lFKAHi|br$2~l}Jgj7FXNOaG)=({C=-QF7HA@>Psa0JCq`Fwrt|oZ?60I{% zeRXbkU@0g1>{2wo$Us#fS8{!ktAd=J0`nxop!j zI0FV+St?UEVg%4FszYWxS!$TsQRkWOzA+wI(*VK#l-@;+il<7m;@G@I!`LI%KVL|qSG6wKMP_9%Ih65LG<=UZxBEOwK?tDpdos- z&GM&<`I)IVhshu*3+h%+JXynhhy)}m$jb}#g4UX58A0;XVC9LR0;4^b?cT}yT#PNA z8yQGB^4E32+mtr6M~nwNme*hD@DSJwfkqUU1<#A}M^_~<`pZ_*9!URs!KWB9MtqSLY`=IgX3bLusA+Jq(Jb5WuXdBpc2 z{GjNALz}C2gR9%~0k)WvbZ=eTfG@+>E7V8gH@hEz?()KPCH4d@9F$qP801<1 zN!aYh4Aj#gL@*2A-e9zz)V`$Bc8enkBd8m(S|UjU+P8l4(Zb}R^^_@abMY8}4waNU zy7oM<@2827s>O&40Ae5%c~HOjLwQ6r!)(AdHJkEUFxY;GGo*n`5<)T zbUcj9We!{(PqE4~bTl&a$qZHd$jO$xlET_CT>-4yE)2ARRV!dOQlSi2nBW6YI zB(6i|!{sWb?}i6!l(sXjB7-&nLVl#DqWG{;pSk%xy8d6~fOGqLT1erV2bzJ^pN#5sKz}fSc>CUlwW~v&{ErRqLbzDX z7OBe9y6ERMe&P$>qWR#wPoS#eBw(Ohp*x^``o}0u__gwza_UZ~7PDSGHBdcIQ_~!D1Pek}br}Z|F$tL0o`P z*+Py2_}Ev)qyam+AXBk!+}d0ix!-}xRcX$bmoy?Np!al>fBHh&Ibw9icbeY%Tb&%x z|1?QI2)h)%w>#tmn*q?n#_?tnim3L++0K%JcrrjW--Zh}{Quelp4F1haQMLq&PBi=OsqhQ7Qf3w;61hh9_R**-8oDkG4b<%qqzD zn)@p)L)1_$GZy&^B`wvZsb~G9IE0*67pUiT0b|sT3_I2u>Qa0-4HMct3C+u$y_-L= zW6~hKNc~l@iz5A)#yQ!SQSdvx^m1f6a$`kC7ZX8#W5HOG&w@BKm5}s86q3a$J;jLm zAVKQXcP+z)@fMR9`ZQzg{PV!}6m+l^A5z7;lwXsZEB(}I0Y{F+ETyOH zYwYA#%4nb~kLfIc)s--%7Ey46$9X^EM&`AtIr^}$T6iQ)E75B;hOQ>6s*(A(et2WW z;aALN-#GKrEcJEvD=lB3(I(nS4L0DU^xM6;obWF`pM~9slSl!=Cs#(--F>`EiC#eu ztnICWp*Dwlx~VYxtL#$kJBSsdEAgC}e zPWbYcwGeo>{mpqe|3i3l<|B?{7Ply==1p`CALMw~sMIxXZnwIi?$rX58Dad)P-F}@ z$gJB(`WO;mVKUOZxtz^E&8ssdoGrwknfHplfj1^aaSM5Y;O9=yS*t}|7?590@-1)_ zm~Atj>vmiz3%vim=kPNbV2WdixdesJEnj1RCO6vTAz@)Q_ApvC^OsE-?MNPqs-3V@ zRW|8QNVoErh}*lS=ke}9<(Rm4;A%X&1Z0DwsX~*8iy6Yig|2V@)3@R z3$^q1g{}5gINKR#gRy|)u2SYAG;4C4Bw>DWG7}frB8)*Mk(=Jg8_*5_!XYioStc(8?X?rPsDCoAO4r7Cq{f$eI%3kkhhmw|Sgn zlcS-QVOnA7^j8PxS19Ek5^sUQ!(TeEKW8BN_QyD~QiNuYfvT58&TBQV<;>V=?oC%S zx0=^!M>Xn`C1NMG<4?}z@2NlGAH1zlrG5rqDnAP9o4VKRP!@;Cvh!(8(j~j~Erozk$hiACObU4 z@^8wpcjH)d1=5KPx`zEpJkV?6v>eob-(M}R7N&YgxF{Y+yns!KvPDD`6@>ZLJzkP~56zpO`gDdv`~LJe7S5IQ6luVG=6 z_lrL6#kmg(9p2YzQP!oe&&33<9D!7VTP=s^n;*y88~X3q{~bM(viloQJaat%+bnG% z9Z9-`Ky4Cti8#oS-&NSwmskR=-dZMSZ=Ory=U@rX-fA@AQB6T|brIR*crMO@xdK## z?$1a}`x|D9mJPd?Rn_E!30R@qJ?!iS0;79v(_s8fCM1g)pViaxqBZ40lP4%9TnhwU z=!oVq4{>a_QOk6)rFm3G)w}%~GqYFBG^#)%yS+T1lA=~EKAzoo?vdXM8^&?3A5<-5 zBC^cHM_p!Rq}Fq4(fA?d+@>#p@QviwBS*vZdWf1_j%jDWshB;L6GPlyd|U#>!6vF4 zp6arXB}DSC8-%fAQoe<0oJ7>@pYK+AO&Y317RTcAY$YUf*z` zH8;6W|BdDNw58Y|$-~@!=}(f1UiL;uSnao=uS%eHeYG)rE6FfYgjnFF6lXpy`D7c` zH8AwRuJ=Y9TesBqVm z?3sO{_kjkZCnSw3(^^$tG=OWbyIyK-&M&+0CuxSKvM&fC0;dl|tgYMLNVI$-9Qn!@ z*b%MUto}OdGXFAz@pC^Rg!=0&&lm?WG|U)9bbX51erSYYG8a($_4yK4_JFU(>xfhM z<-J^HCq9h|$As%kPW7A2-oqsW(r*Moy&qI#Hs$eFQp<`qQm&=hSlfzE)}8sGEn^0v zOwA$JI4Dwc2vo*1g`V0dz9Ic>a@M4KS(3&u=ErR^H~cKz>rC!?ykIT2M{@rf{Gm2) z*)>9xlxkVkN^+k)^3yzq(ZE~jQ>?66G23&wmtVb5r|GkUQqlK;BsrPZ;_0P?9%USX z;eB3<>32SoYNZ%{;6RnUO0BO~*a%X5Ei46DOS%@AgcW#R?N^$uGj_rUuCvlj6L@HJ zncq7FK@4az0V;{=YM|OZl2mR~3w<#SeC_yXvXt4*twT6ZBbQu1f@^Ply=|r- zP9ff-l1(bWdb_D_$xnW)zPxNP(`t?z36urFmxAuk18%h)`z5kJ$E|VK;a1$Amz8kx z8C573@K~bMYDR`D5^ghkq1PzNfbaw@f5PK(mzIcYbhQt}^+h5Bq-!7U{@{2;vW!OK zw2^o|)2lt=3^wdQhmy3!qrG+6Qb@w*e|B?{jB{e`9X$t4C}5rzfX9;_B-t zi!p_{+@zf|SK+V>3F5+GNVYZyUG1X~FeX}UPi-W>!FWAHtEJdJ^q{!V#o0-7`zUHV zz?a^7G+N4BwMu?4WUqe0zuP8-je}jR+qt$CJK{8GHzox0cxoTvAXA%Hmf>Hlx$&-6 zMgQhOO&xZ_LnbhLDr71znXLMF#Ln<}zd5Ju;XhzAC-v;^f{OZFd++raT&2=_gwfSl zzqKmQM#4;R!!7++&)QVE7K+mk-9Z@Ydna165XNG+23w_(fLGH%onJ0N<^mcDBli+5 z7-gH@F&;RJij{~X*mxTZWN@egKl)g*Or0}RWc-}LT4zeFZh1Z^czg?%yD;iGcR>ub z)*sxsEJcb92zO|z6ats7^SP+?^7PVtw8EYoQwN2t>aI<8{wCXJRRLjm4JI)VE-stzVkqmQ=EhJ8J)lh1hamCi2<>N@|&^lKsy2DWGL~ z=rVDS(w6FMYuwTE{t4*LoxS_6Kv_iXYMZltTp=fIeC8@+83&=wlG2fmP$h%MIYp$pq+k-&J{$_x4_}w=(&8V-lkI^&m_16b_XBu=Lxi(6X z9~j3in<^k+`>&W;#yO+xo0{d;iW$tG5yWcjsUN9SuL#C!0xg|jjpfPp=nx-pmdpsP zh)4oK!mhmDOpLJxvv9rvixZm)HHX|v`a?VoofL7#ZB+&Gk($v1pQgfCNzPeiCyHY;McsmxX?sp|B<$A*Iu3D{%5Q1kX zk1J9)e6;nB+h+)))w;s68uS|Ie~wkD^a$}WM$nnD%%za}+KV*j!aGa56I&orP}tJV zTD;E+C3f4Tf&PA~kfJP@gLMIfKH9_(Ka$m2KTVVj?F}(?s>;JlK0B&vaKn2nlZc9D zWv*^8g9d>N76DlfBn(%R0h#c1JN~m*5l_n9+@v{P!4Vj`E2dw!!V5=@BY@wK_Ra{g zcjUa=skNF_&Zw8jM+XByVL^S4PZ6+CQw%jvn06QC4{EN`ngGsbMum~mxA(y$cT(K^^J8h-vaOAgBn3OERlDwX zhNWceS_*xB(nEE0;;NWcaFAdA4d5*m*UdjC(Q%hA%xLS?+(w>A27EpJaD*KRpUR+Q zUDkj$H`8bV9<-XG;6P_|eoQ?6XzR|6qEFfPd`G^&xsIHY8$x#%Q9L#QpY0=$O(W*N z-=5)_3)!45Lu1CeMW$_835vb}Up`#1 zvtTTf%!FH5W-WCHq9Ib=YDI5E44W&Au*~S{*;9C^WUJU@ds# z(j>8@{HTSn%PZXDxC&NZgkY@-sHh|Vrq7B0hjm$=S&-Lb0(X~E2@ z(N7$bW(oxX=*q!}NF#y22}i$789yW90{e!a zrs^V88%b`6WS;|Qf86jjFnnr!(C__53*NfNtGtQowJrQ8zWI6#`;J?)oU~0wc@A^Yg|iwKRu5Pj3VJ<5)`5puYWKe5|on z$(;P4=+tFn*Xv-cp^Rk6GyM#9!ObFMeu0;lGDLzW<(t3l56H*2N3XHxVj^55RME$yZ(+ObKq}{^D(~b9TMb=Ae{{n~ zT6M0-FTl@<{$vC=;oI7&6910_YA1dX_<=vXu3tvVXI*lzaz))`&3cC9QTl-|(eYv7 zz22BU+#1&+6`(=F$+XblF}v84x=ke}%KHH0vmVL;b`y_4yJpV?N}ty~-CXMpR!@4n zg}T`po_u|Wxmx>##5BPc3>h!wr8!H=<~hx}9P_r;a9r5T9Yfd8jA9}kEfA3qT_gBg z4w+`Kz5DK`a|o=rOYs!96$LMpi?!#*ALgcT%8EZ*U<9K36`gf3Mpg-^b>CaL1Z;ZN zbeUO(^(Qj4Qqmf%Y2OdMa#|nbm%&ztTNxBJ zE$J?*+8mDbyiL=3C~gxx#J&kO7Y&EC0o_L{8L;c=t?Bh*;C)YNQRLaVU4tD~M&ehI zF0JkcYZd)6^1Ca0{tj12u=&wEkHx{770yQqXBcb}{QN$r=RwkC zs~O6G&mC{tyKi9_KD;pIF0XCVXKkgjqs|10h&fJPt>YFo2LSxkYg7EUK24Rhsdbmy zYAk*qJb7ly-8NzFrkIw-rDrg25HKw*FmUztwPm7{e}~5HvAu!%G3BwkYTn-Q8ACn4 zmb1ojLGuT1OvZ*)dfT%Pd~c3*lSw2uCnsILtSs4K|2pKz8B*4-zgliTM`_611LGS8 zMuQy6`0(VdJ8Z~5-;XN2Jyz7DTC7lkn;(Z=0KQK)Q4zNSL8>j7NDJF%5HEX=01R#0 zxu83PKDUIcZw)ETqoR|}Hkld%^8v}`(erJKg8EzU&CF<{j2b`4ZA_LyU(2x4K>lN` z8@&fZIbhDekZ5myq5N{I8Lp!gxOgnoL)iSNqp5J9ylx?=E@}yFR*80LF$ps)LMjAG z*Yuaruj2vvU4+78b zja)nM)B*wU971pv&54IUw_{+Qfu~W8VEk&I&17XmigGta*Iq3{?u-}ZVWO$x`*q5X z#P7bJ^qTn^z#C9FSzl>aRp^L6u>lbL8)?BLNXLDrS&dN6(9VR}9sgvuunn6v3Tw-8np8$Z_Xu?)(5B-7WBkNWI97yCnObaWF8{zpbm4vxh} zxrD$Yd7Zj`RXdNXuJgzumDjB8>^Y}Oc@w)NUzIP|f-5XJm-xr#=N%svsvKmVcFUoR za}Xn!daLUj>h0^wmH+Ari*mpeRrCwwfVrlut(r-B5)T@LYaJ9szTH~%RskUAe8XEm z!DrQrjM0+W$F7N7GXA-z4+S)4xkcgNvm;-t?WedE?E8oxy_J&%@n`Ty1-Qc8r{v<< z)i@<+-~(4f6$PzWF-9w1d|Sc%c?2alj8%Zb8)sW3llQTZy(uWkc~(rbp~QD1j+}`H zl5_F%fwC>DFT&;4zBMvcFkVmW z#{2n;a^U^;irp1>FkaZT8by3)D%2PtnsoFddhnS>_g8qsHcYLtplkDu4L6?BLr{V0qILX3UFnRl7>e~2G( z6*w2hhz|e03%Y%xM>}-pr3Gda2vi5IKYKRi_1x0(!^EUzmxo_t@>k>IBUNfH6cmNl z#9TV$I|6@c-VlFF6UdoaS)Y(R=|xt1l5@(;ZkhV((+x41QVRjCz&oOMor%s1p9#w) zW%cz9LC=F8OsT6QRrWruuDa!D_{oV{@CSm{17=7d8$P})zrZ(_|56hC2ez;`HR`$_ z2n(`GSLR#W8!5@xv4@B}SOFhvoIww7JP&M48_pN=XDLG#O*?@qYLp1iby%~lzio&x zg}y#B60ontwEjDU@^K|rtHdLytRRtgGihF2MNZH|2%J;dCwzm;=y~8~RkF9LoY>VO z9o?KQgQ=|A!@4iTWvGPx_WX)G%fl|t@K;KDwi44H)J1DQKHO?i{^44qHA?daLeI1R zN?G5}5BBpima!cl1=kcg-g=4@-Sa$XAC$|;vz`k-8`C1#T2Kn~E-9W*?Kvry*cQ{+ z1LnJ7*KlZU$~_}jHpLYO?ao)QO;hIl6SA1((G%0`RWl4nbd#1>7_yxkCT5)u`~_FY zmJKTPgscS4blasNFo7G6Zmc-omE@t4cq~WVia2^aE-S90gGr3k>jZArh6f1z2b@;O zUoWm{tsLu2So84~C7cP76Gj;SQ6v~^^0#Q#WdT_K8@R*x$o+@YMIYXBZ98Gaf|`@S zqCwG4G?#%=`cHY@jSUgxpWt%Tto|!f*!kMwmGvcRl5{!QeO&)lfg4+(#*@s`2H14?>n`@Iv|QG!@@p7V`<;)fw$^9JQirF*95hCs8e}`I0v0NpomLRroTRw6|Z14b!(xwTZzn&@BiLcDrxKJunuzuRR%71~I zO<6&}2dt!kWrLKFTj9KTb(`i@vg9#QQ%4z$4jEfNiLRaHgd-pEhA}d1c;YjWvBspk zeE6S!@dJ*3h-gsJzr@J{KDCs?qA^Mw+-?M+343acFe=3PJIXQzE;S~$5-Mk1s<`z8 zeg|a`YCapv_N>|dXYrpGe!ogS@9ljcL9?|lB_wV-%k@Sx~(Jz7#PO?v(g$olOa+p1lwz% zM*OIX5!Vc*I|!VIBm09|hNU9ZAl^>IDcAkFdh8guPe0~aN8Cwb$(I=|jr{z8+cRNb zK9@X}qvCAxEPL1Xey4Fbs}f~HH`jD?+|XQGblyYeq}Sf)>TPXWNaobim&fkNtYJO% z{51JL^CISUPJ8>vK|b>^&mjIXN)52iE-O*9OWb#v_P~71l7k@*5y>(BPXlnTmLOU=lMw~1W6rb-l4V#tYt@~=&DL&yqhY7N$SOEh26qTjvXhKaEno_$Jtf_kYk zuLCkyEeGT|Rrh_`V@W5+tS<8!k*D@Ty>;C+dk>{7KS~#E8MU_t#eWF6JG3?|1cdXy z@pya1zvuJHs#eeI8qI)YLxFpstUB2ZJa4x(799u-h@EAi-P< zQTww{5j6CxJ&iHs;)R3`n`3QOqOxYW_!m|?rd`;>`r(qzc3usTe61a&HT>}MQ7Z5~ ze@@v-Qi1ik6^uopf$EH3W4Uk*IqngE&^v$oFq6kEf5x4}u_9>e0*abeWAKkWc!KA- z+Q&krGXe9iD!l6NYp3)9#zYG#=fF_ZCtZ2)Lc#TV59BsqI(}{<-uvm_-E|?TyoKx+ z`p55Al|sGXAlIqj8X-V_6iBkAhVb32E}5($TLgt0uOHansxP1Q-wC|VgHR@1nvKu9 zOF(!)?O1fwi*d+pNsWwLsAf)B$*jX$gY@m8!B1T(Jv#>>kwXdeB>3sy9+a`reJPgePgQ~=hW43lc`FZ7}T`xcmr4Q7ikq@@}EofYWU!z zm?~fdb!x6?mG-V@3F_im`eRpoe^HmH^&tBR+`vG+T631)*|LH2g);tG{4YY@X(0x? zFW%$~*kzeY2^<&2v{7^875x<|0%=h+aiR3RC9E?bR4-SNq!`b#~;L@pksfVb7r2mez`N z>5BEHfHDa4s1$rAOUT{>I(L+r%LyN}dxA^g!3X*U8B(2-YbTLbXN|^!B{hNtR)ZyH ztoKuow{COeMLY!$O~k|U=#IAM82x7-=*0}(s!7#(6dg*@3D@+j1dx&_O+f37=+h06 zr-bi~>=mL|G2&iOz=ag0fvXS|++EMsq^K>2-COdvk^9LOs{MD~h9Z=qgnsh`7M~vu zY?NjUov|+(uK4n(@qW)EXRvN(Le)NQ+kJIGELnVI=%}2Gd2YR_WjYe5T83hekFF=S zQ-gO~8o0L)59$is2+dEu#+qrpyHFYt?zMKjo1RXIWa6GO4)+IE4+A9UcFEM2NBiwC zJ7#tmi#2^ShAST|a8S3fz8CpWr=FU2ND903ooCngzI zZ3sd1JKR_Eu}{`!W1OY%a#B#Bcb^&QT$@Z&d*fbA(ddL5b)op3URi~ut4+;g~-6~PfX0bSqkhL`y*`OgtZVJ?~N{y%rYV=p=3X94&SZ%@%4EuSG>!@=M}S< zyh4MgR}*?xKJYbFV~6qf)5FKq#H$PpAX5LBAOju)FxRS?!&Z7z_KEcr;ladl=G?>)7Ip8;nl8Y$IE8(b zUT;R5RD68n;Ur?_bNfxy9a8hwFGwaSw|=h;O%c9v!oSW!+rHn@Fsr#@DA${RB1QDv z2xDGMIvm_P7qzl(_Y>0uL**JYUfac$8{}~%JOvMud9&+bq$8$FMG-SJ;MU#=^6l8fco%ES`^u|yvbtWI8E=K)0KJN?%64*vt4j8v~b+92+%LFaaD zt8dm2nrP&eIEK>*&(Y*c(Xb(VSj2^0-AD)RnS5Ys2`iRYf_HOe*<+GWR*r1qW9W9^ zJ*&R{XS&d{bDcx=-*1ZEZOM(h{1!w1L>)Q4ZR|ruQ1W^|BHG?6OOb zJeo=TdW>R)TKH(~Tf6D7#gW;Pw=YsRVE`LX|7e9ZMylsY<$V0Gjgl6;l~Ox0y|NV<+K>Hy z)qjq0K+95w0j^c+rUpbETnFUmgQ(J0`v%~6K+%+T_q8%wM^qf8hnu~!@n_JP5EeoHW^X&A=CIJdHI-i^FUE^*_miwVy+VwMukSOq5`} z(efd{aV?cdtlagZsAPn|g4>YJn6j6PIrHgtrx3(a*?KFkL?bn0k{KAd$2|AW4;8MPJV zQ$5}l3KW?tHX=*g6I33gDQ_;p&@?A7X8@KK6PHeD091cLpo0+XDK zS$KZX*=@mxWV`f?<=%QoQO@{~Ijm96xVN|ujrNr4})#cLgJ#7cW^z_lPX2zl0o z9z6>sMQ*biY{<5k9cAC|!_&50$eNwf0K`}YfMlU@cR=c;OI zE*G`01*_+knm*8mfI)8$g4ky?&!-i&$LFj1KMiV=)v9l8DDoywE_A2r&S;HwcYY%k z^J(~Z=zq|w@oRUoR}T56IKvN>3R^2axMPy*2k3f1Eeo)RWagJR>R}5QUZsnj?I~U; zez2rV`+6SSU~YJ@eK}^#rEL(FUFNLFSMQj75~b(qFxj!_FuJxl=+U%|&;DiO*h2R) zM}_pnXeFFDz(Zv)IK6$BqYbpPSxfuW)a>|MW%Ev0H_`vk95tn)f1Q-QsBQ`;x4=lV zF=%z%R#tQ)+hjEwV}N2jyYeve$d3a={tynQf&Vs`tH-W^tO$^%JOGW%st8%>)PkbQ zm7`Q6svd_SYseq9;+Z_ZS>+b*$f?&thI3Vojm6~Qf{$!HT(sUjh^*fnoAX#7~ zzy4#N4Kdm2vF(eu{dgW49vT2gN2p6%oOT;!45n5~?BfkO--%_~H| ztC0YgmO0uC@I#Y8Ryn?8WM_BS6{Dhc>b3Cfw&m_;{anU>;y8(!r}I<31vY~7>@zejyc1 zuIq$!d8n-^6Ly*Wi*0GJ+@rKa7=KUfAn}7%AimET3MKfu@=+OHkuJ<3R;6sr#Cg;^ycLlQ^){NhhzIIIFQKohiP{qev=svaP$?Lc! zrMJASGw#KkMZ(VS*M>*Zo`=G~QO4q6+5UI#uJ_ju2V7_3JpRa0{;r?ms6D~boY8hv z!`pR25$2uTt@d^Kzy)a@t9r_KpOGeJ#3ESbgG-QsKezs!u@hnNKm0C?w!90gv&NZw z8Q=_VpMI|Sr-fW{yRbIO>SS%bP&xI^yYj*!cR#5M#xbdV%eZw)ZF4i!=#Pb)aKYbt z;qt^dV?y z<}DaLVzPBxpnxDI+g#rOkEm0cz7FEB3#W?ZyiTZIsL@Z`z z^TQJ{im}+0#hd#(d z(($pB60CeFPdI`=|*>@yj@b`-Lz2OT-2QT@q0OT*(kf>dFpXG;&2obyk2yr8St=K`2s;4yfR< z)<&1KpMryBy0w|JH_Ha@3e85=>{~f%xDDNSHo6kK1I^QlT-Lb? z!{@)tJ`*7KmvjgDz5LuCJaTh?6~%S?@AaXUDX$)lW6X2Lbc@m`6WlpNfP+yE29vdc zm02n^yK(fOSxGTOtPH((bGi>?AA^x=`*TnzLQWj!B5<&Wpn-vcxi>_+oLey;hnMCwOw5|h?L0KtzU*M)&pbs^1C z0)2v&t#Y7`HeU;(UldEJb`POf$pCRNe*odatWay}?v4Jm8rhO}8)QJrKdlXmuOBsv z-XM)mO^*8kib$~MVak%4BUos~X3&DpRIaFml59l4D6>|It8mbYv-C=G^yK=|{0OPP zr^Hs;UD_5gVXY;4JaP*7H{fXQDe8#3b!NcCgW9@Q5xDkM*&gaHNtueF)(2ZhJlBnp z<+&Cgvfp$KiCMUKeQEk`QrC|-rK00=K>&MV@b#3p&Jr<$S^640YyW>fK!6&ju_p=)SHz9%&(*0B}_kerDn9InVRLNI}4 z%1wgZ^OOLGvIch4r2#Lm=8MunjR5TZ zo|hgB8nuney4|6;mx&${>p}CTaCx(o-nHJYQ+V6kWvg4N=3N}`qFnr)yccl6&Sy)< zoCEQ1bZI~7#%r4~(5+3zv?+rMycW1WZ2jm%qxUA6H(6aYytOSsaL%kJ4wK$SxJ+z- zK#p|8MA58;aCc(%@IQ5-ivK9^9pJQf`ylukblkm*%^710N*2mhDm59sX+Lxq0TS9_sv*5awpX z)4<=s-{tcHn!~}quX&7VXXGZ8eBj(%I_+d8f1C6u<*fH6g%X&})koS0Y+j?%W%d0v z-R>%Z6t51n=L0n|J2>9z)!Zm*LtR9AnMhfgOQ$W!dPnuG$2v{rFvM%Y$g&gj-}3KV zlN@=}Lqwd9n1f6UX&(Xf}-CKy(_Om^kjeN1=3T+Ksz*4WAuIEwEc-m)RkIL-9=Qxqfacss4X7oqIgf z{r~?vU8#ghrJUAv5tVSs`7kP7giPgBj+JsY#|@iJU6M+yNODd>$W}Sd4$3jaoENh> zo0*xzW|;AN_qo2mzjC{E^UvGs^?W@KkH`JF92_EXNbtP)SKT@zx^M{@Qmw51Mr>&d z1h^mVrCw1Qt>ipY%Mq68)JVXsCL_ITCai^#(EQ^i09cAZtQW zGI^DE47GrC<}Igf%ywTJk)OR5SE;o#rNg)M?Tzx6FD$MaUY*}_C39-AVOB9?oa&Yw z_aS$%-QHf}iQ*+K_~P5kUrt~;rb*<>p5<`YoRDk7dlPrEdX^-I5!*NYV)s0a)_HFE zGOGU>O$WWno|bR;;>Wr^z&zZgMV?zu*-^pf>)aampWSpZA4P;JnKE9|PEvzHzHN`q zg#S2~*IDwK@+2%ZJZ#rFvhK_rhH6;Dvi1P<+b(azF1K0bcdLe;cvN%$$|X~_vXduM zkFc@Toa|I>Db5yJWBAjZ*2$r+d+RF6#l@O>5z&OQ%g_^+ZM70wF^a?8EGcushr$eE za+jlyv7-b|xH%fFb>r{B1ZW>8vDtv+khy7NOk>WTEit)O$e5pFtI zY#JQfl1jmQww2s0oyAVBZ2T;+KPjJ-6_=uRZ{sy%Fo^pO74!ip z=_LGs;8ntTARD;zSG?!W-}$`0x5**44+&yv+|e;ClG?tMvCWF@<(X|JxU9)+U$&>1 zmW?oS!^+<*E7HGIls7PvpCbw5q0Z}ws9=NZaMtI&fB@JimKo`=4cbzb*doM!T;HBD z>lpz@s%23E9t7BVM$ct$ZMI2((fP$rksnKLT+?mo(DoztUAn0%pYlhUPpQX8q}fvh zSTSeZ?=$gRv`T7H+tVl1U98jg>dj;9Gj~(MCO$Z5sBxztQ8+56w2$TC?(Ag}6##ko z`m#ba2EE@*_3X0`fz&=|&FJEpmk#)sJxfE`GXeP8t;=8cUL7{PD{i+kp8qw#Zl-esP)SDz2g<8@I#g>$~~J? za+|pxZ3Xg!s~d=|Fmo9y{Bj}W;c5Oz;Dqm{kP*x8Z`5HA0=EV06K2%_1ODGIn{$vb@G@pYbl{V~sKFIDulXsI^h| zoOeSs;%)@)Qc9AQEr_`%Y1<0F+wgVToNTJ^?EPq9$JqN7IA0yf2q3lt3*4|=>UkH~pXU5Zjjjnj`O?iJlFco#2 z+nNb3-OSs@w$}@grJGx$&eMH)PKNU|kaq+y3(t$4NZI1+YqA0~0|TlUm`nG?nng_% zdUkC*Q}R8c{k>B7Y4y%G*ks5FeFhpgJ^oLp&GbzZOWgF0V4Z%#_nK+cCutQAu@AS- zG*RWRLM+1!YICiHKX)=C_B^FlUcF4-Z`U(^-HU zuU%-2>5mY+dVj9@Qzl)soQ(@PM59(v@W?j|MPfH$hbbvrVbFEy1?kG4!@TmtU6GGa?fBp%G4w z3FpOZfzItevCHM+fSJ*w&&$WfKVrk>(`oyK4*`%S_r~L185!3O!V#j~Vpt#WuKP#3 z>s5f)b7dw^p&#p18fuF{*B7HH?1u)Av##!{Xp?F`ji$R?&kd~|bnSgl8a zfC8njxliFOs-5{)=KI2G%3%qHy28*Hc}ezg z65JUOSpaSHwdY+pZj$vE(S=mFGAgUukLcbdcC=weX|E#V&^g)QzA`HcweM+;(aiy5 zaG9T8C85U_d)L?dsQGAqAmzQzKEaqLxTeeu6=tvIN*JdH$Xo#hPp-io&uib7p47~x z_vw2={Z3$Oiml}&!9llVwWO#jZmAHnepih-a$!m`MWs!HQ1sLJ)gafjtu{8sbKRRX zH`D&*R!h{V_p(cN$?R;PRrt86eyqxbXrc5nAjN;?AyqIc*W@=zUhIEPj)k-Rg{>Vn zv`nZN(3fOV&a+)9>g53(d(j?v`5DSN24%@ zW&zPMUO=*Ij;yyS6azU7(EzdkL?ibG3ye{AjlwN2Bsh?^O>OD$tafqnb_X@t`{Bbu zF#cwTD2T=VUFrBZ>?(d$yr|+2SRFWMUaw(Ll3E6`1UoES zEWttbB2>&X( zS9?{XUdD2lvJwpPn7x!6q7DU{q{*LnkyjwL@1PI`jx8)tccPU(URbFScx5#T(L4%d z;yjmE*(cj{*vMm%F8&eueKl&UU|AB{^BKqIfJI}45+YiNCu(UZD91CnIsO;QGkW-M z?%dW~Q`0L4anzDFFaqu48oqbMbUitjawX1PUB7Z+-rC$Qn>Ns#Lo*^V5>Yd-^Tc!iTKYwKQWR(W3QZdB z5_J35JFDSxL5>wDh0^#HpaZ?1${c{fHkNZ0&1wqzIwUwcbz1A=uT&RIR2@ei#9yzG zJ_WI$>%H0WrLyyZ7{@$zD+FJX?kua7KNA@fj6bMZ%HiMs8d}+Tkq@`i{8Tx>l87*< zj5Hm=V5y1qs?I^#;i&Q&+b$B^A~q;O?>O{T6P_NrDgCh&1soMsu&T!U$w=`NSV;t@qw!^u#KLjy=TH zqhhz0GSLg)&5ge3=pU$4xx^0GO{MOAkkh^RX3syzWb_2a%{TqFvu2b`TZDsx)&4*| zb5dii-IrTWtq!VQ`Z?|Dl3@AJVCTgB#B~%#@7eyBESABsbb&1`O)*lt7ggNQoLMqc zIW)^2adG9tJ#)JC|FJ_I+h{4+nQgGVC7EJ;i}pCNwn@^xV?{aBtK5uHB=%AfY*rQVE3|C@b@JSV=gV~TtRn!7o>_mAPJJ! z11uhX;MjKQroT{`jhxsukPhGLf|Js5T!uxyqxX_SF5msg2|>#t-GTC&73j-d|Lo4# zCm3kKzM;ZlhJnmR)CRzFLaj6hp_Vd2V!@<*E|FLas4_9`A$cFRn`r?C`yNPD9&R@^ z^&Iq3yxpxy7Jinb*u}%=M|V>_((}7MC|w-P@{eo;vrF<#J}E~;)Y>*EVr@brYzy5E z<|Td7fa*kSEMvRk^$^C!!@YT=9M3W~Fu(M{&c_Gbq_$UE%0-jXm6v8IO`8!na$%ea z3mfMKVNmSe#vteAmj|g_$`xN6Z4A948v8I2pOoAc{3JlJI*HyL8DN}03I}vNsyrGt zmryBfmJYZV+&vNA=A-Dd*`BrfBW9*Df=8*K&;yl=F*RxZ$S4(@9k}wNCz_(AfKhVC zjs~lZZy{DUtI4rYONv|IQY_krnjb+Jb^0jC#$v!>cCaQ z>bi}`Wljf2I-GT`tgSs!T)9kU;kqSFkv+@P(+|qa%S&k7<|;6t@qo>C|Jm8u)htSR z+>ZWha(TJ~0nDT;fnoE8l2vWgT$y=dLd0^@e)aR`n@Ya+B3gF0=zDF(khkWaZw*i> z>@rF)YtupvD}Cb!5}`_Ee-)LZ1RwiZlKl$_?1E3ni^c1L$RBCPmyL{a2EGgtz14Cd zKl;u{IC8yVp#+&YCgf)MJn!Dap=Srga!_F6!W9A)Lyf7+?h{+c?i&>~aW-amTi&DH zoMfKlCY4KwSd$$aW@Og4D0lHRgO*b&y)ja?U&x@Cx4V}-q+9xIqQ4+9Sc40?{g=;L z)vYb;t9gv=FHAIUGzj{Q-HL&qDE`&{#8Tjpd1`Tn96FvW$xf9zKPQOYs$~GdGD=srwl>NncgfRT4N+DQXb1{in&c%yk}f# zrsDDMjkbcY)I5`kX3k24r=okfZ_&p*q^}hS&t25*`=lPM$77BX-kEKzeg!lz$5MBP z4@}*na@Z4;C%Bqofj|7octtuOBvXYbXt4S(U#fEREc~SUP+VYc;9YS#hb}ue?`@al zt*`P|=|7mo{T!>hvkde2>z^^VN9AUJxm^MoIRY-YMJv>N{$ze<8!4NSI!W;)Ru)oF zfVY+t>C7+JmXI)~C3hZg7*)Luj(YzdX?KmaP*7F-uudjiU~4RoKq=Uv(!>RK4Y)bU zA@bP35|t^DRnA9My}w)u*(>q!6+>^u6`Q=e}U0 z6Kt3&(c+)JwkKT|N$4{*;BJqo1>FNC{@)(?VjLEAu6i^LnGqD0sMH(LllARJzgS~4 zPT_}kW2F>2*i;bsy)NmfD9hMQPREAxs7FtQ414^l0HuL_bwuV5Db7An$t@54 z&G|hk_#DL>6U$zVGxE&GPR2a8htEd~eJkZ!3h^P?EOaCG6KhF3X)Tj`Ow|k^P0SPD#&!k}n}n3p zhWn2wUbwB>NUG_ZpIde^hOnopIe*)7o3Hoyo~ybme`9LTbTQ}?iyOoH$Uq9dgt(V| zfdI$$no7~P-}RtvNM+BLrfUZ^81RqpO77`l<;HbYoEqSM1RUSnqKu!f!R5gKpRkPc zuo0=ZSDfKQ3ne{SbBRJjD~hM-cik$ZAJoXju@oi7{b0mXu)>!~FhfXYf9{^^skMGb zt}Ez2hqVMh7P<%K+?)$Q2 z{v0heUhk3O*jVg{YFG9Az;k)Kdp`F_TidgOl>*(1Z?NvWmD4JlTW53}&(1Zu)t-Ek zzeU=br3u^i9g^YPIEHP!1XVSTsb7=TCqO<}(Ks*kMg z-%dbie+eF;D&l!t#!UYIh6sqY&!yyKFPP^x;(i3Q9QzyZSJ>%oz*YX!KEw>O`gHwm z$VX{CLT9dCLuVcB0CRAE5c~pb?D&Q$bbK9B0TL1pufmSZj?;*>+kr$?do&7O`iW(& zhki5S13ABOd_{N3ur8K_AGOZcY>!rbn9^fL>-=1m5Zd4Bq|LiKt50RJZ%Tsx#B4q- z@NZaJ5XYQ(hFKtVlN5D%WMgk$8Ah>3Rnh4EdPd1F=ey~?L~5_88$F1HPb47x3QIae z(0!2Fc!W{@9lOzL;y_QvfYTaMX;UGru#nj}8SXrcKpUEPKA~HQ#taVtyV=$8n+iEda2%WYWZf+ zM?^(&`XEBY12 z1?J%L$Jf71Yjph{TuTm&Cx485l8HM87}|<|&oe#{f^XqI7Z=G)# zrM2WXubF2aHfnr#O4+_3Yhc2`14Kd^S)om8k4kGPN~EEu?)6!upsz)BW-!y)i19FY z=galc>aYB3L$;9Lf~+=vhz?_maeh(i*&fR#fspq8262y1jM!KM)|BZgX>5hBb4M;I zL<$}bSo}Ql(09&3Kyca@^L&N;Q@;bD&j0VNp2^((HaBG^x%sAi`FKg(g;1Bw`_FUk z>)W}f?I}@+fZgeHJxETjc58X`OL=X9g>{3<{>@J92M6U5f%SZjUEMnDOb2r@V0>eL! zx=&Bp23F8c>eXn!k(*mY=k7fZ_OV-u@p+;D}h?NgqXzejJhca=}y!cX{m^ZOum!I7zAhQQ4s`M_x0euKTP=e)NHL1TH6S zsu?$~1qImUq-vPX2M-D5CX+w3RLMOlV1*OoFNkLI6z;&5o7mD(;V%r9Av1N8smk3s zCN{fjB%_SSSS9h2NZDNbzKtKG1laOt88f?NS>5p`F_7Hka}py)`8^-0UZ3fG_H^F^ z=k1WwXUiw{y(C*Y-1pk`!KIvGu=8t$oQ$nt-^An46g>MLc61DA)7dRzgkT)dpuwC9KKO1QvYwO>@~ z>g(Ame8Pm7=n%*%kaN@g#USla8|hPia)R9(Cp(=E7@4M0IV&e^k0tm&VSoK>3O5amVOv*eF6fJO!zm@ht z?*QB_$T_AuxIU>DT2LrnMnItPB^6nsU;2alIV=2SSh(?Kq-FbQ;cyG`Z>W`!Xz^S) z;94+=rTEwV#sqwtqk=MeJdtZpAvw1W~Sfoz#pK%8i#1z=oeiC1Ok-0c4Do8VSFWz}%GB3N09(c;1iw`F)Zn$D@Y* zdk=8j}RGBQqy0yE^;N0-1$jQsS z{MEm)GQF&X^7K6olcxpWg)+)4VK=JH3t@dQ?KS z2z++}aq5+_ePN)lkB3d)>CVCDh{Zu*<~HaD4(Yh&Ta)S(4dU0KI2mdiOi#lyQ1*}m zp-)PHFP@MsuevbIm=7aTSP8hCiwe72uI0W00cXn0 z_CNoH#8U7pze8Hjlq4%FXutJ4;MImYGOD_yl~PmLbHW$bBVHf1n%1TgaOi{m(ddY$ zu_s{<=_z5WmQlad{(X(rmw1?bnk0UD0>=Ie3*%E&inIG4|d1qDJ|_B8W&l|Tu4)YALK_Qrg*;m)rBiVT?6 zygh&Rc%s(MuYcFSD`DOL!j1brxFVx5%d;u2B9Y3;1^jW6QbKw}E2oD2QH_zHRn4^T*}=@TP$5Pi8=<@ z_BNIU6xMti-2l;OX>7<`Ugc&|HB}CnpQMMx;)&}eDd?H})QvGw>m&*Z7NdMO1Avcp z)m3FS?A$PaJI(TH7`mc3jg&jcCe{8e9Jpd`@U!g?)nneJe<)UML&P_hp?gp}l_cnBUZtNQ%d z?cU~0edAE&AB9Qa9M>S5wYxKdX0x&vKt9s;T8@ycuXypd56w40=Pv`m* zWtwu&F?HSB*x16GzuJx9zE1d<8?Jyueb3Y4s^x!Y{B}(tlrCyuj+`Q)?FPbhlV{#$ zWg!9j-prMs_!TCvw?i`^GE$#BBS=;-E+RnaCoPkS3ca2ieGFpDyJGLM@^Zule;=H7 zKfItA5fxO-aIBywUYd&{neT)gjaq5w^APtgy?IlecX!RRLaXO`_q>Bu;k`fSnL9+V z0Fs{=w<1a}zmp%5qz_Nk<5nhwf}hbXR4WP6mUp81A7g$r`&C}f0=7Xs?%ba>ltO*- zqZNL9;^RZn6jhB)Ff>Nmst3>eFZTV+(oyKS!Azw4~@SmhbLl8k~w_T{ChH_9g_Dut` z_K?hryt4aMC$>!ACI;~$!u0hgey_{?zr==dbo&C!^Q^+6$%(+Ank<*m5uoU+^SBkn zPLKhV>i9x+oMF#G*#M`6&hqO9C2d?i@T|3H{~@5ec6IJ4rNI@wz^ZhiUpf=;PB7xs z=NWtd2B^;GMn&3t4>GZYORCJDraywb2wx{c06M5Kw@yuQ8y>#h9B|xdX-t>K%t6e>udv~D zUqINs{0fi9Msk+jQ=}g;T~^6#v5BC~Jb8UAcYyA2avUKkbcY$`7__(Ab$)$a{%H1&rK>93x0D35+7!@p488F0 z#D?h2YZ07JKjqfft%709xo7QI@@eO+{J?$UHbw<`4(;VGcrnO&K(}VB_1J&Ku^&tG zwU~Kg?!A&xcIgnSwMRyd5L6zl>oqaiu#xL=i!mUe=te*r3obtiMeW^2WbPTZEG!Iw zJkFa`8yE48scM<%rpow{xwjlKBTn{Od425=yD|cO@t2cYzk9GMJFaP{Xwy?~{~qKL zu;M`ZS-qo~a~qopa_cWv%%+x@8>WTt)}`$}X6>kc{%7lBiw${Zxj(MbGCsKOy& z7XO#3UG|H_ceJ%FMbQ^RP4Nno(h9pMn`DvQ@FVfxJd@DNk=aJaQq{%SQN}MypE6^; z7-s`Lv`>RiP3KE!okCAGwPK#o4E?!4HuUO%88isxLtJ(#riN`!7=Mwe*6DcQEbJ5} zaS6ej)lovIv-6SaGHQf_-zUvVuD@LHd>RTkxDWI8DqjTtU3{~QOJ~Rv>(M*vWva=8 zgVnsabSlqs)SW7m$Mvn~>5Dmidmhid6)4*sleXun=Tk}}D6uNWZ8IvUMy_~tPBO(W z^J^pdK(4pi=6G|8cB3-uu#}wlJ$KP!X7P1@n0B4u>J2kwq+=c;#EFYXSv1FZq*>cm zm6RByoC4SMGZ?uVZp1^>gKbX)7zJ>tD}-@GP{pGLfdEZiRrQzrL>Wzg80>WN-m_`e zq0h^uRUxxeZKB;&&*638 zw)JAv%QyH@)!?7s!%|jIBwGlsQw~h6q?|9=?iAc^FKqcLRk_3;)M8j53j`N{ucETM zUgGzmQlEZU7?$q%d>C@hRKYXtFL+e(uM?oWv%)@sm{PB zYt&@*#!|U|apFmC>(u%hB{;(PRu|h2{fiBz>SX+l#uWucm2I4#?j`;bMy>lPh|!k( zTWGTqz}GONuO^cFu?MD$_)_iAXKH5l&S2SX@bz=A&~E&l*BCL zPM@=&=M<*MBye2cGZ?=n7jkp-6hxRh?|IhycRSp{jj30M*tln}iHlOUGOZk7iz|Qs z6{^_N6R0!M?-crdHq0=2w)RFyEufyNbmlmzStZvlbpHUhZ`68UHS(X@u&mco%>PFm~15;W*q!{hxfiLO?)3==fTM!W%g&+FQK~D1;IjtudO& z2o4Hrer1^2-lmUnS{@A4^D>L3F&N1rT41$>sA}{sE^R(!dp#rB}C@^l%WtZ2H0XXYmM!Plca8!J)4j&h!fY@V!|DMrm1+w@Ra_6NC@rcX|i zGh^(R5>RY3Ngu+QUCsCH<_6~0t+ddRe1vfB;UbWUOTU;+4_yQw(pP_mPB%TI668PyFQ)n_1DyZ#mhB*1X8I5V|FW< z#_BmK*&7Unw&aaIWv2xx9vknGf-D;xPEpxAKSst)Tfm4XCm)bsg`qsx4OC@On#8q< z#HE-%)^PT>MSLC@smIWq^eFSF&t1*ySlw4FcT$sWF->wuABFvnB9@r{V8>ck56$*3 zb9D*8{))mCwt|G1`7w(Ey?d*FSqp4Eh#O&bcE5UyXS~2^Z@ea{Z&I(NIzCmp0;uLR zSZntjYd|F|tdc!|_5_yToGX1}vhmmcl)4-a)Q>B|v^jwl4gXQ36Z|gasCixl`q-$0b9IuYz+8YKIg5fnay3{r z4E?hD?TQ5c=;mgq$PB%7Ttv+?!fsC#h;MW&9CJKyvZ~JNNOKVWa9-kWGAFtCwQT9F zGo^0l+-=coqNSc=acHx>g9>--jvQ{Ry%=6~vyaESX0pY(Kt91+gN3+~6t3xf;1kn+RTdlw&65+5nh1kLwN?(N8~MqpBSZZ0V4o(lcXOO zL!qjK1f*zxJuDV}haI zILvJGZHHB2-yd{TWhsVkjH};bG;UB#V;t&5hl5*rt{_7!RV ztiiz3GVLcy&3>H8tJk}9XA3_N=&o?=Rfo4O7!2&#V+HJDP6Crg02EM30yYl-&-{#a z@z38(mp)ID`v^m)7OeO)^5RI_39}+4^G(M06}}b}*d+ic%mJQhS(-E+XwNAx03FSMOv-lm!_xR+p+r zUMwNN@o%YiUyQj#Z6LnUrd9;Ie)BD{H0t;m{?}Tlp8|`2GM3US2qF@*I8+`}$(4E$EW( zHXc+fe^7h8_{D+oJKVm7gA-3vI*T06PV*koIyQ2oy4V7<(988p-_w zt~vwQkTiMewwQ-&r}wXVKHB2AtHN8`xF*SY@j}$rF@f8##i-H@Drait3!|mD6`?dDsrhYzyyWsHR_0FTbA3^rOXs#G^ zyH^!-t6Nml>4z>Yx~Y{HV*}0-k2knIzD$&G?3B`RRs_bpt}=SV`L?~gRf~Cx3W-K0 zuAx=0;;?dAa>K)n=Vp|yF8|QG<8yz__=V^KyHv;K#@Ow1*77?iA_E3WCDj#s#~TxH z*v7F*#@tkb;hp&%8~yzboA7#C%HF=5%8+l2??Gb2?)8F`c2fo+3m4>d%+Q-r@~2;t z^Y*^cbgzrhJ;Pa+AAx@!-szXlG_@;a&I*XQIJPO{Q7DKzWrZLLmCH4QDrlj+*`8b2 zXq|_&JdNbsy}(Ycwq5DmD$N*44Vn@B^?E909yF#C($g{S49nPh#WeOs5pg3U@g@mX3)z^~csvcyIhSMo# z+r+LMV;M{N93z;ujg1Y}O*)UZzQXj1T?emhEg0uHBl13=X1w|)QAsgGO5^?{uh!(| zfY;X2XZ=QNrFxNF(;IJ>dcbFE!0I&7*eV{(;)k0RqQ=n?8EE>0wOp-qju%Qw*dt2M zH8<*I4s86dJ@S8inxM43tEm?!FS2RK4Z-MWx2Gwg07AgUw6O2qzjyCcTksl26vTr> z$&Mau*cy-4BTk0+)tGfdeNIp%4UJs8TNg^_f=!HYo>5b86%AnyefGK!!s7#y1!s zmzY<)bELCeUETPle6m#>NnCOQWLSzH!k0aYK^p)2Mbf}{EkN=_{pNDVl8;!D!fQc* zq=!(qhPr=e%~=VH;{As(@*yF#{ZDu!@~_czCB^qXk34!HDCvm!Olw`!70b*~w#FiC$?7BjY}q}r23A~-Uezj2ObT@PzG?(pqgfs zR_>1z=?ohz4K=?~$Ho#S^w6lz2Lwz^vIZrHU$ul^%f#o!Brk{w5>ovjMQ=w1(Y5Xx zt;{c5+JhwBdUu0ExL8- z?`dY;ct@S)q_e79$AY6usN52dU|-F^=F5F5s3YE03yOldm29#9hF{~l- z2DO}TxZSOiUxlt)k~fjz-+o=XQ!}vB+YDl7=LsB@0@ds@2B8yIOc>wqi{TWMBTo(Q z3{^dC^1hjp^Z9D3G@7Ti<%E_Egm=>}p~Z?iAAk(Qt|S6XB``~Wg;cmRsOEc?P~E-0 z;ZmfkLH3~#1!$ZAwmdmMRH3CcfsVwZDNMG2empOZ1~@1RXmbzo!XMB6&^)>@8KVKk zbVLwPbP*Y|gvUb#akLrXH-7CkRn&-#>0nUEX9fpGHx;XAPPJ%LOr&v1)agZhorx-x zh-0tf>l8F7)Mjd{kN~AJm*s!dD{`5pa5{s_Kys5F6r!@iJZtNTd8ziM`ZW~hxCliy zWx$Mv#^FNZh$1&j<>H8?;_27PJ3?d0iw)vSU@CL!wXl^d909h-vEdsPlSX}%6x#UX zS2!G3tLD2PUEfT=U#(gMXQ_<1J>e>)bCnZt_0m>QHa&7w0qCf=3#u`89l(M4Hucy4 zwy#pvC3qOI8&b=rVglsEv;^P)?En^Cf;l>f(58P(({Gr~9~T@H7P3+I8&cz%fm^E? z!QkutWK}ml5RH)RH|B-uyhN^PsTkDVq0lJpTKF+HTscr(i8yN~eoB~8OLdQ_*?&kGh5+($bP;f!Oc}o|n)O{*W%jOF-U7-G3+u6=^i~9zH6GMQ&RvMk_-^Q+LQ6 zs{wvHMwrv^H8;1S-4l?bL;;DLB%0`C=BPN1sMPed8ikI%l336eo8}U@zU zlKeGJP)B2v7b!J#xND$u=C7|2W>oH#e=^VDMXR()@I=pFEdJum)GJ|so2Kf$7&PS8 z2PU)C6^cJy-AWySA$bYHcIq$YWWeh;Eag;8=(eHN6tY`15il0O(OU<4SHkaB2SLoO ztNMa`>FWzpo*k8FRg2ydT+C15==N3_wGlOIG$I2T1CGv}Fb)O@m?(BYZ@N{QB!9a4 z;gR#oiq1!Fum{qbhw>KNSbZV&KS zZ!WpWpH#n=2HRE_N33-LNYI!|+5=$+EpXU!KQE>IGsf%VJ8E_l&ZZkPq!e#|{aRPr zS$;ofcl|V=U;(1ezTCZeqfjUg_b9FzvTLp9(x}cNTX2t%tVl9Kz1}@8c`<7=a=CS< z7ijWfRa`sdxWQWPn~YpLBID8SPKa`CpxAq`?6+*+kcXoWiuUhUHRzpmvm90wtH^n3 z#XVckyjYXE7h|>+b-wkHNGE?%&j29v?T~y}%$$c0M=78w(*)>>?kbx>-MP$*iD95S zIU%1%rwM_AI8e^m5?ONI_#IcIUarPbQUwFTFT~miDFb86UN+o-f!Je2fnA3cJ~(?{ z==%ohDTUjwtvjq!kC2@p`(6m*3Wc|a>rI0N&nQZq^h$JIy7U<|1!lZ7_LUA|k;X6d zu0+zwGh2qXf8jZ2)7fF0b;2&u#QlU0z{O*-yl%KYEFkaQ=s`7|E7=x#b^|yGh*MN(5FA z$8$aVozb;L+U%T=Pde^Do831W?|*0=c=!oqVdr)Dt{kE>c~K|5!xvrp?zaq_33BP@ zqUWEYg^jH|G9g{ZHT<)-@qxdL-^tlLokpy%XDr1MyvCy5-l%eWcB#kBRA%?b>27S{ zx?j#Mm+t)dq3b?QN#5Ff7iib3?b>$g-mk6eRUA(Fi6}aap7`BEGiKow z)Ch4Zh%&H(&Z<@4@+R$G+}ewh-6LQF$f3=;IGQBSIE1sK8qa~2bu5P0Gr!f)I4hyo zM;_hhPA(HO;`&&=`&8A5hHWpCr$VkXzO!|@7vLXUUGh3WcE{JjAg=D8Ca~AI{M7T4 z%<01iB;OOtSsxRYR`CbZnXCADov1wWLQ`YZ9TO5na!`1J%QhO3BCEzg6i;fI)-^o9 zYk=6xs7|^CHGOcpGl(}sb*m8w*rqdgjNLHnjL>MPjf>qmjwXt-&M)j=~s0c~3#mj*~t;d_5b^79B%T_6*IeP@3Imm#p79@hiH6~hS;*U z8ECi|-*8>jbJRI^xjp~qrM158^&c@&1#df=fQ^b^b?$2A;0b_-f1`dGdr~B0hP(!F zlU#vi(wI`Cv`-bEHLapvwCd5}VipQ(5h1^nE)XdZ25!^Cu*K`VPCr z`@+5Ntwyu+@BC#e_0uQcVcCl-keae8KCJvxxt~w4Gu=afZ@!ee22jIXDh&IY`@{HH z3~cnncVzG+N|&+MEb`^>PPiaVcm@Rq>zf(98aIsyVN5574^cf5r?S=<6x7tD{Oib} zh158X7FC;}v0`e<_#P_OqTp8VaftQ^s;at~*%5gtW`sW+`I6EDQ<$Qn%xVME$HSNQ z{Sof&XH3jf_|$4fpllkT>u({hoeOGQWBWw|=49dO9q`PJv$>}2)SkB8b`pI57!Rl` zLeyF~jiIt0V<0O_iZ$QLrWfs7nVKfe zAd+dBBEEvuI5XLlQfX2uP}7S|nlJc@3gl>#0zQ?ah#;6Ks0fINAPC;ax$CZV|Ao7j z`shR4pS{oLIcJ}}_lKNa1hN*5X5zub{)LF|3m`j5k0~uxPbK>Jy_~MEA@Yvj zAVV(vhsTMhOr6T_^^S{9C0}2r%p`T^XKOl(#sn|oQB=BT$qib%GWnQu;(#8x{ zyXa?Ml!fW&Y?7{nqiC*f03(LY=NrChrbY0tq_@^Jl#%vco#ceQFL*`j{gdAqvGim2OIKLaG_xKlvoFZ5qd>tQXj8^ST3 zQb%velU8M&fUZ@Uad2tdsK&fNX;eVNDRh5UkxKznooZm5YbHX>(SyO-_z9oIAu8q1 z_lk3d3r$tzCtx+wOCl`%=!M2S7CMeGfj#wtZP3**;$T&7Z`_8!TW{*MKk9ZjwwZ^i zc&2UDFGS53&LK!y$BiJ0!IHHnZeAr%;=_n_?wyFhf&Mz;r>t+W)&49}KU7>LHRb7l zL2Q(`D~X^ZNp`uc7}5RU|DfahwQiN44*Xck1ugS7#`W(_T1kV~#WUL@KTret{fmk( z%Z+Xb=JPfw;*SI~=9Z3{ZD?|7mR>IX z_1n)+E8i`2`wc!1DMV|o zm|bET8*WtfTGg`5Y9_{`Yb?+9CEL1BhHNDU#T)Pt`KCJSUi-sYr+%#qh=XwfHen7f z7HxN5XSq+r9VWt!ms|6rV}vC@FWYe81^-WZz_nI9zdR8K+reOe@+ie=3jbZnkta|4 zcbeK-sp?&7lDORG$_b;zp!j1J4-3Clb-OHmX57ZD+F$vwEcbW;E|uZIs1nNJ$KWS` zkDs*16|>ncKa7}h0iQkw6wMLU5Q&>bV9N9g>edk(h13&#MG!>JQ(|X2LG9>0bwd+1 z6TpOq$riEsQd(=n?e*UgBqs5C1jeD`>i;$E$PHv=RNsiGP*zR{w-W%9^_pO*KVd9T zNAc{9LjL2iXw;OC>d?2pO^F#Em1m#md zd|X2@|6gw1#<5#+kfkx@)$<2zQN6sI;kKd9 z6}q}(V9sRb=m^q(=H-Lvg=Jk2|Cs}^wDc}52XzCoJJA*Bs z)uzGcs1~P2UVL%-)zvIns!8OuBkfGbO+uqu1m3s*oLlwm1?oAU6Q6D<{e(#g$Zi$u zH1XL0eqtty2(JuBxZS`5vm z(tz*SW^%)309rb-j!}W4*XsB_CI9W*N!{1awj`R>fk1dqxlnl%=dzn{xF|{P$~oupJq3052)Qj z9@=oFtS{`vzP~>IQ7ZeE{%Gy=?^4S@yw+Q;uiUyZ+S&ejs-%l}vzT%Bw|5|8Yjm$9 z9jLHa*u?Qhc;*?R2z&0`cUS%qw@GldMJ&7VigiTw9PG+&pYPW+$v0bk zZLg)JrqwZ-FO_8FG}8;_Sq`R0jrf=^67y^kyh8|Eg>x<=83o;bn)Z1WI`$>@vgWj% z1MK#L{t0&7-L#(ozRvHU8oPO6Jf<^!Sk!jO?U>W4qc|<9u$=EvJ(-Lupi%sl96@*jjn+8IaVPcxJ*Bx3UB4 z7p~UM?5~u7%{w}w(`x=jlJJ^JI-7mGz9Hd8pVD`YMSix#f18gH1d+C{~KAA3@<^;5^^BJtn`^^n+6 zSc3G&XM4eovzKv(@f6&wA;v$z-#H||Gd(-S&pzzz%C3nk0%<`X(oG(g=Hx`pE3-vQ zyRKwrrg-<9SG3kQLM>BmJqBT*0J1nuQs)ya3Vo+!aa?Tps8{7jn&dvmdNA&hHAW*U zhdysEr6t&$<3mb%od$rywgERHwW2|v;&_;W)%G`G6mtVDO#S>NY=t{@#kd{UqHn*& z>4U7^@mMd0={p-)IwfjTws;(-1;$vxj$3;Q2`i|FBz8{d5>M1Un6=FDVDQ^6e|qE5 zml@WYpL4mSHr0Y+o?9S&+$NGjYSS)H;?kh@f}&MFRRliW z%5f`=SquN{N{d=~uF~&)A=R^qf{p2hZ_6Fcz=$2-4%=zw41Wbc=UHV?+_b1oi)Ot9 z(GX~@j0ou`&(}s(!jHX*An9U+4shC68I;5ITxy#xfgpPfQ9eXckoV->*(d}?L{nz; z>@MM7%un1pI{Ny-;ip{4V|O9Qsl(mRiT4KXo4e-Zr7@AUC+BvW9_>oWHnc9abFjU=I6Qug*%(&)RO>IkUluq*ou%Tll#DsPfhj7v3 zdg&pp-9B^)jdk1EaUeM6{adWfZ=PR}4;easv)cifd#o_b*tfnp8ppqSyllHYeaUUg z3e3^pps%RA0%@Sh+9oobXi-H#Ce7LLLr<~-;YolyOteVMDu;`-q1#_LibC#oCGiR` z->Y(*j{dW6vK3_ohp-CeT~f#Ez}#4P3{{KiLG(YAzfTqr6C#TMW9>q--4is$?h#O) zNsG$v@j{;N4{$x2|1TR!Z54Db0-gVZ&3J7>QI}us8tD0q-NF(!#y(j@b3fbQE+k9j z;aiz8j0_8%Fb`+%1`4DeB-0l9@2(~izWbr8AislB;c2?Bt_^wY4(P#|PhagEL1@@k zRh5v|;3h1+nmZLXcYp=VK>1n&7ehuq;EP&~$nJPo4!XO!_N&{D0yd6{s^vw%<@>5g z35cG!m7$fVyRzjv80kbx7oY3-EGpX7%4)W`!5Fxi#i|6k=AzHoz##z{-WIS&V<*eZ zc9RAYOeqVpk8Or&DOxIZ3zDWM%-wi5>Q}u3-nsA$t(0TDI?wS-V@XT{3WlL1?qq|WXV zdaZAcP*7%Ph2G?6x@QKwW8cE8`yAH>TZNM{zJ_>gqPEE@kYJgGvtw>g&3k|7%Lv5F z3ODOT$G1QY{bW(srSu|z)eX#eR*%wYrySo?gycu}q{Wgq5MjnIK}8&GEah0#`(}*Y zOcYcNB?%}_#0134sgQoExeEg#S|zer0d{rQLtQeMkHTm%h~x?_M#jOQm`;2g`QsKv z&)cl%EP*N^Ox9(jkuj0A?w zEtKLxZ-jOgDk-K1NN*snVV4%ostr)E3Ei5IX;2YBaBE6|8$xw^XiF>A@iHJj!G`$0 zhGRi>X9K$q(UkO=ZTol9%uw`WnIeGwZPJdjb3d4|tE>(}R;;qR!B0+2ZnA65o}H-G zloKiW2>kTr1pu^f3=-{Bns7I#U0VW`+l=#lLfBc2K5V^8vVmX}TbeNVco74OnTif% z1$8zbE_fg6S~WQmDe_;`pxdOE51>YC{)`N&6{RM}n?L5#3xz%Ed z#<$bBzl-KL-jj+t=x430(zk+}nB6Rqm%?O}44WunmK^oNhT4IPs@ACBBO! z=bW&Im|-HI&?=V42OuOJ&=pq03bz|z{zmcnM7NNT&d-{O^vvt6C+W8D1p^z{WoYTR zA%=bh8IM8I=jX+9^);-P19NHK?Ee1FNe!>B<VwHbe3C%q@{nr&#F z1RY4DsKD5~$CZXw?vB_pI;r-9)E5zD-JzS-^UUc&z!q%MA8ZBcx~n8{Th)*Ipyfuh zG5RVQL&uSOy=(&kk1*}E_4(lkD!_&2P!xx_JF)?S32xmRCQL{%ltz7lXu#1-8IWk@bkz>O^poS3J z72SnchAO)?E)36=d1!tgi>?#ym+t9;fF8jqaYW(lvX=L%%v4%W%J-U(Zl75~_Wy-`sYAEUKiM5+VUc z34|>g$hHr(jZ0s8vyR2lmM*IkCQh5M?Tv;Dy-M5N)v7y+cXjQpzJP!(Wo9trIy zp*#te?F3^lb+3;aFryp-9X7M3C~jBf|FF72`uhzAE$YZ_ZQDCe=LW=VzZPY)RZb)1 zwsE4IAC&vq6Z7Gw%m&=)I+d_S(%NJVq6m}F9mu$PT^-_X5fyfwQj2)Gs%NNILKt85zxEP0}HfQ4Czh9>Q&Wf1%-10sE z&3Et*CT%RCx=<^`^OdnZFi9VORlevi96Ad#rYgbo6?J_QUZ)k$$>wpOA~@;lP2gZLml=M6Q`yq zL%}i>EJFdfHCl#(WhhvNf@LUJhJvMY;_^Xq`Eb2_Kv>=tEJMK(8ZO7#{$IojxEmI~ a+;XP4;#X?MQdHRL`y;`JE5Ez+(|-dDprU*L literal 0 HcmV?d00001 diff --git a/res/screen/android/land/splash-land-xxxhdpi.png b/res/screen/android/land/splash-land-xxxhdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4f263ade2184eb5313a5bf96bfeca175b0fbab GIT binary patch literal 52757 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 A1poj5 literal 0 HcmV?d00001 diff --git a/res/screen/android/splash-ldpi.png b/res/screen/android/splash-ldpi.png new file mode 100644 index 0000000000000000000000000000000000000000..46d1e4f5b9e37a23509795fa5329be4a8663b9b3 GIT binary patch literal 14237 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 literal 0 HcmV?d00001 diff --git a/res/screen/android/splash-xxhdpi.png b/res/screen/android/splash-xxhdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..4543805485e15b68b078bc16aedea8f69582156c GIT binary patch literal 47899 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 literal 0 HcmV?d00001 diff --git a/webpack/dev-app.config.js b/webpack/dev-app.config.js index e3e2e7d12..5828b4d2f 100644 --- a/webpack/dev-app.config.js +++ b/webpack/dev-app.config.js @@ -1,5 +1,5 @@ const webpack = require('webpack'); -const merge = require('webpack-merge'); +const { merge } = require('webpack-merge'); const git = require('git-rev-sync'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const baseConfig = require('./base.config'); diff --git a/webpack/dev.config.js b/webpack/dev.config.js index 2606bb4aa..ef0d1c48a 100644 --- a/webpack/dev.config.js +++ b/webpack/dev.config.js @@ -1,5 +1,5 @@ const webpack = require('webpack'); -const merge = require('webpack-merge'); +const { merge } = require('webpack-merge') const git = require('git-rev-sync'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const baseConfig = require('./base.config'); diff --git a/webpack/prod-app.config.js b/webpack/prod-app.config.js index 9bce3b673..8c585d945 100644 --- a/webpack/prod-app.config.js +++ b/webpack/prod-app.config.js @@ -1,5 +1,5 @@ const webpack = require('webpack'); -const merge = require('webpack-merge'); +const { merge } = require('webpack-merge') const path = require('path'); let prodConfig = require('./prod.config'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); diff --git a/webpack/prod-mobile.config.js b/webpack/prod-mobile.config.js new file mode 100644 index 000000000..1e7cdbd5d --- /dev/null +++ b/webpack/prod-mobile.config.js @@ -0,0 +1,45 @@ +const webpack = require('webpack'); +const { mergeWithCustomize, unique } = require('webpack-merge') +const path = require('path'); +let prodConfig = require('./prod.config'); +const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); + +delete prodConfig.optimization.minimizer + +module.exports = mergeWithCustomize({ + customizeArray: unique( + 'plugins', + ['DefinePlugin'], + (plugin) => plugin.constructor && plugin.constructor.name, + ), +})(prodConfig, { + plugins: [ + new webpack.DefinePlugin({ + 'process.env': { + BROWSER: JSON.stringify(true), + NODE_ENV: JSON.stringify('production'), + IS_APP: JSON.stringify(true), + MOBILE_APP: JSON.stringify(true), + }, + global: { + TYPED_ARRAY_SUPPORT: JSON.stringify(false), + }, + }), + ], + entry: { + app: [ './app/MainApp.js' ], + // vendor: ['react', 'react-dom', 'react-router'] + }, + output: { + path: path.resolve(__dirname, '../dist/assets'), + }, + optimization: { + minimizer: [ + new OptimizeCSSAssetsPlugin({ + cssProcessorOptions: { + safe: true, + } + }), + ], + }, +}); diff --git a/webpack/prod.config.js b/webpack/prod.config.js index b757e9a71..3226861f5 100644 --- a/webpack/prod.config.js +++ b/webpack/prod.config.js @@ -1,5 +1,5 @@ const webpack = require('webpack'); -const merge = require('webpack-merge'); +const { merge } = require('webpack-merge') const baseConfig = require('./base.config'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); diff --git a/yarn.lock b/yarn.lock index c55f11db1..b22e6a257 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1287,11 +1287,41 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@netflix/nerror@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@netflix/nerror/-/nerror-1.1.3.tgz#9d88eccca442f1d544f2761d15ea557dc0a44ed2" + integrity sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg== + dependencies: + assert-plus "^1.0.0" + extsprintf "^1.4.0" + lodash "^4.17.15" + "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@npmcli/fs@^1.0.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" @@ -1329,6 +1359,11 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.2.tgz#adea7b6953cbb34651766b0548468e743c6a2353" integrity sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q== +"@red-mobile/cordova-plugin-shortcuts-android@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@red-mobile/cordova-plugin-shortcuts-android/-/cordova-plugin-shortcuts-android-1.0.1.tgz#5ac176fe47d9be979a313f53692db6a56d28dc1a" + integrity sha512-WlmgkCyp6WCTV/Y/AW9xg8gQrnxwGD8CxH90uWglHops8Uf0vsSnWpvxrlGQTjpOSavnqosgrnge58kkhd7ccw== + "@shellscape/koa-send@^4.1.0": version "4.1.3" resolved "https://registry.yarnpkg.com/@shellscape/koa-send/-/koa-send-4.1.3.tgz#1a7c8df21f63487e060b7bfd8ed82e1d3c4ae0b0" @@ -1614,6 +1649,11 @@ resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.6.tgz#8a1524eb5bd5e965c1e3735476f0262469f71440" integrity sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg== +"@xmldom/xmldom@^0.8.8": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -1775,6 +1815,13 @@ alphanum-sort@^1.0.0: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= +android-versions@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/android-versions/-/android-versions-1.9.0.tgz#433d53fc6ed5ba2b8d3c2801cb5da3964013274d" + integrity sha512-13O2B6PQMEM4ej9n13ePRQeckrCoKbZrvuzlLvK+9s2QmncpHDbYzZxhgapN32sJNoifN6VAHexLnd/6CYrs7Q== + dependencies: + semver "^7.5.2" + ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" @@ -1815,6 +1862,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" + integrity sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A== + any-promise@^1.0.0, any-promise@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -1998,6 +2050,11 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" @@ -2155,7 +2212,7 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -2178,6 +2235,11 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +big-integer@^1.6.44: + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== + big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -2237,6 +2299,13 @@ boxen@^1.2.1: term-size "^1.2.0" widest-line "^2.0.0" +bplist-parser@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== + dependencies: + big-integer "^1.6.44" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2266,6 +2335,13 @@ braces@^2.2.2, braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -2707,6 +2783,30 @@ check-error@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" +cheerio-select@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" + integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== + dependencies: + css-select "^4.3.0" + css-what "^6.0.1" + domelementtype "^2.2.0" + domhandler "^4.3.1" + domutils "^2.8.0" + +cheerio@1.0.0-rc.10: + version "1.0.0-rc.10" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" + integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== + dependencies: + cheerio-select "^1.5.0" + dom-serializer "^1.3.2" + domhandler "^4.2.0" + htmlparser2 "^6.1.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + tslib "^2.2.0" + chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -3175,6 +3275,95 @@ copy-to-clipboard@^3.3.1: dependencies: toggle-selection "^1.0.6" +cordova-android@^10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/cordova-android/-/cordova-android-10.1.2.tgz#3abfabb5fbc77dc3b90d7173c64cb2f8ad3d80df" + integrity sha512-F28+NvgKO4ZhKFkqctCOh62mhVoNyUuRQh/F/nqp+Sti4ODv2rUa6UeW18khhdYTjlDeihHQsPqxvB7mI6fVYA== + dependencies: + android-versions "^1.7.0" + cordova-common "^4.0.2" + execa "^5.1.1" + fast-glob "^3.2.7" + fs-extra "^10.0.0" + is-path-inside "^3.0.3" + nopt "^5.0.0" + properties-parser "^0.3.1" + semver "^7.3.5" + untildify "^4.0.0" + which "^2.0.2" + +cordova-common@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cordova-common/-/cordova-common-4.1.0.tgz#06058ea00e9dd0c635b6884617a0df81b3d89359" + integrity sha512-sYfOSfpYGQOmUDlsARUbpT/EvVKT/E+GI3zwTXt+C6DjZ7xs6ZQVHs3umHKSidjf9yVM2LLmvGFpGrGX7aGxug== + dependencies: + "@netflix/nerror" "^1.1.3" + ansi "^0.3.1" + bplist-parser "^0.2.0" + cross-spawn "^7.0.1" + elementtree "^0.1.7" + endent "^1.4.1" + fast-glob "^3.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + plist "^3.0.1" + q "^1.5.1" + read-chunk "^3.2.0" + strip-bom "^4.0.0" + underscore "^1.9.2" + +cordova-config@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/cordova-config/-/cordova-config-0.7.0.tgz#a1e6d2cacaa4c3c5e821840932832fe44e5448fb" + integrity sha512-3ZIXl0qAZypaQevZ2BUUDqrSF9I+mnikuO5e641s29KEKDhDIQMq4v/iPNoV0/fxOYgeCqPNnjwJFx4w+oGSQA== + dependencies: + elementtree "^0.1.6" + pify "^2.3.0" + pinkie-promise "^1.0.0" + +cordova-plugin-advanced-http@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/cordova-plugin-advanced-http/-/cordova-plugin-advanced-http-3.3.1.tgz#903143a9aae3577cdbb6953fbe482902983b9237" + integrity sha512-hESuB3mxIHCUrzb5lm7juda6PSNcC5N8Invizj5wGV2rSldCapiNxMTEpzKR1UVPDDP2XOtBzO0SAYS+3+g/ig== + +cordova-plugin-androidx-adapter@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cordova-plugin-androidx-adapter/-/cordova-plugin-androidx-adapter-1.1.3.tgz#aa7e673ee342de208a6a34a50986ee2ac4b5ba60" + integrity sha512-W1SImn0cCCvOSTSfWWp5TnanIQrSuh2Bch+dcZXIzEn0km3Qb7VryeAqHhgBQYwwzC5Ollk1DtUAk/AJSojuZA== + dependencies: + q "^1.5.1" + recursive-readdir "^2.2.2" + +cordova-plugin-backbutton@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/cordova-plugin-backbutton/-/cordova-plugin-backbutton-0.3.0.tgz#752fd68fff83d3917ae1eff6de2cd50fcce024e3" + integrity sha512-vPQQ8SZk2LcNP89sFVnZkFN3GChERSaxO1UlS2O+a86qUJZpzBgA+21C978wo/w43tk1+JDbzEw+PTIbYcex5w== + +cordova-plugin-badge@^0.8.9: + version "0.8.9" + resolved "https://registry.yarnpkg.com/cordova-plugin-badge/-/cordova-plugin-badge-0.8.9.tgz#c3b91e12ce18a51e42ede46763978583ed6c6d55" + integrity sha512-oVv+z3B7Jgi7/gnE/jvSnjBsBNwZVoLmJYwTUw3nLmp50fnY22H7NWthTachEdle2EljDk8AzvhuDpdf0triIw== + +cordova-plugin-device@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cordova-plugin-device/-/cordova-plugin-device-3.0.0.tgz#e70d6def715629f62b96c1e0ee5a1299e96b1341" + integrity sha512-g8fFYOvleeYpklWvHwZ/T8/IzJe/3O0MGVDIUoqBru4v8SNDAbNVD3oOqoOQANBWGFQMg7GIkAAl8errCHZ7zQ== + +cordova-plugin-file@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cordova-plugin-file/-/cordova-plugin-file-7.0.0.tgz#40e72468e09439c402c81ff063d6ee74fffd763a" + integrity sha512-mSwy9GE5pHq2ZHhu/wYk/VhrwR5VLk+XQsk3+IiiFmDgcPsrVIyELkM2FZKX09cC6i+bJVTFVKUlwteSStj3ow== + +cordova-plugin-native-logs@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/cordova-plugin-native-logs/-/cordova-plugin-native-logs-1.0.5.tgz#43665b44de2f613d381bdc9352d53e4edd0890cb" + integrity sha512-X+l78oqw1U+eZoBF1nikRSa1vUlWw8QzNRPQWQ4VHFfjPUsfC0uvoDr2Spgn0tuUe+0kJ0ovRNeVpgWWb5LN2A== + +cordova-plugin-splashscreen@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-6.0.2.tgz#2151ee7256fbd64f07a84951854687855c56856f" + integrity sha512-7JiUfnInir+SCOEgTJ+5/cHF3UFl69jp6cAQfHtJaaQt9Pli8D8yTJjU0HGlJCvryvsVs4Xlc7/sEJM7vLJgvg== + core-js-compat@^3.18.0, core-js-compat@^3.19.0: version "3.19.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" @@ -3440,6 +3629,17 @@ css-select@^4.1.3: domutils "^2.6.0" nth-check "^2.0.0" +css-select@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + css-selector-tokenizer@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" @@ -3483,6 +3683,11 @@ css-what@^5.0.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" @@ -3730,6 +3935,11 @@ decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + deep-eql@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" @@ -3947,6 +4157,15 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" +dom-serializer@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -3988,6 +4207,13 @@ domhandler@^4.0.0, domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" +domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + domready@1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/domready/-/domready-1.0.8.tgz#91f252e597b65af77e745ae24dd0185d5e26d58c" @@ -4010,6 +4236,15 @@ domutils@^2.5.2, domutils@^2.6.0: domelementtype "^2.2.0" domhandler "^4.2.0" +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dont-sniff-mimetype@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz#5932890dc9f4e2f19e5eb02a20026e5e5efc8f58" @@ -4129,6 +4364,13 @@ electron-to-chromium@^1.3.896: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.898.tgz#0bd4090bf7c7003cb9bd31c4223a9f6aa1aab9dc" integrity sha512-dxEsaHy9Ter268LO7P8uWomuChbyML4zZk5F9+UZSozFRS7ggC5cQ8fPIM8Pec+6uWGdujuDagQhIbqjohUK2w== +elementtree@^0.1.6, elementtree@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/elementtree/-/elementtree-0.1.7.tgz#9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0" + integrity sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg== + dependencies: + sax "1.1.4" + elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" @@ -4177,6 +4419,15 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" +endent@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/endent/-/endent-1.4.1.tgz#c58cc13dfc432d0b2c7faf74c13ffdca60b2d1c8" + integrity sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ== + dependencies: + dedent "^0.7.0" + fast-json-parse "^1.0.3" + objectorarray "^1.0.4" + enhanced-resolve@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a" @@ -4581,6 +4832,21 @@ execa@^0.8.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + exenv@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" @@ -4648,6 +4914,11 @@ extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" +extsprintf@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" @@ -4661,6 +4932,22 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-glob@^3.2.2, fast-glob@^3.2.7: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-parse@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fast-json-parse/-/fast-json-parse-1.0.3.tgz#43e5c61ee4efa9265633046b770fb682a7577c4d" + integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -4673,6 +4960,13 @@ fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + fbjs-css-vars@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" @@ -4750,6 +5044,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + find-cache-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" @@ -4949,6 +5250,15 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" @@ -4958,6 +5268,16 @@ fs-extra@^10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -5106,6 +5426,11 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -5140,7 +5465,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -5170,6 +5495,18 @@ glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" @@ -5211,6 +5548,9 @@ globule@^1.0.0: lodash "^4.17.21" minimatch "~3.0.2" +"gls-blogs-native-core@file:native_core": + version "1.0.0" + golos-dex-lib-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/golos-dex-lib-js/-/golos-dex-lib-js-1.0.2.tgz#e0fe5d29781da8d0830ccb6bcfa5386bc73a2c5d" @@ -5706,6 +6046,11 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -6222,6 +6567,11 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^1.1, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -6289,6 +6639,11 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-string@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -7295,6 +7650,16 @@ merge-options@1.0.1, merge-options@^1.0.0, merge-options@^1.0.1: dependencies: is-plain-obj "^1.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@^1.0.1, methods@~1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -7336,6 +7701,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.4: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -7365,6 +7738,11 @@ mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -7391,6 +7769,13 @@ minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^3.0.5, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimatch@^5.0.1, minimatch@~5.1.2: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" @@ -8004,6 +8389,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -8037,6 +8429,13 @@ nth-check@^2.0.0: dependencies: boolbase "^1.0.0" +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -8171,6 +8570,11 @@ object.values@^1.1.0: define-properties "^1.1.3" es-abstract "^1.19.1" +objectorarray@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.5.tgz#2c05248bbefabd8f43ad13b41085951aac5e68a5" + integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg== + on-finished@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -8189,6 +8593,13 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + only@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" @@ -8296,7 +8707,7 @@ p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" -p-try@^2.0.0: +p-try@^2.0.0, p-try@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== @@ -8371,10 +8782,22 @@ parse-srcset@^1.0.2: resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE= +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parse5@^7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" @@ -8431,7 +8854,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -8496,12 +8919,12 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -picomatch@^2.3.0: +picomatch@^2.3.0, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.0.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -8514,12 +8937,24 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +pinkie-promise@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670" + integrity sha512-5mvtVNse2Ml9zpFKkWBpGsTPwm3DKhs+c95prO/F6E7d6DN0FPqxs6LONpLNpyD7Iheb7QN4BbUoKJgo+DnkQA== + dependencies: + pinkie "^1.0.0" + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" dependencies: pinkie "^2.0.0" +pinkie@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4" + integrity sha512-VFVaU1ysKakao68ktZm76PIdOhvEfoNNRaGkyLln9Os7r0/MCxqHjHyBM7dT3pgTiBybqiPtpqKfpENwdBp50Q== + pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" @@ -8561,6 +8996,15 @@ platform@1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" +plist@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + dependencies: + "@xmldom/xmldom" "^0.8.8" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + plur@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/plur/-/plur-3.0.1.tgz#268652d605f816699b42b86248de73c9acd06a7c" @@ -9107,6 +9551,13 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +properties-parser@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/properties-parser/-/properties-parser-0.3.1.tgz#1316e9539ffbfd93845e369b211022abd478771a" + integrity sha512-AkSQxQAviJ89x4FIxOyHGfO3uund0gvYo7lfD0E+Gp7gFQKrTNgtoYQklu8EhrfHVZUzTwKGZx2r/KDSfnljcA== + dependencies: + string.prototype.codepointat "^0.2.0" + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -9169,7 +9620,7 @@ punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" -q@^1.1.2: +q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -9208,6 +9659,11 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -9520,6 +9976,14 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" +read-chunk@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-3.2.0.tgz#2984afe78ca9bfbbdb74b19387bf9e86289c16ca" + integrity sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ== + dependencies: + pify "^4.0.1" + with-open-file "^0.1.6" + read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -9629,6 +10093,13 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" @@ -9968,6 +10439,11 @@ retry@^0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -10022,6 +10498,13 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -10098,6 +10581,11 @@ sass-loader@6.0.6: lodash.tail "^4.1.1" pify "^3.0.0" +sax@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.4.tgz#74b6d33c9ae1e001510f179a91168588f1aedaa9" + integrity sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg== + sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -10211,6 +10699,11 @@ semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.5.2: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + sentence-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-1.1.3.tgz#8034aafc2145772d3abe1509aa42c9e1042dc139" @@ -10339,7 +10832,7 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -signal-exit@^3.0.7: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -10680,6 +11173,11 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string.prototype.codepointat@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" @@ -10732,10 +11230,20 @@ strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -11185,6 +11693,11 @@ tslib@^1.10.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.2.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tslib@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" @@ -11337,6 +11850,11 @@ underscore.string@^3.3.5: sprintf-js "^1.0.3" util-deprecate "^1.0.2" +underscore@^1.9.2: + version "1.13.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.7.tgz#970e33963af9a7dda228f17ebe8399e5fbe63a10" + integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -11449,6 +11967,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" @@ -11789,11 +12312,13 @@ webpack-log@^1.0.1, webpack-log@^1.1.1, webpack-log@^1.1.2: loglevelnext "^1.0.1" uuid "^3.1.0" -webpack-merge@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.3.tgz#8aaff2108a19c29849bc9ad2a7fd7fce68e87c4a" +webpack-merge@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.2.0.tgz#31cbcc954f8f89cd4b06ca8d97a38549f7f3f0c9" + integrity sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA== dependencies: - lodash "^4.17.5" + clone-deep "^4.0.1" + wildcard "^2.0.0" webpack-serve@^1.0.4: version "1.0.4" @@ -11986,10 +12511,24 @@ widest-line@^2.0.0: dependencies: string-width "^2.1.1" +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +with-open-file@^0.1.6: + version "0.1.7" + resolved "https://registry.yarnpkg.com/with-open-file/-/with-open-file-0.1.7.tgz#e2de8d974e8a8ae6e58886be4fe8e7465b58a729" + integrity sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA== + dependencies: + p-finally "^1.0.0" + p-try "^2.1.0" + pify "^4.0.1" + wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" @@ -12072,6 +12611,11 @@ xml-name-validator@^4.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"