Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
b9eab68
legacy: encryption key
zardus Feb 3, 2026
79025ed
pwnshop: properly configure seccomp
zardus Feb 6, 2026
0d42407
legacy: add legacy solvers
zardus Feb 6, 2026
ead7813
fix(pie-overflow-w): use raw fd reads to avoid select/BufferedReader …
claude Feb 9, 2026
994dd29
fix(legacy): fix cimg-sprite-load and cimg-quest-3 solvers
claude Feb 9, 2026
728933b
fix(legacy): fix bounds-breaker-easy and recursive-ruin-hard solvers
claude Feb 9, 2026
f10ae7b
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 12, 2026
3b3f0d8
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 12, 2026
9c07e6c
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 13, 2026
6d1dc53
Clean up unused imports in __init__.py
ConnorNelson Feb 13, 2026
b56a64c
pwnshop: fall back to runc when kata runtime is unavailable
zardus Feb 14, 2026
50482f4
Remove simulation fallbacks from intercepting-communication solvers
zardus Feb 14, 2026
7b5115c
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 16, 2026
064e11b
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 16, 2026
0ab9f4a
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 16, 2026
4c91d52
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 16, 2026
e8450bb
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 16, 2026
1a6bcd3
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 24, 2026
61364e0
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 26, 2026
efd451e
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Feb 26, 2026
99d1895
pwnshop: drop runtime fallback changes from PR 83
ConnorNelson Feb 26, 2026
ce6d8e8
Merge branch 'main' into wip/legacy-solvers
ConnorNelson Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 26 additions & 1 deletion challenges/legacy/common/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
ARG CHALLENGE_IMAGE="{{ challenge_image }}"
FROM "${CHALLENGE_IMAGE}"

# Save the base image's .init if it exists (will be run later)
RUN if [ -x /challenge/.init ]; then mv /challenge/.init /challenge/.init.base; fi

# https://github.com/pwncollege/official-dojos
WORKDIR /opt/dojos

Expand All @@ -27,7 +30,7 @@ if [ ! -d "$CHALLENGE_PATH" ]; then
exit 1
fi

rm /challenge/.init
[ -e /challenge/.init ] && rm -f /challenge/.init

threshold=$((10 * 1024 * 1024)) # 10 MiB

Expand All @@ -53,6 +56,28 @@ find -L /challenge -exec chmod 4755 {} \;
mkdir -p /run/dojo/var/root
echo "Legacy challenge unpacked." > /run/dojo/var/root/init.log

# Add challenge.localhost and hacker.localhost to /etc/hosts for web challenges
if ! grep -q "challenge.localhost" /etc/hosts; then
echo "127.0.0.1 challenge.localhost hacker.localhost" >> /etc/hosts
fi

# Create a user for uid 1000 (used by test runner)
if ! getent passwd 1000 >/dev/null 2>&1; then
echo "hacker:x:1000:1000::/home/hacker:/bin/bash" >> /etc/passwd
echo "hacker:x:1000:" >> /etc/group
mkdir -p /home/hacker
chown 1000:1000 /home/hacker
fi

# Run the base image's .init if it was saved (e.g., for program-misuse challenges)
# Use set +e because the base .init may try to rm files that don't exist
if [ -x /challenge/.init.base ]; then
set +e
/challenge/.init.base
set -e
fi

# Run the challenge-specific .init if one was copied from the dojo
if [ -x /challenge/.init ]; then
exec /challenge/.init
fi
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,77 @@
{% set challenge_image = "pwncollege/challenge-legacy:latest" %}
{% set challenge_path = "fundamentals-dojo/talking-web/http-browser" %}
{% include "common/Dockerfile.j2" %}
# syntax=docker/dockerfile:1

ARG CHALLENGE_IMAGE="pwncollege/challenge-legacy:latest"
FROM "${CHALLENGE_IMAGE}"

# Save the base image's .init if it exists (will be run later)
RUN if [ -x /challenge/.init ]; then mv /challenge/.init /challenge/.init.base; fi

# https://github.com/pwncollege/official-dojos
WORKDIR /opt/dojos

ADD https://github.com/pwncollege/fundamentals-dojo.git ./fundamentals-dojo

