Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/issue 1063/migration to scores lib #1119

Merged
merged 126 commits into from
Mar 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
bea2f49
doc: update logs; add master debug; prettify;
migbash Feb 21, 2023
851448e
chore: remove package(s);
migbash Feb 21, 2023
e1e6b73
chore: update .gitignore;
migbash Feb 21, 2023
d180414
chore: clean *.config.js for sveltekit;
migbash Feb 21, 2023
a35ba3a
chore: clean docker-compose.dev;
migbash Feb 21, 2023
7d38474
chore: update settings.json; add extensions.json;
migbash Feb 21, 2023
381dab7
chore: update makefile comments;
migbash Feb 21, 2023
d54e8b6
doc: contribute (update); ex-widget file (update);
migbash Feb 21, 2023
b3b40e2
chore: update debug main comments;
migbash Feb 21, 2023
4f90d29
chore: remove console.logs;
migbash Feb 21, 2023
4dac704
chore: remove console.logs (widgets) (cont);
migbash Feb 21, 2023
0d5930f
doc: new structure for svelte file apply Fix_Odds;
migbash Feb 21, 2023
5d4e78d
doc: reformat README's contents (update);
migbash Feb 21, 2023
955a345
chore: re-structure components per page;
migbash Feb 21, 2023
c4a1eca
chore: prettify app.css
migbash Feb 22, 2023
94bbc9f
doc: update settings.json;
migbash Feb 27, 2023
d08ad9f
doc: update contributing/template-widget.svelte;
migbash Feb 27, 2023
668f2a8
doc: update app.css (global);
migbash Feb 27, 2023
f12d8e8
feat: add SEO-Box (widget);
migbash Feb 27, 2023
c0e2cf6
feat: add Widget-Title (widget);
migbash Feb 27, 2023
7c8438f
chore: update header (widget) debug-logs;
migbash Feb 27, 2023
a1de7ba
feat: #1055 (stable) + (assets);
migbash Feb 27, 2023
19aae74
feat: enhance session (stores);
migbash Feb 27, 2023
4cfa6e9
feat: decouple firebase (common) func (livescore);
migbash Feb 27, 2023
918553a
chore: update header (widget) debug-logs (cont);
migbash Feb 27, 2023
4a5baa7
feat: #1055 (endpoint) to hasura on target date;
migbash Feb 27, 2023
02654e2
feat: update dates (const);
migbash Feb 27, 2023
ad45fb6
feat: #1055 (endpoint) to cache on target date(s);
migbash Feb 27, 2023
a398d42
feat: page-level (home) update for fewer requests;
migbash Feb 27, 2023
db637ba
chore: update betarena-types package imports;
migbash Feb 27, 2023
a0d1379
chore: update app.css (global);
migbash Feb 27, 2023
710c552
feat: update session-store for new reactive data;
migbash Feb 27, 2023
8ef620b
feat: update loaders
migbash Feb 27, 2023
5b07a92
feat: update responsivness for widget fixture row;
migbash Feb 27, 2023
8abcc5e
feat: #1055 (cont) + (loader) + (components);
migbash Feb 27, 2023
47de950
feat/chore: update imports struct; fixes #1055;
migbash Feb 28, 2023
ba2a23d
feat: #1055 (seo);
migbash Feb 28, 2023
ad12a13
chore: #1055 (cont) (title);
migbash Feb 28, 2023
c97869e
chore: update debug-logs;
migbash Feb 28, 2023
5f53143
chore: update debug-logs;
migbash Feb 28, 2023
55df3ad
feat: removed livescores-v1 (page-level);
migbash Feb 28, 2023
232d3fb
feat: #1055 (cont) - cal outlier case handle;
migbash Feb 28, 2023
d4d3ce7
feat: #1055 (cont) - validation checks + css;
migbash Feb 28, 2023
c47c9df
feat: #1055 (cont) - bet-tips-links;
migbash Feb 28, 2023
c085fd4
feat: #1055 (cont) - live status lib-use;
migbash Feb 28, 2023
793a04d
feat: #1055 (cont) + dark + triggers + cal-mobile;
migbash Feb 28, 2023
a074cda
chore: update use live @betarena/scores-lib npm;
migbash Feb 28, 2023
df1dee0
feat: #1055 (cont) minor-fix's
migbash Feb 28, 2023
c009ff5
fix: update bet-sites logos style;
migbash Feb 28, 2023
a25d9e6
fix: unknown min value on live-fixtures;
migbash Feb 28, 2023
3a464f8
feat: add page-level livescroes listen on tab-chg;
migbash Feb 28, 2023
4d0ad32
feat: first time request data for livescroes;
migbash Feb 28, 2023
29ee812
chore: update @betarena/scores-lib packages;
migbash Feb 28, 2023
6b36c48
fix: added translations for calendar pop-up;
migbash Feb 28, 2023
5f50c3f
feat: insert translations (cont);
migbash Feb 28, 2023
ca16aff
fix: update seo-box links #1055;
migbash Feb 28, 2023
f9349f1
feat: #1055 (endpoint) cache target leagues map;
migbash Feb 28, 2023
ad01bef
fix: (post-nuke) imports update;
migbash Mar 1, 2023
72c050a
feat: update @[b]scores-lib package;
migbash Mar 1, 2023
433ca38
fix: #1085 [mult];
migbash Mar 1, 2023
a38feb1
doc: template widget (update);
migbash Mar 1, 2023
00cfba3
chore: aesthetic (app.css);
migbash Mar 1, 2023
3b366ae
fix: #1085 [mult] (cont);
migbash Mar 1, 2023
9bd803e
fix: #1085 [mult] (cont);
migbash Mar 1, 2023
80efbff
fix: #1085 [mult] (cont);
migbash Mar 1, 2023
3ba6840
fix: #1085 [mult] (cont);
migbash Mar 1, 2023
5f895e2
fix: #1085 [mult] (cont);
migbash Mar 1, 2023
82cf8d3
chore: package.json (up); debug-logs (up);
migbash Mar 2, 2023
705747e
fix: #1085 [mult] (cont);
migbash Mar 2, 2023
cc54e95
fix: #1085 [mult] (cont);
migbash Mar 2, 2023
6ca289f
fix: #1085 [mult] (cont);
migbash Mar 2, 2023
c67c88d
fix: #1085 [mult] (cont);
migbash Mar 2, 2023
24e6115
fix: #1085 [mult] (cont);
migbash Mar 2, 2023
ade3ae6
fix: #1085 [mult] (cont);
migbash Mar 2, 2023
d428725
doc: settings.json (up); template.svelte (up);
migbash Mar 2, 2023
f2fae7d
chore: clean league page code;
migbash Mar 2, 2023
c348899
fix: #1085 [mult] (cont);
migbash Mar 3, 2023
50ea2c1
fix: #1096 [mult] (cont);
migbash Mar 3, 2023
dbc1fae
feat: issue #1063 (fixtures-odds);
migbash Mar 3, 2023
63d4bf4
feat: add hasura/TEMPLATE.ts file;
migbash Mar 3, 2023
fe44dfb
chore: apply template to hasura/fixtures-odds.ts;
migbash Mar 3, 2023
998e1da
feat: issue #1063 (top-players);
migbash Mar 4, 2023
7557503
feat: issue #1063 (scoreboard);
migbash Mar 5, 2023
065ef28
feat: issue #1063 (probabilities);
migbash Mar 5, 2023
d8504cf
feat: issue #1063 (statistics);
migbash Mar 5, 2023
a097b53
feat: issue #1063 (lineups);
migbash Mar 5, 2023
edfec8c
feat: issue #1063 (incidents);
migbash Mar 5, 2023
bcec56a
feat: issue #1063 (head-2-head);
migbash Mar 5, 2023
12838f1
feat: issue #1063 (content);
migbash Mar 5, 2023
b350bf9
feat: issue #1063 (about);
migbash Mar 5, 2023
9486de2
feat: issue #1063 (votest);
migbash Mar 6, 2023
4cc921a
feat: issue #1063 (standings);
migbash Mar 6, 2023
6c7b600
chore: rename server.TEMPLATE.ts
migbash Mar 6, 2023
66b815f
feat: issue #1063 (league-info) - removed only;
migbash Mar 6, 2023
1904de0
chore: rename /tournaments -> /league
migbash Mar 6, 2023
cebdace
chore: aesthetic (+ comment);
migbash Mar 6, 2023
1057c0e
feat: issue #1063 (navbar) (footer);
migbash Mar 7, 2023
2a00fd4
fix: #1096 (seo-pages) (up);
migbash Mar 8, 2023
2125fea
fix: #1096 (seo-block);
migbash Mar 8, 2023
45d6444
fix: #1096 (leagues-table);
migbash Mar 8, 2023
cffc2c9
fix: #1096 (league-list);
migbash Mar 8, 2023
d5316b3
fix: #1096 (feat-match); aesthetic;
migbash Mar 9, 2023
87e824c
fix: #1096 (feat-betsites);
migbash Mar 9, 2023
c36817f
fix: #1096 (top-goalscorers); rm redundant code;
migbash Mar 9, 2023
83258f8
fix: #1096 (auth); (profile); dir / struct (up);
migbash Mar 9, 2023
d402f91
fix: hasura/(auth/profile); (feat-match); (LVSV2);
migbash Mar 10, 2023
e02a0d7
fix: #1063 fixture-odds (endpoint) path (up);
migbash Mar 12, 2023
4c86760
chore: update for (?.) opt checks fixture widgets;
migbash Mar 12, 2023
92f7682
fix: #1063 (up) declarations and imports;
migbash Mar 12, 2023
9f3f7b9
fix: #1063 (up) types and return data endpoints;
migbash Mar 13, 2023
2eb43c5
fix: #1063 (rm) redis keys and iomport from lib;
migbash Mar 13, 2023
c244448
fix: #1063 (up) for fallbacks to "en" "h/cache";
migbash Mar 13, 2023
1f939d0
fix: #1103;
migbash Mar 13, 2023
2a971d8
fix: #1094;
migbash Mar 13, 2023
152a9ad
fix: #1111;
migbash Mar 13, 2023
1e31665
issue: #1111;
migbash Mar 14, 2023
8e666c5
issue: #1089; add debug improve redirect;
migbash Mar 14, 2023
c1b6fc4
issue: #1099;
migbash Mar 14, 2023
522b2c2
chore: update scores-lib 0.7.1; imports (up);
migbash Mar 14, 2023
7dad40a
chore: clean and stash livescores-v1 var;
migbash Mar 14, 2023
080161c
issue: #1111;
migbash Mar 14, 2023
40c39f6
fix: #1089; test: fix server-lang ripple;
migbash Mar 14, 2023
5c5f39b
fix: #1089; test: fix server-lang ripple;
migbash Mar 14, 2023
9861b9e
Merge branch 'dev' into feature/issue-1063/migration-to-scores-lib
migbash Mar 15, 2023
9da6c72
fix: merge errors;
migbash Mar 15, 2023
fdf4afe
fix: deepsource remarks;
migbash Mar 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@
"borderRadius": "2px"
}
],
// NOTE: SVELTE Specific Extensions (Config)
// -----------
// NOTE: [BELOW] SVELTE Specific Extensions (Config)
// -----------
// DOC: https://discord.com/channels/457912077277855764/1036919129782878218
// DOC: https://discord.com/channels/457912077277855764/1036369208721813554
"svelte.plugin.svelte.compilerWarnings": {
Expand Down
765 changes: 381 additions & 384 deletions package-lock.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"quick:preview:local:spin": "vite build && npm run preview",
"start:docker": "node server-docker.js",
"start:heroku": "node server-heroku.js",
"@betarena/scores-lib:pull:next": "npm i @betarena/scores-lib",
"@betarena/scores-lib:pull:next": "npm i @betarena/scores-lib@latest",
"@betarena/scores-lib:link": "npm link @betarena/scores-lib"
},
"devDependencies": {
Expand All @@ -50,7 +50,7 @@
},
"type": "module",
"dependencies": {
"@betarena/scores-lib": "^0.5.7",
"@betarena/scores-lib": "^0.7.1",
"@lukeed/uuid": "^2.0.0",
"@metamask/sdk": "^0.1.0",
"@moralisweb3/client-firebase-auth-utils": "^2.14.2",
Expand Down
2 changes: 1 addition & 1 deletion src/lib/components/_main_/auth/Auth_Widget.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ COMPONENT JS (w/ TS)
// (SSR) LANG SVELTE | IMPORTANT
// ~~~~~~~~~~~~~~~~~~~~~

let server_side_language = platfrom_lang_ssr(
$: server_side_language = platfrom_lang_ssr(
$page?.route?.id,
$page?.error,
$page?.params?.lang
Expand Down
55 changes: 33 additions & 22 deletions src/lib/components/_main_/header/Header.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ COMPONENT JS - BASIC
[TypeScript]
=================== -->
<script lang="ts">
import { browser } from '$app/environment';
import { browser, dev } from '$app/environment';
import { goto } from '$app/navigation';
import { page } from '$app/stores';
import { onMount } from 'svelte';
Expand All @@ -14,7 +14,7 @@ COMPONENT JS - BASIC
import {
getUserLocation,
getUserLocationFromIP
} from '$lib/geoJs/init';
} from '$lib/geo-js/init';
import { dlog, dlogv2, NB_W_STY, NB_W_TAG, NB_W_TOG } from '$lib/utils/debug';
import arrow_down_fade from './assets/arrow-down-fade.svg';
import arrow_down from './assets/arrow-down.svg';
Expand All @@ -29,8 +29,8 @@ COMPONENT JS - BASIC
import profile_avatar from './assets/profile-avatar.svg';
import light_icon_theme from './assets/theme-light-icon.svg';

import type { GeoJsResponse } from '$lib/models/geojs-types';
import type { Cache_Single_Lang_Header_Translation_Response } from '$lib/models/_main_/navbar/types';
import type { GeoJsResponse } from '$lib/types/geojs-types';

import { db_firestore } from '$lib/firebase/init';
import { sessionStore } from '$lib/store/session';
Expand Down Expand Up @@ -60,8 +60,8 @@ COMPONENT JS - BASIC
let langSelected: boolean = false;

const OMIT_URLS: string[] = [
'[[lang=lang]]/[sport]/[country]/[league_name]',
'[[lang=lang]]/[sport]/[fixture=fixture]'
'/[[lang=lang]]/[sport]/[country]/[league_name]',
'/[[lang=lang]]/[sport]/[fixture=fixture]'
]

const PROFILE_URL: string = '/u/[view]/[lang=lang]'
Expand Down Expand Up @@ -93,16 +93,6 @@ COMPONENT JS - BASIC
// COMPONENT METHODS
// ~~~~~~~~~~~~~~~~~~~~~

let setUserLang = false;
$: if ($userBetarenaSettings?.user != undefined
&& !setUserLang
&& PROFILE_URL != $page.route.id
) {
setUserLang = true
let userlang = $userBetarenaSettings.user?.scores_user_data?.lang
dlog(`${NB_W_TAG} 🔵 User Detected! Setting Auth language!`, NB_W_TOG, NB_W_STY)
selectLanguage(userlang)
}

// Set a Cookie
function setCookie(cName, cValue, expDays) {
Expand Down Expand Up @@ -195,11 +185,17 @@ COMPONENT JS - BASIC
async function selectLanguage(
lang: string
): Promise<void> {

// [ℹ] validation (exit);
if (server_side_language == lang) {
return;
}

// [ℹ] get past instance of LANG;
const pastLang: string =
$userBetarenaSettings.lang == 'en'
server_side_language == 'en'
? '/'
: `/${$userBetarenaSettings.lang}`
: `/${server_side_language}`
;
// [ℹ] set the user-lang to corresponding value;
userBetarenaSettings.setLang(lang);
Expand All @@ -208,6 +204,7 @@ COMPONENT JS - BASIC
`${NB_W_TAG} selectLanguage()`,
[
`$userBetarenaSettings.lang: ${$userBetarenaSettings.lang}`,
`server_side_language: ${server_side_language}`,
`lang: ${lang}`,
`pastLang: ${pastLang}`,
`$page.route.id: ${$page.route.id}`
Expand All @@ -233,7 +230,7 @@ COMPONENT JS - BASIC
}

// [ℹ] onError, navigate back to homepage
if ($page.error) {
if ($page.error && !dev) {
if (lang == 'en') {
dlog(`${NB_W_TAG} -> EN`, true, NB_W_STY)
await goto('/');
Expand Down Expand Up @@ -350,7 +347,7 @@ COMPONENT JS - BASIC
return;
}
const userGeoResponse: GeoJsResponse = await getUserLocation();
dlog(userGeoResponse, true);
dlog(`${NB_W_TAG} ${userGeoResponse}`, true);

let userGeo =
userGeoResponse.country_code === undefined
Expand Down Expand Up @@ -434,9 +431,23 @@ COMPONENT JS - BASIC
}
}

let setUserLang = false;
$: if ($userBetarenaSettings?.user != undefined
&& !setUserLang
&& PROFILE_URL != $page.route.id
) {
setUserLang = true
let userlang = $userBetarenaSettings.user?.scores_user_data?.lang
dlog(`${NB_W_TAG} 🔵 User Detected! Setting Auth language! ${userlang}`, NB_W_TOG, NB_W_STY)
selectLanguage(userlang)
}

// [ℹ] (archive) -> && PROFILE_URL == $page.route.id
$: if ($userBetarenaSettings?.lang
&& !$page.error
&& PROFILE_URL == $page.route.id) {
&& $page.route.id
&& $userBetarenaSettings?.user != undefined
&& setUserLang) {
update_select_lang()
}

Expand All @@ -446,8 +457,8 @@ COMPONENT JS - BASIC
* @returns {Promise<void>}
*/
async function update_select_lang(): Promise<void> {
dlog('🔵 Updating platform lang...');
const lang = $userBetarenaSettings?.lang;
dlog(`${NB_W_TAG} 🔵 Updating platform user lang ${lang}`, true);
// [ℹ] (update)from localStorage()
userBetarenaSettings.updateLang(
lang
Expand All @@ -462,7 +473,7 @@ COMPONENT JS - BASIC
await updateDoc(userRef, {
lang: lang
});
dlog('🟢 Language has been updated', true);
dlog(`${NB_W_TAG} 🟢 User language has been updated`, true);
}

/**
Expand Down
18 changes: 9 additions & 9 deletions src/lib/components/page/fixture/Breadcrumb.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@

<img
src="/assets/svg/tournaments/arrow-right.svg"
alt=""
alt="Arrow Right Icon"
class="m-r-10"
width="14px"
height="14px"
width="14"
height="14"
/>

<!--
Expand Down Expand Up @@ -80,10 +80,10 @@

<img
src="/assets/svg/tournaments/arrow-right.svg"
alt=""
alt="Arrow Right Icon"
class="m-r-10"
width="14px"
height="14px"
width="14"
height="14"
/>

<!--
Expand Down Expand Up @@ -111,10 +111,10 @@

<img
src="/assets/svg/tournaments/arrow-right.svg"
alt=""
alt="Arrow Right Icon"
class="m-r-10"
width="14px"
height="14px"
width="14"
height="14"
/>

<!--
Expand Down
14 changes: 12 additions & 2 deletions src/lib/components/page/fixture/Layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
import FeaturedBettingSitesWidget from '$lib/components/page/home/featured_betting_sites/_FeaturedBettingSitesWidget.svelte';
import type { Cache_Single_SportbookDetails_Data_Response } from '$lib/models/tournaments/league-info/types';
import { dlog } from '$lib/utils/debug';
import { viewport_change } from '$lib/utils/platform-functions';
import { platfrom_lang_ssr, viewport_change } from '$lib/utils/platform-functions';
import SvelteSeo from 'svelte-seo';
import Breadcrumb from './Breadcrumb.svelte';

Expand Down Expand Up @@ -201,6 +201,16 @@
);
});

// ~~~~~~~~~~~~~~~~~~~~~
// (SSR) LANG SVELTE | IMPORTANT
// ~~~~~~~~~~~~~~~~~~~~~

$: server_side_language = platfrom_lang_ssr(
$page?.route?.id,
$page?.error,
$page?.params?.lang
);

// ~~~~~~~~~~~~~~~~~~~~~
// REACTIVE SVELTE METHODS
// CRITICAL
Expand All @@ -209,7 +219,7 @@
// TODO: FIXME: replace into a single __layout.svelte method [?]
// TODO: FIXME: using page-stores [?]
// [ℹ] listen to change in LANG SELECT of `$userBetarenaSettings.lang`
let current_lang: string = $userBetarenaSettings.lang;
let current_lang: string = server_side_language;
$: refresh_lang = $userBetarenaSettings.lang;
$: lang_intent = $sessionStore.lang_intent;

Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/page/fixture/about/About_Loader.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@
>
<img
src="/assets/svg/chevron-down.svg"
alt=""
width="20px"
height="20px"
alt="Arrow down icon"
width="20"
height="20"
/>
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/page/fixture/content/Content_Widget.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -320,9 +320,9 @@
[ℹ] featured-media -->
<img
src={item?.featured_media}
alt=""
width="80px"
height="80px"
alt="Featured Media"
width="80"
height="80"
/>
<!--
[ℹ] media-title + post-info -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
fixture_time,
fixture_id
);
if (firebase_odds.length != 0) {
if (firebase_odds && firebase_odds?.length != 0) {
check_fixture_odds_inject(firebase_odds);
}

Expand Down Expand Up @@ -233,7 +233,7 @@
// (SSR) LANG SVELTE | IMPORTANT
// ~~~~~~~~~~~~~~~~~~~~~

let server_side_language = platfrom_lang_ssr(
$: server_side_language = platfrom_lang_ssr(
$page?.route?.id,
$page?.error,
$page?.params?.lang
Expand Down
12 changes: 6 additions & 6 deletions src/lib/components/page/fixture/incidents/Incident_Row.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,10 @@
[ℹ] event minute -->
<img
src={icon}
alt=""
alt="Incident Icon"
class="event-icon"
width="18px"
height="18px"
width="18"
height="18"
/>
<p
class="
Expand Down Expand Up @@ -434,10 +434,10 @@
-->
<img
src={icon}
alt=""
alt="Incident Icon"
class="event-icon"
width="18px"
height="18px"
width="18"
height="18"
/>
{/if}
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import {
FIXTURE_FULL_TIME_OPT,
FIXTURE_NOT_START_OPT
} from '$lib/models/sportmonks';
} from "@betarena/scores-lib/dist/api/sportmonks.js";
import no_visual from './assets/no_visual.svg';
import no_visual_dark from './assets/no_visual_dark.svg';

Expand Down Expand Up @@ -488,9 +488,9 @@
<img
src={FIXTURE_INCIDENTS?.home
?.team_logo}
alt=""
width="24px"
height="24px"
alt="Team image"
width="24"
height="24"
/>
<p
class="
Expand Down Expand Up @@ -521,9 +521,9 @@
<img
src={FIXTURE_INCIDENTS?.away
?.team_logo}
alt=""
width="24px"
height="24px"
alt="Team image"
width="24"
height="24"
/>
</div>
</div>
Expand Down
Loading