Skip to content

Commit 2b1067a

Browse files
authored
Merge pull request #8 from elastx/jocke/mad-interactive
Jocke/mad interactive
2 parents 9c63677 + 0e8aa9a commit 2b1067a

File tree

12 files changed

+512
-22
lines changed

12 files changed

+512
-22
lines changed

.github/workflows/build-pba.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,12 @@ jobs:
4343
ABAF11C65A2970B130ABE3C479BE3E4300411886
4444
- name: Build PBA
4545
run: GOPATH=$PWD/go make
46-
- name: Calculate sha256sum
47-
run: sha256sum elx-pba-x86_64.img | tee SHA256SUMS
4846
- name: Save inventory as artifact
4947
uses: actions/upload-artifact@v3
5048
if: always()
5149
with:
5250
name: pba
5351
path: |
5452
elx-pba-x86_64.img
53+
elx-pba-interactive-x86_64.img
5554
SHA256SUMS

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ linux-*/
66
rootfs-*
77
**/.bb/
88
go/
9+
SHA256SUMS

Makefile

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
ARCH ?= $(shell uname -m)
22
LINUX_VERSION ?= 6.1.58
3+
UROOT_GIT_REF ?= v0.11.0
4+
BUILDER_IMAGE ?= quay.io/elastx/elx-pba-builder:$(shell git describe --tags --exact-match 2> /dev/null || git symbolic-ref -q --short HEAD || git rev-parse --short HEAD)
35

46
ifeq ($(shell uname),Linux)
57
ACCEL ?= kvm
@@ -9,8 +11,17 @@ else
911
ACCEL ?= tcg
1012
endif
1113

14+
.PHONY: checksum
15+
checksum: elx-pba-$(ARCH).img elx-pba-interactive-$(ARCH).img
16+
sha256sum elx-pba-*.img | tee SHA256SUMS
17+
1218
.PHONY: all
13-
all: elx-pba-$(ARCH).img
19+
all: elx-pba-$(ARCH).img elx-pba-interactive-$(ARCH).img checksum
20+
21+
.EXPORT_ALL_VARIABLES:
22+
GOPATH = $(PWD)/go
23+
UROOT_PATH = $(PWD)/go/src/github.com/u-root/u-root
24+
GBB_PATH = $(PWD):$(PWD)/go/src/github.com/u-root/u-root
1425

1526
.DELETE_ON_ERROR:
1627

@@ -35,7 +46,36 @@ qemu-x86_64: elx-pba-x86_64.img arch/x86_64/ovmf.fd
3546
-machine "type=q35,smm=on,usb=on" \
3647
-no-reboot
3748