Copilot AI Feb 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same issue as the http-comment Dockerfile: building from an unpinned remote Git HEAD is non-deterministic and increases supply-chain risk. Pin to a specific commit/ref (ideally via build arg) or vendor the required challenge assets.

Suggested change
ADD https://github.com/pwncollege/fundamentals-dojo.git ./fundamentals-dojo
ARG FUNDAMENTALS_DOJO_REF="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
ADD https://github.com/pwncollege/fundamentals-dojo/archive/${FUNDAMENTALS_DOJO_REF}.tar.gz ./fundamentals-dojo.tar.gz
RUN mkdir -p ./fundamentals-dojo \
&& tar -xzf fundamentals-dojo.tar.gz --strip-components=1 -C ./fundamentals-dojo \
&& rm fundamentals-dojo.tar.gz

Copilot uses AI. Check for mistakes.

WORKDIR /

COPY --chmod=755 <<'EOF' /challenge/.init
#!/bin/bash
set -eou pipefail

# Add challenge.localhost to /etc/hosts for Flask server binding
echo "127.0.0.1 challenge.localhost" >> /etc/hosts

Copilot AI Feb 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This appends a hosts entry on every init run and can accumulate duplicates. Add a presence check (like the grep -q ... /etc/hosts guard in the shared legacy init) before appending.

Suggested change
echo "127.0.0.1 challenge.localhost" >> /etc/hosts
if ! grep -q '127.0.0.1 challenge.localhost' /etc/hosts 2>/dev/null; then
echo "127.0.0.1 challenge.localhost" >> /etc/hosts
fi

Copilot uses AI. Check for mistakes.

if [ ! -d "$CHALLENGE_PATH" ]; then
echo "[*] Challenge path $CHALLENGE_PATH does not exist!"
exit 1
fi

rm -f /challenge/.init

threshold=$((10 * 1024 * 1024)) # 10 MiB

find -L "$CHALLENGE_PATH" \
-mindepth 1 -maxdepth 1 ! -name '_*' \
-size -$((threshold + 1))c \
-exec cp -aL {} /challenge \;

find -L "$CHALLENGE_PATH" \
-mindepth 1 -maxdepth 1 ! -name '_*' \
-type f -size +${threshold}c \
-exec ln -sf {} /challenge/ \;

instance=$(shopt -s nullglob; set -- "$CHALLENGE_PATH"/_*/; printf '%s' "${1:-}")
if [ -n "$instance" ]; then
cp -aL "$instance"/. /challenge
fi

chown -R 0:0 /challenge
find -L /challenge -exec chmod 4755 {} \;

Copilot AI Feb 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same symlink-follow issue: find -L will dereference any symlinks placed in /challenge and chmod the targets outside /challenge. Remove -L and limit the chmod to the intended subset (e.g., -type f, optionally only executable files).

Suggested change
find -L /challenge -exec chmod 4755 {} \;
find /challenge -type f -exec chmod 4755 {} \;

Copilot uses AI. Check for mistakes.

# Some legacy challenges expect this to exist (e.g. legacy/linux-luminarium/processes/ps)
mkdir -p /run/dojo/var/root
echo "Legacy challenge unpacked." > /run/dojo/var/root/init.log

# Create a user for uid 1000 (used by test runner)
if ! getent passwd 1000 >/dev/null 2>&1; then
echo "hacker:x:1000:1000::/home/hacker:/bin/bash" >> /etc/passwd
echo "hacker:x:1000:" >> /etc/group
mkdir -p /home/hacker
chown 1000:1000 /home/hacker
fi

# Run the base image's .init if it was saved (e.g., for program-misuse challenges)
# Use set +e because the base .init may try to rm files that don't exist
if [ -x /challenge/.init.base ]; then
set +e
/challenge/.init.base
set -e
fi

# Run the challenge-specific .init if one was copied from the dojo
if [ -x /challenge/.init ]; then
exec /challenge/.init
fi
EOF

ARG CHALLENGE_PATH="/opt/dojos/fundamentals-dojo/talking-web/http-browser"
ENV CHALLENGE_PATH="${CHALLENGE_PATH}"
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,77 @@
{% set challenge_image = "pwncollege/challenge-legacy:latest" %}
{% set challenge_path = "fundamentals-dojo/talking-web/http-comment" %}
{% include "common/Dockerfile.j2" %}
# syntax=docker/dockerfile:1

