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

Linting #79

Closed
wants to merge 200 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
76648dd
adjusted devel to main action
georgenalen Nov 3, 2020
cb5bbc5
added gitignore
georgenalen Nov 5, 2020
6381471
Update ubtu18cis_4_1_5_systemlocale.rules.j2
cawamata Dec 18, 2020
5767769
Update section1.yml
cawamata Dec 18, 2020
a63731b
Update section3.yml
cawamata Dec 18, 2020
33520d7
Update section4.yml
cawamata Dec 18, 2020
6799745
Update section5.yml
cawamata Dec 18, 2020
55564ca
Adjusted 3.5.2.4 to work better with all outgoing and removed unused var
georgenalen Dec 28, 2020
8304288
Fixed 3.5.2.4 if 3.5.2.2 is enabled
georgenalen Dec 29, 2020
d0f3f15
fixed allow_users/groups
georgenalen Dec 30, 2020
710f921
Fixed control 1.8.2 to properly format banner
georgenalen Feb 4, 2021
a83b7ce
Fixed control 1.8.2 to properly format banner
georgenalen Feb 4, 2021
5230a09
Changed xwindows var to a more generic desktop variable
georgenalen Feb 4, 2021
9f2eec0
Fix for issue #17
georgenalen Mar 25, 2021
2e9783e
Updated readme for badges
georgenalen Mar 25, 2021
2b8da4d
Added more readme updates
georgenalen Mar 25, 2021
9f11acc
Fixed 4.2.1.6 imtcp typo
georgenalen Mar 26, 2021
7a32a7a
Added CONTRIBUTING.rst file
georgenalen Mar 26, 2021
bf6ed51
fixed typo in readme links
georgenalen Mar 29, 2021
99e7975
removed redundant ubuntu18-cis at the top of readme
georgenalen Mar 29, 2021
3bfad36
Changed layout for section 1
georgenalen Apr 2, 2021
a490a9e
Changed layout for section 2
georgenalen Apr 2, 2021
a6c7a17
Changed layout for section 3
georgenalen Apr 2, 2021
b1b42b4
Changed layout for section 4
georgenalen Apr 2, 2021
3f6d9e7
Changed layout for section 5
georgenalen Apr 2, 2021
1372d92
Changed layout for section 6
georgenalen Apr 2, 2021
08d83ad
fixes for issue #25
georgenalen Apr 9, 2021
9cf1a2b
fix for issue #24 update
georgenalen Apr 9, 2021
93c6d04
fix for issue #27
georgenalen Apr 9, 2021
1167d04
fix for issue #30
georgenalen Apr 9, 2021
2e0d546
Updated for issue #29 by adding blank line at end of file
georgenalen Apr 9, 2021
1d0bd0f
Updated for issue #29 by adding blank line at end of file, try 2
georgenalen Apr 9, 2021
9aefb02
fix for issue #31
georgenalen Apr 9, 2021
50442e3
fix for issue #28
georgenalen Apr 14, 2021
c6a7a48
initial commit
georgenalen Apr 26, 2021
e45135a
Removed old items left over from formatting changes
georgenalen Apr 26, 2021
c996b46
Updated section titles in README
georgenalen Apr 26, 2021
0daac69
Updated cis_1.1.x.yml
georgenalen Apr 26, 2021
69ce3d6
Updated cis_1.2.x.yml
georgenalen Apr 26, 2021
b807aa0
Updated cis_1.3.x.yml
georgenalen Apr 26, 2021
161ef63
Updated cis_1.4.x.yml
georgenalen Apr 26, 2021
7556673
updated cis_1.6.x.yml
georgenalen Apr 26, 2021
126c9d9
Updates to cis_1.8.x.yml
georgenalen Apr 26, 2021
76d2c37
Adjusted section 1 vars in defaults/main
georgenalen Apr 26, 2021
63b4976
Updated cis_2.1.x.yml
georgenalen Apr 27, 2021
9fdc357
Updated cis_2.2.x.yml
georgenalen Apr 27, 2021
f917386
Updated cis_2.3.yml
georgenalen Apr 27, 2021
1223178
Made section1 and 2 adjustments
georgenalen Apr 27, 2021
9f04d5d
updated cis_3.1.x.yml
georgenalen Apr 27, 2021
bf207a8
updated cis_3.2.x.yml
georgenalen Apr 27, 2021
8e6ae37
updated cis_3.3.x.yml
georgenalen Apr 27, 2021
94b1de3
cis_3.5.x.yml updates
georgenalen Apr 28, 2021
4f2a3d6
updates to get section 3 to run
georgenalen Apr 28, 2021
75c5843
updates to cis_4.1.1.x.yml
georgenalen Apr 28, 2021
e77f6d0
updated cis_4.1.2.x.yml
georgenalen Apr 28, 2021
4c250b7
updated cis_4.1.x.yml
georgenalen Apr 28, 2021
e292f54
updated cis_4.2.1.x.yml
georgenalen Apr 28, 2021
1dade2f
updated cis_4.2.2.x.yml
georgenalen Apr 28, 2021
734b9ad
update cis_4.2.3.x.yml
georgenalen Apr 28, 2021
9b53a1f
updated cis_4.3.x.yml
georgenalen Apr 28, 2021
0463e88
adjusted section 4 to run
georgenalen Apr 28, 2021
8368a8f
updates again for section 4 running
georgenalen Apr 28, 2021
04494d7
updated cis_5.1.x.yml
georgenalen Apr 28, 2021
eb129c4
updated cis_5.2.x.yml
georgenalen Apr 28, 2021
db026ea
updated cis_5.3.x.yml
georgenalen Apr 28, 2021
a1b7c31
updated 5.4.x.yml
georgenalen Apr 28, 2021
a14a63a
updated cis_5.5.1.x.yml
georgenalen Apr 29, 2021
beb389c
updated cis_5.5.x.yml
georgenalen Apr 29, 2021
0dacd89
updated cis_5.6.x.yml
georgenalen Apr 29, 2021
a97e085
updated cis_5.7.yml
georgenalen Apr 29, 2021
15d0c61
updated cis_6.1.x.yml
georgenalen Apr 29, 2021
040a163
updated cis_6.2.x.yml
georgenalen Apr 29, 2021
af1b946
updates to make section 6 run
georgenalen Apr 29, 2021
5443998
cis_1.1.x.yml removed empty string compares
georgenalen Apr 29, 2021
e47a5d3
updated cis_6.2.x.yml scored/automated labels
georgenalen Apr 29, 2021
9a03b82
removed all empty string compares and adjusted section lables
georgenalen Apr 30, 2021
718b336
removed un-needed files and comments
georgenalen Apr 30, 2021
f017314
misc. updates to defaults/main and prelim
georgenalen Apr 30, 2021
5bb7b15
Updated contributing.rst to have forked notes
georgenalen Apr 30, 2021
464c6fd
fixed typo in section 5.4.x
georgenalen Apr 30, 2021
1003960
adjusted 2.1.15 for test pipeline
georgenalen Apr 30, 2021
2449ebf
updated control with typo
georgenalen May 4, 2021
2869b6d
fixed typo in section_5/main.yml
georgenalen May 7, 2021
d7a2318
updated meta/main.yml
georgenalen May 10, 2021
8e27a2d
added linting files
georgenalen May 10, 2021
cbfe13a
updated some linting issues
georgenalen May 10, 2021
078069e
updated meta galaxy description
georgenalen May 10, 2021
f77a18f
Updating linting and meta details
georgenalen May 11, 2021
99a5c2c
updated meta tags
georgenalen May 11, 2021
8365b83
updated meta platform details and tags
georgenalen May 11, 2021
2e94d01
Added issue templates
georgenalen Aug 25, 2021
9fc0b0e
Issue #48 fix
georgenalen Aug 31, 2021
e73558a
Issue #49 fix
georgenalen Aug 31, 2021
1817b9f
Issue #50 fix
georgenalen Aug 31, 2021
8128600
fixed control 5.5.1.5 when statement
georgenalen Aug 31, 2021
bd1a533
Added pull request template
georgenalen Aug 31, 2021
3485625
updated typo in section 1 comment
georgenalen Aug 31, 2021
0165bfd
Updated PR template
georgenalen Sep 1, 2021
a8fa7c9
Fixed typo in PR template
georgenalen Sep 1, 2021
374d3bb
Updated formatting of PR template
georgenalen Sep 1, 2021
b4430d8
Updated 5.4.2 when to not always skip task
georgenalen Oct 25, 2021
d0ef2d6
Updated 6.2.12 to update permissions
georgenalen Oct 26, 2021
73e5cea
updated 6.2.5 to skip sshd
georgenalen Oct 26, 2021
37ad6d7
Adjusted when for 6.2.12 again
georgenalen Oct 26, 2021
6ef749c
Updated when on IPv6 tasks to use ubtu18cis_ipv6_required
georgenalen Oct 27, 2021
eb08610
updated typo
georgenalen Oct 27, 2021
89e2a02
Audit (#63)
uk-bolly Nov 15, 2021
0096f49
Audit (#64)
uk-bolly Dec 13, 2021
fd62cd7
updated meta data (#65)
uk-bolly Dec 29, 2021
a7f9440
Update rule in ubtu18cis_4_1_15_actions.rules.j2
hankszeto Jan 16, 2022
d75a627
Collection workflows (#69)
uk-bolly Mar 1, 2022
39a6e14
updated workflow
uk-bolly Aug 5, 2022
72eda66
fixed variable
uk-bolly Aug 5, 2022
0f59689
tidy up workflow
uk-bolly Aug 5, 2022
0aa0d2c
changed default cron_file var due to module change
uk-bolly Aug 5, 2022
04e775a
updated workflow tags and .ansiblelint ingore list
georgenalen Sep 6, 2022
14c93ea
Warnings Added To All Tasks
MrSteve81 Dec 21, 2022
ffc77ea
Fixed true/false for tasks
MrSteve81 Dec 22, 2022
e324db7
Fixed true/false for tasks missed saves
MrSteve81 Dec 22, 2022
113ea00
Updates 1
MrSteve81 Jan 10, 2023
4b6c05b
Update To Linting
MrSteve81 Jan 11, 2023
862885f
Update Changelog
MrSteve81 Jan 11, 2023
ee30034
Update Meta and Site YML
MrSteve81 Jan 11, 2023
ef9c168
Site YML Lint
MrSteve81 Jan 11, 2023
f220103
Site YML Lint
MrSteve81 Jan 11, 2023
51c809a
Site YML Lint
MrSteve81 Jan 11, 2023
9d09e22
Site YML Lint
MrSteve81 Jan 11, 2023
3b0c877
Site YML Lint
MrSteve81 Jan 11, 2023
8b110f4
Update Workflow
MrSteve81 Jan 11, 2023
acc8116
Update site.yml
MrSteve81 Jan 11, 2023
f9061b8
Update Changelog
MrSteve81 Jan 11, 2023
d6a864d
Linux_Benchmark
MrSteve81 Jan 12, 2023
8ab7e48
Galaxy Updated & Linting
MrSteve81 Mar 23, 2023
45a7313
Git Ignore CLosed
MrSteve81 Mar 23, 2023
fae1f8c
removed MANUAL/AUTOMATED from title
uk-bolly Apr 13, 2023
1f16947
Ensure warning is shown
uk-bolly Apr 13, 2023
507adfa
tidy up alerting on controls
uk-bolly Apr 13, 2023
cf10e83
removed MANUAL|AUTOMATED from name
uk-bolly Apr 13, 2023
aea0f36
removed Man/auto from name
uk-bolly Apr 13, 2023
06e8ac4
removed man/auto from name
uk-bolly Apr 13, 2023
f17be53
removed man/auto.scored from name
uk-bolly Apr 13, 2023
49bbecb
removed man/auto from name
uk-bolly Apr 13, 2023
cbaa5d5
removed man/auto from name
uk-bolly Apr 13, 2023
6cfa3a5
removed port 80
uk-bolly Apr 13, 2023
b956cb3
spacing
uk-bolly Apr 13, 2023
707388d
removed file
uk-bolly Apr 13, 2023
87d3dfb
updated audit components
uk-bolly Apr 13, 2023
0511ed4
updated audit components
uk-bolly Apr 13, 2023
0fa2642
updated ansible version
uk-bolly Apr 13, 2023
5823515
tidy up tags
uk-bolly Apr 13, 2023
328fe6b
fixed tmout logic
uk-bolly Apr 13, 2023
0ae8d28
6.1.1 logic
uk-bolly Apr 13, 2023
d51ff18
Added handlers
uk-bolly Apr 13, 2023
f648fb8
updated ansible version
uk-bolly Apr 13, 2023
870e255
moved warn count to end
uk-bolly Apr 13, 2023
063634f
improved 1.6.1.3 & 4
uk-bolly Apr 13, 2023
b83ab24
tidyup scap report
uk-bolly Apr 13, 2023
86be158
remove spacing
uk-bolly Apr 13, 2023
f881ddc
updated lint files
uk-bolly Apr 13, 2023
3e76a40
linting
uk-bolly Apr 13, 2023
cc2b87b
fqcn and lint
uk-bolly Apr 13, 2023
6dc701a
improved 2.1.1.2 idempotency
uk-bolly Apr 13, 2023
2cc4f2b
fix typo
uk-bolly Apr 13, 2023
4fc3156
Added name to play
uk-bolly Apr 13, 2023
f085f5c
changed state for file
uk-bolly Apr 13, 2023
cbf8f35
updated
uk-bolly Apr 13, 2023
37aa37b
use audit benchmark branch
uk-bolly Apr 13, 2023
122b661
updated
uk-bolly Apr 13, 2023
63ee39c
updated
uk-bolly Apr 13, 2023
2b643b0
lint updates
uk-bolly Apr 28, 2023
fd2dd33
consistency
uk-bolly Apr 28, 2023
6ffd287
dest to path
uk-bolly Apr 28, 2023
87c6f12
convert apt to package module
uk-bolly Apr 28, 2023
313bdc4
dest to path
uk-bolly Apr 28, 2023
231a703
fix typo
uk-bolly Apr 28, 2023
7b1a0d8
improved 5.1.8/9
uk-bolly Apr 28, 2023
39800d8
consistency
uk-bolly Apr 28, 2023
8228738
Updated MOdules
MrSteve81 May 1, 2023
75d7e83
Updated License
MrSteve81 May 1, 2023
840e3e5
updated filesystem mount usage
uk-bolly May 17, 2023
020778b
4.1.11 updated process list command
uk-bolly May 17, 2023
48d88d4
updated
uk-bolly May 17, 2023
05cbe21
lint updates
uk-bolly Sep 15, 2023
8755841
pre-commit and secrets added
uk-bolly Sep 15, 2023
5e458be
updated
uk-bolly Sep 15, 2023
a2a0e83
removed issues and legacy workflow
uk-bolly Sep 15, 2023
8aaf8db
new workflow files added
uk-bolly Sep 15, 2023
e6104a6
lint
uk-bolly Sep 15, 2023
097566a
typo
uk-bolly Sep 15, 2023
069e047
updated discord link
uk-bolly Sep 15, 2023
346baef
updated
uk-bolly Sep 20, 2023
c83581c
updated layout
uk-bolly Sep 20, 2023
a85269b
removed files not required
uk-bolly Sep 20, 2023
41f4713
linting
uk-bolly Sep 20, 2023
0992890
lint
uk-bolly Sep 20, 2023
1ee000c
removed legacy files
uk-bolly Sep 20, 2023
5939fc4
removed files not required
uk-bolly Sep 20, 2023
9fbb55a
linting
uk-bolly Sep 20, 2023
856e397
updated
uk-bolly Sep 20, 2023
ecee45e
updated
uk-bolly Sep 20, 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
Binary file removed .DS_Store
Binary file not shown.
24 changes: 24 additions & 0 deletions .ansible-lint
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---

parseable: true
quiet: true
skip_list:
- 'schema'
- 'no-changed-when'
- 'var-spacing'
- 'fqcn-builtins'
- 'experimental'
- 'name[play]'
- 'name[casing]'
- 'name[template]'
- 'fqcn[action]'
- 'key-order[task]'
- '204'
- '305'
- '303'
- '403'
- '306'
- '602'
- '208'
use_default_rules: true
verbosity: 0
1 change: 1 addition & 0 deletions .config/.gitleaks-report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
119 changes: 119 additions & 0 deletions .config/.secrets.baseline
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
{
"version": "1.4.0",
"plugins_used": [
{
"name": "ArtifactoryDetector"
},
{
"name": "AWSKeyDetector"
},
{
"name": "AzureStorageKeyDetector"
},
{
"name": "Base64HighEntropyString",
"limit": 4.5
},
{
"name": "BasicAuthDetector"
},
{
"name": "CloudantDetector"
},
{
"name": "DiscordBotTokenDetector"
},
{
"name": "GitHubTokenDetector"
},
{
"name": "HexHighEntropyString",
"limit": 3.0
},
{
"name": "IbmCloudIamDetector"
},
{
"name": "IbmCosHmacDetector"
},
{
"name": "JwtTokenDetector"
},
{
"name": "KeywordDetector",
"keyword_exclude": ""
},
{
"name": "MailchimpDetector"
},
{
"name": "NpmDetector"
},
{
"name": "PrivateKeyDetector"
},
{
"name": "SendGridDetector"
},
{
"name": "SlackDetector"
},
{
"name": "SoftlayerDetector"
},
{
"name": "SquareOAuthDetector"
},
{
"name": "StripeDetector"
},
{
"name": "TwilioKeyDetector"
}
],
"filters_used": [
{
"path": "detect_secrets.filters.allowlist.is_line_allowlisted"
},
{
"path": "detect_secrets.filters.common.is_ignored_due_to_verification_policies",
"min_level": 2
},
{
"path": "detect_secrets.filters.heuristic.is_indirect_reference"
},
{
"path": "detect_secrets.filters.heuristic.is_likely_id_string"
},
{
"path": "detect_secrets.filters.heuristic.is_lock_file"
},
{
"path": "detect_secrets.filters.heuristic.is_not_alphanumeric_string"
},
{
"path": "detect_secrets.filters.heuristic.is_potential_uuid"
},
{
"path": "detect_secrets.filters.heuristic.is_prefixed_with_dollar_sign"
},
{
"path": "detect_secrets.filters.heuristic.is_sequential_string"
},
{
"path": "detect_secrets.filters.heuristic.is_swagger_file"
},
{
"path": "detect_secrets.filters.heuristic.is_templated_secret"
},
{
"path": "detect_secrets.filters.regex.should_exclude_file",
"pattern": [
".config/.gitleaks-report.json",
"tasks/parse_etc_password.yml"
]
}
],
"results": {},
"generated_at": "2023-09-20T15:36:36Z"
}
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# adding github settings to show correct language
*.sh linguist-detectable=true
*.yml linguist-detectable=true
*.ps1 linguist-detectable=true
*.j2 linguist-detectable=true
*.md linguist-documentation
Binary file removed .github/.DS_Store
Binary file not shown.
38 changes: 0 additions & 38 deletions .github/workflows/communitytodevel.yml

This file was deleted.

138 changes: 138 additions & 0 deletions .github/workflows/devel_pipeline_validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
---

name: Devel pipeline

on: # yamllint disable-line rule:truthy
pull_request_target:
types: [opened, reopened, synchronize]
branches:
- devel
paths:
- '**.yml'
- '**.sh'
- '**.j2'
- '**.ps1'
- '**.cfg'

# A workflow run is made up of one or more jobs
# that can run sequentially or in parallel
jobs:
# This will create messages for first time contributers and direct them to the Discord server
welcome:
runs-on: ubuntu-latest

steps:
- uses: actions/first-interaction@main
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
pr-message: |-
Congrats on opening your first pull request and thank you for taking the time to help improve Ansible-Lockdown!
Please join in the conversation happening on the [Discord Server](https://www.lockdownenterprise.com/discord) as well.

# This workflow contains a single job which tests the playbook
playbook-test:
# The type of runner that the job will run on
runs-on: ubuntu-latest
env:
ENABLE_DEBUG: ${{ vars.ENABLE_DEBUG }}
# Imported as a variable by terraform
TF_VAR_repository: ${{ github.event.repository.name }}
defaults:
run:
shell: bash
working-directory: .github/workflows/github_linux_IaC

steps:
- name: Clone ${{ github.event.repository.name }}
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}

# Pull in terraform code for linux servers
- name: Clone github IaC plan
uses: actions/checkout@v3
with:
repository: ansible-lockdown/github_linux_IaC
path: .github/workflows/github_linux_IaC

- name: Add_ssh_key
working-directory: .github/workflows
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
PRIVATE_KEY: "${{ secrets.SSH_PRV_KEY }}"
run: |
mkdir .ssh
chmod 700 .ssh
echo $PRIVATE_KEY > .ssh/github_actions.pem
chmod 600 .ssh/github_actions.pem

- name: DEBUG - Show IaC files
if: env.ENABLE_DEBUG == 'true'
run: |
echo "OSVAR = $OSVAR"
echo "benchmark_type = $benchmark_type"
pwd
ls
env:
# Imported from github variables this is used to load the relvent OS.tfvars file
OSVAR: ${{ vars.OSVAR }}
benchmark_type: ${{ vars.BENCHMARK_TYPE }}

- name: Terraform_Init
id: init
run: terraform init
env:
# Imported from github variables this is used to load the relvent OS.tfvars file
OSVAR: ${{ vars.OSVAR }}
TF_VAR_benchmark_type: ${{ vars.BENCHMARK_TYPE }}

- name: Terraform_Validate
id: validate
run: terraform validate
env:
# Imported from github variables this is used to load the relvent OS.tfvars file
OSVAR: ${{ vars.OSVAR }}
TF_VAR_benchmark_type: ${{ vars.BENCHMARK_TYPE }}

- name: Terraform_Apply
id: apply
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
OSVAR: ${{ vars.OSVAR }}
TF_VAR_benchmark_type: ${{ vars.BENCHMARK_TYPE }}
run: terraform apply -var-file "github_vars.tfvars" -var-file "${OSVAR}.tfvars" --auto-approve -input=false

## Debug Section
- name: DEBUG - Show Ansible hostfile
if: env.ENABLE_DEBUG == 'true'
run: cat hosts.yml

# Aws deployments taking a while to come up insert sleep or playbook fails

- name: Sleep for 60 seconds
run: sleep 60s

# Run the ansible playbook
- name: Run_Ansible_Playbook
uses: arillso/action.playbook@master
with:
playbook: site.yml
inventory: .github/workflows/github_linux_IaC/hosts.yml
galaxy_file: collections/requirements.yml
private_key: ${{ secrets.SSH_PRV_KEY }}
# verbose: 3
env:
ANSIBLE_HOST_KEY_CHECKING: "false"
ANSIBLE_DEPRECATION_WARNINGS: "false"

# Remove test system - User secrets to keep if necessary

- name: Terraform_Destroy
if: always() && env.ENABLE_DEBUG == 'false'
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
OSVAR: ${{ vars.OSVAR }}
TF_VAR_benchmark_type: ${{ vars.BENCHMARK_TYPE }}
run: terraform destroy -var-file "github_vars.tfvars" -var-file "${OSVAR}.tfvars" --auto-approve -input=false
38 changes: 0 additions & 38 deletions .github/workflows/develtomaster.yml

This file was deleted.

Loading