49+
.PHONY: qemu-x86_64-interactive
50+
qemu-x86_64-interactive: elx-pba-interactive-x86_64.img arch/x86_64/ovmf.fd
51+
qemu-system-x86_64 \
52+
-m 1024 \
53+
-uuid 00000000-0000-0000-0000-000000000001 \
54+
-smbios type=1,serial=SYSTEM01 \
55+
-smbios type=2,serial=BOARD01 \
56+
-smbios type=3,serial=CHASSIS01 \
57+
-device "virtio-scsi-pci,id=scsi0" \
58+
-device "scsi-hd,bus=scsi0.0,drive=hd0" \
59+
-drive "id=hd0,if=none,format=raw,readonly=on,file=$<" \
60+
-drive "if=pflash,format=raw,readonly,file=arch/x86_64/ovmf.fd" \
61+
-accel "$(ACCEL)" \
62+
-machine "type=q35,smm=on,usb=on" \
63+
-no-reboot
64+
3865
.PHONY: clean
3966
clean:
40-
\rm -vf elx-pba-*.img elx-pba-*.fs rootfs-*.img rootfs-*.zst
67+
\rm -vf elx-pba-*.img elx-pba-*.fs rootfs-*.img rootfs-*.cpio go/bin/*
68+
69+
.PHONY: dist_clean
70+
dist_clean: clean
71+
rm -rf go/{bin,pkg,src}/* linux-$(LINUX_VERSION) linux-$(LINUX_VERSION).*
72+
73+
builder:
74+
docker build -t "$(BUILDER_IMAGE)" -f builder.dockerfile .
75+
76+
docker_build:
77+
docker run --user $(shell id -u):$(shell id -g) -it --rm -v $(PWD):/src $(BUILDER_IMAGE)
78+
79+
docker_clean:
80+
docker run --user $(shell id -u):$(shell id -g) -it --rm -v $(PWD):/src $(BUILDER_IMAGE) make clean
4181

builder.dockerfile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FROM docker.io/library/golang:1.19.13-bullseye
33
RUN apt-get update && \
44
apt-get install --no-install-recommends --yes \
55
gnupg2 gpgv2 flex bison build-essential libelf-dev curl \
6-
libssl-dev bc zstd dosfstools fdisk gdisk mtools && \
6+
libssl-dev bc zstd dosfstools fdisk gdisk mtools kbd console-data libncurses-dev && \
77
apt-get clean && \
88
apt-get autoremove && \
99
rm --force --recursive /tmp/* /var/lib/apt/lists/* /var/tmp/*
@@ -15,7 +15,6 @@ RUN gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys \
1515
647F28654894E3BD457199BE38DBBDC86092693E \
1616
ABAF11C65A2970B130ABE3C479BE3E4300411886
1717

18-
ENV GOPATH=/src/go
1918
WORKDIR /src
2019

21-
ENTRYPOINT /usr/bin/make
20+
CMD /usr/bin/make

cmd/pbainit-interactive/logo.go

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
package main
2+
3+
const logo = `
4+
G1s/MWgbPRsoQhtbbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
5+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
6+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
7+
ICAgCiAgICAgICAgICAbWzM4OzI7MjUwOzIxMTsxNDRt4paEG1szODsyOzI1NTsyMjQ7MTUxbeKW
8+
hBtbMzg7MjsyNTU7MjE3OzE0MW3iloQbWzM4OzI7MjU1OzIwOTsxMjZt4paEG1szODsyOzI1NTsy
9+
MDI7MTExbeKWhBtbMzg7MjsyNTU7MTk3Ozk3beKWhBtbMzg7MjsyNTU7MTk1Ozg1beKWhBtbMzg7
10+
MjsyNTU7MTkzOzc1beKWhBtbMzg7MjsyNDg7MTg1OzY5beKWlhtbMzltICAgICAgICAgICAgICAg
11+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIBtb
12+
Mzg7MjsyNDQ7MjA3OzExNW3iloQbWzM4OzI7MjU1OzIyMzsxNDNtG1s0ODsyOzI1MjsyMDY7MTE4
13+
beKWgBtbMzg7MjsyNTQ7MjA2OzExOG0bWzQ4OzI7MjUzOzIwODsxMzZt4paEG1szODsyOzI1Mjsy
14+
MDM7MTIybRtbNDg7MjsyNDc7MTg5OzEwMm3ilpsbWzM4OzI7MjIxOzE2MTs3OW0bWzQ4OzI7MjU1
15+
OzE5NTsxMDlt4paEG1szODsyOzIyMTsxNTM7NjJtG1s0ODsyOzI1NTsxODQ7ODdt4paEG1szODsy
16+
OzIyMDsxNDk7NDltG1s0ODsyOzI1NTsxNzg7Njht4paEG1szODsyOzI1NTsxNzk7NTZtG1s0ODsy
17+
OzIyMDsxNTI7NDFt4paAG1szODsyOzIyMDsxNTY7MzVtG1s0ODsyOzI1NTsxODQ7NDlt4paEG1sz
18+
ODsyOzI1NTsxODY7NDJtG1s0ODsyOzIxOTsxNTk7MzJt4paAG1szODsyOzI1NTsyMTE7NDhtG1s0
19+
OW3ilpgbWzM5bSAgICAgICAgICAgICAgICAgICAbWzM4OzI7MjEyOzIyNDsyMjlt4paXG1szOW0g
20+
ICAgICAgICAgICAgICAgICAgICAbWzM4OzI7MjExOzIyNDsyMzBt4paXG1szOW0gICAgICAgICAg
21+
ICAgICAgICAgCiAgICAgICAbWzM4OzI7MjU1OzIxODs3OW3ilpcbWzM4OzI7MjUxOzIwNTs4NW0b
22+
WzQ4OzI7MjU1OzIyMjsxMDJt4pafG1szODsyOzI1NDsyMDU7MTAwbRtbNDg7MjsyNTI7MjA1Ozg0
23+
beKWgBtbMzg7MjsyNTU7MjEwOzEwMm0bWzQ5beKWmBtbMzltICAgICAgICAgICAgICAgICAgICAg
24+
ICAgICAgG1szODsyOzIyOTsyNDI7MjQ3bRtbNDg7MjsyMzk7MjUyOzI1NG3iloQbWzM5bRtbNDlt
25+
ICAgICAgICAgICAgICAgICAgICAgG1szODsyOzIzODsyNTE7MjU1bRtbNDg7MjsyMjU7MjM4OzI0
26+
M23iloAbWzM5bRtbNDltICAgICAgICAgICAgICAgICAgIAogICAgICAgG1szODsyOzI1NTsyMTg7
27+
NzNt4paQG1szODsyOzI1MDsyMDY7NzRtG1s0ODsyOzI1MDsyMDk7NzZt4pacG1szODsyOzI0MTsx
28+
OTc7NzBtG1s0ODsyOzI1NDsyMTE7Nzdt4paMG1szOW0bWzQ5bSAgICAgICAgICAgICAgICAgIBtb
29+
Mzg7MjsyMjg7MjQyOzI0N23iloQbWzM4OzI7MjI5OzI0MjsyNDZt4pabG1szODsyOzI0MjsyNTI7
30+
MjU1beKWgBtbMzg7MjsyMjY7MjM5OzI0NG3iloAbWzM4OzI7MjQyOzI1MzsyNTVt4paAG1szODsy
31+
OzIyOTsyNDI7MjQ2beKWnBtbMzg7MjsyMjg7MjQxOzI0Nm3iloQbWzM5bSAgIBtbMzg7MjsyMzA7
32+
MjQ0OzI0OW0bWzQ4OzI7MjMwOzI0MzsyNDht4paMG1szOW0bWzQ5bSAgIBtbMzg7MjsyMjU7MjM5
33+
OzI0NG3iloQbWzM4OzI7MjM0OzI0ODsyNTFtG1s0ODsyOzE5NDsyMDU7MjEwbeKWnhtbMzg7Mjsy
34+
NDk7MjU1OzI1NW0bWzQ5beKWgBtbMzg7MjsyNDc7MjU1OzI1NW3iloAbWzM4OzI7MjQzOzI1NDsy
35+
NTVt4paAG1szODsyOzIyMDsyMzM7MjM2beKWmRtbMzg7MjsyMTQ7MjI3OzIzMm3ilp8bWzM4OzI7
36+
MjM3OzI0OTsyNTJt4paMG1szOW0gIBtbMzg7MjsyMjA7MjMzOzIzOG3iloQbWzM4OzI7MjI4OzI0
37+
MDsyNDNt4pabG1szODsyOzI0ODsyNTU7MjU1beKWgOKWgBtbMzg7MjsyMzU7MjQ3OzI1MG0bWzQ4
38+
OzI7MTkyOzIwMzsyMDht4paaG1szODsyOzI0NDsyNTU7MjU1bRtbNDlt4paWG1szOW0gIBtbMzg7
39+
MjsyMjY7MjM5OzI0NG0bWzQ4OzI7MjE0OzIyNzsyMzJt4paZG1szODsyOzI0MDsyNTE7MjU0bRtb
40+
NDlt4paAG1szODsyOzI0ODsyNTU7MjU1beKWgBtbMzg7MjsyMTA7MjE5OzIyM23ilpgbWzM5bSAb
41+
WzM4OzI7MjQzOzI1NTsyNTVt4padG1szODsyOzIzMTsyNDQ7MjUwbeKWmRtbMzg7MjsxOTk7MjA5
42+
OzIxM23ilpYbWzM5bSAgG1szODsyOzIzMDsyNDM7MjQ5beKWnxtbMzg7MjsyMzI7MjQ1OzI0OG3i
43+
loAbWzM5bSAgICAgICAgCiAgICAgICAbWzM4OzI7MjU1OzIyNDs4N23ilpAbWzM4OzI7MjQ1OzIw
44+
ODs4MW0bWzQ4OzI7MjUwOzIxMzs4Nm3ilpAbWzM4OzI7MjMzOzE5Njs3MW0bWzQ4OzI7MjQ2OzIw
45+
Nzs3Nm3ilowbWzM5bRtbNDltICAbWzM4OzI7NjI7MjQzOzIzMW3ilpcbWzM4OzI7NzA7MjI1OzIx
46+
NW0bWzQ4OzI7NjM7MjQxOzIyNm3iloQbWzM4OzI7NzE7MjIyOzIxN20bWzQ4OzI7NzA7MjQzOzIz
47+
MG3iloQbWzM4OzI7Njg7MjIyOzIyMG0bWzQ4OzI7NTg7MTg5OzE4N23ilpkbWzM4OzI7NjI7MTk1
48+
OzIwMW0bWzQ5beKWhBtbMzltIBtbMzg7Mjs2ODsyMDI7MjIxbeKWhBtbMzg7Mjs3MTsyMDI7MjIz
49+
bRtbNDg7Mjs3NjsyMTk7MjM5beKWmRtbMzg7Mjs4MDsyMjA7MjQ1bRtbNDg7Mjs3NzsyMDA7MjMw
50+
beKWgBtbMzg7Mjs3NTsyMDQ7MjM3bRtbNDg7Mjs2ODsxODg7MjE2beKWmRtbMzg7Mjs3NjsxOTM7
51+
MjI5bRtbNDlt4paWG1szOW0gICAgG1szODsyOzIyODsyNDE7MjQ2beKWkBtbMzg7MjsyMTk7MjMy
52+
OzIzN23ilpsbWzM5bSAgICAgG1szODsyOzIxODsyMzA7MjM1beKWnBtbMzg7MjsyMjY7MjM5OzI0
53+
NG3ilowbWzM5bSAgG1szODsyOzIzMDsyNDQ7MjQ5bRtbNDg7MjsyMzA7MjQzOzI0OG3ilowbWzM5
54+
bRtbNDltICAbWzM4OzI7MjI3OzI0MTsyNDZt4paQG1szODsyOzIyMjsyMzU7MjQwbeKWmxtbMzlt
55+
ICAgICAbWzM4OzI7MjIzOzIzNzsyNDJt4pacG1szODsyOzIzMTsyNDU7MjUwbeKWjBtbMzltICAb
56+
WzM4OzI7MjM0OzI0NzsyNTNtG1s0ODsyOzIxNDsyMjg7MjMzbeKWmhtbMzg7MjsyMTg7MjMxOzIz
57+
Nm0bWzQ5beKWlhtbMzltICAgICAgG1szODsyOzIyNDsyMzc7MjQybRtbNDg7MjsyMzM7MjQ3OzI1
58+
Mm3ilowbWzM5bRtbNDltICAgICAbWzM4OzI7MjI5OzI0MjsyNDht4padG1szODsyOzIyNjsyMzk7
59+
MjQ1bRtbNDg7MjsyMjA7MjMzOzIzOG3ilpobWzM4OzI7MjE3OzIzMTsyMzZtG1s0OW3iloQbWzM4
60+
OzI7MjI3OzI0MDsyNDVt4pafG1szODsyOzIzMTsyNDQ7MjQ5beKWmBtbMzltICAgICAgICAgCiAg
61+
ICAgICAbWzM4OzI7MjU1OzIyNTs5Nm3ilpAbWzM4OzI7MjQ0OzIwODs4Nm0bWzQ4OzI7MjUwOzIx
62+
NDs5M23ilpAbWzM4OzI7MjQyOzIwNjs3OG0bWzQ4OzI7MjMxOzE5NTs3NG3ilpAbWzM5bRtbNDlt
63+
ICAbWzM4OzI7NjM7MjM5OzIzM23ilp0bWzM4OzI7NzM7MjI1OzIyNW0bWzQ4OzI7NTg7MjE0OzIx
64+
Nm3ilpwbWzM4OzI7Nzc7MjI3OzIzNm0bWzQ4OzI7NzU7MjE5OzIyMW3iloQbWzM4OzI7NzM7MjE0
65+
OzIyM20bWzQ5beKWmxtbMzg7Mjs3MTsyMTE7MjI0beKWmBtbMzltIBtbMzg7Mjs2MzsxODU7MjA5
66+
beKWgBtbMzg7Mjs3NDsxOTg7MjM0bRtbNDg7Mjs2MzsxNzc7MjA5beKWnBtbMzg7Mjs3ODsyMDM7
67+
MjQ4bRtbNDg7Mjs3NTsxOTU7MjMzbeKWhBtbMzg7Mjs3NTsxOTc7MjQwbRtbNDg7Mjs2OTsxNzM7
68+
MjEzbeKWmxtbMzg7Mjs3MzsxNzg7MjE1bRtbNDlt4paYG1szOW0gICAgG1szODsyOzIxNDsyMjc7
69+
MjMybeKWnBtbMzg7MjsyMjE7MjM0OzIzOW3ilpsbWzM4OzI7MjUwOzI1NTsyNTVt4paAG1szODsy
70+
OzI0NzsyNTU7MjU1beKWgOKWgOKWgBtbMzg7MjsyNDk7MjU1OzI1NW3iloAbWzM4OzI7MjM0OzI0
71+
ODsyNTNt4paAG1szODsyOzIyMTsyMzM7MjM1beKWgBtbMzltICAbWzM4OzI7MjMwOzI0NDsyNDlt
72+
G1s0ODsyOzIzMDsyNDM7MjQ4beKWjBtbMzltG1s0OW0gIBtbMzg7MjsyMTc7MjMwOzIzNm0bWzQ4
73+
OzI7MjExOzIyNDsyMjht4pacG1szODsyOzIyNDsyMzc7MjQxbRtbNDlt4paMG1szOW0gICAgIBtb
74+
Mzg7MjsyMzA7MjQ0OzI0OW3ilpAbWzM4OzI7MjI5OzI0MzsyNDht4paMG1szOW0gICAbWzM4OzI7
75+
MjI5OzI0MjsyNDVt4paAG1szODsyOzI0MDsyNTA7MjUzbeKWgBtbMzg7MjsyMDY7MjE4OzIyM23i
76+
lpkbWzM4OzI7MjM5OzI1MDsyNTNt4paEG1szODsyOzIwMjsyMTM7MjE3beKWlhtbMzltICAbWzM4
77+
OzI7MjI0OzIzNzsyNDJtG1s0ODsyOzIzMjsyNDY7MjUxbeKWjBtbMzltG1s0OW0gICAgICAbWzM4
78+
OzI7MjE1OzIyODsyMzNt4paQG1s0ODsyOzIyNzsyNDE7MjQ2beKWgBtbMzg7MjsyMjI7MjM1OzI0
79+
MG0bWzQ5beKWjBtbMzltICAgICAgICAgIAogICAgICAgG1szODsyOzI1NTsyMTY7MTAwbeKWkBtb
80+
Mzg7MjsyNTA7MjA2Ozk3bRtbNDg7MjsyNDU7MjAzOzkwbeKWjBtbMzg7MjsyMzM7MTkzOzc5bRtb
81+
NDg7MjsyNDU7MjA0OzgybeKWjBtbMzltG1s0OW0gICAgICAgICAgICAgICAgIBtbMzg7MjsyMzc7
82+
MjUxOzI1NW3ilp0bWzM4OzI7MjI3OzI0MDsyNDVtG1s0ODsyOzIwMjsyMTM7MjE4beKWmRtbMzg7
83+
MjsyMjg7MjQyOzI0N20bWzQ5beKWlhtbMzltICAgICAgICAbWzM4OzI7MjMwOzI0NDsyNDltG1s0
84+
ODsyOzIyOTsyNDE7MjQ2beKWmxtbMzltG1s0OW0gIBtbMzg7MjsyMTg7MjMyOzIzN23ilpAbWzM4
85+
OzI7MjI3OzI0MDsyNDVt4paZG1szOW0gICAgG1szODsyOzIwOTsyMjI7MjI3beKWlxtbMzg7Mjsy
86+
MTI7MjI1OzIzMG0bWzQ4OzI7MjMzOzI0NzsyNTJt4pacG1szODsyOzIzMTsyNDU7MjUwbRtbNDlt
87+
4paMG1szOW0gIBtbMzg7MjsyMTA7MjIyOzIyNm3ilpcbWzM5bSAgIBtbMzg7MjsyMTY7MjI5OzIz
88+
NG3ilpAbWzM4OzI7MjE0OzIyNjsyMzFtG1s0ODsyOzIyNjsyMzk7MjQzbeKWnhtbMzltG1s0OW0g
89+
IBtbMzg7MjsyMjU7MjM4OzI0M20bWzQ4OzI7MjMzOzI0NzsyNTJt4paZG1szOW0bWzQ5bSAgICAg
90+
G1szODsyOzIxOTsyMzI7MjM3beKWhBtbMzg7MjsyMzM7MjQ3OzI1Mm3ilpsbWzM5bSAbWzM4OzI7
91+
MjI4OzI0MjsyNDdt4pacG1szODsyOzIyMjsyMzQ7MjM5beKWmRtbMzltICAgICAgICAgCiAgICAg
92+
ICAbWzM4OzI7MjU1OzE5NzsxMDRt4padG1szODsyOzI0OTsxOTI7MTA1bRtbNDg7MjsyMzQ7MTc2
93+
OzEwMW3ilpsbWzM4OzI7MjQyOzE5MTs4OG0bWzQ4OzI7MjQxOzE4Mzs5N23iloAbWzM4OzI7MjI3
94+
OzE3Nzs4MG0bWzQ5beKWmRtbMzltICAgICAgICAgICAgICAgICAgG1szODsyOzIzNzsyNDg7MjUw
95+
beKWgBtbMzg7MjsyMTc7MjI5OzIzNG3ilpwbWzM4OzI7MjAwOzIxMjsyMTdtG1s0ODsyOzE5Mjsy
96+
MDM7MjA4beKWhBtbMzg7MjsxOTA7MjAyOzIwNm0bWzQ4OzI7MjAwOzIxMjsyMTdt4paAG1szODsy
97+
OzIwMTsyMTM7MjE3bRtbNDg7MjsxODk7MjAwOzIwNW3ilp8bWzM5bRtbNDltICAgIBtbMzg7Mjsy
98+
Mzc7MjUxOzI1NW0bWzQ4OzI7MjAzOzIxNTsyMjBt4paAG1szOW0bWzQ5bSAgIBtbMzg7MjsyMjc7
99+
MjQxOzI0N23ilp0bWzM4OzI7MjI0OzIzNjsyMzlt4pacG1szODsyOzIxNzsyMzA7MjMzbeKWmRtb
100+
Mzg7MjsyNDM7MjU1OzI1NW3iloQbWzM4OzI7MjEwOzIyMzsyMjht4pafG1szODsyOzIzMjsyNDA7
101+
MjQzbeKWgBtbMzg7MjsyMTM7MjI2OzIzMW3ilpAbWzM4OzI7MjIxOzIzNDsyMzdt4paMG1szOW0g
102+
IBtbMzg7MjsyMzY7MjUwOzI1NW3iloAbWzM4OzI7MTkxOzIwMjsyMDdtG1s0ODsyOzIyNjsyNDA7
103+
MjQ1beKWnhtbMzg7MjsyNDM7MjU1OzI1NW0bWzQ5beKWhBtbMzg7MjsyMzg7MjUwOzI1M23iloQb
104+
WzM4OzI7MjIwOzIzMzsyMzht4pabG1szODsyOzIzOTsyNTM7MjU1beKWmBtbMzltICAbWzM4OzI7
105+
MjMzOzI0NzsyNTJt4paAG1szODsyOzIyNTsyMzg7MjQzbRtbNDg7MjsxODU7MTk2OzIwMG3ilpob
106+
WzM4OzI7MjMzOzI0NzsyNTFtG1s0OW3iloQbWzM4OzI7MTkxOzE5OTsyMDJt4paWG1szOW0gG1sz
107+
ODsyOzIxMjsyMjU7MjMwbeKWnxtbMzg7MjsyMTM7MjI2OzIzMG3ilpsbWzM5bSAgIBtbMzg7Mjsy
108+
MTc7MjMwOzIzNW3iloAbWzM4OzI7MjEzOzIyNjsyMzBt4paZG1szOW0gICAgICAgIAogICAgICAg
109+
IBtbMzg7MjsyNDQ7MTc5OzExNW3ilp0bWzM4OzI7MjM2OzE3MjsxMDZtG1s0ODsyOzIxOTsxNTg7
110+
MTA2beKWnBtbMzg7MjsyNDA7MTc0Ozk4bRtbNDg7MjsyNDU7MTgzOzg4beKWmRtbMzg7MjsyNDE7
111+
MTczOzgybRtbNDg7MjsyNTE7MTkwOzgwbeKWhBtbMzg7MjsyNDY7MTgwOzY4bRtbNDg7MjsyMzM7
112+
MTc3OzU4beKWhBtbMzg7MjsyMzY7MTgyOzQ4bRtbNDg7MjsyNDg7MTg2OzYwbeKWgBtbMzg7Mjsy
113+
NDA7MTg4OzQ3bRtbNDg7MjsyNTE7MTk1OzYybeKWgBtbMzg7MjsyNDM7MTkyOzU1bRtbNDg7Mjsy
114+
NTI7MjAxOzcxbeKWgBtbMzg7MjsyNDM7MTkzOzY3bRtbNDg7MjsyNTM7MjA1OzgzbeKWgBtbMzg7
115+
MjsyNDI7MTkzOzc2bRtbNDg7MjsyNTE7MjA1OzkwbeKWgBtbMzg7MjsyNTU7MjM5OzExMG0bWzQ5
116+
beKWlhtbMzltICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
117+
ICAgICAgICAgICAgIAogICAgICAgICAgG1szODsyOzIxNzsxNTM7OTNt4paAG1szODsyOzI1NTsx
118+
ODE7OTRt4paAG1szODsyOzI1NTsxOTA7ODZt4paAG1szODsyOzI1NTsxOTk7ODZt4paAG1szODsy
119+
OzI1NTsyMTA7OTNt4paAG1szODsyOzI1NTsyMjE7MTAzbeKWgBtbMzg7MjsyNTU7MjI3OzExMm3i
120+
loAbWzM4OzI7MjU1OzIyOTsxMTZt4paAG1szODsyOzIzNDsxOTk7MTA2beKWmBtbMzltICAgICAg
121+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
122+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
123+
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
124+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAobWzM5OzQ5bRso
125+
QhtbbRtdMTA0Bw==
126+
`

0 commit comments

Comments
 (0)