ARG CHALLENGE_IMAGE="pwncollege/challenge-legacy:latest"
FROM "${CHALLENGE_IMAGE}"

# Save the base image's .init if it exists (will be run later)
RUN if [ -x /challenge/.init ]; then mv /challenge/.init /challenge/.init.base; fi

# https://github.com/pwncollege/official-dojos
WORKDIR /opt/dojos

ADD https://github.com/pwncollege/fundamentals-dojo.git ./fundamentals-dojo

Copilot AI Feb 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ADD from a remote Git URL is not reproducible (build output changes as the repo HEAD changes) and expands the build’s network/supply-chain trust surface. Prefer pinning to a specific ref/commit (e.g., via an ARG for a commit SHA and a clone/checkout step) or vendoring the needed content so builds are deterministic.

Suggested change
ADD https://github.com/pwncollege/fundamentals-dojo.git ./fundamentals-dojo
ARG FUNDAMENTALS_DOJO_REF="main"
RUN git clone https://github.com/pwncollege/fundamentals-dojo.git ./fundamentals-dojo \
&& cd ./fundamentals-dojo \
&& git checkout "${FUNDAMENTALS_DOJO_REF}"

Copilot uses AI. Check for mistakes.

WORKDIR /

COPY --chmod=755 <<'EOF' /challenge/.init
#!/bin/bash
set -eou pipefail

# Add challenge.localhost to /etc/hosts for Flask server binding
echo "127.0.0.1 challenge.localhost" >> /etc/hosts

Copilot AI Feb 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This unconditionally appends to /etc/hosts on every init run, which can lead to duplicated lines across restarts. Mirror the guard used in challenges/legacy/common/Dockerfile.j2 (check with grep -q before appending) to keep the file stable.

Suggested change
echo "127.0.0.1 challenge.localhost" >> /etc/hosts
grep -q 'challenge\.localhost' /etc/hosts || echo "127.0.0.1 challenge.localhost" >> /etc/hosts

Copilot uses AI. Check for mistakes.

if [ ! -d "$CHALLENGE_PATH" ]; then
echo "[*] Challenge path $CHALLENGE_PATH does not exist!"
exit 1
fi

rm -f /challenge/.init

threshold=$((10 * 1024 * 1024)) # 10 MiB

find -L "$CHALLENGE_PATH" \
-mindepth 1 -maxdepth 1 ! -name '_*' \
-size -$((threshold + 1))c \
-exec cp -aL {} /challenge \;

find -L "$CHALLENGE_PATH" \
-mindepth 1 -maxdepth 1 ! -name '_*' \
-type f -size +${threshold}c \
-exec ln -sf {} /challenge/ \;

instance=$(shopt -s nullglob; set -- "$CHALLENGE_PATH"/_*/; printf '%s' "${1:-}")
if [ -n "$instance" ]; then
cp -aL "$instance"/. /challenge
fi

chown -R 0:0 /challenge
find -L /challenge -exec chmod 4755 {} \;

Copilot AI Feb 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

find -L follows symlinks; since this init script creates symlinks for large files (ln -sf {} /challenge/), this can chmod the symlink targets outside /challenge (e.g., under /opt/dojos/...) to mode 4755. Drop -L here (don’t follow symlinks) and restrict the chmod to the intended file set (typically regular files, and often only executables).

Suggested change
find -L /challenge -exec chmod 4755 {} \;
find /challenge -type f -perm -u=x -exec chmod 4755 {} \;

Copilot uses AI. Check for mistakes.

# Some legacy challenges expect this to exist (e.g. legacy/linux-luminarium/processes/ps)
mkdir -p /run/dojo/var/root
echo "Legacy challenge unpacked." > /run/dojo/var/root/init.log

# Create a user for uid 1000 (used by test runner)
if ! getent passwd 1000 >/dev/null 2>&1; then
echo "hacker:x:1000:1000::/home/hacker:/bin/bash" >> /etc/passwd
echo "hacker:x:1000:" >> /etc/group
mkdir -p /home/hacker
chown 1000:1000 /home/hacker
fi

