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

Sitecore Universal Tracker images for SC 9.3 #360

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
15 changes: 13 additions & 2 deletions Build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ param(
[Parameter()]
[switch]$IncludeSh,
[Parameter()]
[switch]$IncludeUt,
[Parameter()]
[switch]$SkipModuleAssets,
[Parameter(HelpMessage = "If the docker image is already built it should be skipped.")]
[switch]$SkipExistingImage,
Expand Down Expand Up @@ -126,7 +128,7 @@ $xcMiscTags = $availableTags | Where-Object { $_ -like "sitecore-certificates:*"
$assetTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore(-custom)?-assets:.*" }
$moduleAssetTags = $availableTags | Where-Object { $_ -like "community/modules/*" }
$xmTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xm([1]{0,1})(-custom)?-(?!.*spe|.*sxa|.*jss).*:.*" }
$xpTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xp([1]{0,1})(-custom)?-(?!.*spe|.*sxa|.*jss|.*sh).*:.*" }
$xpTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xp([1]{0,1})(-custom)?-(?!.*spe|.*sxa|.*jss|.*sh|ut).*:.*" }
$xp0Tags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xp0(-custom)?-(?!.*spe|.*sxa|.*jss).*:.*" }

$xcTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xc(-custom)?-(?!.*spe|.*sxa|.*jss).*:.*" }
Expand All @@ -143,11 +145,12 @@ $xpSpeTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xp
$xpSxaTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xp([1]{0,1})(-custom)?-(.*sxa)(?!.*jss).*:.*" }
$xpJssTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xp([1]{0,1})(-custom)?-(.*jss).*:.*" }
$xpShTags = $availableTags | Where-Object { $_ -match "sitecore-xp([1]{0,1})(-custom)?-(.*sh).*:.*" }
$xpUtTags = $availableTags | Where-Object { $_ -match "sitecore-xp([1]{0,1})(-custom)?-(ut).*:.*" }

$xcSpeTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xc-(spe).*:.*" }
$xcSxaTags = $availableTags | Where-Object { $_ -match "(community/)?sitecore-xc-(sxa).*:.*" }

$knownTags = $defaultTags + $xpMiscTags + $xcMiscTags + $assetTags + $xmTags + $xpTags + $xp0Tags + $xcTags + $xmSpeTags + $xp0SpeTags + $xpSpeTags + $xcSpeTags + $xmSxaTags + $xp0SxaTags + $xpSxaTags + $xcSxaTags + $xmJssTags + $xp0JssTags + $xpJssTags + $xpShTags
$knownTags = $defaultTags + $xpMiscTags + $xcMiscTags + $assetTags + $xmTags + $xpTags + $xp0Tags + $xcTags + $xmSpeTags + $xp0SpeTags + $xpSpeTags + $xcSpeTags + $xmSxaTags + $xp0SxaTags + $xpSxaTags + $xcSxaTags + $xmJssTags + $xp0JssTags + $xpJssTags + $xpShTags + $xpUtTags
if ($SkipModuleAssets)
{
# remove module tags from the avaiableTags to prevent getting processed later
Expand Down Expand Up @@ -295,6 +298,14 @@ foreach ($wv in $OSVersion)
}
}

if ($IncludeUt)
{
if ($Topology -eq "xp")
{
$xpUtTags | SitecoreFilter -Version $scv | WindowsFilter -Version $wv | ForEach-Object { $tags.Add($_) > $null }
}
}

if ($IncludeSh)
{
if ($Topology -eq "xp")
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[//]: # "start: stats"

[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=flat-square)](https://opensource.org/licenses/MIT) ![Repositories](https://img.shields.io/badge/Repositories-261-blue.svg?style=flat-square) ![Tags](https://img.shields.io/badge/Tags-2328-blue.svg?style=flat-square) ![Deprecated](https://img.shields.io/badge/Deprecated-0-lightgrey.svg?style=flat-square) ![Dockerfiles](https://img.shields.io/badge/Dockerfiles-129-blue.svg?style=flat-square) ![Default version](https://img.shields.io/badge/Default%20version-10.0.0%20on%20ltsc2019/1809-blue?style=flat-square)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=flat-square)](https://opensource.org/licenses/MIT) ![Repositories](https://img.shields.io/badge/Repositories-264-blue.svg?style=flat-square) ![Tags](https://img.shields.io/badge/Tags-2343-blue.svg?style=flat-square) ![Deprecated](https://img.shields.io/badge/Deprecated-0-lightgrey.svg?style=flat-square) ![Dockerfiles](https://img.shields.io/badge/Dockerfiles-132-blue.svg?style=flat-square) ![Default version](https://img.shields.io/badge/Default%20version-10.0.0%20on%20ltsc2019/1809-blue?style=flat-square)

[//]: # "end: stats"

Expand Down
3 changes: 3 additions & 0 deletions build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
# - build.includeExperimentalImages
# - build.includeJss
# - build.includeSh
# - build.includeUt
# - build.includeSpe
# - build.includeSxa
# - build.includeShortTags
Expand Down Expand Up @@ -89,6 +90,7 @@ stages:
IncludeSxa = [System.Convert]::ToBoolean($(build.includeSxa))
IncludeJss = [System.Convert]::ToBoolean($(build.includeJss))
IncludeSh = [System.Convert]::ToBoolean($(build.includeSh))
IncludeUt = [System.Convert]::ToBoolean($(build.includeUt))
IncludeExperimental = [System.Convert]::ToBoolean($(build.includeExperimentalImages))
SkipExistingImage = [System.Convert]::ToBoolean($(build.skipExistingImages))
SitecoreRegistry = "$(sitecore.container.registry)"
Expand Down Expand Up @@ -156,6 +158,7 @@ stages:
IncludeSxa = [System.Convert]::ToBoolean($(build.includeSxa))
IncludeJss = [System.Convert]::ToBoolean($(build.includeJss))
IncludeSh = [System.Convert]::ToBoolean($(build.includeSh))
IncludeUt = [System.Convert]::ToBoolean($(build.includeUt))
IncludeExperimental = [System.Convert]::ToBoolean($(build.includeExperimentalImages))
SkipExistingImage = [System.Convert]::ToBoolean($(build.skipExistingImages))
SitecoreRegistry = "$(sitecore.container.registry)"
Expand Down
15 changes: 15 additions & 0 deletions build/IMAGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
| 9.3.0 | sitecore-xp-xconnect-indexworker | windowsservercore | ltsc2019 | `sitecore-xp-xconnect-indexworker:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect-automationengine | windowsservercore | ltsc2019 | `sitecore-xp-xconnect-automationengine:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect | windowsservercore | ltsc2019 | `sitecore-xp-xconnect:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-sqldev | windowsservercore | ltsc2019 | `sitecore-xp-ut-sqldev:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.3.x/sitecore-xp-ut-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-processing | windowsservercore | ltsc2019 | `sitecore-xp-ut-processing:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.3.x/sitecore-xp-ut-processing/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-collection | windowsservercore | ltsc2019 | `sitecore-xp-ut-collection:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.3.x/sitecore-xp-ut-collection/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-standalone | windowsservercore | ltsc2019 | `sitecore-xp-sxa-standalone:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.x.x/sitecore-sxa/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-sqldev | windowsservercore | ltsc2019 | `sitecore-xp-sxa-sqldev:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.x.x/sitecore-sxa-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-ps-standalone | windowsservercore | ltsc2019 | `sitecore-xp-sxa-ps-standalone:9.3.0-windowsservercore-ltsc2019` [Dockerfile](windows/9.x.x/sitecore-sxa-ps/Dockerfile) |
Expand Down Expand Up @@ -113,6 +116,9 @@
| 9.3.0 | sitecore-xp-xconnect-indexworker | windowsservercore | 2009 | `sitecore-xp-xconnect-indexworker:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect-automationengine | windowsservercore | 2009 | `sitecore-xp-xconnect-automationengine:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect | windowsservercore | 2009 | `sitecore-xp-xconnect:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-sqldev | windowsservercore | 2009 | `sitecore-xp-ut-sqldev:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.3.x/sitecore-xp-ut-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-processing | windowsservercore | 2009 | `sitecore-xp-ut-processing:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.3.x/sitecore-xp-ut-processing/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-collection | windowsservercore | 2009 | `sitecore-xp-ut-collection:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.3.x/sitecore-xp-ut-collection/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-standalone | windowsservercore | 2009 | `sitecore-xp-sxa-standalone:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.x.x/sitecore-sxa/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-sqldev | windowsservercore | 2009 | `sitecore-xp-sxa-sqldev:9.3.0-windowsservercore-2009` [Dockerfile](windows/9.x.x/sitecore-sxa-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-solr | nanoserver | 2009 | `sitecore-xp-sxa-solr:9.3.0-nanoserver-2009` [Dockerfile](windows/9.x.x/sitecore-xp-solr/Dockerfile) |
Expand Down Expand Up @@ -208,6 +214,9 @@
| 9.3.0 | sitecore-xp-xconnect-indexworker | windowsservercore | 2004 | `sitecore-xp-xconnect-indexworker:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect-automationengine | windowsservercore | 2004 | `sitecore-xp-xconnect-automationengine:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect | windowsservercore | 2004 | `sitecore-xp-xconnect:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-sqldev | windowsservercore | 2004 | `sitecore-xp-ut-sqldev:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.3.x/sitecore-xp-ut-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-processing | windowsservercore | 2004 | `sitecore-xp-ut-processing:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.3.x/sitecore-xp-ut-processing/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-collection | windowsservercore | 2004 | `sitecore-xp-ut-collection:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.3.x/sitecore-xp-ut-collection/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-standalone | windowsservercore | 2004 | `sitecore-xp-sxa-standalone:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.x.x/sitecore-sxa/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-sqldev | windowsservercore | 2004 | `sitecore-xp-sxa-sqldev:9.3.0-windowsservercore-2004` [Dockerfile](windows/9.x.x/sitecore-sxa-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-solr | nanoserver | 2004 | `sitecore-xp-sxa-solr:9.3.0-nanoserver-2004` [Dockerfile](windows/9.x.x/sitecore-xp-solr/Dockerfile) |
Expand Down Expand Up @@ -303,6 +312,9 @@
| 9.3.0 | sitecore-xp-xconnect-indexworker | windowsservercore | 1909 | `sitecore-xp-xconnect-indexworker:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect-automationengine | windowsservercore | 1909 | `sitecore-xp-xconnect-automationengine:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect | windowsservercore | 1909 | `sitecore-xp-xconnect:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-sqldev | windowsservercore | 1909 | `sitecore-xp-ut-sqldev:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.3.x/sitecore-xp-ut-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-processing | windowsservercore | 1909 | `sitecore-xp-ut-processing:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.3.x/sitecore-xp-ut-processing/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-collection | windowsservercore | 1909 | `sitecore-xp-ut-collection:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.3.x/sitecore-xp-ut-collection/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-standalone | windowsservercore | 1909 | `sitecore-xp-sxa-standalone:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.x.x/sitecore-sxa/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-sqldev | windowsservercore | 1909 | `sitecore-xp-sxa-sqldev:9.3.0-windowsservercore-1909` [Dockerfile](windows/9.x.x/sitecore-sxa-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-solr | nanoserver | 1909 | `sitecore-xp-sxa-solr:9.3.0-nanoserver-1909` [Dockerfile](windows/9.x.x/sitecore-xp-solr/Dockerfile) |
Expand Down Expand Up @@ -398,6 +410,9 @@
| 9.3.0 | sitecore-xp-xconnect-indexworker | windowsservercore | 1903 | `sitecore-xp-xconnect-indexworker:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect-automationengine | windowsservercore | 1903 | `sitecore-xp-xconnect-automationengine:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect-worker/Dockerfile) |
| 9.3.0 | sitecore-xp-xconnect | windowsservercore | 1903 | `sitecore-xp-xconnect:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.3.x/sitecore-xp-xconnect/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-sqldev | windowsservercore | 1903 | `sitecore-xp-ut-sqldev:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.3.x/sitecore-xp-ut-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-processing | windowsservercore | 1903 | `sitecore-xp-ut-processing:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.3.x/sitecore-xp-ut-processing/Dockerfile) |
| 9.3.0 | sitecore-xp-ut-collection | windowsservercore | 1903 | `sitecore-xp-ut-collection:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.3.x/sitecore-xp-ut-collection/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-standalone | windowsservercore | 1903 | `sitecore-xp-sxa-standalone:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.x.x/sitecore-sxa/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-sqldev | windowsservercore | 1903 | `sitecore-xp-sxa-sqldev:9.3.0-windowsservercore-1903` [Dockerfile](windows/9.x.x/sitecore-sxa-sqldev/Dockerfile) |
| 9.3.0 | sitecore-xp-sxa-solr | nanoserver | 1903 | `sitecore-xp-sxa-solr:9.3.0-nanoserver-1903` [Dockerfile](windows/9.x.x/sitecore-xp-solr/Dockerfile) |
Expand Down
4 changes: 4 additions & 0 deletions build/sitecore-packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,10 @@
"url": "https://sitecoredev.azureedge.net/~/media/3BA8C0FD6894405ABF3CD53803007272.ashx",
"hash": "9A7841C0773443BF07E8789EB99ACC90A6CE64326B5B67B0904671B3CC2401AA"
},
"Sitecore Universal Tracker 3.0.0.zip": {
"url": "https://sitecoredev.azureedge.net/~/media/4B3AA63825BD482F85ED794290210E8A.ashx",
"hash": "44C2043976D5C86B290E8FACA840618C6BFF9FBF978DC3A6205E0F820DE61072"
},
"Sitecore Zenith Integration 1.273.0.scwdp.zip": {
"url": "",
"hash": ""
Expand Down
3 changes: 2 additions & 1 deletion build/windows/9.3.0/sitecore-assets/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ RUN $zips = Get-ChildItem -Path 'C:\\downloads\\*.zip' -Exclude @('*.scwdp.zip',
$zips | ForEach-Object { Move-Item -Path $_.FullName -Destination 'C:\\packages'; }; `
$zips = Get-ChildItem -Path 'C:\\downloads\\*.zip' -Exclude '*Configuration files*.zip'; `
$zips | ForEach-Object { Move-Item -Path $_.FullName -Destination 'C:\\packages'; }; `
$zips = Get-ChildItem -Path 'C:\\packages\\*.scwdp.zip' | Rename-Item -NewName {$_.Name -replace '.rev\..(\d*)|(r[0-9]+.[0-9]+)'};
$zips = Get-ChildItem -Path 'C:\\packages\\*.scwdp.zip' | Rename-Item -NewName {$_.Name -replace '.rev\..(\d*)|(r[0-9]+.[0-9]+)'}; `
$zips = Get-ChildItem -Path 'C:\\packages\\*.deploy.zip' | ForEach-Object { Remove-Item -Path $_.FullName -Force; };

# move installers
RUN New-Item -Path 'C:\\install\\setup' -ItemType 'Directory' -Force | Out-Null; `
Expand Down
3 changes: 2 additions & 1 deletion build/windows/9.3.0/sitecore-assets/build.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"Sitecore.PowerShell.Extensions-6.0.scwdp.zip",
"Sitecore Publishing Service 4.2.0-win-x64.zip",
"Sitecore Publishing Module 9.3.0.0 rev. r00546.2197.scwdp.zip",
"Sitecore Horizon 9.3.0 for Azure.zip"
"Sitecore Horizon 9.3.0 for Azure.zip",
"Sitecore Universal Tracker 3.0.0.zip"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[hashtable]$WatchDirectoryParameters
)

# setup
$ErrorActionPreference = "STOP"

$timeFormat = "HH:mm:ss:fff"

# print start message
Write-Host ("$(Get-Date -Format $timeFormat): Universal Tracker Processing Development ENTRYPOINT, starting...")

# check to see if we should start the Watch-Directory.ps1 script
$watchDirectoryJobName = "Watch-Directory.ps1"
$useWatchDirectory = $null -ne $WatchDirectoryParameters -bor (Test-Path -Path "C:\src" -PathType "Container") -eq $true

if ($useWatchDirectory)
{
# setup default parameters if none is supplied
if ($null -eq $WatchDirectoryParameters)
{
$WatchDirectoryParameters = @{ Path = "C:\src"; Destination = "C:\inetpub\wwwroot"; }
}

# start Watch-Directory.ps1 in background, kill foreground process if it fails
Start-Job -Name $watchDirectoryJobName -ArgumentList $WatchDirectoryParameters -ScriptBlock {
param([hashtable]$params)

& "C:\tools\scripts\Watch-Directory.ps1" @params

} | Out-Null

# wait to see if job have failed (it will if for example parsing in invalid parameters)...
Start-Sleep -Milliseconds 1000

Get-Job -Name $watchDirectoryJobName | ForEach-Object {
$job = $_

if ($job.State -ne "Running")
{
# writes output stream
Receive-Job $job

# exit
exit 1
}

Write-Host "$(Get-Date -Format $timeFormat): Job '$($job.Name)' started..."
}
}
else
{
Write-Host ("$(Get-Date -Format $timeFormat): Skipping start of '$watchDirectoryJobName', to enable you should mount a directory into 'C:\src'.")
}

& "C:\\inetpub\\wwwroot\\$($env:SC_ROLE_EXE)"
Loading