# Run the base image's .init if it was saved (e.g., for program-misuse challenges)
# Use set +e because the base .init may try to rm files that don't exist
if [ -x /challenge/.init.base ]; then
set +e
/challenge/.init.base
set -e
fi

# Run the challenge-specific .init if one was copied from the dojo
if [ -x /challenge/.init ]; then
exec /challenge/.init
fi
EOF

ARG CHALLENGE_PATH="/opt/dojos/fundamentals-dojo/talking-web/http-comment"
ENV CHALLENGE_PATH="${CHALLENGE_PATH}"
Comment on lines +1 to +77

Copilot AI Feb 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These per-challenge Dockerfiles duplicate the shared legacy image logic that already exists in challenges/legacy/common/Dockerfile.j2 (and is being updated in this PR). To avoid divergence and double-maintenance, prefer keeping these as the small Jinja wrappers ({% set challenge_image %}, {% set challenge_path %}, {% include "common/Dockerfile.j2" %}) unless there’s a concrete need for per-challenge deviations.

Suggested change
# syntax=docker/dockerfile:1
ARG CHALLENGE_IMAGE="pwncollege/challenge-legacy:latest"
FROM "${CHALLENGE_IMAGE}"
# Save the base image's .init if it exists (will be run later)
RUN if [ -x /challenge/.init ]; then mv /challenge/.init /challenge/.init.base; fi
# https://github.com/pwncollege/official-dojos
WORKDIR /opt/dojos
ADD https://github.com/pwncollege/fundamentals-dojo.git ./fundamentals-dojo
WORKDIR /
COPY --chmod=755 <<'EOF' /challenge/.init
#!/bin/bash
set -eou pipefail
# Add challenge.localhost to /etc/hosts for Flask server binding
echo "127.0.0.1 challenge.localhost" >> /etc/hosts
if [ ! -d "$CHALLENGE_PATH" ]; then
echo "[*] Challenge path $CHALLENGE_PATH does not exist!"
exit 1
fi
rm -f /challenge/.init
threshold=$((10 * 1024 * 1024)) # 10 MiB
find -L "$CHALLENGE_PATH" \
-mindepth 1 -maxdepth 1 ! -name '_*' \
-size -$((threshold + 1))c \
-exec cp -aL {} /challenge \;
find -L "$CHALLENGE_PATH" \
-mindepth 1 -maxdepth 1 ! -name '_*' \
-type f -size +${threshold}c \
-exec ln -sf {} /challenge/ \;
instance=$(shopt -s nullglob; set -- "$CHALLENGE_PATH"/_*/; printf '%s' "${1:-}")
if [ -n "$instance" ]; then
cp -aL "$instance"/. /challenge
fi
chown -R 0:0 /challenge
find -L /challenge -exec chmod 4755 {} \;
# Some legacy challenges expect this to exist (e.g. legacy/linux-luminarium/processes/ps)
mkdir -p /run/dojo/var/root
echo "Legacy challenge unpacked." > /run/dojo/var/root/init.log
# Create a user for uid 1000 (used by test runner)
if ! getent passwd 1000 >/dev/null 2>&1; then
echo "hacker:x:1000:1000::/home/hacker:/bin/bash" >> /etc/passwd
echo "hacker:x:1000:" >> /etc/group
mkdir -p /home/hacker
chown 1000:1000 /home/hacker
fi
# Run the base image's .init if it was saved (e.g., for program-misuse challenges)
# Use set +e because the base .init may try to rm files that don't exist
if [ -x /challenge/.init.base ]; then
set +e
/challenge/.init.base
set -e
fi
# Run the challenge-specific .init if one was copied from the dojo
if [ -x /challenge/.init ]; then
exec /challenge/.init
fi
EOF
ARG CHALLENGE_PATH="/opt/dojos/fundamentals-dojo/talking-web/http-comment"
ENV CHALLENGE_PATH="${CHALLENGE_PATH}"
{% set challenge_image = "pwncollege/challenge-legacy:latest" %}
{% set challenge_path = "/opt/dojos/fundamentals-dojo/talking-web/http-comment" %}
{% include "common/Dockerfile.j2" %}

Copilot uses AI. Check for mistakes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
privileged: true
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Loading