]> Frank Brehm's Git Trees - config/dev-mail-fbrehm/etc.git/commitdiff
Initial commit
authorroot <root@dev-mail-fbrehm.pixelpark.com>
Mon, 13 Jan 2025 12:20:57 +0000 (13:20 +0100)
committerroot <root@dev-mail-fbrehm.pixelpark.com>
Mon, 13 Jan 2025 12:20:57 +0000 (13:20 +0100)
1527 files changed:
.etckeeper [new file with mode: 0755]
.gitignore [new file with mode: 0644]
X11/Xreset [new file with mode: 0755]
X11/Xreset.d/README [new file with mode: 0644]
X11/Xresources/x11-common [new file with mode: 0644]
X11/Xsession [new file with mode: 0755]
X11/Xsession.d/20dbus_xdg-runtime [new file with mode: 0644]
X11/Xsession.d/20x11-common_process-args [new file with mode: 0644]
X11/Xsession.d/30x11-common_xresources [new file with mode: 0644]
X11/Xsession.d/35x11-common_xhost-local [new file with mode: 0644]
X11/Xsession.d/40x11-common_xsessionrc [new file with mode: 0644]
X11/Xsession.d/50x11-common_determine-startup [new file with mode: 0644]
X11/Xsession.d/90gpg-agent [new file with mode: 0644]
X11/Xsession.d/90x11-common_ssh-agent [new file with mode: 0644]
X11/Xsession.d/99x11-common_start [new file with mode: 0644]
X11/Xsession.options [new file with mode: 0644]
X11/rgb.txt [new file with mode: 0644]
adduser.conf [new file with mode: 0644]
aliases [new file with mode: 0644]
aliases.db [new file with mode: 0644]
alternatives/README [new file with mode: 0644]
alternatives/arptables [new symlink]
alternatives/arptables-restore [new symlink]
alternatives/arptables-save [new symlink]
alternatives/awk [new symlink]
alternatives/awk.1.gz [new symlink]
alternatives/builtins.7.gz [new symlink]
alternatives/de.multi [new symlink]
alternatives/de_AT.multi [new symlink]
alternatives/de_CH.multi [new symlink]
alternatives/de_DE.multi [new symlink]
alternatives/dotlock [new symlink]
alternatives/dotlock.1.gz [new symlink]
alternatives/ebtables [new symlink]
alternatives/ebtables-restore [new symlink]
alternatives/ebtables-save [new symlink]
alternatives/editor [new symlink]
alternatives/editor.1.gz [new symlink]
alternatives/editor.da.1.gz [new symlink]
alternatives/editor.de.1.gz [new symlink]
alternatives/editor.fr.1.gz [new symlink]
alternatives/editor.it.1.gz [new symlink]
alternatives/editor.ja.1.gz [new symlink]
alternatives/editor.pl.1.gz [new symlink]
alternatives/editor.ru.1.gz [new symlink]
alternatives/editor.tr.1.gz [new symlink]
alternatives/ex [new symlink]
alternatives/ex.1.gz [new symlink]
alternatives/ex.da.1.gz [new symlink]
alternatives/ex.de.1.gz [new symlink]
alternatives/ex.fr.1.gz [new symlink]
alternatives/ex.it.1.gz [new symlink]
alternatives/ex.ja.1.gz [new symlink]
alternatives/ex.pl.1.gz [new symlink]
alternatives/ex.ru.1.gz [new symlink]
alternatives/ex.tr.1.gz [new symlink]
alternatives/figlet [new symlink]
alternatives/figlet.6.gz [new symlink]
alternatives/frm [new symlink]
alternatives/frm.1.gz [new symlink]
alternatives/from [new symlink]
alternatives/from.1.gz [new symlink]
alternatives/ip6tables [new symlink]
alternatives/ip6tables-restore [new symlink]
alternatives/ip6tables-save [new symlink]
alternatives/iptables [new symlink]
alternatives/iptables-restore [new symlink]
alternatives/iptables-save [new symlink]
alternatives/lft [new symlink]
alternatives/lft.1.gz [new symlink]
alternatives/locate [new symlink]
alternatives/locate.1.gz [new symlink]
alternatives/lzcat [new symlink]
alternatives/lzcat.1.gz [new symlink]
alternatives/lzcmp [new symlink]
alternatives/lzcmp.1.gz [new symlink]
alternatives/lzdiff [new symlink]
alternatives/lzdiff.1.gz [new symlink]
alternatives/lzegrep [new symlink]
alternatives/lzegrep.1.gz [new symlink]
alternatives/lzfgrep [new symlink]
alternatives/lzfgrep.1.gz [new symlink]
alternatives/lzgrep [new symlink]
alternatives/lzgrep.1.gz [new symlink]
alternatives/lzless [new symlink]
alternatives/lzless.1.gz [new symlink]
alternatives/lzma [new symlink]
alternatives/lzma.1.gz [new symlink]
alternatives/lzmore [new symlink]
alternatives/lzmore.1.gz [new symlink]
alternatives/mail [new symlink]
alternatives/mail.1.gz [new symlink]
alternatives/mailx [new symlink]
alternatives/mailx.1.gz [new symlink]
alternatives/messages [new symlink]
alternatives/messages.1.gz [new symlink]
alternatives/movemail [new symlink]
alternatives/movemail.1.gz [new symlink]
alternatives/mt [new symlink]
alternatives/mt.1.gz [new symlink]
alternatives/my.cnf [new symlink]
alternatives/nawk [new symlink]
alternatives/nawk.1.gz [new symlink]
alternatives/nc [new symlink]
alternatives/nc.1.gz [new symlink]
alternatives/netcat [new symlink]
alternatives/netcat.1.gz [new symlink]
alternatives/open [new symlink]
alternatives/open.1.gz [new symlink]
alternatives/pager [new symlink]
alternatives/pager.1.gz [new symlink]
alternatives/pico [new symlink]
alternatives/pico.1.gz [new symlink]
alternatives/pinentry [new symlink]
alternatives/pinentry.1.gz [new symlink]
alternatives/readmsg [new symlink]
alternatives/readmsg.1.gz [new symlink]
alternatives/rmt [new symlink]
alternatives/rmt.8.gz [new symlink]
alternatives/rview [new symlink]
alternatives/rvim [new symlink]
alternatives/tcptraceroute [new symlink]
alternatives/tcptraceroute.8.gz [new symlink]
alternatives/telnet [new symlink]
alternatives/telnet.1.gz [new symlink]
alternatives/traceproto [new symlink]
alternatives/traceproto.1.gz [new symlink]
alternatives/traceroute [new symlink]
alternatives/traceroute.1.gz [new symlink]
alternatives/traceroute.sbin [new symlink]
alternatives/traceroute6 [new symlink]
alternatives/traceroute6.1.gz [new symlink]
alternatives/unlzma [new symlink]
alternatives/unlzma.1.gz [new symlink]
alternatives/unrar [new symlink]
alternatives/unrar.1.gz [new symlink]
alternatives/updatedb [new symlink]
alternatives/updatedb.8.gz [new symlink]
alternatives/vi [new symlink]
alternatives/vi.1.gz [new symlink]
alternatives/vi.da.1.gz [new symlink]
alternatives/vi.de.1.gz [new symlink]
alternatives/vi.fr.1.gz [new symlink]
alternatives/vi.it.1.gz [new symlink]
alternatives/vi.ja.1.gz [new symlink]
alternatives/vi.pl.1.gz [new symlink]
alternatives/vi.ru.1.gz [new symlink]
alternatives/vi.tr.1.gz [new symlink]
alternatives/view [new symlink]
alternatives/view.1.gz [new symlink]
alternatives/view.da.1.gz [new symlink]
alternatives/view.de.1.gz [new symlink]
alternatives/view.fr.1.gz [new symlink]
alternatives/view.it.1.gz [new symlink]
alternatives/view.ja.1.gz [new symlink]
alternatives/view.pl.1.gz [new symlink]
alternatives/view.ru.1.gz [new symlink]
alternatives/view.tr.1.gz [new symlink]
alternatives/vim [new symlink]
alternatives/vimdiff [new symlink]
alternatives/which [new symlink]
alternatives/which.1.gz [new symlink]
alternatives/which.de1.gz [new symlink]
alternatives/which.es1.gz [new symlink]
alternatives/which.fr1.gz [new symlink]
alternatives/which.it1.gz [new symlink]
alternatives/which.ja1.gz [new symlink]
alternatives/which.pl1.gz [new symlink]
alternatives/which.sl1.gz [new symlink]
analog.cfg [new file with mode: 0644]
apache2/apache2.conf [new file with mode: 0644]
apache2/conf-available/apache2-doc.conf [new file with mode: 0644]
apache2/conf-available/charset.conf [new file with mode: 0644]
apache2/conf-available/javascript-common.conf [new file with mode: 0644]
apache2/conf-available/localized-error-pages.conf [new file with mode: 0644]
apache2/conf-available/other-vhosts-access-log.conf [new file with mode: 0644]
apache2/conf-available/security.conf [new file with mode: 0644]
apache2/conf-available/serve-cgi-bin.conf [new file with mode: 0644]
apache2/conf-enabled/charset.conf [new symlink]
apache2/conf-enabled/javascript-common.conf [new symlink]
apache2/conf-enabled/localized-error-pages.conf [new symlink]
apache2/conf-enabled/other-vhosts-access-log.conf [new symlink]
apache2/conf-enabled/security.conf [new symlink]
apache2/conf-enabled/serve-cgi-bin.conf [new symlink]
apache2/envvars [new file with mode: 0644]
apache2/magic [new file with mode: 0644]
apache2/mods-available/access_compat.load [new file with mode: 0644]
apache2/mods-available/actions.conf [new file with mode: 0644]
apache2/mods-available/actions.load [new file with mode: 0644]
apache2/mods-available/alias.conf [new file with mode: 0644]
apache2/mods-available/alias.load [new file with mode: 0644]
apache2/mods-available/allowmethods.load [new file with mode: 0644]
apache2/mods-available/asis.load [new file with mode: 0644]
apache2/mods-available/auth_basic.load [new file with mode: 0644]
apache2/mods-available/auth_digest.load [new file with mode: 0644]
apache2/mods-available/auth_form.load [new file with mode: 0644]
apache2/mods-available/authn_anon.load [new file with mode: 0644]
apache2/mods-available/authn_core.load [new file with mode: 0644]
apache2/mods-available/authn_dbd.load [new file with mode: 0644]
apache2/mods-available/authn_dbm.load [new file with mode: 0644]
apache2/mods-available/authn_file.load [new file with mode: 0644]
apache2/mods-available/authn_socache.load [new file with mode: 0644]
apache2/mods-available/authnz_fcgi.load [new file with mode: 0644]
apache2/mods-available/authnz_ldap.load [new file with mode: 0644]
apache2/mods-available/authz_core.load [new file with mode: 0644]
apache2/mods-available/authz_dbd.load [new file with mode: 0644]
apache2/mods-available/authz_dbm.load [new file with mode: 0644]
apache2/mods-available/authz_groupfile.load [new file with mode: 0644]
apache2/mods-available/authz_host.load [new file with mode: 0644]
apache2/mods-available/authz_owner.load [new file with mode: 0644]
apache2/mods-available/authz_user.load [new file with mode: 0644]
apache2/mods-available/autoindex.conf [new file with mode: 0644]
apache2/mods-available/autoindex.load [new file with mode: 0644]
apache2/mods-available/brotli.load [new file with mode: 0644]
apache2/mods-available/buffer.load [new file with mode: 0644]
apache2/mods-available/cache.load [new file with mode: 0644]
apache2/mods-available/cache_disk.conf [new file with mode: 0644]
apache2/mods-available/cache_disk.load [new file with mode: 0644]
apache2/mods-available/cache_socache.load [new file with mode: 0644]
apache2/mods-available/cern_meta.load [new file with mode: 0644]
apache2/mods-available/cgi.load [new file with mode: 0644]
apache2/mods-available/cgid.conf [new file with mode: 0644]
apache2/mods-available/cgid.load [new file with mode: 0644]
apache2/mods-available/charset_lite.load [new file with mode: 0644]
apache2/mods-available/data.load [new file with mode: 0644]
apache2/mods-available/dav.load [new file with mode: 0644]
apache2/mods-available/dav_fs.conf [new file with mode: 0644]
apache2/mods-available/dav_fs.load [new file with mode: 0644]
apache2/mods-available/dav_lock.load [new file with mode: 0644]
apache2/mods-available/dbd.load [new file with mode: 0644]
apache2/mods-available/deflate.conf [new file with mode: 0644]
apache2/mods-available/deflate.load [new file with mode: 0644]
apache2/mods-available/dialup.load [new file with mode: 0644]
apache2/mods-available/dir.conf [new file with mode: 0644]
apache2/mods-available/dir.load [new file with mode: 0644]
apache2/mods-available/dump_io.load [new file with mode: 0644]
apache2/mods-available/echo.load [new file with mode: 0644]
apache2/mods-available/env.load [new file with mode: 0644]
apache2/mods-available/expires.load [new file with mode: 0644]
apache2/mods-available/ext_filter.load [new file with mode: 0644]
apache2/mods-available/file_cache.load [new file with mode: 0644]
apache2/mods-available/filter.load [new file with mode: 0644]
apache2/mods-available/headers.load [new file with mode: 0644]
apache2/mods-available/heartbeat.load [new file with mode: 0644]
apache2/mods-available/heartmonitor.load [new file with mode: 0644]
apache2/mods-available/http2.conf [new file with mode: 0644]
apache2/mods-available/http2.load [new file with mode: 0644]
apache2/mods-available/ident.load [new file with mode: 0644]
apache2/mods-available/imagemap.load [new file with mode: 0644]
apache2/mods-available/include.load [new file with mode: 0644]
apache2/mods-available/info.conf [new file with mode: 0644]
apache2/mods-available/info.load [new file with mode: 0644]
apache2/mods-available/lbmethod_bybusyness.load [new file with mode: 0644]
apache2/mods-available/lbmethod_byrequests.load [new file with mode: 0644]
apache2/mods-available/lbmethod_bytraffic.load [new file with mode: 0644]
apache2/mods-available/lbmethod_heartbeat.load [new file with mode: 0644]
apache2/mods-available/ldap.conf [new file with mode: 0644]
apache2/mods-available/ldap.load [new file with mode: 0644]
apache2/mods-available/log_debug.load [new file with mode: 0644]
apache2/mods-available/log_forensic.load [new file with mode: 0644]
apache2/mods-available/lua.load [new file with mode: 0644]
apache2/mods-available/macro.load [new file with mode: 0644]
apache2/mods-available/md.load [new file with mode: 0644]
apache2/mods-available/mime.conf [new file with mode: 0644]
apache2/mods-available/mime.load [new file with mode: 0644]
apache2/mods-available/mime_magic.conf [new file with mode: 0644]
apache2/mods-available/mime_magic.load [new file with mode: 0644]
apache2/mods-available/mpm_event.conf [new file with mode: 0644]
apache2/mods-available/mpm_event.load [new file with mode: 0644]
apache2/mods-available/mpm_prefork.conf [new file with mode: 0644]
apache2/mods-available/mpm_prefork.load [new file with mode: 0644]
apache2/mods-available/mpm_worker.conf [new file with mode: 0644]
apache2/mods-available/mpm_worker.load [new file with mode: 0644]
apache2/mods-available/negotiation.conf [new file with mode: 0644]
apache2/mods-available/negotiation.load [new file with mode: 0644]
apache2/mods-available/proxy.conf [new file with mode: 0644]
apache2/mods-available/proxy.load [new file with mode: 0644]
apache2/mods-available/proxy_ajp.load [new file with mode: 0644]
apache2/mods-available/proxy_balancer.conf [new file with mode: 0644]
apache2/mods-available/proxy_balancer.load [new file with mode: 0644]
apache2/mods-available/proxy_connect.load [new file with mode: 0644]
apache2/mods-available/proxy_express.load [new file with mode: 0644]
apache2/mods-available/proxy_fcgi.load [new file with mode: 0644]
apache2/mods-available/proxy_fdpass.load [new file with mode: 0644]
apache2/mods-available/proxy_ftp.conf [new file with mode: 0644]
apache2/mods-available/proxy_ftp.load [new file with mode: 0644]
apache2/mods-available/proxy_hcheck.load [new file with mode: 0644]
apache2/mods-available/proxy_html.conf [new file with mode: 0644]
apache2/mods-available/proxy_html.load [new file with mode: 0644]
apache2/mods-available/proxy_http.load [new file with mode: 0644]
apache2/mods-available/proxy_http2.load [new file with mode: 0644]
apache2/mods-available/proxy_scgi.load [new file with mode: 0644]
apache2/mods-available/proxy_uwsgi.load [new file with mode: 0644]
apache2/mods-available/proxy_wstunnel.load [new file with mode: 0644]
apache2/mods-available/ratelimit.load [new file with mode: 0644]
apache2/mods-available/reflector.load [new file with mode: 0644]
apache2/mods-available/remoteip.load [new file with mode: 0644]
apache2/mods-available/reqtimeout.conf [new file with mode: 0644]
apache2/mods-available/reqtimeout.load [new file with mode: 0644]
apache2/mods-available/request.load [new file with mode: 0644]
apache2/mods-available/rewrite.load [new file with mode: 0644]
apache2/mods-available/sed.load [new file with mode: 0644]
apache2/mods-available/session.load [new file with mode: 0644]
apache2/mods-available/session_cookie.load [new file with mode: 0644]
apache2/mods-available/session_crypto.load [new file with mode: 0644]
apache2/mods-available/session_dbd.load [new file with mode: 0644]
apache2/mods-available/setenvif.conf [new file with mode: 0644]
apache2/mods-available/setenvif.load [new file with mode: 0644]
apache2/mods-available/slotmem_plain.load [new file with mode: 0644]
apache2/mods-available/slotmem_shm.load [new file with mode: 0644]
apache2/mods-available/socache_dbm.load [new file with mode: 0644]
apache2/mods-available/socache_memcache.load [new file with mode: 0644]
apache2/mods-available/socache_redis.load [new file with mode: 0644]
apache2/mods-available/socache_shmcb.load [new file with mode: 0644]
apache2/mods-available/speling.load [new file with mode: 0644]
apache2/mods-available/ssl.conf [new file with mode: 0644]
apache2/mods-available/ssl.load [new file with mode: 0644]
apache2/mods-available/status.conf [new file with mode: 0644]
apache2/mods-available/status.load [new file with mode: 0644]
apache2/mods-available/substitute.load [new file with mode: 0644]
apache2/mods-available/suexec.load [new file with mode: 0644]
apache2/mods-available/unique_id.load [new file with mode: 0644]
apache2/mods-available/userdir.conf [new file with mode: 0644]
apache2/mods-available/userdir.load [new file with mode: 0644]
apache2/mods-available/usertrack.load [new file with mode: 0644]
apache2/mods-available/vhost_alias.load [new file with mode: 0644]
apache2/mods-available/xml2enc.load [new file with mode: 0644]
apache2/mods-enabled/access_compat.load [new symlink]
apache2/mods-enabled/alias.conf [new symlink]
apache2/mods-enabled/alias.load [new symlink]
apache2/mods-enabled/auth_basic.load [new symlink]
apache2/mods-enabled/authn_core.load [new symlink]
apache2/mods-enabled/authn_file.load [new symlink]
apache2/mods-enabled/authz_core.load [new symlink]
apache2/mods-enabled/authz_host.load [new symlink]
apache2/mods-enabled/authz_user.load [new symlink]
apache2/mods-enabled/autoindex.conf [new symlink]
apache2/mods-enabled/autoindex.load [new symlink]
apache2/mods-enabled/deflate.conf [new symlink]
apache2/mods-enabled/deflate.load [new symlink]
apache2/mods-enabled/dir.conf [new symlink]
apache2/mods-enabled/dir.load [new symlink]
apache2/mods-enabled/env.load [new symlink]
apache2/mods-enabled/filter.load [new symlink]
apache2/mods-enabled/mime.conf [new symlink]
apache2/mods-enabled/mime.load [new symlink]
apache2/mods-enabled/mpm_event.conf [new symlink]
apache2/mods-enabled/mpm_event.load [new symlink]
apache2/mods-enabled/negotiation.conf [new symlink]
apache2/mods-enabled/negotiation.load [new symlink]
apache2/mods-enabled/reqtimeout.conf [new symlink]
apache2/mods-enabled/reqtimeout.load [new symlink]
apache2/mods-enabled/setenvif.conf [new symlink]
apache2/mods-enabled/setenvif.load [new symlink]
apache2/mods-enabled/status.conf [new symlink]
apache2/mods-enabled/status.load [new symlink]
apache2/ports.conf [new file with mode: 0644]
apache2/sites-available/000-default.conf [new file with mode: 0644]
apache2/sites-available/default-ssl.conf [new file with mode: 0644]
apache2/sites-enabled/000-default.conf [new symlink]
apparmor.d/abi/3.0 [new file with mode: 0644]
apparmor.d/abi/kernel-5.4-outoftree-network [new file with mode: 0644]
apparmor.d/abi/kernel-5.4-vanilla [new file with mode: 0644]
apparmor.d/abstractions/X [new file with mode: 0644]
apparmor.d/abstractions/apache2-common [new file with mode: 0644]
apparmor.d/abstractions/apparmor_api/change_profile [new file with mode: 0644]
apparmor.d/abstractions/apparmor_api/examine [new file with mode: 0644]
apparmor.d/abstractions/apparmor_api/find_mountpoint [new file with mode: 0644]
apparmor.d/abstractions/apparmor_api/introspect [new file with mode: 0644]
apparmor.d/abstractions/apparmor_api/is_enabled [new file with mode: 0644]
apparmor.d/abstractions/aspell [new file with mode: 0644]
apparmor.d/abstractions/audio [new file with mode: 0644]
apparmor.d/abstractions/authentication [new file with mode: 0644]
apparmor.d/abstractions/base [new file with mode: 0644]
apparmor.d/abstractions/bash [new file with mode: 0644]
apparmor.d/abstractions/consoles [new file with mode: 0644]
apparmor.d/abstractions/crypto [new file with mode: 0644]
apparmor.d/abstractions/cups-client [new file with mode: 0644]
apparmor.d/abstractions/dbus [new file with mode: 0644]
apparmor.d/abstractions/dbus-accessibility [new file with mode: 0644]
apparmor.d/abstractions/dbus-accessibility-strict [new file with mode: 0644]
apparmor.d/abstractions/dbus-network-manager-strict [new file with mode: 0644]
apparmor.d/abstractions/dbus-session [new file with mode: 0644]
apparmor.d/abstractions/dbus-session-strict [new file with mode: 0644]
apparmor.d/abstractions/dbus-strict [new file with mode: 0644]
apparmor.d/abstractions/dconf [new file with mode: 0644]
apparmor.d/abstractions/dovecot-common [new file with mode: 0644]
apparmor.d/abstractions/dri-common [new file with mode: 0644]
apparmor.d/abstractions/dri-enumerate [new file with mode: 0644]
apparmor.d/abstractions/enchant [new file with mode: 0644]
apparmor.d/abstractions/exo-open [new file with mode: 0644]
apparmor.d/abstractions/fcitx [new file with mode: 0644]
apparmor.d/abstractions/fcitx-strict [new file with mode: 0644]
apparmor.d/abstractions/fonts [new file with mode: 0644]
apparmor.d/abstractions/freedesktop.org [new file with mode: 0644]
apparmor.d/abstractions/gio-open [new file with mode: 0644]
apparmor.d/abstractions/gnome [new file with mode: 0644]
apparmor.d/abstractions/gnupg [new file with mode: 0644]
apparmor.d/abstractions/gtk [new file with mode: 0644]
apparmor.d/abstractions/gvfs-open [new file with mode: 0644]
apparmor.d/abstractions/hosts_access [new file with mode: 0644]
apparmor.d/abstractions/ibus [new file with mode: 0644]
apparmor.d/abstractions/kde [new file with mode: 0644]
apparmor.d/abstractions/kde-globals-write [new file with mode: 0644]
apparmor.d/abstractions/kde-icon-cache-write [new file with mode: 0644]
apparmor.d/abstractions/kde-language-write [new file with mode: 0644]
apparmor.d/abstractions/kde-open5 [new file with mode: 0644]
apparmor.d/abstractions/kerberosclient [new file with mode: 0644]
apparmor.d/abstractions/ldapclient [new file with mode: 0644]
apparmor.d/abstractions/libpam-systemd [new file with mode: 0644]
apparmor.d/abstractions/likewise [new file with mode: 0644]
apparmor.d/abstractions/mdns [new file with mode: 0644]
apparmor.d/abstractions/mesa [new file with mode: 0644]
apparmor.d/abstractions/mir [new file with mode: 0644]
apparmor.d/abstractions/mozc [new file with mode: 0644]
apparmor.d/abstractions/mysql [new file with mode: 0644]
apparmor.d/abstractions/nameservice [new file with mode: 0644]
apparmor.d/abstractions/nis [new file with mode: 0644]
apparmor.d/abstractions/nss-systemd [new file with mode: 0644]
apparmor.d/abstractions/nvidia [new file with mode: 0644]
apparmor.d/abstractions/opencl [new file with mode: 0644]
apparmor.d/abstractions/opencl-common [new file with mode: 0644]
apparmor.d/abstractions/opencl-intel [new file with mode: 0644]
apparmor.d/abstractions/opencl-mesa [new file with mode: 0644]
apparmor.d/abstractions/opencl-nvidia [new file with mode: 0644]
apparmor.d/abstractions/opencl-pocl [new file with mode: 0644]
apparmor.d/abstractions/openssl [new file with mode: 0644]
apparmor.d/abstractions/orbit2 [new file with mode: 0644]
apparmor.d/abstractions/p11-kit [new file with mode: 0644]
apparmor.d/abstractions/perl [new file with mode: 0644]
apparmor.d/abstractions/php [new file with mode: 0644]
apparmor.d/abstractions/php-worker [new file with mode: 0644]
apparmor.d/abstractions/php5 [new file with mode: 0644]
apparmor.d/abstractions/postfix-common [new file with mode: 0644]
apparmor.d/abstractions/private-files [new file with mode: 0644]
apparmor.d/abstractions/private-files-strict [new file with mode: 0644]
apparmor.d/abstractions/python [new file with mode: 0644]
apparmor.d/abstractions/qt5 [new file with mode: 0644]
apparmor.d/abstractions/qt5-compose-cache-write [new file with mode: 0644]
apparmor.d/abstractions/qt5-settings-write [new file with mode: 0644]
apparmor.d/abstractions/recent-documents-write [new file with mode: 0644]
apparmor.d/abstractions/ruby [new file with mode: 0644]
apparmor.d/abstractions/samba [new file with mode: 0644]
apparmor.d/abstractions/samba-rpcd [new file with mode: 0644]
apparmor.d/abstractions/smbpass [new file with mode: 0644]
apparmor.d/abstractions/snap_browsers [new file with mode: 0644]
apparmor.d/abstractions/ssl_certs [new file with mode: 0644]
apparmor.d/abstractions/ssl_keys [new file with mode: 0644]
apparmor.d/abstractions/svn-repositories [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-bittorrent-clients [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/chromium-browser [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/java [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/kde [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/mailto [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/multimedia [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/plugins-common [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/productivity [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/text-editors [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-browsers.d/user-files [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-console-browsers [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-console-email [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-email [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-feed-readers [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-gnome-terminal [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-helpers [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-konsole [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-media-players [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-unity7-base [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-unity7-launcher [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-unity7-messaging [new file with mode: 0644]
apparmor.d/abstractions/ubuntu-xterm [new file with mode: 0644]
apparmor.d/abstractions/user-download [new file with mode: 0644]
apparmor.d/abstractions/user-mail [new file with mode: 0644]
apparmor.d/abstractions/user-manpages [new file with mode: 0644]
apparmor.d/abstractions/user-tmp [new file with mode: 0644]
apparmor.d/abstractions/user-write [new file with mode: 0644]
apparmor.d/abstractions/video [new file with mode: 0644]
apparmor.d/abstractions/vulkan [new file with mode: 0644]
apparmor.d/abstractions/wayland [new file with mode: 0644]
apparmor.d/abstractions/web-data [new file with mode: 0644]
apparmor.d/abstractions/winbind [new file with mode: 0644]
apparmor.d/abstractions/wutmp [new file with mode: 0644]
apparmor.d/abstractions/xad [new file with mode: 0644]
apparmor.d/abstractions/xdg-desktop [new file with mode: 0644]
apparmor.d/abstractions/xdg-open [new file with mode: 0644]
apparmor.d/local/README [new file with mode: 0644]
apparmor.d/local/lsb_release [new file with mode: 0644]
apparmor.d/local/nvidia_modprobe [new file with mode: 0644]
apparmor.d/local/sbin.dhclient [new file with mode: 0644]
apparmor.d/local/usr.bin.man [new file with mode: 0644]
apparmor.d/local/usr.bin.tcpdump [new file with mode: 0644]
apparmor.d/local/usr.sbin.chronyd [new file with mode: 0644]
apparmor.d/local/usr.sbin.haveged [new file with mode: 0644]
apparmor.d/local/usr.sbin.named [new file with mode: 0644]
apparmor.d/lsb_release [new file with mode: 0644]
apparmor.d/nvidia_modprobe [new file with mode: 0644]
apparmor.d/sbin.dhclient [new file with mode: 0644]
apparmor.d/tunables/alias [new file with mode: 0644]
apparmor.d/tunables/apparmorfs [new file with mode: 0644]
apparmor.d/tunables/dovecot [new file with mode: 0644]
apparmor.d/tunables/etc [new file with mode: 0644]
apparmor.d/tunables/global [new file with mode: 0644]
apparmor.d/tunables/home [new file with mode: 0644]
apparmor.d/tunables/home.d/site.local [new file with mode: 0644]
apparmor.d/tunables/home.d/ubuntu [new file with mode: 0644]
apparmor.d/tunables/kernelvars [new file with mode: 0644]
apparmor.d/tunables/multiarch [new file with mode: 0644]
apparmor.d/tunables/multiarch.d/site.local [new file with mode: 0644]
apparmor.d/tunables/proc [new file with mode: 0644]
apparmor.d/tunables/run [new file with mode: 0644]
apparmor.d/tunables/securityfs [new file with mode: 0644]
apparmor.d/tunables/share [new file with mode: 0644]
apparmor.d/tunables/sys [new file with mode: 0644]
apparmor.d/tunables/xdg-user-dirs [new file with mode: 0644]
apparmor.d/tunables/xdg-user-dirs.d/site.local [new file with mode: 0644]
apparmor.d/usr.bin.man [new file with mode: 0644]
apparmor.d/usr.bin.tcpdump [new file with mode: 0644]
apparmor.d/usr.sbin.chronyd [new file with mode: 0644]
apparmor.d/usr.sbin.haveged [new file with mode: 0644]
apparmor.d/usr.sbin.mariadbd [new file with mode: 0644]
apparmor.d/usr.sbin.named [new file with mode: 0644]
apparmor/parser.conf [new file with mode: 0644]
apt/apt.conf.d/00CDMountPoint [new file with mode: 0644]
apt/apt.conf.d/00trustcdrom [new file with mode: 0644]
apt/apt.conf.d/01autoremove [new file with mode: 0644]
apt/apt.conf.d/05etckeeper [new file with mode: 0644]
apt/apt.conf.d/20listchanges [new file with mode: 0644]
apt/apt.conf.d/70debconf [new file with mode: 0644]
apt/listchanges.conf [new file with mode: 0644]
apt/sources.list [new file with mode: 0644]
apt/sources.list.d/fbrehm.list [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-bookworm-automatic.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-bookworm-security-automatic.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-bookworm-stable.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-bullseye-automatic.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-bullseye-security-automatic.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-bullseye-stable.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-buster-automatic.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-buster-security-automatic.asc [new file with mode: 0644]
apt/trusted.gpg.d/debian-archive-buster-stable.asc [new file with mode: 0644]
apt/trusted.gpg.d/frank.brehm.asc [new file with mode: 0644]
apt/trusted.gpg.d/frank.brehm.gpg [new file with mode: 0644]
at.deny [new file with mode: 0644]
bash.bashrc [new file with mode: 0644]
bash_completion [new file with mode: 0644]
bash_completion.d/git-prompt [new file with mode: 0644]
bind/bind.keys [new file with mode: 0644]
bind/db.0 [new file with mode: 0644]
bind/db.127 [new file with mode: 0644]
bind/db.255 [new file with mode: 0644]
bind/db.empty [new file with mode: 0644]
bind/db.local [new file with mode: 0644]
bind/named.conf [new file with mode: 0644]
bind/named.conf.default-zones [new file with mode: 0644]
bind/named.conf.local [new file with mode: 0644]
bind/named.conf.options [new file with mode: 0644]
bind/rndc.key [new file with mode: 0644]
bind/zones.rfc1918 [new file with mode: 0644]
bindresvport.blacklist [new file with mode: 0644]
byobu/backend [new file with mode: 0644]
byobu/socketdir [new file with mode: 0644]
ca-certificates.conf [new file with mode: 0644]
chrony/chrony.conf [new file with mode: 0644]
chrony/chrony.keys [new file with mode: 0644]
chrony/conf.d/README [new file with mode: 0644]
chrony/sources.d/README [new file with mode: 0644]
colordiffrc [new file with mode: 0644]
console-setup/cached_Lat15-Fixed16.psf.gz [new file with mode: 0644]
console-setup/cached_UTF-8_del.kmap.gz [new file with mode: 0644]
console-setup/cached_setup_font.sh [new file with mode: 0755]
console-setup/cached_setup_keyboard.sh [new file with mode: 0755]
console-setup/cached_setup_terminal.sh [new file with mode: 0755]
console-setup/compose.ARMSCII-8.inc [new file with mode: 0644]
console-setup/compose.CP1251.inc [new file with mode: 0644]
console-setup/compose.CP1255.inc [new file with mode: 0644]
console-setup/compose.CP1256.inc [new file with mode: 0644]
console-setup/compose.GEORGIAN-ACADEMY.inc [new file with mode: 0644]
console-setup/compose.GEORGIAN-PS.inc [new file with mode: 0644]
console-setup/compose.IBM1133.inc [new file with mode: 0644]
console-setup/compose.ISIRI-3342.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-1.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-10.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-11.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-13.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-14.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-15.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-16.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-2.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-3.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-4.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-5.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-6.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-7.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-8.inc [new file with mode: 0644]
console-setup/compose.ISO-8859-9.inc [new file with mode: 0644]
console-setup/compose.KOI8-R.inc [new file with mode: 0644]
console-setup/compose.KOI8-U.inc [new file with mode: 0644]
console-setup/compose.TIS-620.inc [new file with mode: 0644]
console-setup/compose.VISCII.inc [new file with mode: 0644]
console-setup/remap.inc [new file with mode: 0644]
cron.d/.placeholder [new file with mode: 0644]
cron.d/backup [new file with mode: 0644]
cron.d/e2scrub_all [new file with mode: 0644]
cron.daily/.placeholder [new file with mode: 0644]
cron.daily/apache2 [new file with mode: 0755]
cron.daily/apt-compat [new file with mode: 0755]
cron.daily/dpkg [new file with mode: 0755]
cron.daily/etckeeper [new file with mode: 0755]
cron.daily/logrotate [new file with mode: 0755]
cron.daily/man-db [new file with mode: 0755]
cron.daily/plocate [new file with mode: 0755]
cron.hourly/.placeholder [new file with mode: 0644]
cron.monthly/.placeholder [new file with mode: 0644]
cron.weekly/.placeholder [new file with mode: 0644]
cron.weekly/man-db [new file with mode: 0755]
cron.yearly/.placeholder [new file with mode: 0644]
crontab [new file with mode: 0644]
cruft/filters-unex/etckeeper [new file with mode: 0644]
debconf.conf [new file with mode: 0644]
debian_version [new file with mode: 0644]
default/apache-htcacheclean [new file with mode: 0644]
default/chrony [new file with mode: 0644]
default/console-setup [new file with mode: 0644]
default/cron [new file with mode: 0644]
default/dbus [new file with mode: 0644]
default/grub [new file with mode: 0644]
default/grub.d/init-select.cfg [new file with mode: 0644]
default/haveged [new file with mode: 0644]
default/hwclock [new file with mode: 0644]
default/intel-microcode [new file with mode: 0644]
default/keyboard [new file with mode: 0644]
default/locale [new file with mode: 0644]
default/named [new file with mode: 0644]
default/networking [new file with mode: 0644]
default/nss [new file with mode: 0644]
default/rsync [new file with mode: 0644]
default/ssh [new file with mode: 0644]
default/useradd [new file with mode: 0644]
default/valkey-server [new file with mode: 0644]
deluser.conf [new file with mode: 0644]
dhcp/debug [new file with mode: 0644]
dhcp/dhclient-enter-hooks.d/debug [new symlink]
dhcp/dhclient-exit-hooks.d/chrony [new file with mode: 0644]
dhcp/dhclient-exit-hooks.d/debug [new symlink]
dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes [new file with mode: 0644]
dhcp/dhclient-exit-hooks.d/timesyncd [new file with mode: 0644]
dhcp/dhclient.conf [new file with mode: 0644]
dictionaries-common/default.aff [new symlink]
dictionaries-common/default.hash [new symlink]
dictionaries-common/ispell-default [new symlink]
dictionaries-common/words [new symlink]
discover-modprobe.conf [new file with mode: 0644]
discover.conf.d/00discover [new file with mode: 0644]
dpkg/dpkg.cfg [new file with mode: 0644]
dpkg/origins/debian [new file with mode: 0644]
dpkg/origins/default [new symlink]
e2scrub.conf [new file with mode: 0644]
emacs/site-start.d/50dictionaries-common.el [new file with mode: 0644]
emacs/site-start.d/50figlet.el [new file with mode: 0644]
environment [new file with mode: 0644]
etckeeper/commit.d/10vcs-test [new file with mode: 0755]
etckeeper/commit.d/20store-metadata [new symlink]
etckeeper/commit.d/30bzr-add [new file with mode: 0755]
etckeeper/commit.d/30darcs-add [new file with mode: 0755]
etckeeper/commit.d/30git-add [new file with mode: 0755]
etckeeper/commit.d/30hg-addremove [new file with mode: 0755]
etckeeper/commit.d/50vcs-commit [new file with mode: 0755]
etckeeper/commit.d/99push [new file with mode: 0755]
etckeeper/commit.d/README [new file with mode: 0644]
etckeeper/daily [new file with mode: 0755]
etckeeper/etckeeper.conf [new file with mode: 0644]
etckeeper/init.d/10restore-metadata [new file with mode: 0755]
etckeeper/init.d/20restore-etckeeper [new file with mode: 0755]
etckeeper/init.d/40vcs-init [new file with mode: 0755]
etckeeper/init.d/50vcs-ignore [new file with mode: 0755]
etckeeper/init.d/50vcs-perm [new file with mode: 0755]
etckeeper/init.d/50vcs-pre-commit-hook [new file with mode: 0755]
etckeeper/init.d/60darcs-deleted-symlinks [new file with mode: 0755]
etckeeper/init.d/70vcs-add [new file with mode: 0755]
etckeeper/init.d/README [new file with mode: 0644]
etckeeper/list-installed.d/50list-installed [new file with mode: 0755]
etckeeper/post-install.d/50vcs-commit [new file with mode: 0755]
etckeeper/post-install.d/README [new file with mode: 0644]
etckeeper/pre-commit.d/20warn-problem-files [new file with mode: 0755]
etckeeper/pre-commit.d/30store-metadata [new file with mode: 0755]
etckeeper/pre-commit.d/README [new file with mode: 0644]
etckeeper/pre-install.d/10packagelist [new file with mode: 0755]
etckeeper/pre-install.d/50uncommitted-changes [new file with mode: 0755]
etckeeper/pre-install.d/README [new file with mode: 0644]
etckeeper/unclean.d/50test [new file with mode: 0755]
etckeeper/unclean.d/README [new file with mode: 0644]
etckeeper/uninit.d/01prompt [new file with mode: 0755]
etckeeper/uninit.d/50remove-metadata [new file with mode: 0755]
etckeeper/uninit.d/50vcs-uninit [new file with mode: 0755]
etckeeper/uninit.d/README [new file with mode: 0644]
etckeeper/update-ignore.d/01update-ignore [new file with mode: 0755]
etckeeper/update-ignore.d/README [new file with mode: 0644]
etckeeper/vcs.d/50vcs-cmd [new file with mode: 0755]
ethertypes [new file with mode: 0644]
fonts/conf.avail/20-unhint-small-dejavu-lgc-sans-mono.conf [new file with mode: 0644]
fonts/conf.avail/20-unhint-small-dejavu-lgc-sans.conf [new file with mode: 0644]
fonts/conf.avail/20-unhint-small-dejavu-lgc-serif.conf [new file with mode: 0644]
fonts/conf.avail/20-unhint-small-dejavu-sans-mono.conf [new file with mode: 0644]
fonts/conf.avail/20-unhint-small-dejavu-sans.conf [new file with mode: 0644]
fonts/conf.avail/20-unhint-small-dejavu-serif.conf [new file with mode: 0644]
fonts/conf.avail/57-dejavu-sans-mono.conf [new file with mode: 0644]
fonts/conf.avail/57-dejavu-sans.conf [new file with mode: 0644]
fonts/conf.avail/57-dejavu-serif.conf [new file with mode: 0644]
fonts/conf.avail/58-dejavu-lgc-sans-mono.conf [new file with mode: 0644]
fonts/conf.avail/58-dejavu-lgc-sans.conf [new file with mode: 0644]
fonts/conf.avail/58-dejavu-lgc-serif.conf [new file with mode: 0644]
fonts/conf.d/10-hinting-slight.conf [new symlink]
fonts/conf.d/10-scale-bitmap-fonts.conf [new symlink]
fonts/conf.d/10-yes-antialias.conf [new symlink]
fonts/conf.d/11-lcdfilter-default.conf [new symlink]
fonts/conf.d/20-unhint-small-dejavu-lgc-sans-mono.conf [new symlink]
fonts/conf.d/20-unhint-small-dejavu-lgc-sans.conf [new symlink]
fonts/conf.d/20-unhint-small-dejavu-lgc-serif.conf [new symlink]
fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf [new symlink]
fonts/conf.d/20-unhint-small-dejavu-sans.conf [new symlink]
fonts/conf.d/20-unhint-small-dejavu-serif.conf [new symlink]
fonts/conf.d/20-unhint-small-vera.conf [new symlink]
fonts/conf.d/30-metric-aliases.conf [new symlink]
fonts/conf.d/40-nonlatin.conf [new symlink]
fonts/conf.d/45-generic.conf [new symlink]
fonts/conf.d/45-latin.conf [new symlink]
fonts/conf.d/48-spacing.conf [new symlink]
fonts/conf.d/49-sansserif.conf [new symlink]
fonts/conf.d/50-user.conf [new symlink]
fonts/conf.d/51-local.conf [new symlink]
fonts/conf.d/57-dejavu-sans-mono.conf [new symlink]
fonts/conf.d/57-dejavu-sans.conf [new symlink]
fonts/conf.d/57-dejavu-serif.conf [new symlink]
fonts/conf.d/58-dejavu-lgc-sans-mono.conf [new symlink]
fonts/conf.d/58-dejavu-lgc-sans.conf [new symlink]
fonts/conf.d/58-dejavu-lgc-serif.conf [new symlink]
fonts/conf.d/60-generic.conf [new symlink]
fonts/conf.d/60-latin.conf [new symlink]
fonts/conf.d/65-fonts-persian.conf [new symlink]
fonts/conf.d/65-nonlatin.conf [new symlink]
fonts/conf.d/69-unifont.conf [new symlink]
fonts/conf.d/70-no-bitmaps.conf [new symlink]
fonts/conf.d/80-delicious.conf [new symlink]
fonts/conf.d/90-synthetic.conf [new symlink]
fonts/conf.d/README [new file with mode: 0644]
fonts/fonts.conf [new file with mode: 0644]
fstab [new file with mode: 0644]
fuse.conf [new file with mode: 0644]
gai.conf [new file with mode: 0644]
gprofng.rc [new file with mode: 0644]
groff/man.local [new file with mode: 0644]
groff/mdoc.local [new file with mode: 0644]
group [new file with mode: 0644]
group- [new file with mode: 0644]
grub.d/00_header [new file with mode: 0755]
grub.d/05_debian_theme [new file with mode: 0755]
grub.d/10_linux [new file with mode: 0755]
grub.d/20_linux_xen [new file with mode: 0755]
grub.d/30_os-prober [new file with mode: 0755]
grub.d/30_uefi-firmware [new file with mode: 0755]
grub.d/40_custom [new file with mode: 0755]
grub.d/41_custom [new file with mode: 0755]
grub.d/README [new file with mode: 0644]
gshadow [new file with mode: 0644]
gshadow- [new file with mode: 0644]
gssapi_mech.conf [new file with mode: 0644]
host.conf [new file with mode: 0644]
hostname [new file with mode: 0644]
hosts [new file with mode: 0644]
hosts.allow [new file with mode: 0644]
hosts.deny [new file with mode: 0644]
init.d/apache-htcacheclean [new file with mode: 0755]
init.d/apache2 [new file with mode: 0755]
init.d/apparmor [new file with mode: 0755]
init.d/atd [new file with mode: 0755]
init.d/chrony [new file with mode: 0755]
init.d/console-setup.sh [new file with mode: 0755]
init.d/cron [new file with mode: 0755]
init.d/dbus [new file with mode: 0755]
init.d/haveged [new file with mode: 0755]
init.d/hwclock.sh [new file with mode: 0755]
init.d/keyboard-setup.sh [new file with mode: 0755]
init.d/kmod [new file with mode: 0755]
init.d/mariadb [new file with mode: 0755]
init.d/named [new file with mode: 0755]
init.d/networking [new file with mode: 0755]
init.d/open-vm-tools [new file with mode: 0755]
init.d/postfix [new file with mode: 0755]
init.d/procps [new file with mode: 0755]
init.d/rsync [new file with mode: 0755]
init.d/screen-cleanup [new file with mode: 0755]
init.d/ssh [new file with mode: 0755]
init.d/sudo [new file with mode: 0755]
init.d/udev [new file with mode: 0755]
init.d/valkey-server [new file with mode: 0755]
init.d/x11-common [new file with mode: 0755]
initramfs-tools/conf.d/driver-policy [new file with mode: 0644]
initramfs-tools/conf.d/resume [new file with mode: 0644]
initramfs-tools/initramfs.conf [new file with mode: 0644]
initramfs-tools/modules [new file with mode: 0644]
initramfs-tools/update-initramfs.conf [new file with mode: 0644]
inputrc [new file with mode: 0644]
insserv.conf.d/bind9 [new file with mode: 0644]
insserv.conf.d/postfix [new file with mode: 0644]
iproute2/bpf_pinning [new file with mode: 0644]
iproute2/ematch_map [new file with mode: 0644]
iproute2/group [new file with mode: 0644]
iproute2/nl_protos [new file with mode: 0644]
iproute2/rt_dsfield [new file with mode: 0644]
iproute2/rt_protos [new file with mode: 0644]
iproute2/rt_protos.d/README [new file with mode: 0644]
iproute2/rt_realms [new file with mode: 0644]
iproute2/rt_scopes [new file with mode: 0644]
iproute2/rt_tables [new file with mode: 0644]
iproute2/rt_tables.d/README [new file with mode: 0644]
issue [new file with mode: 0644]
issue.net [new file with mode: 0644]
kernel-img.conf [new file with mode: 0644]
kernel/postinst.d/initramfs-tools [new file with mode: 0755]
kernel/postinst.d/zz-update-grub [new file with mode: 0755]
kernel/postrm.d/initramfs-tools [new file with mode: 0755]
kernel/postrm.d/zz-update-grub [new file with mode: 0755]
kernel/preinst.d/intel-microcode [new file with mode: 0755]
ld.so.conf [new file with mode: 0644]
ld.so.conf.d/libc.conf [new file with mode: 0644]
ld.so.conf.d/x86_64-linux-gnu.conf [new file with mode: 0644]
ldap/ldap.conf [new file with mode: 0644]
libaudit.conf [new file with mode: 0644]
libnl-3/classid [new file with mode: 0644]
libnl-3/pktloc [new file with mode: 0644]
lighttpd/conf-available/90-javascript-alias.conf [new file with mode: 0644]
lighttpd/conf-enabled/90-javascript-alias.conf [new symlink]
locale.alias [new file with mode: 0644]
locale.gen [new file with mode: 0644]
localtime [new symlink]
logcheck/ignore.d.paranoid/mariadb-server [new file with mode: 0644]
logcheck/ignore.d.server/gpg-agent [new file with mode: 0644]
logcheck/ignore.d.server/mariadb-server [new file with mode: 0644]
logcheck/ignore.d.workstation/mariadb-server [new file with mode: 0644]
login.defs [new file with mode: 0644]
logrotate.conf [new file with mode: 0644]
logrotate.d/alternatives [new file with mode: 0644]
logrotate.d/apache2 [new file with mode: 0644]
logrotate.d/apt [new file with mode: 0644]
logrotate.d/btmp [new file with mode: 0644]
logrotate.d/chrony [new file with mode: 0644]
logrotate.d/dpkg [new file with mode: 0644]
logrotate.d/mariadb [new file with mode: 0644]
logrotate.d/valkey-server [new file with mode: 0644]
logrotate.d/wtmp [new file with mode: 0644]
lvm/backup/vg00 [new file with mode: 0644]
lvm/lvm.conf [new file with mode: 0644]
lvm/lvmlocal.conf [new file with mode: 0644]
lvm/profile/cache-mq.profile [new file with mode: 0644]
lvm/profile/cache-smq.profile [new file with mode: 0644]
lvm/profile/command_profile_template.profile [new file with mode: 0644]
lvm/profile/lvmdbusd.profile [new file with mode: 0644]
lvm/profile/metadata_profile_template.profile [new file with mode: 0644]
lvm/profile/thin-generic.profile [new file with mode: 0644]
lvm/profile/thin-performance.profile [new file with mode: 0644]
lvm/profile/vdo-small.profile [new file with mode: 0644]
machine-id [new file with mode: 0644]
magic [new file with mode: 0644]
magic.mime [new file with mode: 0644]
mailcap [new file with mode: 0644]
mailcap.order [new file with mode: 0644]
mailname [new file with mode: 0644]
manpath.config [new file with mode: 0644]
mime.types [new file with mode: 0644]
mke2fs.conf [new file with mode: 0644]
modprobe.d/intel-microcode-blacklist.conf [new file with mode: 0644]
modules [new file with mode: 0644]
modules-load.d/modules.conf [new symlink]
motd [new file with mode: 0644]
motd.orig [new file with mode: 0644]
motd.tail [new file with mode: 0644]
mysql/conf.d/mysql.cnf [new file with mode: 0644]
mysql/conf.d/mysqldump.cnf [new file with mode: 0644]
mysql/debian-start [new file with mode: 0755]
mysql/debian.cnf [new file with mode: 0644]
mysql/mariadb.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/50-client.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/50-mysql-clients.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/50-mysqld_safe.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/50-server.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/60-galera.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/provider_bzip2.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/provider_lz4.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/provider_lzma.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/provider_lzo.cnf [new file with mode: 0644]
mysql/mariadb.conf.d/provider_snappy.cnf [new file with mode: 0644]
mysql/my.cnf [new symlink]
mysql/my.cnf.fallback [new file with mode: 0644]
nala/nala.conf [new file with mode: 0644]
nanorc [new file with mode: 0644]
netconfig [new file with mode: 0644]
network/if-down.d/bind9 [new file with mode: 0755]
network/if-down.d/postfix [new file with mode: 0755]
network/if-down.d/resolved [new file with mode: 0755]
network/if-post-down.d/chrony [new file with mode: 0755]
network/if-pre-up.d/ethtool [new file with mode: 0755]
network/if-up.d/bind9 [new file with mode: 0755]
network/if-up.d/chrony [new file with mode: 0755]
network/if-up.d/ethtool [new file with mode: 0755]
network/if-up.d/postfix [new file with mode: 0755]
network/if-up.d/resolved [new file with mode: 0755]
network/interfaces [new file with mode: 0644]
networks [new file with mode: 0644]
nftables.conf [new file with mode: 0755]
nsswitch.conf [new file with mode: 0644]
os-release [new symlink]
pam.conf [new file with mode: 0644]
pam.d/atd [new file with mode: 0644]
pam.d/chfn [new file with mode: 0644]
pam.d/chpasswd [new file with mode: 0644]
pam.d/chsh [new file with mode: 0644]
pam.d/common-account [new file with mode: 0644]
pam.d/common-auth [new file with mode: 0644]
pam.d/common-password [new file with mode: 0644]
pam.d/common-session [new file with mode: 0644]
pam.d/common-session-noninteractive [new file with mode: 0644]
pam.d/cron [new file with mode: 0644]
pam.d/login [new file with mode: 0644]
pam.d/newusers [new file with mode: 0644]
pam.d/other [new file with mode: 0644]
pam.d/passwd [new file with mode: 0644]
pam.d/runuser [new file with mode: 0644]
pam.d/runuser-l [new file with mode: 0644]
pam.d/sshd [new file with mode: 0644]
pam.d/su [new file with mode: 0644]
pam.d/su-l [new file with mode: 0644]
pam.d/sudo [new file with mode: 0644]
pam.d/sudo-i [new file with mode: 0644]
pam.d/vmtoolsd [new file with mode: 0644]
passwd [new file with mode: 0644]
passwd- [new file with mode: 0644]
perl/Net/libnet.cfg [new file with mode: 0644]
postfix/access [new file with mode: 0644]
postfix/access.db [new file with mode: 0644]
postfix/dynamicmaps.cf [new file with mode: 0644]
postfix/main.cf [new file with mode: 0644]
postfix/main.cf.proto [new file with mode: 0644]
postfix/makedefs.out [new symlink]
postfix/master.cf [new file with mode: 0644]
postfix/master.cf.proto [new file with mode: 0644]
postfix/post-install [new file with mode: 0755]
postfix/postfix-files [new file with mode: 0644]
postfix/postfix-files.d/cdb.files [new file with mode: 0644]
postfix/postfix-files.d/pcre.files [new file with mode: 0644]
postfix/postfix-files.d/sqlite.files [new file with mode: 0644]
postfix/postfix-script [new file with mode: 0755]
postfix/virtual [new file with mode: 0644]
postfix/virtual.db [new file with mode: 0644]
ppp/ip-down.d/bind9 [new file with mode: 0755]
ppp/ip-down.d/chrony [new file with mode: 0755]
ppp/ip-down.d/postfix [new file with mode: 0755]
ppp/ip-up.d/bind9 [new file with mode: 0755]
ppp/ip-up.d/chrony [new file with mode: 0755]
ppp/ip-up.d/postfix [new file with mode: 0755]
profile [new file with mode: 0644]
profile.d/Z97-byobu.sh [new file with mode: 0644]
profile.d/bash_completion.sh [new file with mode: 0644]
profile.d/fbrehm.sh [new file with mode: 0644]
profile.d/gawk.csh [new file with mode: 0644]
profile.d/gawk.sh [new file with mode: 0644]
protocols [new file with mode: 0644]
python3.11/sitecustomize.py [new file with mode: 0644]
python3/debian_config [new file with mode: 0644]
rc0.d/K01apache-htcacheclean [new symlink]
rc0.d/K01apache2 [new symlink]
rc0.d/K01atd [new symlink]
rc0.d/K01chrony [new symlink]
rc0.d/K01haveged [new symlink]
rc0.d/K01hwclock.sh [new symlink]
rc0.d/K01mariadb [new symlink]
rc0.d/K01named [new symlink]
rc0.d/K01networking [new symlink]
rc0.d/K01open-vm-tools [new symlink]
rc0.d/K01postfix [new symlink]
rc0.d/K01udev [new symlink]
rc0.d/K01valkey-server [new symlink]
rc1.d/K01apache-htcacheclean [new symlink]
rc1.d/K01apache2 [new symlink]
rc1.d/K01atd [new symlink]
rc1.d/K01chrony [new symlink]
rc1.d/K01haveged [new symlink]
rc1.d/K01mariadb [new symlink]
rc1.d/K01named [new symlink]
rc1.d/K01open-vm-tools [new symlink]
rc1.d/K01postfix [new symlink]
rc1.d/K01valkey-server [new symlink]
rc2.d/K01apache-htcacheclean [new symlink]
rc2.d/S01apache2 [new symlink]
rc2.d/S01atd [new symlink]
rc2.d/S01chrony [new symlink]
rc2.d/S01console-setup.sh [new symlink]
rc2.d/S01cron [new symlink]
rc2.d/S01dbus [new symlink]
rc2.d/S01haveged [new symlink]
rc2.d/S01mariadb [new symlink]
rc2.d/S01named [new symlink]
rc2.d/S01open-vm-tools [new symlink]
rc2.d/S01postfix [new symlink]
rc2.d/S01rsync [new symlink]
rc2.d/S01ssh [new symlink]
rc2.d/S01sudo [new symlink]
rc2.d/S01valkey-server [new symlink]
rc3.d/K01apache-htcacheclean [new symlink]
rc3.d/S01apache2 [new symlink]
rc3.d/S01atd [new symlink]
rc3.d/S01chrony [new symlink]
rc3.d/S01console-setup.sh [new symlink]
rc3.d/S01cron [new symlink]
rc3.d/S01dbus [new symlink]
rc3.d/S01haveged [new symlink]
rc3.d/S01mariadb [new symlink]
rc3.d/S01named [new symlink]
rc3.d/S01open-vm-tools [new symlink]
rc3.d/S01postfix [new symlink]
rc3.d/S01rsync [new symlink]
rc3.d/S01ssh [new symlink]
rc3.d/S01sudo [new symlink]
rc3.d/S01valkey-server [new symlink]
rc4.d/K01apache-htcacheclean [new symlink]
rc4.d/S01apache2 [new symlink]
rc4.d/S01atd [new symlink]
rc4.d/S01chrony [new symlink]
rc4.d/S01console-setup.sh [new symlink]
rc4.d/S01cron [new symlink]
rc4.d/S01dbus [new symlink]
rc4.d/S01haveged [new symlink]
rc4.d/S01mariadb [new symlink]
rc4.d/S01named [new symlink]
rc4.d/S01open-vm-tools [new symlink]
rc4.d/S01postfix [new symlink]
rc4.d/S01rsync [new symlink]
rc4.d/S01ssh [new symlink]
rc4.d/S01sudo [new symlink]
rc4.d/S01valkey-server [new symlink]
rc5.d/K01apache-htcacheclean [new symlink]
rc5.d/S01apache2 [new symlink]
rc5.d/S01atd [new symlink]
rc5.d/S01chrony [new symlink]
rc5.d/S01console-setup.sh [new symlink]
rc5.d/S01cron [new symlink]
rc5.d/S01dbus [new symlink]
rc5.d/S01haveged [new symlink]
rc5.d/S01mariadb [new symlink]
rc5.d/S01named [new symlink]
rc5.d/S01open-vm-tools [new symlink]
rc5.d/S01postfix [new symlink]
rc5.d/S01rsync [new symlink]
rc5.d/S01ssh [new symlink]
rc5.d/S01sudo [new symlink]
rc5.d/S01valkey-server [new symlink]
rc6.d/K01apache-htcacheclean [new symlink]
rc6.d/K01apache2 [new symlink]
rc6.d/K01atd [new symlink]
rc6.d/K01chrony [new symlink]
rc6.d/K01haveged [new symlink]
rc6.d/K01hwclock.sh [new symlink]
rc6.d/K01mariadb [new symlink]
rc6.d/K01named [new symlink]
rc6.d/K01networking [new symlink]
rc6.d/K01open-vm-tools [new symlink]
rc6.d/K01postfix [new symlink]
rc6.d/K01udev [new symlink]
rc6.d/K01valkey-server [new symlink]
rcS.d/S01apparmor [new symlink]
rcS.d/S01hwclock.sh [new symlink]
rcS.d/S01keyboard-setup.sh [new symlink]
rcS.d/S01kmod [new symlink]
rcS.d/S01networking [new symlink]
rcS.d/S01procps [new symlink]
rcS.d/S01screen-cleanup [new symlink]
rcS.d/S01udev [new symlink]
rcS.d/S01x11-common [new symlink]
rearj.cfg [new file with mode: 0644]
reportbug.conf [new file with mode: 0644]
resolv.conf [new file with mode: 0644]
resolvconf/update-libc.d/postfix [new file with mode: 0755]
rmt [new symlink]
rpc [new file with mode: 0644]
rsyslog.d/postfix.conf [new file with mode: 0644]
runit/runsvdir/default/ssh [new symlink]
screenrc [new file with mode: 0644]
security/access.conf [new file with mode: 0644]
security/faillock.conf [new file with mode: 0644]
security/group.conf [new file with mode: 0644]
security/limits.conf [new file with mode: 0644]
security/namespace.conf [new file with mode: 0644]
security/namespace.init [new file with mode: 0755]
security/opasswd [new file with mode: 0644]
security/pam_env.conf [new file with mode: 0644]
security/sepermit.conf [new file with mode: 0644]
security/time.conf [new file with mode: 0644]
security/user_map.conf [new file with mode: 0644]
selinux/semanage.conf [new file with mode: 0644]
services [new file with mode: 0644]
shadow [new file with mode: 0644]
shadow- [new file with mode: 0644]
shells [new file with mode: 0644]
skel/.bash_logout [new file with mode: 0644]
skel/.bashrc [new file with mode: 0644]
skel/.profile [new file with mode: 0644]
ssh/moduli [new file with mode: 0644]
ssh/ssh_config [new file with mode: 0644]
ssh/ssh_host_ecdsa_key [new file with mode: 0644]
ssh/ssh_host_ecdsa_key.pub [new file with mode: 0644]
ssh/ssh_host_ed25519_key [new file with mode: 0644]
ssh/ssh_host_ed25519_key.pub [new file with mode: 0644]
ssh/ssh_host_rsa_key [new file with mode: 0644]
ssh/ssh_host_rsa_key.pub [new file with mode: 0644]
ssh/sshd_config [new file with mode: 0644]
ssl/certs/002c0b4f.0 [new symlink]
ssl/certs/02265526.0 [new symlink]
ssl/certs/062cdee6.0 [new symlink]
ssl/certs/064e0aa9.0 [new symlink]
ssl/certs/06dc52d5.0 [new symlink]
ssl/certs/08063a00.0 [new symlink]
ssl/certs/09789157.0 [new symlink]
ssl/certs/0a775a30.0 [new symlink]
ssl/certs/0b1b94ef.0 [new symlink]
ssl/certs/0b9bc432.0 [new symlink]
ssl/certs/0bf05006.0 [new symlink]
ssl/certs/0f5dc4f3.0 [new symlink]
ssl/certs/0f6fa695.0 [new symlink]
ssl/certs/1001acf7.0 [new symlink]
ssl/certs/106f3e4d.0 [new symlink]
ssl/certs/14bc7599.0 [new symlink]
ssl/certs/18856ac4.0 [new symlink]
ssl/certs/1d3472b9.0 [new symlink]
ssl/certs/1e08bfd1.0 [new symlink]
ssl/certs/1e09d511.0 [new symlink]
ssl/certs/244b5494.0 [new symlink]
ssl/certs/2923b3f9.0 [new symlink]
ssl/certs/2ae6433e.0 [new symlink]
ssl/certs/2b349938.0 [new symlink]
ssl/certs/32888f65.0 [new symlink]
ssl/certs/3513523f.0 [new symlink]
ssl/certs/3bde41ac.0 [new symlink]
ssl/certs/3bde41ac.1 [new symlink]
ssl/certs/3e44d2f7.0 [new symlink]
ssl/certs/3e45d192.0 [new symlink]
ssl/certs/3fb36b73.0 [new symlink]
ssl/certs/40193066.0 [new symlink]
ssl/certs/4042bcee.0 [new symlink]
ssl/certs/40547a79.0 [new symlink]
ssl/certs/406c9bb1.0 [new symlink]
ssl/certs/429a822e.0 [new symlink]
ssl/certs/48bec511.0 [new symlink]
ssl/certs/4b718d9b.0 [new symlink]
ssl/certs/4bfab552.0 [new symlink]
ssl/certs/4f316efb.0 [new symlink]
ssl/certs/5273a94c.0 [new symlink]
ssl/certs/5443e9e3.0 [new symlink]
ssl/certs/54657681.0 [new symlink]
ssl/certs/57bcb2da.0 [new symlink]
ssl/certs/5860aaa6.0 [new symlink]
ssl/certs/5931b5bc.0 [new symlink]
ssl/certs/5a7722fb.0 [new symlink]
ssl/certs/5ad8a5d6.0 [new symlink]
ssl/certs/5cd81ad7.0 [new symlink]
ssl/certs/5d3033c5.0 [new symlink]
ssl/certs/5e98733a.0 [new symlink]
ssl/certs/5f15c80c.0 [new symlink]
ssl/certs/5f618aec.0 [new symlink]
ssl/certs/607986c7.0 [new symlink]
ssl/certs/626dceaf.0 [new symlink]
ssl/certs/653b494a.0 [new symlink]
ssl/certs/66445960.0 [new symlink]
ssl/certs/68dd7389.0 [new symlink]
ssl/certs/6b99d060.0 [new symlink]
ssl/certs/6d41d539.0 [new symlink]
ssl/certs/6fa5da56.0 [new symlink]
ssl/certs/706f604c.0 [new symlink]
ssl/certs/749e9e03.0 [new symlink]
ssl/certs/75d1b2ed.0 [new symlink]
ssl/certs/76faf6c0.0 [new symlink]
ssl/certs/7719f463.0 [new symlink]
ssl/certs/773e07ad.0 [new symlink]
ssl/certs/7a3adc42.0 [new symlink]
ssl/certs/7a780d93.0 [new symlink]
ssl/certs/7aaf71c0.0 [new symlink]
ssl/certs/7f3d5d1d.0 [new symlink]
ssl/certs/8160b96c.0 [new symlink]
ssl/certs/8508e720.0 [new symlink]
ssl/certs/8cb5ee0f.0 [new symlink]
ssl/certs/8d86cdd1.0 [new symlink]
ssl/certs/8d89cda1.0 [new symlink]
ssl/certs/8f103249.0 [new symlink]
ssl/certs/90c5a3c8.0 [new symlink]
ssl/certs/930ac5d2.0 [new symlink]
ssl/certs/93bc0acc.0 [new symlink]
ssl/certs/9482e63a.0 [new symlink]
ssl/certs/9846683b.0 [new symlink]
ssl/certs/988a38cb.0 [new symlink]
ssl/certs/9b5697b0.0 [new symlink]
ssl/certs/9c8dfbd4.0 [new symlink]
ssl/certs/9d04f354.0 [new symlink]
ssl/certs/9ef4a08a.0 [new symlink]
ssl/certs/9f727ac7.0 [new symlink]
ssl/certs/ACCVRAIZ1.pem [new symlink]
ssl/certs/AC_RAIZ_FNMT-RCM.pem [new symlink]
ssl/certs/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem [new symlink]
ssl/certs/ANF_Secure_Server_Root_CA.pem [new symlink]
ssl/certs/Actalis_Authentication_Root_CA.pem [new symlink]
ssl/certs/AffirmTrust_Commercial.pem [new symlink]
ssl/certs/AffirmTrust_Networking.pem [new symlink]
ssl/certs/AffirmTrust_Premium.pem [new symlink]
ssl/certs/AffirmTrust_Premium_ECC.pem [new symlink]
ssl/certs/Amazon_Root_CA_1.pem [new symlink]
ssl/certs/Amazon_Root_CA_2.pem [new symlink]
ssl/certs/Amazon_Root_CA_3.pem [new symlink]
ssl/certs/Amazon_Root_CA_4.pem [new symlink]
ssl/certs/Atos_TrustedRoot_2011.pem [new symlink]
ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem [new symlink]
ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068_2.pem [new symlink]
ssl/certs/Baltimore_CyberTrust_Root.pem [new symlink]
ssl/certs/Buypass_Class_2_Root_CA.pem [new symlink]
ssl/certs/Buypass_Class_3_Root_CA.pem [new symlink]
ssl/certs/CA_Disig_Root_R2.pem [new symlink]
ssl/certs/CFCA_EV_ROOT.pem [new symlink]
ssl/certs/COMODO_Certification_Authority.pem [new symlink]
ssl/certs/COMODO_ECC_Certification_Authority.pem [new symlink]
ssl/certs/COMODO_RSA_Certification_Authority.pem [new symlink]
ssl/certs/Certainly_Root_E1.pem [new symlink]
ssl/certs/Certainly_Root_R1.pem [new symlink]
ssl/certs/Certigna.pem [new symlink]
ssl/certs/Certigna_Root_CA.pem [new symlink]
ssl/certs/Certum_EC-384_CA.pem [new symlink]
ssl/certs/Certum_Trusted_Network_CA.pem [new symlink]
ssl/certs/Certum_Trusted_Network_CA_2.pem [new symlink]
ssl/certs/Certum_Trusted_Root_CA.pem [new symlink]
ssl/certs/Comodo_AAA_Services_root.pem [new symlink]
ssl/certs/D-TRUST_BR_Root_CA_1_2020.pem [new symlink]
ssl/certs/D-TRUST_EV_Root_CA_1_2020.pem [new symlink]
ssl/certs/D-TRUST_Root_Class_3_CA_2_2009.pem [new symlink]
ssl/certs/D-TRUST_Root_Class_3_CA_2_EV_2009.pem [new symlink]
ssl/certs/DigiCert_Assured_ID_Root_CA.pem [new symlink]
ssl/certs/DigiCert_Assured_ID_Root_G2.pem [new symlink]
ssl/certs/DigiCert_Assured_ID_Root_G3.pem [new symlink]
ssl/certs/DigiCert_Global_Root_CA.pem [new symlink]
ssl/certs/DigiCert_Global_Root_G2.pem [new symlink]
ssl/certs/DigiCert_Global_Root_G3.pem [new symlink]
ssl/certs/DigiCert_High_Assurance_EV_Root_CA.pem [new symlink]
ssl/certs/DigiCert_TLS_ECC_P384_Root_G5.pem [new symlink]
ssl/certs/DigiCert_TLS_RSA4096_Root_G5.pem [new symlink]
ssl/certs/DigiCert_Trusted_Root_G4.pem [new symlink]
ssl/certs/E-Tugra_Certification_Authority.pem [new symlink]
ssl/certs/E-Tugra_Global_Root_CA_ECC_v3.pem [new symlink]
ssl/certs/E-Tugra_Global_Root_CA_RSA_v3.pem [new symlink]
ssl/certs/Entrust.net_Premium_2048_Secure_Server_CA.pem [new symlink]
ssl/certs/Entrust_Root_Certification_Authority.pem [new symlink]
ssl/certs/Entrust_Root_Certification_Authority_-_EC1.pem [new symlink]
ssl/certs/Entrust_Root_Certification_Authority_-_G2.pem [new symlink]
ssl/certs/Entrust_Root_Certification_Authority_-_G4.pem [new symlink]
ssl/certs/GDCA_TrustAUTH_R5_ROOT.pem [new symlink]
ssl/certs/GLOBALTRUST_2020.pem [new symlink]
ssl/certs/GTS_Root_R1.pem [new symlink]
ssl/certs/GTS_Root_R2.pem [new symlink]
ssl/certs/GTS_Root_R3.pem [new symlink]
ssl/certs/GTS_Root_R4.pem [new symlink]
ssl/certs/GlobalSign_ECC_Root_CA_-_R4.pem [new symlink]
ssl/certs/GlobalSign_ECC_Root_CA_-_R5.pem [new symlink]
ssl/certs/GlobalSign_Root_CA.pem [new symlink]
ssl/certs/GlobalSign_Root_CA_-_R3.pem [new symlink]
ssl/certs/GlobalSign_Root_CA_-_R6.pem [new symlink]
ssl/certs/GlobalSign_Root_E46.pem [new symlink]
ssl/certs/GlobalSign_Root_R46.pem [new symlink]
ssl/certs/Go_Daddy_Class_2_CA.pem [new symlink]
ssl/certs/Go_Daddy_Root_Certificate_Authority_-_G2.pem [new symlink]
ssl/certs/HARICA_TLS_ECC_Root_CA_2021.pem [new symlink]
ssl/certs/HARICA_TLS_RSA_Root_CA_2021.pem [new symlink]
ssl/certs/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem [new symlink]
ssl/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem [new symlink]
ssl/certs/HiPKI_Root_CA_-_G1.pem [new symlink]
ssl/certs/Hongkong_Post_Root_CA_1.pem [new symlink]
ssl/certs/Hongkong_Post_Root_CA_3.pem [new symlink]
ssl/certs/ISRG_Root_X1.pem [new symlink]
ssl/certs/ISRG_Root_X2.pem [new symlink]
ssl/certs/IdenTrust_Commercial_Root_CA_1.pem [new symlink]
ssl/certs/IdenTrust_Public_Sector_Root_CA_1.pem [new symlink]
ssl/certs/Izenpe.com.pem [new symlink]
ssl/certs/Microsec_e-Szigno_Root_CA_2009.pem [new symlink]
ssl/certs/Microsoft_ECC_Root_Certificate_Authority_2017.pem [new symlink]
ssl/certs/Microsoft_RSA_Root_Certificate_Authority_2017.pem [new symlink]
ssl/certs/NAVER_Global_Root_Certification_Authority.pem [new symlink]
ssl/certs/NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem [new symlink]
ssl/certs/OISTE_WISeKey_Global_Root_GB_CA.pem [new symlink]
ssl/certs/OISTE_WISeKey_Global_Root_GC_CA.pem [new symlink]
ssl/certs/QuoVadis_Root_CA_1_G3.pem [new symlink]
ssl/certs/QuoVadis_Root_CA_2.pem [new symlink]
ssl/certs/QuoVadis_Root_CA_2_G3.pem [new symlink]
ssl/certs/QuoVadis_Root_CA_3.pem [new symlink]
ssl/certs/QuoVadis_Root_CA_3_G3.pem [new symlink]
ssl/certs/SSL.com_EV_Root_Certification_Authority_ECC.pem [new symlink]
ssl/certs/SSL.com_EV_Root_Certification_Authority_RSA_R2.pem [new symlink]
ssl/certs/SSL.com_Root_Certification_Authority_ECC.pem [new symlink]
ssl/certs/SSL.com_Root_Certification_Authority_RSA.pem [new symlink]
ssl/certs/SZAFIR_ROOT_CA2.pem [new symlink]
ssl/certs/SecureSign_RootCA11.pem [new symlink]
ssl/certs/SecureTrust_CA.pem [new symlink]
ssl/certs/Secure_Global_CA.pem [new symlink]
ssl/certs/Security_Communication_ECC_RootCA1.pem [new symlink]
ssl/certs/Security_Communication_RootCA2.pem [new symlink]
ssl/certs/Security_Communication_RootCA3.pem [new symlink]
ssl/certs/Security_Communication_Root_CA.pem [new symlink]
ssl/certs/Starfield_Class_2_CA.pem [new symlink]
ssl/certs/Starfield_Root_Certificate_Authority_-_G2.pem [new symlink]
ssl/certs/Starfield_Services_Root_Certificate_Authority_-_G2.pem [new symlink]
ssl/certs/SwissSign_Gold_CA_-_G2.pem [new symlink]
ssl/certs/SwissSign_Silver_CA_-_G2.pem [new symlink]
ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem [new symlink]
ssl/certs/T-TeleSec_GlobalRoot_Class_3.pem [new symlink]
ssl/certs/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem [new symlink]
ssl/certs/TWCA_Global_Root_CA.pem [new symlink]
ssl/certs/TWCA_Root_Certification_Authority.pem [new symlink]
ssl/certs/TeliaSonera_Root_CA_v1.pem [new symlink]
ssl/certs/Telia_Root_CA_v2.pem [new symlink]
ssl/certs/TrustCor_ECA-1.pem [new symlink]
ssl/certs/TrustCor_RootCert_CA-1.pem [new symlink]
ssl/certs/TrustCor_RootCert_CA-2.pem [new symlink]
ssl/certs/Trustwave_Global_Certification_Authority.pem [new symlink]
ssl/certs/Trustwave_Global_ECC_P256_Certification_Authority.pem [new symlink]
ssl/certs/Trustwave_Global_ECC_P384_Certification_Authority.pem [new symlink]
ssl/certs/TunTrust_Root_CA.pem [new symlink]
ssl/certs/UCA_Extended_Validation_Root.pem [new symlink]
ssl/certs/UCA_Global_G2_Root.pem [new symlink]
ssl/certs/USERTrust_ECC_Certification_Authority.pem [new symlink]
ssl/certs/USERTrust_RSA_Certification_Authority.pem [new symlink]
ssl/certs/XRamp_Global_CA_Root.pem [new symlink]
ssl/certs/a3418fda.0 [new symlink]
ssl/certs/a94d09e5.0 [new symlink]
ssl/certs/aee5f10d.0 [new symlink]
ssl/certs/b0e59380.0 [new symlink]
ssl/certs/b1159c4c.0 [new symlink]
ssl/certs/b433981b.0 [new symlink]
ssl/certs/b66938e9.0 [new symlink]
ssl/certs/b727005e.0 [new symlink]
ssl/certs/b7a5b843.0 [new symlink]
ssl/certs/b81b93f0.0 [new symlink]
ssl/certs/bf53fb88.0 [new symlink]
ssl/certs/c01eb047.0 [new symlink]
ssl/certs/c28a8a30.0 [new symlink]
ssl/certs/ca-certificates.crt [new file with mode: 0644]
ssl/certs/ca6e4ad9.0 [new symlink]
ssl/certs/cbf06781.0 [new symlink]
ssl/certs/cc450945.0 [new symlink]
ssl/certs/cd58d51e.0 [new symlink]
ssl/certs/cd8c0d63.0 [new symlink]
ssl/certs/ce5e74ef.0 [new symlink]
ssl/certs/certSIGN_ROOT_CA.pem [new symlink]
ssl/certs/certSIGN_Root_CA_G2.pem [new symlink]
ssl/certs/d4dae3dd.0 [new symlink]
ssl/certs/d52c538d.0 [new symlink]
ssl/certs/d6325660.0 [new symlink]
ssl/certs/d7e8dc79.0 [new symlink]
ssl/certs/d887a5bb.0 [new symlink]
ssl/certs/dc4d6a89.0 [new symlink]
ssl/certs/dd8e9d41.0 [new symlink]
ssl/certs/de6d66f3.0 [new symlink]
ssl/certs/e-Szigno_Root_CA_2017.pem [new symlink]
ssl/certs/e113c810.0 [new symlink]
ssl/certs/e18bfb83.0 [new symlink]
ssl/certs/e35234b1.0 [new symlink]
ssl/certs/e36a6752.0 [new symlink]
ssl/certs/e73d606e.0 [new symlink]
ssl/certs/e868b802.0 [new symlink]
ssl/certs/e8de2f56.0 [new symlink]
ssl/certs/ePKI_Root_Certification_Authority.pem [new symlink]
ssl/certs/ecccd8db.0 [new symlink]
ssl/certs/ed858448.0 [new symlink]
ssl/certs/ee64a828.0 [new symlink]
ssl/certs/eed8c118.0 [new symlink]
ssl/certs/ef954a4e.0 [new symlink]
ssl/certs/emSign_ECC_Root_CA_-_C3.pem [new symlink]
ssl/certs/emSign_ECC_Root_CA_-_G3.pem [new symlink]
ssl/certs/emSign_Root_CA_-_C1.pem [new symlink]
ssl/certs/emSign_Root_CA_-_G1.pem [new symlink]
ssl/certs/f081611a.0 [new symlink]
ssl/certs/f0c70a8d.0 [new symlink]
ssl/certs/f249de83.0 [new symlink]
ssl/certs/f30dd6ad.0 [new symlink]
ssl/certs/f3377b1b.0 [new symlink]
ssl/certs/f387163d.0 [new symlink]
ssl/certs/f39fc864.0 [new symlink]
ssl/certs/f51bb24c.0 [new symlink]
ssl/certs/fa5da96b.0 [new symlink]
ssl/certs/fc5a8f99.0 [new symlink]
ssl/certs/fd64f3fc.0 [new symlink]
ssl/certs/fe8a2cd8.0 [new symlink]
ssl/certs/feffd413.0 [new symlink]
ssl/certs/ff34af3f.0 [new symlink]
ssl/certs/ssl-cert-snakeoil.pem [new file with mode: 0644]
ssl/certs/vTrus_ECC_Root_CA.pem [new symlink]
ssl/certs/vTrus_Root_CA.pem [new symlink]
ssl/openssl.cnf [new file with mode: 0644]
ssl/private/ssl-cert-snakeoil.key [new file with mode: 0644]
subgid [new file with mode: 0644]
subgid- [new file with mode: 0644]
subuid [new file with mode: 0644]
subuid- [new file with mode: 0644]
sudo.conf [new file with mode: 0644]
sudo_logsrvd.conf [new file with mode: 0644]
sudoers [new file with mode: 0644]
sudoers.d/README [new file with mode: 0644]
sv/ssh/.meta/installed [new file with mode: 0644]
sv/ssh/finish [new file with mode: 0755]
sv/ssh/log/run [new file with mode: 0755]
sv/ssh/run [new file with mode: 0755]
sysctl.conf [new file with mode: 0644]
sysctl.d/99-sysctl.conf [new symlink]
sysctl.d/README.sysctl [new file with mode: 0644]
systemd/journald.conf [new file with mode: 0644]
systemd/logind.conf [new file with mode: 0644]
systemd/networkd.conf [new file with mode: 0644]
systemd/pstore.conf [new file with mode: 0644]
systemd/sleep.conf [new file with mode: 0644]
systemd/system.conf [new file with mode: 0644]
systemd/system/bind9.service [new symlink]
systemd/system/chronyd.service [new symlink]
systemd/system/dbus-org.freedesktop.timesync1.service [new symlink]
systemd/system/getty.target.wants/getty@tty1.service [new symlink]
systemd/system/getty.target.wants/getty@tty2.service [new symlink]
systemd/system/getty.target.wants/getty@tty3.service [new symlink]
systemd/system/getty.target.wants/getty@tty4.service [new symlink]
systemd/system/getty@.service.d/noclear.conf [new file with mode: 0644]
systemd/system/multi-user.target.wants/apache2.service [new symlink]
systemd/system/multi-user.target.wants/atd.service [new symlink]
systemd/system/multi-user.target.wants/chrony.service [new symlink]
systemd/system/multi-user.target.wants/console-setup.service [new symlink]
systemd/system/multi-user.target.wants/cron.service [new symlink]
systemd/system/multi-user.target.wants/e2scrub_reap.service [new symlink]
systemd/system/multi-user.target.wants/etckeeper.timer [new symlink]
systemd/system/multi-user.target.wants/mariadb.service [new symlink]
systemd/system/multi-user.target.wants/named.service [new symlink]
systemd/system/multi-user.target.wants/networking.service [new symlink]
systemd/system/multi-user.target.wants/open-vm-tools.service [new symlink]
systemd/system/multi-user.target.wants/postfix.service [new symlink]
systemd/system/multi-user.target.wants/remote-fs.target [new symlink]
systemd/system/multi-user.target.wants/ssh.service [new symlink]
systemd/system/multi-user.target.wants/valkey-server.service [new symlink]
systemd/system/multi-user.target.wants/valkey-server@6377.service [new symlink]
systemd/system/multi-user.target.wants/valkey-server@6378.service [new symlink]
systemd/system/network-online.target.wants/networking.service [new symlink]
systemd/system/open-vm-tools.service.requires/vgauth.service [new symlink]
systemd/system/sockets.target.wants/dm-event.socket [new symlink]
systemd/system/sshd.service [new symlink]
systemd/system/sysinit.target.wants/apparmor.service [new symlink]
systemd/system/sysinit.target.wants/blk-availability.service [new symlink]
systemd/system/sysinit.target.wants/haveged.service [new symlink]
systemd/system/sysinit.target.wants/keyboard-setup.service [new symlink]
systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket [new symlink]
systemd/system/sysinit.target.wants/lvm2-monitor.service [new symlink]
systemd/system/sysinit.target.wants/systemd-pstore.service [new symlink]
systemd/system/sysinit.target.wants/systemd-timesyncd.service [new symlink]
systemd/system/timers.target.wants/apt-daily-upgrade.timer [new symlink]
systemd/system/timers.target.wants/apt-daily.timer [new symlink]
systemd/system/timers.target.wants/dpkg-db-backup.timer [new symlink]
systemd/system/timers.target.wants/e2scrub_all.timer [new symlink]
systemd/system/timers.target.wants/fstrim.timer [new symlink]
systemd/system/timers.target.wants/logrotate.timer [new symlink]
systemd/system/timers.target.wants/man-db.timer [new symlink]
systemd/system/timers.target.wants/plocate-updatedb.timer [new symlink]
systemd/system/tmp.mount [new file with mode: 0644]
systemd/system/valkey-server@6377.service [new symlink]
systemd/system/valkey-server@6378.service [new symlink]
systemd/system/valkey.service [new symlink]
systemd/system/vmtoolsd.service [new symlink]
systemd/timesyncd.conf [new file with mode: 0644]
systemd/user.conf [new file with mode: 0644]
systemd/user/sockets.target.wants/dirmngr.socket [new symlink]
systemd/user/sockets.target.wants/gpg-agent-browser.socket [new symlink]
systemd/user/sockets.target.wants/gpg-agent-extra.socket [new symlink]
systemd/user/sockets.target.wants/gpg-agent-ssh.socket [new symlink]
systemd/user/sockets.target.wants/gpg-agent.socket [new symlink]
terminfo/README [new file with mode: 0644]
tigrc [new file with mode: 0644]
timezone [new file with mode: 0644]
tmpfiles.d/screen-cleanup.conf [new file with mode: 0644]
ucf.conf [new file with mode: 0644]
udev/udev.conf [new file with mode: 0644]
ufw/applications.d/bind9 [new file with mode: 0644]
ufw/applications.d/openssh-server [new file with mode: 0644]
ufw/applications.d/postfix [new file with mode: 0644]
update-motd.d/10-uname [new file with mode: 0755]
update-motd.d/20-release [new file with mode: 0755]
update-motd.d/40-tail [new file with mode: 0755]
update-motd.d/50-fortune [new file with mode: 0755]
update-motd.d/60-ddate [new file with mode: 0755]
update-motd.d/70-need-reboot [new file with mode: 0755]
updatedb.conf [new file with mode: 0644]
valkey/valkey-6377.conf [new file with mode: 0644]
valkey/valkey-6378.conf [new file with mode: 0644]
valkey/valkey.conf [new file with mode: 0644]
vim/vimrc [new file with mode: 0644]
vim/vimrc.local [new file with mode: 0644]
vim/vimrc.tiny [new file with mode: 0644]
vmware-tools/poweroff-vm-default [new file with mode: 0755]
vmware-tools/poweron-vm-default [new file with mode: 0755]
vmware-tools/resume-vm-default [new file with mode: 0755]
vmware-tools/scripts/vmware/network [new file with mode: 0755]
vmware-tools/statechange.subr [new file with mode: 0644]
vmware-tools/suspend-vm-default [new file with mode: 0755]
vmware-tools/tools.conf [new file with mode: 0644]
vmware-tools/tools.conf.example [new file with mode: 0644]
vmware-tools/vgauth.conf [new file with mode: 0644]
vmware-tools/vgauth/schemas/XMLSchema-hasFacetAndProperty.xsd [new file with mode: 0644]
vmware-tools/vgauth/schemas/XMLSchema-instance.xsd [new file with mode: 0644]
vmware-tools/vgauth/schemas/XMLSchema.dtd [new file with mode: 0644]
vmware-tools/vgauth/schemas/XMLSchema.xsd [new file with mode: 0644]
vmware-tools/vgauth/schemas/catalog.xml [new file with mode: 0644]
vmware-tools/vgauth/schemas/datatypes.dtd [new file with mode: 0644]
vmware-tools/vgauth/schemas/saml-schema-assertion-2.0.xsd [new file with mode: 0644]
vmware-tools/vgauth/schemas/xenc-schema.xsd [new file with mode: 0644]
vmware-tools/vgauth/schemas/xml.xsd [new file with mode: 0644]
vmware-tools/vgauth/schemas/xmldsig-core-schema.xsd [new file with mode: 0644]
wgetrc [new file with mode: 0644]
xattr.conf [new file with mode: 0644]
xdg/autostart/xdg-user-dirs.desktop [new file with mode: 0644]
xdg/systemd/user [new symlink]
xdg/user-dirs.conf [new file with mode: 0644]
xdg/user-dirs.defaults [new file with mode: 0644]

diff --git a/.etckeeper b/.etckeeper
new file mode 100755 (executable)
index 0000000..71acddd
--- /dev/null
@@ -0,0 +1,1129 @@
+# Generated by etckeeper.  Do not edit.
+
+mkdir -p './X11/xkb'
+mkdir -p './X11/xorg.conf.d'
+mkdir -p './apparmor.d/disable'
+mkdir -p './apparmor.d/force-complain'
+mkdir -p './apt/auth.conf.d'
+mkdir -p './apt/keyrings'
+mkdir -p './apt/listchanges.conf.d'
+mkdir -p './apt/preferences.d'
+mkdir -p './binfmt.d'
+mkdir -p './ca-certificates/update.d'
+mkdir -p './dbus-1/session.d'
+mkdir -p './dbus-1/system.d'
+mkdir -p './gss/mech.d'
+mkdir -p './initramfs-tools/hooks'
+mkdir -p './initramfs-tools/scripts/init-bottom'
+mkdir -p './initramfs-tools/scripts/init-premount'
+mkdir -p './initramfs-tools/scripts/init-top'
+mkdir -p './initramfs-tools/scripts/local-bottom'
+mkdir -p './initramfs-tools/scripts/local-premount'
+mkdir -p './initramfs-tools/scripts/local-top'
+mkdir -p './initramfs-tools/scripts/nfs-bottom'
+mkdir -p './initramfs-tools/scripts/nfs-premount'
+mkdir -p './initramfs-tools/scripts/nfs-top'
+mkdir -p './initramfs-tools/scripts/panic'
+mkdir -p './iptables'
+mkdir -p './kernel/install.d'
+mkdir -p './network/interfaces.d'
+mkdir -p './opt'
+mkdir -p './postfix/dynamicmaps.cf.d'
+mkdir -p './postfix/sasl'
+mkdir -p './security/limits.d'
+mkdir -p './security/namespace.d'
+mkdir -p './ssh/ssh_config.d'
+mkdir -p './ssh/sshd_config.d'
+mkdir -p './systemd/network'
+mkdir -p './udev/hwdb.d'
+mkdir -p './udev/rules.d'
+maybe chmod 0755 '.'
+maybe chmod 0700 '.etckeeper'
+maybe chmod 0644 '.gitignore'
+maybe chmod 0755 'X11'
+maybe chmod 0755 'X11/Xreset'
+maybe chmod 0755 'X11/Xreset.d'
+maybe chmod 0644 'X11/Xreset.d/README'
+maybe chmod 0755 'X11/Xresources'
+maybe chmod 0644 'X11/Xresources/x11-common'
+maybe chmod 0755 'X11/Xsession'
+maybe chmod 0755 'X11/Xsession.d'
+maybe chmod 0644 'X11/Xsession.d/20dbus_xdg-runtime'
+maybe chmod 0644 'X11/Xsession.d/20x11-common_process-args'
+maybe chmod 0644 'X11/Xsession.d/30x11-common_xresources'
+maybe chmod 0644 'X11/Xsession.d/35x11-common_xhost-local'
+maybe chmod 0644 'X11/Xsession.d/40x11-common_xsessionrc'
+maybe chmod 0644 'X11/Xsession.d/50x11-common_determine-startup'
+maybe chmod 0644 'X11/Xsession.d/90gpg-agent'
+maybe chmod 0644 'X11/Xsession.d/90x11-common_ssh-agent'
+maybe chmod 0644 'X11/Xsession.d/99x11-common_start'
+maybe chmod 0644 'X11/Xsession.options'
+maybe chmod 0644 'X11/rgb.txt'
+maybe chmod 0755 'X11/xkb'
+maybe chmod 0755 'X11/xorg.conf.d'
+maybe chmod 0644 'adduser.conf'
+maybe chmod 0644 'aliases'
+maybe chmod 0644 'aliases.db'
+maybe chmod 0755 'alternatives'
+maybe chmod 0644 'alternatives/README'
+maybe chmod 0644 'analog.cfg'
+maybe chmod 0755 'apache2'
+maybe chmod 0644 'apache2/apache2.conf'
+maybe chmod 0755 'apache2/conf-available'
+maybe chmod 0644 'apache2/conf-available/apache2-doc.conf'
+maybe chmod 0644 'apache2/conf-available/charset.conf'
+maybe chmod 0644 'apache2/conf-available/javascript-common.conf'
+maybe chmod 0644 'apache2/conf-available/localized-error-pages.conf'
+maybe chmod 0644 'apache2/conf-available/other-vhosts-access-log.conf'
+maybe chmod 0644 'apache2/conf-available/security.conf'
+maybe chmod 0644 'apache2/conf-available/serve-cgi-bin.conf'
+maybe chmod 0755 'apache2/conf-enabled'
+maybe chmod 0644 'apache2/envvars'
+maybe chmod 0644 'apache2/magic'
+maybe chmod 0755 'apache2/mods-available'
+maybe chmod 0644 'apache2/mods-available/access_compat.load'
+maybe chmod 0644 'apache2/mods-available/actions.conf'
+maybe chmod 0644 'apache2/mods-available/actions.load'
+maybe chmod 0644 'apache2/mods-available/alias.conf'
+maybe chmod 0644 'apache2/mods-available/alias.load'
+maybe chmod 0644 'apache2/mods-available/allowmethods.load'
+maybe chmod 0644 'apache2/mods-available/asis.load'
+maybe chmod 0644 'apache2/mods-available/auth_basic.load'
+maybe chmod 0644 'apache2/mods-available/auth_digest.load'
+maybe chmod 0644 'apache2/mods-available/auth_form.load'
+maybe chmod 0644 'apache2/mods-available/authn_anon.load'
+maybe chmod 0644 'apache2/mods-available/authn_core.load'
+maybe chmod 0644 'apache2/mods-available/authn_dbd.load'
+maybe chmod 0644 'apache2/mods-available/authn_dbm.load'
+maybe chmod 0644 'apache2/mods-available/authn_file.load'
+maybe chmod 0644 'apache2/mods-available/authn_socache.load'
+maybe chmod 0644 'apache2/mods-available/authnz_fcgi.load'
+maybe chmod 0644 'apache2/mods-available/authnz_ldap.load'
+maybe chmod 0644 'apache2/mods-available/authz_core.load'
+maybe chmod 0644 'apache2/mods-available/authz_dbd.load'
+maybe chmod 0644 'apache2/mods-available/authz_dbm.load'
+maybe chmod 0644 'apache2/mods-available/authz_groupfile.load'
+maybe chmod 0644 'apache2/mods-available/authz_host.load'
+maybe chmod 0644 'apache2/mods-available/authz_owner.load'
+maybe chmod 0644 'apache2/mods-available/authz_user.load'
+maybe chmod 0644 'apache2/mods-available/autoindex.conf'
+maybe chmod 0644 'apache2/mods-available/autoindex.load'
+maybe chmod 0644 'apache2/mods-available/brotli.load'
+maybe chmod 0644 'apache2/mods-available/buffer.load'
+maybe chmod 0644 'apache2/mods-available/cache.load'
+maybe chmod 0644 'apache2/mods-available/cache_disk.conf'
+maybe chmod 0644 'apache2/mods-available/cache_disk.load'
+maybe chmod 0644 'apache2/mods-available/cache_socache.load'
+maybe chmod 0644 'apache2/mods-available/cern_meta.load'
+maybe chmod 0644 'apache2/mods-available/cgi.load'
+maybe chmod 0644 'apache2/mods-available/cgid.conf'
+maybe chmod 0644 'apache2/mods-available/cgid.load'
+maybe chmod 0644 'apache2/mods-available/charset_lite.load'
+maybe chmod 0644 'apache2/mods-available/data.load'
+maybe chmod 0644 'apache2/mods-available/dav.load'
+maybe chmod 0644 'apache2/mods-available/dav_fs.conf'
+maybe chmod 0644 'apache2/mods-available/dav_fs.load'
+maybe chmod 0644 'apache2/mods-available/dav_lock.load'
+maybe chmod 0644 'apache2/mods-available/dbd.load'
+maybe chmod 0644 'apache2/mods-available/deflate.conf'
+maybe chmod 0644 'apache2/mods-available/deflate.load'
+maybe chmod 0644 'apache2/mods-available/dialup.load'
+maybe chmod 0644 'apache2/mods-available/dir.conf'
+maybe chmod 0644 'apache2/mods-available/dir.load'
+maybe chmod 0644 'apache2/mods-available/dump_io.load'
+maybe chmod 0644 'apache2/mods-available/echo.load'
+maybe chmod 0644 'apache2/mods-available/env.load'
+maybe chmod 0644 'apache2/mods-available/expires.load'
+maybe chmod 0644 'apache2/mods-available/ext_filter.load'
+maybe chmod 0644 'apache2/mods-available/file_cache.load'
+maybe chmod 0644 'apache2/mods-available/filter.load'
+maybe chmod 0644 'apache2/mods-available/headers.load'
+maybe chmod 0644 'apache2/mods-available/heartbeat.load'
+maybe chmod 0644 'apache2/mods-available/heartmonitor.load'
+maybe chmod 0644 'apache2/mods-available/http2.conf'
+maybe chmod 0644 'apache2/mods-available/http2.load'
+maybe chmod 0644 'apache2/mods-available/ident.load'
+maybe chmod 0644 'apache2/mods-available/imagemap.load'
+maybe chmod 0644 'apache2/mods-available/include.load'
+maybe chmod 0644 'apache2/mods-available/info.conf'
+maybe chmod 0644 'apache2/mods-available/info.load'
+maybe chmod 0644 'apache2/mods-available/lbmethod_bybusyness.load'
+maybe chmod 0644 'apache2/mods-available/lbmethod_byrequests.load'
+maybe chmod 0644 'apache2/mods-available/lbmethod_bytraffic.load'
+maybe chmod 0644 'apache2/mods-available/lbmethod_heartbeat.load'
+maybe chmod 0644 'apache2/mods-available/ldap.conf'
+maybe chmod 0644 'apache2/mods-available/ldap.load'
+maybe chmod 0644 'apache2/mods-available/log_debug.load'
+maybe chmod 0644 'apache2/mods-available/log_forensic.load'
+maybe chmod 0644 'apache2/mods-available/lua.load'
+maybe chmod 0644 'apache2/mods-available/macro.load'
+maybe chmod 0644 'apache2/mods-available/md.load'
+maybe chmod 0644 'apache2/mods-available/mime.conf'
+maybe chmod 0644 'apache2/mods-available/mime.load'
+maybe chmod 0644 'apache2/mods-available/mime_magic.conf'
+maybe chmod 0644 'apache2/mods-available/mime_magic.load'
+maybe chmod 0644 'apache2/mods-available/mpm_event.conf'
+maybe chmod 0644 'apache2/mods-available/mpm_event.load'
+maybe chmod 0644 'apache2/mods-available/mpm_prefork.conf'
+maybe chmod 0644 'apache2/mods-available/mpm_prefork.load'
+maybe chmod 0644 'apache2/mods-available/mpm_worker.conf'
+maybe chmod 0644 'apache2/mods-available/mpm_worker.load'
+maybe chmod 0644 'apache2/mods-available/negotiation.conf'
+maybe chmod 0644 'apache2/mods-available/negotiation.load'
+maybe chmod 0644 'apache2/mods-available/proxy.conf'
+maybe chmod 0644 'apache2/mods-available/proxy.load'
+maybe chmod 0644 'apache2/mods-available/proxy_ajp.load'
+maybe chmod 0644 'apache2/mods-available/proxy_balancer.conf'
+maybe chmod 0644 'apache2/mods-available/proxy_balancer.load'
+maybe chmod 0644 'apache2/mods-available/proxy_connect.load'
+maybe chmod 0644 'apache2/mods-available/proxy_express.load'
+maybe chmod 0644 'apache2/mods-available/proxy_fcgi.load'
+maybe chmod 0644 'apache2/mods-available/proxy_fdpass.load'
+maybe chmod 0644 'apache2/mods-available/proxy_ftp.conf'
+maybe chmod 0644 'apache2/mods-available/proxy_ftp.load'
+maybe chmod 0644 'apache2/mods-available/proxy_hcheck.load'
+maybe chmod 0644 'apache2/mods-available/proxy_html.conf'
+maybe chmod 0644 'apache2/mods-available/proxy_html.load'
+maybe chmod 0644 'apache2/mods-available/proxy_http.load'
+maybe chmod 0644 'apache2/mods-available/proxy_http2.load'
+maybe chmod 0644 'apache2/mods-available/proxy_scgi.load'
+maybe chmod 0644 'apache2/mods-available/proxy_uwsgi.load'
+maybe chmod 0644 'apache2/mods-available/proxy_wstunnel.load'
+maybe chmod 0644 'apache2/mods-available/ratelimit.load'
+maybe chmod 0644 'apache2/mods-available/reflector.load'
+maybe chmod 0644 'apache2/mods-available/remoteip.load'
+maybe chmod 0644 'apache2/mods-available/reqtimeout.conf'
+maybe chmod 0644 'apache2/mods-available/reqtimeout.load'
+maybe chmod 0644 'apache2/mods-available/request.load'
+maybe chmod 0644 'apache2/mods-available/rewrite.load'
+maybe chmod 0644 'apache2/mods-available/sed.load'
+maybe chmod 0644 'apache2/mods-available/session.load'
+maybe chmod 0644 'apache2/mods-available/session_cookie.load'
+maybe chmod 0644 'apache2/mods-available/session_crypto.load'
+maybe chmod 0644 'apache2/mods-available/session_dbd.load'
+maybe chmod 0644 'apache2/mods-available/setenvif.conf'
+maybe chmod 0644 'apache2/mods-available/setenvif.load'
+maybe chmod 0644 'apache2/mods-available/slotmem_plain.load'
+maybe chmod 0644 'apache2/mods-available/slotmem_shm.load'
+maybe chmod 0644 'apache2/mods-available/socache_dbm.load'
+maybe chmod 0644 'apache2/mods-available/socache_memcache.load'
+maybe chmod 0644 'apache2/mods-available/socache_redis.load'
+maybe chmod 0644 'apache2/mods-available/socache_shmcb.load'
+maybe chmod 0644 'apache2/mods-available/speling.load'
+maybe chmod 0644 'apache2/mods-available/ssl.conf'
+maybe chmod 0644 'apache2/mods-available/ssl.load'
+maybe chmod 0644 'apache2/mods-available/status.conf'
+maybe chmod 0644 'apache2/mods-available/status.load'
+maybe chmod 0644 'apache2/mods-available/substitute.load'
+maybe chmod 0644 'apache2/mods-available/suexec.load'
+maybe chmod 0644 'apache2/mods-available/unique_id.load'
+maybe chmod 0644 'apache2/mods-available/userdir.conf'
+maybe chmod 0644 'apache2/mods-available/userdir.load'
+maybe chmod 0644 'apache2/mods-available/usertrack.load'
+maybe chmod 0644 'apache2/mods-available/vhost_alias.load'
+maybe chmod 0644 'apache2/mods-available/xml2enc.load'
+maybe chmod 0755 'apache2/mods-enabled'
+maybe chmod 0644 'apache2/ports.conf'
+maybe chmod 0755 'apache2/sites-available'
+maybe chmod 0644 'apache2/sites-available/000-default.conf'
+maybe chmod 0644 'apache2/sites-available/default-ssl.conf'
+maybe chmod 0755 'apache2/sites-enabled'
+maybe chmod 0755 'apparmor'
+maybe chmod 0755 'apparmor.d'
+maybe chmod 0755 'apparmor.d/abi'
+maybe chmod 0644 'apparmor.d/abi/3.0'
+maybe chmod 0644 'apparmor.d/abi/kernel-5.4-outoftree-network'
+maybe chmod 0644 'apparmor.d/abi/kernel-5.4-vanilla'
+maybe chmod 0755 'apparmor.d/abstractions'
+maybe chmod 0644 'apparmor.d/abstractions/X'
+maybe chmod 0644 'apparmor.d/abstractions/apache2-common'
+maybe chmod 0755 'apparmor.d/abstractions/apparmor_api'
+maybe chmod 0644 'apparmor.d/abstractions/apparmor_api/change_profile'
+maybe chmod 0644 'apparmor.d/abstractions/apparmor_api/examine'
+maybe chmod 0644 'apparmor.d/abstractions/apparmor_api/find_mountpoint'
+maybe chmod 0644 'apparmor.d/abstractions/apparmor_api/introspect'
+maybe chmod 0644 'apparmor.d/abstractions/apparmor_api/is_enabled'
+maybe chmod 0644 'apparmor.d/abstractions/aspell'
+maybe chmod 0644 'apparmor.d/abstractions/audio'
+maybe chmod 0644 'apparmor.d/abstractions/authentication'
+maybe chmod 0644 'apparmor.d/abstractions/base'
+maybe chmod 0644 'apparmor.d/abstractions/bash'
+maybe chmod 0644 'apparmor.d/abstractions/consoles'
+maybe chmod 0644 'apparmor.d/abstractions/crypto'
+maybe chmod 0644 'apparmor.d/abstractions/cups-client'
+maybe chmod 0644 'apparmor.d/abstractions/dbus'
+maybe chmod 0644 'apparmor.d/abstractions/dbus-accessibility'
+maybe chmod 0644 'apparmor.d/abstractions/dbus-accessibility-strict'
+maybe chmod 0644 'apparmor.d/abstractions/dbus-network-manager-strict'
+maybe chmod 0644 'apparmor.d/abstractions/dbus-session'
+maybe chmod 0644 'apparmor.d/abstractions/dbus-session-strict'
+maybe chmod 0644 'apparmor.d/abstractions/dbus-strict'
+maybe chmod 0644 'apparmor.d/abstractions/dconf'
+maybe chmod 0644 'apparmor.d/abstractions/dovecot-common'
+maybe chmod 0644 'apparmor.d/abstractions/dri-common'
+maybe chmod 0644 'apparmor.d/abstractions/dri-enumerate'
+maybe chmod 0644 'apparmor.d/abstractions/enchant'
+maybe chmod 0644 'apparmor.d/abstractions/exo-open'
+maybe chmod 0644 'apparmor.d/abstractions/fcitx'
+maybe chmod 0644 'apparmor.d/abstractions/fcitx-strict'
+maybe chmod 0644 'apparmor.d/abstractions/fonts'
+maybe chmod 0644 'apparmor.d/abstractions/freedesktop.org'
+maybe chmod 0644 'apparmor.d/abstractions/gio-open'
+maybe chmod 0644 'apparmor.d/abstractions/gnome'
+maybe chmod 0644 'apparmor.d/abstractions/gnupg'
+maybe chmod 0644 'apparmor.d/abstractions/gtk'
+maybe chmod 0644 'apparmor.d/abstractions/gvfs-open'
+maybe chmod 0644 'apparmor.d/abstractions/hosts_access'
+maybe chmod 0644 'apparmor.d/abstractions/ibus'
+maybe chmod 0644 'apparmor.d/abstractions/kde'
+maybe chmod 0644 'apparmor.d/abstractions/kde-globals-write'
+maybe chmod 0644 'apparmor.d/abstractions/kde-icon-cache-write'
+maybe chmod 0644 'apparmor.d/abstractions/kde-language-write'
+maybe chmod 0644 'apparmor.d/abstractions/kde-open5'
+maybe chmod 0644 'apparmor.d/abstractions/kerberosclient'
+maybe chmod 0644 'apparmor.d/abstractions/ldapclient'
+maybe chmod 0644 'apparmor.d/abstractions/libpam-systemd'
+maybe chmod 0644 'apparmor.d/abstractions/likewise'
+maybe chmod 0644 'apparmor.d/abstractions/mdns'
+maybe chmod 0644 'apparmor.d/abstractions/mesa'
+maybe chmod 0644 'apparmor.d/abstractions/mir'
+maybe chmod 0644 'apparmor.d/abstractions/mozc'
+maybe chmod 0644 'apparmor.d/abstractions/mysql'
+maybe chmod 0644 'apparmor.d/abstractions/nameservice'
+maybe chmod 0644 'apparmor.d/abstractions/nis'
+maybe chmod 0644 'apparmor.d/abstractions/nss-systemd'
+maybe chmod 0644 'apparmor.d/abstractions/nvidia'
+maybe chmod 0644 'apparmor.d/abstractions/opencl'
+maybe chmod 0644 'apparmor.d/abstractions/opencl-common'
+maybe chmod 0644 'apparmor.d/abstractions/opencl-intel'
+maybe chmod 0644 'apparmor.d/abstractions/opencl-mesa'
+maybe chmod 0644 'apparmor.d/abstractions/opencl-nvidia'
+maybe chmod 0644 'apparmor.d/abstractions/opencl-pocl'
+maybe chmod 0644 'apparmor.d/abstractions/openssl'
+maybe chmod 0644 'apparmor.d/abstractions/orbit2'
+maybe chmod 0644 'apparmor.d/abstractions/p11-kit'
+maybe chmod 0644 'apparmor.d/abstractions/perl'
+maybe chmod 0644 'apparmor.d/abstractions/php'
+maybe chmod 0644 'apparmor.d/abstractions/php-worker'
+maybe chmod 0644 'apparmor.d/abstractions/php5'
+maybe chmod 0644 'apparmor.d/abstractions/postfix-common'
+maybe chmod 0644 'apparmor.d/abstractions/private-files'
+maybe chmod 0644 'apparmor.d/abstractions/private-files-strict'
+maybe chmod 0644 'apparmor.d/abstractions/python'
+maybe chmod 0644 'apparmor.d/abstractions/qt5'
+maybe chmod 0644 'apparmor.d/abstractions/qt5-compose-cache-write'
+maybe chmod 0644 'apparmor.d/abstractions/qt5-settings-write'
+maybe chmod 0644 'apparmor.d/abstractions/recent-documents-write'
+maybe chmod 0644 'apparmor.d/abstractions/ruby'
+maybe chmod 0644 'apparmor.d/abstractions/samba'
+maybe chmod 0644 'apparmor.d/abstractions/samba-rpcd'
+maybe chmod 0644 'apparmor.d/abstractions/smbpass'
+maybe chmod 0644 'apparmor.d/abstractions/snap_browsers'
+maybe chmod 0644 'apparmor.d/abstractions/ssl_certs'
+maybe chmod 0644 'apparmor.d/abstractions/ssl_keys'
+maybe chmod 0644 'apparmor.d/abstractions/svn-repositories'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-bittorrent-clients'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers'
+maybe chmod 0755 'apparmor.d/abstractions/ubuntu-browsers.d'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/chromium-browser'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/java'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/kde'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/mailto'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/multimedia'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/plugins-common'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/productivity'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/text-editors'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-browsers.d/user-files'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-console-browsers'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-console-email'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-email'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-feed-readers'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-gnome-terminal'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-helpers'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-konsole'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-media-players'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-unity7-base'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-unity7-launcher'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-unity7-messaging'
+maybe chmod 0644 'apparmor.d/abstractions/ubuntu-xterm'
+maybe chmod 0644 'apparmor.d/abstractions/user-download'
+maybe chmod 0644 'apparmor.d/abstractions/user-mail'
+maybe chmod 0644 'apparmor.d/abstractions/user-manpages'
+maybe chmod 0644 'apparmor.d/abstractions/user-tmp'
+maybe chmod 0644 'apparmor.d/abstractions/user-write'
+maybe chmod 0644 'apparmor.d/abstractions/video'
+maybe chmod 0644 'apparmor.d/abstractions/vulkan'
+maybe chmod 0644 'apparmor.d/abstractions/wayland'
+maybe chmod 0644 'apparmor.d/abstractions/web-data'
+maybe chmod 0644 'apparmor.d/abstractions/winbind'
+maybe chmod 0644 'apparmor.d/abstractions/wutmp'
+maybe chmod 0644 'apparmor.d/abstractions/xad'
+maybe chmod 0644 'apparmor.d/abstractions/xdg-desktop'
+maybe chmod 0644 'apparmor.d/abstractions/xdg-open'
+maybe chmod 0755 'apparmor.d/disable'
+maybe chmod 0755 'apparmor.d/force-complain'
+maybe chmod 0755 'apparmor.d/local'
+maybe chmod 0644 'apparmor.d/local/README'
+maybe chmod 0644 'apparmor.d/local/lsb_release'
+maybe chmod 0644 'apparmor.d/local/nvidia_modprobe'
+maybe chmod 0644 'apparmor.d/local/sbin.dhclient'
+maybe chmod 0644 'apparmor.d/local/usr.bin.man'
+maybe chmod 0644 'apparmor.d/local/usr.bin.tcpdump'
+maybe chmod 0644 'apparmor.d/local/usr.sbin.chronyd'
+maybe chmod 0644 'apparmor.d/local/usr.sbin.haveged'
+maybe chmod 0644 'apparmor.d/local/usr.sbin.named'
+maybe chmod 0644 'apparmor.d/lsb_release'
+maybe chmod 0644 'apparmor.d/nvidia_modprobe'
+maybe chmod 0644 'apparmor.d/sbin.dhclient'
+maybe chmod 0755 'apparmor.d/tunables'
+maybe chmod 0644 'apparmor.d/tunables/alias'
+maybe chmod 0644 'apparmor.d/tunables/apparmorfs'
+maybe chmod 0644 'apparmor.d/tunables/dovecot'
+maybe chmod 0644 'apparmor.d/tunables/etc'
+maybe chmod 0644 'apparmor.d/tunables/global'
+maybe chmod 0644 'apparmor.d/tunables/home'
+maybe chmod 0755 'apparmor.d/tunables/home.d'
+maybe chmod 0644 'apparmor.d/tunables/home.d/site.local'
+maybe chmod 0644 'apparmor.d/tunables/home.d/ubuntu'
+maybe chmod 0644 'apparmor.d/tunables/kernelvars'
+maybe chmod 0644 'apparmor.d/tunables/multiarch'
+maybe chmod 0755 'apparmor.d/tunables/multiarch.d'
+maybe chmod 0644 'apparmor.d/tunables/multiarch.d/site.local'
+maybe chmod 0644 'apparmor.d/tunables/proc'
+maybe chmod 0644 'apparmor.d/tunables/run'
+maybe chmod 0644 'apparmor.d/tunables/securityfs'
+maybe chmod 0644 'apparmor.d/tunables/share'
+maybe chmod 0644 'apparmor.d/tunables/sys'
+maybe chmod 0644 'apparmor.d/tunables/xdg-user-dirs'
+maybe chmod 0755 'apparmor.d/tunables/xdg-user-dirs.d'
+maybe chmod 0644 'apparmor.d/tunables/xdg-user-dirs.d/site.local'
+maybe chmod 0644 'apparmor.d/usr.bin.man'
+maybe chmod 0644 'apparmor.d/usr.bin.tcpdump'
+maybe chmod 0644 'apparmor.d/usr.sbin.chronyd'
+maybe chmod 0644 'apparmor.d/usr.sbin.haveged'
+maybe chmod 0644 'apparmor.d/usr.sbin.mariadbd'
+maybe chmod 0644 'apparmor.d/usr.sbin.named'
+maybe chmod 0644 'apparmor/parser.conf'
+maybe chmod 0755 'apt'
+maybe chmod 0755 'apt/apt.conf.d'
+maybe chmod 0644 'apt/apt.conf.d/00CDMountPoint'
+maybe chmod 0644 'apt/apt.conf.d/00trustcdrom'
+maybe chmod 0644 'apt/apt.conf.d/01autoremove'
+maybe chmod 0644 'apt/apt.conf.d/05etckeeper'
+maybe chmod 0644 'apt/apt.conf.d/20listchanges'
+maybe chmod 0644 'apt/apt.conf.d/70debconf'
+maybe chmod 0755 'apt/auth.conf.d'
+maybe chmod 0755 'apt/keyrings'
+maybe chmod 0644 'apt/listchanges.conf'
+maybe chmod 0755 'apt/listchanges.conf.d'
+maybe chmod 0755 'apt/preferences.d'
+maybe chmod 0644 'apt/sources.list'
+maybe chmod 0755 'apt/sources.list.d'
+maybe chmod 0644 'apt/sources.list.d/fbrehm.list'
+maybe chmod 0755 'apt/trusted.gpg.d'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-bookworm-automatic.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-bookworm-security-automatic.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-bookworm-stable.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-bullseye-automatic.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-bullseye-security-automatic.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-bullseye-stable.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-buster-automatic.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-buster-security-automatic.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/debian-archive-buster-stable.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/frank.brehm.asc'
+maybe chmod 0644 'apt/trusted.gpg.d/frank.brehm.gpg'
+maybe chgrp 'daemon' 'at.deny'
+maybe chmod 0640 'at.deny'
+maybe chmod 0644 'bash.bashrc'
+maybe chmod 0644 'bash_completion'
+maybe chmod 0755 'bash_completion.d'
+maybe chmod 0644 'bash_completion.d/git-prompt'
+maybe chgrp 'bind' 'bind'
+maybe chmod 2755 'bind'
+maybe chmod 0644 'bind/bind.keys'
+maybe chmod 0644 'bind/db.0'
+maybe chmod 0644 'bind/db.127'
+maybe chmod 0644 'bind/db.255'
+maybe chmod 0644 'bind/db.empty'
+maybe chmod 0644 'bind/db.local'
+maybe chgrp 'bind' 'bind/named.conf'
+maybe chmod 0644 'bind/named.conf'
+maybe chgrp 'bind' 'bind/named.conf.default-zones'
+maybe chmod 0644 'bind/named.conf.default-zones'
+maybe chgrp 'bind' 'bind/named.conf.local'
+maybe chmod 0644 'bind/named.conf.local'
+maybe chgrp 'bind' 'bind/named.conf.options'
+maybe chmod 0644 'bind/named.conf.options'
+maybe chown 'bind' 'bind/rndc.key'
+maybe chgrp 'bind' 'bind/rndc.key'
+maybe chmod 0640 'bind/rndc.key'
+maybe chmod 0644 'bind/zones.rfc1918'
+maybe chmod 0644 'bindresvport.blacklist'
+maybe chmod 0755 'binfmt.d'
+maybe chmod 0755 'byobu'
+maybe chmod 0644 'byobu/backend'
+maybe chmod 0644 'byobu/socketdir'
+maybe chmod 0755 'ca-certificates'
+maybe chmod 0644 'ca-certificates.conf'
+maybe chmod 0755 'ca-certificates/update.d'
+maybe chmod 0755 'chrony'
+maybe chmod 0644 'chrony/chrony.conf'
+maybe chgrp '_chrony' 'chrony/chrony.keys'
+maybe chmod 0640 'chrony/chrony.keys'
+maybe chmod 0755 'chrony/conf.d'
+maybe chmod 0644 'chrony/conf.d/README'
+maybe chmod 0755 'chrony/sources.d'
+maybe chmod 0644 'chrony/sources.d/README'
+maybe chmod 0644 'colordiffrc'
+maybe chmod 0755 'console-setup'
+maybe chmod 0644 'console-setup/cached_Lat15-Fixed16.psf.gz'
+maybe chmod 0644 'console-setup/cached_UTF-8_del.kmap.gz'
+maybe chmod 0755 'console-setup/cached_setup_font.sh'
+maybe chmod 0755 'console-setup/cached_setup_keyboard.sh'
+maybe chmod 0755 'console-setup/cached_setup_terminal.sh'
+maybe chmod 0644 'console-setup/compose.ARMSCII-8.inc'
+maybe chmod 0644 'console-setup/compose.CP1251.inc'
+maybe chmod 0644 'console-setup/compose.CP1255.inc'
+maybe chmod 0644 'console-setup/compose.CP1256.inc'
+maybe chmod 0644 'console-setup/compose.GEORGIAN-ACADEMY.inc'
+maybe chmod 0644 'console-setup/compose.GEORGIAN-PS.inc'
+maybe chmod 0644 'console-setup/compose.IBM1133.inc'
+maybe chmod 0644 'console-setup/compose.ISIRI-3342.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-1.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-10.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-11.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-13.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-14.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-15.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-16.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-2.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-3.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-4.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-5.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-6.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-7.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-8.inc'
+maybe chmod 0644 'console-setup/compose.ISO-8859-9.inc'
+maybe chmod 0644 'console-setup/compose.KOI8-R.inc'
+maybe chmod 0644 'console-setup/compose.KOI8-U.inc'
+maybe chmod 0644 'console-setup/compose.TIS-620.inc'
+maybe chmod 0644 'console-setup/compose.VISCII.inc'
+maybe chmod 0644 'console-setup/remap.inc'
+maybe chmod 0755 'cron.d'
+maybe chmod 0644 'cron.d/.placeholder'
+maybe chmod 0644 'cron.d/backup'
+maybe chmod 0644 'cron.d/e2scrub_all'
+maybe chmod 0755 'cron.daily'
+maybe chmod 0644 'cron.daily/.placeholder'
+maybe chmod 0755 'cron.daily/apache2'
+maybe chmod 0755 'cron.daily/apt-compat'
+maybe chmod 0755 'cron.daily/dpkg'
+maybe chmod 0755 'cron.daily/etckeeper'
+maybe chmod 0755 'cron.daily/logrotate'
+maybe chmod 0755 'cron.daily/man-db'
+maybe chmod 0755 'cron.daily/plocate'
+maybe chmod 0755 'cron.hourly'
+maybe chmod 0644 'cron.hourly/.placeholder'
+maybe chmod 0755 'cron.monthly'
+maybe chmod 0644 'cron.monthly/.placeholder'
+maybe chmod 0755 'cron.weekly'
+maybe chmod 0644 'cron.weekly/.placeholder'
+maybe chmod 0755 'cron.weekly/man-db'
+maybe chmod 0755 'cron.yearly'
+maybe chmod 0644 'cron.yearly/.placeholder'
+maybe chmod 0644 'crontab'
+maybe chmod 0755 'cruft'
+maybe chmod 0755 'cruft/filters-unex'
+maybe chmod 0644 'cruft/filters-unex/etckeeper'
+maybe chmod 0755 'dbus-1'
+maybe chmod 0755 'dbus-1/session.d'
+maybe chmod 0755 'dbus-1/system.d'
+maybe chmod 0644 'debconf.conf'
+maybe chmod 0644 'debian_version'
+maybe chmod 0755 'default'
+maybe chmod 0644 'default/apache-htcacheclean'
+maybe chmod 0644 'default/chrony'
+maybe chmod 0644 'default/console-setup'
+maybe chmod 0644 'default/cron'
+maybe chmod 0644 'default/dbus'
+maybe chmod 0644 'default/grub'
+maybe chmod 0755 'default/grub.d'
+maybe chmod 0644 'default/grub.d/init-select.cfg'
+maybe chmod 0644 'default/haveged'
+maybe chmod 0644 'default/hwclock'
+maybe chmod 0644 'default/intel-microcode'
+maybe chmod 0644 'default/keyboard'
+maybe chmod 0644 'default/locale'
+maybe chmod 0644 'default/named'
+maybe chmod 0644 'default/networking'
+maybe chmod 0644 'default/nss'
+maybe chmod 0644 'default/rsync'
+maybe chmod 0644 'default/ssh'
+maybe chmod 0644 'default/useradd'
+maybe chmod 0644 'default/valkey-server'
+maybe chmod 0644 'deluser.conf'
+maybe chmod 0755 'dhcp'
+maybe chmod 0644 'dhcp/debug'
+maybe chmod 0755 'dhcp/dhclient-enter-hooks.d'
+maybe chmod 0755 'dhcp/dhclient-exit-hooks.d'
+maybe chmod 0644 'dhcp/dhclient-exit-hooks.d/chrony'
+maybe chmod 0644 'dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes'
+maybe chmod 0644 'dhcp/dhclient-exit-hooks.d/timesyncd'
+maybe chmod 0644 'dhcp/dhclient.conf'
+maybe chmod 0755 'dictionaries-common'
+maybe chmod 0644 'discover-modprobe.conf'
+maybe chmod 0755 'discover.conf.d'
+maybe chmod 0644 'discover.conf.d/00discover'
+maybe chmod 0755 'dpkg'
+maybe chmod 0644 'dpkg/dpkg.cfg'
+maybe chmod 0755 'dpkg/dpkg.cfg.d'
+maybe chmod 0755 'dpkg/origins'
+maybe chmod 0644 'dpkg/origins/debian'
+maybe chmod 0644 'e2scrub.conf'
+maybe chmod 0755 'emacs'
+maybe chmod 0755 'emacs/site-start.d'
+maybe chmod 0644 'emacs/site-start.d/50dictionaries-common.el'
+maybe chmod 0644 'emacs/site-start.d/50figlet.el'
+maybe chmod 0644 'environment'
+maybe chmod 0755 'etckeeper'
+maybe chmod 0755 'etckeeper/commit.d'
+maybe chmod 0755 'etckeeper/commit.d/10vcs-test'
+maybe chmod 0755 'etckeeper/commit.d/30bzr-add'
+maybe chmod 0755 'etckeeper/commit.d/30darcs-add'
+maybe chmod 0755 'etckeeper/commit.d/30git-add'
+maybe chmod 0755 'etckeeper/commit.d/30hg-addremove'
+maybe chmod 0755 'etckeeper/commit.d/50vcs-commit'
+maybe chmod 0755 'etckeeper/commit.d/99push'
+maybe chmod 0644 'etckeeper/commit.d/README'
+maybe chmod 0755 'etckeeper/daily'
+maybe chmod 0644 'etckeeper/etckeeper.conf'
+maybe chmod 0755 'etckeeper/init.d'
+maybe chmod 0755 'etckeeper/init.d/10restore-metadata'
+maybe chmod 0755 'etckeeper/init.d/20restore-etckeeper'
+maybe chmod 0755 'etckeeper/init.d/40vcs-init'
+maybe chmod 0755 'etckeeper/init.d/50vcs-ignore'
+maybe chmod 0755 'etckeeper/init.d/50vcs-perm'
+maybe chmod 0755 'etckeeper/init.d/50vcs-pre-commit-hook'
+maybe chmod 0755 'etckeeper/init.d/60darcs-deleted-symlinks'
+maybe chmod 0755 'etckeeper/init.d/70vcs-add'
+maybe chmod 0644 'etckeeper/init.d/README'
+maybe chmod 0755 'etckeeper/list-installed.d'
+maybe chmod 0755 'etckeeper/list-installed.d/50list-installed'
+maybe chmod 0755 'etckeeper/post-install.d'
+maybe chmod 0755 'etckeeper/post-install.d/50vcs-commit'
+maybe chmod 0644 'etckeeper/post-install.d/README'
+maybe chmod 0755 'etckeeper/pre-commit.d'
+maybe chmod 0755 'etckeeper/pre-commit.d/20warn-problem-files'
+maybe chmod 0755 'etckeeper/pre-commit.d/30store-metadata'
+maybe chmod 0644 'etckeeper/pre-commit.d/README'
+maybe chmod 0755 'etckeeper/pre-install.d'
+maybe chmod 0755 'etckeeper/pre-install.d/10packagelist'
+maybe chmod 0755 'etckeeper/pre-install.d/50uncommitted-changes'
+maybe chmod 0644 'etckeeper/pre-install.d/README'
+maybe chmod 0755 'etckeeper/unclean.d'
+maybe chmod 0755 'etckeeper/unclean.d/50test'
+maybe chmod 0644 'etckeeper/unclean.d/README'
+maybe chmod 0755 'etckeeper/uninit.d'
+maybe chmod 0755 'etckeeper/uninit.d/01prompt'
+maybe chmod 0755 'etckeeper/uninit.d/50remove-metadata'
+maybe chmod 0755 'etckeeper/uninit.d/50vcs-uninit'
+maybe chmod 0644 'etckeeper/uninit.d/README'
+maybe chmod 0755 'etckeeper/update-ignore.d'
+maybe chmod 0755 'etckeeper/update-ignore.d/01update-ignore'
+maybe chmod 0644 'etckeeper/update-ignore.d/README'
+maybe chmod 0755 'etckeeper/vcs.d'
+maybe chmod 0755 'etckeeper/vcs.d/50vcs-cmd'
+maybe chmod 0644 'ethertypes'
+maybe chmod 0755 'fonts'
+maybe chmod 0755 'fonts/conf.avail'
+maybe chmod 0644 'fonts/conf.avail/20-unhint-small-dejavu-lgc-sans-mono.conf'
+maybe chmod 0644 'fonts/conf.avail/20-unhint-small-dejavu-lgc-sans.conf'
+maybe chmod 0644 'fonts/conf.avail/20-unhint-small-dejavu-lgc-serif.conf'
+maybe chmod 0644 'fonts/conf.avail/20-unhint-small-dejavu-sans-mono.conf'
+maybe chmod 0644 'fonts/conf.avail/20-unhint-small-dejavu-sans.conf'
+maybe chmod 0644 'fonts/conf.avail/20-unhint-small-dejavu-serif.conf'
+maybe chmod 0644 'fonts/conf.avail/57-dejavu-sans-mono.conf'
+maybe chmod 0644 'fonts/conf.avail/57-dejavu-sans.conf'
+maybe chmod 0644 'fonts/conf.avail/57-dejavu-serif.conf'
+maybe chmod 0644 'fonts/conf.avail/58-dejavu-lgc-sans-mono.conf'
+maybe chmod 0644 'fonts/conf.avail/58-dejavu-lgc-sans.conf'
+maybe chmod 0644 'fonts/conf.avail/58-dejavu-lgc-serif.conf'
+maybe chmod 0755 'fonts/conf.d'
+maybe chmod 0644 'fonts/conf.d/README'
+maybe chmod 0644 'fonts/fonts.conf'
+maybe chmod 0644 'fstab'
+maybe chmod 0644 'fuse.conf'
+maybe chmod 0644 'gai.conf'
+maybe chmod 0644 'gprofng.rc'
+maybe chmod 0755 'groff'
+maybe chmod 0644 'groff/man.local'
+maybe chmod 0644 'groff/mdoc.local'
+maybe chmod 0644 'group'
+maybe chmod 0644 'group-'
+maybe chmod 0755 'grub.d'
+maybe chmod 0755 'grub.d/00_header'
+maybe chmod 0755 'grub.d/05_debian_theme'
+maybe chmod 0755 'grub.d/10_linux'
+maybe chmod 0755 'grub.d/20_linux_xen'
+maybe chmod 0755 'grub.d/30_os-prober'
+maybe chmod 0755 'grub.d/30_uefi-firmware'
+maybe chmod 0755 'grub.d/40_custom'
+maybe chmod 0755 'grub.d/41_custom'
+maybe chmod 0644 'grub.d/README'
+maybe chgrp 'shadow' 'gshadow'
+maybe chmod 0640 'gshadow'
+maybe chgrp 'shadow' 'gshadow-'
+maybe chmod 0640 'gshadow-'
+maybe chmod 0755 'gss'
+maybe chmod 0755 'gss/mech.d'
+maybe chmod 0644 'gssapi_mech.conf'
+maybe chmod 0644 'host.conf'
+maybe chmod 0644 'hostname'
+maybe chmod 0644 'hosts'
+maybe chmod 0644 'hosts.allow'
+maybe chmod 0644 'hosts.deny'
+maybe chmod 0755 'init.d'
+maybe chmod 0755 'init.d/apache-htcacheclean'
+maybe chmod 0755 'init.d/apache2'
+maybe chmod 0755 'init.d/apparmor'
+maybe chmod 0755 'init.d/atd'
+maybe chmod 0755 'init.d/chrony'
+maybe chmod 0755 'init.d/console-setup.sh'
+maybe chmod 0755 'init.d/cron'
+maybe chmod 0755 'init.d/dbus'
+maybe chmod 0755 'init.d/haveged'
+maybe chmod 0755 'init.d/hwclock.sh'
+maybe chmod 0755 'init.d/keyboard-setup.sh'
+maybe chmod 0755 'init.d/kmod'
+maybe chmod 0755 'init.d/mariadb'
+maybe chmod 0755 'init.d/named'
+maybe chmod 0755 'init.d/networking'
+maybe chmod 0755 'init.d/open-vm-tools'
+maybe chmod 0755 'init.d/postfix'
+maybe chmod 0755 'init.d/procps'
+maybe chmod 0755 'init.d/rsync'
+maybe chmod 0755 'init.d/screen-cleanup'
+maybe chmod 0755 'init.d/ssh'
+maybe chmod 0755 'init.d/sudo'
+maybe chmod 0755 'init.d/udev'
+maybe chmod 0755 'init.d/valkey-server'
+maybe chmod 0755 'init.d/x11-common'
+maybe chmod 0755 'initramfs-tools'
+maybe chmod 0755 'initramfs-tools/conf.d'
+maybe chmod 0644 'initramfs-tools/conf.d/driver-policy'
+maybe chmod 0644 'initramfs-tools/conf.d/resume'
+maybe chmod 0755 'initramfs-tools/hooks'
+maybe chmod 0644 'initramfs-tools/initramfs.conf'
+maybe chmod 0644 'initramfs-tools/modules'
+maybe chmod 0755 'initramfs-tools/scripts'
+maybe chmod 0755 'initramfs-tools/scripts/init-bottom'
+maybe chmod 0755 'initramfs-tools/scripts/init-premount'
+maybe chmod 0755 'initramfs-tools/scripts/init-top'
+maybe chmod 0755 'initramfs-tools/scripts/local-bottom'
+maybe chmod 0755 'initramfs-tools/scripts/local-premount'
+maybe chmod 0755 'initramfs-tools/scripts/local-top'
+maybe chmod 0755 'initramfs-tools/scripts/nfs-bottom'
+maybe chmod 0755 'initramfs-tools/scripts/nfs-premount'
+maybe chmod 0755 'initramfs-tools/scripts/nfs-top'
+maybe chmod 0755 'initramfs-tools/scripts/panic'
+maybe chmod 0644 'initramfs-tools/update-initramfs.conf'
+maybe chmod 0644 'inputrc'
+maybe chmod 0755 'insserv.conf.d'
+maybe chmod 0644 'insserv.conf.d/bind9'
+maybe chmod 0644 'insserv.conf.d/postfix'
+maybe chmod 0755 'iproute2'
+maybe chmod 0644 'iproute2/bpf_pinning'
+maybe chmod 0644 'iproute2/ematch_map'
+maybe chmod 0644 'iproute2/group'
+maybe chmod 0644 'iproute2/nl_protos'
+maybe chmod 0644 'iproute2/rt_dsfield'
+maybe chmod 0644 'iproute2/rt_protos'
+maybe chmod 0755 'iproute2/rt_protos.d'
+maybe chmod 0644 'iproute2/rt_protos.d/README'
+maybe chmod 0644 'iproute2/rt_realms'
+maybe chmod 0644 'iproute2/rt_scopes'
+maybe chmod 0644 'iproute2/rt_tables'
+maybe chmod 0755 'iproute2/rt_tables.d'
+maybe chmod 0644 'iproute2/rt_tables.d/README'
+maybe chmod 0755 'iptables'
+maybe chmod 0644 'issue'
+maybe chmod 0644 'issue.net'
+maybe chmod 0755 'kernel'
+maybe chmod 0644 'kernel-img.conf'
+maybe chmod 0755 'kernel/install.d'
+maybe chmod 0755 'kernel/postinst.d'
+maybe chmod 0755 'kernel/postinst.d/initramfs-tools'
+maybe chmod 0755 'kernel/postinst.d/zz-update-grub'
+maybe chmod 0755 'kernel/postrm.d'
+maybe chmod 0755 'kernel/postrm.d/initramfs-tools'
+maybe chmod 0755 'kernel/postrm.d/zz-update-grub'
+maybe chmod 0755 'kernel/preinst.d'
+maybe chmod 0755 'kernel/preinst.d/intel-microcode'
+maybe chmod 0644 'ld.so.conf'
+maybe chmod 0755 'ld.so.conf.d'
+maybe chmod 0644 'ld.so.conf.d/libc.conf'
+maybe chmod 0644 'ld.so.conf.d/x86_64-linux-gnu.conf'
+maybe chmod 0755 'ldap'
+maybe chmod 0644 'ldap/ldap.conf'
+maybe chmod 0644 'libaudit.conf'
+maybe chmod 0755 'libnl-3'
+maybe chmod 0644 'libnl-3/classid'
+maybe chmod 0644 'libnl-3/pktloc'
+maybe chmod 0755 'lighttpd'
+maybe chmod 0755 'lighttpd/conf-available'
+maybe chmod 0644 'lighttpd/conf-available/90-javascript-alias.conf'
+maybe chmod 0755 'lighttpd/conf-enabled'
+maybe chmod 0644 'locale.alias'
+maybe chmod 0644 'locale.gen'
+maybe chmod 0755 'logcheck'
+maybe chmod 0755 'logcheck/ignore.d.paranoid'
+maybe chmod 0644 'logcheck/ignore.d.paranoid/mariadb-server'
+maybe chmod 0755 'logcheck/ignore.d.server'
+maybe chmod 0644 'logcheck/ignore.d.server/gpg-agent'
+maybe chmod 0644 'logcheck/ignore.d.server/mariadb-server'
+maybe chmod 0755 'logcheck/ignore.d.server/netfilter-persistent'
+maybe chmod 0755 'logcheck/ignore.d.workstation'
+maybe chmod 0644 'logcheck/ignore.d.workstation/mariadb-server'
+maybe chmod 0644 'login.defs'
+maybe chmod 0644 'logrotate.conf'
+maybe chmod 0755 'logrotate.d'
+maybe chmod 0644 'logrotate.d/alternatives'
+maybe chmod 0644 'logrotate.d/apache2'
+maybe chmod 0644 'logrotate.d/apt'
+maybe chmod 0644 'logrotate.d/btmp'
+maybe chmod 0644 'logrotate.d/chrony'
+maybe chmod 0644 'logrotate.d/dpkg'
+maybe chmod 0644 'logrotate.d/mariadb'
+maybe chmod 0644 'logrotate.d/valkey-server'
+maybe chmod 0644 'logrotate.d/wtmp'
+maybe chmod 0755 'lvm'
+maybe chmod 0700 'lvm/backup'
+maybe chmod 0600 'lvm/backup/vg00'
+maybe chmod 0644 'lvm/lvm.conf'
+maybe chmod 0644 'lvm/lvmlocal.conf'
+maybe chmod 0755 'lvm/profile'
+maybe chmod 0644 'lvm/profile/cache-mq.profile'
+maybe chmod 0644 'lvm/profile/cache-smq.profile'
+maybe chmod 0644 'lvm/profile/command_profile_template.profile'
+maybe chmod 0644 'lvm/profile/lvmdbusd.profile'
+maybe chmod 0644 'lvm/profile/metadata_profile_template.profile'
+maybe chmod 0644 'lvm/profile/thin-generic.profile'
+maybe chmod 0644 'lvm/profile/thin-performance.profile'
+maybe chmod 0644 'lvm/profile/vdo-small.profile'
+maybe chmod 0444 'machine-id'
+maybe chmod 0644 'magic'
+maybe chmod 0644 'magic.mime'
+maybe chmod 0644 'mailcap'
+maybe chmod 0644 'mailcap.order'
+maybe chmod 0644 'mailname'
+maybe chmod 0644 'manpath.config'
+maybe chmod 0644 'mime.types'
+maybe chmod 0644 'mke2fs.conf'
+maybe chmod 0755 'modprobe.d'
+maybe chmod 0644 'modprobe.d/intel-microcode-blacklist.conf'
+maybe chmod 0644 'modules'
+maybe chmod 0755 'modules-load.d'
+maybe chmod 0644 'motd'
+maybe chmod 0644 'motd.orig'
+maybe chmod 0644 'motd.tail'
+maybe chmod 0755 'mysql'
+maybe chmod 0755 'mysql/conf.d'
+maybe chmod 0644 'mysql/conf.d/mysql.cnf'
+maybe chmod 0644 'mysql/conf.d/mysqldump.cnf'
+maybe chmod 0755 'mysql/debian-start'
+maybe chmod 0600 'mysql/debian.cnf'
+maybe chmod 0644 'mysql/mariadb.cnf'
+maybe chmod 0755 'mysql/mariadb.conf.d'
+maybe chmod 0644 'mysql/mariadb.conf.d/50-client.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/50-mysql-clients.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/50-mysqld_safe.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/50-server.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/60-galera.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/provider_bzip2.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/provider_lz4.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/provider_lzma.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/provider_lzo.cnf'
+maybe chmod 0644 'mysql/mariadb.conf.d/provider_snappy.cnf'
+maybe chmod 0644 'mysql/my.cnf.fallback'
+maybe chmod 0755 'nala'
+maybe chmod 0644 'nala/nala.conf'
+maybe chmod 0644 'nanorc'
+maybe chmod 0755 'needrestart'
+maybe chmod 0755 'needrestart/conf.d'
+maybe chmod 0755 'needrestart/hook.d'
+maybe chmod 0755 'needrestart/notify.d'
+maybe chmod 0755 'needrestart/restart.d'
+maybe chmod 0644 'netconfig'
+maybe chmod 0755 'network'
+maybe chmod 0755 'network/if-down.d'
+maybe chmod 0755 'network/if-down.d/bind9'
+maybe chmod 0755 'network/if-down.d/postfix'
+maybe chmod 0755 'network/if-down.d/resolved'
+maybe chmod 0755 'network/if-post-down.d'
+maybe chmod 0755 'network/if-post-down.d/chrony'
+maybe chmod 0755 'network/if-pre-up.d'
+maybe chmod 0755 'network/if-pre-up.d/ethtool'
+maybe chmod 0755 'network/if-up.d'
+maybe chmod 0755 'network/if-up.d/bind9'
+maybe chmod 0755 'network/if-up.d/chrony'
+maybe chmod 0755 'network/if-up.d/ethtool'
+maybe chmod 0755 'network/if-up.d/postfix'
+maybe chmod 0755 'network/if-up.d/resolved'
+maybe chmod 0644 'network/interfaces'
+maybe chmod 0755 'network/interfaces.d'
+maybe chmod 0644 'networks'
+maybe chmod 0755 'nftables.conf'
+maybe chmod 0644 'nsswitch.conf'
+maybe chmod 0755 'opt'
+maybe chmod 0644 'pam.conf'
+maybe chmod 0755 'pam.d'
+maybe chmod 0644 'pam.d/atd'
+maybe chmod 0644 'pam.d/chfn'
+maybe chmod 0644 'pam.d/chpasswd'
+maybe chmod 0644 'pam.d/chsh'
+maybe chmod 0644 'pam.d/common-account'
+maybe chmod 0644 'pam.d/common-auth'
+maybe chmod 0644 'pam.d/common-password'
+maybe chmod 0644 'pam.d/common-session'
+maybe chmod 0644 'pam.d/common-session-noninteractive'
+maybe chmod 0644 'pam.d/cron'
+maybe chmod 0644 'pam.d/login'
+maybe chmod 0644 'pam.d/newusers'
+maybe chmod 0644 'pam.d/other'
+maybe chmod 0644 'pam.d/passwd'
+maybe chmod 0644 'pam.d/runuser'
+maybe chmod 0644 'pam.d/runuser-l'
+maybe chmod 0644 'pam.d/sshd'
+maybe chmod 0644 'pam.d/su'
+maybe chmod 0644 'pam.d/su-l'
+maybe chmod 0644 'pam.d/sudo'
+maybe chmod 0644 'pam.d/sudo-i'
+maybe chmod 0644 'pam.d/vmtoolsd'
+maybe chmod 0644 'passwd'
+maybe chmod 0644 'passwd-'
+maybe chmod 0755 'perl'
+maybe chmod 0755 'perl/Net'
+maybe chmod 0644 'perl/Net/libnet.cfg'
+maybe chmod 0755 'postfix'
+maybe chmod 0644 'postfix/access'
+maybe chmod 0644 'postfix/access.db'
+maybe chmod 0644 'postfix/dynamicmaps.cf'
+maybe chmod 0755 'postfix/dynamicmaps.cf.d'
+maybe chmod 0644 'postfix/main.cf'
+maybe chmod 0644 'postfix/main.cf.proto'
+maybe chmod 0644 'postfix/master.cf'
+maybe chmod 0644 'postfix/master.cf.proto'
+maybe chmod 0755 'postfix/post-install'
+maybe chmod 0644 'postfix/postfix-files'
+maybe chmod 0755 'postfix/postfix-files.d'
+maybe chmod 0644 'postfix/postfix-files.d/cdb.files'
+maybe chmod 0644 'postfix/postfix-files.d/pcre.files'
+maybe chmod 0644 'postfix/postfix-files.d/sqlite.files'
+maybe chmod 0755 'postfix/postfix-script'
+maybe chmod 0755 'postfix/sasl'
+maybe chmod 0644 'postfix/virtual'
+maybe chmod 0644 'postfix/virtual.db'
+maybe chmod 0755 'ppp'
+maybe chmod 0755 'ppp/ip-down.d'
+maybe chmod 0755 'ppp/ip-down.d/bind9'
+maybe chmod 0755 'ppp/ip-down.d/chrony'
+maybe chmod 0755 'ppp/ip-down.d/postfix'
+maybe chmod 0755 'ppp/ip-up.d'
+maybe chmod 0755 'ppp/ip-up.d/bind9'
+maybe chmod 0755 'ppp/ip-up.d/chrony'
+maybe chmod 0755 'ppp/ip-up.d/postfix'
+maybe chmod 0644 'profile'
+maybe chmod 0755 'profile.d'
+maybe chmod 0644 'profile.d/Z97-byobu.sh'
+maybe chmod 0644 'profile.d/bash_completion.sh'
+maybe chmod 0644 'profile.d/fbrehm.sh'
+maybe chmod 0644 'profile.d/gawk.csh'
+maybe chmod 0644 'profile.d/gawk.sh'
+maybe chmod 0644 'protocols'
+maybe chmod 0755 'python3'
+maybe chmod 0755 'python3.11'
+maybe chmod 0644 'python3.11/sitecustomize.py'
+maybe chmod 0644 'python3/debian_config'
+maybe chmod 0755 'rc0.d'
+maybe chmod 0755 'rc1.d'
+maybe chmod 0755 'rc2.d'
+maybe chmod 0755 'rc3.d'
+maybe chmod 0755 'rc4.d'
+maybe chmod 0755 'rc5.d'
+maybe chmod 0755 'rc6.d'
+maybe chmod 0755 'rcS.d'
+maybe chmod 0644 'rearj.cfg'
+maybe chmod 0644 'reportbug.conf'
+maybe chmod 0644 'resolv.conf'
+maybe chmod 0755 'resolvconf'
+maybe chmod 0755 'resolvconf/update-libc.d'
+maybe chmod 0755 'resolvconf/update-libc.d/postfix'
+maybe chmod 0644 'rpc'
+maybe chmod 0755 'rsyslog.d'
+maybe chmod 0644 'rsyslog.d/postfix.conf'
+maybe chmod 0755 'runit'
+maybe chmod 0755 'runit/runsvdir'
+maybe chmod 0755 'runit/runsvdir/default'
+maybe chmod 0644 'screenrc'
+maybe chmod 0755 'security'
+maybe chmod 0644 'security/access.conf'
+maybe chmod 0644 'security/faillock.conf'
+maybe chmod 0644 'security/group.conf'
+maybe chmod 0644 'security/limits.conf'
+maybe chmod 0755 'security/limits.d'
+maybe chmod 0644 'security/namespace.conf'
+maybe chmod 0755 'security/namespace.d'
+maybe chmod 0755 'security/namespace.init'
+maybe chmod 0600 'security/opasswd'
+maybe chmod 0644 'security/pam_env.conf'
+maybe chmod 0644 'security/sepermit.conf'
+maybe chmod 0644 'security/time.conf'
+maybe chmod 0644 'security/user_map.conf'
+maybe chmod 0755 'selinux'
+maybe chmod 0644 'selinux/semanage.conf'
+maybe chmod 0644 'services'
+maybe chgrp 'shadow' 'shadow'
+maybe chmod 0640 'shadow'
+maybe chgrp 'shadow' 'shadow-'
+maybe chmod 0640 'shadow-'
+maybe chmod 0644 'shells'
+maybe chmod 0755 'skel'
+maybe chmod 0644 'skel/.bash_logout'
+maybe chmod 0644 'skel/.bashrc'
+maybe chmod 0644 'skel/.profile'
+maybe chmod 0755 'ssh'
+maybe chmod 0644 'ssh/moduli'
+maybe chmod 0644 'ssh/ssh_config'
+maybe chmod 0755 'ssh/ssh_config.d'
+maybe chmod 0600 'ssh/ssh_host_ecdsa_key'
+maybe chmod 0644 'ssh/ssh_host_ecdsa_key.pub'
+maybe chmod 0600 'ssh/ssh_host_ed25519_key'
+maybe chmod 0644 'ssh/ssh_host_ed25519_key.pub'
+maybe chmod 0600 'ssh/ssh_host_rsa_key'
+maybe chmod 0644 'ssh/ssh_host_rsa_key.pub'
+maybe chmod 0644 'ssh/sshd_config'
+maybe chmod 0755 'ssh/sshd_config.d'
+maybe chmod 0755 'ssl'
+maybe chmod 0755 'ssl/certs'
+maybe chmod 0644 'ssl/certs/ca-certificates.crt'
+maybe chmod 0644 'ssl/certs/ssl-cert-snakeoil.pem'
+maybe chmod 0644 'ssl/openssl.cnf'
+maybe chgrp 'ssl-cert' 'ssl/private'
+maybe chmod 0710 'ssl/private'
+maybe chgrp 'ssl-cert' 'ssl/private/ssl-cert-snakeoil.key'
+maybe chmod 0640 'ssl/private/ssl-cert-snakeoil.key'
+maybe chmod 0644 'subgid'
+maybe chmod 0644 'subgid-'
+maybe chmod 0644 'subuid'
+maybe chmod 0644 'subuid-'
+maybe chmod 0644 'sudo.conf'
+maybe chmod 0644 'sudo_logsrvd.conf'
+maybe chmod 0440 'sudoers'
+maybe chmod 0755 'sudoers.d'
+maybe chmod 0440 'sudoers.d/README'
+maybe chmod 0755 'sv'
+maybe chmod 0755 'sv/ssh'
+maybe chmod 0755 'sv/ssh/.meta'
+maybe chmod 0644 'sv/ssh/.meta/installed'
+maybe chmod 0755 'sv/ssh/finish'
+maybe chmod 0755 'sv/ssh/log'
+maybe chmod 0755 'sv/ssh/log/run'
+maybe chmod 0755 'sv/ssh/run'
+maybe chmod 0644 'sysctl.conf'
+maybe chmod 0755 'sysctl.d'
+maybe chmod 0644 'sysctl.d/README.sysctl'
+maybe chmod 0755 'systemd'
+maybe chmod 0644 'systemd/journald.conf'
+maybe chmod 0644 'systemd/logind.conf'
+maybe chmod 0755 'systemd/network'
+maybe chmod 0644 'systemd/networkd.conf'
+maybe chmod 0644 'systemd/pstore.conf'
+maybe chmod 0644 'systemd/sleep.conf'
+maybe chmod 0755 'systemd/system'
+maybe chmod 0644 'systemd/system.conf'
+maybe chmod 0755 'systemd/system/getty.target.wants'
+maybe chmod 0755 'systemd/system/getty@.service.d'
+maybe chmod 0644 'systemd/system/getty@.service.d/noclear.conf'
+maybe chmod 0755 'systemd/system/multi-user.target.wants'
+maybe chmod 0755 'systemd/system/network-online.target.wants'
+maybe chmod 0755 'systemd/system/open-vm-tools.service.requires'
+maybe chmod 0755 'systemd/system/sockets.target.wants'
+maybe chmod 0755 'systemd/system/sysinit.target.wants'
+maybe chmod 0755 'systemd/system/timers.target.wants'
+maybe chmod 0644 'systemd/system/tmp.mount'
+maybe chmod 0644 'systemd/timesyncd.conf'
+maybe chmod 0755 'systemd/user'
+maybe chmod 0644 'systemd/user.conf'
+maybe chmod 0755 'systemd/user/sockets.target.wants'
+maybe chmod 0755 'terminfo'
+maybe chmod 0644 'terminfo/README'
+maybe chmod 0644 'tigrc'
+maybe chmod 0644 'timezone'
+maybe chmod 0755 'tmpfiles.d'
+maybe chmod 0644 'tmpfiles.d/screen-cleanup.conf'
+maybe chmod 0644 'ucf.conf'
+maybe chmod 0755 'udev'
+maybe chmod 0755 'udev/hwdb.d'
+maybe chmod 0755 'udev/rules.d'
+maybe chmod 0644 'udev/udev.conf'
+maybe chmod 0755 'ufw'
+maybe chmod 0755 'ufw/applications.d'
+maybe chmod 0644 'ufw/applications.d/bind9'
+maybe chmod 0644 'ufw/applications.d/openssh-server'
+maybe chmod 0644 'ufw/applications.d/postfix'
+maybe chmod 0755 'update-motd.d'
+maybe chmod 0755 'update-motd.d/10-uname'
+maybe chmod 0755 'update-motd.d/20-release'
+maybe chmod 0755 'update-motd.d/40-tail'
+maybe chmod 0755 'update-motd.d/50-fortune'
+maybe chmod 0755 'update-motd.d/60-ddate'
+maybe chmod 0755 'update-motd.d/70-need-reboot'
+maybe chmod 0644 'updatedb.conf'
+maybe chown 'valkey' 'valkey'
+maybe chgrp 'valkey' 'valkey'
+maybe chmod 2770 'valkey'
+maybe chgrp 'valkey' 'valkey/valkey-6377.conf'
+maybe chmod 0640 'valkey/valkey-6377.conf'
+maybe chgrp 'valkey' 'valkey/valkey-6378.conf'
+maybe chmod 0640 'valkey/valkey-6378.conf'
+maybe chown 'valkey' 'valkey/valkey.conf'
+maybe chgrp 'valkey' 'valkey/valkey.conf'
+maybe chmod 0640 'valkey/valkey.conf'
+maybe chmod 0755 'vim'
+maybe chmod 0644 'vim/vimrc'
+maybe chmod 0644 'vim/vimrc.local'
+maybe chmod 0644 'vim/vimrc.tiny'
+maybe chmod 0755 'vmware-tools'
+maybe chmod 0755 'vmware-tools/poweroff-vm-default'
+maybe chmod 0755 'vmware-tools/poweron-vm-default'
+maybe chmod 0755 'vmware-tools/resume-vm-default'
+maybe chmod 0755 'vmware-tools/scripts'
+maybe chmod 0755 'vmware-tools/scripts/vmware'
+maybe chmod 0755 'vmware-tools/scripts/vmware/network'
+maybe chmod 0644 'vmware-tools/statechange.subr'
+maybe chmod 0755 'vmware-tools/suspend-vm-default'
+maybe chmod 0644 'vmware-tools/tools.conf'
+maybe chmod 0644 'vmware-tools/tools.conf.example'
+maybe chmod 0755 'vmware-tools/vgauth'
+maybe chmod 0644 'vmware-tools/vgauth.conf'
+maybe chmod 0755 'vmware-tools/vgauth/schemas'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/XMLSchema-hasFacetAndProperty.xsd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/XMLSchema-instance.xsd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/XMLSchema.dtd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/XMLSchema.xsd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/catalog.xml'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/datatypes.dtd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/saml-schema-assertion-2.0.xsd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/xenc-schema.xsd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/xml.xsd'
+maybe chmod 0644 'vmware-tools/vgauth/schemas/xmldsig-core-schema.xsd'
+maybe chmod 0644 'wgetrc'
+maybe chmod 0644 'xattr.conf'
+maybe chmod 0755 'xdg'
+maybe chmod 0755 'xdg/autostart'
+maybe chmod 0644 'xdg/autostart/xdg-user-dirs.desktop'
+maybe chmod 0755 'xdg/systemd'
+maybe chmod 0644 'xdg/user-dirs.conf'
+maybe chmod 0644 'xdg/user-dirs.defaults'
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..9e35fcf
--- /dev/null
@@ -0,0 +1,55 @@
+# begin section managed by etckeeper (do not edit this section by hand)
+
+# new and old versions of conffiles, stored by dpkg
+*.dpkg-*
+# new and old versions of conffiles, stored by ucf
+*.ucf-*
+
+# old versions of files
+*.old
+
+# mount(8) records system state here, no need to store these
+blkid.tab
+blkid.tab.old
+
+# some other files in /etc that typically do not need to be tracked
+nologin
+ld.so.cache
+prelink.cache
+mtab
+mtab.fuselock
+.pwd.lock
+*.LOCK
+network/run
+adjtime
+udev/hwdb.bin
+lvm/cache
+lvm/archive
+X11/xdm/authdir/authfiles/*
+ntp.conf.dhcp
+.initctl
+webmin/fsdump/*.status
+webmin/webmin/oscache
+apparmor.d/cache/*
+service/*/supervise/*
+service/*/log/supervise/*
+sv/*/supervise/*
+sv/*/log/supervise/*
+*.elc
+*.pyc
+*.pyo
+init.d/.depend.*
+openvpn/openvpn-status.log
+cups/subscriptions.conf
+cups/subscriptions.conf.O
+fake-hwclock.data
+check_mk/logwatch.state
+
+# editor temp files
+*~
+.*.sw?
+.sw?
+\#*\#
+DEADJOE
+
+# end section managed by etckeeper
diff --git a/X11/Xreset b/X11/Xreset
new file mode 100755 (executable)
index 0000000..7a0974c
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# /etc/X11/Xreset
+#
+# global Xreset file -- for use by display managers
+
+# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $
+
+set -e
+
+PROGNAME=Xreset
+SYSSESSIONDIR=/etc/X11/Xreset.d
+
+if [ ! -d "$SYSSESSIONDIR" ]; then
+  # Nothing to do, exiting
+  exit 0
+fi
+
+# use run-parts to source every file in the session directory; we source
+# instead of executing so that the variables and functions defined above
+# are available to the scripts, and so that they can pass variables to each
+# other
+SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
+if [ -n "$SESSIONFILES" ]; then
+  set +e
+  for SESSIONFILE in $SESSIONFILES; do
+    . $SESSIONFILE
+  done
+  set -e
+fi
+
+exit 0
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/X11/Xreset.d/README b/X11/Xreset.d/README
new file mode 100644 (file)
index 0000000..3c03f42
--- /dev/null
@@ -0,0 +1,4 @@
+# Scripts in this directory are executed as root when a user log out from
+# a display manager using /etc/X11/Xreset.
+# The username of the user logging out is provided in the $USER environment
+# variable.
diff --git a/X11/Xresources/x11-common b/X11/Xresources/x11-common
new file mode 100644 (file)
index 0000000..7641207
--- /dev/null
@@ -0,0 +1,10 @@
+! $Id$
+
+! load color-specific resources for clients that have them
+#ifdef COLOR
+*customization: -color
+#endif
+
+! make Xaw (Athena widget set) clients understand the delete key
+! this causes problems with some non-Xaw apps, use with care
+! *Text.translations: #override ~Shift ~Meta <Key>Delete: delete-next-character()
diff --git a/X11/Xsession b/X11/Xsession
new file mode 100755 (executable)
index 0000000..3740ba7
--- /dev/null
@@ -0,0 +1,131 @@
+#!/bin/sh
+#
+# /etc/X11/Xsession
+#
+# global Xsession file -- used by display managers and xinit (startx)
+
+# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $
+
+set -e
+
+PROGNAME=Xsession
+
+message () {
+  # pretty-print messages of arbitrary length; use xmessage if it
+  # is available and $DISPLAY is set
+  MESSAGE="$PROGNAME: $*"
+  echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2
+  if [ -n "$DISPLAY" ] && command -v xmessage > /dev/null 2>&1; then
+    echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file -
+  fi
+}
+
+message_nonl () {
+  # pretty-print messages of arbitrary length (no trailing newline); use
+  # xmessage if it is available and $DISPLAY is set
+  MESSAGE="$PROGNAME: $*"
+  echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2;
+  if [ -n "$DISPLAY" ] && command -v xmessage > /dev/null 2>&1; then
+    echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file -
+  fi
+}
+
+errormsg () {
+  # exit script with error
+  message "$*"
+  exit 1
+}
+
+internal_errormsg () {
+  # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
+  # One big call to message() for the sake of xmessage; if we had two then
+  # the user would have dismissed the error we want reported before seeing the
+  # request to report it.
+  errormsg "$*" \
+           "Please report the installed version of the \"x11-common\"" \
+           "package and the complete text of this error message to" \
+           "<debian-x@lists.debian.org>."
+}
+
+# initialize variables for use by all session scripts
+
+OPTIONFILE=/etc/X11/Xsession.options
+
+SYSRESOURCES=/etc/X11/Xresources
+USRRESOURCES=$HOME/.Xresources
+
+SYSSESSIONDIR=/etc/X11/Xsession.d
+USERXSESSION=$HOME/.xsession
+USERXSESSIONRC=$HOME/.xsessionrc
+ALTUSERXSESSION=$HOME/.Xsession
+ERRFILE=$HOME/.xsession-errors
+
+OPTIONS="$(
+  if [ -r "$OPTIONFILE" ]; then
+    cat "$OPTIONFILE"
+  fi
+  if [ -d /etc/X11/Xsession.options.d ]; then
+    run-parts --list --regex '\.conf$' /etc/X11/Xsession.options.d | xargs -d '\n' cat
+  fi
+)"
+
+has_option() {
+  # Ensure that a later no-foo overrides an earlier foo
+  if [ "$(echo "$OPTIONS" | grep -Eo "^(no-)?$1\>" | tail -n 1)" = "$1" ]; then
+    return 0
+  else
+    return 1
+  fi
+}
+
+# attempt to create an error file; abort if we cannot
+if (umask 077 && touch "$ERRFILE") 2> /dev/null && [ -w "$ERRFILE" ] &&
+  [ ! -L "$ERRFILE" ]; then
+  chmod 600 "$ERRFILE"
+elif ERRFILE=$(mktemp 2> /dev/null); then
+  if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
+    message "warning: unable to symlink \"$TMPDIR/xsession-$USER\" to" \
+             "\"$ERRFILE\"; look for session log/errors in" \
+             "\"$TMPDIR/xsession-$USER\"."
+  fi
+else
+  errormsg "unable to create X session log/error file; aborting."
+fi
+
+exec >>"$ERRFILE" 2>&1
+
+echo "$PROGNAME: X session started for $LOGNAME at $(date)"
+
+# sanity check; is our session script directory present?
+if [ ! -d "$SYSSESSIONDIR" ]; then
+  errormsg "no \"$SYSSESSIONDIR\" directory found; aborting."
+fi
+
+# Attempt to create a file of non-zero length in /tmp; a full filesystem can
+# cause mysterious X session failures.  We do not use touch, :, or test -w
+# because they won't actually create a file with contents.  We also let standard
+# error from mktemp and echo go to the error file to aid the user in
+# determining what went wrong.
+WRITE_TEST=$(mktemp)
+if ! echo "*" >>"$WRITE_TEST"; then
+  message "warning: unable to write to ${WRITE_TEST%/*}; X session may exit" \
+          "with an error"
+fi
+rm -f "$WRITE_TEST"
+
+# use run-parts to source every file in the session directory; we source
+# instead of executing so that the variables and functions defined above
+# are available to the scripts, and so that they can pass variables to each
+# other
+SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
+if [ -n "$SESSIONFILES" ]; then
+  set +e
+  for SESSIONFILE in $SESSIONFILES; do
+    . $SESSIONFILE
+  done
+  set -e
+fi
+
+exit 0
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/X11/Xsession.d/20dbus_xdg-runtime b/X11/Xsession.d/20dbus_xdg-runtime
new file mode 100644 (file)
index 0000000..2404378
--- /dev/null
@@ -0,0 +1,28 @@
+# vim:set ft=sh sw=2 sts=2 et:
+
+if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && [ -n "$XDG_RUNTIME_DIR" ] && \
+    [ "$XDG_RUNTIME_DIR" = "/run/user/`id -u`" ] && \
+    [ -S "$XDG_RUNTIME_DIR/bus" ]; then
+  # We are under systemd-logind or something remarkably similar, and
+  # a user-session socket has already been set up.
+  #
+  # Be nice to non-libdbus, non-sd-bus implementations by using
+  # that as the session bus address in the environment. The check for
+  # XDG_RUNTIME_DIR = "/run/user/`id -u`" is because we know that
+  # form of the address, from systemd-logind, doesn't need escaping,
+  # whereas arbitrary addresses might.
+  DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus"
+  export DBUS_SESSION_BUS_ADDRESS
+fi
+
+if [ -x "/usr/bin/dbus-update-activation-environment" ]; then
+  # tell dbus-daemon --session (and systemd --user, if running)
+  # to put a minimal subset of the Xsession's environment in activated
+  # services' environments
+  dbus-update-activation-environment --verbose --systemd \
+    DBUS_SESSION_BUS_ADDRESS \
+    DISPLAY \
+    XAUTHORITY \
+    XDG_CURRENT_DESKTOP \
+    ${NULL+}
+fi
diff --git a/X11/Xsession.d/20x11-common_process-args b/X11/Xsession.d/20x11-common_process-args
new file mode 100644 (file)
index 0000000..3ccea2e
--- /dev/null
@@ -0,0 +1,58 @@
+# $Id: 20x11-common_process-args 305 2005-07-03 18:51:43Z dnusinow $
+
+# This file is sourced by Xsession(5), not executed.
+
+# Determine how many arguments were provided.
+case $# in
+  0)
+    # No arguments given; use default behavior.
+    ;;
+  1)
+    # One argument given; see what it was.
+    case "$1" in
+      failsafe)
+        # Failsafe session was requested.
+        if has_option allow-failsafe; then
+          if [ -e /usr/bin/x-terminal-emulator ]; then
+            if [ -x /usr/bin/x-terminal-emulator ]; then
+              exec x-terminal-emulator -geometry +1+1
+            else
+              # fatal error
+              errormsg "unable to launch failsafe X session ---" \
+                       "x-terminal-emulator not executable; aborting."
+            fi
+          else
+            # fatal error
+            errormsg "unable to launch failsafe X session ---" \
+                     "x-terminal-emulator not found; aborting."
+          fi
+        fi
+        ;;
+      default)
+        # Default behavior was requested.
+        ;;
+      *)
+        # Specific program was requested.
+        STARTUP_FULL_PATH=$(command -v "${1%% *}" || true)
+        if [ -n "$STARTUP_FULL_PATH" ] && [ -e "$STARTUP_FULL_PATH" ]; then
+          if [ -x "$STARTUP_FULL_PATH" ]; then
+            STARTUP="$1"
+          else
+            message "unable to launch \"$1\" X session ---" \
+                    "\"$1\" not executable; falling back to default session."
+          fi
+        else
+          message "unable to launch \"$1\" X session ---" \
+                  "\"$1\" not found; falling back to default session."
+        fi
+        ;;
+    esac
+    ;;
+  *)
+    # More than one argument given; we don't know what to do.
+    message "unsupported number of arguments ($#); falling back to default" \
+            "session."
+    ;;
+esac
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/X11/Xsession.d/30x11-common_xresources b/X11/Xsession.d/30x11-common_xresources
new file mode 100644 (file)
index 0000000..c3f53a8
--- /dev/null
@@ -0,0 +1,26 @@
+# $Id: 30x11-common_xresources 305 2005-07-03 18:51:43Z dnusinow $
+
+# This file is sourced by Xsession(5), not executed.
+
+# If xrdb (from xbase-clients) is installed, merge system-wide X resources.
+# Then merge the user's X resources, if the options file is so configured.
+if [ -d "$SYSRESOURCES" ] && type xrdb >/dev/null 2>&1; then
+  RESOURCEFILES=$(run-parts --list $SYSRESOURCES)
+  if [ -n "$RESOURCEFILES" ]; then
+    for RESOURCEFILE in $RESOURCEFILES; do
+      xrdb -merge $RESOURCEFILE
+    done
+  fi
+fi
+
+if has_option allow-user-resources && [ -f "$USRRESOURCES" ]; then
+  if type xrdb >/dev/null 2>&1; then
+    xrdb -merge $USRRESOURCES
+  else
+    # Comment out this command if you desire a legacy-free X environment, and find
+    # the warning spurious.
+    message "warning: xrdb command not found; X resources not merged."
+  fi
+fi
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/X11/Xsession.d/35x11-common_xhost-local b/X11/Xsession.d/35x11-common_xhost-local
new file mode 100644 (file)
index 0000000..d127a6c
--- /dev/null
@@ -0,0 +1,10 @@
+# This file is sourced by Xsession(5), not executed.
+
+# If xhost (from x11-xserver-utils) is installed, use it to give access 
+# to the X server to any process from the same user on the local host.
+# Unlike other uses of xhost, this is safe since the kernel can check 
+# the actual owner of the calling process.
+
+if type xhost >/dev/null 2>&1; then
+  xhost +si:localuser:$(id -un) || :
+fi
diff --git a/X11/Xsession.d/40x11-common_xsessionrc b/X11/Xsession.d/40x11-common_xsessionrc
new file mode 100644 (file)
index 0000000..305f363
--- /dev/null
@@ -0,0 +1,6 @@
+# This file is sourced by Xsession(5), not executed.
+
+#Source user defined xsessionrc (locales and other environment variables)
+if [ -r "$USERXSESSIONRC" ]; then
+  . "$USERXSESSIONRC"
+fi
diff --git a/X11/Xsession.d/50x11-common_determine-startup b/X11/Xsession.d/50x11-common_determine-startup
new file mode 100644 (file)
index 0000000..4e13505
--- /dev/null
@@ -0,0 +1,47 @@
+# $Id: 50x11-common_determine-startup 305 2005-07-03 18:51:43Z dnusinow $
+
+# This file is sourced by Xsession(5), not executed.
+
+# If no X session startup program was passed to the Xsession script as an
+# argument (e.g., by the display manager), or if that program was not
+# executable, fall back to looking for a user's custom X session script, if
+# allowed by the options file.
+if [ -z "$STARTUP" ]; then
+  if has_option allow-user-xsession; then
+    for STARTUPFILE in "$USERXSESSION" "$ALTUSERXSESSION"; do
+      if [ -e "$STARTUPFILE" ]; then
+        if [ -x "$STARTUPFILE" ]; then
+          STARTUP="$STARTUPFILE"
+        else
+          shell=${SHELL:-sh}
+          STARTUP="$shell $STARTUPFILE"
+        fi
+        break
+      fi
+    done
+  fi
+fi
+
+# If there is still nothing to use for a startup program, try the system
+# default session manager, window manager, and terminal emulator.
+if [ -z "$STARTUP" ]; then
+  if [ -x /usr/bin/x-session-manager ]; then
+    STARTUP=x-session-manager
+  elif [ -x /usr/bin/x-window-manager ]; then
+    STARTUP=x-window-manager
+  elif [ -x /usr/bin/x-terminal-emulator ]; then
+    STARTUP=x-terminal-emulator
+  fi
+fi
+
+# If we still have not found a startup program, give up.
+if [ -z "$STARTUP" ]; then
+  ERRMSG="unable to start X session ---"
+  if has_option allow-user-xsession; then
+    ERRMSG="$ERRMSG no \"$USERXSESSION\" file, no \"$ALTUSERXSESSION\" file,"
+  fi
+  errormsg "$ERRMSG no session managers, no window managers, and no terminal" \
+           "emulators found; aborting."
+fi
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/X11/Xsession.d/90gpg-agent b/X11/Xsession.d/90gpg-agent
new file mode 100644 (file)
index 0000000..8b45b05
--- /dev/null
@@ -0,0 +1,22 @@
+# On systems with systemd running, we expect the agent to be launched
+# via systemd's user mode (see
+# /usr/lib/systemd/user/gpg-agent.{socket,service} and
+# systemd.unit(5)).  This allows systemd to clean up the agent
+# automatically at logout.
+
+# If systemd is absent from your system, or you do not permit it to
+# run in user mode, then you may need to manually launch gpg-agent
+# from your session initialization with something like "gpgconf
+# --launch gpg-agent"
+
+# Nonetheless, ssh and older versions of gpg require environment
+# variables to be set in order to find the agent, so we will set those
+# here.
+
+agent_sock=$(gpgconf --list-dirs agent-socket)
+export GPG_AGENT_INFO=${agent_sock}:0:1
+if [ -n "$(gpgconf --list-options gpg-agent | \
+      awk -F: '/^enable-ssh-support:/{ print $10 }')" ]; then
+    export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+fi
+
diff --git a/X11/Xsession.d/90x11-common_ssh-agent b/X11/Xsession.d/90x11-common_ssh-agent
new file mode 100644 (file)
index 0000000..70bd01b
--- /dev/null
@@ -0,0 +1,15 @@
+# $Id: 90x11-common_ssh-agent 305 2005-07-03 18:51:43Z dnusinow $
+
+# This file is sourced by Xsession(5), not executed.
+
+STARTSSH=
+SSHAGENT=/usr/bin/ssh-agent
+SSHAGENTARGS=
+
+if has_option use-ssh-agent; then
+  if [ -x "$SSHAGENT" ] && [ -z "$SSH_AUTH_SOCK" ]; then
+    STARTUP="$SSHAGENT $SSHAGENTARGS ${TMPDIR:+env TMPDIR=$TMPDIR} $STARTUP"
+  fi
+fi
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/X11/Xsession.d/99x11-common_start b/X11/Xsession.d/99x11-common_start
new file mode 100644 (file)
index 0000000..36a9652
--- /dev/null
@@ -0,0 +1,7 @@
+# $Id: 99x11-common_start 305 2005-07-03 18:51:43Z dnusinow $
+
+# This file is sourced by Xsession(5), not executed.
+
+exec $STARTUP
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/X11/Xsession.options b/X11/Xsession.options
new file mode 100644 (file)
index 0000000..fc45bf9
--- /dev/null
@@ -0,0 +1,9 @@
+# $Id: Xsession.options 189 2005-06-11 00:04:27Z branden $
+#
+# configuration options for /etc/X11/Xsession
+# See Xsession.options(5) for an explanation of the available options.
+allow-failsafe
+allow-user-resources
+allow-user-xsession
+use-ssh-agent
+use-session-dbus
diff --git a/X11/rgb.txt b/X11/rgb.txt
new file mode 100644 (file)
index 0000000..b9e56c6
--- /dev/null
@@ -0,0 +1,754 @@
+! $Xorg: rgb.txt,v 1.3 2000/08/17 19:54:00 cpqbld Exp $
+255 250 250            snow
+248 248 255            ghost white
+248 248 255            GhostWhite
+245 245 245            white smoke
+245 245 245            WhiteSmoke
+220 220 220            gainsboro
+255 250 240            floral white
+255 250 240            FloralWhite
+253 245 230            old lace
+253 245 230            OldLace
+250 240 230            linen
+250 235 215            antique white
+250 235 215            AntiqueWhite
+255 239 213            papaya whip
+255 239 213            PapayaWhip
+255 235 205            blanched almond
+255 235 205            BlanchedAlmond
+255 228 196            bisque
+255 218 185            peach puff
+255 218 185            PeachPuff
+255 222 173            navajo white
+255 222 173            NavajoWhite
+255 228 181            moccasin
+255 248 220            cornsilk
+255 255 240            ivory
+255 250 205            lemon chiffon
+255 250 205            LemonChiffon
+255 245 238            seashell
+240 255 240            honeydew
+245 255 250            mint cream
+245 255 250            MintCream
+240 255 255            azure
+240 248 255            alice blue
+240 248 255            AliceBlue
+230 230 250            lavender
+255 240 245            lavender blush
+255 240 245            LavenderBlush
+255 228 225            misty rose
+255 228 225            MistyRose
+255 255 255            white
+  0   0   0            black
+ 47  79  79            dark slate gray
+ 47  79  79            DarkSlateGray
+ 47  79  79            dark slate grey
+ 47  79  79            DarkSlateGrey
+105 105 105            dim gray
+105 105 105            DimGray
+105 105 105            dim grey
+105 105 105            DimGrey
+112 128 144            slate gray
+112 128 144            SlateGray
+112 128 144            slate grey
+112 128 144            SlateGrey
+119 136 153            light slate gray
+119 136 153            LightSlateGray
+119 136 153            light slate grey
+119 136 153            LightSlateGrey
+190 190 190            gray
+190 190 190            grey
+211 211 211            light grey
+211 211 211            LightGrey
+211 211 211            light gray
+211 211 211            LightGray
+ 25  25 112            midnight blue
+ 25  25 112            MidnightBlue
+  0   0 128            navy
+  0   0 128            navy blue
+  0   0 128            NavyBlue
+100 149 237            cornflower blue
+100 149 237            CornflowerBlue
+ 72  61 139            dark slate blue
+ 72  61 139            DarkSlateBlue
+106  90 205            slate blue
+106  90 205            SlateBlue
+123 104 238            medium slate blue
+123 104 238            MediumSlateBlue
+132 112 255            light slate blue
+132 112 255            LightSlateBlue
+  0   0 205            medium blue
+  0   0 205            MediumBlue
+ 65 105 225            royal blue
+ 65 105 225            RoyalBlue
+  0   0 255            blue
+ 30 144 255            dodger blue
+ 30 144 255            DodgerBlue
+  0 191 255            deep sky blue
+  0 191 255            DeepSkyBlue
+135 206 235            sky blue
+135 206 235            SkyBlue
+135 206 250            light sky blue
+135 206 250            LightSkyBlue
+ 70 130 180            steel blue
+ 70 130 180            SteelBlue
+176 196 222            light steel blue
+176 196 222            LightSteelBlue
+173 216 230            light blue
+173 216 230            LightBlue
+176 224 230            powder blue
+176 224 230            PowderBlue
+175 238 238            pale turquoise
+175 238 238            PaleTurquoise
+  0 206 209            dark turquoise
+  0 206 209            DarkTurquoise
+ 72 209 204            medium turquoise
+ 72 209 204            MediumTurquoise
+ 64 224 208            turquoise
+  0 255 255            cyan
+224 255 255            light cyan
+224 255 255            LightCyan
+ 95 158 160            cadet blue
+ 95 158 160            CadetBlue
+102 205 170            medium aquamarine
+102 205 170            MediumAquamarine
+127 255 212            aquamarine
+  0 100   0            dark green
+  0 100   0            DarkGreen
+ 85 107  47            dark olive green
+ 85 107  47            DarkOliveGreen
+143 188 143            dark sea green
+143 188 143            DarkSeaGreen
+ 46 139  87            sea green
+ 46 139  87            SeaGreen
+ 60 179 113            medium sea green
+ 60 179 113            MediumSeaGreen
+ 32 178 170            light sea green
+ 32 178 170            LightSeaGreen
+152 251 152            pale green
+152 251 152            PaleGreen
+  0 255 127            spring green
+  0 255 127            SpringGreen
+124 252   0            lawn green
+124 252   0            LawnGreen
+  0 255   0            green
+127 255   0            chartreuse
+  0 250 154            medium spring green
+  0 250 154            MediumSpringGreen
+173 255  47            green yellow
+173 255  47            GreenYellow
+ 50 205  50            lime green
+ 50 205  50            LimeGreen
+154 205  50            yellow green
+154 205  50            YellowGreen
+ 34 139  34            forest green
+ 34 139  34            ForestGreen
+107 142  35            olive drab
+107 142  35            OliveDrab
+189 183 107            dark khaki
+189 183 107            DarkKhaki
+240 230 140            khaki
+238 232 170            pale goldenrod
+238 232 170            PaleGoldenrod
+250 250 210            light goldenrod yellow
+250 250 210            LightGoldenrodYellow
+255 255 224            light yellow
+255 255 224            LightYellow
+255 255   0            yellow
+255 215   0            gold
+238 221 130            light goldenrod
+238 221 130            LightGoldenrod
+218 165  32            goldenrod
+184 134  11            dark goldenrod
+184 134  11            DarkGoldenrod
+188 143 143            rosy brown
+188 143 143            RosyBrown
+205  92  92            indian red
+205  92  92            IndianRed
+139  69  19            saddle brown
+139  69  19            SaddleBrown
+160  82  45            sienna
+205 133  63            peru
+222 184 135            burlywood
+245 245 220            beige
+245 222 179            wheat
+244 164  96            sandy brown
+244 164  96            SandyBrown
+210 180 140            tan
+210 105  30            chocolate
+178  34  34            firebrick
+165  42  42            brown
+233 150 122            dark salmon
+233 150 122            DarkSalmon
+250 128 114            salmon
+255 160 122            light salmon
+255 160 122            LightSalmon
+255 165   0            orange
+255 140   0            dark orange
+255 140   0            DarkOrange
+255 127  80            coral
+240 128 128            light coral
+240 128 128            LightCoral
+255  99  71            tomato
+255  69   0            orange red
+255  69   0            OrangeRed
+255   0   0            red
+255 105 180            hot pink
+255 105 180            HotPink
+255  20 147            deep pink
+255  20 147            DeepPink
+255 192 203            pink
+255 182 193            light pink
+255 182 193            LightPink
+219 112 147            pale violet red
+219 112 147            PaleVioletRed
+176  48  96            maroon
+199  21 133            medium violet red
+199  21 133            MediumVioletRed
+208  32 144            violet red
+208  32 144            VioletRed
+255   0 255            magenta
+238 130 238            violet
+221 160 221            plum
+218 112 214            orchid
+186  85 211            medium orchid
+186  85 211            MediumOrchid
+153  50 204            dark orchid
+153  50 204            DarkOrchid
+148   0 211            dark violet
+148   0 211            DarkViolet
+138  43 226            blue violet
+138  43 226            BlueViolet
+160  32 240            purple
+147 112 219            medium purple
+147 112 219            MediumPurple
+216 191 216            thistle
+255 250 250            snow1
+238 233 233            snow2
+205 201 201            snow3
+139 137 137            snow4
+255 245 238            seashell1
+238 229 222            seashell2
+205 197 191            seashell3
+139 134 130            seashell4
+255 239 219            AntiqueWhite1
+238 223 204            AntiqueWhite2
+205 192 176            AntiqueWhite3
+139 131 120            AntiqueWhite4
+255 228 196            bisque1
+238 213 183            bisque2
+205 183 158            bisque3
+139 125 107            bisque4
+255 218 185            PeachPuff1
+238 203 173            PeachPuff2
+205 175 149            PeachPuff3
+139 119 101            PeachPuff4
+255 222 173            NavajoWhite1
+238 207 161            NavajoWhite2
+205 179 139            NavajoWhite3
+139 121         94             NavajoWhite4
+255 250 205            LemonChiffon1
+238 233 191            LemonChiffon2
+205 201 165            LemonChiffon3
+139 137 112            LemonChiffon4
+255 248 220            cornsilk1
+238 232 205            cornsilk2
+205 200 177            cornsilk3
+139 136 120            cornsilk4
+255 255 240            ivory1
+238 238 224            ivory2
+205 205 193            ivory3
+139 139 131            ivory4
+240 255 240            honeydew1
+224 238 224            honeydew2
+193 205 193            honeydew3
+131 139 131            honeydew4
+255 240 245            LavenderBlush1
+238 224 229            LavenderBlush2
+205 193 197            LavenderBlush3
+139 131 134            LavenderBlush4
+255 228 225            MistyRose1
+238 213 210            MistyRose2
+205 183 181            MistyRose3
+139 125 123            MistyRose4
+240 255 255            azure1
+224 238 238            azure2
+193 205 205            azure3
+131 139 139            azure4
+131 111 255            SlateBlue1
+122 103 238            SlateBlue2
+105  89 205            SlateBlue3
+ 71  60 139            SlateBlue4
+ 72 118 255            RoyalBlue1
+ 67 110 238            RoyalBlue2
+ 58  95 205            RoyalBlue3
+ 39  64 139            RoyalBlue4
+  0   0 255            blue1
+  0   0 238            blue2
+  0   0 205            blue3
+  0   0 139            blue4
+ 30 144 255            DodgerBlue1
+ 28 134 238            DodgerBlue2
+ 24 116 205            DodgerBlue3
+ 16  78 139            DodgerBlue4
+ 99 184 255            SteelBlue1
+ 92 172 238            SteelBlue2
+ 79 148 205            SteelBlue3
+ 54 100 139            SteelBlue4
+  0 191 255            DeepSkyBlue1
+  0 178 238            DeepSkyBlue2
+  0 154 205            DeepSkyBlue3
+  0 104 139            DeepSkyBlue4
+135 206 255            SkyBlue1
+126 192 238            SkyBlue2
+108 166 205            SkyBlue3
+ 74 112 139            SkyBlue4
+176 226 255            LightSkyBlue1
+164 211 238            LightSkyBlue2
+141 182 205            LightSkyBlue3
+ 96 123 139            LightSkyBlue4
+198 226 255            SlateGray1
+185 211 238            SlateGray2
+159 182 205            SlateGray3
+108 123 139            SlateGray4
+202 225 255            LightSteelBlue1
+188 210 238            LightSteelBlue2
+162 181 205            LightSteelBlue3
+110 123 139            LightSteelBlue4
+191 239 255            LightBlue1
+178 223 238            LightBlue2
+154 192 205            LightBlue3
+104 131 139            LightBlue4
+224 255 255            LightCyan1
+209 238 238            LightCyan2
+180 205 205            LightCyan3
+122 139 139            LightCyan4
+187 255 255            PaleTurquoise1
+174 238 238            PaleTurquoise2
+150 205 205            PaleTurquoise3
+102 139 139            PaleTurquoise4
+152 245 255            CadetBlue1
+142 229 238            CadetBlue2
+122 197 205            CadetBlue3
+ 83 134 139            CadetBlue4
+  0 245 255            turquoise1
+  0 229 238            turquoise2
+  0 197 205            turquoise3
+  0 134 139            turquoise4
+  0 255 255            cyan1
+  0 238 238            cyan2
+  0 205 205            cyan3
+  0 139 139            cyan4
+151 255 255            DarkSlateGray1
+141 238 238            DarkSlateGray2
+121 205 205            DarkSlateGray3
+ 82 139 139            DarkSlateGray4
+127 255 212            aquamarine1
+118 238 198            aquamarine2
+102 205 170            aquamarine3
+ 69 139 116            aquamarine4
+193 255 193            DarkSeaGreen1
+180 238 180            DarkSeaGreen2
+155 205 155            DarkSeaGreen3
+105 139 105            DarkSeaGreen4
+ 84 255 159            SeaGreen1
+ 78 238 148            SeaGreen2
+ 67 205 128            SeaGreen3
+ 46 139         87             SeaGreen4
+154 255 154            PaleGreen1
+144 238 144            PaleGreen2
+124 205 124            PaleGreen3
+ 84 139         84             PaleGreen4
+  0 255 127            SpringGreen1
+  0 238 118            SpringGreen2
+  0 205 102            SpringGreen3
+  0 139         69             SpringGreen4
+  0 255          0             green1
+  0 238          0             green2
+  0 205          0             green3
+  0 139          0             green4
+127 255          0             chartreuse1
+118 238          0             chartreuse2
+102 205          0             chartreuse3
+ 69 139          0             chartreuse4
+192 255         62             OliveDrab1
+179 238         58             OliveDrab2
+154 205         50             OliveDrab3
+105 139         34             OliveDrab4
+202 255 112            DarkOliveGreen1
+188 238 104            DarkOliveGreen2
+162 205         90             DarkOliveGreen3
+110 139         61             DarkOliveGreen4
+255 246 143            khaki1
+238 230 133            khaki2
+205 198 115            khaki3
+139 134         78             khaki4
+255 236 139            LightGoldenrod1
+238 220 130            LightGoldenrod2
+205 190 112            LightGoldenrod3
+139 129         76             LightGoldenrod4
+255 255 224            LightYellow1
+238 238 209            LightYellow2
+205 205 180            LightYellow3
+139 139 122            LightYellow4
+255 255          0             yellow1
+238 238          0             yellow2
+205 205          0             yellow3
+139 139          0             yellow4
+255 215          0             gold1
+238 201          0             gold2
+205 173          0             gold3
+139 117          0             gold4
+255 193         37             goldenrod1
+238 180         34             goldenrod2
+205 155         29             goldenrod3
+139 105         20             goldenrod4
+255 185         15             DarkGoldenrod1
+238 173         14             DarkGoldenrod2
+205 149         12             DarkGoldenrod3
+139 101          8             DarkGoldenrod4
+255 193 193            RosyBrown1
+238 180 180            RosyBrown2
+205 155 155            RosyBrown3
+139 105 105            RosyBrown4
+255 106 106            IndianRed1
+238  99         99             IndianRed2
+205  85         85             IndianRed3
+139  58         58             IndianRed4
+255 130         71             sienna1
+238 121         66             sienna2
+205 104         57             sienna3
+139  71         38             sienna4
+255 211 155            burlywood1
+238 197 145            burlywood2
+205 170 125            burlywood3
+139 115         85             burlywood4
+255 231 186            wheat1
+238 216 174            wheat2
+205 186 150            wheat3
+139 126 102            wheat4
+255 165         79             tan1
+238 154         73             tan2
+205 133         63             tan3
+139  90         43             tan4
+255 127         36             chocolate1
+238 118         33             chocolate2
+205 102         29             chocolate3
+139  69         19             chocolate4
+255  48         48             firebrick1
+238  44         44             firebrick2
+205  38         38             firebrick3
+139  26         26             firebrick4
+255  64         64             brown1
+238  59         59             brown2
+205  51         51             brown3
+139  35         35             brown4
+255 140 105            salmon1
+238 130         98             salmon2
+205 112         84             salmon3
+139  76         57             salmon4
+255 160 122            LightSalmon1
+238 149 114            LightSalmon2
+205 129         98             LightSalmon3
+139  87         66             LightSalmon4
+255 165          0             orange1
+238 154          0             orange2
+205 133          0             orange3
+139  90          0             orange4
+255 127          0             DarkOrange1
+238 118          0             DarkOrange2
+205 102          0             DarkOrange3
+139  69          0             DarkOrange4
+255 114         86             coral1
+238 106         80             coral2
+205  91         69             coral3
+139  62         47             coral4
+255  99         71             tomato1
+238  92         66             tomato2
+205  79         57             tomato3
+139  54         38             tomato4
+255  69          0             OrangeRed1
+238  64          0             OrangeRed2
+205  55          0             OrangeRed3
+139  37          0             OrangeRed4
+255   0          0             red1
+238   0          0             red2
+205   0          0             red3
+139   0          0             red4
+215   7  81            DebianRed
+255  20 147            DeepPink1
+238  18 137            DeepPink2
+205  16 118            DeepPink3
+139  10         80             DeepPink4
+255 110 180            HotPink1
+238 106 167            HotPink2
+205  96 144            HotPink3
+139  58  98            HotPink4
+255 181 197            pink1
+238 169 184            pink2
+205 145 158            pink3
+139  99 108            pink4
+255 174 185            LightPink1
+238 162 173            LightPink2
+205 140 149            LightPink3
+139  95 101            LightPink4
+255 130 171            PaleVioletRed1
+238 121 159            PaleVioletRed2
+205 104 137            PaleVioletRed3
+139  71         93             PaleVioletRed4
+255  52 179            maroon1
+238  48 167            maroon2
+205  41 144            maroon3
+139  28         98             maroon4
+255  62 150            VioletRed1
+238  58 140            VioletRed2
+205  50 120            VioletRed3
+139  34         82             VioletRed4
+255   0 255            magenta1
+238   0 238            magenta2
+205   0 205            magenta3
+139   0 139            magenta4
+255 131 250            orchid1
+238 122 233            orchid2
+205 105 201            orchid3
+139  71 137            orchid4
+255 187 255            plum1
+238 174 238            plum2
+205 150 205            plum3
+139 102 139            plum4
+224 102 255            MediumOrchid1
+209  95 238            MediumOrchid2
+180  82 205            MediumOrchid3
+122  55 139            MediumOrchid4
+191  62 255            DarkOrchid1
+178  58 238            DarkOrchid2
+154  50 205            DarkOrchid3
+104  34 139            DarkOrchid4
+155  48 255            purple1
+145  44 238            purple2
+125  38 205            purple3
+ 85  26 139            purple4
+171 130 255            MediumPurple1
+159 121 238            MediumPurple2
+137 104 205            MediumPurple3
+ 93  71 139            MediumPurple4
+255 225 255            thistle1
+238 210 238            thistle2
+205 181 205            thistle3
+139 123 139            thistle4
+  0   0   0            gray0
+  0   0   0            grey0
+  3   3   3            gray1
+  3   3   3            grey1
+  5   5   5            gray2
+  5   5   5            grey2
+  8   8   8            gray3
+  8   8   8            grey3
+ 10  10  10            gray4
+ 10  10  10            grey4
+ 13  13  13            gray5
+ 13  13  13            grey5
+ 15  15  15            gray6
+ 15  15  15            grey6
+ 18  18  18            gray7
+ 18  18  18            grey7
+ 20  20  20            gray8
+ 20  20  20            grey8
+ 23  23  23            gray9
+ 23  23  23            grey9
+ 26  26  26            gray10
+ 26  26  26            grey10
+ 28  28  28            gray11
+ 28  28  28            grey11
+ 31  31  31            gray12
+ 31  31  31            grey12
+ 33  33  33            gray13
+ 33  33  33            grey13
+ 36  36  36            gray14
+ 36  36  36            grey14
+ 38  38  38            gray15
+ 38  38  38            grey15
+ 41  41  41            gray16
+ 41  41  41            grey16
+ 43  43  43            gray17
+ 43  43  43            grey17
+ 46  46  46            gray18
+ 46  46  46            grey18
+ 48  48  48            gray19
+ 48  48  48            grey19
+ 51  51  51            gray20
+ 51  51  51            grey20
+ 54  54  54            gray21
+ 54  54  54            grey21
+ 56  56  56            gray22
+ 56  56  56            grey22
+ 59  59  59            gray23
+ 59  59  59            grey23
+ 61  61  61            gray24
+ 61  61  61            grey24
+ 64  64  64            gray25
+ 64  64  64            grey25
+ 66  66  66            gray26
+ 66  66  66            grey26
+ 69  69  69            gray27
+ 69  69  69            grey27
+ 71  71  71            gray28
+ 71  71  71            grey28
+ 74  74  74            gray29
+ 74  74  74            grey29
+ 77  77  77            gray30
+ 77  77  77            grey30
+ 79  79  79            gray31
+ 79  79  79            grey31
+ 82  82  82            gray32
+ 82  82  82            grey32
+ 84  84  84            gray33
+ 84  84  84            grey33
+ 87  87  87            gray34
+ 87  87  87            grey34
+ 89  89  89            gray35
+ 89  89  89            grey35
+ 92  92  92            gray36
+ 92  92  92            grey36
+ 94  94  94            gray37
+ 94  94  94            grey37
+ 97  97  97            gray38
+ 97  97  97            grey38
+ 99  99  99            gray39
+ 99  99  99            grey39
+102 102 102            gray40
+102 102 102            grey40
+105 105 105            gray41
+105 105 105            grey41
+107 107 107            gray42
+107 107 107            grey42
+110 110 110            gray43
+110 110 110            grey43
+112 112 112            gray44
+112 112 112            grey44
+115 115 115            gray45
+115 115 115            grey45
+117 117 117            gray46
+117 117 117            grey46
+120 120 120            gray47
+120 120 120            grey47
+122 122 122            gray48
+122 122 122            grey48
+125 125 125            gray49
+125 125 125            grey49
+127 127 127            gray50
+127 127 127            grey50
+130 130 130            gray51
+130 130 130            grey51
+133 133 133            gray52
+133 133 133            grey52
+135 135 135            gray53
+135 135 135            grey53
+138 138 138            gray54
+138 138 138            grey54
+140 140 140            gray55
+140 140 140            grey55
+143 143 143            gray56
+143 143 143            grey56
+145 145 145            gray57
+145 145 145            grey57
+148 148 148            gray58
+148 148 148            grey58
+150 150 150            gray59
+150 150 150            grey59
+153 153 153            gray60
+153 153 153            grey60
+156 156 156            gray61
+156 156 156            grey61
+158 158 158            gray62
+158 158 158            grey62
+161 161 161            gray63
+161 161 161            grey63
+163 163 163            gray64
+163 163 163            grey64
+166 166 166            gray65
+166 166 166            grey65
+168 168 168            gray66
+168 168 168            grey66
+171 171 171            gray67
+171 171 171            grey67
+173 173 173            gray68
+173 173 173            grey68
+176 176 176            gray69
+176 176 176            grey69
+179 179 179            gray70
+179 179 179            grey70
+181 181 181            gray71
+181 181 181            grey71
+184 184 184            gray72
+184 184 184            grey72
+186 186 186            gray73
+186 186 186            grey73
+189 189 189            gray74
+189 189 189            grey74
+191 191 191            gray75
+191 191 191            grey75
+194 194 194            gray76
+194 194 194            grey76
+196 196 196            gray77
+196 196 196            grey77
+199 199 199            gray78
+199 199 199            grey78
+201 201 201            gray79
+201 201 201            grey79
+204 204 204            gray80
+204 204 204            grey80
+207 207 207            gray81
+207 207 207            grey81
+209 209 209            gray82
+209 209 209            grey82
+212 212 212            gray83
+212 212 212            grey83
+214 214 214            gray84
+214 214 214            grey84
+217 217 217            gray85
+217 217 217            grey85
+219 219 219            gray86
+219 219 219            grey86
+222 222 222            gray87
+222 222 222            grey87
+224 224 224            gray88
+224 224 224            grey88
+227 227 227            gray89
+227 227 227            grey89
+229 229 229            gray90
+229 229 229            grey90
+232 232 232            gray91
+232 232 232            grey91
+235 235 235            gray92
+235 235 235            grey92
+237 237 237            gray93
+237 237 237            grey93
+240 240 240            gray94
+240 240 240            grey94
+242 242 242            gray95
+242 242 242            grey95
+245 245 245            gray96
+245 245 245            grey96
+247 247 247            gray97
+247 247 247            grey97
+250 250 250            gray98
+250 250 250            grey98
+252 252 252            gray99
+252 252 252            grey99
+255 255 255            gray100
+255 255 255            grey100
+169 169 169            dark grey
+169 169 169            DarkGrey
+169 169 169            dark gray
+169 169 169            DarkGray
+0     0 139            dark blue
+0     0 139            DarkBlue
+0   139 139            dark cyan
+0   139 139            DarkCyan
+139   0 139            dark magenta
+139   0 139            DarkMagenta
+139   0   0            dark red
+139   0   0            DarkRed
+144 238 144            light green
+144 238 144            LightGreen
diff --git a/adduser.conf b/adduser.conf
new file mode 100644 (file)
index 0000000..06ffc26
--- /dev/null
@@ -0,0 +1,97 @@
+# /etc/adduser.conf: `adduser' configuration.
+# See adduser(8) and adduser.conf(5) for full documentation.
+
+# A commented out setting indicates that this is the default in the
+# code. If you need to change those settings, remove the comment and
+# make your intended change.
+
+# The login shell to be used for all new users.
+# Default: DSHELL=/bin/bash
+#DSHELL=/bin/bash
+
+# The directory in which new home directories should  be  created.
+# Default: DHOME=/home
+# DHOME=/home
+
+# The directory from which skeletal user configuration files
+# will be copied.
+# Default: SKEL=/etc/skel
+#SKEL=/etc/skel
+
+# Specify inclusive ranges of UIDs and GIDs from which UIDs and GIDs
+# for system users, system groups, non-system users and non-system groups
+# can be dynamically allocated.
+# Default: FIRST_SYSTEM_UID=100, LAST_SYSTEM_UID=999
+#FIRST_SYSTEM_UID=100
+#LAST_SYSTEM_UID=999
+
+# Default: FIRST_SYSTEM_GID=100, LAST_SYSTEM_GID=999
+#FIRST_SYSTEM_GID=100
+#LAST_SYSTEM_GID=999
+
+# Default: FIRST_UID=1000, LAST_UID=59999
+#FIRST_UID=1000
+#LAST_UID=59999
+
+# Default: FIRST_GID=1000, LAST_GID=59999
+#FIRST_GID=1000
+#LAST_GID=59999
+
+# Specify a file or a directory containing UID and GID pool.
+#UID_POOL=/etc/adduser-pool.conf
+#UID_POOL=/etc/adduser-pool.d/
+#GID_POOL=/etc/adduser-pool.conf
+#GID_POOL=/etc/adduser-pool.d/
+
+# Specify whether each created non-system user will be
+# given their own group to use.
+# Default: USERGROUPS=yes
+#USERGROUPS=yes
+
+# Defines the groupname or GID of the group all newly-created
+# non-system users are placed into.
+# It is a configuration error to define both variables
+# even if the values are consistent.
+# Default: USERS_GID=undefined, USERS_GROUP=users
+#USERS_GID=100
+#USERS_GROUP=users
+
+# The permissions mode for home directories of non-system users.
+# Default: DIR_MODE=0700
+#DIR_MODE=0700
+
+# The permissions mode for home directories of system users.
+# Default: SYS_DIR_MODE=0755
+#SYS_DIR_MODE=0755
+
+# If set to a nonempty value, new users will have quotas copied
+# from that user with `edquota -p QUOTAUSER newuser'
+# Default: QUOTAUSER=""
+#QUOTAUSER=""
+
+# Non-system user- and groupnames are checked against this regular
+# expression.
+# Default: NAME_REGEX="^[a-z][-a-z0-9_]*\$?$"
+#NAME_REGEX="^[a-z][-a-z0-9_]*\$?$"
+
+# System user- and groupnames are checked against this regular
+# expression.
+# Default: SYS_NAME_REGEX="^[a-z_][-a-z0-9_]*\$?$"
+#SYS_NAME_REGEX="^[a-z_][-a-z0-9_]*\$?$"
+
+# When populating the newly created home directory of a non-system user,
+# files in SKEL matching this regex are not copied.
+# Default: SKEL_IGNORE_REGEX="\.(dpkg|ucf)-(old|new|dist|save)$"
+#SKEL_IGNORE_REGEX="\.(dpkg|ucf)-(old|new|dist|save)$"
+
+# list of groups that new non-system users will be added to
+# if ADD_EXTRA_GROUPS is non-zero or set on the command line.
+# Default: EXTRA_GROUPS="users"
+#EXTRA_GROUPS="users"
+
+# Setting this to something other than 0 will cause adduser to add
+# newly created non-system users to the list of groups defined by
+# EXTRA_GROUPS.
+# Default: ADD_EXTRA_GROUPS=0
+#ADD_EXTRA_GROUPS=0
+
diff --git a/aliases b/aliases
new file mode 100644 (file)
index 0000000..93a3249
--- /dev/null
+++ b/aliases
@@ -0,0 +1,2 @@
+# See man 5 aliases for format
+postmaster:    root
diff --git a/aliases.db b/aliases.db
new file mode 100644 (file)
index 0000000..de542da
Binary files /dev/null and b/aliases.db differ
diff --git a/alternatives/README b/alternatives/README
new file mode 100644 (file)
index 0000000..4c4d215
--- /dev/null
@@ -0,0 +1,2 @@
+Please read the update-alternatives(1) man page for information on this
+directory and its contents.
diff --git a/alternatives/arptables b/alternatives/arptables
new file mode 120000 (symlink)
index 0000000..f8fcc7b
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/arptables-nft
\ No newline at end of file
diff --git a/alternatives/arptables-restore b/alternatives/arptables-restore
new file mode 120000 (symlink)
index 0000000..95e87dc
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/arptables-nft-restore
\ No newline at end of file
diff --git a/alternatives/arptables-save b/alternatives/arptables-save
new file mode 120000 (symlink)
index 0000000..9bb1596
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/arptables-nft-save
\ No newline at end of file
diff --git a/alternatives/awk b/alternatives/awk
new file mode 120000 (symlink)
index 0000000..19ba657
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/gawk
\ No newline at end of file
diff --git a/alternatives/awk.1.gz b/alternatives/awk.1.gz
new file mode 120000 (symlink)
index 0000000..134262b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/gawk.1.gz
\ No newline at end of file
diff --git a/alternatives/builtins.7.gz b/alternatives/builtins.7.gz
new file mode 120000 (symlink)
index 0000000..96d1b74
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man7/bash-builtins.7.gz
\ No newline at end of file
diff --git a/alternatives/de.multi b/alternatives/de.multi
new file mode 120000 (symlink)
index 0000000..010aa3a
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/aspell/de-neu.multi
\ No newline at end of file
diff --git a/alternatives/de_AT.multi b/alternatives/de_AT.multi
new file mode 120000 (symlink)
index 0000000..5a9acce
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/aspell/de_AT-neu.multi
\ No newline at end of file
diff --git a/alternatives/de_CH.multi b/alternatives/de_CH.multi
new file mode 120000 (symlink)
index 0000000..865d7b6
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/aspell/de_CH-neu.multi
\ No newline at end of file
diff --git a/alternatives/de_DE.multi b/alternatives/de_DE.multi
new file mode 120000 (symlink)
index 0000000..34e01c6
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/aspell/de_DE-neu.multi
\ No newline at end of file
diff --git a/alternatives/dotlock b/alternatives/dotlock
new file mode 120000 (symlink)
index 0000000..423e888
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/dotlock.mailutils
\ No newline at end of file
diff --git a/alternatives/dotlock.1.gz b/alternatives/dotlock.1.gz
new file mode 120000 (symlink)
index 0000000..48fb595
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/dotlock.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/ebtables b/alternatives/ebtables
new file mode 120000 (symlink)
index 0000000..8d5f660
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/ebtables-nft
\ No newline at end of file
diff --git a/alternatives/ebtables-restore b/alternatives/ebtables-restore
new file mode 120000 (symlink)
index 0000000..c2e5813
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/ebtables-nft-restore
\ No newline at end of file
diff --git a/alternatives/ebtables-save b/alternatives/ebtables-save
new file mode 120000 (symlink)
index 0000000..600f8c2
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/ebtables-nft-save
\ No newline at end of file
diff --git a/alternatives/editor b/alternatives/editor
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/editor.1.gz b/alternatives/editor.1.gz
new file mode 120000 (symlink)
index 0000000..e02a6af
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.da.1.gz b/alternatives/editor.da.1.gz
new file mode 120000 (symlink)
index 0000000..c90068f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/da/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.de.1.gz b/alternatives/editor.de.1.gz
new file mode 120000 (symlink)
index 0000000..d89833a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/de/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.fr.1.gz b/alternatives/editor.fr.1.gz
new file mode 120000 (symlink)
index 0000000..af52858
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/fr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.it.1.gz b/alternatives/editor.it.1.gz
new file mode 120000 (symlink)
index 0000000..4498a3d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/it/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.ja.1.gz b/alternatives/editor.ja.1.gz
new file mode 120000 (symlink)
index 0000000..071acfb
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ja/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.pl.1.gz b/alternatives/editor.pl.1.gz
new file mode 120000 (symlink)
index 0000000..345590a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/pl/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.ru.1.gz b/alternatives/editor.ru.1.gz
new file mode 120000 (symlink)
index 0000000..ea9aa16
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ru/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/editor.tr.1.gz b/alternatives/editor.tr.1.gz
new file mode 120000 (symlink)
index 0000000..56ef665
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/tr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex b/alternatives/ex
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/ex.1.gz b/alternatives/ex.1.gz
new file mode 120000 (symlink)
index 0000000..e02a6af
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.da.1.gz b/alternatives/ex.da.1.gz
new file mode 120000 (symlink)
index 0000000..c90068f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/da/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.de.1.gz b/alternatives/ex.de.1.gz
new file mode 120000 (symlink)
index 0000000..d89833a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/de/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.fr.1.gz b/alternatives/ex.fr.1.gz
new file mode 120000 (symlink)
index 0000000..af52858
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/fr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.it.1.gz b/alternatives/ex.it.1.gz
new file mode 120000 (symlink)
index 0000000..4498a3d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/it/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.ja.1.gz b/alternatives/ex.ja.1.gz
new file mode 120000 (symlink)
index 0000000..071acfb
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ja/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.pl.1.gz b/alternatives/ex.pl.1.gz
new file mode 120000 (symlink)
index 0000000..345590a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/pl/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.ru.1.gz b/alternatives/ex.ru.1.gz
new file mode 120000 (symlink)
index 0000000..ea9aa16
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ru/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/ex.tr.1.gz b/alternatives/ex.tr.1.gz
new file mode 120000 (symlink)
index 0000000..56ef665
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/tr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/figlet b/alternatives/figlet
new file mode 120000 (symlink)
index 0000000..28ec836
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/figlet-figlet
\ No newline at end of file
diff --git a/alternatives/figlet.6.gz b/alternatives/figlet.6.gz
new file mode 120000 (symlink)
index 0000000..550fbfc
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man6/figlet-figlet.6.gz
\ No newline at end of file
diff --git a/alternatives/frm b/alternatives/frm
new file mode 120000 (symlink)
index 0000000..def5353
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/frm.mailutils
\ No newline at end of file
diff --git a/alternatives/frm.1.gz b/alternatives/frm.1.gz
new file mode 120000 (symlink)
index 0000000..ec4c491
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/frm.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/from b/alternatives/from
new file mode 120000 (symlink)
index 0000000..f4e6cdc
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/from.mailutils
\ No newline at end of file
diff --git a/alternatives/from.1.gz b/alternatives/from.1.gz
new file mode 120000 (symlink)
index 0000000..d20001a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/from.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/ip6tables b/alternatives/ip6tables
new file mode 120000 (symlink)
index 0000000..4c913e2
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/ip6tables-nft
\ No newline at end of file
diff --git a/alternatives/ip6tables-restore b/alternatives/ip6tables-restore
new file mode 120000 (symlink)
index 0000000..46918a9
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/ip6tables-nft-restore
\ No newline at end of file
diff --git a/alternatives/ip6tables-save b/alternatives/ip6tables-save
new file mode 120000 (symlink)
index 0000000..04525f0
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/ip6tables-nft-save
\ No newline at end of file
diff --git a/alternatives/iptables b/alternatives/iptables
new file mode 120000 (symlink)
index 0000000..c55fd50
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/iptables-nft
\ No newline at end of file
diff --git a/alternatives/iptables-restore b/alternatives/iptables-restore
new file mode 120000 (symlink)
index 0000000..9553657
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/iptables-nft-restore
\ No newline at end of file
diff --git a/alternatives/iptables-save b/alternatives/iptables-save
new file mode 120000 (symlink)
index 0000000..051d68b
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/iptables-nft-save
\ No newline at end of file
diff --git a/alternatives/lft b/alternatives/lft
new file mode 120000 (symlink)
index 0000000..cbc6006
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/lft.db
\ No newline at end of file
diff --git a/alternatives/lft.1.gz b/alternatives/lft.1.gz
new file mode 120000 (symlink)
index 0000000..c1cf08c
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/lft.db.1.gz
\ No newline at end of file
diff --git a/alternatives/locate b/alternatives/locate
new file mode 120000 (symlink)
index 0000000..e9d755d
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/plocate
\ No newline at end of file
diff --git a/alternatives/locate.1.gz b/alternatives/locate.1.gz
new file mode 120000 (symlink)
index 0000000..eb0f43c
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/plocate.1.gz
\ No newline at end of file
diff --git a/alternatives/lzcat b/alternatives/lzcat
new file mode 120000 (symlink)
index 0000000..1482e0d
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzcat
\ No newline at end of file
diff --git a/alternatives/lzcat.1.gz b/alternatives/lzcat.1.gz
new file mode 120000 (symlink)
index 0000000..c078545
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzcat.1.gz
\ No newline at end of file
diff --git a/alternatives/lzcmp b/alternatives/lzcmp
new file mode 120000 (symlink)
index 0000000..5cdef99
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzcmp
\ No newline at end of file
diff --git a/alternatives/lzcmp.1.gz b/alternatives/lzcmp.1.gz
new file mode 120000 (symlink)
index 0000000..f0bafbe
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzcmp.1.gz
\ No newline at end of file
diff --git a/alternatives/lzdiff b/alternatives/lzdiff
new file mode 120000 (symlink)
index 0000000..0e42921
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzdiff
\ No newline at end of file
diff --git a/alternatives/lzdiff.1.gz b/alternatives/lzdiff.1.gz
new file mode 120000 (symlink)
index 0000000..5687b0a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzdiff.1.gz
\ No newline at end of file
diff --git a/alternatives/lzegrep b/alternatives/lzegrep
new file mode 120000 (symlink)
index 0000000..5fee024
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzegrep
\ No newline at end of file
diff --git a/alternatives/lzegrep.1.gz b/alternatives/lzegrep.1.gz
new file mode 120000 (symlink)
index 0000000..c9ad6de
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzegrep.1.gz
\ No newline at end of file
diff --git a/alternatives/lzfgrep b/alternatives/lzfgrep
new file mode 120000 (symlink)
index 0000000..1b64c1b
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzfgrep
\ No newline at end of file
diff --git a/alternatives/lzfgrep.1.gz b/alternatives/lzfgrep.1.gz
new file mode 120000 (symlink)
index 0000000..b292ba9
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzfgrep.1.gz
\ No newline at end of file
diff --git a/alternatives/lzgrep b/alternatives/lzgrep
new file mode 120000 (symlink)
index 0000000..05ef59b
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzgrep
\ No newline at end of file
diff --git a/alternatives/lzgrep.1.gz b/alternatives/lzgrep.1.gz
new file mode 120000 (symlink)
index 0000000..8ccd2c5
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzgrep.1.gz
\ No newline at end of file
diff --git a/alternatives/lzless b/alternatives/lzless
new file mode 120000 (symlink)
index 0000000..5415736
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzless
\ No newline at end of file
diff --git a/alternatives/lzless.1.gz b/alternatives/lzless.1.gz
new file mode 120000 (symlink)
index 0000000..bc81750
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzless.1.gz
\ No newline at end of file
diff --git a/alternatives/lzma b/alternatives/lzma
new file mode 120000 (symlink)
index 0000000..cdc9bb5
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xz
\ No newline at end of file
diff --git a/alternatives/lzma.1.gz b/alternatives/lzma.1.gz
new file mode 120000 (symlink)
index 0000000..16e4bcc
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xz.1.gz
\ No newline at end of file
diff --git a/alternatives/lzmore b/alternatives/lzmore
new file mode 120000 (symlink)
index 0000000..1fad361
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/xzmore
\ No newline at end of file
diff --git a/alternatives/lzmore.1.gz b/alternatives/lzmore.1.gz
new file mode 120000 (symlink)
index 0000000..e79dfa4
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/xzmore.1.gz
\ No newline at end of file
diff --git a/alternatives/mail b/alternatives/mail
new file mode 120000 (symlink)
index 0000000..e4c7643
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/mail.mailutils
\ No newline at end of file
diff --git a/alternatives/mail.1.gz b/alternatives/mail.1.gz
new file mode 120000 (symlink)
index 0000000..b8055c8
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/mail.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/mailx b/alternatives/mailx
new file mode 120000 (symlink)
index 0000000..e4c7643
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/mail.mailutils
\ No newline at end of file
diff --git a/alternatives/mailx.1.gz b/alternatives/mailx.1.gz
new file mode 120000 (symlink)
index 0000000..b8055c8
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/mail.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/messages b/alternatives/messages
new file mode 120000 (symlink)
index 0000000..e66edd3
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/messages.mailutils
\ No newline at end of file
diff --git a/alternatives/messages.1.gz b/alternatives/messages.1.gz
new file mode 120000 (symlink)
index 0000000..8884760
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/messages.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/movemail b/alternatives/movemail
new file mode 120000 (symlink)
index 0000000..8d4efb3
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/movemail.mailutils
\ No newline at end of file
diff --git a/alternatives/movemail.1.gz b/alternatives/movemail.1.gz
new file mode 120000 (symlink)
index 0000000..32b3520
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/movemail.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/mt b/alternatives/mt
new file mode 120000 (symlink)
index 0000000..46c2596
--- /dev/null
@@ -0,0 +1 @@
+/bin/mt-gnu
\ No newline at end of file
diff --git a/alternatives/mt.1.gz b/alternatives/mt.1.gz
new file mode 120000 (symlink)
index 0000000..cac0e18
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/mt-gnu.1.gz
\ No newline at end of file
diff --git a/alternatives/my.cnf b/alternatives/my.cnf
new file mode 120000 (symlink)
index 0000000..c0fe3dd
--- /dev/null
@@ -0,0 +1 @@
+/etc/mysql/mariadb.cnf
\ No newline at end of file
diff --git a/alternatives/nawk b/alternatives/nawk
new file mode 120000 (symlink)
index 0000000..19ba657
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/gawk
\ No newline at end of file
diff --git a/alternatives/nawk.1.gz b/alternatives/nawk.1.gz
new file mode 120000 (symlink)
index 0000000..134262b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/gawk.1.gz
\ No newline at end of file
diff --git a/alternatives/nc b/alternatives/nc
new file mode 120000 (symlink)
index 0000000..42844ed
--- /dev/null
@@ -0,0 +1 @@
+/bin/nc.openbsd
\ No newline at end of file
diff --git a/alternatives/nc.1.gz b/alternatives/nc.1.gz
new file mode 120000 (symlink)
index 0000000..e288d80
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/nc_openbsd.1.gz
\ No newline at end of file
diff --git a/alternatives/netcat b/alternatives/netcat
new file mode 120000 (symlink)
index 0000000..42844ed
--- /dev/null
@@ -0,0 +1 @@
+/bin/nc.openbsd
\ No newline at end of file
diff --git a/alternatives/netcat.1.gz b/alternatives/netcat.1.gz
new file mode 120000 (symlink)
index 0000000..e288d80
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/nc_openbsd.1.gz
\ No newline at end of file
diff --git a/alternatives/open b/alternatives/open
new file mode 120000 (symlink)
index 0000000..2fcedcf
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/run-mailcap
\ No newline at end of file
diff --git a/alternatives/open.1.gz b/alternatives/open.1.gz
new file mode 120000 (symlink)
index 0000000..b80da43
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/run-mailcap.1.gz
\ No newline at end of file
diff --git a/alternatives/pager b/alternatives/pager
new file mode 120000 (symlink)
index 0000000..a967155
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/less
\ No newline at end of file
diff --git a/alternatives/pager.1.gz b/alternatives/pager.1.gz
new file mode 120000 (symlink)
index 0000000..c1430af
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/less.1.gz
\ No newline at end of file
diff --git a/alternatives/pico b/alternatives/pico
new file mode 120000 (symlink)
index 0000000..7a06612
--- /dev/null
@@ -0,0 +1 @@
+/bin/nano
\ No newline at end of file
diff --git a/alternatives/pico.1.gz b/alternatives/pico.1.gz
new file mode 120000 (symlink)
index 0000000..bb2d082
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/nano.1.gz
\ No newline at end of file
diff --git a/alternatives/pinentry b/alternatives/pinentry
new file mode 120000 (symlink)
index 0000000..01990a3
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/pinentry-curses
\ No newline at end of file
diff --git a/alternatives/pinentry.1.gz b/alternatives/pinentry.1.gz
new file mode 120000 (symlink)
index 0000000..8e9ab4f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/pinentry-curses.1.gz
\ No newline at end of file
diff --git a/alternatives/readmsg b/alternatives/readmsg
new file mode 120000 (symlink)
index 0000000..99bcf73
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/readmsg.mailutils
\ No newline at end of file
diff --git a/alternatives/readmsg.1.gz b/alternatives/readmsg.1.gz
new file mode 120000 (symlink)
index 0000000..322d3a6
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/readmsg.mailutils.1.gz
\ No newline at end of file
diff --git a/alternatives/rmt b/alternatives/rmt
new file mode 120000 (symlink)
index 0000000..82958a9
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/rmt-tar
\ No newline at end of file
diff --git a/alternatives/rmt.8.gz b/alternatives/rmt.8.gz
new file mode 120000 (symlink)
index 0000000..8c87e21
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man8/rmt-tar.8.gz
\ No newline at end of file
diff --git a/alternatives/rview b/alternatives/rview
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/rvim b/alternatives/rvim
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/tcptraceroute b/alternatives/tcptraceroute
new file mode 120000 (symlink)
index 0000000..c828cd9
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/tcptraceroute.db
\ No newline at end of file
diff --git a/alternatives/tcptraceroute.8.gz b/alternatives/tcptraceroute.8.gz
new file mode 120000 (symlink)
index 0000000..815a50c
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man8/tcptraceroute.db.8.gz
\ No newline at end of file
diff --git a/alternatives/telnet b/alternatives/telnet
new file mode 120000 (symlink)
index 0000000..a8a2838
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/inetutils-telnet
\ No newline at end of file
diff --git a/alternatives/telnet.1.gz b/alternatives/telnet.1.gz
new file mode 120000 (symlink)
index 0000000..e4e259d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/inetutils-telnet.1.gz
\ No newline at end of file
diff --git a/alternatives/traceproto b/alternatives/traceproto
new file mode 120000 (symlink)
index 0000000..d6973c9
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/traceproto.db
\ No newline at end of file
diff --git a/alternatives/traceproto.1.gz b/alternatives/traceproto.1.gz
new file mode 120000 (symlink)
index 0000000..3353595
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/traceproto.db.1.gz
\ No newline at end of file
diff --git a/alternatives/traceroute b/alternatives/traceroute
new file mode 120000 (symlink)
index 0000000..fd69632
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/traceroute.db
\ No newline at end of file
diff --git a/alternatives/traceroute.1.gz b/alternatives/traceroute.1.gz
new file mode 120000 (symlink)
index 0000000..e9586f9
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/traceroute.db.1.gz
\ No newline at end of file
diff --git a/alternatives/traceroute.sbin b/alternatives/traceroute.sbin
new file mode 120000 (symlink)
index 0000000..fd69632
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/traceroute.db
\ No newline at end of file
diff --git a/alternatives/traceroute6 b/alternatives/traceroute6
new file mode 120000 (symlink)
index 0000000..7958fcf
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/traceroute6.db
\ No newline at end of file
diff --git a/alternatives/traceroute6.1.gz b/alternatives/traceroute6.1.gz
new file mode 120000 (symlink)
index 0000000..7977291
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/traceroute6.db.1.gz
\ No newline at end of file
diff --git a/alternatives/unlzma b/alternatives/unlzma
new file mode 120000 (symlink)
index 0000000..c730a4a
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/unxz
\ No newline at end of file
diff --git a/alternatives/unlzma.1.gz b/alternatives/unlzma.1.gz
new file mode 120000 (symlink)
index 0000000..c772f41
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/unxz.1.gz
\ No newline at end of file
diff --git a/alternatives/unrar b/alternatives/unrar
new file mode 120000 (symlink)
index 0000000..2c6210a
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/unrar-free
\ No newline at end of file
diff --git a/alternatives/unrar.1.gz b/alternatives/unrar.1.gz
new file mode 120000 (symlink)
index 0000000..9e2a2d4
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/unrar-free.1.gz
\ No newline at end of file
diff --git a/alternatives/updatedb b/alternatives/updatedb
new file mode 120000 (symlink)
index 0000000..2d34fe4
--- /dev/null
@@ -0,0 +1 @@
+/usr/sbin/updatedb.plocate
\ No newline at end of file
diff --git a/alternatives/updatedb.8.gz b/alternatives/updatedb.8.gz
new file mode 120000 (symlink)
index 0000000..fad61dd
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man8/updatedb.plocate.8.gz
\ No newline at end of file
diff --git a/alternatives/vi b/alternatives/vi
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/vi.1.gz b/alternatives/vi.1.gz
new file mode 120000 (symlink)
index 0000000..e02a6af
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.da.1.gz b/alternatives/vi.da.1.gz
new file mode 120000 (symlink)
index 0000000..c90068f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/da/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.de.1.gz b/alternatives/vi.de.1.gz
new file mode 120000 (symlink)
index 0000000..d89833a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/de/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.fr.1.gz b/alternatives/vi.fr.1.gz
new file mode 120000 (symlink)
index 0000000..af52858
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/fr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.it.1.gz b/alternatives/vi.it.1.gz
new file mode 120000 (symlink)
index 0000000..4498a3d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/it/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.ja.1.gz b/alternatives/vi.ja.1.gz
new file mode 120000 (symlink)
index 0000000..071acfb
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ja/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.pl.1.gz b/alternatives/vi.pl.1.gz
new file mode 120000 (symlink)
index 0000000..345590a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/pl/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.ru.1.gz b/alternatives/vi.ru.1.gz
new file mode 120000 (symlink)
index 0000000..ea9aa16
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ru/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vi.tr.1.gz b/alternatives/vi.tr.1.gz
new file mode 120000 (symlink)
index 0000000..56ef665
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/tr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view b/alternatives/view
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/view.1.gz b/alternatives/view.1.gz
new file mode 120000 (symlink)
index 0000000..e02a6af
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.da.1.gz b/alternatives/view.da.1.gz
new file mode 120000 (symlink)
index 0000000..c90068f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/da/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.de.1.gz b/alternatives/view.de.1.gz
new file mode 120000 (symlink)
index 0000000..d89833a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/de/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.fr.1.gz b/alternatives/view.fr.1.gz
new file mode 120000 (symlink)
index 0000000..af52858
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/fr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.it.1.gz b/alternatives/view.it.1.gz
new file mode 120000 (symlink)
index 0000000..4498a3d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/it/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.ja.1.gz b/alternatives/view.ja.1.gz
new file mode 120000 (symlink)
index 0000000..071acfb
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ja/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.pl.1.gz b/alternatives/view.pl.1.gz
new file mode 120000 (symlink)
index 0000000..345590a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/pl/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.ru.1.gz b/alternatives/view.ru.1.gz
new file mode 120000 (symlink)
index 0000000..ea9aa16
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ru/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/view.tr.1.gz b/alternatives/view.tr.1.gz
new file mode 120000 (symlink)
index 0000000..56ef665
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/tr/man1/vim.1.gz
\ No newline at end of file
diff --git a/alternatives/vim b/alternatives/vim
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/vimdiff b/alternatives/vimdiff
new file mode 120000 (symlink)
index 0000000..1d112da
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/vim.basic
\ No newline at end of file
diff --git a/alternatives/which b/alternatives/which
new file mode 120000 (symlink)
index 0000000..c9eb809
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/which.debianutils
\ No newline at end of file
diff --git a/alternatives/which.1.gz b/alternatives/which.1.gz
new file mode 120000 (symlink)
index 0000000..e5966c9
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/alternatives/which.de1.gz b/alternatives/which.de1.gz
new file mode 120000 (symlink)
index 0000000..62b7dbb
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/de/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/alternatives/which.es1.gz b/alternatives/which.es1.gz
new file mode 120000 (symlink)
index 0000000..1dc20a3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/es/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/alternatives/which.fr1.gz b/alternatives/which.fr1.gz
new file mode 120000 (symlink)
index 0000000..f337bdc
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/fr/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/alternatives/which.it1.gz b/alternatives/which.it1.gz
new file mode 120000 (symlink)
index 0000000..60fff86
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/it/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/alternatives/which.ja1.gz b/alternatives/which.ja1.gz
new file mode 120000 (symlink)
index 0000000..b68b196
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/ja/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/alternatives/which.pl1.gz b/alternatives/which.pl1.gz
new file mode 120000 (symlink)
index 0000000..015af28
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/pl/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/alternatives/which.sl1.gz b/alternatives/which.sl1.gz
new file mode 120000 (symlink)
index 0000000..0586272
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/man/sl/man1/which.debianutils.1.gz
\ No newline at end of file
diff --git a/analog.cfg b/analog.cfg
new file mode 100644 (file)
index 0000000..1e8539c
--- /dev/null
@@ -0,0 +1,280 @@
+# Configuration file for Analog CE 6.0.16
+# See https://www.c-amie.co.uk/software/analog/
+#
+# Here are a couple of configuration commands to get you started. Add any more
+# you like from the Readme.
+#
+# Lines starting with # are comments.
+#
+# There is a much more extensive configuration file in examples/big.cfg
+#
+# If you need a LOGFORMAT command (most people don't -- try it without first!),
+# it must go here, above the LOGFILE commands.
+#
+# This sets analog to process the apache log files. If you use a web server
+# other than apache, you will need to tell analog where the web server
+# keeps its log files.
+LOGFILE /var/log/apache2/access.log*
+
+# LOGFILE /old/logs/access_log.*
+OUTFILE Report.html
+# HOSTNAME "[my organisation]"
+
+# Reports Enabled/Disabled List
+ALL            ON
+ALLCHART       ON
+
+GENERAL                ON      #General Summary
+YEARLY         ON      #Yearly Report
+QUARTERLY      ON      #Quarterly Report
+MONTHLY                ON      #Monthly Report
+WEEKLY         ON      #Weekly Report
+DAILYREP       ON      #Daily Report
+DAILYSUM       ON      #Daily Summary
+HOURLYREP      ON      #Hourly Report
+HOURLYSUM      ON      #Hourly Summary
+WEEKHOUR       ON      #Hour of the Week Summary
+QUARTERREP     ON      #Quarter-Hour Report
+QUARTERSUM     ON      #Quarter-Hour Summary
+FIVEREP                ON      #Five-Minute Report
+FIVESUM                ON      #Five-Minute Summary
+HOST           ON      #Host Report
+REDIRHOST      ON      #Host Redirection Report
+FAILHOST       ON      #Host Failure Report
+ORGANISATION   ON      #Organisation Report
+DOMAIN         ON      #Domain Report
+REQUEST                ON      #Request Report
+DIRECTORY      ON      #Directory Report
+FILETYPE       ON      #File Type Report
+SIZE           ON      #File Size Report
+PROCTIME       ON      #Processing Time Report
+REDIR          ON      #Redirection Report
+FAILURE                ON      #Failure Report
+REFERRER       ON      #Referrer Report
+REFSITE                ON      #Referring Site Report
+SEARCHQUERY    ON      #Search Query Report
+SEARCHWORD     ON      #Search Word Report
+INTSEARCHQUERY ON      #Internal Search Query Report
+INTSEARCHWORD  ON      #Internal Search Word Report
+REDIRREF       ON      #Redirected Referrer Report
+FAILREF                ON      #Failed Referrer Report
+BROWSERREP     ON      #Browser Report
+BROWSERSUM     ON      #Browser Summary
+OSREP          ON      #Operating System Report
+VHOST          ON      #Virtual Host Report
+REDIRVHOST     ON      #Virtual Host Redirection Report
+FAILVHOST      ON      #Virtual Host Failure Report
+USER           ON      #User Report
+REDIRUSER      ON      #User Redirection Report
+FAILUSER       ON      #User Failure Report
+STATUS         ON      #Status Code Report
+
+#
+# You probably don't need to change anything below this until you are
+# experienced.
+#
+# ERRFILE errors.txt
+# REQINCLUDE pages
+LINKNOFOLLOW ON
+REQLINKINCLUDE pages
+REFLINKINCLUDE *
+REDIRREFLINKINCLUDE *
+FAILREFLINKINCLUDE *
+SUBBROW */*
+# OSCHARTEXPAND Windows
+
+# Add whichever of these types of pages you have on your server, or others.
+# PAGEINCLUDE *.shtml
+# PAGEINCLUDE *.asp
+# PAGEINCLUDE *.jsp
+# PAGEINCLUDE *.cfm
+# PAGEINCLUDE *.pl
+# PAGEINCLUDE *.php
+# PAGEINCLUDE *.aspx
+
+# SEARCHENGINE commands
+SEARCHENGINE http*://*/mamma.*/* query
+SEARCHENGINE http*://*/netfind* query
+SEARCHENGINE http*://*/pursuit query
+SEARCHENGINE http*://*aj.*/* ask
+SEARCHENGINE http*://*alltheweb.*/* query
+SEARCHENGINE http*://*altavista.*/* q
+SEARCHENGINE http*://*aol.*/* query
+SEARCHENGINE http*://*ask.*/* ask,q
+SEARCHENGINE http*://*askjeeves.*/* ask
+SEARCHENGINE http*://*baidu.*/* wd
+SEARCHENGINE http*://*bing.*/* q
+SEARCHENGINE http*://*directhit.*/* qry
+SEARCHENGINE http*://*dmoz.*/* search
+SEARCHENGINE http*://*dogpile.*/* q
+SEARCHENGINE http*://*duckduckgo.*/* q
+SEARCHENGINE http*://*ecosia.*/* q
+SEARCHENGINE http*://*excite.*/* search
+SEARCHENGINE http*://*go2net.*/* general
+SEARCHENGINE http*://*google.*/* q,as_q,as_epq,as_oq
+SEARCHENGINE http*://*goto.*/* Keywords
+SEARCHENGINE http*://*hotbot.com/* MT
+SEARCHENGINE http*://*info.*/* q
+SEARCHENGINE http*://*infoseek.*/* qt
+SEARCHENGINE http*://*ixquick.*/* metasearch.pl
+SEARCHENGINE http*://*looksmart.*/* key
+SEARCHENGINE http*://*lycos.*/* query
+SEARCHENGINE http*://*metacrawler.*/* general
+SEARCHENGINE http*://*mysearch.*/* searchfor
+SEARCHENGINE http*://*naver.*/* query
+SEARCHENGINE http*://*netfind.*/* query,search,s
+SEARCHENGINE http*://*netscape.*/* search
+SEARCHENGINE http*://*newhoo.*/* search
+SEARCHENGINE http*://*nlsearch.*/* qr
+SEARCHENGINE http*://*northernlight.*/* qr
+SEARCHENGINE http*://*search.*/* q
+SEARCHENGINE http*://*snap.*/* keyword
+SEARCHENGINE http*://*vivisimo.*/* search
+SEARCHENGINE http*://*webcrawler.*/* search,searchText,q
+SEARCHENGINE http*://*yahoo.*/* p
+SEARCHENGINE http*://*yandex.*/* text
+
+# Robots
+ROBOTINCLUDE REGEXPI:robot
+ROBOTINCLUDE REGEXPI:spider
+ROBOTINCLUDE REGEXPI:crawler
+
+ROBOTINCLUDE bingbot*
+ROBOTINCLUDE Googlebot*
+ROBOTINCLUDE Infoseek*
+ROBOTINCLUDE msnbot*
+ROBOTINCLUDE Scooter*
+ROBOTINCLUDE *Slurp*
+ROBOTINCLUDE Ultraseek*
+ROBOTINCLUDE *Validator*
+
+
+# Static Internet Documents
+TYPEOUTPUTALIAS .html    ".html   [Hypertext Markup Language]"
+TYPEOUTPUTALIAS .htm     ".htm    [Hypertext Markup Language]"
+TYPEOUTPUTALIAS .shtml   ".shtml  [Server-parsed HTML]"
+TYPEOUTPUTALIAS .ps      ".ps     [PostScript]"
+TYPEOUTPUTALIAS .gz      ".gz     [Gzip compressed files]"
+TYPEOUTPUTALIAS .tar.gz  ".tar.gz [Compressed archives]"
+TYPEOUTPUTALIAS .txt     ".txt    [Plain text Documents]"
+TYPEOUTPUTALIAS .cdf     ".cdf    [Channel Definition File]"
+# Scripting & Dynamic Internet Content Files
+TYPEOUTPUTALIAS .asp     ".asp    [Active Server Pages]"
+TYPEOUTPUTALIAS .aspx    ".aspx   [Active Server Pages .net]"
+TYPEOUTPUTALIAS .cgi     ".cgi    [CGI scripts]"
+TYPEOUTPUTALIAS .pl      ".pl     [Perl scripts]"
+TYPEOUTPUTALIAS .css     ".css    [Cascading Style Sheets]"
+TYPEOUTPUTALIAS .class   ".class  [Java class files]"
+TYPEOUTPUTALIAS .hqx     ".hqx    [Macintosh archives]"
+TYPEOUTPUTALIAS .jsp     ".jsp    [Java Server Pages]"
+TYPEOUTPUTALIAS .cfm     ".cfm    [Cold Fusion]"
+TYPEOUTPUTALIAS .php     ".php    [PHP Hypertext Processor]"
+TYPEOUTPUTALIAS .js      ".js     [JavaScript code]"
+TYPEOUTPUTALIAS .dll     ".dll    [Dynamic Link Library]"
+TYPEOUTPUTALIAS .asa     ".asa    [Web Server Scripting Configuration]"
+TYPEOUTPUTALIAS .url     ".url    [Windows Internet Shortcut]"
+TYPEOUTPUTALIAS .lnk     ".lnk    [Windows Explorer Shortcut]"
+TYPEOUTPUTALIAS .ini     ".ini    [Configuration Settings File]"
+TYPEOUTPUTALIAS .log     ".log    [Log Files]"
+TYPEOUTPUTALIAS .diz     ".diz    [DIZ Text File]"
+TYPEOUTPUTALIAS .inc     ".inc    [SSI Inclusion File]"
+TYPEOUTPUTALIAS .xml     ".xml    [eXtensible Markup Language File]"
+TYPEOUTPUTALIAS .rdf     ".rdf    [Resource Description Framework File]"
+TYPEOUTPUTALIAS .rb      ".rb     [Ruby script file]"
+# Image Files
+TYPEOUTPUTALIAS .jpg     ".jpg    [JPEG graphics]"
+TYPEOUTPUTALIAS .jpeg    ".jpeg   [JPEG graphics]"
+TYPEOUTPUTALIAS .jpe     ".jpe    [JPEG graphics]"
+TYPEOUTPUTALIAS .gif     ".gif    [GIF graphics]"
+TYPEOUTPUTALIAS .gfa     ".gfa    [GIF graphics]"
+TYPEOUTPUTALIAS .png     ".png    [Portable Network Graphics]"
+TYPEOUTPUTALIAS .bmp     ".bmp    [BitMap]"
+TYPEOUTPUTALIAS .bmz     ".bmz    [BitMap]"
+TYPEOUTPUTALIAS .dib     ".dib    [BitMap]"
+TYPEOUTPUTALIAS .rle     ".rle    [BitMap]"
+TYPEOUTPUTALIAS .2bp     ".2bp    [Windows CE 4 Tone BitMap]"
+TYPEOUTPUTALIAS .ico     ".ico    [Icon File]"
+TYPEOUTPUTALIAS .tif     ".tif    [Tag Image File Format]"
+TYPEOUTPUTALIAS .tiff    ".tiff   [Tag Image File Format]"
+TYPEOUTPUTALIAS .wmf     ".wmf    [Windows Metafile (ClipArt)]"
+TYPEOUTPUTALIAS .pct     ".pct    [Macintosh PICT]"
+TYPEOUTPUTALIAS .pict    ".pict   [Macintosh PICT]"
+TYPEOUTPUTALIAS .pcz     ".pcz    [Macintosh PICT Compressed]"
+TYPEOUTPUTALIAS .pcd     ".pcd    [Kodak Photo CD]"
+TYPEOUTPUTALIAS .pcx     ".pcx    [PC Paintbrush]"
+TYPEOUTPUTALIAS .cdr     ".cdr    [Corel Draw]"
+TYPEOUTPUTALIAS .cgm     ".cgm    [COmputer Graphics Metafile]"
+TYPEOUTPUTALIAS .eps     ".eps    [Encapsulated PostScript]"
+TYPEOUTPUTALIAS .fpx     ".fpx    [FPX Format]"
+TYPEOUTPUTALIAS .wpg     ".wpg    [WordPerfect Graphics]"
+TYPEOUTPUTALIAS .mix     ".mix    [Picture IT! Format]"
+TYPEOUTPUTALIAS .psd     ".psd    [Adobe Photoshop Document]"
+# Multimedia Audio, Video & Misc
+TYPEOUTPUTALIAS .wav     ".wav    [WAV sound files]"
+TYPEOUTPUTALIAS .avi     ".avi    [AVI movies]"
+TYPEOUTPUTALIAS .arc     ".arc    [Compressed archives]"
+TYPEOUTPUTALIAS .mid     ".mid    [MIDI sound files]"
+TYPEOUTPUTALIAS .midi    ".midi   [MIDI sound files]"
+TYPEOUTPUTALIAS .rmi     ".rmi    [MIDI sound files]"
+TYPEOUTPUTALIAS .ivf     ".ivf    [Indeo Video Format movie]"
+TYPEOUTPUTALIAS .aif     ".aif    [AIFF sound files]"
+TYPEOUTPUTALIAS .aifc    ".aifc   [AIFF sound files]"
+TYPEOUTPUTALIAS .aiff    ".aiff   [AIFF sound files]"
+TYPEOUTPUTALIAS .au      ".au     [AU sound files]"
+TYPEOUTPUTALIAS .snd     ".snd    [AU sound files]"
+TYPEOUTPUTALIAS .mp3     ".mp3    [MP3 sound files]"
+TYPEOUTPUTALIAS .rtf     ".rtf    [Rich Text Format]"
+TYPEOUTPUTALIAS .mov     ".mov    [Quick Time movie]"
+TYPEOUTPUTALIAS .mpg     ".mpg    [MPEG movie]"
+TYPEOUTPUTALIAS .mpeg    ".mpeg   [MPEG movie]"
+TYPEOUTPUTALIAS .m1v     ".m1v    [MPEG 1 Video]"
+TYPEOUTPUTALIAS .mp2v    ".mp2v   [MPEG 2 Video]"
+TYPEOUTPUTALIAS .mpe     ".mpe    [MPEG movie]"
+TYPEOUTPUTALIAS .wax     ".wax    [Windows Media Audio Extension]"
+TYPEOUTPUTALIAS .wvx     ".wvx    [Windows Media Video Extension]"
+TYPEOUTPUTALIAS .m3u     ".m3u    [MPEG 3 Audio]"
+TYPEOUTPUTALIAS .wma     ".wma    [Windows Media Audio]"
+TYPEOUTPUTALIAS .wmv     ".wmv    [Windows Media Video]"
+TYPEOUTPUTALIAS .ra      ".ra     [Real Audio File]"
+TYPEOUTPUTALIAS .ram     ".ram    [Real Audio Media]"
+TYPEOUTPUTALIAS .asf     ".asf    [Microsoft Advanced Streaming Format]"
+TYPEOUTPUTALIAS .asx     ".asx    [Microsoft Advanced Streaming Extensions]"
+TYPEOUTPUTALIAS .pdf     ".pdf    [Adobe Portable Document Format]"
+TYPEOUTPUTALIAS .swf     ".swf    [Macromedia Flash Object]"
+TYPEOUTPUTALIAS .ogg     ".ogg    [OGG sound files]"
+# Microsoft Office & Pocket Office
+TYPEOUTPUTALIAS .mdb     ".mdb    [Microsoft Access Database]"
+TYPEOUTPUTALIAS .ppv     ".ppv    [PowerPoint Viewer File]"
+TYPEOUTPUTALIAS .ppt     ".ppt    [PowerPoint File]"
+TYPEOUTPUTALIAS .xls     ".xls    [Excel SpreadSheet]"
+TYPEOUTPUTALIAS .doc     ".doc    [Microsoft Word Document]"
+TYPEOUTPUTALIAS .pwd     ".pwd    [Microsoft Pocket Word Document]"
+TYPEOUTPUTALIAS .pwt     ".pwt    [Microsoft Pocket Word Template]"
+TYPEOUTPUTALIAS .pxl     ".pxl    [Microsoft Pocket Excel Document]"
+TYPEOUTPUTALIAS .pxt     ".pxt    [Microsoft Pocket Excel Template]"
+TYPEOUTPUTALIAS .rtf     ".rtf    [Rich Text Format]"
+TYPEOUTPUTALIAS .pub     ".pub    [Publisher File]"
+TYPEOUTPUTALIAS .mps     ".mps    [Microsoft Pocket Streets Map]"
+TYPEOUTPUTALIAS .psm     ".psm    [Microsoft Pocket Automap Streets]"
+# Databases
+TYPEOUTPUTALIAS .db      ".db     [DataBase File]"
+TYPEOUTPUTALIAS .csv     ".csv    [CSV File]"
+TYPEOUTPUTALIAS .dbf     ".dbf    [Database File]"
+# Executables, Installations, Execution & Applications
+TYPEOUTPUTALIAS .msi     ".msi    [Microsoft Installer Package]"
+TYPEOUTPUTALIAS .cab     ".cab    [Cabnet Archive]"
+TYPEOUTPUTALIAS .bat     ".bat    [Batch Files]"
+TYPEOUTPUTALIAS .com     ".com    [Compiled Executable]"
+TYPEOUTPUTALIAS .exe     ".exe    [Executables]"
+TYPEOUTPUTALIAS .zip     ".zip    [Zip archives]"
+TYPEOUTPUTALIAS .hlp     ".hlp    [Windows Help Files]"
+TYPEOUTPUTALIAS .chm     ".chm    [Compiled HTML Help]"
+TYPEOUTPUTALIAS .dat     ".dat    [Internet Explorer Installer Data File]"
+TYPEOUTPUTALIAS .dll     ".dll    [Dynamic Link Library]"
+# Misc
+TYPEOUTPUTALIAS .iso     ".iso    [CD-ROM/DVD-ROM Image file]"
+TYPEOUTPUTALIAS .nrg     ".nrg    [Nero Burning ROM CD-ROM/DVD-ROM Image file]"
+TYPEOUTPUTALIAS .ida     ".ida    [IIS default.ida - Code Red II Attack]"
+TYPEOUTPUTALIAS .reg     ".reg    [Windows Registry META Data]"
+
+SUBTYPE *.gz,*.Z
diff --git a/apache2/apache2.conf b/apache2/apache2.conf
new file mode 100644 (file)
index 0000000..27d8173
--- /dev/null
@@ -0,0 +1,225 @@
+# This is the main Apache server configuration file.  It contains the
+# configuration directives that give the server its instructions.
+# See http://httpd.apache.org/docs/2.4/ for detailed information about
+# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
+# hints.
+#
+#
+# Summary of how the Apache 2 configuration works in Debian:
+# The Apache 2 web server configuration in Debian is quite different to
+# upstream's suggested way to configure the web server. This is because Debian's
+# default Apache2 installation attempts to make adding and removing modules,
+# virtual hosts, and extra configuration directives as flexible as possible, in
+# order to make automating the changes and administering the server as easy as
+# possible.
+
+# It is split into several files forming the configuration hierarchy outlined
+# below, all located in the /etc/apache2/ directory:
+#
+#      /etc/apache2/
+#      |-- apache2.conf
+#      |       `--  ports.conf
+#      |-- mods-enabled
+#      |       |-- *.load
+#      |       `-- *.conf
+#      |-- conf-enabled
+#      |       `-- *.conf
+#      `-- sites-enabled
+#              `-- *.conf
+#
+#
+# * apache2.conf is the main configuration file (this file). It puts the pieces
+#   together by including all remaining configuration files when starting up the
+#   web server.
+#
+# * ports.conf is always included from the main configuration file. It is
+#   supposed to determine listening ports for incoming connections which can be
+#   customized anytime.
+#
+# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
+#   directories contain particular configuration snippets which manage modules,
+#   global configuration fragments, or virtual host configurations,
+#   respectively.
+#
+#   They are activated by symlinking available configuration files from their
+#   respective *-available/ counterparts. These should be managed by using our
+#   helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
+#   their respective man pages for detailed information.
+#
+# * The binary is called apache2. Due to the use of environment variables, in
+#   the default configuration, apache2 needs to be started/stopped with
+#   /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
+#   work with the default configuration.
+
+
+# Global configuration
+#
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# NOTE!  If you intend to place this on an NFS (or otherwise network)
+# mounted filesystem then please read the Mutex documentation (available
+# at <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
+# you will save yourself a lot of trouble.
+#
+# Do NOT add a slash at the end of the directory path.
+#
+#ServerRoot "/etc/apache2"
+
+#
+# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
+#
+#Mutex file:${APACHE_LOCK_DIR} default
+
+#
+# The directory where shm and other runtime files will be stored.
+#
+
+DefaultRuntimeDir ${APACHE_RUN_DIR}
+
+#
+# PidFile: The file in which the server should record its process
+# identification number when it starts.
+# This needs to be set in /etc/apache2/envvars
+#
+PidFile ${APACHE_PID_FILE}
+
+#
+# Timeout: The number of seconds before receives and sends time out.
+#
+Timeout 300
+
+#
+# KeepAlive: Whether or not to allow persistent connections (more than
+# one request per connection). Set to "Off" to deactivate.
+#
+KeepAlive On
+
+#
+# MaxKeepAliveRequests: The maximum number of requests to allow
+# during a persistent connection. Set to 0 to allow an unlimited amount.
+# We recommend you leave this number high, for maximum performance.
+#
+MaxKeepAliveRequests 100
+
+#
+# KeepAliveTimeout: Number of seconds to wait for the next request from the
+# same client on the same connection.
+#
+KeepAliveTimeout 5
+
+
+# These need to be set in /etc/apache2/envvars
+User ${APACHE_RUN_USER}
+Group ${APACHE_RUN_GROUP}
+
+#
+# HostnameLookups: Log the names of clients or just their IP addresses
+# e.g., www.apache.org (on) or 204.62.129.132 (off).
+# The default is off because it'd be overall better for the net if people
+# had to knowingly turn this feature on, since enabling it means that
+# each client request will result in AT LEAST one lookup request to the
+# nameserver.
+#
+HostnameLookups Off
+
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a <VirtualHost>
+# container, error messages relating to that virtual host will be
+# logged here.  If you *do* define an error logfile for a <VirtualHost>
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog ${APACHE_LOG_DIR}/error.log
+
+#
+# LogLevel: Control the severity of messages logged to the error_log.
+# Available values: trace8, ..., trace1, debug, info, notice, warn,
+# error, crit, alert, emerg.
+# It is also possible to configure the log level for particular modules, e.g.
+# "LogLevel info ssl:warn"
+#
+LogLevel warn
+
+# Include module configuration:
+IncludeOptional mods-enabled/*.load
+IncludeOptional mods-enabled/*.conf
+
+# Include list of ports to listen on
+Include ports.conf
+
+
+# Sets the default security model of the Apache2 HTTPD server. It does
+# not allow access to the root filesystem outside of /usr/share and /var/www.
+# The former is used by web applications packaged in Debian,
+# the latter may be used for local directories served by the web server. If
+# your system is serving content from a sub-directory in /srv you must allow
+# access here, or in any related virtual host.
+<Directory />
+       Options FollowSymLinks
+       AllowOverride None
+       Require all denied
+</Directory>
+
+<Directory /usr/share>
+       AllowOverride None
+       Require all granted
+</Directory>
+
+<Directory /var/www/>
+       Options Indexes FollowSymLinks
+       AllowOverride None
+       Require all granted
+</Directory>
+
+#<Directory /srv/>
+#      Options Indexes FollowSymLinks
+#      AllowOverride None
+#      Require all granted
+#</Directory>
+
+
+
+
+# AccessFileName: The name of the file to look for in each directory
+# for additional configuration directives.  See also the AllowOverride
+# directive.
+#
+AccessFileName .htaccess
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being
+# viewed by Web clients.
+#
+<FilesMatch "^\.ht">
+       Require all denied
+</FilesMatch>
+
+
+#
+# The following directives define some format nicknames for use with
+# a CustomLog directive.
+#
+# These deviate from the Common Log Format definitions in that they use %O
+# (the actual bytes sent including headers) instead of %b (the size of the
+# requested file), because the latter makes it impossible to detect partial
+# requests.
+#
+# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended.
+# Use mod_remoteip instead.
+#
+LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
+LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
+LogFormat "%h %l %u %t \"%r\" %>s %O" common
+LogFormat "%{Referer}i -> %U" referer
+LogFormat "%{User-agent}i" agent
+
+# Include of directories ignores editors' and dpkg's backup files,
+# see README.Debian for details.
+
+# Include generic snippets of statements
+IncludeOptional conf-enabled/*.conf
+
+# Include the virtual host configurations:
+IncludeOptional sites-enabled/*.conf
diff --git a/apache2/conf-available/apache2-doc.conf b/apache2/conf-available/apache2-doc.conf
new file mode 100644 (file)
index 0000000..475c6cc
--- /dev/null
@@ -0,0 +1,9 @@
+Alias /manual /usr/share/doc/apache2-doc/manual/
+
+<Directory "/usr/share/doc/apache2-doc/manual/">
+    Options Indexes FollowSymlinks
+    AllowOverride None
+    Require all granted
+    AddDefaultCharset off
+</Directory>
+
diff --git a/apache2/conf-available/charset.conf b/apache2/conf-available/charset.conf
new file mode 100644 (file)
index 0000000..40d7198
--- /dev/null
@@ -0,0 +1,6 @@
+# Read the documentation before enabling AddDefaultCharset.
+# In general, it is only a good idea if you know that all your files
+# have this encoding. It will override any encoding given in the files
+# in meta http-equiv or xml encoding tags.
+
+#AddDefaultCharset UTF-8
diff --git a/apache2/conf-available/javascript-common.conf b/apache2/conf-available/javascript-common.conf
new file mode 100644 (file)
index 0000000..7e5dbd3
--- /dev/null
@@ -0,0 +1,5 @@
+Alias /javascript /usr/share/javascript/
+
+<Directory "/usr/share/javascript/">
+       Options FollowSymLinks MultiViews
+</Directory>
diff --git a/apache2/conf-available/localized-error-pages.conf b/apache2/conf-available/localized-error-pages.conf
new file mode 100644 (file)
index 0000000..a3a198a
--- /dev/null
@@ -0,0 +1,79 @@
+# Customizable error responses come in three flavors:
+# 1) plain text
+# 2) local redirects
+# 3) external redirects
+#
+# Some examples:
+#ErrorDocument 500 "The server made a boo boo."
+#ErrorDocument 404 /missing.html
+#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
+#ErrorDocument 402 http://www.example.com/subscription_info.html
+#
+
+#
+# Putting this all together, we can internationalize error responses.
+#
+# We use Alias to redirect any /error/HTTP_<error>.html.var response to
+# our collection of by-error message multi-language collections.  We use
+# includes to substitute the appropriate text.
+#
+# You can modify the messages' appearance without changing any of the
+# default HTTP_<error>.html.var files by adding the line:
+#
+#Alias /error/include/ "/your/include/path/"
+#
+# which allows you to create your own set of files by starting with the
+# /usr/share/apache2/error/include/ files and copying them to /your/include/path/,
+# even on a per-VirtualHost basis.  If you include the Alias in the global server
+# context, is has to come _before_ the 'Alias /error/ ...' line.
+#
+# The default include files will display your Apache version number and your
+# ServerAdmin email address regardless of the setting of ServerSignature.
+#
+# WARNING: The configuration below will NOT work out of the box if you have a
+#                SetHandler directive in a <Location /> context somewhere. Adding
+#                the following three lines AFTER the <Location /> context should
+#                make it work in most cases:
+#                <Location /error/>
+#                       SetHandler none
+#                </Location>
+#
+# The internationalized error documents require mod_alias, mod_include
+# and mod_negotiation.  To activate them, uncomment the following 37 lines.
+
+#<IfModule mod_negotiation.c>
+#      <IfModule mod_include.c>
+#              <IfModule mod_alias.c>
+#
+#                      Alias /error/ "/usr/share/apache2/error/"
+#
+#                      <Directory "/usr/share/apache2/error">
+#                              Options IncludesNoExec
+#                              AddOutputFilter Includes html
+#                              AddHandler type-map var
+#                              Order allow,deny
+#                              Allow from all
+#                              LanguagePriority en cs de es fr it nl sv pt-br ro
+#                              ForceLanguagePriority Prefer Fallback
+#                      </Directory>
+#
+#                      ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
+#                      ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
+#                      ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
+#                      ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
+#                      ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
+#                      ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
+#                      ErrorDocument 410 /error/HTTP_GONE.html.var
+#                      ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
+#                      ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
+#                      ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
+#                      ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
+#                      ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
+#                      ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
+#                      ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
+#                      ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
+#                      ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
+#                      ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
+#              </IfModule>
+#      </IfModule>
+#</IfModule>
diff --git a/apache2/conf-available/other-vhosts-access-log.conf b/apache2/conf-available/other-vhosts-access-log.conf
new file mode 100644 (file)
index 0000000..9f7aecd
--- /dev/null
@@ -0,0 +1,2 @@
+# Define an access log for VirtualHosts that don't define their own logfile
+CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined
diff --git a/apache2/conf-available/security.conf b/apache2/conf-available/security.conf
new file mode 100644 (file)
index 0000000..cad7dc1
--- /dev/null
@@ -0,0 +1,58 @@
+# Changing the following options will not really affect the security of the
+# server, but might make attacks slightly more difficult in some cases.
+
+#
+# ServerTokens
+# This directive configures what you return as the Server HTTP response
+# Header. The default is 'Full' which sends information about the OS-Type
+# and compiled in modules.
+# Set to one of:  Full | OS | Minimal | Minor | Major | Prod
+# where Full conveys the most information, and Prod the least.
+#ServerTokens Minimal
+ServerTokens OS
+#ServerTokens Full
+
+#
+# Optionally add a line containing the server version and virtual host
+# name to server-generated pages (internal error documents, FTP directory
+# listings, mod_status and mod_info output etc., but not CGI generated
+# documents or custom error documents).
+# Set to "EMail" to also include a mailto: link to the ServerAdmin.
+# Set to one of:  On | Off | EMail
+#ServerSignature Off
+ServerSignature On
+
+#
+# Allow TRACE method
+#
+# Set to "extended" to also reflect the request body (only for testing and
+# diagnostic purposes).
+#
+# Set to one of:  On | Off | extended
+TraceEnable Off
+#TraceEnable On
+
+#
+# Forbid access to version control directories
+#
+# If you use version control systems in your document root, you should
+# probably deny access to their directories.
+#
+# Examples:
+#
+#RedirectMatch 404 /\.git
+#RedirectMatch 404 /\.svn
+
+#
+# Setting this header will prevent MSIE from interpreting files as something
+# else than declared by the content type in the HTTP headers.
+# Requires mod_headers to be enabled.
+#
+#Header set X-Content-Type-Options: "nosniff"
+
+#
+# Setting this header will prevent other sites from embedding pages from this
+# site as frames. This defends against clickjacking attacks.
+# Requires mod_headers to be enabled.
+#
+#Header set Content-Security-Policy "frame-ancestors 'self';"
diff --git a/apache2/conf-available/serve-cgi-bin.conf b/apache2/conf-available/serve-cgi-bin.conf
new file mode 100644 (file)
index 0000000..ae660b1
--- /dev/null
@@ -0,0 +1,18 @@
+<IfModule mod_alias.c>
+       <IfModule mod_cgi.c>
+               Define ENABLE_USR_LIB_CGI_BIN
+       </IfModule>
+
+       <IfModule mod_cgid.c>
+               Define ENABLE_USR_LIB_CGI_BIN
+       </IfModule>
+
+       <IfDefine ENABLE_USR_LIB_CGI_BIN>
+               ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
+               <Directory "/usr/lib/cgi-bin">
+                       AllowOverride None
+                       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
+                       Require all granted
+               </Directory>
+       </IfDefine>
+</IfModule>
diff --git a/apache2/conf-enabled/charset.conf b/apache2/conf-enabled/charset.conf
new file mode 120000 (symlink)
index 0000000..4a6ca08
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/charset.conf
\ No newline at end of file
diff --git a/apache2/conf-enabled/javascript-common.conf b/apache2/conf-enabled/javascript-common.conf
new file mode 120000 (symlink)
index 0000000..0a4baa4
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/javascript-common.conf
\ No newline at end of file
diff --git a/apache2/conf-enabled/localized-error-pages.conf b/apache2/conf-enabled/localized-error-pages.conf
new file mode 120000 (symlink)
index 0000000..6e5ddaf
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/localized-error-pages.conf
\ No newline at end of file
diff --git a/apache2/conf-enabled/other-vhosts-access-log.conf b/apache2/conf-enabled/other-vhosts-access-log.conf
new file mode 120000 (symlink)
index 0000000..8af91e5
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/other-vhosts-access-log.conf
\ No newline at end of file
diff --git a/apache2/conf-enabled/security.conf b/apache2/conf-enabled/security.conf
new file mode 120000 (symlink)
index 0000000..036c97f
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/security.conf
\ No newline at end of file
diff --git a/apache2/conf-enabled/serve-cgi-bin.conf b/apache2/conf-enabled/serve-cgi-bin.conf
new file mode 120000 (symlink)
index 0000000..d917f68
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/serve-cgi-bin.conf
\ No newline at end of file
diff --git a/apache2/envvars b/apache2/envvars
new file mode 100644 (file)
index 0000000..708d170
--- /dev/null
@@ -0,0 +1,47 @@
+# envvars - default environment variables for apache2ctl
+
+# this won't be correct after changing uid
+unset HOME
+
+# for supporting multiple apache2 instances
+if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
+       SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}"
+else
+       SUFFIX=
+fi
+
+# Since there is no sane way to get the parsed apache2 config in scripts, some
+# settings are defined via environment variables and then used in apache2ctl,
+# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
+export APACHE_RUN_USER=www-data
+export APACHE_RUN_GROUP=www-data
+# temporary state file location. This might be changed to /run in Wheezy+1
+export APACHE_PID_FILE=/var/run/apache2$SUFFIX/apache2.pid
+export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
+export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX
+# Only /var/log/apache2 is handled by /etc/logrotate.d/apache2.
+export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
+
+## The locale used by some modules like mod_dav
+export LANG=C
+## Uncomment the following line to use the system default locale instead:
+#. /etc/default/locale
+
+export LANG
+
+## The command to get the status for 'apache2ctl status'.
+## Some packages providing 'www-browser' need '--dump' instead of '-dump'.
+#export APACHE_LYNX='www-browser -dump'
+
+## If you need a higher file descriptor limit, uncomment and adjust the
+## following line (default is 8192):
+#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'
+
+## If you would like to pass arguments to the web server, add them below
+## to the APACHE_ARGUMENTS environment.
+#export APACHE_ARGUMENTS=''
+
+## Enable the debug mode for maintainer scripts.
+## This will produce a verbose output on package installations of web server modules and web application
+## installations which interact with Apache
+#export APACHE2_MAINTSCRIPT_DEBUG=1
diff --git a/apache2/magic b/apache2/magic
new file mode 100644 (file)
index 0000000..cdf9ac5
--- /dev/null
@@ -0,0 +1,935 @@
+# Magic data for mod_mime_magic (originally for file(1) command)
+#
+# The format is 4-5 columns:
+#    Column #1: byte number to begin checking from, ">" indicates continuation
+#    Column #2: type of data to match
+#    Column #3: contents of data to match
+#    Column #4: MIME type of result
+#    Column #5: MIME encoding of result (optional)
+
+#------------------------------------------------------------------------------
+# Localstuff:  file(1) magic for locally observed files
+# Add any locally observed files here.
+
+# Real Audio (Magic .ra\0375)
+0      belong          0x2e7261fd      audio/x-pn-realaudio
+0      string          .RMF            application/vnd.rn-realmedia
+
+#video/x-pn-realvideo
+#video/vnd.rn-realvideo
+#application/vnd.rn-realmedia
+#      sigh, there are many mimes for that but the above are the most common.
+
+# Taken from magic, converted to magic.mime
+# mime types according to http://www.geocities.com/nevilo/mod.htm:
+#      audio/it        .it
+#      audio/x-zipped-it       .itz
+#      audio/xm        fasttracker modules
+#      audio/x-s3m     screamtracker modules
+#      audio/s3m       screamtracker modules
+#      audio/x-zipped-mod      mdz
+#      audio/mod       mod
+#      audio/x-mod     All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
+
+# Taken from loader code from mikmod version 2.14
+# by Steve McIntyre (stevem@chiark.greenend.org.uk)
+# <doj@cubic.org> added title printing on 2003-06-24
+0      string  MAS_UTrack_V00
+>14    string  >/0             audio/x-mod
+#audio/x-tracker-module
+
+#0     string  UN05            MikMod UNI format module sound data
+
+0      string  Extended\ Module: audio/x-mod
+#audio/x-tracker-module
+##>17  string  >\0             Title: "%s"
+
+21     string/c        \!SCREAM!       audio/x-mod
+#audio/x-screamtracker-module
+21     string  BMOD2STM        audio/x-mod
+#audio/x-screamtracker-module
+1080   string  M.K.            audio/x-mod
+#audio/x-protracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  M!K!            audio/x-mod
+#audio/x-protracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  FLT4            audio/x-mod
+#audio/x-startracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  FLT8            audio/x-mod
+#audio/x-startracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  4CHN            audio/x-mod
+#audio/x-fasttracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  6CHN            audio/x-mod
+#audio/x-fasttracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  8CHN            audio/x-mod
+#audio/x-fasttracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  CD81            audio/x-mod
+#audio/x-oktalyzer-tracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  OKTA            audio/x-mod
+#audio/x-oktalyzer-tracker-module
+#>0    string  >\0             Title: "%s"
+# Not good enough.
+#1082  string  CH
+#>1080 string  >/0             %.2s-channel Fasttracker "oktalyzer" module sound data
+1080   string  16CN            audio/x-mod
+#audio/x-taketracker-module
+#>0    string  >\0             Title: "%s"
+1080   string  32CN            audio/x-mod
+#audio/x-taketracker-module
+#>0    string  >\0             Title: "%s"
+
+# Impuse tracker module (it)
+0      string          IMPM            audio/x-mod
+#>4    string          >\0             "%s"
+#>40   leshort         !0              compatible w/ITv%x
+#>42   leshort         !0              created w/ITv%x
+
+#------------------------------------------------------------------------------
+# end local stuff
+#------------------------------------------------------------------------------
+
+# xml based formats!
+
+# svg
+
+0      string          \<?xml
+#                      text/xml
+>38    string          \<\!DOCTYPE\040svg      image/svg+xml
+
+
+# xml
+0      string          \<?xml                  text/xml
+
+
+#------------------------------------------------------------------------------
+# Java
+
+0      short           0xcafe
+>2     short           0xbabe          application/java
+
+#------------------------------------------------------------------------------
+# audio:  file(1) magic for sound formats
+#
+# from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
+#
+
+# Sun/NeXT audio data
+0      string          .snd
+>12    belong          1               audio/basic
+>12    belong          2               audio/basic
+>12    belong          3               audio/basic
+>12    belong          4               audio/basic
+>12    belong          5               audio/basic
+>12    belong          6               audio/basic
+>12    belong          7               audio/basic
+
+>12    belong          23              audio/x-adpcm
+
+# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
+# that uses little-endian encoding and has a different magic number
+# (0x0064732E in little-endian encoding).
+0      lelong          0x0064732E      
+>12    lelong          1               audio/x-dec-basic
+>12    lelong          2               audio/x-dec-basic
+>12    lelong          3               audio/x-dec-basic
+>12    lelong          4               audio/x-dec-basic
+>12    lelong          5               audio/x-dec-basic
+>12    lelong          6               audio/x-dec-basic
+>12    lelong          7               audio/x-dec-basic
+#                                       compressed (G.721 ADPCM)
+>12    lelong          23              audio/x-dec-adpcm
+
+# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
+#                                      AIFF audio data
+8      string          AIFF            audio/x-aiff    
+#                                      AIFF-C audio data
+8      string          AIFC            audio/x-aiff    
+#                                      IFF/8SVX audio data
+8      string          8SVX            audio/x-aiff    
+
+
+
+# Creative Labs AUDIO stuff
+#                                      Standard MIDI data
+0      string  MThd                    audio/unknown   
+#>9    byte    >0                      (format %d)
+#>11   byte    >1                      using %d channels
+#                                      Creative Music (CMF) data
+0      string  CTMF                    audio/unknown   
+#                                      SoundBlaster instrument data
+0      string  SBI                     audio/unknown   
+#                                      Creative Labs voice data
+0      string  Creative\ Voice\ File   audio/unknown   
+## is this next line right?  it came this way...
+#>19   byte    0x1A
+#>23   byte    >0                      - version %d
+#>22   byte    >0                      \b.%d
+
+# [GRR 950115:  is this also Creative Labs?  Guessing that first line
+#  should be string instead of unknown-endian long...]
+#0     long            0x4e54524b      MultiTrack sound data
+#0     string          NTRK            MultiTrack sound data
+#>4    long            x               - version %ld
+
+# Microsoft WAVE format (*.wav)
+# [GRR 950115:  probably all of the shorts and longs should be leshort/lelong]
+#                                      Microsoft RIFF
+0      string          RIFF
+#                                      - WAVE format
+>8     string          WAVE            audio/x-wav
+>8     string/B        AVI             video/x-msvideo
+#
+>8     string          CDRA            image/x-coreldraw
+
+# AAC (aka MPEG-2 NBC)
+0       beshort&0xfff6    0xfff0          audio/X-HX-AAC-ADTS
+0       string          ADIF            audio/X-HX-AAC-ADIF
+0       beshort&0xffe0  0x56e0          audio/MP4A-LATM
+0       beshort         0x4De1          audio/MP4A-LATM
+
+# MPEG Layer 3 sound files
+0       beshort&0xfffe  =0xfffa         audio/mpeg
+#MP3 with ID3 tag
+0      string          ID3             audio/mpeg
+# Ogg/Vorbis
+0      string          OggS            application/ogg
+
+#------------------------------------------------------------------------------
+# c-lang:  file(1) magic for C programs or various scripts
+#
+
+# XPM icons (Greg Roelofs, newt@uchicago.edu)
+# ideally should go into "images", but entries below would tag XPM as C source
+0      string          /*\ XPM         image/x-xpmi 7bit
+
+# 3DS (3d Studio files)
+#16    beshort         0x3d3d          image/x-3ds
+
+# this first will upset you if you're a PL/1 shop... (are there any left?)
+# in which case rm it; ascmagic will catch real C programs
+#                                      C or REXX program text
+#0     string          /*              text/x-c
+#                                      C++ program text
+#0     string          //              text/x-c++
+
+#------------------------------------------------------------------------------
+# commands:  file(1) magic for various shells and interpreters
+#
+#0       string          :\ shell archive or commands for antique kernel text
+0       string          #!/bin/sh               application/x-shellscript
+0       string          #!\ /bin/sh             application/x-shellscript
+0       string          #!/bin/csh              application/x-shellscript
+0       string          #!\ /bin/csh            application/x-shellscript
+# korn shell magic, sent by George Wu, gwu@clyde.att.com
+0       string          #!/bin/ksh              application/x-shellscript
+0       string          #!\ /bin/ksh            application/x-shellscript
+0       string          #!/bin/tcsh             application/x-shellscript
+0       string          #!\ /bin/tcsh           application/x-shellscript
+0       string          #!/usr/local/tcsh       application/x-shellscript
+0       string          #!\ /usr/local/tcsh     application/x-shellscript
+0       string          #!/usr/local/bin/tcsh   application/x-shellscript
+0       string          #!\ /usr/local/bin/tcsh application/x-shellscript
+# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
+0       string          #!/bin/bash                    application/x-shellscript
+0       string          #!\ /bin/bash           application/x-shellscript
+0       string          #!/usr/local/bin/bash   application/x-shellscript
+0       string          #!\ /usr/local/bin/bash application/x-shellscript
+
+#
+# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
+0       string          #!/bin/zsh             application/x-shellscript
+0       string          #!/usr/bin/zsh         application/x-shellscript
+0       string          #!/usr/local/bin/zsh    application/x-shellscript
+0       string          #!\ /usr/local/bin/zsh  application/x-shellscript
+0       string          #!/usr/local/bin/ash    application/x-shellscript
+0       string          #!\ /usr/local/bin/ash  application/x-shellscript
+#0       string          #!/usr/local/bin/ae     Neil Brown's ae
+#0       string          #!\ /usr/local/bin/ae   Neil Brown's ae
+0       string          #!/bin/nawk             application/x-nawk
+0       string          #!\ /bin/nawk           application/x-nawk
+0       string          #!/usr/bin/nawk         application/x-nawk
+0       string          #!\ /usr/bin/nawk       application/x-nawk
+0       string          #!/usr/local/bin/nawk   application/x-nawk
+0       string          #!\ /usr/local/bin/nawk application/x-nawk
+0       string          #!/bin/gawk             application/x-gawk
+0       string          #!\ /bin/gawk           application/x-gawk
+0       string          #!/usr/bin/gawk         application/x-gawk
+0       string          #!\ /usr/bin/gawk       application/x-gawk
+0       string          #!/usr/local/bin/gawk   application/x-gawk
+0       string          #!\ /usr/local/bin/gawk application/x-gawk
+#
+0       string          #!/bin/awk              application/x-awk
+0       string          #!\ /bin/awk            application/x-awk
+0       string          #!/usr/bin/awk          application/x-awk
+0       string          #!\ /usr/bin/awk        application/x-awk
+# update to distinguish from *.vcf files by Joerg Jenderek: joerg dot jenderek at web dot de
+#0     regex           BEGIN[[:space:]]*[{]    application/x-awk
+
+# For Larry Wall's perl language.  The ``eval'' line recognizes an
+# outrageously clever hack for USG systems.
+#                               Keith Waclena <keith@cerberus.uchicago.edu>
+0       string          #!/bin/perl                     application/x-perl
+0       string          #!\ /bin/perl                   application/x-perl
+0       string          eval\ "exec\ /bin/perl          application/x-perl
+0       string          #!/usr/bin/perl                 application/x-perl
+0       string          #!\ /usr/bin/perl               application/x-perl
+0       string          eval\ "exec\ /usr/bin/perl      application/x-perl
+0       string          #!/usr/local/bin/perl           application/x-perl
+0       string          #!\ /usr/local/bin/perl         application/x-perl
+0       string          eval\ "exec\ /usr/local/bin/perl application/x-perl
+
+#------------------------------------------------------------------------------
+# compress:  file(1) magic for pure-compression formats (no archives)
+#
+# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
+#
+# Formats for various forms of compressed data
+# Formats for "compress" proper have been moved into "compress.c",
+# because it tries to uncompress it to figure out what's inside.
+
+# standard unix compress
+#0     string          \037\235        application/x-compress
+
+# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
+#0       string          \037\213        application/x-gzip
+
+0              string                  PK\003\004              application/x-zip
+
+# RAR archiver (Greg Roelofs, newt@uchicago.edu)
+0      string          Rar!            application/x-rar
+
+# According to gzip.h, this is the correct byte order for packed data.
+0      string          \037\036        application/octet-stream
+#
+# This magic number is byte-order-independent.
+#
+0      short           017437          application/octet-stream
+
+# XXX - why *two* entries for "compacted data", one of which is
+# byte-order independent, and one of which is byte-order dependent?
+#
+# compacted data
+0      short           0x1fff          application/octet-stream
+0      string          \377\037        application/octet-stream
+# huf output
+0      short           0145405         application/octet-stream
+
+# Squeeze and Crunch...
+# These numbers were gleaned from the Unix versions of the programs to
+# handle these formats.  Note that I can only uncrunch, not crunch, and
+# I didn't have a crunched file handy, so the crunch number is untested.
+#                              Keith Waclena <keith@cerberus.uchicago.edu>
+#0     leshort         0x76FF          squeezed data (CP/M, DOS)
+#0     leshort         0x76FE          crunched data (CP/M, DOS)
+
+# Freeze
+#0     string          \037\237        Frozen file 2.1
+#0     string          \037\236        Frozen file 1.0 (or gzip 0.5)
+
+# lzh?
+#0     string          \037\240        LZH compressed data
+
+257    string          ustar\0         application/x-tar       posix
+257    string          ustar\040\040\0         application/x-tar       gnu
+
+0      short           070707          application/x-cpio
+0      short           0143561         application/x-cpio      swapped
+
+0      string          =<ar>           application/x-archive
+0      string          \!<arch>        application/x-archive
+>8     string          debian          application/x-debian-package
+
+#------------------------------------------------------------------------------
+#
+# RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
+#
+0       beshort         0xedab
+>2      beshort         0xeedb          application/x-rpm
+
+0      lelong&0x8080ffff       0x0000081a      application/x-arc       lzw
+0      lelong&0x8080ffff       0x0000091a      application/x-arc       squashed
+0      lelong&0x8080ffff       0x0000021a      application/x-arc       uncompressed
+0      lelong&0x8080ffff       0x0000031a      application/x-arc       packed
+0      lelong&0x8080ffff       0x0000041a      application/x-arc       squeezed
+0      lelong&0x8080ffff       0x0000061a      application/x-arc       crunched
+
+0      leshort 0xea60  application/x-arj
+
+# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
+2      string  -lh0-   application/x-lharc     lh0
+2      string  -lh1-   application/x-lharc     lh1
+2      string  -lz4-   application/x-lharc     lz4
+2      string  -lz5-   application/x-lharc     lz5
+#      [never seen any but the last; -lh4- reported in comp.compression:]
+2      string  -lzs-   application/x-lha       lzs
+2      string  -lh\ -  application/x-lha       lh
+2      string  -lhd-   application/x-lha       lhd
+2      string  -lh2-   application/x-lha       lh2
+2      string  -lh3-   application/x-lha       lh3
+2      string  -lh4-   application/x-lha       lh4
+2      string  -lh5-   application/x-lha       lh5
+2      string  -lh6-   application/x-lha       lh6
+2      string  -lh7-   application/x-lha       lh7
+# Shell archives
+10     string  #\ This\ is\ a\ shell\ archive  application/octet-stream        x-shell
+
+#------------------------------------------------------------------------------
+# frame:  file(1) magic for FrameMaker files
+#
+# This stuff came on a FrameMaker demo tape, most of which is
+# copyright, but this file is "published" as witness the following:
+#
+0      string          \<MakerFile     application/x-frame
+0      string          \<MIFFile       application/x-frame
+0      string          \<MakerDictionary       application/x-frame
+0      string          \<MakerScreenFon        application/x-frame
+0      string          \<MML           application/x-frame
+0      string          \<Book          application/x-frame
+0      string          \<Maker         application/x-frame
+
+#------------------------------------------------------------------------------
+# html:  file(1) magic for HTML (HyperText Markup Language) docs
+#
+# from Daniel Quinlan <quinlan@yggdrasil.com>
+#
+0      string/cB       \<!DOCTYPE\ html        text/html
+0      string/cb       \<head  text/html
+0      string/cb       \<title text/html
+0       string/bc      \<html  text/html
+0      string          \<!--   text/html
+0      string/c        \<h1    text/html
+
+0      string          \<?xml                  text/xml
+
+#------------------------------------------------------------------------------
+# images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
+#
+# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
+# additions by janl@ifi.uio.no as well as others. Jan also suggested
+# merging several one- and two-line files into here.
+#
+# XXX - byte order for GIF and TIFF fields?
+# [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
+#
+
+# [GRR:  what the hell is this doing in here?]
+#0     string          xbtoa           btoa'd file
+
+# PBMPLUS
+#                                      PBM file
+0      string          P1              image/x-portable-bitmap 7bit
+#                                      PGM file
+0      string          P2              image/x-portable-greymap        7bit
+#                                      PPM file
+0      string          P3              image/x-portable-pixmap 7bit
+#                                      PBM "rawbits" file
+0      string          P4              image/x-portable-bitmap
+#                                      PGM "rawbits" file
+0      string          P5              image/x-portable-greymap
+#                                      PPM "rawbits" file
+0      string          P6              image/x-portable-pixmap
+
+# NIFF (Navy Interchange File Format, a modification of TIFF)
+# [GRR:  this *must* go before TIFF]
+0      string          IIN1            image/x-niff
+
+# TIFF and friends
+#                                      TIFF file, big-endian
+0      string          MM              image/tiff
+#                                      TIFF file, little-endian
+0      string          II              image/tiff
+
+# possible GIF replacements; none yet released!
+# (Greg Roelofs, newt@uchicago.edu)
+#
+# GRR 950115:  this was mine ("Zip GIF"):
+#                                      ZIF image (GIF+deflate alpha)
+0      string          GIF94z          image/unknown
+#
+# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
+#                                      FGF image (GIF+deflate beta)
+0      string          FGF95a          image/unknown
+#
+# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
+# (best; not yet implemented):
+#                                      PBF image (deflate compression)
+0      string          PBF             image/unknown
+
+# GIF
+0      string          GIF             image/gif
+
+# JPEG images
+0      beshort         0xffd8          image/jpeg
+
+# PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
+0      string          BM              image/x-ms-bmp
+#>14   byte            12              (OS/2 1.x format)
+#>14   byte            64              (OS/2 2.x format)
+#>14   byte            40              (Windows 3.x format)
+#0     string          IC              icon
+#0     string          PI              pointer
+#0     string          CI              color icon
+#0     string          CP              color pointer
+#0     string          BA              bitmap array
+
+# CDROM Filesystems
+32769    string    CD001     application/x-iso9660
+
+# Newer StuffIt archives (grant@netbsd.org)
+0      string          StuffIt                 application/x-stuffit
+#>162  string          >0                      : %s
+
+# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
+# Daniel Quinlan, quinlan@yggdrasil.com
+11     string  must\ be\ converted\ with\ BinHex\ 4    application/mac-binhex40
+##>41  string  x                                       \b, version %.3s
+
+
+#------------------------------------------------------------------------------
+# lisp:  file(1) magic for lisp programs
+#
+# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
+0      string  ;;                      text/plain      8bit
+# Emacs 18 - this is always correct, but not very magical.
+0      string  \012(                   application/x-elc
+# Emacs 19
+0      string  ;ELC\023\000\000\000    application/x-elc
+
+#------------------------------------------------------------------------------
+# mail.news:  file(1) magic for mail and news
+#
+# There are tests to ascmagic.c to cope with mail and news.
+0      string          Relay-Version:  message/rfc822  7bit
+0      string          #!\ rnews       message/rfc822  7bit
+0      string          N#!\ rnews      message/rfc822  7bit
+0      string          Forward\ to     message/rfc822  7bit
+0      string          Pipe\ to        message/rfc822  7bit
+0      string          Return-Path:    message/rfc822  7bit
+0      string          Received:       message/rfc822
+0      string          Path:           message/news    8bit
+0      string          Xref:           message/news    8bit
+0      string          From:           message/rfc822  7bit
+0      string          Article         message/news    8bit
+#------------------------------------------------------------------------------
+# msword: file(1) magic for MS Word files
+#
+# Contributor claims:
+# Reversed-engineered MS Word magic numbers
+#
+
+0      string          \376\067\0\043                  application/msword
+0      string          \320\317\021\340\241\261        application/msword
+0      string          \333\245-\0\0\0                 application/msword
+
+
+
+#------------------------------------------------------------------------------
+# printer:  file(1) magic for printer-formatted files
+#
+
+# PostScript
+0      string          %!              application/postscript
+0      string          \004%!          application/postscript
+
+# Acrobat
+# (due to clamen@cs.cmu.edu)
+0      string          %PDF-           application/pdf
+
+#------------------------------------------------------------------------------
+# sc:  file(1) magic for "sc" spreadsheet
+#
+38     string          Spreadsheet     application/x-sc
+
+#------------------------------------------------------------------------------
+# tex:  file(1) magic for TeX files
+#
+# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
+#
+# From <conklin@talisman.kaleida.com>
+
+# Although we may know the offset of certain text fields in TeX DVI
+# and font files, we can't use them reliably because they are not
+# zero terminated. [but we do anyway, christos]
+0      string          \367\002        application/x-dvi
+#0     string          \367\203        TeX generic font data
+#0     string          \367\131        TeX packed font data
+#0     string          \367\312        TeX virtual font data
+#0     string          This\ is\ TeX,  TeX transcript text     
+#0     string          This\ is\ METAFONT,     METAFONT transcript text
+
+# There is no way to detect TeX Font Metric (*.tfm) files without
+# breaking them apart and reading the data.  The following patterns
+# match most *.tfm files generated by METAFONT or afm2tfm.
+2      string          \000\021        application/x-tex-tfm
+2      string          \000\022        application/x-tex-tfm
+#>34   string          >\0             (%s)
+
+# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
+0      string          \\input\ texinfo                text/x-texinfo
+0      string          This\ is\ Info\ file    text/x-info
+
+# correct TeX magic for Linux (and maybe more)
+# from Peter Tobias (tobias@server.et-inf.fho-emden.de)
+#
+0      leshort         0x02f7          application/x-dvi
+
+# RTF - Rich Text Format
+0      string          {\\rtf          text/rtf
+
+#------------------------------------------------------------------------------
+# animation:  file(1) magic for animation/movie formats
+#
+# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
+#                                              MPEG file
+# MPEG sequences
+0       belong             0x000001BA
+>4      byte               &0x40          video/mp2p
+>4      byte               ^0x40          video/mpeg
+0       belong             0x000001BB     video/mpeg
+0       belong             0x000001B0     video/mp4v-es
+0       belong             0x000001B5     video/mp4v-es
+0       belong             0x000001B3     video/mpv
+0       belong&0xFF5FFF1F  0x47400010     video/mp2t
+0       belong             0x00000001
+>4      byte&0x1F          0x07           video/h264
+
+# FLI animation format
+0      leshort         0xAF11                          video/fli
+# FLC animation format
+0      leshort         0xAF12                          video/flc
+#
+# SGI and Apple formats
+# Added ISO mimes
+0      string          MOVI          video/sgi
+4      string          moov          video/quicktime
+4      string          mdat          video/quicktime
+4      string          wide          video/quicktime
+4      string          skip          video/quicktime
+4      string          free          video/quicktime
+4      string          idsc          image/x-quicktime
+4      string          idat          image/x-quicktime
+4      string          pckg          application/x-quicktime
+4      string/B        jP            image/jp2
+4      string          ftyp
+>8     string          isom          video/mp4
+>8     string          mp41          video/mp4
+>8     string          mp42          video/mp4
+>8     string/B        jp2           image/jp2
+>8     string          3gp           video/3gpp
+>8      string          avc1          video/3gpp
+>8     string          mmp4          video/mp4
+>8     string/B        M4A           audio/mp4
+>8     string/B        qt            video/quicktime
+# The contributor claims:
+#   I couldn't find a real magic number for these, however, this
+#   -appears- to work.  Note that it might catch other files, too,
+#   so BE CAREFUL!
+#
+# Note that title and author appear in the two 20-byte chunks
+# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
+# 255 (hex FF)! DL format SUCKS BIG ROCKS.
+#
+#                                              DL file version 1 , medium format (160x100, 4 images/screen)
+0      byte            1                       video/unknown
+0      byte            2                       video/unknown
+#
+# Databases
+#
+# GDBM magic numbers
+#  Will be maintained as part of the GDBM distribution in the future.
+#  <downsj@teeny.org>
+0       belong  0x13579ace      application/x-gdbm
+0       lelong  0x13579ace      application/x-gdbm
+0       string  GDBM            application/x-gdbm
+#
+0       belong  0x061561        application/x-dbm
+#
+# Executables
+#
+0      string          \177ELF 
+>16    leshort         0               application/octet-stream
+>16    leshort         1               application/x-object
+>16    leshort         2               application/x-executable
+>16    leshort         3               application/x-sharedlib
+>16    leshort         4               application/x-coredump
+>16    beshort         0               application/octet-stream
+>16    beshort         1               application/x-object
+>16    beshort         2               application/x-executable
+>16    beshort         3               application/x-sharedlib
+>16    beshort         4               application/x-coredump
+#
+# DOS
+0              string                  MZ                              application/x-dosexec
+#
+# KDE
+0              string  [KDE\ Desktop\ Entry]   application/x-kdelnk
+0              string  \#\ KDE\ Config\ File   application/x-kdelnk
+# xmcd database file for kscd
+0              string  \#\ xmcd                text/xmcd
+
+#------------------------------------------------------------------------------
+# pkgadd:  file(1) magic for SysV R4 PKG Datastreams
+#
+0       string          #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
+
+#PNG Image Format
+0      string          \x89PNG                 image/png
+
+# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
+0      string          \x8aMNG                 video/x-mng
+0      string          \x8aJNG                 video/x-jng
+
+#------------------------------------------------------------------------------
+# Hierarchical Data Format, used to facilitate scientific data exchange
+# specifications at http://hdf.ncsa.uiuc.edu/
+#Hierarchical Data Format (version 4) data
+0      belong          0x0e031301              application/x-hdf
+#Hierarchical Data Format (version 5) data
+0      string          \211HDF\r\n\032         application/x-hdf
+
+# Adobe Photoshop
+0      string          8BPS                    image/x-photoshop
+
+# Felix von Leitner <felix-file@fefe.de>
+0      string          d8:announce             application/x-bittorrent
+
+
+# lotus 1-2-3 document
+0      belong  0x00001a00      application/x-123
+0      belong  0x00000200      application/x-123
+
+# MS Access database
+4      string  Standard\ Jet\ DB       application/msaccess
+
+## magic for XBase files
+#0      byte       0x02        
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x03        
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x04        
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x05        
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x30
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x43
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x7b
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x83        
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x8b
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0x8e        
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0xb3
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0      byte       0xf5
+#>8     leshort          >0
+#>>12   leshort    0   application/x-dbf
+#
+#0     leshort         0x0006          application/x-dbt
+
+# Debian has entries for the old PGP formats:
+# pgp:  file(1) magic for Pretty Good Privacy
+# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
+#text/PGP key public ring
+0      beshort         0x9900                  application/pgp
+#text/PGP key security ring
+0      beshort         0x9501                  application/pgp
+#text/PGP key security ring
+0      beshort         0x9500                  application/pgp
+#text/PGP encrypted data
+0      beshort         0xa600                  application/pgp-encrypted
+#text/PGP armored data
+##public key block
+2      string  ---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-      application/pgp-keys
+0      string  -----BEGIN\040PGP\40MESSAGE-                    application/pgp
+0      string  -----BEGIN\040PGP\40SIGNATURE-                  application/pgp-signature
+#
+# GnuPG Magic:
+# 
+#
+#text/GnuPG key public ring
+0      beshort         0x9901                  application/pgp
+#text/OpenPGP data
+0      beshort         0x8501                  application/pgp-encrypted       
+
+# flash:        file(1) magic for Macromedia Flash file format
+#
+# See
+#
+#       http://www.macromedia.com/software/flash/open/
+#
+0      string          FWS             
+>3     byte            x                       application/x-shockwave-flash
+
+# The following paramaters are created for Namazu.
+# <http://www.namazu.org/>
+#
+# 1999/08/13
+#0     string          \<!--\ MHonArc          text/html; x-type=mhonarc
+0      string          BZh                     application/x-bzip2
+
+# 1999/09/09
+# VRML (suggested by Masao Takaku)
+0      string          #VRML\ V1.0\ ascii      model/vrml
+0      string          #VRML\ V2.0\ utf8       model/vrml
+
+#------------------------------------------------------------------------------
+# ichitaro456: file(1) magic for Just System Word Processor Ichitaro
+#
+# Contributor kenzo-:
+# Reversed-engineered JS Ichitaro magic numbers
+#
+
+0      string          DOC
+>43    byte            0x14            application/ichitaro4
+>144   string  JDASH           application/ichitaro4
+
+0      string          DOC
+>43    byte            0x15            application/ichitaro5
+
+0      string          DOC
+>43    byte            0x16            application/ichitaro6
+
+#------------------------------------------------------------------------------
+# office97: file(1) magic for MicroSoft Office files
+#
+# Contributor kenzo-:
+# Reversed-engineered MS Office magic numbers
+#
+
+#0       string          \320\317\021\340\241\261\032\341
+#>48     byte            0x1B            application/excel
+
+2080   string  Microsoft\ Excel\ 5.0\ Worksheet        application/excel
+2114   string  Biff5                                   application/excel
+
+0       string \224\246\056            application/msword
+
+0      belong  0x31be0000              application/msword
+
+0      string  PO^Q`                   application/msword
+
+0      string  \320\317\021\340\241\261\032\341
+>546   string  bjbj                    application/msword
+>546   string  jbjb                    application/msword
+
+512    string  R\0o\0o\0t\0\ \0E\0n\0t\0r\0y   application/msword
+
+2080   string  Microsoft\ Word\ 6.0\ Document  application/msword
+2080   string  Documento\ Microsoft\ Word\ 6   application/msword
+2112   string  MSWordDoc                       application/msword
+
+#0     string  \320\317\021\340\241\261\032\341        application/powerpoint
+0      string  \320\317\021\340\241\261\032\341        application/msword
+
+0       string  #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
+
+
+# WinNT/WinCE PE files (Warner Losh, imp@village.org)
+#
+128            string  PE\000\000      application/octet-stream
+0              string  PE\000\000      application/octet-stream
+
+# miscellaneous formats
+0              string  LZ              application/octet-stream
+
+
+# .EXE formats (Greg Roelofs, newt@uchicago.edu)
+#
+0              string  MZ
+>24            string  @               application/octet-stream
+
+0              string  MZ
+>30            string  Copyright\ 1989-1990\ PKWARE\ Inc.      application/x-zip
+
+0              string  MZ
+>30            string  PKLITE\ Copr.   application/x-zip
+
+0              string  MZ
+>36            string  LHa's\ SFX      application/x-lha
+
+0              string  MZ              application/octet-stream
+
+# LHA archiver
+2              string  -lh
+>6             string  -               application/x-lha
+
+
+# Zoo archiver
+20             lelong  0xfdc4a7dc      application/x-zoo
+
+# ARC archiver
+0              lelong&0x8080ffff       0x0000081a      application/x-arc
+0              lelong&0x8080ffff       0x0000091a      application/x-arc
+0              lelong&0x8080ffff       0x0000021a      application/x-arc
+0              lelong&0x8080ffff       0x0000031a      application/x-arc
+0              lelong&0x8080ffff       0x0000041a      application/x-arc
+0              lelong&0x8080ffff       0x0000061a      application/x-arc
+
+# Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
+0              lelong  0x223e9f78      application/ms-tnef
+
+# From: stephane.loeuillet@tiscali.f
+# http://www.djvuzone.org/
+0      string          AT&TFORM        image/x.djvu
+
+# Danny Milosavljevic <danny.milo@gmx.net>
+# this are adrift (adventure game standard) game files, extension .taf
+# depending on version magic continues with 0x93453E6139FA (V 4.0)
+# 0x9445376139FA (V 3.90)
+# 0x9445366139FA (V 3.80)
+# this is from source (http://www.adrift.org.uk/) and I have some taf
+# files, and checked them.
+#0     belong  0x3C423FC9
+#>4    belong  0x6A87C2CF      application/x-adrift
+#0     string  \000\000\001\000        image/x-ico
+
+# Quark Xpress 3 Files:
+# (made the mimetype up) 
+0      string  \0\0MMXPR3\0    application/x-quark-xpress-3
+
+# EET archive
+# From: Tilman Sauerbeck <tilman@code-monkey.de>
+0      belong  0x1ee7ff00      application/x-eet
+
+# From: Denis Knauf, via gentoo.
+0      string  fLaC            audio/x-flac
+0      string  CWS             application/x-shockwave-flash
+
+# Gnumeric spreadsheet
+# This entry is only semi-helpful, as Gnumeric compresses its files, so
+# they will ordinarily reported as "compressed", but at least -z helps
+39      string          =<gmr:Workbook           application/x-gnumeric
+
diff --git a/apache2/mods-available/access_compat.load b/apache2/mods-available/access_compat.load
new file mode 100644 (file)
index 0000000..83273df
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: authn_core
+LoadModule access_compat_module /usr/lib/apache2/modules/mod_access_compat.so
diff --git a/apache2/mods-available/actions.conf b/apache2/mods-available/actions.conf
new file mode 100644 (file)
index 0000000..22e6f9f
--- /dev/null
@@ -0,0 +1,9 @@
+# a2enmod-note: needs-configuration
+
+#
+# Action lets you define media types that will execute a script whenever
+# a matching file is called. This eliminates the need for repeated URL
+# pathnames for oft-used CGI file processors.
+# Format: Action media/type /cgi-script/location
+# Format: Action handler-name /cgi-script/location
+#
diff --git a/apache2/mods-available/actions.load b/apache2/mods-available/actions.load
new file mode 100644 (file)
index 0000000..4207df3
--- /dev/null
@@ -0,0 +1 @@
+LoadModule actions_module /usr/lib/apache2/modules/mod_actions.so
diff --git a/apache2/mods-available/alias.conf b/apache2/mods-available/alias.conf
new file mode 100644 (file)
index 0000000..ed12b2b
--- /dev/null
@@ -0,0 +1,19 @@
+# Aliases: Add here as many aliases as you need (with no limit). The format is
+# Alias fakename realname
+#
+# Note that if you include a trailing / on fakename then the server will
+# require it to be present in the URL.  So "/icons" isn't aliased in this
+# example, only "/icons/".  If the fakename is slash-terminated, then the
+# realname must also be slash terminated, and if the fakename omits the
+# trailing slash, the realname must also omit it.
+#
+# We include the /icons/ alias for FancyIndexed directory listings.  If
+# you do not use FancyIndexing, you may comment this out.
+
+Alias /icons/ "/usr/share/apache2/icons/"
+
+<Directory "/usr/share/apache2/icons">
+       Options FollowSymlinks
+       AllowOverride None
+       Require all granted
+</Directory>
diff --git a/apache2/mods-available/alias.load b/apache2/mods-available/alias.load
new file mode 100644 (file)
index 0000000..4cb7385
--- /dev/null
@@ -0,0 +1 @@
+LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
diff --git a/apache2/mods-available/allowmethods.load b/apache2/mods-available/allowmethods.load
new file mode 100644 (file)
index 0000000..e5bbe59
--- /dev/null
@@ -0,0 +1 @@
+LoadModule allowmethods_module /usr/lib/apache2/modules/mod_allowmethods.so
diff --git a/apache2/mods-available/asis.load b/apache2/mods-available/asis.load
new file mode 100644 (file)
index 0000000..6b73c45
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: mime
+LoadModule asis_module /usr/lib/apache2/modules/mod_asis.so
diff --git a/apache2/mods-available/auth_basic.load b/apache2/mods-available/auth_basic.load
new file mode 100644 (file)
index 0000000..5f3cd1c
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: authn_core
+LoadModule auth_basic_module /usr/lib/apache2/modules/mod_auth_basic.so
diff --git a/apache2/mods-available/auth_digest.load b/apache2/mods-available/auth_digest.load
new file mode 100644 (file)
index 0000000..4fa7a3e
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: authn_core
+LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so
diff --git a/apache2/mods-available/auth_form.load b/apache2/mods-available/auth_form.load
new file mode 100644 (file)
index 0000000..91e9507
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: session authn_core
+LoadModule auth_form_module /usr/lib/apache2/modules/mod_auth_form.so
diff --git a/apache2/mods-available/authn_anon.load b/apache2/mods-available/authn_anon.load
new file mode 100644 (file)
index 0000000..331922a
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authn_anon_module /usr/lib/apache2/modules/mod_authn_anon.so
diff --git a/apache2/mods-available/authn_core.load b/apache2/mods-available/authn_core.load
new file mode 100644 (file)
index 0000000..446074f
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authn_core_module /usr/lib/apache2/modules/mod_authn_core.so
diff --git a/apache2/mods-available/authn_dbd.load b/apache2/mods-available/authn_dbd.load
new file mode 100644 (file)
index 0000000..d517af3
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: dbd
+LoadModule authn_dbd_module /usr/lib/apache2/modules/mod_authn_dbd.so
diff --git a/apache2/mods-available/authn_dbm.load b/apache2/mods-available/authn_dbm.load
new file mode 100644 (file)
index 0000000..c39d41b
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authn_dbm_module /usr/lib/apache2/modules/mod_authn_dbm.so
diff --git a/apache2/mods-available/authn_file.load b/apache2/mods-available/authn_file.load
new file mode 100644 (file)
index 0000000..9f13b35
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so
diff --git a/apache2/mods-available/authn_socache.load b/apache2/mods-available/authn_socache.load
new file mode 100644 (file)
index 0000000..786232d
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authn_socache_module /usr/lib/apache2/modules/mod_authn_socache.so
diff --git a/apache2/mods-available/authnz_fcgi.load b/apache2/mods-available/authnz_fcgi.load
new file mode 100644 (file)
index 0000000..69d757c
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authnz_fcgi_module /usr/lib/apache2/modules/mod_authnz_fcgi.so
diff --git a/apache2/mods-available/authnz_ldap.load b/apache2/mods-available/authnz_ldap.load
new file mode 100644 (file)
index 0000000..c56d4dc
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: ldap
+LoadModule authnz_ldap_module /usr/lib/apache2/modules/mod_authnz_ldap.so
diff --git a/apache2/mods-available/authz_core.load b/apache2/mods-available/authz_core.load
new file mode 100644 (file)
index 0000000..5499bf3
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so
diff --git a/apache2/mods-available/authz_dbd.load b/apache2/mods-available/authz_dbd.load
new file mode 100644 (file)
index 0000000..cf82cae
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: dbd authz_core
+LoadModule authz_dbd_module /usr/lib/apache2/modules/mod_authz_dbd.so
diff --git a/apache2/mods-available/authz_dbm.load b/apache2/mods-available/authz_dbm.load
new file mode 100644 (file)
index 0000000..6db4831
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: authz_core
+LoadModule authz_dbm_module /usr/lib/apache2/modules/mod_authz_dbm.so
diff --git a/apache2/mods-available/authz_groupfile.load b/apache2/mods-available/authz_groupfile.load
new file mode 100644 (file)
index 0000000..eda3d21
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: authz_core
+LoadModule authz_groupfile_module /usr/lib/apache2/modules/mod_authz_groupfile.so
diff --git a/apache2/mods-available/authz_host.load b/apache2/mods-available/authz_host.load
new file mode 100644 (file)
index 0000000..f8cf87a
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: authz_core
+LoadModule authz_host_module /usr/lib/apache2/modules/mod_authz_host.so
diff --git a/apache2/mods-available/authz_owner.load b/apache2/mods-available/authz_owner.load
new file mode 100644 (file)
index 0000000..cbad3b5
--- /dev/null
@@ -0,0 +1 @@
+LoadModule authz_owner_module /usr/lib/apache2/modules/mod_authz_owner.so
diff --git a/apache2/mods-available/authz_user.load b/apache2/mods-available/authz_user.load
new file mode 100644 (file)
index 0000000..e47c40c
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: authz_core
+LoadModule authz_user_module /usr/lib/apache2/modules/mod_authz_user.so
diff --git a/apache2/mods-available/autoindex.conf b/apache2/mods-available/autoindex.conf
new file mode 100644 (file)
index 0000000..e53c391
--- /dev/null
@@ -0,0 +1,91 @@
+# Directives controlling the display of server-generated directory listings.
+
+#
+# IndexOptions: Controls the appearance of server-generated directory
+# listings.
+# Remove/replace the "Charset=UTF-8" if you don't use UTF-8 for your filenames.
+IndexOptions FancyIndexing VersionSort HTMLTable NameWidth=* DescriptionWidth=* Charset=UTF-8
+
+#
+# AddIcon* directives tell the server which icon to show for different
+# files or filename extensions.  These are only displayed for
+# FancyIndexed directories.
+AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip x-bzip2
+
+AddIconByType (TXT,/icons/text.gif) text/*
+AddIconByType (IMG,/icons/image2.gif) image/*
+AddIconByType (SND,/icons/sound2.gif) audio/*
+AddIconByType (VID,/icons/movie.gif) video/*
+
+AddIcon /icons/binary.gif .bin .exe
+AddIcon /icons/binhex.gif .hqx
+AddIcon /icons/tar.gif .tar
+AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
+AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
+AddIcon /icons/a.gif .ps .ai .eps
+AddIcon /icons/layout.gif .html .shtml .htm .pdf
+AddIcon /icons/text.gif .txt
+AddIcon /icons/c.gif .c
+AddIcon /icons/p.gif .pl .py
+AddIcon /icons/f.gif .for
+AddIcon /icons/dvi.gif .dvi
+AddIcon /icons/uuencoded.gif .uu
+AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
+AddIcon /icons/tex.gif .tex
+# It's a suffix rule, so simply matching "core" matches "score" as well !
+AddIcon /icons/bomb.gif /core
+AddIcon (SND,/icons/sound2.gif) .ogg
+AddIcon (VID,/icons/movie.gif) .ogm
+
+AddIcon /icons/back.gif ..
+AddIcon /icons/hand.right.gif README
+AddIcon /icons/folder.gif ^^DIRECTORY^^
+AddIcon /icons/blank.gif ^^BLANKICON^^
+
+# Default icons for OpenDocument format
+AddIcon /icons/odf6odt-20x22.png .odt
+AddIcon /icons/odf6ods-20x22.png .ods
+AddIcon /icons/odf6odp-20x22.png .odp
+AddIcon /icons/odf6odg-20x22.png .odg
+AddIcon /icons/odf6odc-20x22.png .odc
+AddIcon /icons/odf6odf-20x22.png .odf
+AddIcon /icons/odf6odb-20x22.png .odb
+AddIcon /icons/odf6odi-20x22.png .odi
+AddIcon /icons/odf6odm-20x22.png .odm
+
+AddIcon /icons/odf6ott-20x22.png .ott
+AddIcon /icons/odf6ots-20x22.png .ots
+AddIcon /icons/odf6otp-20x22.png .otp
+AddIcon /icons/odf6otg-20x22.png .otg
+AddIcon /icons/odf6otc-20x22.png .otc
+AddIcon /icons/odf6otf-20x22.png .otf
+AddIcon /icons/odf6oti-20x22.png .oti
+AddIcon /icons/odf6oth-20x22.png .oth
+
+#
+# DefaultIcon is which icon to show for files which do not have an icon
+# explicitly set.
+DefaultIcon /icons/unknown.gif
+
+#
+# AddDescription allows you to place a short description after a file in
+# server-generated indexes.  These are only displayed for FancyIndexed
+# directories.
+# Format: AddDescription "description" filename
+#AddDescription "GZIP compressed document" .gz
+#AddDescription "tar archive" .tar
+#AddDescription "GZIP compressed tar archive" .tgz
+
+#
+# ReadmeName is the name of the README file the server will look for by
+# default, and append to directory listings.
+#
+# HeaderName is the name of a file which should be prepended to
+# directory indexes
+ReadmeName README.html
+HeaderName HEADER.html
+
+#
+# IndexIgnore is a set of filenames which directory indexing should ignore
+# and not include in the listing.  Shell-style wildcarding is permitted.
+IndexIgnore .??* *~ *# RCS CVS *,v *,t
diff --git a/apache2/mods-available/autoindex.load b/apache2/mods-available/autoindex.load
new file mode 100644 (file)
index 0000000..82328b9
--- /dev/null
@@ -0,0 +1 @@
+LoadModule autoindex_module /usr/lib/apache2/modules/mod_autoindex.so
diff --git a/apache2/mods-available/brotli.load b/apache2/mods-available/brotli.load
new file mode 100644 (file)
index 0000000..ebd48ed
--- /dev/null
@@ -0,0 +1 @@
+LoadModule brotli_module /usr/lib/apache2/modules/mod_brotli.so
diff --git a/apache2/mods-available/buffer.load b/apache2/mods-available/buffer.load
new file mode 100644 (file)
index 0000000..f5e7423
--- /dev/null
@@ -0,0 +1 @@
+LoadModule buffer_module /usr/lib/apache2/modules/mod_buffer.so
diff --git a/apache2/mods-available/cache.load b/apache2/mods-available/cache.load
new file mode 100644 (file)
index 0000000..e3189a0
--- /dev/null
@@ -0,0 +1 @@
+LoadModule cache_module /usr/lib/apache2/modules/mod_cache.so
diff --git a/apache2/mods-available/cache_disk.conf b/apache2/mods-available/cache_disk.conf
new file mode 100644 (file)
index 0000000..8625539
--- /dev/null
@@ -0,0 +1,21 @@
+# cache cleaning is done by htcacheclean, which can be configured in
+# /etc/default/apache2
+#
+# For further information, see the comments in that file,
+# /usr/share/doc/apache2/README.Debian, and the htcacheclean(8)
+# man page.
+
+# This path must be the same as the one in /etc/default/apache2
+CacheRoot /var/cache/apache2/mod_cache_disk
+
+# This will also cache local documents. It usually makes more sense to
+# put this into the configuration for just one virtual host.
+#CacheEnable disk /
+
+
+# The result of CacheDirLevels * CacheDirLength must not be higher than
+# 20. Moreover, pay attention on file system limits. Some file systems
+# do not support more than a certain number of inodes and
+# subdirectories (e.g. 32000 for ext3)
+CacheDirLevels 2
+CacheDirLength 1
diff --git a/apache2/mods-available/cache_disk.load b/apache2/mods-available/cache_disk.load
new file mode 100644 (file)
index 0000000..3b641a1
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: cache
+LoadModule cache_disk_module /usr/lib/apache2/modules/mod_cache_disk.so
diff --git a/apache2/mods-available/cache_socache.load b/apache2/mods-available/cache_socache.load
new file mode 100644 (file)
index 0000000..47a3dcb
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: cache
+LoadModule cache_socache_module /usr/lib/apache2/modules/mod_cache_socache.so
diff --git a/apache2/mods-available/cern_meta.load b/apache2/mods-available/cern_meta.load
new file mode 100644 (file)
index 0000000..bcc7546
--- /dev/null
@@ -0,0 +1 @@
+LoadModule cern_meta_module /usr/lib/apache2/modules/mod_cern_meta.so
diff --git a/apache2/mods-available/cgi.load b/apache2/mods-available/cgi.load
new file mode 100644 (file)
index 0000000..1be9048
--- /dev/null
@@ -0,0 +1 @@
+LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
diff --git a/apache2/mods-available/cgid.conf b/apache2/mods-available/cgid.conf
new file mode 100644 (file)
index 0000000..2f22b70
--- /dev/null
@@ -0,0 +1,2 @@
+# Socket for cgid communication
+ScriptSock ${APACHE_RUN_DIR}/socks/cgisock
diff --git a/apache2/mods-available/cgid.load b/apache2/mods-available/cgid.load
new file mode 100644 (file)
index 0000000..e036f7d
--- /dev/null
@@ -0,0 +1 @@
+LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so
diff --git a/apache2/mods-available/charset_lite.load b/apache2/mods-available/charset_lite.load
new file mode 100644 (file)
index 0000000..f137a57
--- /dev/null
@@ -0,0 +1 @@
+LoadModule charset_lite_module /usr/lib/apache2/modules/mod_charset_lite.so
diff --git a/apache2/mods-available/data.load b/apache2/mods-available/data.load
new file mode 100644 (file)
index 0000000..ef488a4
--- /dev/null
@@ -0,0 +1 @@
+LoadModule data_module /usr/lib/apache2/modules/mod_data.so
diff --git a/apache2/mods-available/dav.load b/apache2/mods-available/dav.load
new file mode 100644 (file)
index 0000000..a5867ff
--- /dev/null
@@ -0,0 +1,3 @@
+<IfModule !mod_dav.c>
+       LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
+</IfModule>
diff --git a/apache2/mods-available/dav_fs.conf b/apache2/mods-available/dav_fs.conf
new file mode 100644 (file)
index 0000000..c7130c2
--- /dev/null
@@ -0,0 +1 @@
+DAVLockDB ${APACHE_LOCK_DIR}/DAVLock
diff --git a/apache2/mods-available/dav_fs.load b/apache2/mods-available/dav_fs.load
new file mode 100644 (file)
index 0000000..ba2a3f8
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: dav
+LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so
diff --git a/apache2/mods-available/dav_lock.load b/apache2/mods-available/dav_lock.load
new file mode 100644 (file)
index 0000000..ba0703e
--- /dev/null
@@ -0,0 +1 @@
+LoadModule dav_lock_module /usr/lib/apache2/modules/mod_dav_lock.so
diff --git a/apache2/mods-available/dbd.load b/apache2/mods-available/dbd.load
new file mode 100644 (file)
index 0000000..5495f2a
--- /dev/null
@@ -0,0 +1 @@
+LoadModule dbd_module /usr/lib/apache2/modules/mod_dbd.so
diff --git a/apache2/mods-available/deflate.conf b/apache2/mods-available/deflate.conf
new file mode 100644 (file)
index 0000000..440a68b
--- /dev/null
@@ -0,0 +1,7 @@
+<IfModule mod_filter.c>
+       AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
+       AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
+       AddOutputFilterByType DEFLATE application/rss+xml
+       AddOutputFilterByType DEFLATE application/wasm
+       AddOutputFilterByType DEFLATE application/xml
+</IfModule>
diff --git a/apache2/mods-available/deflate.load b/apache2/mods-available/deflate.load
new file mode 100644 (file)
index 0000000..3873ffc
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: filter
+LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
diff --git a/apache2/mods-available/dialup.load b/apache2/mods-available/dialup.load
new file mode 100644 (file)
index 0000000..3c4a636
--- /dev/null
@@ -0,0 +1 @@
+LoadModule dialup_module /usr/lib/apache2/modules/mod_dialup.so
diff --git a/apache2/mods-available/dir.conf b/apache2/mods-available/dir.conf
new file mode 100644 (file)
index 0000000..c0a462b
--- /dev/null
@@ -0,0 +1 @@
+DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
diff --git a/apache2/mods-available/dir.load b/apache2/mods-available/dir.load
new file mode 100644 (file)
index 0000000..e5b5d92
--- /dev/null
@@ -0,0 +1 @@
+LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so
diff --git a/apache2/mods-available/dump_io.load b/apache2/mods-available/dump_io.load
new file mode 100644 (file)
index 0000000..561c24b
--- /dev/null
@@ -0,0 +1 @@
+LoadModule dumpio_module /usr/lib/apache2/modules/mod_dumpio.so
diff --git a/apache2/mods-available/echo.load b/apache2/mods-available/echo.load
new file mode 100644 (file)
index 0000000..42cae85
--- /dev/null
@@ -0,0 +1 @@
+LoadModule echo_module /usr/lib/apache2/modules/mod_echo.so
diff --git a/apache2/mods-available/env.load b/apache2/mods-available/env.load
new file mode 100644 (file)
index 0000000..8bf608d
--- /dev/null
@@ -0,0 +1 @@
+LoadModule env_module /usr/lib/apache2/modules/mod_env.so
diff --git a/apache2/mods-available/expires.load b/apache2/mods-available/expires.load
new file mode 100644 (file)
index 0000000..092acab
--- /dev/null
@@ -0,0 +1 @@
+LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so
diff --git a/apache2/mods-available/ext_filter.load b/apache2/mods-available/ext_filter.load
new file mode 100644 (file)
index 0000000..b3a1596
--- /dev/null
@@ -0,0 +1 @@
+LoadModule ext_filter_module /usr/lib/apache2/modules/mod_ext_filter.so
diff --git a/apache2/mods-available/file_cache.load b/apache2/mods-available/file_cache.load
new file mode 100644 (file)
index 0000000..32c0a56
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: cache
+LoadModule file_cache_module /usr/lib/apache2/modules/mod_file_cache.so
diff --git a/apache2/mods-available/filter.load b/apache2/mods-available/filter.load
new file mode 100644 (file)
index 0000000..94c4270
--- /dev/null
@@ -0,0 +1 @@
+LoadModule filter_module /usr/lib/apache2/modules/mod_filter.so
diff --git a/apache2/mods-available/headers.load b/apache2/mods-available/headers.load
new file mode 100644 (file)
index 0000000..e4497e5
--- /dev/null
@@ -0,0 +1 @@
+LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
diff --git a/apache2/mods-available/heartbeat.load b/apache2/mods-available/heartbeat.load
new file mode 100644 (file)
index 0000000..208686c
--- /dev/null
@@ -0,0 +1,3 @@
+# This module depends on mod_watchdog to be loaded before. In Debian, this
+# module is statically linked.
+LoadModule heartbeat_module /usr/lib/apache2/modules/mod_heartbeat.so
diff --git a/apache2/mods-available/heartmonitor.load b/apache2/mods-available/heartmonitor.load
new file mode 100644 (file)
index 0000000..e5deba7
--- /dev/null
@@ -0,0 +1,3 @@
+# This module depends on mod_watchdog to be loaded before. In Debian, this
+# module is statically linked.
+LoadModule heartmonitor_module /usr/lib/apache2/modules/mod_heartmonitor.so
diff --git a/apache2/mods-available/http2.conf b/apache2/mods-available/http2.conf
new file mode 100644 (file)
index 0000000..612baa5
--- /dev/null
@@ -0,0 +1,30 @@
+Protocols h2 h2c http/1.1
+
+# # HTTP/2 push configuration
+#
+# H2Push          on
+#
+# # Default Priority Rule
+#
+# H2PushPriority * After 16
+#
+# # More complex ruleset:
+#
+# H2PushPriority  *                       after
+# H2PushPriority  text/css                before
+# H2PushPriority  image/jpeg              after   32
+# H2PushPriority  image/png               after   32
+# H2PushPriority  application/javascript  interleaved
+#
+# # Configure some stylesheet and script to be pushed by the webserver
+#
+# <FilesMatch "\.html$">
+#     Header add Link "</style.css>; rel=preload; as=style"
+#     Header add Link "</script.js>; rel=preload; as=script"
+# </FilesMatch>
+# Since mod_http2 doesn't support the mod_logio module (which provide the %O format),
+# you may want to change your LogFormat directive as follow:
+#
+# LogFormat "%v:%p %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
+# LogFormat "%h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined
+# LogFormat "%h %l %u %t \"%r\" %>s %B" common
diff --git a/apache2/mods-available/http2.load b/apache2/mods-available/http2.load
new file mode 100644 (file)
index 0000000..e5c769f
--- /dev/null
@@ -0,0 +1 @@
+LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
diff --git a/apache2/mods-available/ident.load b/apache2/mods-available/ident.load
new file mode 100644 (file)
index 0000000..f7c4c3c
--- /dev/null
@@ -0,0 +1 @@
+LoadModule ident_module /usr/lib/apache2/modules/mod_ident.so
diff --git a/apache2/mods-available/imagemap.load b/apache2/mods-available/imagemap.load
new file mode 100644 (file)
index 0000000..0fd55f8
--- /dev/null
@@ -0,0 +1 @@
+LoadModule imagemap_module /usr/lib/apache2/modules/mod_imagemap.so
diff --git a/apache2/mods-available/include.load b/apache2/mods-available/include.load
new file mode 100644 (file)
index 0000000..dc4359a
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: mime
+LoadModule include_module /usr/lib/apache2/modules/mod_include.so
diff --git a/apache2/mods-available/info.conf b/apache2/mods-available/info.conf
new file mode 100644 (file)
index 0000000..cf79351
--- /dev/null
@@ -0,0 +1,9 @@
+# Allow remote server configuration reports, with the URL of
+#  http://servername/server-info (requires that mod_info.c be loaded).
+# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
+#
+<Location /server-info>
+       SetHandler server-info
+       Require local
+       #Require ip 192.0.2.0/24
+</Location>
diff --git a/apache2/mods-available/info.load b/apache2/mods-available/info.load
new file mode 100644 (file)
index 0000000..c71efcc
--- /dev/null
@@ -0,0 +1 @@
+LoadModule info_module /usr/lib/apache2/modules/mod_info.so
diff --git a/apache2/mods-available/lbmethod_bybusyness.load b/apache2/mods-available/lbmethod_bybusyness.load
new file mode 100644 (file)
index 0000000..cf894a3
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy_balancer
+LoadModule lbmethod_bybusyness_module /usr/lib/apache2/modules/mod_lbmethod_bybusyness.so
diff --git a/apache2/mods-available/lbmethod_byrequests.load b/apache2/mods-available/lbmethod_byrequests.load
new file mode 100644 (file)
index 0000000..cdd8fc5
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy_balancer
+LoadModule lbmethod_byrequests_module /usr/lib/apache2/modules/mod_lbmethod_byrequests.so
diff --git a/apache2/mods-available/lbmethod_bytraffic.load b/apache2/mods-available/lbmethod_bytraffic.load
new file mode 100644 (file)
index 0000000..dabbe72
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy_balancer
+LoadModule lbmethod_bytraffic_module /usr/lib/apache2/modules/mod_lbmethod_bytraffic.so
diff --git a/apache2/mods-available/lbmethod_heartbeat.load b/apache2/mods-available/lbmethod_heartbeat.load
new file mode 100644 (file)
index 0000000..2200f3a
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy_balancer
+LoadModule lbmethod_heartbeat_module /usr/lib/apache2/modules/mod_lbmethod_heartbeat.so
diff --git a/apache2/mods-available/ldap.conf b/apache2/mods-available/ldap.conf
new file mode 100644 (file)
index 0000000..470d5c8
--- /dev/null
@@ -0,0 +1,4 @@
+<Location /ldap-status>
+       SetHandler ldap-status
+       Require local
+</Location>
diff --git a/apache2/mods-available/ldap.load b/apache2/mods-available/ldap.load
new file mode 100644 (file)
index 0000000..f9d38a3
--- /dev/null
@@ -0,0 +1 @@
+LoadModule ldap_module /usr/lib/apache2/modules/mod_ldap.so
diff --git a/apache2/mods-available/log_debug.load b/apache2/mods-available/log_debug.load
new file mode 100644 (file)
index 0000000..1a27fa8
--- /dev/null
@@ -0,0 +1 @@
+LoadModule log_debug_module /usr/lib/apache2/modules/mod_log_debug.so
diff --git a/apache2/mods-available/log_forensic.load b/apache2/mods-available/log_forensic.load
new file mode 100644 (file)
index 0000000..9116a3d
--- /dev/null
@@ -0,0 +1 @@
+LoadModule log_forensic_module /usr/lib/apache2/modules/mod_log_forensic.so
diff --git a/apache2/mods-available/lua.load b/apache2/mods-available/lua.load
new file mode 100644 (file)
index 0000000..0b639f5
--- /dev/null
@@ -0,0 +1 @@
+LoadModule lua_module /usr/lib/apache2/modules/mod_lua.so
diff --git a/apache2/mods-available/macro.load b/apache2/mods-available/macro.load
new file mode 100644 (file)
index 0000000..3a72864
--- /dev/null
@@ -0,0 +1 @@
+LoadModule macro_module /usr/lib/apache2/modules/mod_macro.so
diff --git a/apache2/mods-available/md.load b/apache2/mods-available/md.load
new file mode 100644 (file)
index 0000000..812a6a6
--- /dev/null
@@ -0,0 +1 @@
+LoadModule md_module /usr/lib/apache2/modules/mod_md.so
diff --git a/apache2/mods-available/mime.conf b/apache2/mods-available/mime.conf
new file mode 100644 (file)
index 0000000..1f593b9
--- /dev/null
@@ -0,0 +1,246 @@
+#
+# TypesConfig points to the file containing the list of mappings from
+# filename extension to MIME-type.
+#
+TypesConfig /etc/mime.types
+
+#
+# AddType allows you to add to or override the MIME configuration
+# file mime.types for specific file types.
+#
+#AddType application/x-gzip .tgz
+#
+# AddEncoding allows you to have certain browsers uncompress
+# information on the fly. Note: Not all browsers support this.
+# Despite the name similarity, the following Add* directives have
+# nothing to do with the FancyIndexing customization directives above.
+#
+#AddEncoding x-compress .Z
+#AddEncoding x-gzip .gz .tgz
+#AddEncoding x-bzip2 .bz2
+#
+# If the AddEncoding directives above are commented-out, then you
+# probably should define those extensions to indicate media types:
+#
+AddType application/x-compress .Z
+AddType application/x-gzip .gz .tgz
+AddType application/x-bzip2 .bz2
+
+#
+# DefaultLanguage and AddLanguage allows you to specify the language of
+# a document. You can then use content negotiation to give a browser a
+# file in a language the user can understand.
+#
+# Specify a default language. This means that all data
+# going out without a specific language tag (see below) will
+# be marked with this one. You probably do NOT want to set
+# this unless you are sure it is correct for all cases.
+#
+# * It is generally better to not mark a page as
+# * being a certain language than marking it with the wrong
+# * language!
+#
+# DefaultLanguage nl
+#
+# Note 1: The suffix does not have to be the same as the language
+# keyword --- those with documents in Polish (whose net-standard
+# language code is pl) may wish to use "AddLanguage pl .po" to
+# avoid the ambiguity with the common suffix for perl scripts.
+#
+# Note 2: The example entries below illustrate that in some cases
+# the two character 'Language' abbreviation is not identical to
+# the two character 'Country' code for its country,
+# E.g. 'Danmark/dk' versus 'Danish/da'.
+#
+# Note 3: In the case of 'ltz' we violate the RFC by using a three char
+# specifier. There is 'work in progress' to fix this and get
+# the reference data for rfc1766 cleaned up.
+#
+# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
+# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
+# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
+# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
+# Norwegian (no) - Polish (pl) - Portugese (pt)
+# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
+# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
+#
+AddLanguage am .amh
+AddLanguage ar .ara
+AddLanguage be .be
+AddLanguage bg .bg
+AddLanguage bn .bn
+AddLanguage br .br
+AddLanguage bs .bs
+AddLanguage ca .ca
+AddLanguage cs .cz .cs
+AddLanguage cy .cy
+AddLanguage da .da
+AddLanguage da .dk
+AddLanguage de .de
+AddLanguage dz .dz
+AddLanguage el .el
+AddLanguage en .en
+AddLanguage eo .eo
+# es is ecmascript in /etc/mime.types
+RemoveType  es
+AddLanguage es .es
+AddLanguage et .et
+AddLanguage eu .eu
+AddLanguage fa .fa
+AddLanguage fi .fi
+AddLanguage fr .fr
+AddLanguage ga .ga
+AddLanguage gl .glg
+AddLanguage gu .gu
+AddLanguage he .he
+AddLanguage hi .hi
+AddLanguage hr .hr
+AddLanguage hu .hu
+AddLanguage hy .hy
+AddLanguage id .id
+AddLanguage is .is
+AddLanguage it .it
+AddLanguage ja .ja
+AddLanguage ka .ka
+AddLanguage kk .kk
+AddLanguage km .km
+AddLanguage kn .kn
+AddLanguage ko .ko
+AddLanguage ku .ku
+AddLanguage lo .lo
+AddLanguage lt .lt
+AddLanguage ltz .ltz
+AddLanguage lv .lv
+AddLanguage mg .mg
+AddLanguage mk .mk
+AddLanguage ml .ml
+AddLanguage mr .mr
+AddLanguage ms .msa
+AddLanguage nb .nob
+AddLanguage ne .ne
+AddLanguage nl .nl
+AddLanguage nn .nn
+AddLanguage no .no
+AddLanguage pa .pa
+AddLanguage pl .po
+AddLanguage pt-BR .pt-br
+AddLanguage pt .pt
+AddLanguage ro .ro
+AddLanguage ru .ru
+AddLanguage sa .sa
+AddLanguage se .se
+AddLanguage si .si
+AddLanguage sk .sk
+AddLanguage sl .sl
+AddLanguage sq .sq
+AddLanguage sr .sr
+AddLanguage sv .sv
+AddLanguage ta .ta
+AddLanguage te .te
+AddLanguage th .th
+AddLanguage tl .tl
+RemoveType  tr
+# tr is troff in /etc/mime.types
+AddLanguage tr .tr
+AddLanguage uk .uk
+AddLanguage ur .ur
+AddLanguage vi .vi
+AddLanguage wo .wo
+AddLanguage xh .xh
+AddLanguage zh-CN .zh-cn
+AddLanguage zh-TW .zh-tw
+
+#
+# Commonly used filename extensions to character sets. You probably
+# want to avoid clashes with the language extensions, unless you
+# are good at carefully testing your setup after each change.
+# See http://www.iana.org/assignments/character-sets for the
+# official list of charset names and their respective RFCs.
+#
+AddCharset us-ascii     .ascii      .us-ascii
+AddCharset ISO-8859-1   .iso8859-1  .latin1
+AddCharset ISO-8859-2   .iso8859-2  .latin2 .cen
+AddCharset ISO-8859-3   .iso8859-3  .latin3
+AddCharset ISO-8859-4   .iso8859-4  .latin4
+AddCharset ISO-8859-5   .iso8859-5  .cyr .iso-ru
+AddCharset ISO-8859-6   .iso8859-6  .arb .arabic
+AddCharset ISO-8859-7   .iso8859-7  .grk .greek
+AddCharset ISO-8859-8   .iso8859-8  .heb .hebrew
+AddCharset ISO-8859-9   .iso8859-9  .latin5 .trk
+AddCharset ISO-8859-10  .iso8859-10 .latin6
+AddCharset ISO-8859-13  .iso8859-13
+AddCharset ISO-8859-14  .iso8859-14 .latin8
+AddCharset ISO-8859-15  .iso8859-15 .latin9
+AddCharset ISO-8859-16  .iso8859-16 .latin10
+AddCharset ISO-2022-JP  .iso2022-jp .jis
+AddCharset ISO-2022-KR  .iso2022-kr .kis
+AddCharset ISO-2022-CN  .iso2022-cn .cis
+AddCharset Big5         .Big5       .big5 .b5
+AddCharset cn-Big5      .cn-big5
+# For russian, more than one charset is used (depends on client, mostly):
+AddCharset WINDOWS-1251     .cp-1251    .win-1251
+AddCharset CP866            .cp866
+AddCharset KOI8             .koi8
+AddCharset KOI8-E           .koi8-e
+AddCharset KOI8-r           .koi8-r     .koi8-ru
+AddCharset KOI8-U           .koi8-u
+AddCharset KOI8-ru          .koi8-uk    .ua
+AddCharset ISO-10646-UCS-2  .ucs2
+AddCharset ISO-10646-UCS-4  .ucs4
+AddCharset UTF-7            .utf7
+AddCharset UTF-8            .utf8
+AddCharset UTF-16           .utf16
+AddCharset UTF-16BE         .utf16be
+AddCharset UTF-16LE         .utf16le
+AddCharset UTF-32           .utf32
+AddCharset UTF-32BE         .utf32be
+AddCharset UTF-32LE         .utf32le
+AddCharset euc-cn           .euc-cn
+AddCharset euc-gb           .euc-gb
+AddCharset euc-jp           .euc-jp
+AddCharset euc-kr           .euc-kr
+#Not sure how euc-tw got in - IANA doesn't list it???
+AddCharset EUC-TW           .euc-tw
+AddCharset gb2312           .gb2312     .gb
+AddCharset iso-10646-ucs-2  .ucs-2      .iso-10646-ucs-2
+AddCharset iso-10646-ucs-4  .ucs-4      .iso-10646-ucs-4
+AddCharset shift_jis        .shift_jis  .sjis
+AddCharset BRF              .brf
+
+#
+# AddHandler allows you to map certain file extensions to "handlers":
+# actions unrelated to filetype. These can be either built into the server
+# or added with the Action directive (see below)
+#
+# To use CGI scripts outside of ScriptAliased directories:
+# (You will also need to add "ExecCGI" to the "Options" directive.)
+#
+#AddHandler cgi-script .cgi
+
+#
+# For files that include their own HTTP headers:
+#
+#AddHandler send-as-is asis
+
+#
+# For server-parsed imagemap files:
+#
+#AddHandler imap-file map
+
+#
+# For type maps (negotiated resources):
+# (This is enabled by default to allow the Apache "It Worked" page
+#  to be distributed in multiple languages.)
+#
+AddHandler type-map var
+
+#
+# Filters allow you to process content before it is sent to the client.
+#
+# To parse .shtml files for server-side includes (SSI):
+# (You will also need to add "Includes" to the "Options" directive.)
+#
+AddType text/html .shtml
+<IfModule mod_include.c>
+       AddOutputFilter INCLUDES .shtml
+</IfModule>
diff --git a/apache2/mods-available/mime.load b/apache2/mods-available/mime.load
new file mode 100644 (file)
index 0000000..d908fd6
--- /dev/null
@@ -0,0 +1 @@
+LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so
diff --git a/apache2/mods-available/mime_magic.conf b/apache2/mods-available/mime_magic.conf
new file mode 100644 (file)
index 0000000..0658c3d
--- /dev/null
@@ -0,0 +1 @@
+MIMEMagicFile /etc/apache2/magic
diff --git a/apache2/mods-available/mime_magic.load b/apache2/mods-available/mime_magic.load
new file mode 100644 (file)
index 0000000..42357db
--- /dev/null
@@ -0,0 +1 @@
+LoadModule mime_magic_module /usr/lib/apache2/modules/mod_mime_magic.so
diff --git a/apache2/mods-available/mpm_event.conf b/apache2/mods-available/mpm_event.conf
new file mode 100644 (file)
index 0000000..b1f712f
--- /dev/null
@@ -0,0 +1,14 @@
+# event MPM
+# StartServers: initial number of server processes to start
+# MinSpareThreads: minimum number of worker threads which are kept spare
+# MaxSpareThreads: maximum number of worker threads which are kept spare
+# ThreadsPerChild: constant number of worker threads in each server process
+# MaxRequestWorkers: maximum number of worker threads
+# MaxConnectionsPerChild: maximum number of requests a server process serves
+StartServers            2
+MinSpareThreads         25
+MaxSpareThreads         75
+ThreadLimit             64
+ThreadsPerChild         25
+MaxRequestWorkers       150
+MaxConnectionsPerChild  0
diff --git a/apache2/mods-available/mpm_event.load b/apache2/mods-available/mpm_event.load
new file mode 100644 (file)
index 0000000..00d970b
--- /dev/null
@@ -0,0 +1,2 @@
+# Conflicts: mpm_worker mpm_prefork
+LoadModule mpm_event_module /usr/lib/apache2/modules/mod_mpm_event.so
diff --git a/apache2/mods-available/mpm_prefork.conf b/apache2/mods-available/mpm_prefork.conf
new file mode 100644 (file)
index 0000000..0035e9e
--- /dev/null
@@ -0,0 +1,12 @@
+# prefork MPM
+# StartServers: number of server processes to start
+# MinSpareServers: minimum number of server processes which are kept spare
+# MaxSpareServers: maximum number of server processes which are kept spare
+# MaxRequestWorkers: maximum number of server processes allowed to start
+# MaxConnectionsPerChild: maximum number of requests a server process serves
+
+StartServers            5
+MinSpareServers         5
+MaxSpareServers         10
+MaxRequestWorkers       150
+MaxConnectionsPerChild  0
diff --git a/apache2/mods-available/mpm_prefork.load b/apache2/mods-available/mpm_prefork.load
new file mode 100644 (file)
index 0000000..05da7a3
--- /dev/null
@@ -0,0 +1,2 @@
+# Conflicts: mpm_event mpm_worker
+LoadModule mpm_prefork_module /usr/lib/apache2/modules/mod_mpm_prefork.so
diff --git a/apache2/mods-available/mpm_worker.conf b/apache2/mods-available/mpm_worker.conf
new file mode 100644 (file)
index 0000000..109cf64
--- /dev/null
@@ -0,0 +1,18 @@
+# worker MPM
+# StartServers: initial number of server processes to start
+# MinSpareThreads: minimum number of worker threads which are kept spare
+# MaxSpareThreads: maximum number of worker threads which are kept spare
+# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
+#                        graceful restart. ThreadLimit can only be changed by stopping
+#                        and starting Apache.
+# ThreadsPerChild: constant number of worker threads in each server process
+# MaxRequestWorkers: maximum number of threads
+# MaxConnectionsPerChild: maximum number of requests a server process serves
+
+StartServers            2
+MinSpareThreads         25
+MaxSpareThreads         75
+ThreadLimit             64
+ThreadsPerChild         25
+MaxRequestWorkers       150
+MaxConnectionsPerChild  0
diff --git a/apache2/mods-available/mpm_worker.load b/apache2/mods-available/mpm_worker.load
new file mode 100644 (file)
index 0000000..f9d0c4d
--- /dev/null
@@ -0,0 +1,2 @@
+# Conflicts: mpm_event mpm_prefork
+LoadModule mpm_worker_module /usr/lib/apache2/modules/mod_mpm_worker.so
diff --git a/apache2/mods-available/negotiation.conf b/apache2/mods-available/negotiation.conf
new file mode 100644 (file)
index 0000000..3e6c713
--- /dev/null
@@ -0,0 +1,14 @@
+# LanguagePriority allows you to give precedence to some languages
+# in case of a tie during content negotiation.
+#
+# Just list the languages in decreasing order of preference. We have
+# more or less alphabetized them here. You probably want to change this.
+#
+LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW
+
+#
+# ForceLanguagePriority allows you to serve a result page rather than
+# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
+# [in case no accepted languages matched the available variants]
+#
+ForceLanguagePriority Prefer Fallback
diff --git a/apache2/mods-available/negotiation.load b/apache2/mods-available/negotiation.load
new file mode 100644 (file)
index 0000000..8df5711
--- /dev/null
@@ -0,0 +1 @@
+LoadModule negotiation_module /usr/lib/apache2/modules/mod_negotiation.so
diff --git a/apache2/mods-available/proxy.conf b/apache2/mods-available/proxy.conf
new file mode 100644 (file)
index 0000000..ac763f1
--- /dev/null
@@ -0,0 +1,21 @@
+# If you want to use apache2 as a forward proxy, uncomment the
+# 'ProxyRequests On' line and the <Proxy *> block below.
+# WARNING: Be careful to restrict access inside the <Proxy *> block.
+# Open proxy servers are dangerous both to your network and to the
+# Internet at large.
+#
+# If you only want to use apache2 as a reverse proxy/gateway in
+# front of some web application server, you DON'T need
+# 'ProxyRequests On'.
+
+#ProxyRequests On
+#<Proxy *>
+#   AddDefaultCharset off
+#   Require all denied
+#   #Require local
+#</Proxy>
+
+# Enable/disable the handling of HTTP/1.1 "Via:" headers.
+# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
+# Set to one of: Off | On | Full | Block
+#ProxyVia Off
diff --git a/apache2/mods-available/proxy.load b/apache2/mods-available/proxy.load
new file mode 100644 (file)
index 0000000..8828205
--- /dev/null
@@ -0,0 +1 @@
+LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
diff --git a/apache2/mods-available/proxy_ajp.load b/apache2/mods-available/proxy_ajp.load
new file mode 100644 (file)
index 0000000..adc0c86
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
diff --git a/apache2/mods-available/proxy_balancer.conf b/apache2/mods-available/proxy_balancer.conf
new file mode 100644 (file)
index 0000000..6b62ec2
--- /dev/null
@@ -0,0 +1,9 @@
+# Balancer manager enables dynamic update of balancer members
+# (needs mod_status). Uncomment to enable.
+#
+#<IfModule mod_status.c>
+#      <Location /balancer-manager>
+#              SetHandler balancer-manager
+#              Require local
+#      </Location>
+#</IfModule>
diff --git a/apache2/mods-available/proxy_balancer.load b/apache2/mods-available/proxy_balancer.load
new file mode 100644 (file)
index 0000000..2baa546
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy alias slotmem_shm
+LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
diff --git a/apache2/mods-available/proxy_connect.load b/apache2/mods-available/proxy_connect.load
new file mode 100644 (file)
index 0000000..df81372
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
diff --git a/apache2/mods-available/proxy_express.load b/apache2/mods-available/proxy_express.load
new file mode 100644 (file)
index 0000000..81d3a2f
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_express_module /usr/lib/apache2/modules/mod_proxy_express.so
diff --git a/apache2/mods-available/proxy_fcgi.load b/apache2/mods-available/proxy_fcgi.load
new file mode 100644 (file)
index 0000000..067c87e
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so
diff --git a/apache2/mods-available/proxy_fdpass.load b/apache2/mods-available/proxy_fdpass.load
new file mode 100644 (file)
index 0000000..b27bcdb
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_fdpass_module /usr/lib/apache2/modules/mod_proxy_fdpass.so
diff --git a/apache2/mods-available/proxy_ftp.conf b/apache2/mods-available/proxy_ftp.conf
new file mode 100644 (file)
index 0000000..103a4bb
--- /dev/null
@@ -0,0 +1,2 @@
+# Define the character set for proxied FTP listings. Default is ISO-8859-1
+ProxyFtpDirCharset UTF-8
diff --git a/apache2/mods-available/proxy_ftp.load b/apache2/mods-available/proxy_ftp.load
new file mode 100644 (file)
index 0000000..8f2a197
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_ftp_module /usr/lib/apache2/modules/mod_proxy_ftp.so
diff --git a/apache2/mods-available/proxy_hcheck.load b/apache2/mods-available/proxy_hcheck.load
new file mode 100644 (file)
index 0000000..b70f421
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_hcheck_module /usr/lib/apache2/modules/mod_proxy_hcheck.so
diff --git a/apache2/mods-available/proxy_html.conf b/apache2/mods-available/proxy_html.conf
new file mode 100644 (file)
index 0000000..a6b40df
--- /dev/null
@@ -0,0 +1,76 @@
+# Configuration example.
+#
+# For detailed information about these directives see
+# <URL:http://httpd.apache.org/docs/2.4/mod/mod_proxy_html.html>
+# and for mod_xml2enc see
+# <URL:http://httpd.apache.org/docs/2.4/mod/mod_xml2enc.html>
+#
+
+# All knowledge of HTML links has been removed from the mod_proxy_html
+# code itself, and is instead read from httpd.conf (or included file)
+# at server startup.  So you MUST declare it.  This will normally be
+# at top level, but can also be used in a <Location>.
+#
+# Here's the declaration for W3C HTML 4.01 and XHTML 1.0
+
+ProxyHTMLLinks  a           href
+ProxyHTMLLinks  area        href
+ProxyHTMLLinks  link        href
+ProxyHTMLLinks  img         src longdesc usemap
+ProxyHTMLLinks  object      classid codebase data usemap
+ProxyHTMLLinks  q           cite
+ProxyHTMLLinks  blockquote  cite
+ProxyHTMLLinks  ins         cite
+ProxyHTMLLinks  del         cite
+ProxyHTMLLinks  form        action
+ProxyHTMLLinks  input       src usemap
+ProxyHTMLLinks  head        profile
+ProxyHTMLLinks  base        href
+ProxyHTMLLinks  script      src for
+
+# To support scripting events (with ProxyHTMLExtended On),
+# you'll need to declare them too.
+
+ProxyHTMLEvents \
+       onclick ondblclick \
+       onmousedown onmouseup onmouseover onmousemove onmouseout \
+       onkeypress onkeydown onkeyup onfocus onblur \
+       onload onunload onsubmit onreset onselect onchange
+
+# If you need to support legacy (pre-1998, aka "transitional") HTML or XHTML,
+# you'll need to uncomment the following deprecated link attributes.
+# Note that these are enabled in earlier mod_proxy_html versions
+#
+# ProxyHTMLLinks    frame   src longdesc
+# ProxyHTMLLinks    iframe  src longdesc
+# ProxyHTMLLinks    body    background
+# ProxyHTMLLinks    applet  codebase
+#
+# If you're dealing with proprietary HTML variants,
+# declare your own URL attributes here as required.
+#
+# ProxyHTMLLinks    myelement   myattr otherattr
+#
+###########
+# EXAMPLE #
+###########
+#
+# To define the URL /my-gateway/ as a gateway to an appserver with address
+# http://some.app.intranet/ on a private network, after loading the
+# modules and including this configuration file:
+#
+# ProxyRequests Off  <-- this is an important security setting
+# ProxyPass /my-gateway/ http://some.app.intranet/
+# <Location /my-gateway/>
+#      ProxyPassReverse /
+#      ProxyHTMLEnable On
+#      ProxyHTMLURLMap http://some.app.intranet/ /my-gateway/
+#      ProxyHTMLURLMap / /my-gateway/
+# </Location>
+#
+# Many (though not all) real-life setups are more complex.
+#
+# See the documentation at
+# http://apache.webthing.com/mod_proxy_html/
+# and the tutorial at
+# http://www.apachetutor.org/admin/reverseproxies
diff --git a/apache2/mods-available/proxy_html.load b/apache2/mods-available/proxy_html.load
new file mode 100644 (file)
index 0000000..50f1a2c
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy xml2enc
+LoadModule proxy_html_module /usr/lib/apache2/modules/mod_proxy_html.so
diff --git a/apache2/mods-available/proxy_http.load b/apache2/mods-available/proxy_http.load
new file mode 100644 (file)
index 0000000..a3ffe02
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
diff --git a/apache2/mods-available/proxy_http2.load b/apache2/mods-available/proxy_http2.load
new file mode 100644 (file)
index 0000000..b251d0c
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy http2
+LoadModule proxy_http2_module /usr/lib/apache2/modules/mod_proxy_http2.so
diff --git a/apache2/mods-available/proxy_scgi.load b/apache2/mods-available/proxy_scgi.load
new file mode 100644 (file)
index 0000000..fb6b0d7
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_scgi_module /usr/lib/apache2/modules/mod_proxy_scgi.so
diff --git a/apache2/mods-available/proxy_uwsgi.load b/apache2/mods-available/proxy_uwsgi.load
new file mode 100644 (file)
index 0000000..79ebd42
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_uwsgi_module /usr/lib/apache2/modules/mod_proxy_uwsgi.so
diff --git a/apache2/mods-available/proxy_wstunnel.load b/apache2/mods-available/proxy_wstunnel.load
new file mode 100644 (file)
index 0000000..fe6589d
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so
diff --git a/apache2/mods-available/ratelimit.load b/apache2/mods-available/ratelimit.load
new file mode 100644 (file)
index 0000000..fc933d7
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: env
+LoadModule ratelimit_module /usr/lib/apache2/modules/mod_ratelimit.so
diff --git a/apache2/mods-available/reflector.load b/apache2/mods-available/reflector.load
new file mode 100644 (file)
index 0000000..91701d8
--- /dev/null
@@ -0,0 +1 @@
+LoadModule reflector_module /usr/lib/apache2/modules/mod_reflector.so
diff --git a/apache2/mods-available/remoteip.load b/apache2/mods-available/remoteip.load
new file mode 100644 (file)
index 0000000..a771554
--- /dev/null
@@ -0,0 +1 @@
+LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so
diff --git a/apache2/mods-available/reqtimeout.conf b/apache2/mods-available/reqtimeout.conf
new file mode 100644 (file)
index 0000000..8b5f551
--- /dev/null
@@ -0,0 +1,21 @@
+# mod_reqtimeout limits the time waiting on the client to prevent an
+# attacker from causing a denial of service by opening many connections
+# but not sending requests. This file tries to give a sensible default
+# configuration, but it may be necessary to tune the timeout values to
+# the actual situation. Note that it is also possible to configure
+# mod_reqtimeout per virtual host.
+
+
+# Wait max 20 seconds for the first byte of the request line+headers
+# From then, require a minimum data rate of 500 bytes/s, but don't
+# wait longer than 40 seconds in total.
+# Note: Lower timeouts may make sense on non-ssl virtual hosts but can
+# cause problem with ssl enabled virtual hosts: This timeout includes
+# the time a browser may need to fetch the CRL for the certificate. If
+# the CRL server is not reachable, it may take more than 10 seconds
+# until the browser gives up.
+RequestReadTimeout header=20-40,minrate=500
+
+# Wait max 10 seconds for the first byte of the request body (if any)
+# From then, require a minimum data rate of 500 bytes/s
+RequestReadTimeout body=10,minrate=500
diff --git a/apache2/mods-available/reqtimeout.load b/apache2/mods-available/reqtimeout.load
new file mode 100644 (file)
index 0000000..8b2c5e6
--- /dev/null
@@ -0,0 +1 @@
+LoadModule reqtimeout_module /usr/lib/apache2/modules/mod_reqtimeout.so
diff --git a/apache2/mods-available/request.load b/apache2/mods-available/request.load
new file mode 100644 (file)
index 0000000..6727f5a
--- /dev/null
@@ -0,0 +1 @@
+LoadModule request_module /usr/lib/apache2/modules/mod_request.so
diff --git a/apache2/mods-available/rewrite.load b/apache2/mods-available/rewrite.load
new file mode 100644 (file)
index 0000000..b32f162
--- /dev/null
@@ -0,0 +1 @@
+LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
diff --git a/apache2/mods-available/sed.load b/apache2/mods-available/sed.load
new file mode 100644 (file)
index 0000000..cf5d9af
--- /dev/null
@@ -0,0 +1 @@
+LoadModule sed_module /usr/lib/apache2/modules/mod_sed.so
diff --git a/apache2/mods-available/session.load b/apache2/mods-available/session.load
new file mode 100644 (file)
index 0000000..f518c96
--- /dev/null
@@ -0,0 +1 @@
+LoadModule session_module /usr/lib/apache2/modules/mod_session.so
diff --git a/apache2/mods-available/session_cookie.load b/apache2/mods-available/session_cookie.load
new file mode 100644 (file)
index 0000000..8cffd89
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: session
+LoadModule session_cookie_module /usr/lib/apache2/modules/mod_session_cookie.so
diff --git a/apache2/mods-available/session_crypto.load b/apache2/mods-available/session_crypto.load
new file mode 100644 (file)
index 0000000..b3f7a95
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: session
+LoadModule session_crypto_module /usr/lib/apache2/modules/mod_session_crypto.so
diff --git a/apache2/mods-available/session_dbd.load b/apache2/mods-available/session_dbd.load
new file mode 100644 (file)
index 0000000..18fa4a4
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: session
+LoadModule session_dbd_module /usr/lib/apache2/modules/mod_session_dbd.so
diff --git a/apache2/mods-available/setenvif.conf b/apache2/mods-available/setenvif.conf
new file mode 100644 (file)
index 0000000..8bba04c
--- /dev/null
@@ -0,0 +1,26 @@
+#
+# The following directives modify normal HTTP response behavior to
+# handle known problems with browser implementations.
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+BrowserMatch "RealPlayer 4\.0" force-response-1.0
+BrowserMatch "Java/1\.0" force-response-1.0
+BrowserMatch "JDK/1\.0" force-response-1.0
+
+#
+# The following directive disables redirects on non-GET requests for
+# a directory that does not include the trailing slash.  This fixes a
+# problem with Microsoft WebFolders which does not appropriately handle
+# redirects for folders with DAV methods.
+# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
+#
+BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
+BrowserMatch "MS FrontPage" redirect-carefully
+BrowserMatch "^WebDrive" redirect-carefully
+BrowserMatch "^WebDAVFS/1\.[012]" redirect-carefully
+BrowserMatch "^gnome-vfs/1\.0" redirect-carefully
+BrowserMatch "^gvfs/1" redirect-carefully
+BrowserMatch "^XML Spy" redirect-carefully
+BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
+BrowserMatch " Konqueror/4" redirect-carefully
diff --git a/apache2/mods-available/setenvif.load b/apache2/mods-available/setenvif.load
new file mode 100644 (file)
index 0000000..bcb5c52
--- /dev/null
@@ -0,0 +1 @@
+LoadModule setenvif_module /usr/lib/apache2/modules/mod_setenvif.so
diff --git a/apache2/mods-available/slotmem_plain.load b/apache2/mods-available/slotmem_plain.load
new file mode 100644 (file)
index 0000000..0a68121
--- /dev/null
@@ -0,0 +1 @@
+LoadModule slotmem_plain_module /usr/lib/apache2/modules/mod_slotmem_plain.so
diff --git a/apache2/mods-available/slotmem_shm.load b/apache2/mods-available/slotmem_shm.load
new file mode 100644 (file)
index 0000000..48ba402
--- /dev/null
@@ -0,0 +1 @@
+LoadModule slotmem_shm_module /usr/lib/apache2/modules/mod_slotmem_shm.so
diff --git a/apache2/mods-available/socache_dbm.load b/apache2/mods-available/socache_dbm.load
new file mode 100644 (file)
index 0000000..c759d35
--- /dev/null
@@ -0,0 +1 @@
+LoadModule socache_dbm_module /usr/lib/apache2/modules/mod_socache_dbm.so
diff --git a/apache2/mods-available/socache_memcache.load b/apache2/mods-available/socache_memcache.load
new file mode 100644 (file)
index 0000000..15d1ad0
--- /dev/null
@@ -0,0 +1 @@
+LoadModule socache_memcache_module /usr/lib/apache2/modules/mod_socache_memcache.so
diff --git a/apache2/mods-available/socache_redis.load b/apache2/mods-available/socache_redis.load
new file mode 100644 (file)
index 0000000..b1a8de2
--- /dev/null
@@ -0,0 +1 @@
+LoadModule socache_redis_module /usr/lib/apache2/modules/mod_socache_redis.so
diff --git a/apache2/mods-available/socache_shmcb.load b/apache2/mods-available/socache_shmcb.load
new file mode 100644 (file)
index 0000000..542a2b2
--- /dev/null
@@ -0,0 +1 @@
+LoadModule socache_shmcb_module /usr/lib/apache2/modules/mod_socache_shmcb.so
diff --git a/apache2/mods-available/speling.load b/apache2/mods-available/speling.load
new file mode 100644 (file)
index 0000000..423e401
--- /dev/null
@@ -0,0 +1 @@
+LoadModule speling_module /usr/lib/apache2/modules/mod_speling.so
diff --git a/apache2/mods-available/ssl.conf b/apache2/mods-available/ssl.conf
new file mode 100644 (file)
index 0000000..83ca99e
--- /dev/null
@@ -0,0 +1,83 @@
+# Pseudo Random Number Generator (PRNG):
+# Configure one or more sources to seed the PRNG of the SSL library.
+# The seed data should be of good random quality.
+# WARNING! On some platforms /dev/random blocks if not enough entropy
+# is available. This means you then cannot use the /dev/random device
+# because it would lead to very long connection times (as long as
+# it requires to make more entropy available). But usually those
+# platforms additionally provide a /dev/urandom device which doesn't
+# block. So, if available, use this one instead. Read the mod_ssl User
+# Manual for more details.
+#
+SSLRandomSeed startup builtin
+SSLRandomSeed startup file:/dev/urandom 512
+SSLRandomSeed connect builtin
+SSLRandomSeed connect file:/dev/urandom 512
+
+##
+##  SSL Global Context
+##
+##  All SSL configuration in this context applies both to
+##  the main server and all SSL-enabled virtual hosts.
+##
+
+#
+#   Some MIME-types for downloading Certificates and CRLs
+#
+AddType application/x-x509-ca-cert .crt
+AddType application/x-pkcs7-crl .crl
+
+#   Pass Phrase Dialog:
+#   Configure the pass phrase gathering process.
+#   The filtering dialog program (`builtin' is a internal
+#   terminal dialog) has to provide the pass phrase on stdout.
+SSLPassPhraseDialog  exec:/usr/share/apache2/ask-for-passphrase
+
+#   Inter-Process Session Cache:
+#   Configure the SSL Session Cache: First the mechanism
+#   to use and second the expiring timeout (in seconds).
+#   (The mechanism dbm has known memory leaks and should not be used).
+#SSLSessionCache    dbm:${APACHE_RUN_DIR}/ssl_scache
+SSLSessionCache     shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
+SSLSessionCacheTimeout  300
+
+#   Semaphore:
+#   Configure the path to the mutual exclusion semaphore the
+#   SSL engine uses internally for inter-process synchronization.
+#   (Disabled by default, the global Mutex directive consolidates by default
+#   this)
+#Mutex file:${APACHE_LOCK_DIR}/ssl_mutex ssl-cache
+
+
+#   SSL Cipher Suite:
+#   List the ciphers that the client is permitted to negotiate. See the
+#   ciphers(1) man page from the openssl package for list of all available
+#   options.
+#   Enable only secure ciphers:
+SSLCipherSuite HIGH:!aNULL
+
+# SSL server cipher order preference:
+# Use server priorities for cipher algorithm choice.
+# Clients may prefer lower grade encryption.  You should enable this
+# option if you want to enforce stronger encryption, and can afford
+# the CPU cost, and did not override SSLCipherSuite in a way that puts
+# insecure ciphers first.
+# Default: Off
+#SSLHonorCipherOrder on
+
+#   The protocols to enable.
+#   Available values: all, SSLv3, TLSv1, TLSv1.1, TLSv1.2
+#   SSL v2  is no longer supported
+SSLProtocol all -SSLv3
+
+#   Allow insecure renegotiation with clients which do not yet support the
+#   secure renegotiation protocol. Default: Off
+#SSLInsecureRenegotiation on
+
+#   Whether to forbid non-SNI clients to access name based virtual hosts.
+#   Default: Off
+#SSLStrictSNIVHostCheck On
+
+# Warning: Session Tickets require regular reloading of the server!
+# Make sure you do this (e.g. via logrotate) before changing this setting!
+SSLSessionTickets off
diff --git a/apache2/mods-available/ssl.load b/apache2/mods-available/ssl.load
new file mode 100644 (file)
index 0000000..3d2336a
--- /dev/null
@@ -0,0 +1,2 @@
+# Depends: setenvif mime socache_shmcb
+LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
diff --git a/apache2/mods-available/status.conf b/apache2/mods-available/status.conf
new file mode 100644 (file)
index 0000000..cd7dd58
--- /dev/null
@@ -0,0 +1,23 @@
+# Allow server status reports generated by mod_status,
+# with the URL of http://servername/server-status
+# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
+
+<Location /server-status>
+       SetHandler server-status
+       Require local
+       #Require ip 192.0.2.0/24
+</Location>
+
+# Keep track of extended status information for each request
+ExtendedStatus On
+
+# Determine if mod_status displays the first 63 characters of a request or
+# the last 63, assuming the request itself is greater than 63 chars.
+# Default: Off
+#SeeRequestTail On
+
+
+<IfModule mod_proxy.c>
+       # Show Proxy LoadBalancer status in mod_status
+       ProxyStatus On
+</IfModule>
diff --git a/apache2/mods-available/status.load b/apache2/mods-available/status.load
new file mode 100644 (file)
index 0000000..9efd636
--- /dev/null
@@ -0,0 +1 @@
+LoadModule status_module /usr/lib/apache2/modules/mod_status.so
diff --git a/apache2/mods-available/substitute.load b/apache2/mods-available/substitute.load
new file mode 100644 (file)
index 0000000..df361cd
--- /dev/null
@@ -0,0 +1 @@
+LoadModule substitute_module /usr/lib/apache2/modules/mod_substitute.so
diff --git a/apache2/mods-available/suexec.load b/apache2/mods-available/suexec.load
new file mode 100644 (file)
index 0000000..116858b
--- /dev/null
@@ -0,0 +1 @@
+LoadModule suexec_module /usr/lib/apache2/modules/mod_suexec.so
diff --git a/apache2/mods-available/unique_id.load b/apache2/mods-available/unique_id.load
new file mode 100644 (file)
index 0000000..2d0c9eb
--- /dev/null
@@ -0,0 +1 @@
+LoadModule unique_id_module /usr/lib/apache2/modules/mod_unique_id.so
diff --git a/apache2/mods-available/userdir.conf b/apache2/mods-available/userdir.conf
new file mode 100644 (file)
index 0000000..16cf53c
--- /dev/null
@@ -0,0 +1,8 @@
+UserDir public_html
+UserDir disabled root
+
+<Directory /home/*/public_html>
+       AllowOverride FileInfo AuthConfig Limit Indexes
+       Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+       Require method GET POST OPTIONS
+</Directory>
diff --git a/apache2/mods-available/userdir.load b/apache2/mods-available/userdir.load
new file mode 100644 (file)
index 0000000..0cfc621
--- /dev/null
@@ -0,0 +1 @@
+LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so
diff --git a/apache2/mods-available/usertrack.load b/apache2/mods-available/usertrack.load
new file mode 100644 (file)
index 0000000..25918b5
--- /dev/null
@@ -0,0 +1 @@
+LoadModule usertrack_module /usr/lib/apache2/modules/mod_usertrack.so
diff --git a/apache2/mods-available/vhost_alias.load b/apache2/mods-available/vhost_alias.load
new file mode 100644 (file)
index 0000000..4fe4cb6
--- /dev/null
@@ -0,0 +1 @@
+LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so
diff --git a/apache2/mods-available/xml2enc.load b/apache2/mods-available/xml2enc.load
new file mode 100644 (file)
index 0000000..98cfa18
--- /dev/null
@@ -0,0 +1 @@
+LoadModule xml2enc_module /usr/lib/apache2/modules/mod_xml2enc.so
diff --git a/apache2/mods-enabled/access_compat.load b/apache2/mods-enabled/access_compat.load
new file mode 120000 (symlink)
index 0000000..4ac4ead
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/access_compat.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/alias.conf b/apache2/mods-enabled/alias.conf
new file mode 120000 (symlink)
index 0000000..f616ae2
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/alias.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/alias.load b/apache2/mods-enabled/alias.load
new file mode 120000 (symlink)
index 0000000..13a943a
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/alias.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/auth_basic.load b/apache2/mods-enabled/auth_basic.load
new file mode 120000 (symlink)
index 0000000..28c1eae
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/auth_basic.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/authn_core.load b/apache2/mods-enabled/authn_core.load
new file mode 120000 (symlink)
index 0000000..6ae9e0d
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/authn_core.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/authn_file.load b/apache2/mods-enabled/authn_file.load
new file mode 120000 (symlink)
index 0000000..ab54e91
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/authn_file.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/authz_core.load b/apache2/mods-enabled/authz_core.load
new file mode 120000 (symlink)
index 0000000..ccfcf1e
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/authz_core.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/authz_host.load b/apache2/mods-enabled/authz_host.load
new file mode 120000 (symlink)
index 0000000..badc268
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/authz_host.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/authz_user.load b/apache2/mods-enabled/authz_user.load
new file mode 120000 (symlink)
index 0000000..59914f2
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/authz_user.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/autoindex.conf b/apache2/mods-enabled/autoindex.conf
new file mode 120000 (symlink)
index 0000000..de8c1bb
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/autoindex.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/autoindex.load b/apache2/mods-enabled/autoindex.load
new file mode 120000 (symlink)
index 0000000..8fae29a
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/autoindex.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/deflate.conf b/apache2/mods-enabled/deflate.conf
new file mode 120000 (symlink)
index 0000000..84a592f
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/deflate.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/deflate.load b/apache2/mods-enabled/deflate.load
new file mode 120000 (symlink)
index 0000000..f73768e
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/deflate.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/dir.conf b/apache2/mods-enabled/dir.conf
new file mode 120000 (symlink)
index 0000000..c220eba
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/dir.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/dir.load b/apache2/mods-enabled/dir.load
new file mode 120000 (symlink)
index 0000000..84a580b
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/dir.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/env.load b/apache2/mods-enabled/env.load
new file mode 120000 (symlink)
index 0000000..ef85526
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/env.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/filter.load b/apache2/mods-enabled/filter.load
new file mode 120000 (symlink)
index 0000000..07ee625
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/filter.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/mime.conf b/apache2/mods-enabled/mime.conf
new file mode 120000 (symlink)
index 0000000..1df438b
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/mime.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/mime.load b/apache2/mods-enabled/mime.load
new file mode 120000 (symlink)
index 0000000..c2c01f7
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/mime.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/mpm_event.conf b/apache2/mods-enabled/mpm_event.conf
new file mode 120000 (symlink)
index 0000000..fdbe68a
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/mpm_event.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/mpm_event.load b/apache2/mods-enabled/mpm_event.load
new file mode 120000 (symlink)
index 0000000..c1e41c1
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/mpm_event.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/negotiation.conf b/apache2/mods-enabled/negotiation.conf
new file mode 120000 (symlink)
index 0000000..d7f730d
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/negotiation.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/negotiation.load b/apache2/mods-enabled/negotiation.load
new file mode 120000 (symlink)
index 0000000..c40e742
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/negotiation.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/reqtimeout.conf b/apache2/mods-enabled/reqtimeout.conf
new file mode 120000 (symlink)
index 0000000..093b41d
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/reqtimeout.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/reqtimeout.load b/apache2/mods-enabled/reqtimeout.load
new file mode 120000 (symlink)
index 0000000..979fab9
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/reqtimeout.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/setenvif.conf b/apache2/mods-enabled/setenvif.conf
new file mode 120000 (symlink)
index 0000000..a57c9a8
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/setenvif.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/setenvif.load b/apache2/mods-enabled/setenvif.load
new file mode 120000 (symlink)
index 0000000..6d36106
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/setenvif.load
\ No newline at end of file
diff --git a/apache2/mods-enabled/status.conf b/apache2/mods-enabled/status.conf
new file mode 120000 (symlink)
index 0000000..bd3a2f1
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/status.conf
\ No newline at end of file
diff --git a/apache2/mods-enabled/status.load b/apache2/mods-enabled/status.load
new file mode 120000 (symlink)
index 0000000..ee67fbb
--- /dev/null
@@ -0,0 +1 @@
+../mods-available/status.load
\ No newline at end of file
diff --git a/apache2/ports.conf b/apache2/ports.conf
new file mode 100644 (file)
index 0000000..f41641b
--- /dev/null
@@ -0,0 +1,13 @@
+# If you just change the port or add more ports here, you will likely also
+# have to change the VirtualHost statement in
+# /etc/apache2/sites-enabled/000-default.conf
+
+Listen 80
+
+<IfModule ssl_module>
+       Listen 443
+</IfModule>
+
+<IfModule mod_gnutls.c>
+       Listen 443
+</IfModule>
diff --git a/apache2/sites-available/000-default.conf b/apache2/sites-available/000-default.conf
new file mode 100644 (file)
index 0000000..e69ed8b
--- /dev/null
@@ -0,0 +1,29 @@
+<VirtualHost *:80>
+       # The ServerName directive sets the request scheme, hostname and port that
+       # the server uses to identify itself. This is used when creating
+       # redirection URLs. In the context of virtual hosts, the ServerName
+       # specifies what hostname must appear in the request's Host: header to
+       # match this virtual host. For the default virtual host (this file) this
+       # value is not decisive as it is used as a last resort host regardless.
+       # However, you must set it for any further virtual host explicitly.
+       #ServerName www.example.com
+
+       ServerAdmin webmaster@localhost
+       DocumentRoot /var/www/html
+
+       # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
+       # error, crit, alert, emerg.
+       # It is also possible to configure the loglevel for particular
+       # modules, e.g.
+       #LogLevel info ssl:warn
+
+       ErrorLog ${APACHE_LOG_DIR}/error.log
+       CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+       # For most configuration files from conf-available/, which are
+       # enabled or disabled at a global level, it is possible to
+       # include a line for only one particular virtual host. For example the
+       # following line enables the CGI configuration for this host only
+       # after it has been globally disabled with "a2disconf".
+       #Include conf-available/serve-cgi-bin.conf
+</VirtualHost>
diff --git a/apache2/sites-available/default-ssl.conf b/apache2/sites-available/default-ssl.conf
new file mode 100644 (file)
index 0000000..330280d
--- /dev/null
@@ -0,0 +1,130 @@
+<VirtualHost *:443>
+       ServerAdmin webmaster@localhost
+
+       DocumentRoot /var/www/html
+
+       # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
+       # error, crit, alert, emerg.
+       # It is also possible to configure the loglevel for particular
+       # modules, e.g.
+       #LogLevel info ssl:warn
+
+       ErrorLog ${APACHE_LOG_DIR}/error.log
+       CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+       # For most configuration files from conf-available/, which are
+       # enabled or disabled at a global level, it is possible to
+       # include a line for only one particular virtual host. For example the
+       # following line enables the CGI configuration for this host only
+       # after it has been globally disabled with "a2disconf".
+       #Include conf-available/serve-cgi-bin.conf
+
+       #   SSL Engine Switch:
+       #   Enable/Disable SSL for this virtual host.
+       SSLEngine on
+
+       #   A self-signed (snakeoil) certificate can be created by installing
+       #   the ssl-cert package. See
+       #   /usr/share/doc/apache2/README.Debian.gz for more info.
+       #   If both key and certificate are stored in the same file, only the
+       #   SSLCertificateFile directive is needed.
+       SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
+       SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key
+
+       #   Server Certificate Chain:
+       #   Point SSLCertificateChainFile at a file containing the
+       #   concatenation of PEM encoded CA certificates which form the
+       #   certificate chain for the server certificate. Alternatively
+       #   the referenced file can be the same as SSLCertificateFile
+       #   when the CA certificates are directly appended to the server
+       #   certificate for convinience.
+       #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
+
+       #   Certificate Authority (CA):
+       #   Set the CA certificate verification path where to find CA
+       #   certificates for client authentication or alternatively one
+       #   huge file containing all of them (file must be PEM encoded)
+       #   Note: Inside SSLCACertificatePath you need hash symlinks
+       #         to point to the certificate files. Use the provided
+       #         Makefile to update the hash symlinks after changes.
+       #SSLCACertificatePath /etc/ssl/certs/
+       #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt
+
+       #   Certificate Revocation Lists (CRL):
+       #   Set the CA revocation path where to find CA CRLs for client
+       #   authentication or alternatively one huge file containing all
+       #   of them (file must be PEM encoded)
+       #   Note: Inside SSLCARevocationPath you need hash symlinks
+       #         to point to the certificate files. Use the provided
+       #         Makefile to update the hash symlinks after changes.
+       #SSLCARevocationPath /etc/apache2/ssl.crl/
+       #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl
+
+       #   Client Authentication (Type):
+       #   Client certificate verification type and depth.  Types are
+       #   none, optional, require and optional_no_ca.  Depth is a
+       #   number which specifies how deeply to verify the certificate
+       #   issuer chain before deciding the certificate is not valid.
+       #SSLVerifyClient require
+       #SSLVerifyDepth  10
+
+       #   SSL Engine Options:
+       #   Set various options for the SSL engine.
+       #   o FakeBasicAuth:
+       #    Translate the client X.509 into a Basic Authorisation.  This means that
+       #    the standard Auth/DBMAuth methods can be used for access control.  The
+       #    user name is the `one line' version of the client's X.509 certificate.
+       #    Note that no password is obtained from the user. Every entry in the user
+       #    file needs this password: `xxj31ZMTZzkVA'.
+       #   o ExportCertData:
+       #    This exports two additional environment variables: SSL_CLIENT_CERT and
+       #    SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
+       #    server (always existing) and the client (only existing when client
+       #    authentication is used). This can be used to import the certificates
+       #    into CGI scripts.
+       #   o StdEnvVars:
+       #    This exports the standard SSL/TLS related `SSL_*' environment variables.
+       #    Per default this exportation is switched off for performance reasons,
+       #    because the extraction step is an expensive operation and is usually
+       #    useless for serving static content. So one usually enables the
+       #    exportation for CGI and SSI requests only.
+       #   o OptRenegotiate:
+       #    This enables optimized SSL connection renegotiation handling when SSL
+       #    directives are used in per-directory context.
+       #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
+       <FilesMatch "\.(?:cgi|shtml|phtml|php)$">
+               SSLOptions +StdEnvVars
+       </FilesMatch>
+       <Directory /usr/lib/cgi-bin>
+               SSLOptions +StdEnvVars
+       </Directory>
+
+       #   SSL Protocol Adjustments:
+       #   The safe and default but still SSL/TLS standard compliant shutdown
+       #   approach is that mod_ssl sends the close notify alert but doesn't wait for
+       #   the close notify alert from client. When you need a different shutdown
+       #   approach you can use one of the following variables:
+       #   o ssl-unclean-shutdown:
+       #    This forces an unclean shutdown when the connection is closed, i.e. no
+       #    SSL close notify alert is send or allowed to received.  This violates
+       #    the SSL/TLS standard but is needed for some brain-dead browsers. Use
+       #    this when you receive I/O errors because of the standard approach where
+       #    mod_ssl sends the close notify alert.
+       #   o ssl-accurate-shutdown:
+       #    This forces an accurate shutdown when the connection is closed, i.e. a
+       #    SSL close notify alert is send and mod_ssl waits for the close notify
+       #    alert of the client. This is 100% SSL/TLS standard compliant, but in
+       #    practice often causes hanging connections with brain-dead browsers. Use
+       #    this only for browsers where you know that their SSL implementation
+       #    works correctly.
+       #   Notice: Most problems of broken clients are also related to the HTTP
+       #   keep-alive facility, so you usually additionally want to disable
+       #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
+       #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
+       #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
+       #   "force-response-1.0" for this.
+       # BrowserMatch "MSIE [2-6]" \
+       #       nokeepalive ssl-unclean-shutdown \
+       #       downgrade-1.0 force-response-1.0
+
+</VirtualHost>
diff --git a/apache2/sites-enabled/000-default.conf b/apache2/sites-enabled/000-default.conf
new file mode 120000 (symlink)
index 0000000..3c4632b
--- /dev/null
@@ -0,0 +1 @@
+../sites-available/000-default.conf
\ No newline at end of file
diff --git a/apparmor.d/abi/3.0 b/apparmor.d/abi/3.0
new file mode 100644 (file)
index 0000000..4b60c42
--- /dev/null
@@ -0,0 +1,78 @@
+query {label {multi_transaction {yes
+}
+data {yes
+}
+perms {allow deny audit quiet
+}
+}
+}
+dbus {mask {acquire send receive
+}
+}
+signal {mask {hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost
+}
+}
+ptrace {mask {read trace
+}
+}
+caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon bpf
+}
+}
+rlimit {mask {cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime
+}
+}
+capability {0xffffff
+}
+namespaces {pivot_root {no
+}
+profile {yes
+}
+}
+mount {mask {mount umount pivot_root
+}
+}
+network {af_unix {yes
+}
+af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp
+}
+}
+network_v8 {af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp
+}
+}
+file {mask {create read write exec append mmap_exec link lock
+}
+}
+domain {version {1.2
+}
+attach_conditions {xattr {yes
+}
+}
+computed_longest_left {yes
+}
+post_nnp_subset {yes
+}
+fix_binfmt_elf_mmap {yes
+}
+stack {yes
+}
+change_profile {yes
+}
+change_onexec {yes
+}
+change_hatv {yes
+}
+change_hat {yes
+}
+}
+policy {set_load {yes
+}
+versions {v8 {yes
+}
+v7 {yes
+}
+v6 {yes
+}
+v5 {yes
+}
+}
+}
diff --git a/apparmor.d/abi/kernel-5.4-outoftree-network b/apparmor.d/abi/kernel-5.4-outoftree-network
new file mode 100644 (file)
index 0000000..6d5e95b
--- /dev/null
@@ -0,0 +1,76 @@
+query {label {multi_transaction {yes
+}
+data {yes
+}
+perms {allow deny audit quiet
+}
+}
+}
+dbus {mask {acquire send receive
+}
+}
+signal {mask {hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost
+}
+}
+ptrace {mask {read trace
+}
+}
+caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read
+}
+}
+rlimit {mask {cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime
+}
+}
+capability {0xffffff
+}
+namespaces {pivot_root {no
+}
+profile {yes
+}
+}
+mount {mask {mount umount pivot_root
+}
+}
+network {af_unix {yes
+}
+af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp
+}
+}
+}
+file {mask {create read write exec append mmap_exec link lock
+}
+}
+domain {version {1.2
+}
+attach_conditions {xattr {yes
+}
+}
+computed_longest_left {yes
+}
+post_nnp_subset {yes
+}
+fix_binfmt_elf_mmap {yes
+}
+stack {yes
+}
+change_profile {yes
+}
+change_onexec {yes
+}
+change_hatv {yes
+}
+change_hat {yes
+}
+}
+policy {set_load {yes
+}
+versions {v8 {yes
+}
+v7 {yes
+}
+v6 {yes
+}
+v5 {yes
+}
+}
+}
diff --git a/apparmor.d/abi/kernel-5.4-vanilla b/apparmor.d/abi/kernel-5.4-vanilla
new file mode 100644 (file)
index 0000000..9fa0e8f
--- /dev/null
@@ -0,0 +1,68 @@
+query {label {multi_transaction {yes
+}
+data {yes
+}
+perms {allow deny audit quiet
+}
+}
+}
+signal {mask {hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost
+}
+}
+ptrace {mask {read trace
+}
+}
+caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read
+}
+}
+rlimit {mask {cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime
+}
+}
+capability {0xffffff
+}
+namespaces {pivot_root {no
+}
+profile {yes
+}
+}
+mount {mask {mount umount pivot_root
+}
+}
+}
+file {mask {create read write exec append mmap_exec link lock
+}
+}
+domain {version {1.2
+}
+attach_conditions {xattr {yes
+}
+}
+computed_longest_left {yes
+}
+post_nnp_subset {yes
+}
+fix_binfmt_elf_mmap {yes
+}
+stack {yes
+}
+change_profile {yes
+}
+change_onexec {yes
+}
+change_hatv {yes
+}
+change_hat {yes
+}
+}
+policy {set_load {yes
+}
+versions {v8 {yes
+}
+v7 {yes
+}
+v6 {yes
+}
+v5 {yes
+}
+}
+}
diff --git a/apparmor.d/abstractions/X b/apparmor.d/abstractions/X
new file mode 100644 (file)
index 0000000..ead10d9
--- /dev/null
@@ -0,0 +1,66 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  include <abstractions/dri-common>
+
+
+  # .ICEauthority files required for X authentication, per user
+  owner @{HOME}/.ICEauthority r,
+  owner @{run}/user/*/ICEauthority r,
+
+  # .Xauthority files required for X connections, per user
+  owner @{HOME}/.Xauthority r,
+  owner @{HOME}/.local/share/sddm/.Xauthority r,
+  owner @{run}/gdm{,3}/*/database r,
+  owner @{run}/lightdm/authority/[0-9]* r,
+  owner @{run}/lightdm/*/xauthority r,
+  owner @{run}/user/*/gdm/Xauthority r,
+  owner @{run}/user/*/X11/Xauthority r,
+  owner @{run}/user/*/xauth_* r,
+
+  # the unix socket to use to connect to the display
+  /tmp/.X11-unix/* rw,
+  unix (connect, receive, send)
+       type=stream
+       peer=(addr="@/tmp/.X11-unix/X[0-9]*"),
+  unix (connect, receive, send)
+       type=stream
+       peer=(addr="@/tmp/.ICE-unix/[0-9]*"),
+
+  /usr/include/X11/               r,
+  /usr/include/X11/**             r,
+
+  # The X tree changes and is large -- grant read access to the whole thing
+  /usr/X11R6/**                   r,
+  /usr/share/X11/                 r,
+  /usr/share/X11/**               r,
+  /usr/X11R6/**.so*               mr,
+
+  # EGL
+  /usr/lib/@{multiarch}/egl/*.so* mr,
+
+  # Xcompose
+  owner @{HOME}/.XCompose         r,
+  /var/cache/libx11/compose/*     r,
+  deny /var/cache/libx11/compose/* wlk,
+
+  # mouse themes
+  /etc/X11/cursors/               r,
+  /etc/X11/cursors/**             r,
+
+  # Xwayland
+  owner @{run}/user/*/.mutter-Xwaylandauth.* r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/X.d>
diff --git a/apparmor.d/abstractions/apache2-common b/apparmor.d/abstractions/apache2-common
new file mode 100644 (file)
index 0000000..e6bcc5e
--- /dev/null
@@ -0,0 +1,43 @@
+# vim:syntax=apparmor
+
+# This file contains basic permissions for Apache and every vHost
+
+  abi <abi/3.0>,
+
+  include <abstractions/nameservice>
+
+  # Allow other processes to read our /proc entries
+  ptrace (readby),
+  # Allow other processes to trace us by default
+  ptrace (tracedby),
+  # Allow unconfined processes to send us signals by default
+  signal (receive) peer=unconfined,
+  # Allow apache to send us signals by default
+  signal (receive) peer=apache2,
+  # Allow other hats to signal by default
+  signal peer=apache2//*,
+  # Allow us to signal ourselves
+  signal peer=@{profile_name},
+
+  # Apache
+  network inet stream,
+  network inet6 stream,
+  # apache manual, error pages and icons
+  /usr/share/apache2/** r,
+
+  # changehat itself
+  @{PROC}/@{pid}/attr/{apparmor/,}current                        rw,
+
+  # htaccess files - for what ever it is worth
+  /**/.htaccess            r,
+
+  /dev/urandom            r,
+
+  # sasl-auth
+  @{run}/saslauthd/mux rw,
+
+  # OCSP stapling
+  @{run}/lock/apache2/stapling-cache* rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/apache2-common.d>
diff --git a/apparmor.d/abstractions/apparmor_api/change_profile b/apparmor.d/abstractions/apparmor_api/change_profile
new file mode 100644 (file)
index 0000000..c2dfcba
--- /dev/null
@@ -0,0 +1,13 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/3.0>,
+
+include <abstractions/apparmor_api/introspect>
+
+@{PROC}/@{tid}/attr/{apparmor/,}{current,exec} w,
diff --git a/apparmor.d/abstractions/apparmor_api/examine b/apparmor.d/abstractions/apparmor_api/examine
new file mode 100644 (file)
index 0000000..655708b
--- /dev/null
@@ -0,0 +1,14 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# Make sure to include at least tunables/proc and tunables/kernelvars
+# when using this abstraction, if not tunables/global.
+
+abi <abi/3.0>,
+
+@{PROC}/@{pids}/attr/{apparmor/,}{current,prev,exec} r,
diff --git a/apparmor.d/abstractions/apparmor_api/find_mountpoint b/apparmor.d/abstractions/apparmor_api/find_mountpoint
new file mode 100644 (file)
index 0000000..d75970e
--- /dev/null
@@ -0,0 +1,16 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/3.0>,
+
+#permissions needed for aa_find_mountpoint
+
+# Make sure to include at least tunables/proc and tunables/kernelvars
+# when using this abstraction, if not tunables/global.
+
+@{PROC}/@{pids}/mounts r,
diff --git a/apparmor.d/abstractions/apparmor_api/introspect b/apparmor.d/abstractions/apparmor_api/introspect
new file mode 100644 (file)
index 0000000..b88da0a
--- /dev/null
@@ -0,0 +1,14 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/3.0>,
+
+# Make sure to include at least tunables/proc and tunables/kernelvars
+# when using this abstraction, if not tunables/global.
+
+@{PROC}/@{tid}/attr/{apparmor/,}{current,prev,exec} r,
diff --git a/apparmor.d/abstractions/apparmor_api/is_enabled b/apparmor.d/abstractions/apparmor_api/is_enabled
new file mode 100644 (file)
index 0000000..b91e3fa
--- /dev/null
@@ -0,0 +1,20 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/3.0>,
+
+# permissions needed for aa_is_enabled
+
+# Make sure to include tunables/apparmorfs and tunables/global
+# when using this abstraction
+
+include <abstractions/apparmor_api/find_mountpoint>
+@{sys}/module/apparmor/parameters/enabled r,
+@{sys}/module/apparmor/parameters/available r,
+
+# TODO: add alternate apparmorfs interface for enabled
diff --git a/apparmor.d/abstractions/aspell b/apparmor.d/abstractions/aspell
new file mode 100644 (file)
index 0000000..eff252b
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# aspell permissions
+
+  abi <abi/3.0>,
+
+  # per-user settings and dictionaries
+  owner @{HOME}/.aspell.*.{pws,prepl} rwk,
+
+  # system libraries and dictionaries
+  /usr/lib/aspell/ r,
+  /usr/lib/aspell/* r,
+  /usr/lib/aspell/*.so m,
+  /usr/share/aspell/ r,
+  /usr/share/aspell/* r,
+  /var/lib/aspell/* r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/aspell.d>
diff --git a/apparmor.d/abstractions/audio b/apparmor.d/abstractions/audio
new file mode 100644 (file)
index 0000000..dd78399
--- /dev/null
@@ -0,0 +1,92 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/3.0>,
+
+
+/dev/admmidi*   rw,
+/dev/adsp*      rw,
+/dev/aload*     rw,
+/dev/amidi*     rw,
+/dev/audio*     rw,
+/dev/dmfm*      rw,
+/dev/dmmidi*    rw,
+/dev/dsp*       rw,
+/dev/midi*      rw,
+/dev/mixer*     rw,
+/dev/mpu401data rw,
+/dev/mpu401stat rw,
+/dev/patmgr*    rw,
+/dev/phone*     rw,
+/dev/radio*     rw,
+/dev/rmidi*     rw,
+/dev/sequencer  rw,
+/dev/sequencer2 rw,
+/dev/smpte*     rw,
+
+/dev/snd/*      rw,
+/dev/sound/*    rw,
+
+@{PROC}/asound/** rw,
+
+/usr/share/alsa/** r,
+/usr/share/sounds/** r,
+
+owner @{HOME}/.esd_auth r,
+/etc/asound.conf r,
+owner @{HOME}/.asoundrc r,
+/etc/esound/esd.conf r,
+
+# libao
+/etc/libao.conf r,
+owner @{HOME}/.libao r,
+
+# libcanberra
+owner @{HOME}/.cache/event-sound-cache.* rwk,
+
+# pulse
+/etc/pulse/ r,
+/etc/pulse/** r,
+/dev/shm/ r,
+@{run}/shm/ r,
+owner /dev/shm/pulse-shm* rwk,
+owner @{run}/shm/pulse-shm* rwk,
+owner @{HOME}/.pulse-cookie rwk,
+owner @{HOME}/.pulse/ rw,
+owner @{HOME}/.pulse/* rwk,
+owner @{run}/user/*/pulse/  rw,
+owner @{run}/user/*/pulse/{native,pid} rwk,
+owner @{HOME}/.config/pulse/*.conf r,
+owner @{HOME}/.config/pulse/client.conf.d/{,*.conf} r,
+owner @{HOME}/.config/pulse/cookie rwk,
+owner /tmp/pulse-*/ rw,
+owner /tmp/pulse-*/* rw,
+
+# libgnome2
+/etc/sound/ r,
+/etc/sound/** r,
+
+# openal
+/etc/alsa/conf.d/{,*} r,
+/etc/openal/alsoft.conf r,
+owner @{HOME}/.alsoftrc r,
+/usr/{,local/}share/openal/hrtf/{,**} r,
+owner @{HOME}/.local/share/openal/hrtf/{,**} r,
+
+# wildmidi
+/etc/wildmidi/wildmidi.cfg r,
+
+# pipewire
+/usr/share/pipewire/client.conf r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/audio.d>
diff --git a/apparmor.d/abstractions/authentication b/apparmor.d/abstractions/authentication
new file mode 100644 (file)
index 0000000..d5dbd83
--- /dev/null
@@ -0,0 +1,58 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2012 Canonical Ltd
+#    Copyright (C) 2019-2021 Christian Boltz
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+
+  # Some services need to perform authentication of users
+  # Such authentication almost certainly needs access to the local users
+  # databases containing passwords, PAM configuration files, PAM libraries
+  @{etc_ro}/nologin                r,
+  @{etc_ro}/pam.d/*                r,
+  @{etc_ro}/securetty              r,
+  @{etc_ro}/security/*             r,
+  @{etc_ro}/shadow                 r,
+  @{etc_ro}/gshadow                r,
+  @{etc_ro}/pwdb.conf              r,
+
+  /{usr/,}lib{,32,64}/security/pam_filter/*  mr,
+  /{usr/,}lib{,32,64}/security/pam_*.so      mr,
+  /{usr/,}lib{,32,64}/security/              r,
+  /{usr/,}lib/@{multiarch}/security/pam_filter/*  mr,
+  /{usr/,}lib/@{multiarch}/security/pam_*.so      mr,
+  /{usr/,}lib/@{multiarch}/security/              r,
+
+  # kerberos
+  include <abstractions/kerberosclient>
+  # SuSE's pwdutils are different:
+  @{etc_ro}/default/passwd         r,
+  @{etc_ro}/login.defs             r,
+  @{etc_ro}/login.defs.d/          r,
+  @{etc_ro}/login.defs.d/*.defs    r,
+
+  # nis
+  include <abstractions/nis>
+
+  # winbind
+  include <abstractions/winbind>
+
+  # likewise
+  include <abstractions/likewise>
+
+  # smbpass
+  include <abstractions/smbpass>
+
+  # p11-kit (PKCS#11 modules configuration)
+  include <abstractions/p11-kit>
+
+  # Include additions to the abstraction
+  include if exists <abstractions/authentication.d>
diff --git a/apparmor.d/abstractions/base b/apparmor.d/abstractions/base
new file mode 100644 (file)
index 0000000..5def401
--- /dev/null
@@ -0,0 +1,179 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  include <abstractions/crypto>
+
+  # (Note that the ldd profile has inlined this file; if you make
+  # modifications here, please consider including them in the ldd
+  # profile as well.)
+
+  # The __canary_death_handler function writes a time-stamped log
+  # message to /dev/log for logging by syslogd. So, /dev/log, timezones,
+  # and localisations of date should be available EVERYWHERE, so
+  # StackGuard, FormatGuard, etc., alerts can be properly logged.
+  /dev/log                       w,
+  /dev/random                    r,
+  /dev/urandom                   r,
+  # Allow access to the uuidd daemon (this daemon is a thin wrapper around
+  # time and getrandom()/{,u}random and, when available, runs under an
+  # unprivilged, dedicated user).
+  @{run}/uuidd/request           r,
+  @{etc_ro}/locale/**          r,
+  @{etc_ro}/locale.alias       r,
+  @{etc_ro}/localtime          r,
+  /etc/writable/localtime        r,
+  /usr/share/locale-bundle/**    r,
+  /usr/share/locale-langpack/**  r,
+  /usr/share/locale/**           r,
+  /usr/share/**/locale/**        r,
+  /usr/share/zoneinfo/           r,
+  /usr/share/zoneinfo/**         r,
+  /usr/share/X11/locale/**       r,
+  @{run}/systemd/journal/dev-log w,
+  # systemd native journal API (see sd_journal_print(4))
+  @{run}/systemd/journal/socket  w,
+  # Nested containers and anything using systemd-cat need this. 'r' shouldn't
+  # be required but applications fail without it. journald doesn't leak
+  # anything when reading so this is ok.
+  @{run}/systemd/journal/stdout  rw,
+
+  /usr/lib{,32,64}/locale/**             mr,
+  /usr/lib{,32,64}/gconv/*.so            mr,
+  /usr/lib{,32,64}/gconv/gconv-modules*  mr,
+  /usr/lib/@{multiarch}/gconv/*.so           mr,
+  /usr/lib/@{multiarch}/gconv/gconv-modules* mr,
+
+  # used by glibc when binding to ephemeral ports
+  @{etc_ro}/bindresvport.blacklist    r,
+
+  # ld.so.cache and ld are used to load shared libraries; they are best
+  # available everywhere
+  @{etc_ro}/ld.so.cache               mr,
+  @{etc_ro}/ld.so.conf                r,
+  @{etc_ro}/ld.so.conf.d/{,*.conf}    r,
+  @{etc_ro}/ld.so.preload             r,
+  /{usr/,}lib{,32,64}/ld{,32,64}-*.so   mr,
+  /{usr/,}lib/@{multiarch}/ld{,32,64}-*.so    mr,
+  /{usr/,}lib/tls/i686/{cmov,nosegneg}/ld-*.so     mr,
+  /{usr/,}lib/i386-linux-gnu/tls/i686/{cmov,nosegneg}/ld-*.so     mr,
+  /opt/*-linux-uclibc/lib/ld-uClibc*so* mr,
+
+  # we might as well allow everything to use common libraries
+  /{usr/,}lib{,32,64}/**                r,
+  /{usr/,}lib{,32,64}/**.so*       mr,
+  /{usr/,}lib/@{multiarch}/**            r,
+  /{usr/,}lib/@{multiarch}/**.so*   mr,
+  /{usr/,}lib/tls/i686/{cmov,nosegneg}/*.so*    mr,
+  /{usr/,}lib/i386-linux-gnu/tls/i686/{cmov,nosegneg}/*.so*    mr,
+
+  # FIPS-140-2 versions of some crypto libraries need to access their
+  # associated integrity verification file, or they will abort.
+  /{usr/,}lib{,32,64}/.lib*.so*.hmac      r,
+  /{usr/,}lib/@{multiarch}/.lib*.so*.hmac r,
+
+  # /dev/null is pretty harmless and frequently used
+  /dev/null                      rw,
+  # as is /dev/zero
+  /dev/zero                      rw,
+  # recent glibc uses /dev/full in preference to /dev/null for programs
+  # that don't have open fds at exec()
+  /dev/full                      rw,
+
+  # Sometimes used to determine kernel/user interfaces to use
+  @{PROC}/sys/kernel/version     r,
+  # Depending on which glibc routine uses this file, base may not be the
+  # best place -- but many profiles require it, and it is quite harmless.
+  @{PROC}/sys/kernel/ngroups_max r,
+
+  # glibc's sysconf(3) routine to determine free memory, etc
+  @{PROC}/meminfo                r,
+  @{PROC}/stat                   r,
+  @{PROC}/cpuinfo                r,
+  @{sys}/devices/system/cpu/       r,
+  @{sys}/devices/system/cpu/online r,
+  @{sys}/devices/system/cpu/possible r,
+
+  # glibc's *printf protections read the maps file
+  @{PROC}/@{pid}/{maps,auxv,status} r,
+
+  # libgcrypt reads some flags from /proc
+  @{PROC}/sys/crypto/*           r,
+
+  # some applications will display license information
+  /usr/share/common-licenses/**  r,
+
+  # glibc statvfs
+  @{PROC}/filesystems            r,
+
+  # glibc malloc (man 5 proc)
+  @{PROC}/sys/vm/overcommit_memory r,
+
+  # Allow determining the highest valid capability of the running kernel
+  @{PROC}/sys/kernel/cap_last_cap r,
+
+  # Allow other processes to read our /proc entries, futexes, perf tracing and
+  # kcmp for now (they will need 'read' in the first place). Administrators can
+  # override with:
+  #   deny ptrace (readby) ...
+  ptrace (readby),
+
+  # Allow other processes to trace us by default (they will need 'trace' in
+  # the first place). Administrators can override with:
+  #   deny ptrace (tracedby) ...
+  ptrace (tracedby),
+
+  # Allow us to ptrace read ourselves
+  ptrace (read) peer=@{profile_name},
+
+  # Allow unconfined processes to send us signals by default
+  signal (receive) peer=unconfined,
+
+  # Allow us to signal ourselves
+  signal peer=@{profile_name},
+
+  # Checking for PID existence is quite common so add it by default for now
+  signal (receive, send) set=("exists"),
+
+  # Allow us to create and use abstract and anonymous sockets
+  unix peer=(label=@{profile_name}),
+
+  # Allow unconfined processes to us via unix sockets
+  unix (receive) peer=(label=unconfined),
+
+  # Allow us to create abstract and anonymous sockets
+  unix (create),
+
+  # Allow us to getattr, getopt, setop and shutdown on unix sockets
+  unix (getattr, getopt, setopt, shutdown),
+
+  # Workaround https://launchpad.net/bugs/359338 until upstream handles stacked
+  # filesystems generally. This does not appreciably decrease security with
+  # Ubuntu profiles because the user is expected to have access to files owned
+  # by him/her. Exceptions to this are explicit in the profiles. While this rule
+  # grants access to those exceptions, the intended privacy is maintained due to
+  # the encrypted contents of the files in this directory. Files in this
+  # directory will also use filename encryption by default, so the files are
+  # further protected. Also, with the use of 'owner', this rule properly
+  # prevents access to the files from processes running under a different uid.
+
+  # encrypted ~/.Private and old-style encrypted $HOME
+  owner @{HOME}/.Private/ r,
+  owner @{HOME}/.Private/** mrixwlk,
+  # new-style encrypted $HOME
+  owner @{HOMEDIRS}/.ecryptfs/*/.Private/ r,
+  owner @{HOMEDIRS}/.ecryptfs/*/.Private/** mrixwlk,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/base.d>
diff --git a/apparmor.d/abstractions/bash b/apparmor.d/abstractions/bash
new file mode 100644 (file)
index 0000000..89c1cf1
--- /dev/null
@@ -0,0 +1,49 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # user-specific bash files
+  @{HOMEDIRS}                      r,
+  @{HOME}/.bashrc                  r,
+  @{HOME}/.profile                 r,
+  @{HOME}/.bash_profile            r,
+  @{HOME}/.bash_history            rw,
+
+  # system-wide bash configuration
+  /etc/profile.dos                 r,
+  /etc/profile                     r,
+  /etc/profile.d/                  r,
+  /etc/profile.d/*                 r,
+  /etc/bashrc                      r,
+  /etc/bash.bashrc                 r,
+  /etc/bash.bashrc.local           r,
+  /etc/bash_completion             r,
+  /etc/bash_completion.d/          r,
+  /etc/bash_completion.d/*         r,
+
+  # bash relies on system-wide readline configuration
+  /etc/inputrc                     r,
+
+  # bash inspects filesystems at startup
+  /etc/mtab                        r,
+  @{PROC}/@{pid}/mounts            r,
+  @{PROC}/filesystems              r,
+
+  # probably readline wants to know terminal capabilities
+  /usr/share/terminfo/**           r,
+
+  # run out of /etc/bash.bashrc
+  /etc/DIR_COLORS                  r,
+  /{usr/,}bin/ls                   mix,
+  /usr/bin/dircolors               mix,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/bash.d>
diff --git a/apparmor.d/abstractions/consoles b/apparmor.d/abstractions/consoles
new file mode 100644 (file)
index 0000000..aabf3dd
--- /dev/null
@@ -0,0 +1,27 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2005 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+
+  # there are three common ways to refer to consoles
+  /dev/console rw,
+  /dev/tty     rw,
+  # this next entry is a tad unfortunate; /dev/tty will always be
+  # associated with the controlling terminal by the kernel, but if a
+  # program uses the /dev/pts/ interface, it actually has access to
+  # -all- xterm, sshd, etc, terminals on the system.
+  /dev/pts/[0-9]*   rw,
+  /dev/pts/         r,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/consoles.d>
diff --git a/apparmor.d/abstractions/crypto b/apparmor.d/abstractions/crypto
new file mode 100644 (file)
index 0000000..50852e8
--- /dev/null
@@ -0,0 +1,27 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#    Copyright (C) 2021 Christian Boltz
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  @{etc_ro}/gcrypt/hwf.deny r,
+  @{etc_ro}/gcrypt/random.conf r,
+  @{PROC}/sys/crypto/fips_enabled r,
+
+  # libgcrypt reads some flags from /proc
+  @{PROC}/sys/crypto/* r,
+
+  # crypto policies used by various libraries
+  /etc/crypto-policies/*/*.txt r,
+  /usr/share/crypto-policies/*/*.txt r,
+
+  include if exists <abstractions/crypto.d>
diff --git a/apparmor.d/abstractions/cups-client b/apparmor.d/abstractions/cups-client
new file mode 100644 (file)
index 0000000..44f36e2
--- /dev/null
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009-2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # discoverable system configuration for non-local cupsd
+  /etc/cups/client.conf   r,
+  # client should be able to talk the local cupsd
+  @{run}/cups/cups.sock   rw,
+  # client should be able to read user-specified cups configuration
+  owner @{HOME}/.cups/client.conf r,
+  owner @{HOME}/.cups/lpoptions r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/cups-client.d>
diff --git a/apparmor.d/abstractions/dbus b/apparmor.d/abstractions/dbus
new file mode 100644 (file)
index 0000000..b96ca09
--- /dev/null
@@ -0,0 +1,21 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009-2013 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # This abstraction grants full system bus access. Consider using the
+  # dbus-strict abstraction for fine-grained bus mediation.
+
+  include <abstractions/dbus-strict>
+  dbus bus=system,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dbus.d>
diff --git a/apparmor.d/abstractions/dbus-accessibility b/apparmor.d/abstractions/dbus-accessibility
new file mode 100644 (file)
index 0000000..3c49a32
--- /dev/null
@@ -0,0 +1,21 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2013 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # This abstraction grants full accessibility bus access. Consider using the
+  # dbus-accessibility-strict abstraction for fine-grained bus mediation.
+
+  include <abstractions/dbus-accessibility-strict>
+  dbus bus=accessibility,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dbus-accessibility.d>
diff --git a/apparmor.d/abstractions/dbus-accessibility-strict b/apparmor.d/abstractions/dbus-accessibility-strict
new file mode 100644 (file)
index 0000000..8fe06ea
--- /dev/null
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2013 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  dbus send
+       bus=accessibility
+       path=/org/freedesktop/DBus
+       interface=org.freedesktop.DBus
+       member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+       peer=(name=org.freedesktop.DBus),
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dbus-accessibility-strict.d>
diff --git a/apparmor.d/abstractions/dbus-network-manager-strict b/apparmor.d/abstractions/dbus-network-manager-strict
new file mode 100644 (file)
index 0000000..9930c80
--- /dev/null
@@ -0,0 +1,47 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+  dbus send
+       bus=system
+       path=/org/freedesktop/NetworkManager
+       interface=org.freedesktop.DBus.Properties
+       member=GetAll
+       peer=(name=org.freedesktop.NetworkManager),
+
+  dbus send
+       bus=system
+       path=/org/freedesktop/NetworkManager
+       interface=org.freedesktop.NetworkManager
+       member=GetDevices
+       peer=(name=org.freedesktop.NetworkManager),
+
+  dbus send
+       bus=system
+       path=/org/freedesktop/NetworkManager/ActiveConnection/[0-9]*
+       interface=org.freedesktop.DBus.Properties
+       member=GetAll
+       peer=(name=org.freedesktop.NetworkManager),
+
+  dbus send
+       bus=system
+       path=/org/freedesktop/NetworkManager/Devices/[0-9]*
+       interface=org.freedesktop.DBus.Properties
+       member=GetAll
+       peer=(name=org.freedesktop.NetworkManager),
+
+  dbus send
+       bus=system
+       path=/org/freedesktop/NetworkManager/Settings
+       interface=org.freedesktop.NetworkManager.Settings
+       member={GetDevices,ListConnections}
+       peer=(name=org.freedesktop.NetworkManager),
+
+  dbus send
+       bus=system
+       path=/org/freedesktop/NetworkManager/Settings/[0-9]*
+       interface=org.freedesktop.NetworkManager.Settings.Connection
+       member=GetSettings
+       peer=(name=org.freedesktop.NetworkManager),
+
+  include if exists <abstractions/dbus-network-manager-strict.d>
diff --git a/apparmor.d/abstractions/dbus-session b/apparmor.d/abstractions/dbus-session
new file mode 100644 (file)
index 0000000..9b8b979
--- /dev/null
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2011-2013 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # This abstraction grants full session bus access. Consider using the
+  # dbus-session-strict abstraction for fine-grained bus mediation.
+
+  include <abstractions/dbus-session-strict>
+  /usr/bin/dbus-launch ix,
+  dbus bus=session,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dbus-session.d>
diff --git a/apparmor.d/abstractions/dbus-session-strict b/apparmor.d/abstractions/dbus-session-strict
new file mode 100644 (file)
index 0000000..a301d45
--- /dev/null
@@ -0,0 +1,33 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2011-2013 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # unique per-machine identifier
+  /etc/machine-id r,
+  /var/lib/dbus/machine-id r,
+
+  unix (connect, receive, send)
+       type=stream
+       peer=(addr="@/tmp/dbus-*"),
+
+  # dbus with systemd and --enable-user-session
+  owner @{run}/user/[0-9]*/bus rw,
+
+  dbus send
+       bus=session
+       path=/org/freedesktop/DBus
+       interface=org.freedesktop.DBus
+       member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+       peer=(name=org.freedesktop.DBus),
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dbus-session-strict.d>
diff --git a/apparmor.d/abstractions/dbus-strict b/apparmor.d/abstractions/dbus-strict
new file mode 100644 (file)
index 0000000..915195d
--- /dev/null
@@ -0,0 +1,24 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009-2013 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  @{run}/dbus/system_bus_socket rw,
+
+  dbus send
+       bus=system
+       path=/org/freedesktop/DBus
+       interface=org.freedesktop.DBus
+       member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+       peer=(name=org.freedesktop.DBus),
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dbus-strict.d>
diff --git a/apparmor.d/abstractions/dconf b/apparmor.d/abstractions/dconf
new file mode 100644 (file)
index 0000000..fc3b3db
--- /dev/null
@@ -0,0 +1,13 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# permissions for querying dconf settings; granting write access should
+# be specified in a specific application's profile.
+
+  /etc/dconf/** r,
+  owner @{run}/user/*/dconf/user r,
+  owner @{HOME}/.config/dconf/user r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dconf.d>
diff --git a/apparmor.d/abstractions/dovecot-common b/apparmor.d/abstractions/dovecot-common
new file mode 100644 (file)
index 0000000..35d3cb1
--- /dev/null
@@ -0,0 +1,24 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2014 Canonical, Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# used with dovecot/*
+
+  abi <abi/3.0>,
+
+  capability setgid,
+
+  deny capability block_suspend,
+
+  # dovecot's master can send us signals
+  signal receive peer=dovecot,
+
+  owner @{run}/dovecot/config rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dovecot-common.d>
diff --git a/apparmor.d/abstractions/dri-common b/apparmor.d/abstractions/dri-common
new file mode 100644 (file)
index 0000000..cd9542b
--- /dev/null
@@ -0,0 +1,19 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# This file contains common DRI-specific rules useful for GUI applications
+# (needed by libdrm and similar).
+
+  /usr/lib{,32,64}/dri/**         mr,
+  /usr/lib/@{multiarch}/dri/**    mr,
+  /usr/lib/fglrx/dri/**           mr,
+  /dev/dri/                       r,
+  /dev/dri/**                     rw,
+  /etc/drirc                      r,
+  /usr/share/drirc.d/{,*.conf}    r,
+  owner @{HOME}/.drirc            r,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dri-common.d>
diff --git a/apparmor.d/abstractions/dri-enumerate b/apparmor.d/abstractions/dri-enumerate
new file mode 100644 (file)
index 0000000..b5717cd
--- /dev/null
@@ -0,0 +1,13 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# This file contains common DRI-specific rules useful for GUI applications that
+# needs to enumerate graphic devices (as with drmParsePciDeviceInfo() from
+# libdrm).
+
+  @{sys}/devices/pci[0-9]*/**/{device,subsystem_device,subsystem_vendor,uevent,vendor} r,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/dri-enumerate.d>
diff --git a/apparmor.d/abstractions/enchant b/apparmor.d/abstractions/enchant
new file mode 100644 (file)
index 0000000..e80373b
--- /dev/null
@@ -0,0 +1,64 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # abstraction for Enchant spellchecking frontend
+
+  /usr/share/enchant/                              r,
+  /usr/share/enchant/enchant.ordering              r,
+
+  /usr/share/enchant-2/                            r,
+  /usr/share/enchant-2/enchant.ordering            r,
+
+  # aspell
+  include <abstractions/aspell>
+  /var/lib/dictionaries-common/aspell/             r,
+  /var/lib/dictionaries-common/aspell/*            r,
+
+  # hspell
+  /usr/share/hspell/                               r,
+  /usr/share/hspell/*.wgz.*                        r,
+
+  # hunspell
+  /usr/share/hunspell/                             r,
+  /usr/share/hunspell/*                            r,
+
+  # ispell
+  /usr/lib/ispell/                                 r,
+  /usr/lib/ispell/*.hash                           r,
+  /usr/share/dict/                                 r,
+  /usr/share/dict/*                                r,
+  /var/lib/dictionaries-common/                    r,
+  /var/lib/dictionaries-common/{ispell,wordlist}/  r,
+  /var/lib/dictionaries-common/{ispell,wordlist}/* r,
+
+  # myspell
+  /usr/share/myspell/                              r,
+  /usr/share/myspell/**                            r,
+
+  # voikko
+  /usr/lib/voikko/                                 r,
+  /usr/lib/voikko/2/                               r,
+  /usr/lib/voikko/2/mor-standard/                  r,
+  /usr/lib/voikko/2/mor-standard/voikko*           r,
+
+  # zemberek
+  /usr/share/java/                                 r,
+  /usr/share/java/zemberek-[0-9]*.jar              r,
+  /usr/share/java/zemberek-tr-[0-9]*.jar           r,
+
+  # per-user dictionaries
+  owner @{HOME}/.config/enchant/                   rw,
+  owner @{HOME}/.config/enchant/*                  rwk,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/enchant.d>
diff --git a/apparmor.d/abstractions/exo-open b/apparmor.d/abstractions/exo-open
new file mode 100644 (file)
index 0000000..2ce38e5
--- /dev/null
@@ -0,0 +1,69 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via exo-open helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/exo-open directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/exo-open rPx -> foo//exo-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//exo-open {
+#   include <abstractions/exo-open>
+#
+#   # needed for ubuntu-* abstractions
+#   include <abstractions/ubuntu-helpers>
+#
+#   # Only allow to handle http[s]: and mailto: links
+#   include <abstractions/ubuntu-browsers>
+#   include <abstractions/ubuntu-email>
+#
+#   # Add if accesibility access is considered as required
+#   # (for message boxe in case exo-open fails)
+#   include <abstractions/dbus-accessibility>
+#
+#   # < add additional allowed applications here >
+# }
+
+  include <abstractions/X>
+  include <abstractions/audio> # for alert messages
+  include <abstractions/base>
+  include <abstractions/dbus-session-strict>
+  include <abstractions/gnome>
+
+  # Main executables
+
+  /usr/bin/exo-open rix,
+  /usr/lib{32,64,/@{multiarch}}/xfce4/exo-[0-9]/exo-helper-[0-9] ix,
+
+  # Other executables
+
+  /{,usr/}bin/which rix,
+
+  # System files
+
+  /etc/xdg/{,xdg-*/}xfce4/helpers.rc r,
+  /etc/xfce4/defaults.list r, # TODO: move into xfce4 abstraction?
+  /usr/share/sounds/freedesktop/** r, # for message box alert sound
+  /usr/share/xfce4/helpers/*.desktop r,
+  /usr/share/{xfce{,4},xubuntu}/applications/{,*.list} r,
+
+  # User files
+
+  owner @{PROC}/@{pid}/fd/ r,
+  owner @{HOME}/.config/xfce4/helpers.rc r,
+  owner @{HOME}/.local/share/xfce4/helpers/*.desktop r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/exo-open.d>
diff --git a/apparmor.d/abstractions/fcitx b/apparmor.d/abstractions/fcitx
new file mode 100644 (file)
index 0000000..9321bfc
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2016 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  include <abstractions/fcitx-strict>
+  dbus bus=fcitx,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/fcitx.d>
diff --git a/apparmor.d/abstractions/fcitx-strict b/apparmor.d/abstractions/fcitx-strict
new file mode 100644 (file)
index 0000000..19d2191
--- /dev/null
@@ -0,0 +1,26 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2016 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  include <abstractions/dbus-session-strict>
+
+  dbus send
+      bus=fcitx
+      path=/org/freedesktop/DBus
+      interface=org.freedesktop.DBus
+      member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+      peer=(name=org.freedesktop.DBus),
+
+  owner @{HOME}/.config/fcitx/dbus/* r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/fcitx-strict.d>
diff --git a/apparmor.d/abstractions/fonts b/apparmor.d/abstractions/fonts
new file mode 100644 (file)
index 0000000..46324db
--- /dev/null
@@ -0,0 +1,68 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /usr/share/AbiSuite/fonts/**          r,
+
+  /usr/lib/xorg/modules/fonts/**.so*    mr,
+
+  /usr/share/fonts/{,**}                r,
+  /usr/share/fonts-*/{,**}              r,
+
+  /etc/fonts/**                         r,
+  # Debian, openSUSE paths are different
+  /usr/share/{fontconfig,fonts-config,*-fonts}/conf.avail/{,**} r,
+  /usr/share/ghostscript/fonts/{,**}    r,
+
+  /opt/kde3/share/fonts/**              r,
+
+  /usr/lib{,32,64}/openoffice/share/fonts/**    r,
+
+  /var/cache/fonts/**                   r,
+  /var/cache/fontconfig/**              mr,
+  /var/lib/defoma/**                    mr,
+
+  /usr/share/a2ps/fonts/**              r,
+  /usr/share/xfce/fonts/**              r,
+  /usr/share/ghostscript/fonts/**       r,
+  /usr/share/javascript/*/fonts/**      r,
+  /usr/share/texmf/{,*/}fonts/**        r,
+  /usr/share/texlive/texmf-dist/fonts/** r,
+  /var/lib/ghostscript/**               r,
+
+  owner @{HOME}/.fonts.conf             r,
+  owner @{HOME}/.fonts/                 r,
+  owner @{HOME}/.fonts/**               r,
+  owner @{HOME}/.local/share/fonts/     r,
+  owner @{HOME}/.local/share/fonts/**   r,
+  owner @{HOME}/.fonts.cache-2          mr,
+  owner @{HOME}/.{,cache/}fontconfig/   rw,
+  owner @{HOME}/.{,cache/}fontconfig/** mrl,
+  owner @{HOME}/.fonts.conf.d/          r,
+  owner @{HOME}/.fonts.conf.d/**        r,
+  owner @{HOME}/.config/fontconfig/     r,
+  owner @{HOME}/.config/fontconfig/**   r,
+  owner @{HOME}/.Fontmatrix/Activated/  r,
+  owner @{HOME}/.Fontmatrix/Activated/** r,
+
+  /usr/local/share/fonts/               r,
+  /usr/local/share/fonts/**             r,
+
+  # poppler CMap tables
+  /usr/share/poppler/cMap/**            r,
+
+  # data files for LibThai
+  /usr/share/libthai/thbrk.tri          r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/fonts.d>
diff --git a/apparmor.d/abstractions/freedesktop.org b/apparmor.d/abstractions/freedesktop.org
new file mode 100644 (file)
index 0000000..a3c9672
--- /dev/null
@@ -0,0 +1,33 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # system configuration
+  @{system_share_dirs}/applications/{**,} r,
+  @{system_share_dirs}/icons/{**,}        r,
+  @{system_share_dirs}/pixmaps/{**,}      r,
+
+  # this should probably go elsewhere
+  @{system_share_dirs}/mime/** r,
+
+  # per-user configurations
+  owner @{HOME}/.icons/                 r,
+  owner @{HOME}/.recently-used.xbel*    rw,
+  owner @{HOME}/.local/share/recently-used.xbel* rw,
+  owner @{HOME}/.config/user-dirs.dirs  r,
+  owner @{HOME}/.config/mimeapps.list   r,
+  owner @{user_share_dirs}/applications/{**,} r,
+  owner @{user_share_dirs}/icons/{**,}        r,
+  owner @{user_share_dirs}/mime/{**,}         r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/freedesktop.org.d>
diff --git a/apparmor.d/abstractions/gio-open b/apparmor.d/abstractions/gio-open
new file mode 100644 (file)
index 0000000..fda1fb9
--- /dev/null
@@ -0,0 +1,59 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via gio helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/gio directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/gio rPx -> foo//gio-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//gio-open {
+#   include <abstractions/gio-open>
+#
+#   # needed for ubuntu-* abstractions
+#   include <abstractions/ubuntu-helpers>
+#
+#   # Only allow to handle http[s]: and mailto: links
+#   include <abstractions/ubuntu-browsers>
+#   include <abstractions/ubuntu-email>
+#
+#   # < add additional allowed applications here >
+# }
+
+  include <abstractions/base>
+  include <abstractions/dbus-session-strict>
+
+  # Main executables
+
+  /usr/bin/gio rix,
+  /usr/bin/gio-launch-desktop ix, # for OpenSUSE
+  /usr/lib/@{multiarch}/glib-[0-9]*/gio-launch-desktop ix,
+
+  # System files
+
+  /etc/gnome/defaults.list r,
+  /usr/share/mime/* r,
+  /usr/share/{,*/}applications/{,**} r,
+  /var/cache/gio-[0-9]*.[0-9]*/gnome-mimeapps.list r,
+  /var/lib/snapd/desktop/applications/{,**} r,
+
+  # User files
+
+  owner @{HOME}/.config/mimeapps.list r,
+  owner @{HOME}/.local/share/applications/{,*.desktop} r,
+  owner @{PROC}/@{pid}/fd/ r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/gio-open.d>
diff --git a/apparmor.d/abstractions/gnome b/apparmor.d/abstractions/gnome
new file mode 100644 (file)
index 0000000..94f3da6
--- /dev/null
@@ -0,0 +1,117 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  include <abstractions/base>
+  include <abstractions/fonts>
+  include <abstractions/X>
+  include <abstractions/freedesktop.org>
+  include <abstractions/xdg-desktop>
+  include <abstractions/user-tmp>
+  include <abstractions/wayland>
+
+  # systemwide gtk defaults
+  /etc/gnome/gtkrc*               r,
+  /etc/gtk/*                      r,
+  /usr/lib{,32,64}/gtk/**         mr,
+  /usr/lib/@{multiarch}/gtk/**    mr,
+  /usr/lib{,32,64}/gtk-[0-9]*/**  mr,
+  /usr/lib/@{multiarch}/gtk-[0-9]*/** mr,
+  /usr/share/themes/              r,
+  /usr/share/themes/**            r,
+  /usr/share/gtk-3.0/settings.ini r,
+
+  # for gnome 1 applications
+  /etc/orbitrc                    r,
+
+  # gtk-2 needed some new rights
+  /etc/fonts/*                    r,
+  /etc/gtk-*/*                    r,
+  /etc/pango/*                    r,
+  /usr/lib{,32,64}/pango/**       mr,
+  /usr/lib{,32,64}/gtk-*/**       mr,
+  /usr/lib{,32,64}/gdk-pixbuf-*/** mr,
+  /usr/lib/@{multiarch}/pango/**        mr,
+  /usr/lib/@{multiarch}/gtk-*/**        mr,
+  /usr/lib/@{multiarch}/gdk-pixbuf-*/** mr,
+
+  # per-user gtk configuration
+  owner @{HOME}/.config/gtk-3.0/        w,
+  owner @{HOME}/.config/gtk-3.0/*       r,
+  owner @{HOME}/.gnome/Gnome            r,
+  owner @{HOME}/.gtk                    r,
+  owner @{HOME}/.gtkrc                  r,
+  owner @{HOME}/.gtkrc-2.0              r,
+  owner @{HOME}/.gtk-bookmarks          r,
+  owner @{HOME}/.themes/                r,
+  owner @{HOME}/.themes/**              r,
+  owner @{user_share_dirs}/themes/      r,
+  owner @{user_share_dirs}/themes/**    r,
+
+  # for gtk file dialog
+  owner @{HOME}/.config/gtk-2.0/                    w,
+  owner @{HOME}/.config/gtk-2.0/**                  r,
+  owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw,
+
+  # from evolution-mail
+  owner @{HOME}/.gconfd/lock/*                      r,
+  owner @{HOME}/.gnome/application-info             r,
+
+  # per-user font business
+  owner @{HOME}/.fonts.cache-*    rwl,
+
+  # GtkComposeTable
+  owner @{HOME}/.cache/gtk-3.0/** r,
+
+  # icon caches
+  /var/cache/**/icon-theme.cache  r,
+  /usr/share/**/icon-theme.cache  r,
+
+  # GLib schemas
+  /usr/{local/,}share/glib-[0-9]*/schemas/   r,
+  /usr/{local/,}share/glib-[0-9]*/schemas/** r,
+
+  # gnome VFS modules
+  /etc/gnome-vfs-2.0/modules/ r,
+  /etc/gnome-vfs-2.0/modules/* r,
+  /usr/lib/gnome-vfs-2.0/modules/*.so mr,
+  /usr/lib/@{multiarch}/gnome-vfs-2.0/modules/*.so mr,
+
+  # gvfs
+  /usr/share/gvfs/remote-volume-monitors/  r,
+  /usr/share/gvfs/remote-volume-monitors/* r,
+  @{PROC}/@{pid}/mounts                    r,
+  @{run}/mount/utab                        r,
+
+  # printing
+  /etc/papersize                   r,
+  /etc/cups/lpoptions              r,
+  /usr/share/cups/charmaps/**      r,
+
+  # holds MIT-MAGIC-COOKIE for gnome
+  owner @{run}/gdm/auth*/database r,
+
+  # mime-types
+  /etc/gnome/defaults.list r,
+  /etc/xdg/{,*-}mimeapps.list r,
+  /usr/share/gnome/applications/ r,
+  /usr/share/gnome/applications/mimeinfo.cache r,
+
+  # Allow connecting to the GNOME vfs socket (still need corresponding DBus
+  # rules)
+  unix (send, receive, connect)
+       type=stream
+       peer=(addr="@/dbus-vfs-daemon/socket-*"),
+
+  # Include additions to the abstraction
+  include if exists <abstractions/gnome.d>
diff --git a/apparmor.d/abstractions/gnupg b/apparmor.d/abstractions/gnupg
new file mode 100644 (file)
index 0000000..050f043
--- /dev/null
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+# gnupg sub-process running permissions
+
+  abi <abi/3.0>,
+
+  # user configurations
+  owner @{HOME}/.gnupg/options     r,
+  owner @{HOME}/.gnupg/pubring.gpg r,
+  owner @{HOME}/.gnupg/pubring.kbx r,
+  owner @{HOME}/.gnupg/random_seed rw,
+  owner @{HOME}/.gnupg/secring.gpg r,
+  owner @{HOME}/.gnupg/so/*.x86_64 mr,
+  owner @{HOME}/.gnupg/trustdb.gpg rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/gnupg.d>
diff --git a/apparmor.d/abstractions/gtk b/apparmor.d/abstractions/gtk
new file mode 100644 (file)
index 0000000..26c388b
--- /dev/null
@@ -0,0 +1,55 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /usr/share/themes/{,**} r,
+
+  /usr/share/gtksourceview-[0-9]*/{,**} r,
+
+  /usr/share/gtk-2.0/ r,
+  /usr/share/gtk-2.0/gtkrc r,
+
+  /usr/share/gtk-{3,4}.0/ r,
+  /usr/share/gtk-{3,4}.0/settings.ini r,
+
+  /etc/gtk-2.0/ r,
+  /etc/gtk-2.0/gtkrc r,
+
+  /etc/gtk-{3,4}.0/ r,
+  /etc/gtk-{3,4}.0/*.conf r,
+
+  /etc/gtk/gtkrc r,
+
+  owner @{HOME}/.themes/{,**} r,
+  owner @{HOME}/.local/share/themes/{,**} r,
+
+  owner @{HOME}/.gtk r,
+  owner @{HOME}/.gtkrc r,
+  owner @{HOME}/.gtkrc-2.0 r,
+  owner @{HOME}/.gtk-bookmarks r,
+  owner @{HOME}/.config/gtkrc r,
+  owner @{HOME}/.config/gtkrc-2.0 r,
+  owner @{HOME}/.config/gtk-{3,4}.0/ rw,
+  owner @{HOME}/.config/gtk-{3,4}.0/settings.ini r,
+  owner @{HOME}/.config/gtk-{3,4}.0/bookmarks r,
+  owner @{HOME}/.config/gtk-{3,4}.0/gtk.css r,
+
+  # for gtk file dialog
+  owner @{HOME}/.config/gtk-2.0/ rw,
+  owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw,
+
+  # .Xauthority file required for X connections
+  owner @{HOME}/.Xauthority r,
+
+  # Xsession errors file
+  owner @{HOME}/.xsession-errors w,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/gtk.d>
diff --git a/apparmor.d/abstractions/gvfs-open b/apparmor.d/abstractions/gvfs-open
new file mode 100644 (file)
index 0000000..3265314
--- /dev/null
@@ -0,0 +1,47 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via gvfs-open helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/gvfs-open directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/gvfs-open rPx -> foo//gvfs-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//gvfs-open {
+#   include <abstractions/gvfs-open>
+#
+#   # needed for ubuntu-* abstractions
+#   include <abstractions/ubuntu-helpers>
+#
+#   # Only allow to handle http[s]: and mailto: links
+#   include <abstractions/ubuntu-browsers>
+#   include <abstractions/ubuntu-email>
+#
+#   # < add additional allowed applications here >
+# }
+# ```
+
+  include <abstractions/base>
+
+  # gvfs-open is deprecated, it launches gio open <uri>
+  include <abstractions/gio-open>
+
+  # Main executables
+
+  /usr/bin/gvfs-open r,
+  /{,usr/}bin/dash mr,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/gvfs-open.d>
diff --git a/apparmor.d/abstractions/hosts_access b/apparmor.d/abstractions/hosts_access
new file mode 100644 (file)
index 0000000..e5ea88c
--- /dev/null
@@ -0,0 +1,17 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2020 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /etc/hosts.deny r,
+  /etc/hosts.allow r,
+
+  include if exists <abstractions/hosts_access.d>
diff --git a/apparmor.d/abstractions/ibus b/apparmor.d/abstractions/ibus
new file mode 100644 (file)
index 0000000..a8b2bf1
--- /dev/null
@@ -0,0 +1,29 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # abstraction for ibus input methods
+  owner @{HOME}/.config/ibus/ r,
+  owner @{HOME}/.config/ibus/bus/ rw,
+  owner @{HOME}/.config/ibus/bus/* rw,
+
+  # abstract path in ibus >= 1.5.22 uses $XDG_CACHE_HOME (ie, @{HOME}/.cache)
+  # This should use this, but due to LP: #1856738 we cannot
+  #unix (connect, receive, send)
+  #    type=stream
+  #    peer=(addr="@@{HOME}/.cache/ibus/dbus-*"),
+  unix (connect, receive, send)
+       type=stream
+       peer=(addr="@/home/*/.cache/ibus/dbus-*"),
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ibus.d>
diff --git a/apparmor.d/abstractions/kde b/apparmor.d/abstractions/kde
new file mode 100644 (file)
index 0000000..5514e63
--- /dev/null
@@ -0,0 +1,85 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/3.0>,
+
+include <abstractions/base>
+include <abstractions/fonts>
+include <abstractions/X>
+include <abstractions/freedesktop.org>
+include <abstractions/xdg-desktop>
+include <abstractions/user-tmp>
+include <abstractions/qt5>
+
+/etc/qt3/kstylerc r,
+/etc/qt3/qt_plugins_3.3rc r,
+/etc/qt3/qtrc r,
+/etc/kderc r,
+/etc/kde3/* r,
+/etc/kde4rc r,
+/etc/xdg/kdeglobals r,
+/etc/xdg/Trolltech.conf r,
+/usr/share/knotifications5/*.notifyrc r, # KNotification::sendEvent()
+/usr/share/kubuntu-default-settings/kf5-settings/* r,
+
+owner @{HOME}/.DCOPserver_* r,
+owner @{HOME}/.ICEauthority r,
+owner @{HOME}/.fonts.* lrw,
+owner @{HOME}/.kde{,4}/share/config/kdeglobals rw,
+owner @{HOME}/.kde{,4}/share/config/*.lock rwl,
+owner @{HOME}/.qt/** rw,
+owner @{HOME}/.cache/ksycoca5_??_* r, # KDE System Configuration Cache
+owner @{HOME}/.config/Trolltech.conf rwk,
+owner @{HOME}/.config/baloofilerc r, # indexing options (excludes, etc), used by KFileWidget
+owner @{HOME}/.config/dolphinrc r, # settings used by KFileWidget
+owner @{HOME}/.config/kde.org/libphonon.conf r, # for KNotifications::sendEvent()
+owner @{HOME}/.config/kdedefaults/kdeglobals r, # QPlatformThemeFactory::create() -> KDEPlasmaPlatformTheme.so
+owner @{HOME}/.config/kdedefaults/kwinrc r, # QStyleFactory::create() -> qt5/plugins/styles/breeze.so
+owner @{HOME}/.config/kdeglobals r, # global settings, used by Breeze style, etc.
+owner @{HOME}/.config/klanguageoverridesrc r, # per-application languages, for KDEPrivate::initializeLanguages() from libKF5XmlGui.so
+owner @{HOME}/.config/kwinrc r, # QStyleFactory::create() -> qt5/plugins/styles/breeze.so
+owner @{HOME}/.config/trashrc r, # Used by KFileWidget
+
+/usr/share/X11/XKeysymDB r,
+
+# kde3
+/usr/lib*/kde3/plugins/styles/ r,
+/usr/lib*/kde3/plugins/styles/* mr,
+/usr/lib*/kde3/lib*so* mr,
+/usr/lib/@{multiarch}/kde3/plugins/styles/ r,
+/usr/lib/@{multiarch}/kde3/plugins/styles/* mr,
+/usr/lib/@{multiarch}/kde3/lib*so* mr,
+/usr/lib*/qt3/lib*/lib*so* mr,
+/usr/lib*/qt3/plugins/**  mr,
+/usr/lib/@{multiarch}/qt3/lib*/lib*so* mr,
+/usr/lib/@{multiarch}/qt3/plugins/**  mr,
+/usr/lib*/libqt-mt*so* mr,
+/usr/lib*/libqui*so* mr,
+/usr/lib/@{multiarch}/libqt-mt*so* mr,
+/usr/lib/@{multiarch}/libqui*so* mr,
+/usr/share/qt3/lib*/libqt-mt*so* mr,
+/usr/share/qt3/lib*/libqui*so* mr,
+
+# kde4
+/usr/lib*/kde4/plugins/*/*.so mr,
+/usr/lib*/kde4/plugins/*/ r,
+/usr/lib*/kde4/lib*so* mr,
+/usr/lib/@{multiarch}/kde4/plugins/*/*.so mr,
+/usr/lib/@{multiarch}/kde4/plugins/*/ r,
+/usr/lib/@{multiarch}/kde4/lib*so* mr,
+/usr/lib*/qt4/lib*/lib*so* mr,
+/usr/lib*/qt4/plugins/**  mr,
+/usr/lib/@{multiarch}/qt4/lib*/lib*so* mr,
+/usr/lib/@{multiarch}/qt4/plugins/**  mr,
+/usr/share/qt4/** r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/kde.d>
diff --git a/apparmor.d/abstractions/kde-globals-write b/apparmor.d/abstractions/kde-globals-write
new file mode 100644 (file)
index 0000000..5db20a3
--- /dev/null
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+# Rules for changing KDE settings (for KFileDialog and other).
+
+  abi <abi/3.0>,
+
+  # User files
+  owner @{HOME}/.config/#[0-9]* rw,
+  owner @{HOME}/.config/kdeglobals rw,
+  owner @{HOME}/.config/kdeglobals.?????? rwl -> @{HOME}/.config/#[0-9]*,
+  owner @{HOME}/.config/kdeglobals.lock rwk,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/kde-globals-write.d>
diff --git a/apparmor.d/abstractions/kde-icon-cache-write b/apparmor.d/abstractions/kde-icon-cache-write
new file mode 100644 (file)
index 0000000..df3793e
--- /dev/null
@@ -0,0 +1,12 @@
+# vim:syntax=apparmor
+# Rules for writing KDE icon cache
+
+  abi <abi/3.0>,
+
+  # User files
+
+  owner @{HOME}/.cache/icon-cache.kcache rw, # for KIconLoader
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/kde-icon-cache-write.d>
diff --git a/apparmor.d/abstractions/kde-language-write b/apparmor.d/abstractions/kde-language-write
new file mode 100644 (file)
index 0000000..1314d21
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# Rules for changing per-application language settings on KDE. Some KDE
+# applications have "Help -> Switch Application Language..." option, that needs
+# write access to language settings file.
+
+  # User files
+
+  owner @{HOME}/.config/#[0-9]* rw,
+  owner @{HOME}/.config/klanguageoverridesrc rw,
+  owner @{HOME}/.config/klanguageoverridesrc.?????? rwl -> @{HOME}/.config/#[0-9]*,
+  owner @{HOME}/.config/klanguageoverridesrc.lock rwk,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/kde-language-write.d>
diff --git a/apparmor.d/abstractions/kde-open5 b/apparmor.d/abstractions/kde-open5
new file mode 100644 (file)
index 0000000..5f4e0f7
--- /dev/null
@@ -0,0 +1,106 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via kde-open5 helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/kde-open5 directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/kde-open5 rPx -> foo//kde-open5,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//kde-open5 {
+#   include <abstractions/kde-open5>
+#
+#   # needed for ubuntu-* abstractions
+#   include <abstractions/ubuntu-helpers>
+#
+#   # Only allow to handle http[s]: and mailto: links
+#   include <abstractions/ubuntu-browsers>
+#   include <abstractions/ubuntu-email>
+#
+#   # Add if accesibility access is considered as required
+#   # (for message boxe in case exo-open fails)
+#   include <abstractions/dbus-accessibility>
+#
+#   # Add if audio support for message box is
+#   # considered as required.
+#   include if exists <abstractions/gstreamer>
+#
+#   # < add additional allowed applications here >
+# }
+# ```
+
+  include <abstractions/audio> # for alert messages
+  include <abstractions/base>
+  include <abstractions/dbus-accessibility-strict>
+  include <abstractions/dbus-network-manager-strict>
+  include <abstractions/dbus-session-strict>
+  include <abstractions/dbus-strict>
+  include <abstractions/kde-icon-cache-write>
+  include <abstractions/kde>
+  include <abstractions/nameservice> # for IceProcessMessages () from libICE.so (called by libQtCore.so)
+  include <abstractions/openssl>
+  include <abstractions/qt5>
+  include <abstractions/recent-documents-write>
+  include <abstractions/X>
+
+  # Main executables
+
+  /usr/bin/kde-open5 rix,
+  /usr/lib/@{multiarch}/libexec/kf5/kioslave{,5} ix,
+
+  # DBus
+
+  dbus
+      bus=session
+      interface=org.kde.KLauncher
+      member=start_service_by_desktop_path
+      peer=(name=org.kde.klauncher5),
+
+  # Denied system files
+
+  deny /usr/lib/vlc/plugins/* w, # VLC backed tries to create plugins.dat.16109
+
+  # libpcre2 on openSUSE tries to mmap() shared memory on directory.
+  # see: https://lists.ubuntu.com/archives/apparmor/2019-January/011925.html
+  # AppArmor does not allow to distinguish "real" file vs shared memory one,
+  # so we deny this path to protect from loading exploits from /tmp.
+  deny /tmp/#[0-9]*[0-9] m,
+
+  # System files
+
+  /dev/tty r,
+  /etc/xdg/accept-languages.codes r,
+  /etc/xdg/menus/{,*/} r,
+  /usr/share/*fonts*/conf.avail/*.conf r, # for openSUSE, when showing error message box
+  /usr/share/ghostscript/fonts/ r, # for openSUSE, when showing error message box
+  /usr/share/hwdata/pnp.ids r, # for openSUSE, when showing error message box, for QXcbConnection::initializeScreens() from libQt5XcbQpa.so
+  /usr/share/icu/[0-9]*.[0-9]*/*.dat r, # for openSUSE
+  /usr/share/kservices5/{,**} r, # for KProtocolManager::defaultUserAgent() from libKF5KIOCore.so
+  /usr/share/mime/ r,
+  /usr/share/mime/generic-icons r,
+  /usr/share/plasma/look-and-feel/*/contents/defaults r, # TODO: move to kde abstraction?
+  /usr/share/sounds/ r,
+  @{PROC}/sys/kernel/core_pattern r,
+  @{PROC}/sys/kernel/random/boot_id r,
+
+  # User files
+
+  owner /tmp/xauth-[0-9]*-_[0-9] r, # for libQt5XcbQpa.so
+  owner @{run}/user/[0-9]*/#[0-9]* rw, # for /run/user/1000/#13
+  owner @{run}/user/[0-9]*/kioclient*slave-socket lrw -> @{run}/user/[0-9]/#[0-9]*, # for KIO::Slave::holdSlave(QString const&, QUrl const&) () from libKF5KIOCore.so (not 100% sure)
+  owner @{HOME}/.cache/kio_http/ rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/kde-open5.d>
diff --git a/apparmor.d/abstractions/kerberosclient b/apparmor.d/abstractions/kerberosclient
new file mode 100644 (file)
index 0000000..386e8c1
--- /dev/null
@@ -0,0 +1,39 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # files required by kerberos client programs
+  /usr/lib{,32,64}/krb5/plugins/libkrb5/ r,
+  /usr/lib{,32,64}/krb5/plugins/libkrb5/* mr,
+  /usr/lib/@{multiarch}/krb5/plugins/libkrb5/ r,
+  /usr/lib/@{multiarch}/krb5/plugins/libkrb5/* mr,
+
+  /usr/lib{,32,64}/krb5/plugins/preauth/ r,
+  /usr/lib{,32,64}/krb5/plugins/preauth/* mr,
+  /usr/lib/@{multiarch}/krb5/plugins/preauth/ r,
+  /usr/lib/@{multiarch}/krb5/plugins/preauth/* mr,
+
+  /etc/krb5.keytab            rk,
+  /etc/krb5.conf              r,
+  /etc/krb5.conf.d/           r,
+  /etc/krb5.conf.d/*          r,
+
+  # config files found via strings on libs
+  /etc/krb.conf               r,
+  /etc/krb.realms             r,
+  /etc/srvtab                 r,
+
+  # credential caches
+  /tmp/krb5cc* r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/kerberosclient.d>
diff --git a/apparmor.d/abstractions/ldapclient b/apparmor.d/abstractions/ldapclient
new file mode 100644 (file)
index 0000000..550963c
--- /dev/null
@@ -0,0 +1,29 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2011 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # files required by LDAP clients (e.g. nss_ldap/pam_ldap)
+  /etc/ldap.conf            r,
+  /etc/ldap.secret          r,
+  /etc/openldap/*           r,
+  /etc/openldap/cacerts/*   r,
+
+  # SASL plugins and config
+  /etc/sasl2/*              r,
+  /usr/lib{,32,64}/sasl2/*  r,
+
+  # local LDAP name service daemon
+  @{run}/nslcd/socket  rw,
+
+  include <abstractions/ssl_certs>
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ldapclient.d>
diff --git a/apparmor.d/abstractions/libpam-systemd b/apparmor.d/abstractions/libpam-systemd
new file mode 100644 (file)
index 0000000..b99765f
--- /dev/null
@@ -0,0 +1,24 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2015-2016 Simon Deziel
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+include <abstractions/dbus-strict>
+
+  # libpam-systemd notifies systemd-logind about session logins/logouts
+  dbus send
+    bus=system
+    path=/org/freedesktop/login1
+    interface=org.freedesktop.login1.Manager
+    member={CreateSession,ReleaseSession},
+
+  # Include additions to the abstraction
+  include if exists <abstractions/libpam-systemd.d>
diff --git a/apparmor.d/abstractions/likewise b/apparmor.d/abstractions/likewise
new file mode 100644 (file)
index 0000000..3cf9c92
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /tmp/.lwidentity/pipe       rw,
+  /var/lib/likewise-open/lwidentity_privileged/pipe rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/likewise.d>
diff --git a/apparmor.d/abstractions/mdns b/apparmor.d/abstractions/mdns
new file mode 100644 (file)
index 0000000..0e4a5dc
--- /dev/null
@@ -0,0 +1,19 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # mdnsd
+  /etc/mdns.allow r,
+  /etc/nss_mdns.conf r,
+  @{run}/mdnsd w,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/mdns.d>
diff --git a/apparmor.d/abstractions/mesa b/apparmor.d/abstractions/mesa
new file mode 100644 (file)
index 0000000..381c12f
--- /dev/null
@@ -0,0 +1,31 @@
+# vim:syntax=apparmor
+# Rules for Mesa implementation of the OpenGL API
+
+  abi <abi/3.0>,
+
+  # System files
+  /dev/dri/ r, # libGLX_mesa.so calls drmGetDevice2()
+
+  # Needed to check if the kernel supports the i915 perf interface
+  # (src/intel/perf/gen_perf.c, load_oa_metrics())
+  @{PROC}/sys/dev/i915/perf_stream_paranoid r,
+
+  @{sys}/devices/pci[0-9]*/**/{revision,config} r,
+
+  # User files
+  owner @{HOME}/.cache/ w, # if user clears all caches
+  owner @{HOME}/.cache/mesa_shader_cache/ rw,
+  owner @{HOME}/.cache/mesa_shader_cache/index rw,
+  owner @{HOME}/.cache/mesa_shader_cache/[a-f0-9][a-f0-9]/ rw,
+  owner @{HOME}/.cache/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]* rw,
+  owner @{HOME}/.cache/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]*.tmp rwk,
+
+  # Fallback location when @{HOME}/.cache is not available
+  owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/ rw,
+  owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/index rw,
+  owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/[a-f0-9][a-f0-9]/ rw,
+  owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]* rw,
+  owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]*.tmp rwk,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/mesa.d>
diff --git a/apparmor.d/abstractions/mir b/apparmor.d/abstractions/mir
new file mode 100644 (file)
index 0000000..4ccc22e
--- /dev/null
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2015 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # mir libraries sometimes do not have a lib prefix
+  # see LP: #1422521
+  /usr/lib/@{multiarch}/mir/*.so* mr,
+  /usr/lib/@{multiarch}/mir/**/*.so* mr,
+
+  # unprivileged mir socket for clients
+
+  # Include additions to the abstraction
+  include if exists <abstractions/mir.d>
diff --git a/apparmor.d/abstractions/mozc b/apparmor.d/abstractions/mozc
new file mode 100644 (file)
index 0000000..e7480c2
--- /dev/null
@@ -0,0 +1,17 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2016 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  unix (connect, receive, send) type=stream peer=(addr="@tmp/.mozc.*"),
+
+  # Include additions to the abstraction
+  include if exists <abstractions/mozc.d>
diff --git a/apparmor.d/abstractions/mysql b/apparmor.d/abstractions/mysql
new file mode 100644 (file)
index 0000000..4feccb4
--- /dev/null
@@ -0,0 +1,20 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2013 Christian Boltz
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+   /var/lib/mysql{,d}/mysql{,d}.sock rw,
+   @{run}/mysql{,d}/mysql{,d}.sock rw,
+   /usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r,
+   /usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/mysql.d>
diff --git a/apparmor.d/abstractions/nameservice b/apparmor.d/abstractions/nameservice
new file mode 100644 (file)
index 0000000..7f53f2e
--- /dev/null
@@ -0,0 +1,119 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # Many programs wish to perform nameservice-like operations, such as
+  # looking up users by name or id, groups by name or id, hosts by name
+  # or IP, etc. These operations may be performed through files, dns,
+  # NIS, NIS+, LDAP, hesiod, wins, etc. Allow them all here.
+  @{etc_ro}/group          r,
+  @{etc_ro}/host.conf      r,
+  @{etc_ro}/hosts          r,
+  @{etc_ro}/nsswitch.conf  r,
+  @{etc_ro}/gai.conf       r,
+  @{etc_ro}/passwd         r,
+  @{etc_ro}/protocols      r,
+
+  # libtirpc (used for NIS/YP login) needs this
+  @{etc_ro}/netconfig r,
+
+  # When using libnss-extrausers, the passwd and group files are merged from
+  # an alternate path
+  /var/lib/extrausers/group  r,
+  /var/lib/extrausers/passwd r,
+
+  # When using sssd, the passwd and group files are stored in an alternate path
+  # and the nss plugin also needs to talk to a pipe
+  /var/lib/sss/mc/group   r,
+  /var/lib/sss/mc/initgroups r,
+  /var/lib/sss/mc/passwd  r,
+  /var/lib/sss/pipes/nss  rw,
+
+  @{etc_ro}/resolv.conf r,
+  # On systems where /etc/resolv.conf is managed programmatically, it is
+  # a symlink to @{run}/(whatever program is managing it)/resolv.conf.
+  @{run}/{resolvconf,NetworkManager,systemd/resolve,connman,netconfig}/resolv.conf r,
+  @{etc_ro}/resolvconf/run/resolv.conf  r,
+  @{run}/systemd/resolve/stub-resolv.conf r,
+  /mnt/wsl/resolv.conf r,
+
+  @{etc_ro}/samba/lmhosts  r,
+  @{etc_ro}/services       r,
+  # db backend
+  /var/lib/misc/*.db      r,
+  # The Name Service Cache Daemon can cache lookups, sometimes leading
+  # to vast speed increases when working with network-based lookups.
+  @{run}/.nscd_socket   rw,
+  @{run}/nscd/socket    rw,
+  /{var/db,var/cache,var/lib,var/run,run}/nscd/{passwd,group,services,hosts}    r,
+  # nscd renames and unlinks files in it's operation that clients will
+  # have open
+  @{run}/nscd/db*  rmix,
+
+  # The nss libraries are sometimes used in addition to PAM; make sure
+  # they are available
+  /{usr/,}lib{,32,64}/libnss_*.so*      mr,
+  /{usr/,}lib/@{multiarch}/libnss_*.so*      mr,
+  @{etc_ro}/default/nss               r,
+
+  # avahi-daemon is used for mdns4 resolution
+  @{run}/avahi-daemon/socket rw,
+
+  # libnl-3-200 via libnss-gw-name
+  @{PROC}/@{pid}/net/psched r,
+  @{etc_ro}/libnl-*/classid r,
+
+  # nis
+  include <abstractions/nis>
+
+  # ldap
+  include <abstractions/ldapclient>
+
+  # winbind
+  include <abstractions/winbind>
+
+  # likewise
+  include <abstractions/likewise>
+
+  # mdnsd
+  include <abstractions/mdns>
+
+  # kerberos
+  include <abstractions/kerberosclient>
+
+  #libnss-systemd
+  include <abstractions/nss-systemd>
+
+  # Also allow lookups for systemd-exec's DynamicUsers via D-Bus
+  #   https://www.freedesktop.org/software/systemd/man/systemd.exec.html
+  dbus send
+       bus=system
+       path="/org/freedesktop/systemd1"
+       interface="org.freedesktop.systemd1.Manager"
+       member="{GetDynamicUsers,LookupDynamicUserByName,LookupDynamicUserByUID}"
+       peer=(name="org.freedesktop.systemd1"),
+
+  # TCP/UDP network access
+  network inet  stream,
+  network inet6 stream,
+  network inet  dgram,
+  network inet6 dgram,
+
+  # TODO: adjust when support finer-grained netlink rules
+  # Netlink raw needed for nscd
+  network netlink raw,
+
+  # interface details
+  @{PROC}/@{pid}/net/route r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/nameservice.d>
diff --git a/apparmor.d/abstractions/nis b/apparmor.d/abstractions/nis
new file mode 100644 (file)
index 0000000..1aea3f1
--- /dev/null
@@ -0,0 +1,20 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # NIS rules
+  /var/yp/binding/*           r,
+  # portmapper may ask root processes to do nis/ldap at low ports
+  capability net_bind_service,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/nis.d>
diff --git a/apparmor.d/abstractions/nss-systemd b/apparmor.d/abstractions/nss-systemd
new file mode 100644 (file)
index 0000000..7116fdf
--- /dev/null
@@ -0,0 +1,31 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+# libnss-systemd
+  #
+  #   https://systemd.io/USER_GROUP_API/
+  #   https://systemd.io/USER_RECORD/
+  #   https://www.freedesktop.org/software/systemd/man/nss-systemd.html
+  #
+  # Allow User/Group lookups via common VarLink socket APIs. Applications need
+  # to either consult all of them or the io.systemd.Multiplexer frontend.
+  @{run}/systemd/userdb/ r,
+  @{run}/systemd/userdb/io.systemd.Multiplexer rw,
+  @{run}/systemd/userdb/io.systemd.DynamicUser rw,        # systemd-exec users
+  @{run}/systemd/userdb/io.systemd.Home rw,               # systemd-home dirs
+  @{run}/systemd/userdb/io.systemd.NameServiceSwitch rw,  # UNIX/glibc NSS
+  @{run}/systemd/userdb/io.systemd.Machine rw,            # systemd-machined
+
+  @{PROC}/sys/kernel/random/boot_id r,
+
+  include if exists <abstractions/nss-systemd.d>
diff --git a/apparmor.d/abstractions/nvidia b/apparmor.d/abstractions/nvidia
new file mode 100644 (file)
index 0000000..893ed09
--- /dev/null
@@ -0,0 +1,34 @@
+# vim:syntax=apparmor
+# nvidia access requirements
+
+  abi <abi/3.0>,
+
+  # configuration queries
+  capability ipc_lock,
+
+  /usr/share/nvidia/nvidia-application-profiles* r,
+
+  # libvdpau config file for nvidia workarounds
+  /etc/vdpau_wrapper.cfg r,
+
+  # device files
+  /dev/nvidiactl rw,
+  /dev/nvidia-modeset rw,
+  /dev/nvidia[0-9]* rw,
+
+  @{PROC}/interrupts r,
+  @{PROC}/sys/vm/max_map_count r,
+  @{PROC}/driver/nvidia/params r,
+  @{PROC}/modules r,
+
+  @{sys}/devices/system/memory/block_size_bytes r,
+
+  owner @{HOME}/.nv/ w,
+  owner @{HOME}/.nv/GLCache/ rw,
+  owner @{HOME}/.nv/GLCache/** rwk,
+  owner @{PROC}/@{pid}/comm r, # somehwere in libnvidia-glcore.so
+
+  unix (send, receive) type=dgram peer=(addr="@nvidia[0-9a-f]*"),
+
+  # Include additions to the abstraction
+  include if exists <abstractions/nvidia.d>
diff --git a/apparmor.d/abstractions/opencl b/apparmor.d/abstractions/opencl
new file mode 100644 (file)
index 0000000..58b3532
--- /dev/null
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# OpenCL access requirements
+
+  # TODO: use conditionals to select allowed implementations
+  include <abstractions/opencl-intel>
+  include <abstractions/opencl-mesa>
+  include <abstractions/opencl-nvidia>
+  include <abstractions/opencl-pocl>
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/opencl.d>
diff --git a/apparmor.d/abstractions/opencl-common b/apparmor.d/abstractions/opencl-common
new file mode 100644 (file)
index 0000000..a80b4ba
--- /dev/null
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# implementation-independent OpenCL access requirements
+
+  # System files
+
+  /etc/OpenCL/** r,
+  @{sys}/bus/pci/devices/ r, # libpocl.so -> libhwlock.so, libnvidia-opencl.so, beignet/libcl.so -> libdrm_intel.so
+  @{sys}/devices/system/node/ r, # for clGetPlatformIDs() from libOpenCL.so
+  @{sys}/devices/system/node/node[0-9]*/meminfo r, # for clGetPlatformIDs() from libOpenCL.so
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/opencl-common.d>
diff --git a/apparmor.d/abstractions/opencl-intel b/apparmor.d/abstractions/opencl-intel
new file mode 100644 (file)
index 0000000..4d04723
--- /dev/null
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# OpenCL access requirements for Intel implementation
+
+  include <abstractions/opencl-common>
+
+  # for libcl.so (libOpenCL.so -> beignet/libcl.so calls XOpenDisplay())
+  include <abstractions/X>
+
+  # for libOpenCL.so -> beignet/libcl.so -> libpciaccess.so
+  include <abstractions/dri-enumerate>
+
+  # System files
+
+  /dev/dri/card[0-9]* rw, # beignet/libcl.so
+  @{sys}/devices/pci[0-9]*/**/{class,config,resource,revision} r, # libcl.so -> libdrm_intel.so -> libpciaccess.so (move to dri-enumerate ?)
+  /usr/lib/@{multiarch}/beignet/** r,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/opencl-intel.d>
diff --git a/apparmor.d/abstractions/opencl-mesa b/apparmor.d/abstractions/opencl-mesa
new file mode 100644 (file)
index 0000000..a5cada6
--- /dev/null
@@ -0,0 +1,26 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# OpenCL access requirements for Mesa implementation
+
+  include <abstractions/opencl-common>
+
+  # Additional libraries
+
+  /usr/lib/@{multiarch}/gallium-pipe/*.so mr, # libMesaOpenCL.so
+  /usr/lib{,64}/gallium-pipe/*.so mr, # libMesaOpenCL.so on openSUSE
+
+  # System files
+
+  /dev/dri/ r, # libMesaOpenCL.so -> libdrm.so
+  /dev/dri/render* rw, # libMesaOpenCL.so
+  /etc/drirc r, # libMesaOpenCL.so
+
+  # User files
+
+  owner @{HOME}/.cache/mesa_shader_cache/{,**} rw, # libMesaOpenCL.so -> pipe_nouveau.so
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/opencl-mesa.d>
diff --git a/apparmor.d/abstractions/opencl-nvidia b/apparmor.d/abstractions/opencl-nvidia
new file mode 100644 (file)
index 0000000..bbd432b
--- /dev/null
@@ -0,0 +1,36 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# OpenCL access requirements for NVIDIA implementation
+
+  include <abstractions/nvidia>
+  include <abstractions/opencl-common>
+
+  # Executables
+
+  # https://github.com/NVIDIA/nvidia-modprobe
+  # This setuid executable is used to create various device files and load the
+  # the nvidia kernel module.
+  /usr/bin/nvidia-modprobe Px -> nvidia_modprobe,
+
+  # System files
+
+  # libnvidia-opencl.so rules:
+  /dev/nvidia-uvm rw,
+  /dev/nvidia-uvm-tools rw,
+  @{sys}/devices/pci[0-9]*/**/config r,
+  @{sys}/devices/system/memory/block_size_bytes r,
+  /usr/share/nvidia/** r,
+  @{PROC}/devices r,
+  @{PROC}/sys/vm/mmap_min_addr r,
+
+  # User files
+
+  owner @{HOME}/.nv/ComputeCache/ w,
+  owner @{HOME}/.nv/ComputeCache/** rw,
+  owner @{HOME}/.nv/ComputeCache/index rwk,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/opencl-nvidia.d>
diff --git a/apparmor.d/abstractions/opencl-pocl b/apparmor.d/abstractions/opencl-pocl
new file mode 100644 (file)
index 0000000..8b93b0d
--- /dev/null
@@ -0,0 +1,81 @@
+# vim:syntax=apparmor
+# OpenCL access requirements for POCL implementation
+
+  abi <abi/3.0>,
+
+  include <abstractions/opencl-common>
+
+  # Executables
+
+  /usr/bin/{,@{multiarch}-}ld.bfd Cx -> opencl_pocl_ld,
+  /usr/lib/llvm-[0-9]*.[0-9]*/bin/clang Cx -> opencl_pocl_clang,
+
+  # System files
+
+  / r, # libpocl.so -> libhwloc.so
+  @{sys}/bus/pci/slots/ r, # libpocl.so -> hwloc_topology_load() from libhwloc.so
+  @{sys}/bus/{cpu,node}/devices/ r, # libpocl.so -> libhwlock.so
+  @{sys}/class/net/ r, # libpocl.so -> hwloc_pci_traverse_lookuposdevices_cb() from libhwloc.so
+  @{sys}/devices/pci[0-9]*/**/ r, # for libpocl ->  hwloc_linux_lookup_block_class() from libhwloc.so
+  @{sys}/devices/pci[0-9]*/**/block/*/dev r, # libpocl.so -> hwloc_linux_lookup_host_block_class() from libhwloc.so
+  @{sys}/devices/pci[0-9]*/**/{class,local_cpus} r, # libpocl.so -> libhwlock.so
+  @{sys}/devices/pci[0-9]*/*/net/*/address r, # libpocl.so ->  hwloc_pci_traverse_lookuposdevices_cb() from libhwloc.so
+  @{sys}/devices/system/cpu/ r, # libpocl.so -> libnuma.so
+  @{sys}/devices/system/cpu/cpu[0-9]*/cache/index[0-9]*/* r, # libpocl.so -> libhwloc.so
+  @{sys}/devices/system/cpu/cpu[0-9]*/online r, # libpocl.so -> libhwlock.so
+  @{sys}/devices/system/cpu/cpu[0-9]*/topology/* r, # *_siblings, physical_package_id and lot's of others, for libpocl.so -> libhwloc.so
+  @{sys}/devices/system/cpu/cpufreq/policy[0-9]*/* r, # for clGetPlatformIDs() from libpocl.so
+  @{sys}/devices/system/cpu/possible r, # libpocl.so -> libhwloc.so
+  @{sys}/devices/virtual/dmi/id/{,*} r, # libpocl.so -> libhwloc.so
+  @{sys}/fs/cgroup/cpuset/cpuset.{cpus,mems} r, # libpocl.so -> libhwloc.so
+  @{sys}/kernel/mm/hugepages{/,/**} r, # libpocl.so -> libhwloc.so
+  /usr/share/pocl/** r,
+  @{run}/udev/data/*:* r, # libpocl.so -> hwloc_linux_block_class_fillinfos() from libhwloc.so
+
+  # User files
+
+  owner @{HOME}/.cache/pocl/ w,
+  owner @{HOME}/.cache/pocl/kcache/ w,
+  owner @{HOME}/.cache/pocl/kcache/** rw,
+  owner @{HOME}/.cache/pocl/kcache/**.so mrw, # dangerous!
+  owner @{PROC}/@{pid}/{cgroup,cpuset,status} r, # libpocl.so -> libhwloc.so, status for libpocl.so -> libnuma.so
+
+  # Child profiles
+
+  profile opencl_pocl_ld {
+    include <abstractions/base>
+
+    # Main executables
+
+    /usr/bin/{,@{multiarch}-}ld.bfd mr,
+
+    # User files
+
+    owner @{HOME}/.cache/pocl/kcache/tempfile*.so rw,
+    owner @{HOME}/.cache/pocl/kcache/**.so.o r,
+  }
+
+  profile opencl_pocl_clang {
+    include <abstractions/base>
+
+    # Main executables
+
+    /usr/lib/llvm-[0-9]*.[0-9]*/bin/clang mr,
+
+    # Additional executables
+
+    /usr/bin/{,@{multiarch}-}ld.bfd ix, # TODO: transfer to opencl_ld child profile?
+
+    # System files
+
+    /etc/debian-version r,
+    /etc/lsb-release r,
+
+    # User files
+
+    owner @{HOME}/.cache/pocl/kcache/*/*/*/*/*.so{,.o} rw,
+  }
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/opencl-pocl.d>
diff --git a/apparmor.d/abstractions/openssl b/apparmor.d/abstractions/openssl
new file mode 100644 (file)
index 0000000..02eba39
--- /dev/null
@@ -0,0 +1,21 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2011 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /etc/ssl/openssl.cnf r,
+  /etc/ssl/{engdef,engines}.d/ r,
+  /etc/ssl/{engdef,engines}.d/*.cnf r,
+  /usr/share/ssl/openssl.cnf r,
+  @{PROC}/sys/crypto/fips_enabled r,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/openssl.d>
diff --git a/apparmor.d/abstractions/orbit2 b/apparmor.d/abstractions/orbit2
new file mode 100644 (file)
index 0000000..6e27461
--- /dev/null
@@ -0,0 +1,10 @@
+# vim:syntax=apparmor
+# orbit2 permissions
+
+  abi <abi/3.0>,
+
+  # system library
+  /usr/lib/orbit-2.0/*.so mr,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/orbit2.d>
diff --git a/apparmor.d/abstractions/p11-kit b/apparmor.d/abstractions/p11-kit
new file mode 100644 (file)
index 0000000..2969681
--- /dev/null
@@ -0,0 +1,32 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /etc/pkcs11/ r,
+  /etc/pkcs11/pkcs11.conf r,
+  /etc/pkcs11/modules/ r,
+  /etc/pkcs11/modules/* r,
+
+  /usr/lib{,32,64}/pkcs11/*.so mr,
+  /usr/lib/@{multiarch}/pkcs11/*.so mr,
+
+  /usr/share/p11-kit/modules/  r,
+  /usr/share/p11-kit/modules/* r,
+
+  # gnome-keyring pkcs11 module
+  owner @{run}/user/[0-9]*/keyring*/pkcs11 rw,
+
+  # p11-kit also supports reading user configuration from ~/.pkcs11 depending
+  # on how /etc/pkcs11/pkcs11.conf is configured. This should generally not be
+  # included in this abstraction.
+
+  # Include additions to the abstraction
+  include if exists <abstractions/p11-kit.d>
diff --git a/apparmor.d/abstractions/perl b/apparmor.d/abstractions/perl
new file mode 100644 (file)
index 0000000..3971853
--- /dev/null
@@ -0,0 +1,28 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # a few files typically required for perl scripts
+  /usr/bin/perl                  rmix,
+  /usr/bin/perl[0-9].[0-9].[0-9] rmix,
+
+  /usr/lib{,32,64}/perl5/**                    r,
+  /usr/lib{,32,64}/perl{,5}/**.so*             mr,
+  /usr/lib/@{multiarch}/perl{,5,-base}/**            r,
+  /usr/lib/@{multiarch}/perl{,5,-base}/[0-9]*/**.so* mr,
+
+  /usr/share/perl/**             r,
+  /usr/share/perl5/**            r,
+  /etc/perl/**                   r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/perl.d>
diff --git a/apparmor.d/abstractions/php b/apparmor.d/abstractions/php
new file mode 100644 (file)
index 0000000..6bf0dc7
--- /dev/null
@@ -0,0 +1,43 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2009-2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # shared snippets for config files
+  /etc/php{,5,7,8}/** r,
+
+  # Xlibs
+  /usr/X11R6/lib{,32,64}/lib*.so* mr,
+  # php extensions
+  /usr/lib{64,}/php{,5,7,8}/*/*.so mr,
+
+  # ICU (unicode support) data tables
+  /usr/share/icu/*/*.dat r,
+
+  # php session mmap socket
+  /var/lib/php{,5,7,8}/session_mm_* rwlk,
+  # file based session handler
+  /var/lib/php{,5,7,8}/sess_* rwlk,
+  /var/lib/php{,5,7,8}/sessions/* rwlk,
+
+  # php libraries
+  /usr/share/php{,5,7,8}/ r,
+  /usr/share/php{,5,7,8}/** mr,
+
+  # MySQL extension
+  /usr/share/mysql/** r,
+
+  # Zend opcache
+  /tmp/.ZendSem.* rwlk,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/php.d>
diff --git a/apparmor.d/abstractions/php-worker b/apparmor.d/abstractions/php-worker
new file mode 100644 (file)
index 0000000..a476e40
--- /dev/null
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+
+# This file contains basic permissions for php-fpm workers
+
+  abi <abi/3.0>,
+
+  # load common libraries and their support files
+  include <abstractions/base>
+  # common php files and support files that php needs
+  include <abstractions/php>
+
+  signal (receive) peer=php-fpm,
+
+  # This is some php opcaching file
+  /tmp/.ZendSem.* rwk,
+
+  # I think this is adaptive memory management
+  /sys/devices/system/node/* r,
+  /sys/devices/system/node/*/meminfo r,
+  /sys/devices/system/node/ r,
+
+  include if exists <abstractions/php-worker.d>
diff --git a/apparmor.d/abstractions/php5 b/apparmor.d/abstractions/php5
new file mode 100644 (file)
index 0000000..25f8001
--- /dev/null
@@ -0,0 +1,8 @@
+#backwards compatibility include, actual abstraction moved from php5 to php
+
+  abi <abi/3.0>,
+
+  include <abstractions/php>
+
+  # Include additions to the abstraction
+  include if exists <abstractions/php5.d>
diff --git a/apparmor.d/abstractions/postfix-common b/apparmor.d/abstractions/postfix-common
new file mode 100644 (file)
index 0000000..68d4f7a
--- /dev/null
@@ -0,0 +1,45 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2005 Novell/SUSE
+#    Copyright (C) 2015-2018 Canonical, Ltd.
+#    Copyright (C) 2020-2021 Christian Boltz
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# used with postfix/*
+
+  abi <abi/3.0>,
+
+
+  capability            setuid,
+  capability            setgid,
+  capability            sys_chroot,
+
+  # postfix's master can send us signals
+  signal receive peer=postfix-master,
+
+  unix (send, receive) peer=(label=postfix-master),
+
+  /etc/mailname         r,
+  /etc/postfix/*.cf     r,
+  /etc/postfix/*.db     rk,
+  /etc/postfix/*.lmdb   rk,
+  @{PROC}/net/if_inet6  r,
+  /usr/lib/postfix/*.so mr,
+  /usr/lib{,32,64}/sasl2/*    mr,
+  /usr/lib{,32,64}/sasl2/     r,
+  /usr/lib/@{multiarch}/sasl2/*      mr,
+  /usr/lib/@{multiarch}/sasl2/       r,
+  /usr/share/icu/[0-9]*.[0-9]*/*.dat r,
+
+  /var/spool/postfix/etc/*        r,
+  /var/spool/postfix/lib/lib*.so* mr,
+  /var/spool/postfix/lib/@{multiarch}/lib*.so* mr,
+
+  /etc/postfix/dynamicmaps.cf.d/  r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/postfix-common.d>
diff --git a/apparmor.d/abstractions/private-files b/apparmor.d/abstractions/private-files
new file mode 100644 (file)
index 0000000..5f05041
--- /dev/null
@@ -0,0 +1,52 @@
+# vim:syntax=apparmor
+# privacy-violations contains rules for common files that you want to
+# explicitly deny access
+
+  abi <abi/3.0>,
+
+  # privacy violations (don't audit files under $HOME otherwise get a
+  # lot of false positives when reading contents of directories)
+  deny @{HOME}/.*history mrwkl,
+  deny @{HOME}/.fetchmail* mrwkl,
+  deny @{HOME}/.mutt** mrwkl,
+  deny @{HOME}/.viminfo* mrwkl,
+  deny @{HOME}/.*~ mrwkl,
+  deny @{HOME}/.*.swp mrwkl,
+  deny @{HOME}/.*~1~ mrwkl,
+  deny @{HOME}/.*.bak mrwkl,
+
+  # special attention to (potentially) executable files
+  audit deny @{HOME}/bin/{,**} wl,
+  audit deny @{HOME}/.config/ w,
+  audit deny @{HOME}/.config/autostart/{,**} wl,
+  audit deny @{HOME}/.config/upstart/{,**} wl,
+  audit deny @{HOME}/.init/{,**} wl,
+  audit deny @{HOME}/.kde{,4}/ w,
+  audit deny @{HOME}/.kde{,4}/Autostart/{,**} wl,
+  audit deny @{HOME}/.kde{,4}/env/{,**} wl,
+  audit deny @{HOME}/.local/{,share/} w,
+  audit deny @{HOME}/.local/share/thumbnailers/{,**} wl,
+  audit deny @{HOME}/.pki/ w,
+  audit deny @{HOME}/.pki/nssdb/{,*.so{,.[0-9]*}} wl,
+
+  # don't allow reading/updating of run control files
+  deny @{HOME}/.*rc mrk,
+  audit deny @{HOME}/.*rc wl,
+
+  # bash
+  deny @{HOME}/.bash* mrk,
+  audit deny @{HOME}/.bash* wl,
+  deny @{HOME}/.inputrc mrk,
+  audit deny @{HOME}/.inputrc wl,
+
+  # sh/dash/csh/tcsh/pdksh/zsh
+  deny @{HOME}/.{,z}profile* mrk,
+  audit deny @{HOME}/.{,z}profile* wl,
+  deny @{HOME}/.{,z}log{in,out} mrk,
+  audit deny @{HOME}/.{,z}log{in,out} wl,
+
+  deny @{HOME}/.zshenv mrk,
+  audit deny @{HOME}/.zshenv wl,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/private-files.d>
diff --git a/apparmor.d/abstractions/private-files-strict b/apparmor.d/abstractions/private-files-strict
new file mode 100644 (file)
index 0000000..b8ab40e
--- /dev/null
@@ -0,0 +1,30 @@
+# vim:syntax=apparmor
+# privacy-violations-strict contains additional rules for sensitive
+# files that you want to explicitly deny access
+
+  abi <abi/3.0>,
+
+  include <abstractions/private-files>
+
+  # potentially extremely sensitive files
+  audit deny @{HOME}/.aws/{,**} mrwkl,
+  audit deny @{HOME}/.gnupg/{,**} mrwkl,
+  audit deny @{HOME}/.ssh/{,**} mrwkl,
+  audit deny @{HOME}/.gnome2_private/{,**} mrwkl,
+  audit deny @{HOME}/.gnome2/ w,
+  audit deny @{HOME}/.gnome2/keyrings/{,**} mrwkl,
+  # don't allow access to any gnome-keyring modules
+  audit deny @{run}/user/[0-9]*/keyring** mrwkl,
+  audit deny @{HOME}/.mozilla/{,**} mrwkl,
+  audit deny @{HOME}/.config/ w,
+  audit deny @{HOME}/.config/chromium/{,**} mrwkl,
+  audit deny @{HOME}/.config/evolution/{,**} mrwkl,
+  audit deny @{HOME}/.evolution/{,**} mrwkl,
+  audit deny @{HOME}/.{,mozilla-}thunderbird/{,**} mrwkl,
+  audit deny @{HOME}/.kde{,4}/{,share/,share/apps/} w,
+  audit deny @{HOME}/.kde{,4}/share/apps/kmail{,2}/{,**} mrwkl,
+  audit deny @{HOME}/.kde{,4}/share/apps/kwallet/{,**} mrwkl,
+  audit deny @{HOME}/.local/share/kwalletd/{,**} mrwkl,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/private-files-strict.d>
diff --git a/apparmor.d/abstractions/python b/apparmor.d/abstractions/python
new file mode 100644 (file)
index 0000000..87f7f2b
--- /dev/null
@@ -0,0 +1,41 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/**.{pyc,so,so.*[0-9]} mr,
+  /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/**.{egg,py,pth}       r,
+  /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/ r,
+  /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/**/ r,
+  /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/*.dist-info/{METADATA,namespace_packages.txt} r,
+  /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/*.VERSION r,
+  /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/*.egg-info/PKG-INFO r,
+  /usr/{local/,}lib{,32,64}/python3.{1,}[0-9]/lib-dynload/*.so            mr,
+
+  # Site-wide configuration
+  /etc/python{2.[4-7],3.[0-9],3.1[0-9]}/** r,
+
+  # shared python paths
+  /usr/share/{pyshared,pycentral,python-support}/**      r,
+  /{var,usr}/lib/{pyshared,pycentral,python-support}/**  r,
+  /usr/lib/{pyshared,pycentral,python-support}/**.so     mr,
+  /var/lib/{pyshared,pycentral,python-support}/**.pyc    mr,
+  /usr/lib/python3/dist-packages/**.so          mr,
+
+  # wx paths
+  /usr/lib/wx/python/*.pth r,
+
+  # python build configuration and headers
+  /usr/include/python{2.[4-7],3.[0-9],3.1[0-9]}*/pyconfig.h r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/python.d>
diff --git a/apparmor.d/abstractions/qt5 b/apparmor.d/abstractions/qt5
new file mode 100644 (file)
index 0000000..83dc00c
--- /dev/null
@@ -0,0 +1,27 @@
+# vim:syntax=apparmor
+# Common rules for Qt5-based applications
+
+  abi <abi/3.0>,
+
+  # Additional libraries
+
+  /usr/lib{,64,/@{multiarch}}/qt5/plugins/**.so mr,
+  /usr/lib{,64,/@{multiarch}}/qt5/qml/**.so mr,
+  /usr/lib{,64,/@{multiarch}}/qt5/qml/**.{qmlc,jsc} mr, # Precompiled QML/JavaScript modules
+
+  # System files
+
+  /etc/xdg/QtProject/qtlogging.ini r,
+  /usr/share/qt5/translations/*.qm r,
+  /usr/lib{,64,/@{multiarch}}/qt5/plugins/** r,
+  /usr/lib{,64,/@{multiarch}}/qt5/qml/** r,
+
+  # User files
+
+  owner @{HOME}/.config/QtProject/qtlogging.ini r,
+  owner @{HOME}/.config/QtProject.conf r, # common settings for QFileDialog, etc (application might need write access)
+  owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* r, # for "platforminputcontexts" plugins
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/qt5.d>
diff --git a/apparmor.d/abstractions/qt5-compose-cache-write b/apparmor.d/abstractions/qt5-compose-cache-write
new file mode 100644 (file)
index 0000000..5322ea0
--- /dev/null
@@ -0,0 +1,13 @@
+# vim:syntax=apparmor
+# Allow writing cache for Qt5 "platforminputcontexts" plugins
+
+  abi <abi/3.0>,
+
+  # User files
+
+  owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* rwl -> @{HOME}/.cache/#[0-9]*[0-9],
+  owner @{HOME}/.cache/#[0-9]*[0-9] rw, # QSaveFile (anonymous shared memory)
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/qt5-compose-cache-write.d>
diff --git a/apparmor.d/abstractions/qt5-settings-write b/apparmor.d/abstractions/qt5-settings-write
new file mode 100644 (file)
index 0000000..327390a
--- /dev/null
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+# Allow writing shared settings for Qt-based applications
+
+  abi <abi/3.0>,
+
+  # User files
+
+  owner @{HOME}/.config/#[0-9]*[0-9] rw,
+  owner @{HOME}/.config/QtProject.conf rwl -> @{HOME}/.config/#[0-9]*[0-9],
+  # for temporary files like QtProject.conf.Aqrgeb
+  owner @{HOME}/.config/QtProject.conf.?????? rwl -> @{HOME}/.config/#[0-9]*[0-9],
+  owner @{HOME}/.config/QtProject.conf.lock rwk,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/qt5-settings-write.d>
diff --git a/apparmor.d/abstractions/recent-documents-write b/apparmor.d/abstractions/recent-documents-write
new file mode 100644 (file)
index 0000000..02962e4
--- /dev/null
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+# Allow updating recent documents
+
+  abi <abi/3.0>,
+
+  # User files
+
+  owner @{HOME}/.local/share/RecentDocuments/ rw,
+  owner @{HOME}/.local/share/RecentDocuments/#[0-9]* rw,
+  owner @{HOME}/.local/share/RecentDocuments/*.desktop rwl -> @{HOME}/.local/share/RecentDocuments/#[0-9]*,
+  owner @{HOME}/.local/share/RecentDocuments/*.lock rwk,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/recent-documents-write.d>
diff --git a/apparmor.d/abstractions/ruby b/apparmor.d/abstractions/ruby
new file mode 100644 (file)
index 0000000..a71a204
--- /dev/null
@@ -0,0 +1,26 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/ r,
+  /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/**.rb r,
+  /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/*-linux/**.so mr,
+
+  /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/ r,
+  /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/**.rb r,
+  /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/*-linux/**.so mr,
+
+  /usr/lib{,32,64}/ruby/gems/1.[89]{.[0-9],}/ r,
+  /usr/lib{,32,64}/ruby/gems/1.[89]{.[0-9],}/** r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ruby.d>
diff --git a/apparmor.d/abstractions/samba b/apparmor.d/abstractions/samba
new file mode 100644 (file)
index 0000000..b5e1670
--- /dev/null
@@ -0,0 +1,40 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009-2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /etc/samba/* r,
+  /usr/lib*/ldb/*.so mr,
+  /usr/lib*/ldb2/*.so mr,
+  /usr/lib*/ldb2/modules/ldb/*.so mr,
+  /usr/lib*/samba/ldb/*.so mr,
+  /usr/share/samba/*.dat r,
+  /usr/share/samba/codepages/{lowcase,upcase,valid}.dat r,
+  /var/cache/samba/ w,
+  /var/cache/samba/lck/* rwk,
+  /var/lib/samba/** rwk,
+  /var/log/samba/cores/ rw,
+  /var/log/samba/cores/** rw,
+  /var/log/samba/* w,
+  @{run}/{,lock/}samba/ w,
+  @{run}/{,lock/}samba/*.tdb rwk,
+  @{run}/{,lock/}samba/msg.{lock,sock}/ rwk,
+  @{run}/{,lock/}samba/msg.{lock,sock}/[0-9]* rwk,
+  /var/cache/samba/msg.lock/ rwk,
+  /var/cache/samba/msg.lock/[0-9]* rwk,
+
+  # required for clustering
+  /var/lib/ctdb/** rwk,
+
+  deny capability net_admin, # noisy setsockopt() calls from systemd
+
+  # Include additions to the abstraction
+  include if exists <abstractions/samba.d>
diff --git a/apparmor.d/abstractions/samba-rpcd b/apparmor.d/abstractions/samba-rpcd
new file mode 100644 (file)
index 0000000..4c83091
--- /dev/null
@@ -0,0 +1,30 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2022 SUSE LLC
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# vim:syntax=apparmor
+
+# This file contains basic permissions for samba rpcd_xyz services
+
+  abi <abi/3.0>,
+
+  include <abstractions/base>
+  include <abstractions/nameservice>
+  include <abstractions/samba>
+
+  capability setgid,
+  capability setuid,
+
+  signal receive set=term peer=smbd,
+
+  @{PROC}/sys/kernel/core_pattern r,
+  owner @{PROC}/@{pid}/fd/ r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/samba-rpcd.d>
+
diff --git a/apparmor.d/abstractions/smbpass b/apparmor.d/abstractions/smbpass
new file mode 100644 (file)
index 0000000..89534d4
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # libpam-smbpass/pam_smbpass.so permissions
+  /var/lib/samba/*.[lt]db rwk,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/smbpass.d>
diff --git a/apparmor.d/abstractions/snap_browsers b/apparmor.d/abstractions/snap_browsers
new file mode 100644 (file)
index 0000000..06ca911
--- /dev/null
@@ -0,0 +1,42 @@
+profile snap_browsers {
+  include if exists <abstractions/snap_browsers.d>
+  include <abstractions/base>
+  include <abstractions/dbus-session-strict>
+
+  /etc/passwd r,
+  /etc/nsswitch.conf r,
+  /etc/fstab r,
+
+  # noisy
+  deny owner /run/user/[0-9]*/gdm/Xauthority r, # not needed on Ubuntu
+
+  /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/bin/snap mrix, # re-exec
+  /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/info r,
+  /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/snapd r,
+  /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/snap-seccomp rPix,
+  /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/snap-confine Pix,
+  /var/lib/snapd/system-key r,
+  /run/snapd.socket rw,
+
+  @{PROC}/version r,
+  @{PROC}/cmdline r,
+  @{PROC}/sys/net/core/somaxconn r,
+  @{PROC}/sys/kernel/seccomp/actions_avail r,
+  @{PROC}/sys/kernel/random/uuid r,
+  owner @{PROC}/@{pid}/cgroup r,
+  owner @{PROC}/@{pid}/mountinfo r,
+  owner @{HOME}/.snap/auth.json r, # if exists, required
+
+  dbus send bus="session" path="/org/freedesktop/systemd1" interface="org.freedesktop.systemd1.Manager" member="StartTransientUnit" peer=(name="org.freedesktop.systemd1"),
+  dbus receive bus="session" path="/org/freedesktop/systemd1" interface="org.freedesktop.systemd1.Manager" member="JobRemoved",
+
+  /sys/kernel/security/apparmor/features/ r,
+
+  # allow launching official browser snaps.
+  /snap/chromium/[0-9]*/meta/{snap.yaml,hooks/} r,
+  /snap/firefox/[0-9]*/meta/{snap.yaml,hooks/} r,
+  /snap/opera/[0-9]*/meta/{snap.yaml,hooks/} r,
+
+  /var/lib/snapd/sequence/{chromium,firefox,opera}.json r,
+  # add other browsers here
+}
diff --git a/apparmor.d/abstractions/ssl_certs b/apparmor.d/abstractions/ssl_certs
new file mode 100644 (file)
index 0000000..82e532b
--- /dev/null
@@ -0,0 +1,50 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2005 Novell/SUSE
+#    Copyright (C) 2010-2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /etc/ca-certificates/{,**} r,
+  /etc/{,libre}ssl/ r,
+  /etc/{,libre}ssl/cert.pem r,
+  /etc/{,libre}ssl/certs/{,**} r,
+  /{etc,usr/share}/pki/bl[ao]cklist/{,*} r,
+  /{etc,usr/share}/pki/trust/{,*} r,
+  /{etc,usr/share}/pki/trust/{bl[oa]cklist,anchors}/{,**} r,
+  /usr/share/ca-certificates/{,**} r,
+  /usr/share/ssl/certs/ca-bundle.crt          r,
+  /usr/local/share/ca-certificates/{,**} r,
+  /var/lib/ca-certificates/{,**} r,
+
+  # acmetool
+  /var/lib/acme/certs/*/chain r,
+  /var/lib/acme/certs/*/cert r,
+
+  # dehydrated
+  /{etc,var/lib}/dehydrated/certs/*/cert*.pem r,
+  /{etc,var/lib}/dehydrated/certs/*/chain*.pem r,
+  /{etc,var/lib}/dehydrated/certs/*/fullchain*.pem r,
+  /{etc,var/lib}/dehydrated/certs/*/ocsp*.der r,
+
+  # certbot
+  /etc/letsencrypt/archive/*/cert*.pem r,
+  /etc/letsencrypt/archive/*/chain*.pem r,
+  /etc/letsencrypt/archive/*/fullchain*.pem r,
+
+  /etc/certbot/archive/*/cert*.pem r,
+  /etc/certbot/archive/*/chain*.pem r,
+  /etc/certbot/archive/*/fullchain*.pem r,
+
+  # crypto policies used by various libraries
+  /etc/crypto-policies/*/*.txt r,
+  /usr/share/crypto-policies/*/*.txt r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ssl_certs.d>
diff --git a/apparmor.d/abstractions/ssl_keys b/apparmor.d/abstractions/ssl_keys
new file mode 100644 (file)
index 0000000..f310bb5
--- /dev/null
@@ -0,0 +1,35 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # private ssl permissions
+
+  # Just include the whole /etc/ssl directory if we should have access to
+  # private keys too
+  /etc/ssl/ r,
+  /etc/ssl/** r,
+
+  # acmetool
+  /var/lib/acme/live/* r,
+  /var/lib/acme/certs/** r,
+  /var/lib/acme/keys/** r,
+
+  # dehydrated
+  /{etc,var/lib}/dehydrated/certs/*/privkey*.pem r,
+
+  # certbot / letsencrypt
+  /etc/letsencrypt/archive/*/privkey*.pem r,
+
+  /etc/certbot/archive/*/privkey*.pem r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ssl_keys.d>
diff --git a/apparmor.d/abstractions/svn-repositories b/apparmor.d/abstractions/svn-repositories
new file mode 100644 (file)
index 0000000..d518f1d
--- /dev/null
@@ -0,0 +1,57 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # This little snippet should abstract the read/write access to a repository.
+  # it is intended to be included in profiles for svnserve/apache2 and maybe
+  # some repository viewers like trac/viewvc
+
+  # no hooks exec by default; please define whatever you need explicitely.
+
+  /srv/svn/**/conf/* r,
+  /srv/svn/**/format r,
+  /srv/svn/**/db/fs-type r,
+  /srv/svn/**/db/format r,
+
+  # FSFS
+  /srv/svn/**/db/ r,
+  /srv/svn/**/db/uuid r,
+  /srv/svn/**/db/write-lock rwl,
+  /srv/svn/**/db/current rwl,
+  /srv/svn/**/db/current*.tmp rwl,
+  /srv/svn/**/db/revs/ r,
+  /srv/svn/**/db/revs/* rw,
+  /srv/svn/**/db/revprops/ r,
+  /srv/svn/**/db/revprops/* rw,
+  /srv/svn/**/db/transactions/** rw,
+
+  # BDB
+  /srv/svn/**/db/DB_CONFIG       r,
+  /srv/svn/**/db/__db.[0-9]*     rwl,
+  /srv/svn/**/db/log.[0-9]*      rwl,
+  /srv/svn/**/db/nodes           rwl,
+  /srv/svn/**/db/revisions       rwl,
+  /srv/svn/**/db/transactions    rwl,
+  /srv/svn/**/db/copies          rwl,
+  /srv/svn/**/db/changes         rwl,
+  /srv/svn/**/db/representations rwl,
+  /srv/svn/**/db/strings         rwl,
+  /srv/svn/**/db/uuids           rwl,
+  /srv/svn/**/db/locks           rwl,
+  /srv/svn/**/db/lock-tokens     rwl,
+
+  # temp files
+  /tmp/apr* rwl,
+  /var/tmp/apr* rwl,
+  /tmp/report*.tmp rwl,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/svn-repositories.d>
diff --git a/apparmor.d/abstractions/ubuntu-bittorrent-clients b/apparmor.d/abstractions/ubuntu-bittorrent-clients
new file mode 100644 (file)
index 0000000..0d929ad
--- /dev/null
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing graphical bittorrent clients in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  /usr/bin/azureus Cxr -> sanitized_helper,
+  /usr/bin/bitstormlite Cxr -> sanitized_helper,
+  /usr/bin/btmaketorrentgui Cxr -> sanitized_helper,
+  /usr/bin/deluge{,-gtk,-console} Cxr -> sanitized_helper,
+  /usr/bin/gnome-btdownload Cxr -> sanitized_helper,
+  /usr/bin/kget Cxr -> sanitized_helper,
+  /usr/bin/ktorrent Cxr -> sanitized_helper,
+  /usr/bin/qbittorrent Cxr -> sanitized_helper,
+  /usr/bin/transmission{,-gtk,-qt,-cli} Cxr -> sanitized_helper,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-bittorrent-clients.d>
diff --git a/apparmor.d/abstractions/ubuntu-browsers b/apparmor.d/abstractions/ubuntu-browsers
new file mode 100644 (file)
index 0000000..c2c710a
--- /dev/null
@@ -0,0 +1,41 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing access to graphical browsers in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  /usr/bin/arora Cx -> sanitized_helper,
+  /usr/bin/dillo Cx -> sanitized_helper,
+  /usr/bin/Dooble Cx -> sanitized_helper,
+  /usr/bin/epiphany Cx -> sanitized_helper,
+  /usr/bin/epiphany-browser Cx -> sanitized_helper,
+  /usr/bin/epiphany-webkit Cx -> sanitized_helper,
+  /usr/lib/fennec-*/fennec Cx -> sanitized_helper,
+  /usr/bin/kazehakase Cx -> sanitized_helper,
+  /usr/bin/konqueror Cx -> sanitized_helper,
+  /usr/bin/midori Cx -> sanitized_helper,
+  /usr/bin/netsurf Cx -> sanitized_helper,
+  /usr/bin/seamonkey Cx -> sanitized_helper,
+  /usr/bin/sensible-browser Pixr,
+
+  /usr/bin/chromium{,-browser} Cx -> sanitized_helper,
+  /usr/lib{,64}/chromium{,-browser}/chromium{,-browser} Cx -> sanitized_helper,
+
+  # this should cover all firefox browsers and versions (including shiretoko
+  # and abrowser)
+  /usr/bin/firefox Cxr -> sanitized_helper,
+  /usr/lib{,64}/firefox*/firefox* Cx -> sanitized_helper,
+
+  # Iceweasel
+  /usr/bin/iceweasel Cxr -> sanitized_helper,
+  /usr/lib/iceweasel/iceweasel Cx -> sanitized_helper,
+
+  # some unpackaged, but popular browsers
+  /usr/lib/icecat-*/icecat Cx -> sanitized_helper,
+  /usr/bin/opera Cx -> sanitized_helper,
+  /opt/google/chrome{,-beta,-unstable}/google-chrome{,-beta,-unstable} Cx -> sanitized_helper,
+  /opt/brave.com/brave{,-beta,-dev,-nightly}/brave-browser{,-beta,-dev,-nightly} Cx -> sanitized_helper,
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/chromium-browser b/apparmor.d/abstractions/ubuntu-browsers.d/chromium-browser
new file mode 100644 (file)
index 0000000..95724f1
--- /dev/null
@@ -0,0 +1,26 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2020 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# Author: Jamie Strandboge <jamie@canonical.com>
+
+# For site-specific adjustments, please see:
+# /etc/apparmor.d/local/chromium-browser
+
+abi <abi/3.0>,
+
+include <abstractions/ubuntu-browsers.d/plugins-common>
+include <abstractions/ubuntu-browsers.d/mailto>
+include <abstractions/ubuntu-browsers.d/multimedia>
+include <abstractions/ubuntu-browsers.d/productivity>
+include <abstractions/ubuntu-browsers.d/java>
+include <abstractions/ubuntu-browsers.d/kde>
+include <abstractions/ubuntu-browsers.d/text-editors>
+include <abstractions/ubuntu-browsers.d/ubuntu-integration>
+include <abstractions/ubuntu-browsers.d/user-files>
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/java b/apparmor.d/abstractions/ubuntu-browsers.d/java
new file mode 100644 (file)
index 0000000..ae93c75
--- /dev/null
@@ -0,0 +1,120 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+  # Java plugin
+  owner @{HOME}/.java/deployment/deployment.properties k,
+  /etc/java-*/ r,
+  /etc/java-*/** r,
+  /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk/{,jre/}lib/*/IcedTeaPlugin.so mr,
+  /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk-{amd64,armel,armhf,i386,powerpc}/{,jre/}lib/*/IcedTeaPlugin.so mr,
+  /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk/{,jre/}bin/java cx -> browser_openjdk,
+  /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk-{amd64,armel,armhf,i386,powerpc}/{,jre/}bin/java cx -> browser_openjdk,
+  /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} cx -> browser_java,
+  /usr/lib/jvm/java-*-sun-1.*/jre/lib/*/libnp*.so cx -> browser_java,
+  /usr/lib/j2*-ibm/jre/bin/java cx -> browser_java,
+  owner /{,var/}run/user/*/icedteaplugin-*/   rw,
+  owner /{,var/}run/user/*/icedteaplugin-*/** rwk,
+
+  # Profile for the supported OpenJDK in Ubuntu. This doesn't require the
+  # unfortunate workarounds of the proprietary Javas, so have a separate
+  # profile.
+  profile browser_openjdk {
+    include <abstractions/base>
+    include <abstractions/fonts>
+    include <abstractions/gnome>
+    include <abstractions/kde>
+    include <abstractions/nameservice>
+    include <abstractions/ssl_certs>
+    include <abstractions/user-tmp>
+    include <abstractions/private-files-strict>
+
+    network inet stream,
+    network inet6 stream,
+    @{PROC}/@{pid}/net/if_inet6 r,
+    @{PROC}/@{pid}/net/ipv6_route r,
+
+    /etc/java-*/ r,
+    /etc/java-*/** r,
+    /etc/lsb-release r,
+    /etc/ssl/certs/java/* r,
+    /etc/timezone r,
+    /etc/writable/timezone r,
+
+    @{PROC}/@{pid}/ r,
+    @{PROC}/@{pid}/fd/ r,
+    @{PROC}/filesystems r,
+    @{sys}/devices/system/cpu/ r,
+    @{sys}/devices/system/cpu/** r,
+    /usr/share/** r,
+    /var/lib/dbus/machine-id r,
+
+    /usr/bin/env ix,
+    /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk/{,jre/}bin/java ix,
+    /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk-{amd64,armel,armhf,i386,powerpc}/{,jre/}bin/java ix,
+    /usr/lib/jvm/java-{6,7}-openjdk*/jre/lib/i386/client/classes.jsa m,
+
+    # Why would java need this?
+    deny /usr/bin/gconftool-2 x,
+
+    owner /{,var/}run/user/[0-9]*/icedteaplugin-*-*/[0-9]*-icedteanp-appletviewer-to-plugin rw,
+    owner /{,var/}run/user/[0-9]*/icedteaplugin-*-*/[0-9]*-icedteanp-plugin-{,debug-}to-appletviewer r,
+    owner @{HOME}/ r,
+    owner @{HOME}/** rwk,
+  }
+
+  # Profile for commercial Javas. These need workarounds to work right (eg
+  # Sun's forcing of an executable stack (LP: #535247)).
+  profile browser_java {
+    include <abstractions/base>
+    include <abstractions/fonts>
+    include <abstractions/gnome>
+    include <abstractions/kde>
+    include <abstractions/nameservice>
+    include <abstractions/ssl_certs>
+    include <abstractions/user-tmp>
+    include <abstractions/private-files-strict>
+
+    network inet stream,
+    network inet6 stream,
+    @{PROC}/@{pid}/net/if_inet6 r,
+    @{PROC}/@{pid}/net/ipv6_route r,
+    @{PROC}/loadavg r,
+
+    /etc/debian_version r,
+    /etc/java-*/ r,
+    /etc/java-*/** r,
+    /etc/lsb-release r,
+    /etc/ssl/certs/java/* r,
+    /etc/timezone r,
+    /etc/writable/timezone r,
+
+    @{PROC}/@{pid}/ r,
+    @{PROC}/@{pid}/fd/ r,
+    @{PROC}/filesystems r,
+    @{sys}/devices/system/cpu/ r,
+    @{sys}/devices/system/cpu/** r,
+    /usr/share/** r,
+    /var/lib/dbus/machine-id r,
+
+    /usr/bin/env ix,
+    /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} ix,
+    /usr/lib/jvm/java-*-sun-1.*/jre/lib/i386/client/classes.jsa m,
+    /usr/lib/j2*-ibm/jre/bin/java ix,
+
+    # noisy, can't write here anyway
+    deny /etc/.java/ w,
+    deny /etc/.java/** w,
+
+    deny /usr/bin/gconftool-2 x,
+
+    owner @{HOME}/ r,
+    owner @{HOME}/** rwk,
+
+    # These are seriously unfortunate, but required due to LP: #535247
+    /etc/passwd m,
+    owner @{HOME}/.java/**/cache/** m,
+    owner /tmp/** m,
+    /usr/lib{,32,64}/jvm/**/*.jar mr,
+    /usr/share/fonts/** m,
+  }
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/kde b/apparmor.d/abstractions/ubuntu-browsers.d/kde
new file mode 100644 (file)
index 0000000..bdac331
--- /dev/null
@@ -0,0 +1,9 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  include <abstractions/kde>
+  /usr/bin/kde4-config Cx -> sanitized_helper,
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/mailto b/apparmor.d/abstractions/ubuntu-browsers.d/mailto
new file mode 100644 (file)
index 0000000..8d15709
--- /dev/null
@@ -0,0 +1,11 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+  # for mailto:
+  include <abstractions/ubuntu-email>
+  include <abstractions/ubuntu-console-email>
+
+  # Terminals for using console applications. These abstractions should ideally
+  # have 'ix' to restrct access to what only firefox is allowed to do
+  include <abstractions/ubuntu-gnome-terminal>
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/multimedia b/apparmor.d/abstractions/ubuntu-browsers.d/multimedia
new file mode 100644 (file)
index 0000000..f2eb23e
--- /dev/null
@@ -0,0 +1,51 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  include <abstractions/X>
+
+  # Pulseaudio
+  /usr/bin/pulseaudio Pixr,
+
+  # Image viewers
+  /usr/bin/eog Cxr -> sanitized_helper,
+  /usr/bin/gimp* Cxr -> sanitized_helper,
+  /usr/bin/shotwell Cxr -> sanitized_helper,
+  /usr/bin/digikam Cxr -> sanitized_helper,
+  /usr/bin/gwenview Cxr -> sanitized_helper,
+
+  include <abstractions/ubuntu-media-players>
+  owner @{HOME}/.adobe/ w,
+  owner @{HOME}/.adobe/** rw,
+  owner @{HOME}/.macromedia/ w,
+  owner @{HOME}/.macromedia/** rw,
+  /opt/real/RealPlayer/mozilla/nphelix.so rm,
+  /usr/bin/lpstat Cxr -> sanitized_helper,
+  /usr/bin/lpr Cxr -> sanitized_helper,
+
+  # Bittorrent clients
+  include <abstractions/ubuntu-bittorrent-clients>
+
+  # Archivers
+  /usr/bin/ark Cxr -> sanitized_helper,
+  /usr/bin/file-roller Cxr -> sanitized_helper,
+  /usr/bin/xarchiver Cxr -> sanitized_helper,
+  /usr/local/lib{,32,64}/*.so* mr,
+
+  # News feed readers
+  include <abstractions/ubuntu-feed-readers>
+
+  # If we allow the above, nvidia based systems will also need this
+  include <abstractions/nvidia>
+
+  # Virus scanners
+  /usr/bin/clamscan Cx -> sanitized_helper,
+
+  # gxine (LP: #1057642)
+  /var/lib/xine/gxine.desktop r,
+
+  # For WebRTC camera access (LP: #1665535)
+  /dev/video[0-9]* rw,
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/plugins-common b/apparmor.d/abstractions/ubuntu-browsers.d/plugins-common
new file mode 100644 (file)
index 0000000..5d93b26
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+  #
+  # Plugins/helpers
+  #
+  @{PROC}/@{pid}/fd/ r,
+  /usr/lib/** rm,
+  /{,usr/}bin/bash ixr,
+  /{,usr/}bin/dash ixr,
+  /{,usr/}bin/grep ixr,
+  /{,usr/}bin/sed ixr,
+  /usr/bin/m4 ixr,
+
+  # Since all the ubuntu-browsers.d abstractions need this, just include it
+  # here
+  include <abstractions/ubuntu-helpers>
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/productivity b/apparmor.d/abstractions/ubuntu-browsers.d/productivity
new file mode 100644 (file)
index 0000000..1fc67a8
--- /dev/null
@@ -0,0 +1,26 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  # Openoffice.org
+  /usr/bin/ooffice Cxr -> sanitized_helper,
+  /usr/bin/oocalc Cxr -> sanitized_helper,
+  /usr/bin/oodraw Cxr -> sanitized_helper,
+  /usr/bin/ooimpress Cxr -> sanitized_helper,
+  /usr/bin/oowriter Cxr -> sanitized_helper,
+  /usr/lib/openoffice/program/soffice Cxr -> sanitized_helper,
+
+  # LibreOffice
+  /usr/bin/libreoffice Cxr -> sanitized_helper,
+  /usr/bin/localc Cxr -> sanitized_helper,
+  /usr/bin/lodraw Cxr -> sanitized_helper,
+  /usr/bin/loimpress Cxr -> sanitized_helper,
+  /usr/bin/lowriter Cxr -> sanitized_helper,
+  /usr/lib/libreoffice/program/soffice Cxr -> sanitized_helper,
+
+  # PDFs
+  /usr/bin/evince Cxr -> sanitized_helper,
+  /usr/bin/okular Cxr -> sanitized_helper,
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/text-editors b/apparmor.d/abstractions/ubuntu-browsers.d/text-editors
new file mode 100644 (file)
index 0000000..e04c6b8
--- /dev/null
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  # Text editors (It's All Text [https://addons.mozilla.org/en-US/firefox/addon/4125])
+  /usr/bin/emacsclient.emacs-snapshot Cxr -> sanitized_helper,
+  /usr/bin/emacsclient.emacs2[2-9] Cxr -> sanitized_helper,
+  /usr/bin/emacs-snapshot-gtk Cxr -> sanitized_helper,
+  /usr/bin/gedit Cxr -> sanitized_helper,
+  /usr/bin/vim.gnome Cxr -> sanitized_helper,
+  /usr/bin/leafpad Cxr -> sanitized_helper,
+  /usr/bin/mousepad Cxr -> sanitized_helper,
+  /usr/bin/kate Cxr -> sanitized_helper,
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration b/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration
new file mode 100644 (file)
index 0000000..cdbd47c
--- /dev/null
@@ -0,0 +1,37 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  # Apport
+  /usr/bin/apport-bug Cx -> sanitized_helper,
+
+  # Package installation
+  /usr/bin/apturl Cxr -> sanitized_helper,
+  /usr/share/software-center/software-center Cxr -> sanitized_helper,
+
+  # Input Methods
+  /usr/bin/scim Cx -> sanitized_helper,
+  /usr/bin/scim-bridge Cx -> sanitized_helper,
+
+  # File managers
+  /usr/bin/nautilus Cxr -> sanitized_helper,
+  /usr/bin/{t,T}hunar Cxr -> sanitized_helper,
+  /usr/bin/dolphin Cxr -> sanitized_helper,
+
+  # Themes
+  /usr/bin/gnome-appearance-properties Cxr -> sanitized_helper,
+
+  # Kubuntu
+  /usr/lib/mozilla/kmozillahelper Cxr -> sanitized_helper,
+
+  # Exo-aware applications
+  include <abstractions/exo-open>
+
+  # unity webapps integration. Could go in its own abstraction
+  owner /run/user/*/dconf/user rw,
+  owner @{HOME}/.local/share/unity-webapps/availableapps*.db rwk,
+  /usr/bin/debconf-communicate Cxr -> sanitized_helper,
+  owner @{HOME}/.config/libaccounts-glib/accounts.db rk,
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul b/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul
new file mode 100644 (file)
index 0000000..c6a8eed
--- /dev/null
@@ -0,0 +1,8 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+  # firefox-notify
+  include <abstractions/python>
+  /usr/bin/python2.[4567] ix,
+  /usr/share/xul-ext/notify/**/download_complete_notify.py ix,
diff --git a/apparmor.d/abstractions/ubuntu-browsers.d/user-files b/apparmor.d/abstractions/ubuntu-browsers.d/user-files
new file mode 100644 (file)
index 0000000..f045455
--- /dev/null
@@ -0,0 +1,31 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+  # Allow read to all files user has DAC access to and write access to all
+  # files owned by the user in $HOME.
+  @{HOME}/ r,
+  @{HOME}/** r,
+  owner @{HOME}/** w,
+
+  # Do not allow read and/or write to particularly sensitive/problematic files
+  include <abstractions/private-files>
+  audit deny @{HOME}/.ssh/{,**} mrwkl,
+  audit deny @{HOME}/.gnome2_private/{,**} mrwkl,
+  audit deny @{HOME}/.kde{,4}/{,share/,share/apps/} w,
+  audit deny @{HOME}/.kde{,4}/share/apps/kwallet/{,**} mrwkl,
+  audit deny @{HOME}/.local/share/kwalletd/{,**} mrwkl,
+
+  # Comment this out if using gpg plugin/addons
+  audit deny @{HOME}/.gnupg/{,**} mrwkl,
+
+  # Allow read to all files user has DAC access to and write for files the user
+  # owns on removable media and filesystems.
+  /media/** r,
+  /mnt/** r,
+  /srv/** r,
+  /net/** r,
+  owner /media/** w,
+  owner /mnt/** w,
+  owner /srv/** w,
+  owner /net/** w,
diff --git a/apparmor.d/abstractions/ubuntu-console-browsers b/apparmor.d/abstractions/ubuntu-console-browsers
new file mode 100644 (file)
index 0000000..8f6687a
--- /dev/null
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing access to text-only browsers in Ubuntu. These will
+# typically also need a terminal, so when using this abstraction, should also
+# do something like:
+#
+# include <abstractions/ubuntu-gnome-terminal>
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  /usr/bin/elinks Cx -> sanitized_helper,
+  /usr/bin/links Cx -> sanitized_helper,
+  /usr/bin/lynx.cur Cx -> sanitized_helper,
+  /usr/bin/netrik Cx -> sanitized_helper,
+  /usr/bin/w3m Cx -> sanitized_helper,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-console-browsers.d>
diff --git a/apparmor.d/abstractions/ubuntu-console-email b/apparmor.d/abstractions/ubuntu-console-email
new file mode 100644 (file)
index 0000000..ee741fd
--- /dev/null
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing console email clients in Ubuntu. These will
+# typically also need a terminal, so when using this abstraction, should also
+# do something like:
+#
+# include <abstractions/ubuntu-gnome-terminal>
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  /usr/bin/alpine Cx -> sanitized_helper,
+  /usr/bin/citadel Cx -> sanitized_helper,
+  /usr/bin/cone Cx -> sanitized_helper,
+  /usr/bin/elmo Cx -> sanitized_helper,
+  /usr/bin/mutt Cx -> sanitized_helper,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-console-email.d>
diff --git a/apparmor.d/abstractions/ubuntu-email b/apparmor.d/abstractions/ubuntu-email
new file mode 100644 (file)
index 0000000..45f02eb
--- /dev/null
@@ -0,0 +1,29 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing graphical email clients in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  /usr/bin/anjal Cx -> sanitized_helper,
+  /usr/bin/balsa Cx -> sanitized_helper,
+  /usr/bin/claws-mail Cx -> sanitized_helper,
+  /usr/bin/evolution Cx -> sanitized_helper,
+  /usr/bin/geary Cx -> sanitized_helper,
+  /usr/bin/gnome-gmail Cx -> sanitized_helper,
+  /usr/lib/GNUstep/Applications/GNUMail.app/GNUMail Cx -> sanitized_helper,
+  /usr/bin/kmail Cx -> sanitized_helper,
+  /usr/bin/mailody Cx -> sanitized_helper,
+  /usr/bin/modest Cx -> sanitized_helper,
+  /usr/bin/seamonkey Cx -> sanitized_helper,
+  /usr/bin/sylpheed Cx -> sanitized_helper,
+  /usr/bin/tkrat Cx -> sanitized_helper,
+
+  /usr/bin/thunderbird Cx -> sanitized_helper, # used by gio-launch-desktop
+  /usr/lib/thunderbird*/thunderbird{,.sh,-bin} Cx -> sanitized_helper,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-email.d>
diff --git a/apparmor.d/abstractions/ubuntu-feed-readers b/apparmor.d/abstractions/ubuntu-feed-readers
new file mode 100644 (file)
index 0000000..e8b89b1
--- /dev/null
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing graphical news feed readers in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  /usr/bin/akregator Cxr -> sanitized_helper,
+  /usr/bin/liferea-add-feed Cxr -> sanitized_helper,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-feed-readers.d>
diff --git a/apparmor.d/abstractions/ubuntu-gnome-terminal b/apparmor.d/abstractions/ubuntu-gnome-terminal
new file mode 100644 (file)
index 0000000..c6280b0
--- /dev/null
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+#
+# for allowing access to gnome-terminal
+#
+
+  abi <abi/3.0>,
+
+  include <abstractions/gnome>
+
+  # do not use ux or PUx here. Use at a minimum ix
+  /usr/bin/gnome-terminal ix,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-gnome-terminal.d>
diff --git a/apparmor.d/abstractions/ubuntu-helpers b/apparmor.d/abstractions/ubuntu-helpers
new file mode 100644 (file)
index 0000000..7e07ef4
--- /dev/null
@@ -0,0 +1,93 @@
+# Lenient profile that is intended to be used when 'Ux' is desired but
+# does not provide enough environment sanitizing. This effectively is an
+# open profile that blacklists certain known dangerous files and also
+# does not allow any capabilities. For example, it will not allow 'm' on files
+# owned be the user invoking the program. While this provides some additional
+# protection, please use with care as applications running under this profile
+# are effectively running without any AppArmor protection. Use this profile
+# only if the process absolutely must be run (effectively) unconfined.
+#
+# Usage:
+# Because this abstraction defines the sanitized_helper profile, it must only
+# be included once. Therefore this abstraction should typically not be
+# included in other abstractions so as to avoid parser errors regarding
+# multiple definitions.
+#
+# Limitations:
+# 1. This does not work for root owned processes, because of the way we use
+#    owner matching in the sanitized helper. We could do a better job with
+#    this to support root, but it would make the policy harder to understand
+#    and going unconfined as root is not desirable any way.
+#
+# 2. For this sanitized_helper to work, the program running in the sanitized
+#    environment must open symlinks directly in order for AppArmor to mediate
+#    it. This is confirmed to work with:
+#     - compiled code which can load shared libraries
+#     - python imports
+#    It is known not to work with:
+#     - perl includes
+# 3. Sanitizing ruby and java
+#
+# Use at your own risk. This profile was developed as an interim workaround for
+# LP: #851986 until AppArmor utilizes proper environment filtering.
+
+  abi <abi/3.0>,
+
+profile sanitized_helper {
+  include <abstractions/base>
+  include <abstractions/X>
+
+  # Allow all networking
+  network inet,
+  network inet6,
+
+  # Allow all DBus communications
+  include <abstractions/dbus-session-strict>
+  include <abstractions/dbus-strict>
+  dbus,
+
+  # Needed for Google Chrome
+  ptrace (trace) peer=**//sanitized_helper,
+
+  # Allow exec of anything, but under this profile. Allow transition
+  # to other profiles if they exist.
+  /{usr/,usr/local/,}{bin,sbin}/* Pixr,
+
+  # Allow exec of libexec applications in /usr/lib* and /usr/local/lib*
+  /usr/{,local/}lib*/{,**/}* Pixr,
+
+  # Allow exec of software-center scripts. We may need to allow wider
+  # permissions for /usr/share, but for now just do this. (LP: #972367)
+  /usr/share/software-center/* Pixr,
+
+  # Allow exec of texlive font build scripts (LP: #1010909)
+  /usr/share/texlive/texmf{,-dist}/web2c/{,**/}* Pixr,
+
+  # While the chromium and chrome sandboxes are setuid root, they only link
+  # in limited libraries so glibc's secure execution should be enough to not
+  # require the santized_helper (ie, LD_PRELOAD will only use standard system
+  # paths (man ld.so)).
+  /usr/lib/chromium-browser/chromium-browser-sandbox PUxr,
+  /usr/lib/chromium{,-browser}/chrome-sandbox PUxr,
+  /opt/google/chrome{,-beta,-unstable}/chrome-sandbox PUxr,
+  /opt/google/chrome{,-beta,-unstable}/google-chrome Pixr,
+  /opt/google/chrome{,-beta,-unstable}/chrome Pixr,
+  /opt/google/chrome{,-beta,-unstable}/chrome_crashpad_handler Pixr,
+  /opt/google/chrome{,-beta,-unstable}/{,**/}lib*.so{,.*} m,
+
+  # The same is needed for Brave
+  /opt/brave.com/brave{,-beta,-dev,-nightly}/chrome-sandbox PUxr,
+  /opt/brave.com/brave{,-beta,-dev,-nightly}/brave-browser{,-beta,-dev,-nightly} Pixr,
+  /opt/brave.com/brave{,-beta,-dev,-nightly}/brave Pixr,
+  /opt/brave.com/brave{,-beta,-dev,-nightly}/chrome_crashpad_handler Pixr,
+  /opt/brave.com/brave{,-beta,-dev,-nightly}/{,**/}lib*.so{,.*} m,
+
+  # Full access
+  / r,
+  /** rwkl,
+  /{,usr/,usr/local/}lib{,32,64}/{,**/}*.so{,.*} m,
+
+  # Dangerous files
+  audit deny owner /**/* m,              # compiled libraries
+  audit deny owner /**/*.py* r,          # python imports
+}
diff --git a/apparmor.d/abstractions/ubuntu-konsole b/apparmor.d/abstractions/ubuntu-konsole
new file mode 100644 (file)
index 0000000..4ece2bd
--- /dev/null
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+#
+# for allowing access to konsole
+#
+
+  abi <abi/3.0>,
+
+  include <abstractions/consoles>
+  include <abstractions/kde>
+  capability sys_ptrace,
+  @{PROC}/@{pid}/status r,
+  @{PROC}/@{pid}/stat r,
+  @{PROC}/@{pid}/cmdline r,
+  /{,var/}run/utmp r,
+  /dev/ptmx rw,
+
+  # do not use ux or Ux here. Use at a minimum ix
+  /usr/bin/konsole ix,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-konsole.d>
diff --git a/apparmor.d/abstractions/ubuntu-media-players b/apparmor.d/abstractions/ubuntu-media-players
new file mode 100644 (file)
index 0000000..5fa48e7
--- /dev/null
@@ -0,0 +1,65 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing access to media players in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+#   include <abstractions/ubuntu-helpers>
+
+  abi <abi/3.0>,
+
+  /usr/bin/amarok Cxr -> sanitized_helper,
+  /usr/bin/audacious2 Cxr -> sanitized_helper,
+  /usr/bin/audacity Cxr -> sanitized_helper,
+  /usr/bin/bangarang Cxr -> sanitized_helper,
+  /usr/bin/banshee Cxr -> sanitized_helper,
+  /usr/bin/banshee-1 Cxr -> sanitized_helper,
+  /usr/bin/decibel Cxr -> sanitized_helper,
+  /usr/bin/dragon Cxr -> sanitized_helper,
+  /usr/bin/esperanza Cxr -> sanitized_helper,
+  /usr/bin/exaile Cxr -> sanitized_helper,
+  /usr/bin/freevo Cxr -> sanitized_helper,
+  /usr/bin/gmerlin Cxr -> sanitized_helper,
+  /usr/bin/gxmms Cxr -> sanitized_helper,
+  /usr/bin/gxmms2 Cxr -> sanitized_helper,
+  /usr/bin/hornsey Cxr -> sanitized_helper,
+  /usr/bin/jlgui Cxr -> sanitized_helper,
+  /usr/bin/juk Cxr -> sanitized_helper,
+  /usr/bin/kaffeine Cxr -> sanitized_helper,
+  /usr/bin/listen Cxr -> sanitized_helper,
+  /usr/share/minirok/minirok.py Cxr -> sanitized_helper,
+
+  # mplayer
+  /etc/mplayerplug-in.conf r,
+  /usr/bin/gmplayer Cxr -> sanitized_helper,
+  /usr/bin/gnome-mplayer Cxr -> sanitized_helper,
+  /usr/bin/kmplayer Cxr -> sanitized_helper,
+  /usr/bin/mplayer Cxr -> sanitized_helper,
+  /usr/bin/smplayer Cxr -> sanitized_helper,
+
+  /usr/bin/muine Cxr -> sanitized_helper,
+  /usr/bin/potamus Cxr -> sanitized_helper,
+  /usr/bin/promoe Cxr -> sanitized_helper,
+  /usr/bin/qmmp Cxr -> sanitized_helper,
+  /usr/bin/quodlibet Cxr -> sanitized_helper,
+  /usr/bin/rhythmbox Cxr -> sanitized_helper,
+  /usr/bin/strange-quark Cxr -> sanitized_helper,
+  /usr/bin/swfdec-player Cxr -> sanitized_helper,
+  /usr/bin/timidity Cxr -> sanitized_helper,
+  /usr/lib/totem/** ixr,
+  /usr/bin/totem-gstreamer Cxr -> sanitized_helper,
+  /usr/bin/totem-xine Cxr -> sanitized_helper,
+  /usr/bin/totem Cxr -> sanitized_helper,
+  /usr/bin/vlc Cxr -> sanitized_helper,
+  /usr/bin/xfmedia Cxr -> sanitized_helper,
+  /usr/bin/xmms Cxr -> sanitized_helper,
+
+  # gnash
+  /usr/bin/gtk-gnash ixr,
+  /etc/gnashrc r,
+  /etc/gnashpluginrc r,
+  owner @{HOME}/.gnash/ rw,
+  owner @{HOME}/.gnash/** rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-media-players.d>
diff --git a/apparmor.d/abstractions/ubuntu-unity7-base b/apparmor.d/abstractions/ubuntu-unity7-base
new file mode 100644 (file)
index 0000000..6e207b2
--- /dev/null
@@ -0,0 +1,105 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2013-2014 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+#
+# Rules common to applications running under Unity 7
+#
+
+include <abstractions/gnome>
+
+include <abstractions/dbus-session-strict>
+include <abstractions/dbus-strict>
+
+  #
+  # Access required for connecting to/communication with Unity HUD
+  #
+  dbus (send)
+       bus=session
+       path="/com/canonical/hud",
+  dbus (send)
+       bus=session
+       interface="com.canonical.hud.*",
+  dbus (send)
+       bus=session
+       path="/com/canonical/hud/applications/*",
+  dbus (receive)
+       bus=session
+       path="/com/canonical/hud",
+  dbus (receive)
+       bus=session
+       interface="com.canonical.hud.*",
+
+  #
+  # Allow access for connecting to/communication with the appmenu
+  #
+  # dbusmenu
+  dbus (send)
+       bus=session
+       interface="com.canonical.AppMenu.*",
+  dbus (receive, send)
+        bus=session
+        path=/com/canonical/menu/**,
+
+  # gmenu
+  dbus (receive, send)
+       bus=session
+       interface=org.gtk.Actions,
+  dbus (receive, send)
+       bus=session
+       interface=org.gtk.Menus,
+
+  #
+  # Access required for using freedesktop notifications
+  #
+  dbus (send)
+       bus=session
+       path=/org/freedesktop/Notifications
+       member=GetCapabilities,
+  dbus (send)
+       bus=session
+       path=/org/freedesktop/Notifications
+       member=GetServerInformation,
+  dbus (send)
+       bus=session
+       path=/org/freedesktop/Notifications
+       member=Notify,
+  dbus (receive)
+       bus=session
+       member="Notify"
+       peer=(name="org.freedesktop.DBus"),
+  dbus (receive)
+       bus=session
+       path=/org/freedesktop/Notifications
+       member=NotificationClosed,
+  dbus (send)
+       bus=session
+       path=/org/freedesktop/Notifications
+       member=CloseNotification,
+
+  # accessibility
+  dbus (send)
+       bus=session
+       peer=(name=org.a11y.Bus),
+  dbus (receive)
+       bus=session
+       interface=org.a11y.atspi*,
+  dbus (receive, send)
+       bus=accessibility,
+
+  #
+  # Deny potentially dangerous access
+  #
+  deny dbus bus=session path=/com/canonical/[Uu]nity/[Dd]ebug**,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-unity7-base.d>
diff --git a/apparmor.d/abstractions/ubuntu-unity7-launcher b/apparmor.d/abstractions/ubuntu-unity7-launcher
new file mode 100644 (file)
index 0000000..eb2f070
--- /dev/null
@@ -0,0 +1,12 @@
+  abi <abi/3.0>,
+
+  #
+  # Access required for connecting to/communicating with the Unity Launcher
+  #
+  dbus (send)
+      bus=session
+      interface="com.canonical.Unity.LauncherEntry"
+      member="Update",
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-unity7-launcher.d>
diff --git a/apparmor.d/abstractions/ubuntu-unity7-messaging b/apparmor.d/abstractions/ubuntu-unity7-messaging
new file mode 100644 (file)
index 0000000..21de3ff
--- /dev/null
@@ -0,0 +1,12 @@
+  abi <abi/3.0>,
+
+  #
+  # Access required for connecting to/communicating with the Unity messaging
+  # indicator
+  #
+  dbus (receive, send)
+       bus=session
+       path="/com/canonical/indicator/messages/*",
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-unity7-messaging.d>
diff --git a/apparmor.d/abstractions/ubuntu-xterm b/apparmor.d/abstractions/ubuntu-xterm
new file mode 100644 (file)
index 0000000..07eacab
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+#
+# for allowing access to xterm
+#
+
+  abi <abi/3.0>,
+
+  include <abstractions/consoles>
+  /dev/ptmx rw,
+  /{,var/}run/utmp r,
+  /etc/X11/app-defaults/XTerm r,
+
+  # do not use ux or Ux here. Use at a minimum ix
+  /usr/bin/xterm ix,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/ubuntu-xterm.d>
diff --git a/apparmor.d/abstractions/user-download b/apparmor.d/abstractions/user-download
new file mode 100644 (file)
index 0000000..7654029
--- /dev/null
@@ -0,0 +1,29 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2014 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+# Description: Where common programs should allow users to download
+# files
+
+  owner @{HOME}/tmp/**                 rwl,
+  owner @{HOME}/[dD]ownload{,s}/       r,
+  owner @{HOME}/[dD]ownload{,s}/**     rwl,
+  owner @{HOME}/[^.]*                  rwl,
+  owner @{HOME}/@{XDG_DESKTOP_DIR}/    r,
+  owner @{HOME}/@{XDG_DESKTOP_DIR}/*   rwl,
+  owner @{HOME}/@{XDG_DOWNLOAD_DIR}/   r,
+  owner @{HOME}/@{XDG_DOWNLOAD_DIR}/*  rwl,
+  owner "@{HOME}/My Downloads/"        r,
+  owner "@{HOME}/My Downloads/**"      rwl,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/user-download.d>
diff --git a/apparmor.d/abstractions/user-mail b/apparmor.d/abstractions/user-mail
new file mode 100644 (file)
index 0000000..4156dfa
--- /dev/null
@@ -0,0 +1,28 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2014 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # location of user mail, spool and mboxes
+  owner @{HOME}/[mM]ail/      r,
+  owner @{HOME}/[mM]ail/**    rwl,
+  owner @{HOME}/postponed*    rwl,
+  /var/{,spool/}mail/         r,
+  owner /var/{,spool/}mail/*  rwl,
+  owner @{HOME}/mbox.lock*    rwl,
+  owner @{HOME}/mbox          rw,
+  owner @{HOME}/inbox         rw,
+  owner @{HOME}/.forward      r,
+  owner @{HOME}/Maildir/      r,
+  owner @{HOME}/Maildir/**    rwl,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/user-mail.d>
diff --git a/apparmor.d/abstractions/user-manpages b/apparmor.d/abstractions/user-manpages
new file mode 100644 (file)
index 0000000..3178a4d
--- /dev/null
@@ -0,0 +1,29 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # perhaps your configuration has users elsewhere, or you don't wish
+  # them to read their own manpages
+  owner @{HOME}/man/                          r,
+  owner @{HOME}/man/**                        r,
+  owner @{HOME}/tmp/groff*                    rwl,
+
+  # kindof required
+  owner /tmp/groff*                           rwl,
+
+  # standard system manpages
+  /usr/local/share/man/man?/            r,
+  /usr/local/share/man/man?/**          r,
+  /usr/{share,X11R6,local,kerberos}/man/**      r,
+  /usr/man/**                          r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/user-manpages.d>
diff --git a/apparmor.d/abstractions/user-tmp b/apparmor.d/abstractions/user-tmp
new file mode 100644 (file)
index 0000000..6d651c5
--- /dev/null
@@ -0,0 +1,25 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009-2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # per-user tmp directories
+  owner @{HOME}/tmp/**  rwkl,
+  owner @{HOME}/tmp/    rw,
+
+  # global tmp directories
+  owner /var/tmp/**     rwkl,
+  /var/tmp/             rw,
+  owner /tmp/**         rwkl,
+  /tmp/                 rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/user-tmp.d>
diff --git a/apparmor.d/abstractions/user-write b/apparmor.d/abstractions/user-write
new file mode 100644 (file)
index 0000000..604b60b
--- /dev/null
@@ -0,0 +1,26 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2014 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # per-user write  directories
+  owner @{HOME}/                          r,
+  owner @{HOME}/@{XDG_DESKTOP_DIR}/       r,
+  owner @{HOME}/@{XDG_DOCUMENTS_DIR}/     r,
+  owner @{HOME}/@{XDG_PUBLICSHARE_DIR}/   r,
+  owner @{HOME}/[^.]*/                    rw,
+  owner @{HOME}/[^.]*                     rwl,
+  owner @{HOME}/@{XDG_DESKTOP_DIR}/**     rwl,
+  owner @{HOME}/@{XDG_DOCUMENTS_DIR}/**   rwl,
+  owner @{HOME}/@{XDG_PUBLICSHARE_DIR}/** rwl,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/user-write.d>
diff --git a/apparmor.d/abstractions/video b/apparmor.d/abstractions/video
new file mode 100644 (file)
index 0000000..e3cc30c
--- /dev/null
@@ -0,0 +1,11 @@
+# vim:syntax=apparmor
+# video device access
+
+  abi <abi/3.0>,
+
+  # System devices
+  @{sys}/class/video4linux/ r,
+  @{sys}/class/video4linux/** r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/video.d>
diff --git a/apparmor.d/abstractions/vulkan b/apparmor.d/abstractions/vulkan
new file mode 100644 (file)
index 0000000..479a9dc
--- /dev/null
@@ -0,0 +1,25 @@
+# vim:syntax=apparmor
+# Vulkan access requirements
+
+  abi <abi/3.0>,
+
+  # System files
+  /dev/dri/ r, # libvulkan_radeon.so, libvulkan_intel.so (Mesa)
+  /etc/glvnd/egl_vendor.d/{*,.json} r,
+  /etc/vulkan/icd.d/{,*.json} r,
+  /etc/vulkan/{explicit,implicit}_layer.d/{,*.json} r,
+  # for drmGetMinorNameForFD() from libvulkan_intel.so (Mesa)
+  @{sys}/devices/pci[0-9]*/*/drm/ r,
+  @{sys}/devices/pci[0-9]*/*/drm/card[0-9]/gt_{max,min}_freq_mhz r, # anv_enumerate_physical_devices() from libvulkan_intel.so
+  @{sys}/devices/pci[0-9]*/*/drm/card[0-9]/metrics/ r, # anv_enumerate_physical_devices() from libvulkan_intel.so
+  @{sys}/devices/pci[0-9]*/*/drm/card[0-9]/metrics/????????-????-????-????-????????????/id r, # anv_enumerate_physical_devices() from libvulkan_intel.so
+  /usr/share/glvnd/egl_vendor.d/{,*.json} r,
+  /usr/share/vulkan/icd.d/{,*.json} r,
+  /usr/share/vulkan/{explicit,implicit}_layer.d/{,*.json} r,
+
+  # User files
+  owner @{HOME}/.local/share/vulkan/implicit_layer.d/{,*.json} r,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/vulkan.d>
diff --git a/apparmor.d/abstractions/wayland b/apparmor.d/abstractions/wayland
new file mode 100644 (file)
index 0000000..2b73925
--- /dev/null
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2016 intrigeri <intrigeri@boum.org>
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  owner @{run}/user/*/wayland-[0-9]* rw,
+  owner @{run}/user/*/{mesa,mutter,sdl,wayland-cursor,weston,xwayland}-shared-* rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/wayland.d>
diff --git a/apparmor.d/abstractions/web-data b/apparmor.d/abstractions/web-data
new file mode 100644 (file)
index 0000000..8459eee
--- /dev/null
@@ -0,0 +1,30 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2006 Novell/SUSE
+#    Copyright (C) 2014 Canonical Ltd
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /srv/www/htdocs/ r,
+  /srv/www/htdocs/** r,
+  # virtual hosting
+  /srv/www/vhosts/ r,
+  /srv/www/vhosts/** r,
+  # mod_userdir
+  @{HOME}/public_html/ r,
+  @{HOME}/public_html/** r,
+
+  /srv/www/rails/*/public/ r,
+  /srv/www/rails/*/public/** r,
+
+  /var/www/html/ r,
+  /var/www/html/** r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/web-data.d>
diff --git a/apparmor.d/abstractions/winbind b/apparmor.d/abstractions/winbind
new file mode 100644 (file)
index 0000000..3503e5a
--- /dev/null
@@ -0,0 +1,27 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # pam_winbindd
+  /tmp/.winbindd/pipe  rw,
+  /var/lib/samba/winbindd_privileged/pipe rw,
+  @{run}/samba/winbindd_privileged/pipe rw,
+  /etc/samba/smb.conf         r,
+  /etc/samba/dhcp.conf        r,
+  /usr/lib*/samba/valid.dat   r,
+  /usr/lib*/samba/upcase.dat  r,
+  /usr/lib*/samba/lowcase.dat r,
+  /usr/share/samba/codepages/{lowcase,upcase,valid}.dat r,
+
+
+  # Include additions to the abstraction
+  include if exists <abstractions/winbind.d>
diff --git a/apparmor.d/abstractions/wutmp b/apparmor.d/abstractions/wutmp
new file mode 100644 (file)
index 0000000..46d33f7
--- /dev/null
@@ -0,0 +1,22 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2002-2009 Novell/SUSE
+#    Copyright (C) 2009 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # some services update wtmp, utmp, and lastlog with per-user
+  # connection information
+  /var/log/lastlog  rwk,
+  /var/log/wtmp     rwk,
+  /var/log/btmp     rwk,
+  @{run}/utmp       rwk,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/wutmp.d>
diff --git a/apparmor.d/abstractions/xad b/apparmor.d/abstractions/xad
new file mode 100644 (file)
index 0000000..f5f6e72
--- /dev/null
@@ -0,0 +1,30 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2007 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  /opt/novell/xad/lib/ r,
+  /opt/novell/xad/lib/lib*.so* mr,
+  /opt/novell/xad/lib/gss/*.so* mr,
+  /opt/novell/lib/libpthread_ext*.so* mr,
+  /opt/novell/lib/libccs2.so* mr,
+  /opt/novell/xad/lib64/ r,
+  /opt/novell/xad/lib64/lib*.so* mr,
+  /opt/novell/xad/lib64/gss/*.so* mr,
+  /opt/novell/lib64/libpthread_ext*.so* mr,
+  /opt/novell/lib64/libccs2.so* mr,
+  /etc/opt/novell/xad/krb5.conf r,
+  /etc/opt/novell/nici.cfg r,
+  /var/opt/novell/nici/* r,
+  /var/opt/novell/nici/*/ r,
+  /var/opt/novell/nici/*/* rw,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/xad.d>
diff --git a/apparmor.d/abstractions/xdg-desktop b/apparmor.d/abstractions/xdg-desktop
new file mode 100644 (file)
index 0000000..9f7f4ae
--- /dev/null
@@ -0,0 +1,29 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+  abi <abi/3.0>,
+
+  # Entries based on:
+  # http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
+
+  owner @{HOME}/.cache/ rw,
+
+  owner @{HOME}/.config/ rw,
+
+  owner @{HOME}/.local/ rw,
+  owner @{HOME}/.local/share/ rw,
+
+  # fallbacks
+  /usr/share/ r,
+  /usr/local/share/ r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/xdg-desktop.d>
diff --git a/apparmor.d/abstractions/xdg-open b/apparmor.d/abstractions/xdg-open
new file mode 100644 (file)
index 0000000..aed2071
--- /dev/null
@@ -0,0 +1,86 @@
+# vim:syntax=apparmor
+
+  abi <abi/3.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via xdg-open helper. xdg-open abstraction
+# will allow to use gio-open, kde-open5 and other helpers of the different
+# desktop environments.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/xdg-open rPx -> foo//xdg-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//xdg-open {
+#   include <abstractions/xdg-open>
+#
+#   # Enable a11y support if considered required by
+#   # profile author for (rare) error message boxes.
+#   include <abstractions/dbus-accessibility>
+#
+#   # Enable gstreamer support if considered required by
+#   # profile author for (rare) error message boxes.
+#   include if exists <abstractions/gstreamer>
+#
+#   # needed for ubuntu-* abstractions
+#   include <abstractions/ubuntu-helpers>
+#
+#   # Only allow to handle http[s]: and mailto: links
+#   include <abstractions/ubuntu-browsers>
+#   include <abstractions/ubuntu-email>
+#
+#   # < add additional allowed applications here >
+# }
+# ```
+
+  include <abstractions/base>
+
+  # for openin with `exo-open`
+  include <abstractions/exo-open>
+
+  # for opening with `gio open <uri>`
+  include <abstractions/gio-open>
+
+  # for opening with gvfs-open (deprecated)
+  include <abstractions/gvfs-open>
+
+  # for opening with kde-open5
+  include <abstractions/kde-open5>
+
+  # Main executables
+
+  /{,usr/}bin/{b,d}ash mr,
+  /usr/bin/xdg-open r,
+
+  # Additional executables
+
+  /usr/bin/xdg-mime rix,
+  /{,usr/}bin/cut rix, # for xdg-mime
+  /{,usr/}bin/head rix, # for xdg-mime
+  /{,usr/}bin/sed rix, # for xdg-open
+  /{,usr/}bin/tr rix, # for xdg-mime
+  /{,usr/}bin/which rix, # for xdg-open
+  /{,usr/}bin/{grep,egrep} rix, # for xdg-open
+
+  # System files
+
+  /dev/pts/[0-9]* rw,
+  /dev/tty w,
+  /etc/gnome/defaults.list r, # for grep
+  /usr/share/applications/mimeinfo.cache r, # for grep
+  /usr/share/terminfo/s/screen r, # for bash on openSUSE
+  /usr/share/{,*/}applications/{,*.desktop} r, # for xdg-mime
+  /var/lib/menu-xdg/applications/ r, # for xdg-mime
+
+  # Usr files
+
+  owner @{HOME}/.local/share/applications/{,*.desktop} r,
+
+  # Include additions to the abstraction
+  include if exists <abstractions/xdg-open.d>
diff --git a/apparmor.d/local/README b/apparmor.d/local/README
new file mode 100644 (file)
index 0000000..b2db5c1
--- /dev/null
@@ -0,0 +1,24 @@
+# This directory is intended to contain profile additions and overrides for
+# inclusion by distributed profiles to aid in packaging AppArmor for
+# distributions.
+#
+# The shipped profiles in /etc/apparmor.d can still be modified by an
+# administrator and people should modify the shipped profile when making
+# large policy changes, rather than trying to make those adjustments here.
+#
+# For simple access additions or the occasional deny override, adjusting them
+# here can prevent the package manager of the distribution from interfering
+# with local modifications. As always, new policy should be reviewed to ensure
+# it is appropriate for your site.
+#
+# For example, if the shipped /etc/apparmor.d/usr.sbin.smbd profile has:
+#   include <local/usr.sbin.smbd>
+#
+# then an administrator can adjust /etc/apparmor.d/local/usr.sbin.smbd to
+# contain any additional paths to be allowed, such as:
+#
+#   /var/exports/** lrwk,
+#
+# Keep in mind that 'deny' rules are evaluated after allow rules, so you won't
+# be able to allow access to files that are explicitly denied by the shipped
+# profile using this mechanism.
diff --git a/apparmor.d/local/lsb_release b/apparmor.d/local/lsb_release
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/local/nvidia_modprobe b/apparmor.d/local/nvidia_modprobe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/local/sbin.dhclient b/apparmor.d/local/sbin.dhclient
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/local/usr.bin.man b/apparmor.d/local/usr.bin.man
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/local/usr.bin.tcpdump b/apparmor.d/local/usr.bin.tcpdump
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/local/usr.sbin.chronyd b/apparmor.d/local/usr.sbin.chronyd
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/local/usr.sbin.haveged b/apparmor.d/local/usr.sbin.haveged
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/local/usr.sbin.named b/apparmor.d/local/usr.sbin.named
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/apparmor.d/lsb_release b/apparmor.d/lsb_release
new file mode 100644 (file)
index 0000000..421a52f
--- /dev/null
@@ -0,0 +1,54 @@
+# Note: This profile does not specify an attachment path because it is
+# intended to be used only via "Px -> lsb_release" exec transitions from
+# other profiles. We want to confine the lsb_release(1) utility when it
+# is invoked from other confined applications, but not when it is used
+# in regular (unconfined) shell scripts or run directly by the user.
+
+abi <abi/3.0>,
+
+include <tunables/global>
+
+# Do not attach to /usr/bin/lsb_release by default
+profile lsb_release {
+  include <abstractions/base>
+  include <abstractions/python>
+
+  owner @{PROC}/@{pid}/fd/ r,
+
+  /dev/tty rw,
+
+  /usr/bin/lsb_release r,
+  /usr/bin/python3.{1,}[0-9] mr,
+
+  /etc/debian_version r,
+  /etc/default/apport r,
+  /etc/dpkg/origins/** r,
+  /etc/lsb-release r,
+  /etc/lsb-release.d/ r,
+
+  /{usr/,}bin/bash ixr,
+  /{usr/,}bin/dash ixr,
+  /usr/bin/basename ixr,
+  /usr/bin/dpkg-query ixr,
+  /usr/bin/cat ixr,
+  /usr/bin/cut ixr,
+  /usr/bin/getopt ixr,
+  /usr/bin/sed ixr,
+  /usr/bin/tr ixr,
+
+  # TODO - many more permissions needed for this to work
+  deny /usr/bin/apt-cache x,
+
+  /usr/bin/ r,
+  /usr/include/python*/pyconfig.h r,
+  /usr/share/distro-info/** r,
+  /usr/share/dpkg/** r,
+  /usr/share/terminfo/** r,
+  /var/lib/dpkg/** r,
+
+  # file_inherit
+  deny /tmp/gtalkplugin.log w,
+
+  # Site-specific additions and overrides. See local/README for details.
+  include if exists <local/lsb_release>
+}
diff --git a/apparmor.d/nvidia_modprobe b/apparmor.d/nvidia_modprobe
new file mode 100644 (file)
index 0000000..2502c49
--- /dev/null
@@ -0,0 +1,67 @@
+# vim:syntax=apparmor
+
+abi <abi/3.0>,
+
+include <tunables/global>
+
+profile nvidia_modprobe {
+  include <abstractions/base>
+
+  # Capabilities
+
+  capability chown,
+  capability mknod,
+  capability setuid,
+  capability sys_admin,
+
+  # Main executable
+
+  /usr/bin/nvidia-modprobe mr,
+
+  # Other executables
+
+  /usr/bin/kmod Cx -> kmod,
+
+  # System files
+
+  /dev/nvidia-modeset w,
+  /dev/nvidia-uvm w,
+  /dev/nvidia-uvm-tools w,
+  @{sys}/bus/pci/devices/ r,
+  @{sys}/devices/pci[0-9]*/**/config r,
+  @{PROC}/devices r,
+  @{PROC}/driver/nvidia/params r,
+  @{PROC}/modules r,
+  @{PROC}/sys/kernel/modprobe r,
+
+  # Child profiles
+
+  profile kmod {
+    include <abstractions/base>
+
+    # Capabilities
+
+    capability sys_module,
+
+    # Main executable
+
+    /usr/bin/kmod mrix,
+
+    # Other executables
+
+    /{,usr/}bin/{,ba,da}sh ix,
+
+    # System files
+
+    /etc/modprobe.d/{,*.conf} r,
+    /etc/nvidia/current/*.conf r,
+    @{sys}/module/ipmi_devintf/initstate r,
+    @{sys}/module/ipmi_msghandler/initstate r,
+    @{sys}/module/nvidia/initstate r,
+    @{PROC}/cmdline r,
+  }
+
+  # Site-specific additions and overrides. See local/README for details.
+  include if exists <local/nvidia_modprobe>
+}
+
diff --git a/apparmor.d/sbin.dhclient b/apparmor.d/sbin.dhclient
new file mode 100644 (file)
index 0000000..1acc6b9
--- /dev/null
@@ -0,0 +1,111 @@
+# vim:syntax=apparmor
+#include <tunables/global>
+
+/{,usr/}sbin/dhclient flags=(attach_disconnected) {
+  #include <abstractions/base>
+  #include <abstractions/nameservice>
+  #include <abstractions/openssl>
+
+  capability net_bind_service,
+  capability net_raw,
+  capability dac_override,
+  capability net_admin,
+
+  network packet,
+  network raw,
+
+  @{PROC}/[0-9]*/net/ r,
+  @{PROC}/[0-9]*/net/** r,
+
+  # dhclient wants to update its threads with functional names
+  # https://gitlab.com/apparmor/apparmor/-/merge_requests/730
+  # see LP: #1918410
+  owner @{PROC}/@{pid}/task/[0-9]*/comm rw,
+
+  /{,usr/}sbin/dhclient mr,
+  # LP: #1197484 and LP: #1202203 - why is this needed? :(
+  /{,usr/}bin/bash mr,
+
+  /etc/dhclient.conf r,
+  /etc/dhcp/ r,
+  /etc/dhcp/** r,
+
+  /var/lib/dhcp{,3}/dhclient* lrw,
+  /{,var/}run/dhclient*.pid lrw,
+  /{,var/}run/dhclient*.lease* lrw,
+
+  # NetworkManager
+  /{,var/}run/nm*conf r,
+  /{,var/}run/sendsigs.omit.d/network-manager.dhclient*.pid lrw,
+  /{,var/}run/NetworkManager/dhclient*.pid lrw,
+  /var/lib/NetworkManager/dhclient*.conf lrw,
+  /var/lib/NetworkManager/dhclient*.lease* lrw,
+  signal (receive) peer=/usr/sbin/NetworkManager,
+  ptrace (readby) peer=/usr/sbin/NetworkManager,
+
+  # connman
+  /{,var/}run/connman/dhclient*.pid lrw,
+  /{,var/}run/connman/dhclient*.leases lrw,
+
+  # synce-hal
+  /usr/share/synce-hal/dhclient.conf r,
+
+  # if there is a custom script, let it run unconfined
+  /etc/dhcp/dhclient-script Uxr,
+
+  # The dhclient-script shell script sources other shell scripts rather than
+  # executing them, so we can't just use a separate profile for dhclient-script
+  # with 'Uxr' on the hook scripts. However, for the long-running dhclient3
+  # daemon to run arbitrary code via /sbin/dhclient-script, it would need to be
+  # able to subvert dhclient-script or write to the hooks.d directories. As
+  # such, if the dhclient3 daemon is subverted, this effectively limits it to
+  # only being able to run the hooks scripts.
+  /{,usr/}sbin/dhclient-script                           Uxr,
+
+  # Run the ELF executables under their own unrestricted profiles
+  /usr/lib/NetworkManager/nm-dhcp-client.action   Pxrm,
+  /usr/lib/connman/scripts/dhclient-script        Pxrm,
+
+  # Support the new executable helper from NetworkManager.
+  /usr/lib/NetworkManager/nm-dhcp-helper          Pxrm,
+  signal (receive) peer=/usr/lib/NetworkManager/nm-dhcp-helper,
+
+  # Site-specific additions and overrides. See local/README for details.
+  #include <local/sbin.dhclient>
+}
+
+/usr/lib/NetworkManager/nm-dhcp-client.action {
+  #include <abstractions/base>
+  #include <abstractions/dbus>
+  /usr/lib/NetworkManager/nm-dhcp-client.action mr,
+
+  /var/lib/NetworkManager/*lease r,
+  signal (receive) peer=/usr/sbin/NetworkManager,
+  ptrace (readby) peer=/usr/sbin/NetworkManager,
+  network inet dgram,
+  network inet6 dgram,
+}
+
+/usr/lib/NetworkManager/nm-dhcp-helper {
+  #include <abstractions/base>
+  #include <abstractions/dbus>
+  /usr/lib/NetworkManager/nm-dhcp-helper mr,
+
+  /run/NetworkManager/private-dhcp rw,
+  signal (send) peer=/sbin/dhclient,
+
+  /var/lib/NetworkManager/*lease r,
+  signal (receive) peer=/usr/sbin/NetworkManager,
+  ptrace (readby) peer=/usr/sbin/NetworkManager,
+  network inet dgram,
+  network inet6 dgram,
+}
+
+/usr/lib/connman/scripts/dhclient-script {
+  #include <abstractions/base>
+  #include <abstractions/dbus>
+  /usr/lib/connman/scripts/dhclient-script      mr,
+  network inet dgram,
+  network inet6 dgram,
+}
+
diff --git a/apparmor.d/tunables/alias b/apparmor.d/tunables/alias
new file mode 100644 (file)
index 0000000..a0c55c4
--- /dev/null
@@ -0,0 +1,16 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# Alias rules can be used to rewrite paths and are done after variable
+# resolution. For example, if '/usr' is on removable media:
+# alias /usr/ -> /mnt/usr/,
+#
+# Or if mysql databases are stored in /home:
+# alias /var/lib/mysql/ -> /home/mysql/,
diff --git a/apparmor.d/tunables/apparmorfs b/apparmor.d/tunables/apparmorfs
new file mode 100644 (file)
index 0000000..2028097
--- /dev/null
@@ -0,0 +1,11 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+include <tunables/securityfs>
+
+@{apparmorfs}=@{securityfs}/apparmor/
diff --git a/apparmor.d/tunables/dovecot b/apparmor.d/tunables/dovecot
new file mode 100644 (file)
index 0000000..702da58
--- /dev/null
@@ -0,0 +1,20 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2013 Christian Boltz
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# vim:ft=apparmor
+
+# @{DOVECOT_MAILSTORE} is a space-separated list of all directories
+# where dovecot is allowed to store and read mails
+# 
+# The default value is quite broad to avoid breaking existing setups.
+# Please change @{DOVECOT_MAILSTORE} to (only) contain the directory
+# you use, and remove everything else.
+
+@{DOVECOT_MAILSTORE}=@{HOME}/Maildir/ @{HOME}/mail/ @{HOME}/Mail/ /var/vmail/ /var/mail/ /var/spool/mail/
+
diff --git a/apparmor.d/tunables/etc b/apparmor.d/tunables/etc
new file mode 100644 (file)
index 0000000..c144621
--- /dev/null
@@ -0,0 +1,25 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2020 Christian Boltz
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# @{etc_ro} contains a space-separated list of the system configuration directories.
+# Traditionally this means /etc/, but when using a read-only / filesystem and/or
+# with the goal of having only user-modified config files in /etc/, directories
+# like /usr/etc/ get introduced for storing the default config.
+
+# @{etc_ro} contains read-only directories with configuration files.
+# Do not use @{etc_ro} in rules that allow write access.
+@{etc_ro}=/etc/ /usr/etc/
+
+# @{etc_rw} contains directories where writing to configuration files is allowed.
+@{etc_rw}=/etc/
+
+# Also, include files in tunables/etc.d/ for site-specific adjustments to
+# @{etc_ro} and @{etc_rw}.
+include if exists <tunables/etc.d>
diff --git a/apparmor.d/tunables/global b/apparmor.d/tunables/global
new file mode 100644 (file)
index 0000000..3dd4bfd
--- /dev/null
@@ -0,0 +1,23 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2006-2009 Novell/SUSE
+#    Copyright (C) 2010-2014 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# All the tunables definitions that should be available to every profile
+# should be included here
+
+include <tunables/home>
+include <tunables/multiarch>
+include <tunables/proc>
+include <tunables/alias>
+include <tunables/kernelvars>
+include <tunables/xdg-user-dirs>
+include <tunables/share>
+include <tunables/etc>
+include <tunables/run>
diff --git a/apparmor.d/tunables/home b/apparmor.d/tunables/home
new file mode 100644 (file)
index 0000000..4df34b5
--- /dev/null
@@ -0,0 +1,25 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2006-2009 Novell/SUSE
+#    Copyright (C) 2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# @{HOME} is a space-separated list of all user home directories. While
+# it doesn't refer to a specific home directory (AppArmor doesn't
+# enforce discretionary access controls) it can be used as if it did
+# refer to a specific home directory
+@{HOME}=@{HOMEDIRS}/*/ /root/
+
+# @{HOMEDIRS} is a space-separated list of where user home directories
+# are stored, for programs that must enumerate all home directories on a
+# system.
+@{HOMEDIRS}=/home/
+
+# Also, include files in tunables/home.d for site-specific adjustments to
+# @{HOMEDIRS}.
+include <tunables/home.d>
diff --git a/apparmor.d/tunables/home.d/site.local b/apparmor.d/tunables/home.d/site.local
new file mode 100644 (file)
index 0000000..e6796a0
--- /dev/null
@@ -0,0 +1,13 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2010 Canonical Ltd.
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# The following is a space-separated list of where additional user home
+# directories are stored, each must have a trailing '/'. Directories added
+# here are appended to @{HOMEDIRS}.  See tunables/home for details. Eg:
+#@{HOMEDIRS}+=/srv/nfs/home/ /mnt/home/
diff --git a/apparmor.d/tunables/home.d/ubuntu b/apparmor.d/tunables/home.d/ubuntu
new file mode 100644 (file)
index 0000000..32db092
--- /dev/null
@@ -0,0 +1,7 @@
+# This file is auto-generated. It is recommended you update it using:
+# $ sudo dpkg-reconfigure apparmor
+#
+# The following is a space-separated list of where additional user home
+# directories are stored, each must have a trailing '/'. Directories added
+# here are appended to @{HOMEDIRS}.  See tunables/home for details.
+#@{HOMEDIRS}+=
diff --git a/apparmor.d/tunables/kernelvars b/apparmor.d/tunables/kernelvars
new file mode 100644 (file)
index 0000000..65ee266
--- /dev/null
@@ -0,0 +1,33 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# This file should contain declarations to kernel vars or variables
+# that will become kernel vars at some point
+
+# until kernel vars are implemented
+# and until the parser supports nested groupings like
+#   @{pid}=[1-9]{[0-9]{[0-9]{[0-9]{[0-9]{[0-9],},},},},}
+# use
+@{pid}={[1-9],[1-9][0-9],[1-9][0-9][0-9],[1-9][0-9][0-9][0-9],[1-9][0-9][0-9][0-9][0-9],[1-9][0-9][0-9][0-9][0-9][0-9],[1-4][0-9][0-9][0-9][0-9][0-9][0-9]}
+
+#same pattern as @{pid} for now
+@{tid}=@{pid}
+
+#A pattern for pids that can appear
+@{pids}=@{pid}
+
+# Placeholder for user id until kernel var is implemented to match
+# current user of the confined application.
+# Values are 0...4,294,967,295 (32-bit unsigned, 10 digits).
+@{uid}={[0-9],[1-9][0-9],[1-9][0-9][0-9],[1-9][0-9][0-9][0-9],[1-9][0-9][0-9][0-9][0-9],[1-9][0-9][0-9][0-9][0-9][0-9],[1-9][0-9][0-9][0-9][0-9][0-9][0-9],[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9],[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9],[1-4][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]}
+
+#same pattern as @{uid} for now
+@{uids}=@{uid}
+
+# until kernel var is implemented
+@{sys}=/sys/
diff --git a/apparmor.d/tunables/multiarch b/apparmor.d/tunables/multiarch
new file mode 100644 (file)
index 0000000..32fd1aa
--- /dev/null
@@ -0,0 +1,17 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2010 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# @{multiarch} is the set of patterns matching multi-arch library
+# install prefixes.
+@{multiarch}=*-linux-gnu*
+
+# Also, include files in tunables/multiarch.d for site and packaging
+# specific adjustments to @{multiarch}.
+include <tunables/multiarch.d>
diff --git a/apparmor.d/tunables/multiarch.d/site.local b/apparmor.d/tunables/multiarch.d/site.local
new file mode 100644 (file)
index 0000000..91877e2
--- /dev/null
@@ -0,0 +1,14 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2011 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# The following is a space-separated list of where additional multipath
+# prefixes are stored, each should not have a trailing '/'. Directories
+# added here are appended to @{multiarch}. See tunables/mutliarch for details. Eg:
+#@{multiarch}+=*-freebsd* s390-hurd-zomg
diff --git a/apparmor.d/tunables/proc b/apparmor.d/tunables/proc
new file mode 100644 (file)
index 0000000..25a1964
--- /dev/null
@@ -0,0 +1,12 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2006 Novell/SUSE
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# @{PROC} is the location where procfs is mounted.
+@{PROC}=/proc/
diff --git a/apparmor.d/tunables/run b/apparmor.d/tunables/run
new file mode 100644 (file)
index 0000000..5b81925
--- /dev/null
@@ -0,0 +1 @@
+@{run}=/run/ /var/run/
diff --git a/apparmor.d/tunables/securityfs b/apparmor.d/tunables/securityfs
new file mode 100644 (file)
index 0000000..c572139
--- /dev/null
@@ -0,0 +1,10 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# @{securityfs} is the location where securityfs is mounted.
+@{securityfs}=@{sys}/kernel/security/
diff --git a/apparmor.d/tunables/share b/apparmor.d/tunables/share
new file mode 100644 (file)
index 0000000..f41121c
--- /dev/null
@@ -0,0 +1,15 @@
+@{flatpak_exports_root} = {flatpak/exports,flatpak/{app,runtime}/*/*/*/*/export}
+
+# System-wide directories with behaviour analogous to /usr/share
+# in patterns like the freedesktop.org basedir spec. These are
+# owned by root or a system user, appear in XDG_DATA_DIRS, and
+# are the parent directory for `applications`, `themes`,
+# `dbus-1/services`, etc.
+@{system_share_dirs} = /{usr,usr/local,var/lib/@{flatpak_exports_root}}/share
+
+# Per-user/personal directories with behaviour analogous to
+# ~/.local/share in patterns like the freedesktop.org basedir spec.
+# These are owned by the user running an application, appear in
+# XDG_DATA_DIRS or XDG_DATA_HOME, and are the parent directory
+# for the same subdirectories as @{system_share_dirs}
+@{user_share_dirs} = @{HOME}/.local{,/share/@{flatpak_exports_root}}/share
diff --git a/apparmor.d/tunables/sys b/apparmor.d/tunables/sys
new file mode 100644 (file)
index 0000000..c5257e3
--- /dev/null
@@ -0,0 +1,9 @@
+#    Copyright (C) 2012 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+#This file is DEPRECATED! @{sys} is defined in tunables/kernelvars now.
diff --git a/apparmor.d/tunables/xdg-user-dirs b/apparmor.d/tunables/xdg-user-dirs
new file mode 100644 (file)
index 0000000..9488f96
--- /dev/null
@@ -0,0 +1,24 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2014 Canonical Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# Define the common set of XDG user directories (usually defined in
+# /etc/xdg/user-dirs.defaults)
+@{XDG_DESKTOP_DIR}="Desktop"
+@{XDG_DOWNLOAD_DIR}="Downloads"
+@{XDG_TEMPLATES_DIR}="Templates"
+@{XDG_PUBLICSHARE_DIR}="Public"
+@{XDG_DOCUMENTS_DIR}="Documents"
+@{XDG_MUSIC_DIR}="Music"
+@{XDG_PICTURES_DIR}="Pictures"
+@{XDG_VIDEOS_DIR}="Videos"
+
+# Also, include files in tunables/xdg-user-dirs.d for site-specific adjustments
+# to the various XDG directories
+include <tunables/xdg-user-dirs.d>
diff --git a/apparmor.d/tunables/xdg-user-dirs.d/site.local b/apparmor.d/tunables/xdg-user-dirs.d/site.local
new file mode 100644 (file)
index 0000000..8fcabfa
--- /dev/null
@@ -0,0 +1,21 @@
+# ------------------------------------------------------------------
+#
+#    Copyright (C) 2014 Canonical Ltd.
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# The following may be used to add additional entries such as for
+# translations. See tunables/xdg-user-dirs for details. Eg:
+#@{XDG_MUSIC_DIR}+="Musique"
+
+#@{XDG_DESKTOP_DIR}+=""
+#@{XDG_DOWNLOAD_DIR}+=""
+#@{XDG_TEMPLATES_DIR}+=""
+#@{XDG_PUBLICSHARE_DIR}+=""
+#@{XDG_DOCUMENTS_DIR}+=""
+#@{XDG_MUSIC_DIR}+=""
+#@{XDG_PICTURES_DIR}+=""
+#@{XDG_VIDEOS_DIR}+=""
diff --git a/apparmor.d/usr.bin.man b/apparmor.d/usr.bin.man
new file mode 100644 (file)
index 0000000..b6cd0be
--- /dev/null
@@ -0,0 +1,113 @@
+# vim:syntax=apparmor
+
+#include <tunables/global>
+
+/usr/bin/man {
+  #include <abstractions/base>
+
+  # Use a special profile when man calls anything groff-related.  We only
+  # include the programs that actually parse input data in a non-trivial
+  # way, not wrappers such as groff and nroff, since the latter would need a
+  # broader profile.
+  /usr/bin/eqn rmCx -> &man_groff,
+  /usr/bin/grap rmCx -> &man_groff,
+  /usr/bin/pic rmCx -> &man_groff,
+  /usr/bin/preconv rmCx -> &man_groff,
+  /usr/bin/refer rmCx -> &man_groff,
+  /usr/bin/tbl rmCx -> &man_groff,
+  /usr/bin/troff rmCx -> &man_groff,
+  /usr/bin/vgrind rmCx -> &man_groff,
+
+  # Similarly, use a special profile when man calls decompressors and other
+  # simple filters.
+  /{,usr/}bin/bzip2 rmCx -> &man_filter,
+  /{,usr/}bin/gzip rmCx -> &man_filter,
+  /usr/bin/col rmCx -> &man_filter,
+  /usr/bin/compress rmCx -> &man_filter,
+  /usr/bin/iconv rmCx -> &man_filter,
+  /usr/bin/lzip.lzip rmCx -> &man_filter,
+  /usr/bin/tr rmCx -> &man_filter,
+  /usr/bin/xz rmCx -> &man_filter,
+
+  # Allow basically anything in terms of file system access, subject to DAC.
+  # The purpose of this profile isn't to confine man itself (that might be
+  # nice in the future, but is tricky since it's quite configurable), but to
+  # confine the processes it calls that parse untrusted data.
+  /** mrixwlk,
+  unix,
+
+  capability setuid,
+  capability setgid,
+
+  # Ordinary permission checks sometimes involve checking whether the
+  # process has this capability, which can produce audit log messages.
+  # Silence them.
+  deny capability dac_override,
+  deny capability dac_read_search,
+
+  signal peer=@{profile_name},
+  signal peer=/usr/bin/man//&man_groff,
+  signal peer=/usr/bin/man//&man_filter,
+
+  # Site-specific additions and overrides.  See local/README for details.
+  #include <local/usr.bin.man>
+}
+
+profile man_groff {
+  #include <abstractions/base>
+  # Recent kernels revalidate open FDs, and there are often some still
+  # open on TTYs.  This is temporary until man learns to close irrelevant
+  # open FDs before execve.
+  #include <abstractions/consoles>
+  # man always runs its groff pipeline with the input file open on stdin,
+  # so we can skip <abstractions/user-manpages>.
+
+  /usr/bin/eqn rm,
+  /usr/bin/grap rm,
+  /usr/bin/pic rm,
+  /usr/bin/preconv rm,
+  /usr/bin/refer rm,
+  /usr/bin/tbl rm,
+  /usr/bin/troff rm,
+  /usr/bin/vgrind rm,
+
+  /etc/groff/** r,
+  /etc/papersize r,
+  /usr/lib/groff/site-tmac/** r,
+  /usr/share/groff/** r,
+
+  /tmp/groff* rw,
+
+  signal peer=/usr/bin/man,
+  # @{profile_name} doesn't seem to work here.
+  signal peer=/usr/bin/man//&man_groff,
+}
+
+profile man_filter {
+  #include <abstractions/base>
+  # Recent kernels revalidate open FDs, and there are often some still
+  # open on TTYs.  This is temporary until man learns to close irrelevant
+  # open FDs before execve.
+  #include <abstractions/consoles>
+
+  /{,usr/}bin/bzip2 rm,
+  /{,usr/}bin/gzip rm,
+  /usr/bin/col rm,
+  /usr/bin/compress rm,
+  /usr/bin/iconv rm,
+  /usr/bin/lzip.lzip rm,
+  /usr/bin/tr rm,
+  /usr/bin/xz rm,
+
+  # Manual pages can be more or less anywhere, especially with "man -l", and
+  # there's no harm in allowing wide read access here since the worst it can
+  # do is feed data to the invoking man process.
+  /** r,
+
+  # Allow writing cat pages.
+  /var/cache/man/** w,
+
+  signal peer=/usr/bin/man,
+  # @{profile_name} doesn't seem to work here.
+  signal peer=/usr/bin/man//&man_filter,
+}
diff --git a/apparmor.d/usr.bin.tcpdump b/apparmor.d/usr.bin.tcpdump
new file mode 100644 (file)
index 0000000..732a691
--- /dev/null
@@ -0,0 +1,69 @@
+# vim:syntax=apparmor
+#include <tunables/global>
+
+profile tcpdump /usr/bin/tcpdump {
+  #include <abstractions/base>
+  #include <abstractions/nameservice>
+  #include <abstractions/user-tmp>
+
+  capability net_raw,
+  capability setuid,
+  capability setgid,
+  capability dac_override,
+  capability chown,
+  network raw,
+  network packet,
+
+  # for -D
+  @{PROC}/bus/usb/ r,
+  @{PROC}/bus/usb/** r,
+
+  # for finding an interface
+  /dev/ r,
+  @{PROC}/[0-9]*/net/dev r,
+  /sys/bus/usb/devices/ r,
+  /sys/class/net/ r,
+  /sys/devices/**/net/** r,
+
+  # for -j
+  capability net_admin,
+
+  # for tracing USB bus, which libpcap supports
+  /dev/usbmon* r,
+  /dev/bus/usb/ r,
+  /dev/bus/usb/** r,
+
+  # for init_etherarray(), with -e
+  /etc/ethers r,
+
+  # for USB probing (see libpcap-1.1.x/pcap-usb-linux.c:probe_devices())
+  /dev/bus/usb/**/[0-9]* w,
+
+  # for -z
+  /{usr/,}bin/gzip ixr,
+  /{usr/,}bin/bzip2 ixr,
+
+  # for -F and -w
+  audit deny @{HOME}/.* mrwkl,
+  audit deny @{HOME}/.*/ rw,
+  audit deny @{HOME}/.*/** mrwkl,
+  audit deny @{HOME}/bin/ rw,
+  audit deny @{HOME}/bin/** mrwkl,
+  owner @{HOME}/ r,
+  owner @{HOME}/** rw,
+
+  # for -r, -F and -w
+  /**.[pP][cC][aA][pP] rw,
+  /**.[cC][aA][pP] rw,
+  # -W adds a numerical suffix
+  /**.[pP][cC][aA][pP][0-9]* rw,
+  /**.[cC][aA][pP][0-9]* rw,
+
+  # for convenience with -r (ie, read pcap files from other sources)
+  /var/log/snort/*log* r,
+
+  /usr/bin/tcpdump mr,
+
+  # Site-specific additions and overrides. See local/README for details.
+  #include <local/usr.bin.tcpdump>
+}
diff --git a/apparmor.d/usr.sbin.chronyd b/apparmor.d/usr.sbin.chronyd
new file mode 100644 (file)
index 0000000..bc52d4f
--- /dev/null
@@ -0,0 +1,85 @@
+# vim:syntax=apparmor
+# Last Modified: Sun Sep 05 16:48:05 2021
+
+abi <abi/3.0>,
+
+#include <tunables/global>
+
+/usr/sbin/chronyd flags=(attach_disconnected) {
+  #include <abstractions/base>
+  #include <abstractions/nameservice>
+
+  # For /run/chrony to be created
+  capability chown,
+
+  # Give “root” the ability to read and write the PID file
+  capability dac_override,
+  capability dac_read_search,
+
+  # Needed to support HW timestamping
+  capability net_admin,
+
+  # Needed to allow NTP server sockets to be bound to a privileged port
+  capability net_bind_service,
+
+  # Needed to allow an NTP socket to be bound to a device using the
+  # SO_BINDTODEVICE socket option on kernels before 5.7
+  capability net_raw,
+
+  # Needed to drop privileges
+  capability setgid,
+  capability setuid,
+
+  # Needed to set the SCHED_FIFO real-time scheduler at the specified priority
+  # using the '-P' option
+  capability sys_nice,
+
+  # Needed to lock chronyd into RAM
+  capability sys_resource,
+
+  # Needed to set the system/real-time clock
+  capability sys_time,
+
+  /usr/sbin/chronyd mr,
+
+  /etc/chrony/{,**} r,
+  /var/lib/chrony/{,*} rw,
+  /var/log/chrony/{,*} rw,
+  @{run}/chrony/{,*} rw,
+  @{run}/chrony-dhcp/{,*} r,
+
+  # Using the “tempcomp” directive gives chronyd the ability to improve
+  # the stability and accuracy of the clock by compensating the temperature
+  # changes measured by a sensor close to the oscillator.
+  @{sys}/class/hwmon/hwmon[0-9]*/temp[0-9]*_input r,
+  @{sys}/devices/virtual/thermal/thermal_zone[0-9]*/hwmon[0-9]*/temp[0-9]*_input r,
+
+  # Support all paths suggested in the man page (LP: #1771028). Assume these
+  # are common use cases; others should be set as local include (see below).
+  # Configs using a 'chrony.' prefix like the tempcomp config file example
+  /etc/chrony.* r,
+  # Example gpsd socket is outside @{run}/chrony/
+  @{run}/chrony.*.sock rw,
+  # To sign replies to MS-SNTP clients by the smbd daemon
+  /var/lib/samba/ntp_signd/socket rw,
+
+  # rtc
+  /etc/adjtime r,
+  /dev/rtc{,[0-9]*} rw,
+
+  # gps devices
+  /dev/pps[0-9]* rw,
+  /dev/ptp[0-9]* rw,
+
+  # Allow reading the chronyd configuration file that timemaster(8) generates
+  @{run}/timemaster/chrony.conf r,
+
+  # For use with clocks that report via shared memory (e.g. gpsd),
+  # you may need to give ntpd access to all of shared memory, though
+  # this can be considered dangerous. See https://launchpad.net/bugs/722815
+  # for details. To enable, add this to local/usr.sbin.chronyd:
+  #     capability ipc_owner,
+
+  # Site-specific additions and overrides. See local/README for details.
+  #include <local/usr.sbin.chronyd>
+}
diff --git a/apparmor.d/usr.sbin.haveged b/apparmor.d/usr.sbin.haveged
new file mode 100644 (file)
index 0000000..1224d31
--- /dev/null
@@ -0,0 +1,26 @@
+# Last Modified: Fri Aug 21 15:23:17 2015
+#include <tunables/global>
+
+/usr/sbin/haveged {
+  #include <abstractions/base>
+  #include <abstractions/consoles>
+
+  # Required for ioctl RNDADDENTROPY
+  capability sys_admin,
+
+  owner @{PROC}/@{pid}/status r,
+
+  @{PROC}/sys/kernel/osrelease r,
+  @{PROC}/sys/kernel/random/poolsize r,
+  @{PROC}/sys/kernel/random/write_wakeup_threshold w,
+  /dev/random w,
+
+  /sys/devices/system/cpu/ r,
+  /sys/devices/system/cpu/cpu*/cache/ r,
+  /sys/devices/system/cpu/cpu*/cache/index*/{type,size,level} r,
+  /usr/sbin/haveged mr,
+
+  /run/haveged.pid w,
+
+  #include <local/usr.sbin.haveged>
+}
diff --git a/apparmor.d/usr.sbin.mariadbd b/apparmor.d/usr.sbin.mariadbd
new file mode 100644 (file)
index 0000000..b1f229b
--- /dev/null
@@ -0,0 +1,15 @@
+# This file is intentionally empty to disable apparmor by default for newer
+# versions of MariaDB, while providing seamless upgrade from older versions
+# and from mysql, where apparmor is used.
+#
+# By default, we do not want to have any apparmor profile for the MariaDB
+# server. It does not provide much useful functionality/security, and causes
+# several problems for users who often are not even aware that apparmor
+# exists and runs on their system.
+#
+# Users can modify and maintain their own profile, and in this case it will
+# be used.
+#
+# When upgrading from previous version, users who modified the profile
+# will be prompted to keep or discard it, while for default installs
+# we will automatically disable the profile.
diff --git a/apparmor.d/usr.sbin.named b/apparmor.d/usr.sbin.named
new file mode 100644 (file)
index 0000000..f572f4d
--- /dev/null
@@ -0,0 +1,101 @@
+# vim:syntax=apparmor
+# Last Modified: Fri Jun  1 16:43:22 2007
+#include <tunables/global>
+
+profile named /usr/sbin/named flags=(attach_disconnected) {
+  #include <abstractions/base>
+  #include <abstractions/nameservice>
+
+  capability net_bind_service,
+  capability setgid,
+  capability setuid,
+  capability sys_chroot,
+  capability sys_resource,
+
+  # /etc/bind should be read-only for bind
+  # /var/lib/bind is for dynamically updated zone (and journal) files.
+  # /var/cache/bind is for slave/stub data, since we're not the origin of it.
+  # See /usr/share/doc/bind9/README.Debian.gz
+  /etc/bind/** r,
+  /var/lib/bind/** rw,
+  /var/lib/bind/ rw,
+  /var/cache/bind/** lrw,
+  /var/cache/bind/ rw,
+
+  # Database file used by allow-new-zones
+  /var/cache/bind/_default.nzd-lock rwk,
+
+  # gssapi
+  /etc/krb5.keytab kr,
+  /etc/bind/krb5.keytab kr,
+
+  # ssl
+  /etc/ssl/*.cnf r,
+  /etc/ssl/*.conf r,
+
+  # root hints from dns-data-root
+  /usr/share/dns/root.* r,
+
+  # GeoIP data files for GeoIP ACLs
+  /usr/share/GeoIP/** r,
+
+  # dnscvsutil package
+  /var/lib/dnscvsutil/compiled/** rw,
+
+  # Allow changing worker thread names
+  owner @{PROC}/@{pid}/task/@{tid}/comm rw,
+
+  # named need to check if hugepages is available
+  /sys/kernel/mm/transparent_hugepage/enabled r,
+
+  @{PROC}/net/if_inet6 r,
+  @{PROC}/*/net/if_inet6 r,
+  @{PROC}/sys/net/ipv4/ip_local_port_range r,
+  /usr/sbin/named mr,
+  /{,var/}run/named/named.pid w,
+  /{,var/}run/named/session.key w,
+  # support for resolvconf
+  /{,var/}run/named/named.options r,
+
+  # some people like to put logs in /var/log/named/ instead of having
+  # syslog do the heavy lifting.
+  /var/log/named/** rw,
+  /var/log/named/ rw,
+
+  # gssapi
+  /var/lib/sss/pubconf/krb5.include.d/** r,
+  /var/lib/sss/pubconf/krb5.include.d/ r,
+  /var/lib/sss/mc/initgroups r,
+  /etc/gss/mech.d/ r,
+
+  # ldap
+  /etc/ldap/ldap.conf r,
+  /{,var/}run/slapd-*.socket rw,
+
+  # dynamic updates
+  /var/tmp/DNS_* rw,
+
+  # dyndb backends
+  /usr/lib/bind/*.so rm,
+
+  # Samba DLZ
+  /{usr/,}lib/@{multiarch}/samba/bind9/*.so rm,
+  /{usr/,}lib/@{multiarch}/samba/gensec/*.so rm,
+  /{usr/,}lib/@{multiarch}/samba/ldb/*.so rm,
+  /{usr/,}lib/@{multiarch}/ldb/modules/ldb/*.so rm,
+  /var/lib/samba/bind-dns/dns.keytab rk,
+  /var/lib/samba/bind-dns/named.conf r,
+  /var/lib/samba/bind-dns/dns/** rwk,
+  /var/lib/samba/private/dns.keytab rk,
+  /var/lib/samba/private/named.conf r,
+  /var/lib/samba/private/dns/** rwk,
+  /etc/samba/smb.conf r,
+  /dev/urandom rwmk,
+  owner /var/tmp/krb5_* rwk,
+
+  # systemd sd_notify
+  /run/systemd/notify w,
+
+  # Site-specific additions and overrides. See local/README for details.
+  #include <local/usr.sbin.named>
+}
diff --git a/apparmor/parser.conf b/apparmor/parser.conf
new file mode 100644 (file)
index 0000000..d88009b
--- /dev/null
@@ -0,0 +1,83 @@
+# parser.conf is a global AppArmor config file for the apparmor_parser
+#
+# It can be used to specify the default options for the parser, which
+# can then be overriden by options passed on the command line.
+#
+# Leading whitespace is ignored and lines that begin with # are treated
+# as comments.
+#
+# Config options are specified one per line using the same format as the
+# longform command line options (without the preceding --).
+#
+# If a value is specified twice the last version to appear is used.
+
+## Suppress Warnings
+#quiet
+
+## Be verbose
+#verbose
+
+## Set additional include path
+#Include /etc/apparmor.d/
+# or
+#Include /usr/share/apparmor
+
+
+## Set location of apparmor filesystem
+#subdomainfs /sys/kernel/security/apparmor
+
+## Set match-string to use - for forcing compiler to treat different kernels
+## the same
+# match-string "pattern=aadfa audit perms=crwxamlk/ user::other"
+
+## Turn creating/updating of the cache on by default
+#write-cache
+
+## Show cache hits
+#show-cache
+
+## skip cached policy
+#skip-cache
+
+## skip reading cache but allow updating
+#skip-read-cache
+
+
+#### Set Optimizaions.  Multiple Optimizations can be set, one per line ####
+# For supported optimizations see
+#   apparmor_parser --help=O
+
+## Turn on equivalence classes
+#equiv
+
+## Turn off expr tree simplification
+#Optimize=no-expr-simplify
+
+## Turn off DFA minimization
+#Optimize=no-minimize
+
+## Adjust compression
+#Optimize=compress-small
+#Optimize=compress-fast
+
+### The policy-features abi rule pins policy that does not have an abi
+### rule to a given feature ABI. This enables apparmor 2.x developed
+### policy to be used in AppArmor 3.x without the warning
+###    Warning from stdin (stdin line 1): apparmor_parser: File 'example'
+###    missing feature abi, falling back to default policy feature abi.
+### For more info please see
+### https://gitlab.com/apparmor/apparmor/-/wikis/AppArmorpolicyfeaturesabi
+
+### Turn off abi rule warnings without pinning the abi
+#warn=no-abi
+
+### Only a single feature ABI rule should be used at a time.
+## Pin older policy to the 5.4 kernel abi
+#policy-features=/etc/apparmor.d/abi/kernel-5.4-vanilla
+
+## Pin older policy to the 5.4 kernel abi + out of tree network and af_unix
+#policy-features=/etc/apparmor.d/abi/kernel-5.4-vanilla
+
+## Pin feature set (avoid regressions when policy is lagging behind
+## the kernel)
+policy-features=/usr/share/apparmor-features/features
diff --git a/apt/apt.conf.d/00CDMountPoint b/apt/apt.conf.d/00CDMountPoint
new file mode 100644 (file)
index 0000000..6a2c664
--- /dev/null
@@ -0,0 +1,4 @@
+Acquire::cdrom {
+  mount "/media/cdrom";
+};
+Dir::Media::MountPath "/media/cdrom";
diff --git a/apt/apt.conf.d/00trustcdrom b/apt/apt.conf.d/00trustcdrom
new file mode 100644 (file)
index 0000000..c7588cb
--- /dev/null
@@ -0,0 +1 @@
+APT::Authentication::TrustCDROM "true";
diff --git a/apt/apt.conf.d/01autoremove b/apt/apt.conf.d/01autoremove
new file mode 100644 (file)
index 0000000..10438e8
--- /dev/null
@@ -0,0 +1,32 @@
+APT
+{
+  NeverAutoRemove
+  {
+       "^firmware-linux.*";
+       "^linux-firmware$";
+       "^linux-image-[a-z0-9]*$";
+       "^linux-image-[a-z0-9]*-[a-z0-9]*$";
+  };
+
+  VersionedKernelPackages
+  {
+       # kernels
+       "linux-.*";
+       "kfreebsd-.*";
+       "gnumach-.*";
+       # (out-of-tree) modules
+       ".*-modules";
+       ".*-kernel";
+  };
+
+  Never-MarkAuto-Sections
+  {
+       "metapackages";
+       "tasks";
+  };
+
+  Move-Autobit-Sections
+  {
+       "oldlibs";
+  };
+};
diff --git a/apt/apt.conf.d/05etckeeper b/apt/apt.conf.d/05etckeeper
new file mode 100644 (file)
index 0000000..5e690a2
--- /dev/null
@@ -0,0 +1,5 @@
+DPkg::Pre-Invoke       { "if [ -x /usr/bin/etckeeper ]; then etckeeper pre-install; fi"; };
+DPkg::Post-Invoke      { "if [ -x /usr/bin/etckeeper ]; then etckeeper post-install; fi"; };
+
+RPM::Pre-Invoke       { "if [ -x /usr/bin/etckeeper ]; then etckeeper pre-install; fi"; };
+RPM::Post-Invoke      { "if [ -x /usr/bin/etckeeper ]; then etckeeper post-install; fi"; };
diff --git a/apt/apt.conf.d/20listchanges b/apt/apt.conf.d/20listchanges
new file mode 100644 (file)
index 0000000..4af5989
--- /dev/null
@@ -0,0 +1,5 @@
+DPkg::Pre-Install-Pkgs { "/usr/bin/apt-listchanges --apt || test $? -lt 10"; };
+DPkg::Tools::Options::/usr/bin/apt-listchanges::Version "2";
+DPkg::Tools::Options::/usr/bin/apt-listchanges::InfoFD "20";
+Dir::Etc::apt-listchanges-main "listchanges.conf";
+Dir::Etc::apt-listchanges-parts "listchanges.conf.d";
diff --git a/apt/apt.conf.d/70debconf b/apt/apt.conf.d/70debconf
new file mode 100644 (file)
index 0000000..0c8b4ca
--- /dev/null
@@ -0,0 +1,3 @@
+// Pre-configure all packages with debconf before they are installed.
+// If you don't like it, comment it out.
+DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";};
diff --git a/apt/listchanges.conf b/apt/listchanges.conf
new file mode 100644 (file)
index 0000000..d2056d6
--- /dev/null
@@ -0,0 +1,10 @@
+[apt]
+frontend=pager
+which=news
+email_address=root
+email_format=text
+confirm=false
+headers=false
+reverse=false
+save_seen=/var/lib/apt/listchanges.db
+
diff --git a/apt/sources.list b/apt/sources.list
new file mode 100644 (file)
index 0000000..95f92ed
--- /dev/null
@@ -0,0 +1,20 @@
+# deb cdrom:[Debian GNU/Linux 12.8.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20241109-11:05]/ bookworm contrib main non-free-firmware
+
+# main bookworm repositories
+deb    https://ftp-stud.hs-esslingen.de/debian/        bookworm                main contrib non-free non-free-firmware
+deb-src        https://ftp-stud.hs-esslingen.de/debian/        bookworm                main contrib non-free non-free-firmware
+
+# Debian Security updates - see https://www.debian.org/security/
+deb    http://security.debian.org/debian-security      bookworm-security       main contrib non-free non-free-firmware
+deb-src        http://security.debian.org/debian-security      bookworm-security       main contrib non-free non-free-firmware
+
+# bookworm-updates, to get updates before a point release is made;
+# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
+deb    https://ftp-stud.hs-esslingen.de/debian/        bookworm-updates        main contrib non-free non-free-firmware
+deb-src        https://ftp-stud.hs-esslingen.de/debian/        bookworm-updates        main contrib non-free non-free-firmware
+
+# bookworm-backports, previously on backports.debian.org
+deb    https://ftp-stud.hs-esslingen.de/debian/        bookworm-backports      main contrib non-free non-free-firmware
+deb-src        https://ftp-stud.hs-esslingen.de/debian/        bookworm-backports      main contrib non-free non-free-firmware
+
+# vim: noet ts=8 list
diff --git a/apt/sources.list.d/fbrehm.list b/apt/sources.list.d/fbrehm.list
new file mode 100644 (file)
index 0000000..314962b
--- /dev/null
@@ -0,0 +1,6 @@
+# Packages Frank Brehm
+# ---------------------
+
+deb    http://repo.uhu-banane.de/Debian/bookworm       ./
+deb-src        http://repo.uhu-banane.de/Sources               ./
+
diff --git a/apt/trusted.gpg.d/debian-archive-bookworm-automatic.asc b/apt/trusted.gpg.d/debian-archive-bookworm-automatic.asc
new file mode 100644 (file)
index 0000000..2e0b0e0
--- /dev/null
@@ -0,0 +1,186 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGPL0BUBEADmW5NdOOHwPIJlgPu6JDcKw/NZJPR8lsD3K87ZM18gzyQZJD+w
+ns6TSXOsx+BmpouHZgvh3FQADj/hhLjpNSqH5IH0xY7nic9BuSeyKx2WvfG62yxw
+XcFkwTxoWpF3tg0cv+kT4VA3MfVj5GebuS4F9Jv01WuGkxUllzdzeAoC70IYNOKV
++Av7hX5cOaCAgvDCQmhVnQ6Nz4fXdPdMHVodlPsKbv8ymVsfvb8UzQ6dl9w1gIu9
+4S0FCQeEePSii23jHISYwku/f6huQGxSjAy8yxab0aZshl98c3pGGfOJHntmHwOG
+gqV+Gm1hbcBjc6X8ybL2KEr/Lu4xAK3xSQmP+tO6MNxfBTCeo8fXRT95pqj7t3QH
+Iu+LbVYrkLQ6St9mdOgUUsAdVYXJ3eh8Y+CfjmBywNRizOGHrEp8JsAcS0+a9yBL
++BYWhS4BL/EeeacRLT9kfzIqS1OD/RL/4Qbi2GLGFsiHaKFUn4xse20ZXq5XtEL6
+ltQVIr/iAlBtdSOnge/ZkNvd3SQIyC2QBNAy67QutS8yiaCE2vtr8i5GQOu2fgr1
+NJ0VjuwshmgJvbZ2m/9Zq1Yp1iMnPVJtOWcNxTZAWJDN4L5OdoqbaOkqS/+cgLy2
+UTsc0A7cxt/2ugOtln/utXsfgb3Qno69yCuSbQmVM1NrwvZVxPIWi7B2gQARAQAB
+iQJOBB8BCgA4FiEEuLgLW2I+q2rYd1xFt8XX1jUJR/gFAmPL0BcXDIABgOl28UpQ
+ikjpyj/pvDciUsoc+WQCBwAACgkQt8XX1jUJR/jTMRAAt6Mltzz7xk7RGIGaF+ug
+0QSoh9n07Y0oxEAb1cPSvo3o5wnxQ6ZYIukr2KTFkXaDh35XpXoA2Z9Uf6wz4h8B
+nF8DWhbo+2sSq9au0J16bsLuIHfhzJWXSwyekHOrLiiiSfhjey9eQzgOT8jJsEjy
+FzfxtMOTepXX8yQdp4SK3WYdVjAcbwjFGcbh5VqQIsr1+MdlaVchqWP1vm1ADvQF
+C87hQjhpMzQoU7WVkJWsqlMuXh95h59h/SndBiHKXHQfs/LAM7M2K/fgS9+EbPWW
+fC97/8SqpXheDsvCvueumTyzUCNXFpNGwUUA1qO6GTaMwHjaX/AeCaRMxCQcLdQ0
+7b6zc13dqiMAAL1eSQ10TFP9kD2QoyPjF6lh0S5xshHWET5duw71KjYAAOGdv8J3
+9DGMvT8OdL8UklIJy7KLjxJOjY21oPCHgx1cQKLONCgOAcQ4ZmzBOP8sWZ7ld8OV
+Ke4c/bOqwbRMLNXUwuVJuejwvoypCOxbdlYUnfL633wVMQBM8ilog+2TydStV4AU
+CQVsICw4iaXUU+B6gh1euvgvCW13q7pMFJDPbpC+EFC1Fl4RT+CFLE8XG0kXHQ3x
+HWo+/b49x3MYv5wS33+NZpfdHEuHKwybfTIVshlPU8rXmrwmVXO9iRmAczjcoeYZ
+OTI5EJz20PBi65wAdpAFVBeJAk4EHwEKADgWIQS4uAtbYj6rath3XEW3xdfWNQlH
++AUCY8vQFxcMgAH7+r21QbXclVvZum7bFs9bsSUlxAIHAAAKCRC3xdfWNQlH+KbZ
+D/4uoBtdR5LdZGh5sDBjhcDJ+09vhagDh4/lLsiH5/HEmY5M0fwUTvnzV00Bsu3y
+u/blyKaX/oram1jBzwucqkIXFx/KF6ErMkHBQi0w7Kqb+nY1s24rD6++VL/ZIA5A
+CLoMxD/xWNN0GA3IMa5HquAxejhgpKB1Dm7QcEab2Jk2hnlCFBgmjun1xEqb2IO0
+fmfXjREpRBbzvmOTCkEUm8CIikJy7CHmAIVOJnxQZyK5bua05fKZOJQvb7VmmhJw
+/1eE5+VU0fMHbZDkVeL0LOAecpPGH3uCEXaf4J0Pu4jXCHqz9UPMNRawNWEcBRTZ
+oq5M5GpRkIpPpt8j7jGoQaKM5bUxtsS0+8L56n03J5xWBy+yEQPYnBJs5n61/dcc
+aRwqO47TJsADIqg7T5Q+v97+1xXzMc8KkTbtQatWdukNuVrbLNXlLYI/sPChqMtZ
+J7yW9Qhz+ljJnBKkYTjG5OLjsInB80cNFOkZMjsj9gQgAagSwqll/IIXry0zKF/Z
+A3ARmy7G5vjvqP8HjSWbcqbjdz27/H8Zn/HaGRK5GwoBS/4CyDiuvrq9bS6bk7E4
+Ql6Ni2UF7brjEULiYfbMdL0HHaKHuU3rWBCZtFRyVJ3yUKP/UAdxtS8VwbkYBOIp
+gS4Y6RwXeQmC9G6crnXR6hsODs5E47hiugf/HkhvyQ6CJokCTgQfAQoAOBYhBLi4
+C1tiPqtq2HdcRbfF19Y1CUf4BQJjy9AYFwyAAYyCPe0QqoBBY54SEFrOjW4MFKRw
+AgcAAAoJELfF19Y1CUf4uo0P/i+m8SnrFF7IcsppML6dsxOvioUt5dBbXgkSbCUh
+dciW583S04mqS8iicMoUSXg+WKXWJ+UaAnfh6yWLcbeYpH8SZ+TX+J3WuLj4ECPe
+MYfLGY4eehKIJqnEDfVqtoc8g5w9JxFglZBTZ/PJeyj6I2ovzVG1YH2ZER0cvRvi
+tywWBP3edDBa/KPHzBVLaeWuuH28aAGHF2pHtEh+nDfQ/EblDlPUkGclnu79E82g
+dl3W0GvcbMXccVIvik9IHPI042me4KJwy7X3qoNGbn3+XditIA+6rb1N+wGDdQkD
+s9MvGmoQoxs5iFi5kW/AIdIMHCR+A6MMO4KGQ6E6UDd/DM3iFh2V+gavktk85sIk
+Thy378l3JQRidRptifTJjESnyM/NUjN8JMb6peyn0xKyYE6uNK9cZAmbEWGCdZfp
+62gPUo6dR7BHe2a1qJokvfSJdjZtczBuWotFs6EQcCuRDqpySzrLYitCNxNqJ0FG
++kryruObVXgr4y+r1C7+CczmGF0m8zp1BuGaT6pbx7X6VqazYSfOkQSk4Wyk89Ry
+45RZmg79Mgv1s6NNz4ngW7LYNJgMZXwYHL99UiL47dOFBCIXTqVXURwU+BkVxwqZ
+Bq10BWd+qdMPGl8hsA3zi64PJMg0u4YaWs/jasZaWaJI6tv/M1WsfQ3TCZrtT6YE
+nhieiQJOBB8BCgA4FiEEuLgLW2I+q2rYd1xFt8XX1jUJR/gFAmPL0BgXDIABMJkR
+vqlm0GEwUwRXEbTl/xWw/YICBwAACgkQt8XX1jUJR/ilGw//W+ckV1lt00dA+S2T
+L7qaQehp//03GXnC4CRVEWalaoEylcqHlvyUiQc6+r44ZkoLTRSadNWt6EIISFaZ
+OiIEDrzzpNUVu/9heQeJeeOzPOFQ0LBNI86xo8e1EmvWMBLDf6NGJZtoG1qBNIyJ
+k0x7x51pOGf7h8xlvEDo3F0JNC5/N1FjtdAHdyA8HLQFkePIWHUm+h76lgF3Z5cE
+3Myh7XA0NfKe33pgI7CWhbNiF62XhOMAVM6Lrjk+Zp7FWDplSiNu+J3TTjR0sAkp
+H5Uf4V3i7zIhlVKKhV+Ktr5ojuj805U1tocrH68bBn4weLDfPzGp4rZ5aMoKqK+n
+sTYZzFr6NYBQG/cjs0Mj8g5WDvXLLoJ9aCzhQvPqAzgkle2EQuzb3QSOQdg4Koub
+/aQIB0TGjgKYM7WAj/ECoK0hk3w077VL7MeG8O4qSubW1toZ0ZrabWGRtJ6WxTNc
+8NqdZHZhZnfDqJQ6YVnpuuvlpAMBZfTIMCQDpgfwbDA3ZmAQuYikB6Jyr28ge5v9
+tYdZIIil4P17Jdma/usnVSplGrDZzDqxAM+sOsXejjdAIMnpw9tilIa7y23Cefls
+qdzJsAxZimipzSuRU29VJ35dEtMvqxL5cbBVMcl1FQXGIchrWtSDlzy20WuQpitd
+PejufO0YcdZCTo83Wze2OFIKmjGJAk4EHwEKADgWIQS4uAtbYj6rath3XEW3xdfW
+NQlH+AUCY8vQGBcMgAHHT2rJ6TOzBn9S8z+kWexnFbBwXwIHAAAKCRC3xdfWNQlH
++E2DEADOwCe6UQAojyXmQSLPeRH9wfykeeAqVowt15L3SegF3CGf/WyPeA7o4fwg
+60DMub81UtDanTB2s5ayGH/bzLhhDF/XjaotyEox6/J1/zpginVTnYRUs8mJempE
+rWuirifsKHzh3VT/pv35rwblHhMdHj2txoZtTHa5MjgeRd3oT+NlbbG6firKCzGC
+Vdw6sz478axa8tgwG65GPa/4lRZCfPYd62pA2HLlfFwjgDC5x1cOU6YRHVdX1VJ0
+QEr++oOFWNi9grbBZjZpNSN2FFpXsvvA3zzaCGfUVZ5Ti4GKsC/RDbmIZFLQrF8v
+1bETSQDWt4F56/njcQMcIOYp0yWBvRKhJUeEHVl3u+tGaMl74f59MZNPmNnY6y2d
+aDIRMYJmcjagYcTSpFar6MziRN2vepQ0kVDxXoytmt05kNOLFkPgcKrqweVP7R5m
+Vy+//w99drx47TwJeii7/GiuTN3FLc2gn5wmoeur3hksm05Kg99gxr8i1jeKGCGt
+WLeA2Kh6deozOsAjyT+4cX4wh7mUO8lOTvRp/WRqqNo3aTdelVxdmKOjtqrukVjL
+LaY1LLvlQE9K4jshcQBidr1NmdCl9zV/IZzP329juu4MvK7uyyzHSxXSG5jt0wu4
+szIOzpgAqhsTasLQMi5Z1cdfy+NfqlVk/vmmSYSaBlmq2QgnX7RJRGViaWFuIEFy
+Y2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgxMi9ib29rd29ybSkgPGZ0cG1h
+c3RlckBkZWJpYW4ub3JnPokCVAQTAQoAPhYhBLi4C1tiPqtq2HdcRbfF19Y1CUf4
+BQJjy9AVAhsDBQkPCZwABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJELfF19Y1
+CUf461gP/1p6/NzPvYsEfUm6zJYTIDKG1/zGeIC9EsOOluJKDgZYiY6ogYUDhRN9
+X83yBMzIQkVF88SOQuT2fZk9KOdOAzdAgc5CB7ivoh/P44HeacxjAb2z8/tJJKW2
+O4B3HpyWR+Yn5aymdLJe+ZFsBdfyU7RPlox42o7zZmf1ZQKQSoBZb7X3Eq3lq442
+ZewjsjsRiijlTODfp6EEIHYhY8vGhU/lyqpwPkGVfl/G+s43j/MAo5b5TBeG2J9W
+tqBYy+aG8cRM2vJoUrMZR0GZvgfbMVun17Bxg7ez4OiYhVblx3lMQv25BnagQTpR
+QgV021xuw40cR9POy6+yBwRUYNziGZi31rrvzTzmFw9cxV7lpgjAMwZJifGZClda
+DBxYUQR3OeAzn09lRhpOdFXpM+MM5GXgRVPmHhtyn60xLMiy5NCRuMtzmP/OaClR
+KL9BjWnOH3NzsjAvc1VtNj0DSVGTtnswDmAQgFZVYYesjpiTNFE7EDTBCT1uYVhI
+Mr3fV1US3VIfKEZlJrbB9FAccWqC/oHT/DUvhjnDhC3wRdChlEbfCxqaiHU++gsN
+66J9r6ZI95PC4w0X3O1hXJeWtm9d8M0SxmAfJ4eBPVOPyFgOI4OFM8fFFie5MeAk
+4BsN0Qyu2hD5g2RCFYIinbfFsSdW2WQVa62uoHfWgwLPwYz+sWjAiQIzBBABCgAd
+FiEEH4mYPgCB/eAY88yWc6Tye43UeTYFAmPL1SwACgkQc6Tye43UeTb0HQ/+Pwzn
+SBBtEV7eLS6qZpS7kosP5aVagUkcTO8UMxZkUqBhm2yW8V885kSic7rZOeWcd0NF
+rVpTGH5LH3hi/a13B1S28v7Wy1AxNdlHJVfH5bRq4aSJmtCNNbbhH92IuzpV/YKc
+y3ueFdQ3ssLWWKBVc8UGa+qrAre5DXmmawwMLlZ16G7OC7YyppN2EzFnf1rC8AV3
+O1UtpZLNq8MkWAk/65UTDbTMS4f6IM57Z9pemBWsxTBKyAKXduKq8zkdnv8B+RPu
+PgyhqJUiJ4RgesuYw4AhKqiO4CYQm5gK9IH+hMN6INUBHOkn26OkyjArZgFw/OS7
+rT3BZinqSloWiBPhAg/4wdg+Yj/mGktJ3Uiu0Z//QVZ6/OWRAAMNCbrwZcADt9pE
+CRS24y8lbNuicfXB7rw+yX8j1mXlily6kVpPtdAJpkE62cHbMYsMKVkUFBQS9Cn1
+Pvo5UqB3i+6Rxx50TKkq5OLf/ZciFw4StZYBRlHzgOiyBZRCi8+ze61gmrzv9Z5a
+d6UCz0sYara6MmvQv1No+O/emaaO0N15bKFuztfmuoXmWSh93ek5ZNC8Kjb4hHkl
+31C1JGPubGsRaoq8YTeVIFEgYIzzfVgofceDy9oVtjcRYikDAbDYVgvSzeVEi05T
+TBRW8Xaj/RxIS99Mxog/6oSND5CzjoJ7DnuT2quJAjMEEAEKAB0WIQQFq5A0DAxe
+eX9EqMglTPO1rsCo8AUCY8vUIQAKCRAlTPO1rsCo8O0DD/9NpnkalWr7thu1rh18
+aItAF3r6/TOR3yhfz7LCRYWnOx4WudV4x/+W1rhFFxB7EvE51FzOjgoGqC2c2pBp
++UR/+YsUKyCe2iTf4z/ZkxGGgpx23Pz9/bMQtQ7YKB1yD7uXu69SaT1gJVOOziFu
+gpV8L7wX11qukTHJU1sMemWgbHVyLJAjXkrDt11KcpvUh1q1CcVMQJdhB6xkPhJB
+RHrY1Dxg6qipXN3d7CD8AaD9p4Rc8MJO9F3D63JkmRvBn0Ecvsnxxgo/Zl0nbZSy
+MODQZA8yevFqrOmyG8o2rIzvM/fjNiiAniIocyt/syK02LCNs3lpvGDqANkvFvYx
+faGG5O5mS6pv6BsRBxzoFZI5z+OXNM8IXw5hgDx577aPbcu6t1tRrWUSr5EfFbN5
+rYqUtECB7o100b4aFXOP6Ly62WNQABBkenT/aeUGI5VVg6J53+M9OAUagqSVuoVB
+a6/AZtD+WN/iBsRc8jwWjWvb+bmvK/fN5wT7A9P+x87I907bQbT/qowDJet5kR0f
++A9F7zy6RXbQ1MCYL9RmUlKX+an3g7s9ZcQssbKfsvONFtieI2xgdL9pLYZKiwJ2
+Q7wF61IaD88Yi5iovtbH8Ewqz5lCSzib8h8JqC5vFAj+KgjhFJXr6dC5DqIp9DvE
+iJzogcrlmV61SWjg2K3EIJ9Z6IkCMwQQAQoAHRYhBKxTDVIPLzJp9emDE6SESQRK
+rVxdBQJjy9SJAAoJEKSESQRKrVxdzGQP/33qzOrxlAOisutKpi038qrhBegZpWIP
+oFE05lSMXQVODVRoqbMU6EaWKEFBbX8H0v+N3h84gIrLRWAaDhdmPviY5vJzYJoq
+Wd67GSvzkWZLE7/nMTni1Nz4uMuPgEz/2uGtoX4N8hpDvtq+39YazTj92t1vGjHL
+3Wuofv8zEl7AkUvvq4qdfwjj/+p4QSzum5xp0/PlNIbHXyGgpR8R1zJzTInrZ78/
+bEubmk5VSiZOlnwVBW7dfg2lHb9EKr1TtQjO62ht/NsIEASTN7sHSDOqG3QMABFZ
+/TFf0VNvQdU7K4sgw9NnxkqP+NhOIxu1S3R/ii/RmbwMWabRSQb5ZpAxxM0Y7uuK
+X92wWmVFOKfKIqdVisWz/hjPREBCDXuwISr5PzUgk9Jd1+iTIHPu/XXKtYDt8oTy
+iX8m/Ea3QtC9r+Il8Zj5AXWVgVjldLPKDVRb8ByhFjuaw5HqovfPiL2ZYcSt7w5Z
+GRb8VD2HAqp3B6+2RzOVRRQrp7TwYhw3YGsNggqDdpjv7i4ViZHD2sUbO/1GISaP
+PfiISqAoySN2TwCnqMFc6Y+iXlmHe5N44O37LzDg/lVRkEul47ifVVfF868xHzWo
+4WGXdZLHq+x0kUNjhrfU3fpbmIAAkrSypo9Pbup6acv7fqrFmLcjv5Ueg9HJiKva
+ar11ZIq1jw6ziQIzBBABCgAdFiEEgOl28UpQikjpyj/pvDciUsoc+WQFAmPL2KMA
+CgkQvDciUsoc+WQ71A/+LtoZSPhQnpVJPq08M8KNShaUeQEUCh4ZKITWAOm5NXUN
+J7833/5plypgmUJUwuXtwkCvVFup+LyZIptbzALDxLkseIY4lau3kEfeT6JvsIS/
+SvgjUBPkX6h0i3Lg0Ggfiv+3Nf0+bsGAS7Ti6I0/6gpeA013M08uUdpcJDSu1OtC
+CdoWD5KvOAAuU06/Q2L37LOColsC6Z5frg3aBaDmScBJc5C7PSZA4hNOimqv4iZQ
+x300KOFH1OhyBRZOd1bW8atQooI/JEhjh1dJdIaOgyjPBXFJ8pYY2Y9Ms0Oa3ppr
+XNa0XCYgEcT5rYZEFup29H1+JFjTcYqecwLUycYGH3MnqRdqriZwiHUK0Ui/MpiP
+lS2Dkb/2Cz6iWMpJSAtvEetCVgSMpGsTlFgKjcsBN60UmvebmW7zajXOmgFU5cHT
+UoGmbNo39iK7fgQH/WcpSCr+bMwrSq6L4AAWIR2Tr6xEbDJQKgh33aEzsgU2OVw+
+qJKQL4XicWki0ul/Q94zltobRA86iqxh7+spfYBYCaCMYB5lIlDFfHLW62cim36Y
+XrBt+p6VyB3JGevXM4up7bnumFc90YDj0dsh6q55+BA0JPWxPPPAWQe5CiLmd7+h
+x5xAJ85+1ztFSz91w4VaQ9jOoEb5IC8uayLyX9GM646umFZCVqrKyHHHjhsh84aJ
+AlUEEAEKAD8WIQT7+r21QbXclVvZum7bFs9bsSUlxAUCY8vtKSEaaHR0cDovL2dw
+Zy5nYW5uZWZmLmRlL3BvbGljeS50eHQACgkQ2xbPW7ElJcS84Q//eh+yOPIQqTF/
+ncxGJpen5pCCMs0dVo9dP9EJ7xc2eSSJ0VhJd9dfpJqTMUqljp/zPeDiRRlhpZjM
+SXYg0EMMt2vbZ9g1S9cSbYU7Alogvp6VleK33hDuSoLabHETG78pSpq2YmGCUn47
+AyW7zdsWV0lM0kiBhJxuWjl8B+pmXzSJFqm63JPB9zHndLxuNay42UnLsDTi7B26
+BNKebQrB5ZioOe/IhpnHoxF8v5sdSIIvYKd/vRE5Za/uYy+2cMmjjLQD6IX/f9yJ
+Dc+sqehW4/DgJgU7cq2lBJM+35AuUDI86MqzG/2BwtKnttX8FKy79FIAMAv6Sf3r
+QoyOcfSjeSe3FF5DD1ISR/Iyfjo/WZ/my59KADqwEMcwd3QpcQwRIXtDE1LUezWQ
+AbWd5caY3d0jZocG4KrDThkokLsl/kMkmbTO8C6oJdVv+g2AD2MHGBRzStDBzNLK
+mcuOq2UtlP03ACl5YcYY6AY7Way5Cz8o99l2frgVHf6THscxjRn3cxH4PXbOeOn+
+GTyk0PCqcyUBs6Rz/tO2NAgyzQlf/6lD8pIoSFHm/TEequeZZKAiGTodIQLS0a8G
+KZpGmVsjtbXSzu78CUdjucsdUbawfXQ4Yy7klV18m9EQjiWrVMBYX8nnkyEvAsfM
+4yl9/yOV8Y9Q/NEe+wZjshO1AikB+1W5Ag0EY8vQFQEQAOUiKRLuENTs8bri0Xm8
+5N1RIG6Lfoc+h7S3vB+hu2QMLMqybyVXLPsMCCj4iSPrMXuhwzu3w+s3xvRzZ01H
+DkYNxUzF00QLTr8F67vyZadysf9gytYFuVJgMRBxRGlke3IxT0LknAIlPX4Dys5P
++6QdOZtkm9H8OEUzGXkkBQGpibYzNGj7IIJOcNci49L4GM/kyznDFnUB8QfHD7pB
+j/m8apGGmUjvwPUOgVtFJR7XufclIHkJCeo4l+pppdeQTg8uZ2elWIqENAZ0Cbj6
+WL+y2oW/DhlmDuFHkgvf/hKlcTtQMGIH22ZNQKjjeqKoVTnj2JF3gQy8xJQ+9nc/
+YZD3XRIDCKtMvs0ZBxwWgoYHY3E8zRhE/yxyquAX/u8BTaIS4O3w5tl1tl6Dv2sI
+NjXrb8FTAcwe4tuo5xtJgSrYk4SdbUIoh2Mgn28mw4IavP0HNM3aFQa/Fl6Y/VkG
+LICor1UTe3+9dvTAHkjw0LbHuq9geUiuDqR5+hZd+SBGTCdimZfTLC0sXa3dTvF8
+NiSxB3yQ//TblgJh4HS37Q4OIMc2UWeZURTlvHYv0fDtIKUCc6hl0Ip3eaGteXgO
+VzrU20CecHJtY2wUhckE4lxMhfU9h1wEDsE8GB6umABhUQt6uFm6SyEBaaapoBeb
+/xyGhJ5YR1+cFSm+2Z2AbwC3ABEBAAGJBHIEGAEKACYWIQS4uAtbYj6rath3XEW3
+xdfWNQlH+AUCY8vQFQIbAgUJDwmcAAJACRC3xdfWNQlH+MF0IAQZAQoAHRYhBEy1
+AZAge0dYo/c6eW7Q57gmQ+ExBQJjy9AVAAoJEG7Q57gmQ+Ex4W4QAMeM6oUrpKYD
+ABPknMOQpT6iQo/sQlfPxVhiAp1XGzKoR+MxzGHn2W4LJ82RCyXLyKbPdW2yJ2tB
++/ZLOO8bwOp6gbSzOSTb1fCBztIINd75dKm+leGvUlr3Ot2HRyvZDnoqb6MDO3VE
+rbnvz3AhtYg4KGMHyDjIvJisjg0ZyAsdSSXEMqHYmUaA+KXL4UbUKQP5K+VdKwqU
+yHLIq38azfEIfwYyv3br9IKtBWyjyiHQ9EqzeoJv/pC/ClcktKYdKyZrwZPiIVBb
+Lg//hkWIU3MSxsvHfcmra/xxfx3ws0aN5Cs+FbeQkEh4Np5MwQqRQSiHY2bKT0Ip
+XHOtOk+h/aCIGmPLIhsnazUbsyy+G/HIgjEkvUYP+7fW6wPewXNJDZjrgfL202Jh
+Gyt5aGJOFLEfYmPSFa1LKXamaNgHKC9FtLGOS/fC4T1QkS94WLtq7Igseea3Cm0c
+iDn3aA6moCNxUcxG235Ck0MQ4J5kiaGn6sfJ63it0J138CWQEjTt9HvKBZ/w7ynb
+rZxK5M4iY+pUjfwLtanKKK+H4HW4gQqVmByaWOntfaRVCWfkAIDISn82W2IpgKRk
+UYn6YwLXO5k/hB+6X+D/BSQF4WKs6C5MSLP8o8uBfnaBTDYPi5Hq2YN+jxsD0kij
++0/KrPy+EyO7pQJVdRT1INW4y2JWNwfIJ5oP/RhXmcjs7rZyFL1JUxJ4giENi4Ku
+MRu0RcZYywO8y08r/ZNKm0FBZBRJ0elYR5Ca0KdFMFDay9H7AYFcxMjylgMA0G2k
+QHFG6En4GY9dZoCXlTEkiB8xChDASlb5xIU9VKGCyojVMLh/ety8a1pAFrj9ygCw
+fWZCI4u6lSoM3ENhokJHKaf722B+9eQGZa9LXq5RwcNJ5o8Qpd8zn6sb6Xs9vGK5
+jw2xjWbGL70PFqEm895xTMS3P+x8ALaZ9Ktnux76eA0a4edmn8hWa1puSMjOe4Hx
+P+YILIGNIELJTYK5+cA/X9IUTOTkeWAzVb8czNjDK/sA3+VZS0fPFbPW4NPs8BMm
+y/uB/s5Xuyj+Ypircp8/LyPic+dmHgFRH6+5J+hNGCAin+at1i9sgC0rJhqcL7Ho
+77HowuIQQppL6PUPcF8CNM4QNcgVW+53DeBeaXNLq10ZrTKL6O0aK4pez+0hsL00
+1KwTBrgaHop5AYuqacWMguD4Qvthqzl/3W5+YdOPMwyzxuniMq04Ns9AHFE9DgxS
+0s1mwd/orTk0/IHZpFQ8/0UsG7pmq/tiRP49LV/G4KuDDJvpbMLs6l1b0weFUE/7
+kE8TE9mZVGXyjW3m/MGDGEOBsT64HZLsduljYFW5tVTbaVKSKMqSLrhCZxSenzgQ
+NlB2T6bKGcYGqL7L
+=UUyy
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-bookworm-security-automatic.asc b/apt/trusted.gpg.d/debian-archive-bookworm-security-automatic.asc
new file mode 100644 (file)
index 0000000..713065d
--- /dev/null
@@ -0,0 +1,186 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGPL0F0BEAC8s6aFGXEkW0xvN5FSZKaM+rp9FX4EhWNfkKi7PaHEpZcjzC6J
+gIwSwJP7o9L/LLtLYr68Df9sv+AktdzhY50T4zBQouEl6ps/ZaaiVoTsH8wLOp7g
+/qDFJ8kH7quUU9Qh6AmirwmEddKmEZTrabg4OjeU/eJEEBJW8/NDc18lrqKC7S62
+hjt+XE7VC+/C/4BLEN0OvNjYfi+2giwVOBAThlAtaryz010g2Nb/zSdjQQCEndQs
+wlS4enVwklleLo76S63H60rxbh2WiNCvRAJMm6OytcXsQO5NPLt0wyk9FvXf9r6B
+eQG8zabfA8u5pai+/a8CYgMijH+k1LmBT2j5hOIFDQmUE05aNTLNYQz6uy+emXJk
+PtIf805D4nFYk1OSN/KZ3xYr+4+FtyfQ5Gj0blSPhsq7fJzoSDA2wTlx4Q6x7abS
+txtsY78/LCqkRbSUHRKZq1t5jQ5laOV0D1MrLzQB2NFhTWDRHe6UrDOx/ea5ORBU
+MH7iW27DOZkMgeyidBzAdgoHArO+n9/OLdf1TvpgPuchEX9mn1eLX5KTco2F/kTu
+nn+Yn8A6LwJtFehE4SWL8+PN1xRp9fv3udDNGHwbOuOIvFcc5wNrDj2nzGAV4rJH
+9xpFTjx1cx8JYXVbuwGqVj0OVNz9jc64CYSpCeKrWBi5DQruo9OSVQn8gQARAQAB
+iQJOBB8BCgA4FiEEBauQNAwMXnl/RKjIJUzzta7AqPAFAmPL0GEXDIABgOl28UpQ
+ikjpyj/pvDciUsoc+WQCBwAACgkQJUzzta7AqPDItxAAnS68NpqYaYvCiFEQIj9Y
+zwg9J0o6I8813GzBGF0M+2QLke6ObfBkNx6kj+Fd03992p/fjhHCqJpV0k4AbTEl
+WVEBjS78PiuIetNTF4lKO6KPyUIPTt2ykYgDmsbrvBieTsTK41RED0wRw+jbzJzB
+Vtc7ZsHSy2Pu4zOnPuD/JmXXds3XXaFDMsJeKW/PbfBWmv5X2xR99nM2Pqjg5PtX
+RCwvB6WsHtlKtp5KLKmpQs+qq63Ixe6Kc2O7qArne0M06wdgezhKVX6rVatBd+TE
+sa0hS7cjI+I9KzQwKbyARfPQC1gYicip1Edp1+89cA/Sv7OUvcUKDYy5nI4sx43q
+rCDj0YFrqBVYeqVzMtwEr50xWWl9UsSJucywVE0PRUznoR01uCBzhSWem33FlAv3
+p0h9LGwGkRxLgP/MmdrVc/d7+uCtrBduRRnY3otHcg9Pg8DIFjfxgGCR7faQGlIl
+ECxDWHfgBLr6oHCiJaTgSVz2D7qg89nziNLuMe5Yhb/Mf2G8oYk12D8+p5GpYViq
+04zKUlah02i6YLPcQE5190w7zWQ0vaYqBYO7Db8vb1hphtmkilxbTXkNoo2uNaWx
+dZWK+KUtwElsYX+wHj9f+ec7Cx2pDjfJaImLt/MY+dwSMdzqWbhusIuz8VAl3sXO
+n5PLmVFTKN1PRf8G60ZYQNGJAk4EHwEKADgWIQQFq5A0DAxeeX9EqMglTPO1rsCo
+8AUCY8vQYRcMgAH7+r21QbXclVvZum7bFs9bsSUlxAIHAAAKCRAlTPO1rsCo8Jic
+D/9i4c89S255kb8fBoKV1o60SnV76iVmCmk+iU6uxSKJ30mMY7icJYK3wusN/OZM
+G/C7aMtj6ROgyG1z0KJdAS8yl6X63s55xI/XIDPhnb9PVf/Dga4dfW7hwq0z5XJq
+TtoZZ81Iy/mDjBe3Lhc7tsESQdXsULfrpiQc/OiCUiLVOZGuceDtfHsYbRD1omtF
+l+JCp0nF7LRhzfKII6IqKDqHVbMRzl0qUi42+W67zY81ont1SzfS28DTb+V2CLtD
+wiBKfBVXBt6junhpPawip9r6OnSUmFaPYPquEmTtkNk8v0txzNifeDMnsPquFT1L
+pY6trIlFtYFuFOMyQiDvuSHLgThvvWhwRICv4VqmAZIcTDSpFNqU5E+Tw24UQgL+
+roHbBwnYIl7z///VIvZKZdz1Jk7mZ6pbubfw4Dd9k66h+cdalhT2sCQrLLbX7nrx
+8BLyGJgqcUZzWa/phhecaiyrtYq4tS4C0pi0ZQ4xewjr45Fmo9B0lDNoiD5a34cR
+ipEq4n07WqMdJrZG9bU5/KFy+qFpshrCi2KkG1HGLOW+pSM4HwvwTxItzm6R4ELL
+BKEpYjDi+a+Y251ybMDM7ylXtwgFV8f9M+1fmmjXrZFk6axBbrh5KwQjQ/LBu9XG
+7Rsw5WBQ6wpM9/nvbzCz7omE3C0Je9KrBeEsW9I4jlspP4kCTgQfAQoAOBYhBAWr
+kDQMDF55f0SoyCVM87WuwKjwBQJjy9BhFwyAAYyCPe0QqoBBY54SEFrOjW4MFKRw
+AgcAAAoJECVM87WuwKjwopcQAIiFcdAnN+EY6vd3ZCO+CktlBlpl8JYDgfVHA6jm
+xCPafLa5Mo6uxQcU0Qzk7W3YBAHAONfT496Z1nPoR5iyqKf/z/TTjSZ8RqLkWnk0
+cBGisr/EDH/cd9qfmlrXfIV6R7rJdlCXkleaStWrL7YCTCYEk6+hnkNL1p1Mrmnk
+Kt3DPxzbM0iatubyGwhKTDJShXhCtTm91xbNHBjtXtMM9/AsPCmvb7nW243eAfqV
+GPFeMfc/WStapJLttIocJ0OMhYbX9bTPFGzFgk77v7x48EW7sYdIPW+/3Hbk7pHO
+C/vqgLc2FlrhthkigcWD9PpBn0M7M+OeELYxTAxbPYj1ZXwRPrdwnb6KeBTBqu1C
+zsqHGLB0LWJQOw38bX0FaOGGwGO97hyevzuNZi7ohRjkF5Liq2G4JZHwyhP2Ydii
+SwYu7Mhm9iMEd/+D/0FymFalmPxFLK2kJHSm7RI0YJMLvLH3b4w4LXxRn/8XA1Gl
+ODeXKLNVBTfglmTZc9o7vLNzTzELcQx22kLeYjXS5j+P1F8Q4ctHbfXIuRJhKZ/v
+th0JET0OIX0IU599Ux69Abv1GSh1FLATB83uKIKI77QlMpVyehhZrOxZcxodKdka
+LWU7QzKoufrsKrTQRw98yFruyeHivCZQb5J6xZPhUQtYbHCerzinUjqpcJMpp8bo
++sSuiQJOBB8BCgA4FiEEBauQNAwMXnl/RKjIJUzzta7AqPAFAmPL0GEXDIABMJkR
+vqlm0GEwUwRXEbTl/xWw/YICBwAACgkQJUzzta7AqPDvcQ/+MyvhivufExXRRIXz
+l9YhJavb+kfppcSju1fmzInkyNvYvprc/OrGt15N3F7zAr6spATBBvlQ1O0B6Fjx
+kEe8Iaugoi4inhfYDyBTP2lwFyOSGQk0QGsOkGYrEQ5D6GnFMYoRqT1u0xnQ5aiH
+cQxEx0uEXqH5f1FPLRebYzyRRj02SOzakZkdQuxhHjRAhQj+qam2Bb4cBLzGiVT1
+bU+pkwTMpWmJNst0+Sy7asTLQYQLptyAsXT+ZB0wj2mrc5WsjXWnTxXRNB2r9YHS
+8nHW1j+9D108vJlU7dIrEi2uGkvDWoRl4clqPUE+Q4C+oVTgqUDivrbZijeCeDPR
+z+1KlvOjoafK8qfskl/4u8hg1ycTD6nccbkSXa0Q2myHtSXerxVWNRCwDc7FvLm1
+R6+L4JTPKbRDyLya6YaqMeTTJboj92gpFWXZ0ddaEF9yOJOwMki6K3QtGbIqoCtw
+sPZpBCpdSCB+U99pPy+lS0XQ5wdn7RZZSKXk+CC2f5wbfiv6mB1nBbvlztWuNlb5
+nOAxAWkUrdCo6q0iiq3ncBolGEFtBaINVxfBpyGKNqi/1qqotaPi5/8mxSgrRvwK
+Dvf5Rwq7CGJ5FaoDakwkK/g6OJs9x1/VPkMu3/RgeK+Dot+bfNIKE5Bj4kT7lFl0
+nW3x+SVe3zIXZzCsJA4N/efV3keJAk4EHwEKADgWIQQFq5A0DAxeeX9EqMglTPO1
+rsCo8AUCY8vQYRcMgAHHT2rJ6TOzBn9S8z+kWexnFbBwXwIHAAAKCRAlTPO1rsCo
+8CYhD/93z6kS0rb+br0gSH0eXbvByDjjOarxcLZ/ok07PkinhJUvbbu9ereMsfUa
+Y1Inm+jznjd3oz7aIgx+oltt4IMWduPMJ2X5LmYRTCpyVPtEZGVdMowW9FFJIfWM
+9OloZkx798GicuDx2qwIAg108xAtPpTFvBJRPYM4n3+I7+Imwl/s7uMdjfUdmvtz
+J3p4bKB9OVXT1nOTCfeqtAMZLXmQtSWBxE6VGZzz+c6l93TaSnlabkPlIJRsqrZg
+kcpd+Wzy0aUEKQaQOSitOTJ/3DU17QrJM1EQ7Mr79jQfkAQXwhzFj0SDee9H2P07
+D/aHENifhbHfltr43lEZtoYZeY06VT+HBut6sWos61hH/4K/2Mr6YexER2DU6wC2
+oUF0Z/BXs/FsJn8bxlEOfz0f7k+W8gDGjvESwsKcnagXUpArsD5EXChTNyKhwxx+
+8MC9WBacGhziGC1I8xEDEuZF1YuINWusWY4h/Vx3fgTwNQmvnahXA5pFIFAHH3EW
+JcX4+Ku0UUpBTz2zn0R1wWLLpmMwgMYFt5GfA86jJCYYnNbKWoC/3SZ5IMyln/QT
+DWY3oXAoYHShs621rDjGI/NCFKIkblacmfLh+A7es/T552VRURFXaDHTDoAoJxmY
+BiTKJkC9QvkHQUckSFEUC1MB9jczWJMOwiiDinuqTdu8j126b7RSRGViaWFuIFNl
+Y3VyaXR5IEFyY2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgxMi9ib29rd29y
+bSkgPGZ0cG1hc3RlckBkZWJpYW4ub3JnPokCVAQTAQoAPhYhBAWrkDQMDF55f0So
+yCVM87WuwKjwBQJjy9BdAhsDBQkPCZwABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheA
+AAoJECVM87WuwKjwT+IP/3oNbYJJuAi576J3aov4+tHleeoDtlhij3CNgkdJvkiv
+6rSiKRNxqVbEi5A3+chJ7h0yHoCGYJdi8ciVEvwdbgduQaBrmdIR+Gt180KBWwQl
+xSAMIb5+wuATnDoKykTiHy45vHsiXTyZ2IaPwAtcVsih42KOE/M2s27IfJZlQfQP
+GDi0Uurzdl8RDQJiRZhNDJDp/MsCaIA8+MY+EIyiRjBf7cGmEBoNiCG+5xIChtD8
+oFbragdcnIY39AfjVnAK136utBnEXUkjl9+hGCPVWOzPlnmBYelNTis2w6lwzbkm
+FVVNXrKJCToOb0coOngxACBIZVHUEzGOYzTjkLjcsSnxoamFCxc1hVg8aikoai+H
+nb/KMSB4/bpx1k9B4GVM8fuizbdKyRGnwi8aCUa2mP+cI43Llc+bpPQpdDNe77xO
+9+Wg+Ysnlno+iwcEunVeTXyQ4GqmjCJZhjmiO/oJVID0qgYwsjEC5F7nmRy1zJTf
+l3oTWM/I68hJCmSxd0kExDEN52fdGhx+42zsWlMdRwE4/+GL3lrqhUzpX/806Iib
+4xP9zx+tKBs9ffmHNl2TlF4e3P2esSKgGaIFMlMomj9IPNeKdAae5mSwHyf7qkXC
+g/1YvHM9LhzOb7GL5NtXc+r+tNSdZreX4xOu2Rzp6f/A4eRtj6c2UdxgtoJ7KaTB
+iQIzBBABCgAdFiEEuLgLW2I+q2rYd1xFt8XX1jUJR/gFAmPL1EYACgkQt8XX1jUJ
+R/gupRAAxnXA+zN9wu9wC7GikElCsVkY9TNk76BsgbZ5aJE2dqWVpB2heplryVUn
+BBuw+2CMpgW3FgAOOt0bBDHkknJPSq7rK4CDUsAlL8A+iXFRXfNgGFwCLdmDtblZ
+1Q20YMobZ/y3X7fdnVs1M0GXG4LsL6Xkd/SjSl3iQRPH9tntATDqBdmr/3lEItk4
+zFtst1nfClQicVdQsBqf9hOF3ByGjrUfL8H/ujMY8KLs6vorSr16Y8v7p3VBAW6v
+QIyBYK67GdUN1sGmb/gXG18ptHu8vaS4NH5CmRyfXUI+b9c33vbQacG1FU+TbE3z
+XJWgT60shlTZlywSlkWWk6K4NVZfz9ECrDa3BSp+iDUqYZcv4N3zsKw7rXONbfXC
+JRdOA+Q5jhepsw49r1opEmDogok27iEk3+Ug7lTucPZVNkA41UWPOeJiKW1xOke/
+D2X8fAHvYkCDzEO+Qnu8MgRHX/DoQp1hgqG5umINCYnSjgK6aRCqATZf1OsWCP/m
+iuK4O4HUJa0mKUKv8OdjROtJZnOQhlJep/OJwnWBGerpQD43ZWYy9tbPE3narpYW
+g/QfY0WOTEFGcBOACEgL9s/5G46KquKBxdP+DY7kaGoLMICb30ESASUaPniUI/Sk
+V9LlTcQy2ttEt1k1sqOCsfby1psikLCNqDal9o5ESeo1+wTRMQmJAjMEEAEKAB0W
+IQQfiZg+AIH94BjzzJZzpPJ7jdR5NgUCY8vUbAAKCRBzpPJ7jdR5NrxJD/4q+MV8
+SZ6BTiPjvolCeY0/3uddWbmc+74VjRukwGXjE6oYU7rcZKWEAM2aTRb5XBUgV7Sr
+7DsrpSrZawjwkG2UTziJFQ1Jy3nQw93QrXuhqdrIYjjKosXliI5vT2EGTMfFKD8s
+XqDppXaPGFdntitZpAT624XkCDkvbe4NOXohX6bfsxRirM200cjREEgyqkp0XsJo
+t8iJVTElyGuOuRlv39V+FUsi8Cd69SGKKmjpdTLcAahrgL0w6Cqo4lCtKuTyczvf
+X4qSQmb9aALL9+MsjDcI+zNhmA+6ma5c8S+X39fjTB3q9w+5ZlbURnR6pru9iDbJ
+z5XPe8OD49K481yddpYOg6RjaQVKrYGnuCn5b62DHIDhrnGB64aBoM7AzQzkBBdY
+HfNjovlAM8NbsoabH0OKkC8wRCVVCZXMby+ilfNVhdUQ5b/3PCpfCv7jkvtPxRCy
+sejp/49ueMGol3gb11BOc8Zzqe483cCbObPKH3rfPZ4JxXSq4DF7CfotwWXSu0W9
+UzJaDDyyIXj0MHiEzt1lXnbpDJTLn3ge9yvId/Y8Foea7M8maYUtqSAH+IKmj3+F
+BUyaa/3iB7/yvb9NT3vEr/Tl83pJUlEc51vovlCjNCxG3v+RVQpDq1H4K0elydiD
+NaVDCtxFpx5/lWRrp9eNEsk9szmpCbsNK2xch4kCMwQQAQoAHRYhBKxTDVIPLzJp
+9emDE6SESQRKrVxdBQJjy9URAAoJEKSESQRKrVxdAKIP+wf3m7nEqieGM+NFXRX7
+hk2c33lCmcI7eiS4E+HBuH7gnIg7XDUnAYuIMScOVNVaVC33enEiVBVaIF0eWmad
+OlyZJFS/WRMilLJWBR6VlkEOh2hIQEaqpTsuXlhnTBrThLzdgoCf4+3wa8fTF3Uj
+x6edHejhxn+Tll2xOv/JM4pOd/iblYxyla7wh+yrO5tsFUcioBHyI15ceS30qA7/
+lc0dA4kY1XQnKASRlkNgGaETFV02hjZjXgg2i2Ksw+534NkoJLZL/Rnf1eRMMqA1
+BBwqjuAR3g11Xe/rjLpXd2zdVI5bK+C+3V8autvZo7upzW50QhQn9P68aCXrZjqE
+2FgVHxa/czYdy/oDaznYRDhmlEC0YX/zqcsYm4A9LQpnGg2GT/avVNAtKSPH1Ap/
+vK2yTOEhMaf54YLuUCUnju0evs5AB2GRpkFM1kHnZxMBnIhUMqbJXZs8TY2fVmOr
+49e9OoynOhKH3wJxQoOf50RuQDh4xTiYpCPPLq890OJTrOiObSvFPMhrHvo//1zo
+49elCVvtZNFk6IwlX2Tlu4OunHicwROs7yWUnEm8ZwE3PInHHi9UbRp6Tzsdd36n
+5mmHfUAK/HdVRfYe0tDMmN5vCdvMNHSd2kU7zrT0tFscCCM5XJiQfOtVm6Rl5jz3
+QdeWAjREHBd83ooNaKiqYnUhiQIzBBABCgAdFiEEgOl28UpQikjpyj/pvDciUsoc
++WQFAmPL2NUACgkQvDciUsoc+WT7iQ//e0HZMpvpdpD7HuLfq1mIjW2rxoYELI0s
+419FO1jmoJmqR3OtsmYA7U62hCMqhP8HCDqc+cDFDBFdzSgcXLeXIPqEzD0OgkTX
+tjY1Q7GthHBszUh8CNbXUWmiDY/mwe31tf7JsvdglJr0lXe2gPo8qKT35ckQyAXE
+mKsVKoBya5owndv0cv4j7UueYwLy2ocuKIMKeQr0FoWxThr+P6/CCwq5teiUCWIZ
+0hzuxYINOFdUsf7Cm332J+WBnvd1qekzbGkcZMURjbQiJ7H3pvdyrFBl0oHlunGq
+fiMgy+2hXShcax/AEzPNEcULzIuwaXypZsHtIkEmQPbIsTMwmeZJmo3eappsGbml
+ZSCgu5vOvyGJTlvgm6ssLisC5Y5QsPMZnCh7k1w97J71fp43tuGSkO0SWodz3tCw
++FGD3Z+INueHmNCMom9taDHv3Tqo1jTBufOzZ3sGXSKPayqTEulvtCB5ZJDw9+6H
+rx6LKcHnziROyALWiBxfgizW8lk8mbgKp5H9oD0cer8n72jiA0LD5hrt8eTlAPCF
+cKwmprr2BSJOGI84RezsfItCr1bMkQ1xLsBIgMYjHRPFdFdICJUsMtyqtBED1y7a
+BCxJZr+0bZkjwgk8G8pKYSPVEmRRe35ulSTWybBSSAFd6bixYUj0nnswLw2Lm1Hj
+NElx+hnv/0mJAlUEEAEKAD8WIQT7+r21QbXclVvZum7bFs9bsSUlxAUCY8vt8iEa
+aHR0cDovL2dwZy5nYW5uZWZmLmRlL3BvbGljeS50eHQACgkQ2xbPW7ElJcRLNBAA
+ulagMImbvWUHayliO89kmXBQdok8/9CutzekHOa6+NyjTapABGemuh+p+Y41T6rs
+S86IJ/Nvu7uGniLqHUjm9jfjCIw4MGq5mI8qRyNQ9W44ntlvlkvtPEyquF23ofoy
+opkBfXZT88omHiOXENwdINLobsMSKjyu1PiIMzQ313fR4GuvCyFdBPwIycuCFbio
+1igiLmeNRO3g0V8leFSEh62KWnx95kxdZbS0Vz3LCvHH39wQSEZ/bUyJPM2OOjlz
+edHD9wbi4rSvOxHBZmXN2uWZBpIHTtYTF/BfrRFRZNcQhKHO6xUkpG+8Bo3cmy4R
+MVt8GPwac/W4qxuKzrONmZnDWO8tgQei9XF/7JeH3FnQtqjCR6aBT4KFcjHaUca+
+CHU5AIGWft8ZMVmJ1dphN3dVmb0G2P4s732xrKS1litCRMnJtulnvZsJCQGow+VW
+1WYDgtoixgD7ymithet2VTmhWyRnQu2+T+XzzqtYC1sBuqFf4n1BMR3JeOqyna/y
+n7C4oV0m+2/feaIBsqGGjDpC6Bn6cGLINdB1PMTwarPLrlXwxVm8w3I7c7sBggYT
+2jxfsYmVAgDpFH1Tcz9Z63b12KqSY8P7dGxpPMLwbHQcAsacTRJm04TWUJBBmKTb
+iFqP7WsDSxiKfqfK10dfXEvcLLzm8jjnT4b9/vi+M6a5Ag0EY8vQXQEQAODS7H4M
+kaix3PJF4A0PzPLtZc1jUdtpdbnuDICQ0urpWRJ2WP5XER1lRs4nGFBnWEvP+49g
+rT6G0x4I98nQgWYlij3qdTWgDcY3tMLlaKiitaaHmdychf5VXXXKjfcFAdWW/8/n
+ZNBBAJZjgyfvOnt3kG2yNuJoZip10tp1ApQhbsSsxOhidDCz4OH0B9VXLQixi2cx
+3uUTbF0bdb/++5/j9Gvx3FEYxZxCU2UP9G/YuBb6k+1cn2MeLq92DlfFZjThyT6Q
+0EzWjWYKhI/yO0hU2wmMya5+qXGffQFsfcLm8DQFDCcMSyxF67g7VruapdpivLlH
+45N3e3HIyHquIzX63l5m6MSOEmJOyrYYgm7798W/XVDkv7zA4+ZMVpQ3s+DvcfTR
+r0ltQ0TqnVe4tUnypzUSlsHFhiotkodaWJyrcGBir8wU5FUK4yEVqiS/lm4kAUtN
+k5EF62QcGAnSezfkH/rIm0zWfD3goNib3kceeYJjzV1uZAHF+HLkLTAvCiRoa5FY
+EKe8f3VYONZLHngywhvnfHvmie4fQZkHQ/X73zWw0m5sS4T7Un3XGQkjfG8C1+je
+MRE7stjCyJJk6+74eA/LRfX3TStNFJeCwPxvScyMQFA/R/Z32L4lz+Xp1fHFTjEs
+7xssfbg7QUuM6pZGa/BrwF1z1tz/SdO9VctrABEBAAGJBHIEGAEKACYWIQQFq5A0
+DAxeeX9EqMglTPO1rsCo8AUCY8vQXQIbAgUJDwmcAAJACRAlTPO1rsCo8MF0IAQZ
+AQoAHRYhBLDKuSZujDkpeYs+7r3m0rkhbseoBQJjy9BdAAoJEL3m0rkhbseoTmMP
+/AhFpk9kkt/kiftUBsEbK8AwVeBIaWvAeL7QM72ZGyZkbsk4gKPPY+jZUjEu+eBt
+HaFKM6qJIwG0DxTpizIps2pLJZtiHU8NNLbX+Ch8nZFvoKUbO5b0TbG3GNoyRjci
+MdIQVRwIfepCQXV1NH315hhZXFZn55a6JH27xbYfuckByAdCQuNF1iNDqDhbdAIm
+rIZCsOFTh71sA3Sq5wJl6IsOzUoT2zGGateC6Y0+LtJ+B9sFx7V8PEeCxYQi1NHK
+xOvLyeStRnCuFxfCZ0t91g58QPKxk8SpwPPG5BMxuSX9Bacuwv2OpiPnIRzHQyI/
+uJ1mjU/FNybhx7rI7RFVTYESFJ7C4H0DmlpUzCxt4bajt3ql5Sqin8IeKZ46f5wA
+FdLX84I2I2WT/mNrsQuiUKKkUGpN3USgC3MLvHXbDb19LECeFIuOo5AJjJVkdmXC
+3zcTU0Thr7fAofhKdL4x/q1hPTeFggxT1TqbuW2hrcxLXQjZm3KWm7zbsotw09Sp
+9j6lI5YHgLuhJhscHTvYANciPMOFmz6wuqjCNvJ5hIyZFzotvjAEJgUvFVyVZr1d
+n6RDaQQ+aKMIUfAiPZa3waRPqyAfa33iVJJ5QL1i5ZuBLhQ1oflLpLRjtPRWdIia
+n375OPSAU2VpI97SL88jVHqLrjBOwgITXbeQirAfnZIrhW4QALtuyXbjWx9Z+cHe
+Hp0CUDJAse6IIPScrf/dtMzzEkxfDWY+OgzSvaiTstRnqLpgiVkm52FlD2AYRgBd
+nXXdJqOEgH6SimM+IpGDdboi/syIrn16PtBbEHvu1ypdhEb4YW39aKnpMhbRL6KI
+bpWTSbX5haX6JqdZByqhL7D3bYZCUZ7xie1ta68u/8J1Zazy6COj9wdUouNnj7I6
+tsaNBGjpoT1RlNL614D9vTxje4ErQwYaMCOs5XcthRaopcIVJwtAwzP/tCLVpSKi
+uVqdEq3RhK8EkvXSm1iEH8qWjlASzdVgMFWB3zx2epH/IDHiJkjBuUUONNRDMUsC
+R4AcZq27p9DkNw37rOrBQUBeYlmFwItE3nIQ7QRVXtlbm8tVLM56/YmMXae/Mwzh
+M9W/TKDtccVwtHs2iFLNka1iXZsN3SmqgfiEEAiwpzrnKvCIS3jsi8GTv9td0erQ
+Q5a7LATQwV0DNwqvT2pDp4PRZLH1HGkFVb+yY/XZG0PwYCmBkZUoQDl6P8f58l9C
+18w52Cp5D5/oqiqtz0NLY+a61uQbfa2oeYDDEK3NGlXBdEAaQqHarkY8Gf44/ea8
+aCsM9iH3DogBJGgIkhs2Face7OmedNkvc7LiRNz/z7Vm62F/mXSBHIMvQ0pwvRiK
+bn5U7DwupeFEycZrqQEKsjwFjLxa
+=QzR4
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-bookworm-stable.asc b/apt/trusted.gpg.d/debian-archive-bookworm-stable.asc
new file mode 100644 (file)
index 0000000..d7a9adf
--- /dev/null
@@ -0,0 +1,10 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEY865UxYJKwYBBAHaRw8BAQdAd7Z0srwuhlB6JKFkcf4HU4SSS/xcRfwEQWzr
+crf6AEq0SURlYmlhbiBTdGFibGUgUmVsZWFzZSBLZXkgKDEyL2Jvb2t3b3JtKSA8
+ZGViaWFuLXJlbGVhc2VAbGlzdHMuZGViaWFuLm9yZz6IlgQTFggAPhYhBE1k/sEZ
+wgKQZ9bnkfjSWFuHg9SBBQJjzrlTAhsDBQkPCZwABQsJCAcCBhUKCQgLAgQWAgMB
+Ah4BAheAAAoJEPjSWFuHg9SBSgwBAP9qpeO5z1s5m4D4z3TcqDo1wez6DNya27QW
+WoG/4oBsAQCEN8Z00DXagPHbwrvsY2t9BCsT+PgnSn9biobwX7bDDg==
+=5NZE
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-bullseye-automatic.asc b/apt/trusted.gpg.d/debian-archive-bullseye-automatic.asc
new file mode 100644 (file)
index 0000000..d27de80
--- /dev/null
@@ -0,0 +1,186 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGAEHQwBEAC7MhpIQlLicwR8tmMH0yFkMIsqIbfudnBCuV043sSSSdUT/XjA
+XKdsdOCpfb6Tfiau1uY9Yb8gWLM8JxmSuaIa1jKlYiRZ5G79D7NOVIcqBrqp3lzV
+HShLEXs4421f0Y4bSMuDcY/cdmRt+S+qlJvqKLwAbyejyi1i1N39UfJtK/OdZfuP
+Njz8VoWPgJff7CaIYYREo4QWzAnuq65gN6DP3q33vh5OcoZgMDR+toEKYyGqhjXI
+YEJU9qYz/wpglyijbFoyS3jn0oCTHpS2NwKc01vBGVZpfR+DVSgDWWQHjlrSpb9E
+7bAxn2RfUZnQ6Sh3qcoihOjyI0RZ9ZYH8uQlur1JSS2n3/RxtCaV6uRtXDB5GuXj
+NfqNsprZVhYYhBcX4z/4oMVim5ABkXwGNQMezrESHGq3oiIeJaBI5Oso2g/D1MIS
+2W5B6NzSTqB4CaGzZ+IY30vvkxhnIG7gr4y76FzcafdJKM1cH/XlFXjnSGQ6UmA0
+E6hpXnjsQWGPL7InpDYHFVl1dH2syHOqHUmEU8CcZayb6hVygnQHh7DlhsrtnrN8
+4qEkuXfitC4Aqaq7lMflGB+ymphxBM+CC4OfiyvW2FDuzQAIWPVRwmKuKxMCRnPm
+Sd+UPkyD0jm6yb1F2Fl8Y5T4lYOJJ9OfOpUz38LEqdVx0BosBn68shCwPwARAQAB
+iQJOBB8BCgA4FiEEH4mYPgCB/eAY88yWc6Tye43UeTYFAmAEHQ8XDIABgOl28UpQ
+ikjpyj/pvDciUsoc+WQCBwAACgkQc6Tye43UeTYUrg/+LEMuHp3zMwvR6zok7CAV
+n6Wy2QNj7uNEvx7S4jmd8oMcjPZqkF5kjNso2iJs+l+6AeluoQq4b4gnCbGlarqB
+Ee0BwKdHKo0eXcOzmx3XoJ7Gt4J+/iIrBANt4cXmvT6kyreq5unj4AkxQDDgeaBX
+Ukkr7B0WtzZpRWyYhrHELlGEEdPSAgnIzmLYNXQT5cUrBwLawtn1IfC4SYpVfehW
++ltr+q7OlV18ggLxjsXTD4EppPGtUn9k8NYzMK6IB6NnDxT2pwCsJZzItxv9TU8m
+VwchJ+NZ+EKCRgK3QfZkxEfXuZuxRdjyZp3ZYuq+1nT/7BRx1m/Skkj8/zrv/aFQ
+iLi9uT3gqAG0PRZBgXbYDHGByTayZayZuW73lBV5dZyEpBEJ55DXgbnDk7rmKPDQ
+itXpVvXEZVDo3xMaxu+XP/M3THz159ll3//8MgUKeQWw0wHYD9/iWSDmeo0i6XT+
+6cQU3khJv7IvoiK5S6slOa2h3RRoNbtIHhtQVGz7Q5RfoVkczOeV4jo9eiJW3Q8V
+2SUhzI8WIIrEjdQJaG/gnDNM8dlO4gnvCfTQVThEtxkYEAWBreo2DfWsKwqi7ZJa
+jMdpPGTIvU+pJwDY6i7zNuoHrkph1sgc8dYraX0VzjtfJYLMv0z+oTfdHkNKQ6s/
+zhCBw9V3a5w4UtIKaSKGUwiJAk4EHwEKADgWIQQfiZg+AIH94BjzzJZzpPJ7jdR5
+NgUCYAQdDxcMgAH7+r21QbXclVvZum7bFs9bsSUlxAIHAAAKCRBzpPJ7jdR5Nmn4
+EACMtvbnCpFKD+MzkF3b5ccFQLk03cC7sPzRipKsR1SoKKXV7Vcps2telPZPx88F
+zjRoj3jBLtsFNELYvpFANFCLO1Nexv9a79sG8vYrhqKDLT6ecgSJDHbRl9DovAjl
+VbAGsHBjbmV4J7o7F6xcXgB4t0DIObe2yU4oiCa+S4ku2p9a5ZPrKMJmbRg8EfwD
+2VVfw8KCycW977JV7MuihXYjjrHugI40h76+rTbKbuZLcTBxMsi1Dfx5rpLVYZgu
+kMU0N9WwBdCC+x6WBQGmOFMDy15f0cuXYTjDuiZExFaSb04e9O6p3wf2vOjfsexF
+IQIy9sXJ7KLfpZoULVzoUuAWgZfKxtH3D4imJ9jeiFKbPomeLpo7vsxfZ9W8UMRf
+FCKUZG5kS6HKC00ThKD8qXCOz66Ypfy6BJvvTAKr32Y8lgQNqqu7DIntjNrmAJXY
+SKlE5h+B/tVD5VdszimE1tEEcgf8lA19C3iqUTIle17w0WvhJgBITE+TP2SUiw4t
+fWYQ55y4oUfJi4lJVck4PuV/ELzwlZmN2A8PSgj7JmivfEQhq+ANGRpnGJ7AvmhA
+OsuPfakHmsiAdeo0EOIPy5hYFxWGZcFI8xX0ywMH9Kh4hS97oZInCeOsBfWGWUrL
+4NWogLYDIsdVLDxlDT+ZPnXzqlbtHhwuoniVpVWXH6sMbokCTgQfAQoAOBYhBB+J
+mD4Agf3gGPPMlnOk8nuN1Hk2BQJgBB0PFwyAAYyCPe0QqoBBY54SEFrOjW4MFKRw
+AgcAAAoJEHOk8nuN1Hk2QmcP/A1IBxQMUaPom/NzStJhOMibGUGgcCx306ioq3By
+gu5L6Tfo5QoaJINj57Nee+0Dy2dHe9FCaMdv+Cl7cGL6egq6VyIhDyYef/edVRXa
+ukzi/dUIW57704lDyudHKBy2KTbzY/WJBNOBXmRG76Q7vTxX4JOYv6whtd5ulyYn
+om2KUlctOJ1sfNXg+D0QWo2XjhTkevdewME4aQEaPuJabAcfcr1LoR3Gnsw+l06h
+BzuUn1kOMO37ocveGzwLshzIee2b0bhCcc2o2SH7R2xxGkAAleSeS3nXsn0qH/R+
+3juQfwKqonmqF/dMx+JhcbIvGi8TfZ0vzhC3YJGqUdK12un0wFF0c0IHR3ZnbkvP
+4Fh+yThFgTxMhR3XiX27+n/ic/C1fm3pN0RnQabUHODlP0VgAVk2fwoa+rjZq+Xq
+iwZe3qqfXDQrB6blF5/K9jyEaph3D9Ug7Z0wVyFJ8BBgN4+b1DaBRFt43vTOOx2u
+VuRDqGjF/LuBAw97kphFK4e8xAkKfUzjygQqZRt8yFr2LvfaFyrBklEqZXDjCs2/
++sZkS0e/EZ4T6yaUM2jPzt6MBM9A65VZE0LtvWTLQuvxpbdrwxDyOfqX9GW0RCAX
+bz08y5h6EqBeBha0s5Mtdy0V4FgFNNTeTUR5GCTi+wWUkwni3aCOBPnEjHwCWYSs
+uBLwiQJOBB8BCgA4FiEEH4mYPgCB/eAY88yWc6Tye43UeTYFAmAEHQ8XDIABMJkR
+vqlm0GEwUwRXEbTl/xWw/YICBwAACgkQc6Tye43UeTY3wQ/+LjebzIjgcLJaFePu
+VICRZdTjtyj0EEWDc3rjbYUhLH/oMMDt5wjvKaRiF5TixJdP+BqbYOaNbC1q1zSX
+e3WKp7rKf3Y23A4ib6qpI8jiAG3vZRyki5yh4Upe3BsTlRHYVd4O4pWzNktv3NYw
+xg0HHv6T7ZMs0oGT+ewQDbVpovWaiaaLgFPtFYrN2qPhi66J+K+QTNJdTpvWUQo1
+m92YRVlG2C7rx3Y1x2do5SM/vhRJ8Di9bMU0ZCXQGLoNedTEq/3OgjqPUUdEtcUw
+f0jO/fPnaEhaqRDjtTteGNx21Iy5adM8otUw4XQmmDe7makdmYTi3LDTlOVkOyMl
+nWQT4k601ySvnSmdRwUT7vOV7pqUnHPTklBwoWO99/N0DF524LW8/IobNuUyX8hk
+Q70krpC7/suT7cq+l8Q45nJ1zTNnYNUdtLktB4MwQchedynsmPjGjADpqgCFF5gC
+yY25RIJ/S2CBObE+z9Kx9s+CAvQyoTYVaQdwXmavybHpPmocXGJCBG0V6JAkJTpJ
+DFNZM4MstcAltUH6JgNZ5YkKvDAzLBFXROvo0Se4xsEiMkhPixXqqtiITiynQIIg
+Lgb9BQB9MxZ1FD1E5xC+ayMuD5W0gXGNQUNflaywJHIGTY66axrIVXPXhi6vhLWO
+8YYIsewgcR/rQDc9kc5SGBvDxs+JAk4EHwEKADgWIQQfiZg+AIH94BjzzJZzpPJ7
+jdR5NgUCYAQdDxcMgAHHT2rJ6TOzBn9S8z+kWexnFbBwXwIHAAAKCRBzpPJ7jdR5
+NhsQEACf8Cwrte2o8ZoUo6GhLasJF0Jkh0d5kC7utqxK3056ykRz4QcHmacWdYzT
+hZoYtsSzM9UudclTgObbRnnGFZz9X+UlEzM/D1wgQ0uDbdaYbMpNtexChRnoYugn
+gzhgcZI9kzWXLSGeRR13TVoqHFTRiDkl69OCxGf002MoSYKAqwUUoaBnb+uAoDFd
+pj+UoFwKqcCiDUcZ00vXtfR62f8i/+kYHjVMMrE9kksk0Q8Q+cj8K2e7znaLD2hJ
+Wre2ctLUX9HON2Xi+Dnw944GtbdVMIZjoTgeTphW+eGr8B3+WHYUoO1MHMb3eezB
+ZSZHKbYLgPLv3qz6dm/VHVBR0MOSJu7y2ljDIb4XAvvam0btK/JeothXWgUr+ou3
+Bjc7YXH+Q4KYgJ1ALs34PmmyTaKmT3lpbI+3qyDcvx4yEGZJLE3hE9fuOwYLvtXC
+c8+wxfLpRdQ7puuFTAL97i1eHGODj/ZZDmUivp1eUzjoRUTDyuvWOMVtC7D2CHai
++yRQVtN6uCinTwCnhlq/+B+MMrlEL92kNEvoVwVkGsogTupTiUy9DySk4b8iyKsy
+thnwN2zCF+GfwjEDetXJnO4kLQGc0TX01TSLp4b9mqGXKKYZyp2tFOJm3+QtD4/1
+4tpGFTZWqfLDzCNXUSXUQFTHUFcJ9guUJp653054YfJAIhl0VrRJRGViaWFuIEFy
+Y2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgxMS9idWxsc2V5ZSkgPGZ0cG1h
+c3RlckBkZWJpYW4ub3JnPokCVAQTAQoAPhYhBB+JmD4Agf3gGPPMlnOk8nuN1Hk2
+BQJgBB0MAhsDBQkPCZwABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEHOk8nuN
+1Hk2o5oQALUciYUFb+EKd0pz5zDYpYTLxyzFk6d1mMVJCejG8ZiEJ5Jv6FVYMvDi
+Gmku0yrIjnKe5vfPXGHOQO7WOBbge2M/VQcmQp/mkOEcvAz+2lF71dPHq7/RadJF
+LmRxnvHhbDANl+lgO4LNWHEJRN7s29IJVBzrfOXAoDgVs4gKjVK5JC4qNA7be+TI
+uQwyCQfWs6tmOpKaF578APfYdeao3kNZTe85ahUm6WrtVEBcQtv4TlxY0X4/5EBS
+lhyNux12fvA/0/s/iB7Of+SFHbj7xZ/Ep4R1BxmX9cBFaNVUD9UQUkJLstMb0KnF
+75PRcohPjGnPN6cpeNwOX3D2zAwn7mGeRxJP3ttppV031HzzI5WBiKT6jCONNuHS
+6uw3yhfTD96OHOwhDG3ikmOh8jO7cqAP0Bdl1TICZ3RIMqMR/iYLFmLLrlqGI3OZ
+IRMMJZe+7C8uFRHN/hX3Y2f41FC7lf+IKfTYL33x2CGzTlW0fQIz/cERkvHTIY+t
+UjOvC518F/8Rq3+MAg0eoa/hQR9v7c4vFBzC7V3Ix8+A1MJq+E5aEqsy2vIBoVbM
+Of5cjUy5q/bCq7HU5v/hr8gzQHArfvIYgkC/AXfWM17G3DR2fsUE+lyc2ReAneMr
+/oqSl3u51ScSAHMeN6/6Le73aZ4yYwhPIS2M/KDf2wNURv/rMc0NiQIzBBABCgAd
+FiEEgNFYI7f9FWH597zd3DDXwjy7q+4FAmAEHtsACgkQ3DDXwjy7q+40iQ//am8n
+YLA4VOAw//lz8CMgk+Uyn5HS2t2aAdMvep5wAVPVGZZb5Wa5eoNh4Rg5GnurVvl2
+N0OXo57vD9vXHhJkooA3p/UaeVMRnilNgSWdphW1l4rRXFWCw6l8frLp0iVq4yOx
+olOWTrWmpCYI+fgRrOknnaiqUS5+TH0a6RJtFJsO0x7wjPobdXhY6vfnhBIzdfnJ
+/oH+EkYbXhtMNtpUT75bywtB12Bj6Y+CPbel7u9yMOwBK7R9t/56rpqF8WwExr9O
+wJkmfgVkScy8SOBTv0Wv+jG9JSGZKVNqCATYnKga/QgOMuDmrIbIe+OMjgRhiSfc
+zXBVWQ7Xd9DMzh5682+DEiK7cawBmpoGnJNkERR0P3uqn8vn+TYkEHpvNHQ0kISt
+/9IIiI9BOX3aA26xaD3RMSldsCzq2n64Y3THwXX2hTT8FCYLSAlrdlaqVajsgAsJ
+HimcbDnPVmYfq2YlBeEiRbdeeZijKO/OKmgKtSble3/7Z8JylyCIGsZzYu65ZYr3
+v5QfSRSmJYPsG/MvI1dMpiohBs9o4/JYrph6/ulgZVMaMqyWnAv7+MsBSApXPRi0
+13k1oInnO+toUvFWh2NdoARKzCQnVf/xozkhSvyAbVTM58jTZQjsAVIOUAKixeRV
+7xR99VUoJYDrZKSewoE+cHkXWYPTf081wPBDdhWJAjMEEAEKAB0WIQReYbIXJl2p
+gHojxf9N+rJwyqlt+gUCYAQfFwAKCRBN+rJwyqlt+oVSD/9nQjSynGhzlBF0817m
+JNRH3m1eXEeWc5vbuEkMHTjphctidfhEgmC5Ay/DvJlN+HNhsLoYZb9It5vyhkPE
+AM46UroQ4mcx9Sj/IuJNrUF7UBLGx9TWDx+7UQIA7/rCDnSdMfHkX1l/1KD8t7yi
+sTXRiwWvIn6pEwlZQ6fUOgzy2emZU7l1UlWQI/kWFb2gmkgAb+/jStbjsIJIRaQC
+WTvkasgU56vCu5oqb2/b2gUSX0MBTIboszEZxnZe1z15oX/RD/EU3zPr0w4wmN7v
+dLBtqbFxbnuVhDAPJH4zRgPdTB9E/n0PeFE37OxqOlC4eQJMKrFr4yw1nn5O5HMe
+nkRHnXWQHwMDSE8ZEQ5OB3BRC8J6eUz5hk0oUNepcag0h2DUDsvSes/Ogf0azipd
+P3h2UCNrNqe6RXKO14JmR9028Lpps2LxOncjpoPKWw74zD10Ts3iO1IuCOc96Miv
+Qtwbnu5pQhq/LyNKmXsIkMVv7oW0Ca/EuUl73UVXptwLyJJTEtFJgXibmY9NQ9aV
+Ii7mJOLopR8bqYP3Esl8Uqtk/j2UsV+Tl/V4a2KgbpR0b4cmfGJA7SyrtBWRtVDS
+KfzSvrZkvC9eAQdizTlcGM32r5jesNnui/HyBcRjX360gWzzMeOdEcHqRQ27qimg
+Qk+PhMXfJ9thcG09Tri1Zt8rKIkCMwQQAQoAHRYhBKxTDVIPLzJp9emDE6SESQRK
+rVxdBQJgBB/dAAoJEKSESQRKrVxd1WEQAKIOigIdl5WR/YqQrn7u8nXdU0ghMPNz
+9xTQvbIQC6f+A5Qk1Lwu6mD3keKEKu/aQ6wN1DSu86xAKwnW1ZRzcHJd1HVjpjNI
+Q2j53KmPAtMjQSlzsUz1yfp1wSai4BGa9LbobIbC3nbtndiUmbYVtvn4fGa6k2Qh
+tti+TzSy3wQ3lPEe3aVD+3BWr9F0kOO5f2N2Os6iaF4ZFffn99D5qry1K0sg3IBF
+fLryUVkOUokHV5W5TaKfpvM71iJU/Sua6E0XvDiD6pXksqOVG3kQNqa7AEESzPHm
+2+X1XydUxFkXK41F/8z+mNOy1z5wYz3QfL9gp76IV48jjYNaIFCkq1jQOlOo7YDa
+EvlKJPJ/0/eejI6mLJO/7irqYaSgYlCTe60SHLMjmx4rmYi0YEdgyEk9tnqnKvws
+SYdPZdaC8Kl3VSM2lg7B6AFjD4NCvrBcbKgZBNx/NrUg5i88lHFmK3ErGyBSFNoL
+VbEsaEzUm2Wml/S58XOlxB7vKSnVL26WfedqF/W/6jihABb0EN6I8Hraa7/V59dV
+iKa1EmvEz64/C1J2nAb7cnNAPPnkdgwqrsBMcP6GXPpwOSA9U1tcHSFJfxuMuAY6
+nWns2e3cC6FpTHR9Tnnp+wpv53Nd0CYdo6jYngPPaPRvQSZo2PcYNF54lq8UaowZ
+vm+emPRqJ59AiQIzBBABCgAdFiEEgOl28UpQikjpyj/pvDciUsoc+WQFAmAEIpMA
+CgkQvDciUsoc+WQW0g//TDVm35jty3V7Dmql9P2ioDIbsTGb1RTGdIr1p4gLZTyA
+9jbJyVpEjyUwWHa/DbAWAOLYkuPjujFH80r439kKYvcbwNcA6I3P8nvdYIkgpxT6
+AyF8YA2lLWB6MWQy93Bm0R2fk7J7O1I7/uvBLjs3pbklhSyQsDSaPD9VE5jJ9zYw
+FdYkSEqcOrC5XKqt9pp9e1y+QVTWViXvOch9l5NanA7fMEpO56xue0EYRnXcxfov
+o0/unBuUcFJ7zwYmFTAicKlBWmErRcV3n8DcTbTF51ZyMHtkq30K/ZQb/f9LVSN8
+1Om9gspAzRpUP/XB3IY6cnbpbIcxdgAphm8O8bhMjCztjfPK9zcwhmzAprW6f5S+
+vfl5ndGBhNkAcFdEJsODVVPYQNR+nxfUjfyZTl3/lEEpdhagkjkw2DPStpStGKDW
+wNnmGs1RMNOKCZtnKI1s+oeBFxxnUFQ+/DYcjWz+t27QIAZNx2vGbND0JIjGebf2
+WFFpDXjqF7xaa0mRfCUtu7jyuNAAj3eg+fARserqRugyoHsu2QlGI24HGyHQO02e
+ne6l7+n5Y3M3FtgsLRjPlKUP8gUO9xW3Bpi1+pnaSzbM85pK6dooH7tj6OF9pNXc
+SMf1Fq0l1Fw/gEt+H3bX51i2eJkQfGcx3Fr+90ibVYsStFh/uXs6bH40M5q8kxyJ
+AlUEEgEKAD8WIQT7+r21QbXclVvZum7bFs9bsSUlxAUCYAQyziEaaHR0cDovL2dw
+Zy5nYW5uZWZmLmRlL3BvbGljeS50eHQACgkQ2xbPW7ElJcSndxAAiZFxjtM3OalP
+J/VI8yF16lNHrHR1KMpSt9azMRMRvEx2B1LkNCxCFL+ZiIY4SgXdG8pt4nRNRUwO
+h+mbPIxjTi6BU6jJbNEV/x0aZHMvthPXqzY5T3ZcfYxvvAm2PiOE/T37Vj5OAlkm
+uEhBi9TA88wpjFiMzNvkhXxnjiezviAStsjADjqxJ8cipX4cTcoqt9A+ftdEp8Hk
+qMWewMBLkRWizDFW7uXCFXGcLvi6FnXAOvi4CU6g/VUkDhExrqA0rRNXdmTJRNDC
+WEGH9i/2vafMHziEpBWDCLESSxpjt2X0YAEWr/NSWRfiygVkl23mC+Cgs8N5QUUb
+/w9BeO0kagaelCak28aHvfJRsdD7qObDlQdhWRWqXZlemEcHGyaMsVsZRDArPxe3
+y6OSeyR3c/cET/KalAsYhC7LL5YSjeVL8D7fgSpMahnmB09nmMztWFQ0XXMnvhBR
+ZZfwM+GDeIxNhVUb+R1hgCibc/aMLZvzZXqF/urupWVAycVzqTD3vi5zrYFEZ0C6
+q+YzcHENHN0t2HyNlGFobiTmv0DQiuAu3Wcpor3zFAwaHIbZiq6jhesJOq4vAjVT
+dVoYY/NhwSSe2EdaFuaDTh1CNnk0tpAKP/SxQ+3Odn7xQZ0wlKl4vFl3EiFv+dD+
+q0M2KlEjaoj/d8kunKPnO+A/kS1ene65Ag0EYAQdDAEQALxyG4hn47Yqk8SKE03a
+vuNFlLP0NFWg149k7csVIDRZNygicf+6RSCZHSr6ep3gYIX/f8xsmqSyckznIerA
+gCRmr5TDqs7SsGOIyMetOHol+soiJqggunmX6clkVFT2KAOecq/3A6uw4M3JNlvG
+XeSRtsMlSHTdS0wK2m3n++VVr9tZ//NFlmnSnnAOAazomM3Od74Ne6fD9xRfFF9O
+l4NS29oXqwJS5NpsCU0nfoxEEADFRVBmLiGFTbMN0LtBLzciznTsGvKsZNdBAafE
+aNgW6RFYY+eTdlgQbdILwXuU7TE+n+AUhVaWsV0ldCjNlFdUhTde1ldTBfycpBF9
+8hzdV1KguE3vpJW6xmPSrXgtHrBzFHMpMEBP59J5cRsoD4kJU7IdhGGnKqZGVmoX
+XZOqYDXs8iJ74PKye5jk96ooNHO6etX0lLrb7HMVJIRXkPiv3Oj04QDEZcxrxnqZ
+0Su2m8S5/SLK37W4Rnp/KTWaifUPI0xyEEfssz/i/fdXta+XvoaMSH4zHzaXQnVY
+QDoN9CH312k0N+PYSDlxSVMinBn2Lh1JTghRDl+Ww8GplcOSoO8k8hRPeqbXMnCw
+fpXrU7GOPkMv7K98pAZx47bohgVNA+SGY83eUFlmQ7MdhIiWu1deLJT8jQoFz2aN
+eW3DxgN1Ltqxh8e9ABDvYTdNABEBAAGJBHIEGAEKACYWIQQfiZg+AIH94BjzzJZz
+pPJ7jdR5NgUCYAQdDAIbAgUJDwmcAAJACRBzpPJ7jdR5NsF0IAQZAQoAHRYhBKcj
+aIbzzMqtFIon+A6YQE04b6HZBQJgBB0MAAoJEA6YQE04b6HZbYQQALP5Em7+PaMd
+nhtyeGEX7pISquoZOuBA4RV5oWkJtCjYjtWq85/dDRoo17EzIkxhJCUypnELwavd
+PVOrKmDNv36mrdtdkOe8xsm+ITN4w0EbMif+SByvXtTEv0u9CBYfeq4EKCig1YcC
+glUPaTJsmSLZUv/k+d+dQht9FQaEUk9ZSYjpYdU1gZOsfzVY3FMwLpUlGtg6JoQM
+ObpxsW9uNSYUbEDl8mFfc1odz+lFw3mhU7Nov8IW1QNMrg8Yu6hY4yQkxw8A7bs+
+JBz8XKVQXMP/0Zb5NROuISI/btPDkmQfU6ruD91cPVXXGy9PluV5+E9g7Cs/RlaM
+8TmAp0NAWKQixnPHoOwfRmuqYTc0WWuyZSaQdE5z0nPKB9Wc9nGUdZhXooqHADrm
+6TXFk/4w2xEkKKneGXHHBCaKhPjQRpwcKm6wVJ0gSmr9X9FLCjrHu+K5Fry5UkX+
+pWVsbdL2gIyKK5FtNx0ujuAlZxE94PStQUC74rZ2s/ac6QqbD3FKEW1jcVe1KPMH
+q/6+JzaSN7isIi+s6jsXg7K/sYMh5J0h6heMpZhoIuMGqQ93doyA9rRa47wLB4g2
+h1c2hx2uLK1VS4SJ9+0yvkNoNJSYGzFoMc0UnBVqP1p03sSBxwd6F9cs3bvOE3jX
+XslUBcmyzFP971eKI5Kc7MwbfbM4kFoWWOAP/27m7zRuZSrAkFD2UCabCUWbEQwp
+4vafcYjsdJFuennaLhqybQe41P5IXvcJwvDIjzJXfgrq3IyBrWNI+fZzCo3I7XeW
+Ldm3McXP0Q9X/UmMHuZ0aBqc26OHvFH5f2od/hwc3G9sB66sB4/rfWBOHMWJHTkN
+nzNMljTK7kPC9YT7n4DYVrdPTacvXrh2MkHGz1hEgznlW3VzF1Mk4qYBkWeIpcdX
+wHDfHXDYWIVXWtrEiqBMjLDH8Bpx5nee98KvFQpTzMbU9lE1rInSskw7+iGRONEB
+XcGs3fRJB8NvALsYMp0MU7hx3wQWmX9q58mb4qXvypFn+IqTOuN1AVCqSVEDn+gc
+dehCG8vkjOIKMANfKEqRrbQmY7CJtI4BxkJwtUCTVPaRDVdW3RTv4K8K8KAM+hVz
+7rnFYTONiO51yPCCuVHSQ9ivZv5GohbyDO5nNTve1no6Fzl5l/CSpb5XCvOcGMvg
+MWP22nlLGoSNG4g3TWlUabxrXmPEANG7D+qEhhuebeFC6OpX2i1JgYEpUgoTFtFC
+96299K38JSWRK/x0FPigzxvUkxVt7rG3APIPJlYQhYRq2rmDA4zRQL/ZDtFF9+QH
+IIvMDlYYZCLKlxoEjYlCusJLiwHiO5uiHDiLRA1vu1qeJVJ8o435g/gRLJALZojZ
+1UKhwK2BVhqTmCWb
+=svWP
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-bullseye-security-automatic.asc b/apt/trusted.gpg.d/debian-archive-bullseye-security-automatic.asc
new file mode 100644 (file)
index 0000000..e09eef4
--- /dev/null
@@ -0,0 +1,186 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGAEHLABEACob9fgQVEt9lqNWKPyzMdenmg+sIE+1ZXwUn6QzJhGedE42FY6
+ov6NAzYh08DOPYZsxpU7C5vX9nuM2Fp1tKgGXIfQZmc6EpLsYmPsKpAFOHfKs1SL
+bcwgc9pgLvJ6ZvUS/c2T2SHxMStHyFlJbMkLd8B/DQSx8XaIvjlHWiTiLv/+UuAf
+d4yQeatMyPvhnVLuUf5Utgdvl5Twwm47IxUMX9426VKg19/22uJyWN0kfI0uLy7h
+g1cHArR5JOoiPRf1xR4ZF3zgu4gwCDD1Puv8iJuWM2U0DQDPKOuH2DdasezHiGCV
+rQ9LWijTZvpyT/fg1qaY3w/1gx8QK6TpsFL3Fwxopx2VrD7e2+FX3mmxfqhJGlAA
+fG0gOpie6t2WH6dfcubWCt8hjY2gN+NT24gotDqk6Uz3TgLDG439+A6Tazji2shv
+Qp74iTpVjyiBsdjF8ZbLBX1mGFLjniuZxuzOk/skUaInZ6g4SGw2qy8f0uBbdPxe
+IuNe8QLxEotXt5YCh265BDp6QpnHh5qfFc3IqwBA0hjkgvuzH+uNm1lA2dlKscPs
+qntw2c2epN4w/H8VZYlv80KBEHx7vaneoVMxQkYDTNA2pJJJvWO1fKnIlpPMu4HW
+eAeiFOYnju5/Vdz4JuBmOQ9ATiHfZDBuC35IWzU1r/Tq6LoPIqKm13xJawARAQAB
+iQJOBB8BCgA4FiEErFMNUg8vMmn16YMTpIRJBEqtXF0FAmAEHLUXDIABgOl28UpQ
+ikjpyj/pvDciUsoc+WQCBwAACgkQpIRJBEqtXF1npA//RSkQvkVQqOtQdoZliUKF
+R2w1RZrH7BXRMDudrjOcJ44GNuhrwPndnDYXEmEmIKKXamT30BwDiD9sn4Xmwr6r
+8YkO0lE9vvL6vvP385P7mdDmd0uqH9jm8fxQelOwuf/8IAFohthBi6ajfsPUTgGn
+cGXqAUvExlShhXZK/rq+3lWFy+hhyxKC0nrEMGskiATUY2HyQoiy47BheAWQs5Is
+Qfc43QS/C0ySgrNsm8KENlUcAAntRdutL1JV8ORlpgRUvGkafT5vKN5tT07BpPh6
+ry3cwSEpMaQQmq5CT57hf92k5A2idEh/u1YDNGnIrRRTLIrRwRucSoVfgrxpHbFg
+q9p5bL6RkjpIm1L5ytS6gFF0Bt+/QuIt82MCfTjCykavI4YfO6qkewA/4aoEecJ0
+z0QAflg8sJcpEFTiRtnMTRvFqfjYQcMTgZDBS7zaFgsZbqc/coOf/uozBzBqob8v
+PBDeiSC4Hp/a/Gy5vw+ADJgQ5OAwcp68KdBN5EmSU1S+xqyKEtKAr3CKin/+e0kq
+yV+2jaR+jBcPveZK89MEpEMxIsGIeSZh4OYkc7bS7iPO+Euafmek5uSbhlpejUBy
+2gOAj+W7HK2mpte8rWWEueVaAOj+bFd5VNgt2s7LS3D6jy3nzp4eAl9PI+K4Yaiy
+y4P2GVIyRESj2n4OlBdVMoyJAk4EHwEKADgWIQSsUw1SDy8yafXpgxOkhEkESq1c
+XQUCYAQctRcMgAH7+r21QbXclVvZum7bFs9bsSUlxAIHAAAKCRCkhEkESq1cXRDG
+D/0bkA471LRZzYURNP3oAITwEy/6NKcVY3EAPe6gQVMtOI03qQU8nSLG50yNHlLE
+TfN7zDFOWUAbgNqnss7fP3HUsrZ/XUbuathnkTQyVcmQfGYOjTXQI21YsUmwXUsb
+m8AHCKToxBpIe+Z0nSlqjJJg60GK0d2g19IgE4kji4575BUCFDUypkYNh5v6/0zZ
+4vriomRfeHmZ9ne+XkQ0kujjpvpy6LIhb7a3ckC/X5QrjGspyPeQN8oYfZZrvyo5
+JmbOI7XgiCmNTGIJP7C0l0UEMufkmCvoetbhlj6pUWJBsCHGbZgVYuD8hWmLoAUz
+p5EjWjMVERpHncI3TPevlwqZczUoDYsIKGMqrowzZj88PdWHWlyq6dvXTMlCUufF
+ZzPDsCjC6vPxhKdwUq0Nj3oV4HXfEHydC3XHmaFv3oglLGSqQ9VuCnzvpNnH0MRI
+FxBKFUR5J8rBjNXDNN3UtXkf927e/l7JyYIJ5XaHUzlTK53FEZRPeeJckyEd6NIr
+rm/BC73/3mMuAQZ4033PeY3qD+uZNWp8Epfs6idRJstkGzK8tlOyfT3L/MkcBYXB
+VEiyH7MUy2SbEjTgC40FtrmGP0YpmZ4MPj7pUymFps/eLRQBACnHum12k2fxxbyO
+80DWge8oMRHQMBr+TnFgGV18HmjYcq14LhchnhYC1eE0IokCTgQfAQoAOBYhBKxT
+DVIPLzJp9emDE6SESQRKrVxdBQJgBBy1FwyAAYyCPe0QqoBBY54SEFrOjW4MFKRw
+AgcAAAoJEKSESQRKrVxdfBUP/RAFKP+TbfOLzFeK9oNDABJIztB1xXXoqMyPUoLq
+qv1AEdgtu1qvvkPiaqBLYCHmA/sm7A9+p4lxnlYC38ahxMJhcZ/QXhaQaEOU336W
+fsNcu4Ir/4ST3hUwsFtxluSEd89/IfFiIs53ZpTtrH88nxJKoXa+U84WT6xP9OHW
+5nvvH5bLveQCpDZCkW/Q2RkbHMnlPaXHAe7nLS8S2Lgy4St3ldVZzKDC/zhBVnWa
+UPuFGmDQnImzwpklFnAXFYTRJ6CX2nDw02Vu20NA+V3b64V0BIdgb0Ylkit5R2hN
+5gmXUCXdftzv302szwhMF47NqPZ4T14kSwLh7LtDiYioDJxmnYvG1hxCu/cA1UeD
+xtTxA6tksz+QM8g+bN8ULTDfoNUX2ZFTyk+eF+J5calR6A06mxmHGOfc/dbEy4r+
+ztmSTnrfaPhCiHSBvCYtU7Q7GCa5EKVw9FtUJhY7oNrr15AQFrK5EJN3nIxZxHQD
+ocAv7e77jBGzUsh3r0DVOJlHX7Vjh3VcmgEh5P0vb3vZGFOgSdL9mZ/kuZAdJv8z
+JlSlShBT+P0zTicl7EGzLSx/sZtGi98TrOIqrqgBEPIJn3QokiIxVSeGfQtz9nrv
+kV7uvUMe5ABRu6mxNzc6JHtA7VZNMLFhp5imBKneMq5qksmTXkpb9bw7IoEPB1dd
+pBFXiQJOBB8BCgA4FiEErFMNUg8vMmn16YMTpIRJBEqtXF0FAmAEHLUXDIABMJkR
+vqlm0GEwUwRXEbTl/xWw/YICBwAACgkQpIRJBEqtXF2LAQ//dC9eL4nDDmW2YRZE
+xS5cgbMCYTeGkCUrMcL75px8HaNASxAWyUGxouT6XbiyCvIZRmyAEsLYOm1txIVy
+ddnHvH7v9HwRh08ystodyXqXTPnluHppVelQPIG071LLpyM1VM8qwrT3twdP7zXH
+WRzPwbUO2C8U9Fu6wiZCZb4Zcooldqj79487XKjPKws7f3gdkVYR7U3rwrfd0By3
+QSMlyh8aWe3YehU/zZ6MdxFIrAkHF0a9mrDRINy6BOtEc0ThBk5n/q8f7zxqf3No
+w9M8luok+eoVjXcAjrqHIY7rZ3TbCzV9e5OFoGHlsL1WieqxpZMmbS0UN2HGTyB/
+MpAJkYh1cB1nLNVOUnlOwjdM0PoKpdxtfUK3mtOuoB0TTCWwhi1FBI6oDYvbuMH4
+HOuvFqhGMiYmXC6Ln/eCVimWsnd0PsvrfomvJEZ2lFZzKw8QDOT4Z8xnopcVwuMq
++JbAyVRCsXpqloybMntB4SRQ/JwMf9+evnVh7hQWg6B32FhAjoOBRJTX6DxXYB8n
+qDVTh1iRUP3jO75rOiiYzgsfjDcDVO8+a4Cd8lySNvjMvpyKkjNs9pymkuTJwW1i
+WteZw71pdjRIUSd3o/7zOX08+saPakU/FT5E9xYANR4ZxR+iSHckgYJbiVYvrlE6
+LyZ7Ycty/fhhnLJ/92sDCj6wHkyJAk4EHwEKADgWIQSsUw1SDy8yafXpgxOkhEkE
+Sq1cXQUCYAQctRcMgAHHT2rJ6TOzBn9S8z+kWexnFbBwXwIHAAAKCRCkhEkESq1c
+XaYeD/4mxXBxPtjNaet+/3FvwO8h4G6nUuN5PqciXdeOpXKJWX+Rb4MZ0GhUxpie
+vAW0JCZHzqFKTUfAEWuhQOYkTFAxINA6G48bdFtyDmAYiRGrGKglPcYWKEF9EjDf
+rDhL0a5Adbg6ICtA21e8Y/VVSkl5uHFsjwPgjWmYKyvSw45sUT99Iv8JztkbbJVV
+oPSq55rXFasiDSN6RdsDX10ZNBA6ci6uSq3low3bKaNjkTHHrahat47MGh9YdCdm
+HvWPI44FlvJNGb9UGFG3I3pKSxQbntS2Vb6WGeXrA1hCMksnApoWIkBHytTBOSUn
+owrCXh2aY+w2PxWZGs6RJTsX/41rpWyS9LmOEf+rtes6vPk9D3mGbkv/puRZli2R
+lPwqsSi4nHegb7ajtbLuOFUHXGi8LSFVYvD/8YxrS02pwsrXlub6v/HffyFMg4rX
+zKsPaWv+Q54seXjIw1K1kaNdPTDC3sTuKKr8zzumDGrWYxOLmtzOwBy4XiQ0RJ9N
+lsJlNBcyY7P6cSX1pJumrTZMD5cmOCHf+qYHRkWIjfdgB20kx/vBgutDpP8AQ5dA
+8kt1RjCGCRLfU9UEOytT8Hf4Kp7SK83Oi9E6Auex8vMMSczPGrWSkmeUxPJxuE4+
+5KYTRkcJMl4WKEmQAae0ni0WskXeO/3YujWC7n3ho6+UNoyLXLRSRGViaWFuIFNl
+Y3VyaXR5IEFyY2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgxMS9idWxsc2V5
+ZSkgPGZ0cG1hc3RlckBkZWJpYW4ub3JnPokCVAQTAQoAPhYhBKxTDVIPLzJp9emD
+E6SESQRKrVxdBQJgBBywAhsDBQkPCZwABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheA
+AAoJEKSESQRKrVxdiXQP/383ukp2BKlwoMBJacl3CV6wB2iui8BA19MOmlxQd3f/
+V7/3sQBf+4J8H+SUFjJS4x3xBCOGn8u4k08BLTDEMr0ec8edEmhR2v/eMTzU0R2t
+5N7VWnapPf0H6vQbR3njwwmf7Xh6V+UiLUQIgb2ORq+35rg+I2pDgPUfKv++4jTz
+i+V3Xupb2ZB9iWPC1uRCmEOzpXb9DSDzANHnw2QbJ8a2KGMD3DHTuxV2uprQA01L
+IvRQrPQw7j6uDrIGjujwxMS8ut0mi7nDohiCgNwvujuzH9YeL40xLBqmJrB4UnHV
+2ZT4uQKH07jOs/N38+BH1Bl4qtSgyGmbUkN+P6MP73CWWHtWsJG2yG4WfRHteNkz
+Wi4MqBTQJlQm1l1/JdvbRdw7NIvbDSAYbVy7dhHmWFiR70FY6xHmlmUWA3QyrdP6
+Fu6DvxZjxCPCui3Mp2qzt18Zb0Ktz22tw2Gip1TI5bfqK2e5NcUWylNfsoo7J4i+
+MK1/zXbKjGNkB8WiNHpc2VZ64njshuBWxuL4oibgUTi2aAD4rNVRfRtchq7ZdGnz
+HqB9FyflAohS03npF2Va4tjx+mzRi7b/QekpdG6gREu5r+29m5togJKG28821Pid
+DZdH+dd8cotFlNgBMBu/zbOuuk/jPZb9GBLafC/jsR4hkIwHRh2mr+pnrFWxYkfa
+iQIzBBABCgAdFiEEgNFYI7f9FWH597zd3DDXwjy7q+4FAmAEHvEACgkQ3DDXwjy7
+q+7vFRAAoFGxubvIG1tmdrL3u6bzVs4DaCd6yomZru3EgZB0oJheNH1Howqai7LW
+kff4qzDbaz4CGFWXup5aXya2IBbX8CESUDI444aHC185bQfWITqFd84Dhj2isf8G
+6GwxwrbBQcG3LoVDepArzyBidmeB4QtpaE+lWX5TzLwzUEpFcxzvlsfTDtwiWe7j
+huZ+dWLbva3xRHoeXRgDrPVakwZOJ2cvTatgfPJt1EoEGmYkOlL26luFVtaY7vAO
+aJQxraqAyiOMbefEgKQmbvbwKc6lF4IQWyZoKillzofdlrKHAjo7jsranOCy4NiZ
+z6jXsWc9WoBQBXu0uidVmSTwOum8LQGDo8v+e+2A1yMAz6UIFBwNw3FFwwZNsscw
+Zfjo1EZQt0xcL5B0Ufr5pibclfVnBFUPt8c1yxjnULQKL4fvJgk07Tk1hqlTwq/q
+pzgDkJJPWK8j7h0RB4qfsQW+hF94QZJtEQy9pL1UjNj6k3ngjB/OXqc+cV7p4wRP
+tiqp8BqQPJLsnvbdcS1SUDdML9YafU3J3vj8yRtWqkcQ1gFNCaynzEwZc39IuRwe
+SbpYkfucj70m+9BXMO/wXdgh1GjBmavciFCTefEEHdpprAnMdy27Ps0r0Xidv6wv
+X9XX2cZbISj51y59bM1+NKYmOzNthFl7VE9SxcwrmL4s5HsmExWJAjMEEAEKAB0W
+IQQfiZg+AIH94BjzzJZzpPJ7jdR5NgUCYAQfrgAKCRBzpPJ7jdR5NrkrD/9aw4QP
+W2rnetBXRacMQ1VC9GKwZRJgW/5BvpWhtgEWnekxB9KLMmeDJIau/E86hhl4rnt8
+cPZbtiZEAi/pl8nRV3r6aL9M2Umv/7wxbkX7mdLJCYUuyJa5lHd6uEDV6t2FCSC6
+wHV4DAnKfodIFgwS+Vq5l6+v2Y/1k+2d/oplTRE/3xW4Ae4D5hNE4MGLUGrb+PgB
+laxLTf560zDyxyy77LjPUbm/a7Ud6cpMCI2nF7kZm9l6IU0lMsxTn+tFLgcxn24Q
+0LASHUvN1YbhTax6OX3FBNRNhzYDKiQX5o/6Qwq3kms3Mam3gLLZ2ntcX+jg1bLf
+XeCEN/YAVDGT3dTKYhFblHzUfF0QltnklkrI7kOJ1gzGY8xnrTWdUCfPbzzJqdRE
+crEYro9BW/QKbwELKsUIpN1lj6U/P7BmQuaU/W2UQY5ll6XlSOsRHfz0mOnYMNds
+E6Cqr6hQLRrhiK3c5r33lJXs78pHKvgfREGOkwGOwQ8zzHd843S2xC+4nROOV/Eb
+Q7b1BzchsJbkcNMpTBKaXMY1wMJZFuy6raP3QO518OjYkIampPdpLBvHia+hsLkO
+12A7eS134Swlrg0YLTETyeRQqURLYzyghKtRVTwhZFaQKKzPp4Jp+qkc2SDhXqNZ
+qYT20FhxLBH2Bz5oNzaVw0WfEjw6NrjW3RKazokCMwQQAQoAHRYhBF5hshcmXamA
+eiPF/036snDKqW36BQJgBB8HAAoJEE36snDKqW36VYkP/1EUlC8KnR/dj583OI7E
+Vgz7ezIOi2HKeNTFrnxPIpQfnfnaJZgFzfYkpo/0kPlLdQvWvqao5xKChtVmePX6
+ZPWnSlMQJvlv7879EpakYbHWhGibTBR4FHDrEVuJ77s9uOaA5q29fnAwYfvLkwHP
+ijgJWbYblTpctFQCswqzBKXHQ/AvTDUj2II0BFUAeeBTrMX4Lysq1auKO6lvlBhv
+t1/XYFSpN0b336+7vCEmqTru6zQHx2ctjS1POWYMvD3rjPetS9luQ/00lp+gzpAh
+X1yb877YSTX2k5F/lW0NO7+EpqzE9j/9D8XtyaMFh9WnFKlkNs0lnT4HrptNsNvy
+M9gx4NJZQ74E/o+DXzYI+zrrhqkljrg2GnTqSDcHc5kUak1VFNjDOHHTkSH/J9sz
+NG6BvdhsbSow70+gh1vT/8G7b5nNG2TVEaNP+DHNBbJ22GdCOh6TZX6LfdeodbIa
+JTSvPdqOVCWt1XjzpHihGiggJWQncp5fJ3SQFpk93exw344mYe6/YZNh4TrC1Egu
+fGruUVOVzt5TZRqekmhxLCg9ZfI5MG8mRnK3Ecqf7PiIAFcmZHbJvmIUBzgVL4KW
+mE3vBGeg4C8v4lYlmvf1IQLhtA7YBnPg+3ZhZYJQWVB6l9rUjvFlYwkv1ACSmsxU
+5Bc/2zLZZJ15KawtClrADrHJiQIzBBABCgAdFiEEgOl28UpQikjpyj/pvDciUsoc
++WQFAmAEIqIACgkQvDciUsoc+WSJ9A//VO7mREA0FDDTx4IUXET7AB71wHBRY+yN
+tF8zgllXXqiOobVoHSCjZKMYjFhe5qKv3n1/kR0AxxbPWBBwfutKFFoiRgt+SSB3
+iuaWxJ6jm6znBZUn9ys1t+Y1xydKLDHdoYyHhtg6vrQhs/gKwBMX/ccGVxD4h2el
+jbp66YTSByoSRGjs4efeYemelIsgrwP/Ap3iNrYdPjh/uBP3XTNQEkDqHzyVTFeM
+FIkvonNQQsAEgl3QcP+MWq+KBBozjqtgDAoiF0JAaVArayKW+eExDBUZXr+y7DS5
+v2nulAfQiZzVB4q39mMfYCoj6mCyLBZsx6Xosg8K0rh46PuQb/0TasrYV44bjRF9
+SBVaOBW8eqWRc66y6OHUX1a5KkOxsDt03gHKYWC+NBfeck37xbL9J6d5QsA0yNdb
+CYvfKqp7i6mLPaa+u+2zBk1Pp9aNgbWzx5CFZxRjqUFf/drxao+9jVKzn+cE9XtK
+ouzy19OShdZe3SyLFTvXLdQj7emJN/JUIUgo8BrJYNzsAOo+UVCbliVr0dU0i1JQ
+Of7k8iNdNWOYcUZq8sCRbQ9IJnnfVVX4OqRFhM7yzxyGFBEzFGu0h+hc+sDK9zK1
+jl99oX49V+RSvCdic0P1EIA63f8doHuUysIigiTyaQkXMfJGoR9uKm1F4+7hd/xf
+i5lXJuez5lOJAlUEEgEKAD8WIQT7+r21QbXclVvZum7bFs9bsSUlxAUCYAQy6yEa
+aHR0cDovL2dwZy5nYW5uZWZmLmRlL3BvbGljeS50eHQACgkQ2xbPW7ElJcR0ZxAA
+n/yWrs1CCw7plbiHCLqv/fk61wuXTFAjqiF77CXvekZulGjr7eN96LeXkrPCJIai
+7rJ2D7x2g1wXUiWZMWKh8M71tVzgY4UV8/+eEJFV8GqmdrxmenaQFqvuAV6y/HV7
+cJw1EQCpsWC3sujjWUvOmc+rBrBhkfueLP5EqdMJ+wyaX5j1iT2SsxcMNb6rPLlf
+STafv2yqvnGhIFL+ZD916ke0tPpzUemjb2SrrTqj7l147pMv72H2KxR1wXjGgqQM
+joOys5bgTBbyzTUFDCbJc8o5c/HfeUnFDfTEvPzoxLL20mnQ/Mq1j6Za/LcEdJe0
+liVDzDSI3ng43huZLNOkT5LVLyNqedJ4M1bSI2/TSyTpHOTJVWSAUpH7706e2Jom
+PWvKpwYU45WycXveviEfGaMWFxZpInzSWVZ2I0n8sH595sirFaEUF0vb7PYddh3O
+sTa/UwsccIQnxgzNqy+o/SqlHwR9nSMkvg6V3T0f4mvqRfiJfqtiMhqnxMpe124s
+9M7II8ACu1fjYf6j0rcwlhreD0r598oOqjmdiIAXRtRtVbW9YSLd+G563RAcoSBg
+s4Xu7557i107UPYOKQbpuGzFhymtK1wBik8DilvkFrc51BGkUNjKq5eUZHrUFHjY
+dVXXJW+6JHzECm8qCywz7cwVNBhNzCD9RkyK/hlKh3y5Ag0EYAQcsAEQAOvMWEKq
+TinNyE7ii0xbHFEegMhYAkSdHm6kVDcDBu51I/rz6Yww94xvvTs819oLxPp1GCEw
+blnry3mD4NZ3vSeefzvK86BFX16tRUmAUP4qgE3PUKNFEWC38toGKFKOAqpEw9TC
+oCKzyTAQ7qj64jtweIW20KHJ8FpZL9JkoImZSLp2AVA7gmJl+aUWVAJ6TBBmmGGW
+Bl5St33nYXvlmoOC1CBWcW8qG0wGRh81ftQg0/klzGQElTWyU4CuPAhCnwYKccnO
+cOVPjcdp+rgvvJwc02/qX1WI3ZPJFOqr75il99cqreoSEmO6hJEL7GUUGcANoqqW
+UTe4SIYi3R97aqlOF9OyS9+o0Bufl0c9TZYDaRTJrIVs4D2jxJ2gaN49kztAifEN
+YfS+wzE64YtbgNOlR4XvERs3D+08vwigqATeyApfxRs/VH7g/G3LVcIBIYJCHdnS
+T/AglTcAQ7iWvwLlhFJ2aSYH0rpMVjBmSlTJmvqKHLI6wLnC22c5vATnNYzO0Sh9
+Nokz6nfUUjNJruZkbIIYC1Ohu+8aEuDLThirvwDR03VIWDeF3BhFQdkdKfkfZtzA
+Y8Lr7rWGxb3HpbR+slekC6dzclLj2g6be48zsE6Az2ek//mV1farAPejpmA2vC9B
+5indR9XKNntCKuFU2KRHCShhsw9xfQUIcOpLABEBAAGJBHIEGAEKACYWIQSsUw1S
+Dy8yafXpgxOkhEkESq1cXQUCYAQcsAIbAgUJDwmcAAJACRCkhEkESq1cXcF0IAQZ
+AQoAHRYhBO1UExKjPxEo8QscbFRAR2K7tuhTBQJgBBywAAoJEFRAR2K7tuhT5OAP
+/0oBtjjVGeU9BNWczY+/gxEhbBuoBG6+/d0M60fk6npZq2yccAIwbcJzh6pOBPPj
+bA0imRC38Fz2sZotO+Rt2eELT0QEcKDOlvhH/syj4R9+bDuIax22A9QtLnBpICrB
+Kt4LazuOC4LzYqScYZmoO4EWXNOZICO7lggL43ScLNerpE6Zj5nGHO+74wrIY93H
+UdoRROvtzdRO6n8+GU6XW12JacdeK/wk9hbD4Qqa5HOtNTxOD4ZjLPS0QuGdUy2f
+COfuUgYc55aCf6YJqysr/nX8188AyAKkPBd5TQ8QE2nOK+1BJC+/gitE4oSpP/oY
+WjxbfxJcviZUooNImD9cNV6cLrHF+vc4MMDzFqAQlWIuACkaA6as3sA5Ev6wdJyf
+TtF7RhI8B/V7HGGp0QUwhNy9HCvaVOq23cydK24V2zEjv1Qh8ak7yNggTviPQo73
+eVFoh2VIrW6GjTDyrkxRR1Fswh8IotRGvfl9+h8FNn+3bobIbtURIAxzzngjOMIA
+BG4+dLq+PHorctCSAXEf4F6qKgBSnHKcFRpusQjtzNdqRanfwA0p9lnN+8tLR4Dx
+1UuvQnbglg4eTy5pVvoTR37jVB/PhNnfVipn+aH4FsizShjI365Dvn9JRNQNYOHd
+yu2qAHBoSwldPTlTb6w9Wp7ONoXc7nC28mCQpV2FPhWdpiUP/1OJFCuVGxHrMc2Y
+BPdiMOajZmu5pqG2Gyt8jOqbyLVXH2Q5J9gRZcfEUd0EF7ZWa7/gjxsHkSldaOD4
+TqFL4WB+MH2+WQu+kXo6unCy0HF66LNa3LY4rELiukt22q5XBwDlaZ8DPM0oTEti
+eVXGsB6gGMDdktRRFF/um3jyht54zEv8MAXvwQeIMNVxPHBM4d1pSJq37tPZE2vf
+bPjHr9zzm2wKNSymR5+CXueXkphYG+dZ5qmkWnvs6kYyBNZPoxMu4ik4EKYt8sIC
+2HvvfdhUhax58gjSWMJART20eNFIim7cLBRpmo1+tH40M26KBhzvuh4EPX7WYUge
+7wXqqSIgko9C0FZCTJBqKik4zMtZO+2k3fjbuotHlV8ZkqRmxsxZvicQA7TbIl/0
+CBiEZDVLE7f3QzYdedaFtJFRtunFEF6ipr6BySo0vHbmDx5LWs1gsNvxxw6AY1uw
+S6LZh9v3LJPL3hzdkKVfDRZX+wJwHgfxC0JwNL4+uRAcJMAGwM/Z54nv3nOCfVlA
+NcZxJ0+LfH4+gE11hm12YLO3wyprn3MVx9Ou7bJYaPnsxyUo1fa+t18WpqM2JBkI
+JWAy6ZTZHPH5LCgq13simS7zaTnC94kGaAsljS4jATglXGYXKXTVlr0oUlNgYsNo
+TT9yj35WJXkuIZ7GV189g3gogTpu
+=Xxba
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-bullseye-stable.asc b/apt/trusted.gpg.d/debian-archive-bullseye-stable.asc
new file mode 100644 (file)
index 0000000..b6c48cf
--- /dev/null
@@ -0,0 +1,56 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGAoEk4BEADG6NQ0Ex5gy0OlnGlFZsTpiZV2LiUhACFj6ZHVEYQQNWgEgRnZ
+uZeAXbTnFywzrJUYhx51pNjxfoViN/4Jyn2oMrmaBEuDxEwhVZDsMTzb9dx0MNnm
+jMr45z/4EGjln07tFzes+J+0eVizJOWehQ40IEwyCZIG9QOfsC1e1estm0KLZKWb
+4gTihGFSahM4zeD6XlZ8krTlkWV9i7+oatCkNziuOTf8+ZXEqoNm/dJxG6pGWcal
+o+DiTE3l4HCFr6MZoiCoWVaKYn1jtIUeioDVW8zPalt3VcPmjvYb6ZNHhFK8d3DD
+V17wv7TFJIOn1j2n82jzbDZwQAWIA6iKPjXDJJqmv4qcZ5a5l8qirhjZhQEemftY
+sGBLTjx9ANfPcDFoQ69ojDw34Nchig2nJ+7ut9h5mjeB9QmOx10HDposRaZq8yPC
+hFpheHNlKwh9PYba0Z9Vb3mI04ywkw1oGc6YQD/VGhoGiMembzEK110DsCcZenD5
+dOWHug5LF7QTH+120eG4Qt0RcPLqI33+3FUOjzOQubw0QATYs8Dw2E36LVOUx1yr
+tDqjJs/ZXfr+LCfaZRshvYfcl3soHCXxVqEwoXUmxJK741RS4ej8w79clniZPMLc
+68XpFZ7qsKoKBHeoG1l8XvuAp9EpW4vujsehEwRudn1SNoc5fTFG9k8qlQARAQAB
+tElEZWJpYW4gU3RhYmxlIFJlbGVhc2UgS2V5ICgxMS9idWxsc2V5ZSkgPGRlYmlh
+bi1yZWxlYXNlQGxpc3RzLmRlYmlhbi5vcmc+iQJUBBMBCgA+FiEEpChSlfx7GoFg
+AGKpYFxm8A1sl5MFAmAoEk4CGwMFCQ8JnAAFCwkIBwIGFQoJCAsCBBYCAwECHgEC
+F4AACgkQYFxm8A1sl5OtbBAAuI9V8uztBX+gZhvI7LYRZkuWzmNa/qiDGHAF6DIA
+OYKqCZUDSrkF9qsIkeeZdEP7hLoIo6TkprvF5iLFTfzFWPT1VR9E/itBBzEZa2Vr
+gT0ye8gYrsRdNkso2vqZQd3muDJvg9UrT37+Nt0eOpFAfc3JYfqwjhVIngiNLwjG
+TC5oinEesdDCgqxo8Z6e6NyMLdDtS4W26q7GxcuG5YcBoYi3pjxJx8ZGsNHqEe6R
+vU3YGahEgWWY80xCRarm8RVYgfU4LZfm6D4o1ZO3B2UmK6+TgkTjYWzC/yMrcbK4
+lyumB36OCSg8byrJ3qUN7zKKU0DIxPqFFCLxxhYxf4QrMPik0BTgloWntP2VFLUo
+3DxJQKAqQULr+H/WEgbsgAuU8U0VLTlj9sCXn0iN0pHzNaEJJ4sz5mdIWOdJJobk
+biQT+xAGwfoKDff9l9fu82p569sK9U+omHMuDfxTT0X13U/6d2m5nIFwf1MitshU
+8frYxuZs3Lp0Qi1Xsqtwc/wrIDt5c0M4wluypuz//eRLLwsMn6KEl1/Be/RebHSb
+FKOA2tdsc/hfABsVQCFpRHgBmpLfL/5Qwd/K7dKKpuh/7pV4B1cNgviKwMFhhR2e
+GzTfbXqxytnYmJkV++bKLtX1SkNx1TBb4lqICzdFOV5QjtjPBVZR7Ugx7sp7yZn4
+bw2JAjMEEAEIAB0WIQRyA2MOLI5yclFoT+vFzl3CxULNWQUCYCgSfgAKCRDFzl3C
+xULNWR3gD/wLYa1UBOMszWu/BTLt42QHcd6onTTboP4S9w1Gs/ak5iQiEN45CVVL
+bJ5wS1iaeuMZ85fOtcEvJ9KqMvwvGXlsCD/+O0QJJbEpeJpHarj4ZtxaL659ipci
+qeSIQAsAb6/9SKZZ7HGQFD6DAF9kzV9HpKnNvE8BGQ8I38Ez9lfRiQuD16r4cqNg
+S076Z1AoQU8ES5N8VO5v1fbAHsyLq9ZToE28BKGU4o59Fj5uqpfDrm0DrnSn053j
+UK942IGmIwKtUAn/j2sG9mcow47xjifVTKuMXyNGDM30n6ITRtiTaZsUZGIw/yKM
+3ZosuxobxvJoef8B43MpEHYV/xZHYxegT3xlu5h8FlUQrr/WR7FtT7Awlapm6llI
+a/2G0nrPhQlX5nN5gJiKO92rOvKM4wTadBjL41jfYZb5EE44T51hCpJUB1g2GSQk
+UpYM/MgcNfqmq7+7bAxinej/iCzhziv925mUOhIGhAUEYCZMFI4tIEVFFAUb4pi1
+CtXo3V8DJRu5TkuETwDdK+FfBU2e3q7b0q/CTHdHfD8T7VuTaYm01meCqWG8HS3h
+2OSgtWrUgDBDKAU3O83KK7n6K+SAXW1iOaUzW9GErZnYqlEOMJVQn1pU+txUAAdT
+fQy05mUvCUvHo5VOcC3wybU5HCZJ3cWe6HCOviBheeIysa+iSvBAU4kCMwQQAQoA
+HRYhBApVt8USIzlChux0w1OUR53TUkxRBQJgNqemAAoJEFOUR53TUkxRYSUP/Rt9
+FTybIXwOW6FE3LPF7GvEWX//loxKRhiBSQ8Fwmkdchz3iJSAcZ8HgcISMH5P77Ip
+8U9z8GAucy46Bi7tsaisWOUVxu5gvh6zLui7PkCRubIxcCxA+JjX5oZm3LSy49s1
+SEC/o0MB4TRwpqRfuEots6H0Z9eHzvJKjoeX9Ku7SjfSSRWY3TWMMIjQBATRZGcT
+mgA3iJ4/9dFmBGsYhQq1WsY7bCmCahemAmAkdCxkB3hr8BA1Dm/GHgL0++txJhjC
+FwKj89yh+Or8l/C95qptS2uAxioDM9952DUm65oWtApsFs8VpcJxSdApmWmH4s8/
+B/ESPKv7apLq3BSgLy4UA4FdFz+XS9xw3GItcPunzGZQfI6Dd5jPUMwYYqcr1cVB
+2vTiQB//smNjWq2skWTKBtjk2xpPOMCKC5mdGI467RT8HpDMcKWUbg1kaPqCCzpQ
+9NJQuk+M9+jw78MELtUGVi8wIZSZCjR2zXduenyVUWmQTHSNfS2R3iWsYH6m7fL2
+iA9j4Zi7sEjffGbLkQfQqH+c4XBDWNzJnC+/jQeWKG++zcYtEHv0mk37agw2qB9H
+QdTO2xGJcfNF+dervAj1O2fvasOMj9aptRZVpKVMs25zbkplBR5mqPXven+SraDO
+Qb5fppcPrKPt88G3e+dBuBzElOXBWpIsMJuvutFniHUEEBYIAB0WIQTKYZ1lpyp7
+rfyW0oAZZBiq63TIoQUCYDaonAAKCRAZZBiq63TIoR41AQCLcs+WlaZTZ0rg/cWh
+vApi12mZpXQC60bxvmrtTyHH4AEA2pJLfGVHOualRCNbeGEYjfC0WiC+EYCC3NBV
+e18slw8=
+=7Dni
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-buster-automatic.asc b/apt/trusted.gpg.d/debian-archive-buster-automatic.asc
new file mode 100644 (file)
index 0000000..7d2315f
--- /dev/null
@@ -0,0 +1,174 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFyy5ecBEACxXGKUyi5dFjPhEFoz3IwKlVfDxySVg+hlhcUEO657UHf/7Ba5
+wr9eHxjlbpxetAymSNnptgh8oaJWcokr9UjeaTbKrYGpRra7Wd1W+f++9tF7BVvV
++AWBaltD5NDuq+eQ7kj72oeMa7KAr4702ZokLgiTsS9dPeDAodx3/jMuV9VxlJ7q
+w07bAoUdzhlPBcII3MOCMfQmtwIg27/qqekeOnrGtNwscugwVqcBATxRZ1wNAebJ
+60FH9FQOtPZJnuv/q3KXqoneuSMKiBKferQhLXDG/1fUyojNF9Dcae+HmHAZmVsV
+K8cHQwgSICWOgWOKVHUH0YHYvElhNIWayaw1EswEW3WMa0F4tY+EDNHEII1TGOxc
+X9VzbGT998Hiuf9iJuWuCgYZ75XGA/tUooOwLE77lxPGpTtLL0tr/lTJOkfwxVeY
+ERH1LranSQhZAXDHozKPylGo2vLxfA4WNKfaC7Mgq2WKpDWjYtF4kO6/Eiyoiq8L
+DqOkCtvt84PFoXEGMk3I1yd7d3bhIUwsgt6nkvn54xebJwVe5aK4MM7qCNZAm+7i
+94iZjXTH9wUWX27n9UESqYeHjer1L0m/yL8sn4ceCMzpri2HsI71URwJp47GJTSV
+6oAm7NJkiT5Oihcex/tvObZZXZZNqtwROBCkBcdb4Ii3upIfx8uQ3WBkSQARAQAB
+iQJOBB8BCgA4FiEEgNFYI7f9FWH597zd3DDXwjy7q+4FAlyy5mwXDIABgOl28UpQ
+ikjpyj/pvDciUsoc+WQCBwAACgkQ3DDXwjy7q+7u/g//Wzz20dlQymfkrtvgWAXN
+8qw6ifkQtd/kNu61A5u5MGg/EViFnmvZdtYRentf3qnsDl3ZgjYhHMJ5hLVG16Gb
+2nrkpQQe6rBX26PMkg/wP5uebUnPQscEO0KpVlJBppO4/rmJNKsphsRYCkgbZORM
+LyTRijrN+NJw3Lirk59ykkWyu0PQN0by+aDMOjg4Qt8vfpNxeeEBtCg7wk5XuArZ
+mDwcjqazkXn04l74LRzXynK2HFakROCWZQQxl87gpFXAzcdualbenazYI3nWcpPM
+taLvOoWpse4jM2c4UC9fX+PLOCOh01POMu/7+omeKfuSLJ77ngS7jkCdbn8y469e
+EBFh5tGD2piNg3IgSFjGFOIKt8eOOYQJ5dYLCYpDQ12qO3B/TnRiIwWGDPWg3wxZ
+UEkVS+ZkqZcBe3qIqEQ4r/ZgG2vByWdiKDEYGIk6vITOP9SBzWE29M883oAvifcG
+3cTwyODl06RMe/DJkZwMxbti0qn2Fpw6T4kozVVI3wbmuLm7kShcTxeE4volP44c
+3mOcqIyXIoOQeCLHy34SmYkzmSJ7iE32u6V4hzvPOtfxFbR6VUKOGvFCGUTLfvZr
+AqF2PiUWw9B/bXkD6j7js7eclYz9ClgDnW8p5HzA4xVoVAvZISNbwxtiwflplbYT
+6t1Mv1sU2iyjjrncY2AYV1mJAk4EHwEKADgWIQSA0Vgjt/0VYfn3vN3cMNfCPLur
+7gUCXLLmbBcMgAH7+r21QbXclVvZum7bFs9bsSUlxAIHAAAKCRDcMNfCPLur7ihB
+D/4iace5p4gK5MTRNTibKNktYfpOr47BccPGdfeEx+PrVXPHAvFVoo6cwTBa0VeS
+n8jXkosgwlXREUTsXFTWq0XFOKBg1OLzofKQyxfyYZLM4ge2VAGuI20HuwnAVHUU
+/+8BIzH31CJmvsehWIhALaCxA7RbI01aREpiDJoiBNppHCqwXBRxzk3y7Shmo4pt
+J+joRw4x9OZXjBC1y4q70bafOufglKGU11qMDqTan9LpbVT8eN/7xLuGQsUC+Nt5
+ZB/UZkN7shfHiI8bEOTfR9hawf83i/ErAv3PhFmcI9D9SAe11PYGTYwZtGs6Osnv
+SXyJNyxvanaFbNfowEUou4NGGdRMXff6W3qe7SQG976SHmJtHB5V5QlO9gVxU5TC
+TQc1IL7+JJRhJN83Yo/CnOo6xeY0/jlhZDvVFylGuHDe2L87Q4GqU4ztwrq6KYPA
+OuPCGrDTo6Dzc0+WAiZfnrtx11qSawa6hlP0pJdjw09fhBaugrdPyIr23b0iMwp+
+Q8mMaqU8ud4Sfae8KuMvcaNF5dCNe4qJ3xVfeQCkZIsFVSWdq8LHxmQoVZYH+ZsQ
+7QzjKZT5s6sb5We7scGYm6O0+1SzT0j4IoiXM39kovzmq40eEZktOm0l7qmDO5vW
+2DcMSdFrf9bY4yP0/XiCgKIntl6xKC8FP6lBYl+fd4Jq1IkCTgQfAQoAOBYhBIDR
+WCO3/RVh+fe83dww18I8u6vuBQJcsuZsFwyAAYyCPe0QqoBBY54SEFrOjW4MFKRw
+AgcAAAoJENww18I8u6vu6IIP/RwycYXi/0bHlthWvS5dAfWlpkQBuG5ZZmxCgw0O
+meTFPrIAMk2TZ7mgeiPGetwmvze+5QeRmy4zdSZfyaQWxcWoIE+oUaWEARLlSGIT
+nDVn6fiAgjcqauT3Sw3EWp2UAVIvJOoz59aZI+msdglI82eSO+v/XoZ/Bk3KrwrA
+ClCqsPfInXdodLeBbDxQ+CJGGjq87sjS6DM8LZFR6Y3rcJf9QbGSU1ZG+bjNb4nq
+de29eIqhrJPcfh4p12ADNLUf0MFWh8KDkVOy9cqJH/GeYX3kPxl8cDD6s5PwEsrc
+TIa1Iaw7cYSxRRZQJYeCf9//2kn4xQOzFwSoVDHLjg4tTgctLzcmiebqZAtoZGLA
+QGDq2SrnPc9vK3z8VMgzrJM1pNkLrhAvTZtyyw85bq/SXUfymPnWDhk5071v6yfn
+IMLtvzgA+FcybD6mRLC1tUFhfeqqVi5zbw1haunGnwodSTw/z2BcgR9fdCGA8ebv
+Iwh8txQsDHNG10E8dWwF8pe/e8uSdagmITTE9QYN04rV/RRMY6WJ8+2pz12XQZmA
+18BPljP2VIHZcBg5Cm2sSgjNA/rpwlGtAxA+ztimwnV39p90BAEVUco8AXXM9cBa
+ya2pxNf5U0hj6xMG27FqIcdmmyKlys2m6kPLDuxrF0hPBIa3WM5jEKXercrsMGC+
+x9VoiQJOBB8BCgA4FiEEgNFYI7f9FWH597zd3DDXwjy7q+4FAlyy5mwXDIABMJkR
+vqlm0GEwUwRXEbTl/xWw/YICBwAACgkQ3DDXwjy7q+6H7w/+OLbg5w8pGGnm1t0I
+2QoLVKz3bNYLf0aJ5SwODYjXnQbLgcEjct/4gexTy3ahPR6zsX2cq0BGXH80A2nT
+g9MP20BUOjtQnGjRozn9FotTOi5HsxoyIBcP5pfk2zcfcskpTJchqVhB5QXmw+vl
+CIOtjSgLjrSPmRnhHqKR8bjMzvwo+jjCwTlWVBtjU9UnA1jRhvHzTp8SLC4HHY31
+yAiU6FbAlthC0UvCcw/c0FxEacZiy4tDYJUehV1e2tdwHf82yRamZq/wnU6iEM9I
+KUNcxHKgpUxwOSK82urpP1gkDb3d8Qp5EVkhTuCO8C4ws6PvFIge21e+XgDLgeR2
+B6+SPU8yJdZIpYJeqN9eGjlym6J5YwBi4BSGEU8tiXvfg0ZC+zbcj809l70QMtKc
+Cb7CFXQcIpfuBHuqQOkN0IphwtYTJ8u+EADFWwbTPqLrshN85BQQ44JNF/BSkl7j
+ZnHJwUqMIwliP2xxBfeHBDiSaGkCju1xQh4fRB3ob2UA/W0AAAptuayUkKS1gMVu
+e2Y32qzPOY7mwCKahLQ1wn8AB+jVhndHWMgNbDfJ02BtB3oGyvWDuUaS0XYKGncz
+0AE8UNDyn2Xj4uESJFQZ3JP24FVGIDzVUJkYodF4mSZL/KIsjOXSBGitWB7uVlh6
+zZzuTkwSbiVvRj75r6xjmTJIlD+JAk4EHwEKADgWIQSA0Vgjt/0VYfn3vN3cMNfC
+PLur7gUCXLLmbBcMgAHHT2rJ6TOzBn9S8z+kWexnFbBwXwIHAAAKCRDcMNfCPLur
+7vrPD/9I5p00zJ42MW0wbAEY4QGjiAVRsv1Lw1VUokeT2h6s0sBhYn+SM+lTCAva
+Pp7q0KGFjHOSVCIKlweCV/1Iw9EDuReLpfY2eKNFWRDj+lKYSI74Tos73sNHBRvp
+5xXkFqLvNrBmTYfvcqr2FIDfF6LXAZb/yUg6NjE4E93kilwq8lh+3nPqM9apWo9H
+6fr6rGfDt1hlrwUDzrI5O7R5tjjQ1dd79YPYBXS6Sbc3LI8mTH6HIKTVgOw1rsA8
+haEL1JwzFiCnbmIZ4s5dc2yc+ALpVc3OdUKrCTpU/AthQAu/RSXGN9AdjdLYPDGY
+aFer3pZvN2Nrh1ZB8j+4MY1YiOp0qgLQSxaBqq/JRY7jVDNxMyNADZuf7ji4qeAp
+9nbIiCWjK4oqKKmGG78BxVx05zTteWPtcxkVSsPMfOgjaEefagYLIgv8Be1+avVg
+hboLXrOIrHCFPfV7WNeLcLD8Mwz7/JTFP+XobAvim06QSe5u/wJc85AFTKPV+oCx
+dn0dE81bp2G9r4/ypROBBEkYnoFN1dhmysXs8c0xRAboK56WxWihVQhiK7fLOonM
+zmceMeiaKsQufNoOQ1a3rO4qd4Dks4cwXWiGhWRXSFWY1cCbxP34oo/fFKAxLBdq
+RhN/IjafU+tw5SygW/3mkMHKVxJ2Tb+726QPhb/cYfRfpX52+bRHRGViaWFuIEFy
+Y2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgxMC9idXN0ZXIpIDxmdHBtYXN0
+ZXJAZGViaWFuLm9yZz6JAlQEEwEKAD4WIQSA0Vgjt/0VYfn3vN3cMNfCPLur7gUC
+XLLl5wIbAwUJDwmcAAULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRDcMNfCPLur
+7p8KD/4gCYmz6IjMnhsz8x9d5lP3h+wIdUdt0L0QCNceoHcblUFhqx74HwVMLFyY
+k+8/WHrLry/N83mgWmP8GOeOsQG0+1Fpd+0ew1+smYagSjyON4crv8W47Yb48qfV
+UwT9VRJqdW0zga6KD8F17I3ssOVr9pZTDHa33ykwzg4eUvBs4wYdb5dZMYJImgRA
+NRzgeiw70LOMZyaPh6yu7i+qcDuVUP1R8xF14GWmKgczsNnOGvaHTo+lc8SSTwjb
+OhkNOSN9X6EYdqXRgyeGGiLcgWL7cOmezLNVOV4pDUD1T0jOXMV/t+2hQaPNmIJO
+2hFa4m8ewi4Yo7QUw9q/NToJNMwtr4ZeFH4taCfHbfIJBQE+BQJ1MXDckH95LFNF
+v3Zfh9iwEXyM1P5IgcgGp5mh7Uzs+FfyNLBzIoC09Kgbtrgohihm5S7jJD7ghogW
+tQP6Gvz1XWvXOmljv2ccJKezbL82ChED/uSBnWypPxs2zbtyEvX16QnwJsNZMrvT
+Whh4/4jaDrM7wncmU4RoV96KwwTlx8V4XlkEielMCt1Po/9Ws3JbdcFKVEIUrLOB
+p631evHuUG+mmBlGAX1k8uiEVK3Xvrn3wdDc8+tPSxDQ9GCnQ4YPOv4SU02eUB+q
+tBs85NbpULxAweKyMumARNVuqC82viB2YryUZF5+JslFnmb8pokCMwQQAQgAHRYh
+BOHPIN3/5LiegCZY8eCxGJT2auyYBQJcsuvcAAoJEOCxGJT2auyYoSMP/ApUnr+O
+6qzfkCNkxWcyFe/cSLsjKYDNeneaGIVnffk1gwltQ6/x3403UYW+HWFMdOf+PzRu
+KD0habntmdMZP3a1t0YiJkRF4rGX2rqBegesPiBp74fSlHtuy6cPWlu7PYi0qVs1
+uZWiUF3eBo9DhN5j0w0vTaEVBFh1reahhOw5SlTXj2ITGViJXcQtFgcn5CepbZ9q
+cswgnCv5RU1qXUxqiOTT/zBmVdOsNiZil5X39L5t8GE6yNCNaQrm+JNM/OWPswEi
+fOhN4eiCysIDwKxGLqFvrw3i18iV8zWjJ+sQO2jXeqVFaxfT3HR3S24RO9VpjtIw
+s5VdFjhczkqEWAHV/VtERDgrhiEB3tVwrEARNGjuIEJvWEo643KRkI2w+KK7GB0R
+p4meBXHhyDucffss/0t5NqZynjZ/DDGWa+bsk/l2BI3KvPi2NZXXCXkZHbDREQka
+kjlQgsM8Cy0+a//TU2X+l7+aXHSbrwVlAfF6yA6Lf6yu/GTMyS08rs5pSwxWFucu
+cYPgANGD+V6XLn490un7iewcjjml6VKbi0fEqHkUV953tgZtnQGgZ9k3KL7aNdAV
+/GtIxc47sL8HEsWgvBOc6s1hXbw7v1+bvI8hS46bhxMYWmXgznAdQPB++Xlc5kHu
+QMAyQfaxYui6cXZra6+26sKZv8xYmroQVzk9iQIzBBABCAAdFiEEbtb1y1+m+y9G
+CuiO7aDSOIriK6kFAlyy7NwACgkQ7aDSOIriK6mzKhAAhd7CQ/3Bl9Cvk8x+Gt5N
+EDnj80gLGKqxUxoRekSAp6Rkh4b7XOBbSb+LHgniPgmXZnnVhNChfAlSmnmS4i+c
+hJbu9Y2B987exiNXdBYWE3VBMvzy8a5JbUF8Guqqb9DlzAaD3rHOUSOK3HWi+Rhf
+9wdFKVzDUXku32v4fmxMSSTOqpXRj2iVnuKLCKR18hNiZK5ez434gQDqYDvHuU4/
+jzsXsG4nPKfxvSjZk6hykb0rWvxbmDA1RVTLKAdlL+nm1dNoJKRz7/OmHf/u5Voh
+inSDhlXbtWHL1PO7mqgqst5+0qkjImENpsQE9lKAyyV8xo/PsS+pu6N6NPxyjfTL
+tHHyBnUOwS09vvib8aVYSH+3GqCz0c0ZpmGaTeDT2fhdCBFs7DKV6HYT3DbnqBnj
+tQF2PBFUSDJlbRafDAu2JwLVPC3QL/iYKUn6NQHQkrKPYp8uQAMSLLRCr8lGMCG6
+4oqsMcVXHv3QYrYqQE+83dNSsZa+BabYTyz+tZS9EtJkN65UgrRvRLPvVazAEmJq
+uiHZxLuwEuSUmnpSfTY0KGGJMhzsN8AI98K1sqDjrUvmgHH7ACWj0hU3xzkd0yOG
+RjH507xOBFNpgN9LsPpRe9h5vpisFOrJYeIp2hQcoPDKHvgdeyFau3qdOItI7S5b
+KJUW7UvfXu0pH+HyydTpZX+JAjMEEAEKAB0WIQSA6XbxSlCKSOnKP+m8NyJSyhz5
+ZAUCXLLu7gAKCRC8NyJSyhz5ZKgGEACMep8c7JVSEd6hsrmET50hd8U3tlwzhlwj
+uNM181mN1P1dV+Tcjprz+Dr3b5U3fuA+Irnijn3Vfvoa/DD5j79dzp8VVO5DlSzx
+wTM8fnswlJtSv/NaCAFsErxX7Gi54lgwC1abuUor/YdNimij06hg5PRD8ZtjAM+j
+N3OI64vPsmhS+QPD3sz1nuiuh59AXoBcVtND5Ej7nHcK3WOwf8xhvim5g+eyoaPS
+T47WzawWjSK/SgBQVeJsU0B0vb+DQGemnd4QyVI5tGKWz+vw0iAXieUksqnIYDlt
+NSUgru3I+M0L6cIl9C9oj+gvXn4vSwpuhwpSJZS7ratIrhvY+uShBq0T1gSy1buL
+c6hkDvyS+dIqnEZzPfCBAog3Q5mPD0GZ5rzk/XJ9PPTgH4QEug57MvyYyFmvIDtQ
+1ZmfAlxWcKFMCNEpuGhL3DcmZWqd+Fqs4Ik/UsEPQpSVhxcsLf8wDO1dIzJBamlF
+4IJHImoHtsmMFGI9zwNDwBo1jPOKcPt3FbMlQw9KUht/H7Xg6pbRQ6yGVi9ppdiG
+k1Eb5B/J72QjwSaVKhC1W/nPNZvF5NxRwImTW1i3Llyy06WebperF7/8Wksk1pHo
+GKZHt5JS816DTfOVrsjkFqC66mJCYBy3vEPONJWOo9gohxA7V0SP9vMEZJa8UpaY
+rDGyonjq4YkCVQQQAQoAPxYhBPv6vbVBtdyVW9m6btsWz1uxJSXEBQJcs4trIRpo
+dHRwOi8vZ3BnLmdhbm5lZmYuZGUvcG9saWN5LnR4dAAKCRDbFs9bsSUlxKm/D/9p
+B+G1mLPt2DZveRhLQXi9w0QJlmOH3Ec/KYZKLbrk74yV6hgJS5fP9NYMT5/89wDD
+KajmXy30UpiX99Y1nOeSGV7xk0LikiVvv1ZQl3YhsIgyiHiCtYgVXxZPhFYhxHw5
+P+7Zdl00gkTilTBuVbaVQLH+S593MBla/IX7PXPZFyPkArh3pyDleiE3AQiU8EWo
+0Zjhntrfa9VQtk79vC1ho0//p+W0EPyhiLl9nzRvxoCjveSMFw8Pn+Qr51FzC/Y+
+EGjYao0H2PLce4CcogWh2no0o1zeFSm8xoyGUgNczs0hMLkrQTkr2+YQj9NJ5oKd
+hZM1uRzsJ/DDXaEQTZjj2iIyU8e0E/OhOaq3OnTMVeiZEy5ZvyfyYlkzb5Qmcufv
+OCh5rFtUj5+6TGl3ywRyTrs21MjCVwggBn2KU0Kg/gqh2IkPavlV+LecH6CJwplA
+lsH1cnnnm2RJwOQhcdAAjbpjvkAVi4k+XJGnVZaeU1KCG8nmVSWdKd60Li4EOPlO
+swc5K9GmPFjEfHkY6dynKbzMh8ukSozSF2f7Z0wL+c53jMCHpZ/UZUBqNjmhKcoS
+PCME5pKP9rUr+L+sucw9gNC9mwWRTj6KbjLWo7fvQpJaBvcbYNIpKU7ViBe4Blvb
+Sl0Me56Cmew4s8G5T2cpUG2Aumg/Rr5lR+MXdfGjVLkCDQRcsuXnARAArgqqMQG0
+iABrEdAG6Twzp+wZV7r/2IVqJyhnGyu0+yoOcYqai9eeP8XM3yZk1Y95FE09g7RJ
+2jacyhhC5Tsrg+GVJ/1eSsvudegZn+QnqEZ7HrmwJsYKFKhntak11Tvvhsw08sKM
+4KVoxZSmMgBq84OUW95ILySM9vm8ge1+aYgr70flXhKne+o1VKeHWlovtmIGpWaJ
+7fCHj95pDoJhe6uUkmEIJzMrNIaM7FQ0r4GdBYwqDImW07zMRWk80Av7uf6f+5xc
+v27y2yW8ZjKF5u0ZKWln+VZX4EfUdCgJ/0LeV/v9gVbCeanNqGJB6k6DpKu6IzGz
+KXi7rHFi1GiuoiVgy9Svx27iRpJaykLxnGFn8C7Lpzo9q034gGIWLwQnjT1FdPya
+2pFV1VHNFZQ3JnQRJwE8yGhw/5bpllaUUJKvydSWvBMgOscEHQdtRnA4IMUXrHGV
+IhYN/awYkjhubeVJuhbsxaQDqpdAodaoIz20PVBfE+XFbfnLCBwxgzR/m+mE0iW1
+GCOBSoFw5SPQBihCF/PPBjqQjZKJz1btUvrv7gpLNuLEyA0RsHBFGqtqvT1K4Hvx
+6Y7di35/Nm/Jgty2e75vMSGUm1B+G2pFjEypZjtOckOHQ9hVN4svvMJGFnqcwZIa
+gMF+67twWmv/AVb5CovsXLKv1qTzplRJWiEAEQEAAYkEcgQYAQoAJhYhBIDRWCO3
+/RVh+fe83dww18I8u6vuBQJcsuXnAhsCBQkPCZwAAkAJENww18I8u6vuwXQgBBkB
+CgAdFiEEAUbcbUoLKRS97TTbZIrP1iLz0TgFAlyy5ecACgkQZIrP1iLz0TiL/g//
+UwdPym98fCTVZJ+HwHId+Ssqo6vTgxA/6DLGRvFILie40vA4OnFrozusDVh/x+Vv
++pxbtdw3w16kfpDifKicx2o4ZyEYl30pdVuBmSEOhFvI3ZgN6P79/Dv3KhD3QQPK
+OMSxXO2vCh7BebmpfT2rdukgFED9vxbj1Ec7IMfm4VobFJZaFXZKsTBc09MQU2Bm
+1JvtzINsdwzp/sFTilxmqO7kX4DmTM3k1KYmMkx7xq5KUaxSORZHIqDcIy74pOIw
+TuvHN98cYujCKFDk0MfHBovXPUnFHFxd+OgSEbxGnb4Uuus1h89VIU5xviQHPGe0
+T9qG6tUBvFuCkPzcWxUg4AN6nxZz8stZHhd0ceuSDeYnGBk6X/eEcYmy/kEbJEqj
+f+kuY4VFIDkShnnDrKchyoi/LmkfvW4fOEtTpmB8nkflolKfVaN2dEo2hyma3iKC
+5zp8n8hlNwhkt3DiGyYXU0RD7JAbX4jVZSVov5PhAjmrEksxslv/ICrAJ7zfCx62
+zzm37TGwiQJTWQsIcQ2PRPWFWk/CHAVjNPsu2QpMsGUWccGUOI6a70LsVnnufLzt
+c73TM37Jv9hCXljRvVRikTy+StjFZlVQdXoZvNJhhIE/W+/iNoBvChD8pKSWe6RJ
+Yto5CxCQtN6IKgAiUtoXusAgFSB7TZ5CJF1NFZ0VQabJcw/9GunyNNj+RRdMXbHI
+VbrDQoqKY1FAhIUE0cURfkVE7z0mYUUZ5bwILchQsvwVsQKorVmryh1fgaYCOi+H
+4kvmhljN9HqB9I7vgRaYAJ3qwgYIUselclYN4SNniHzatRMROppUMs9W5ytENGhx
+oPARiZpRVL+rPPaFdip33c27pVdNAU/lRq2ZpzkdSTv+2V9GmVfDtcKv9A4uDqJ9
+7ttgZCaifNbHShzMEWRCXSsT7/52XB7KlxmAynwPNMLeM+/0JTCLyFBEvyejvgCM
+GqgvMDEddarHhd6ChdXLJLBAeXVBGRygWcDBO5rX8GPMb0y5/yE+UVprkx3jSb2m
+sl9nUW2UcOhfrtu+CPS3qazu6h/QkTwitzAFSn57DtGmwKLzqk63g9TgcjBg1HtZ
+S66DzdsJ4Y6Iy51oNyHx3EBLzmdFfxKAeABsapvJl7fhiC93CC3hZTKUyBjr6Dru
+I2wktWCAAMHFE0eeyIreCHdzzMtu+V2H+X9GJMxzd5jOYBI3vy946R2jG5gX+WyD
+calvWyo8N+XrZKD8NQnWQ/BocU9r5S5aJFcovdcmm1s1Ymdlo5Yuk8WHZDOsSf38
+VzY12szoQ9eMbBJOH7MhseS/gIWC/4x1eEEhGbPQbkzKZlJifv+55Mqqq7emGyBG
+qn8+ouVQUr65+xcIST13Ffg80zc=
+=5Cty
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-buster-security-automatic.asc b/apt/trusted.gpg.d/debian-archive-buster-security-automatic.asc
new file mode 100644 (file)
index 0000000..3ec9597
--- /dev/null
@@ -0,0 +1,174 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFyy58ABEADTs8KDtQRcm5ZbIxW3g5YvI5zvrmOReSufB7WX7S8mKvpVO+cO
+CsEhlb3NCdp7j/Bc8O8ccvN8k+yX/pQaSKJZ/GmzhZ+Fgjz1PxnTLYoCC0NSKSEZ
+8EF5afm5zCdvzTpbM2S/1LywYkFBUqFgFcqMMFLxh8GqOoKQgqbY5ZAmYzC0v+Q0
+T1pz/jQymdwwdUotvLs2knkJBz9u7xTaGdfKwS8vISnnyM/QrLpXS/WSSgVzYT46
+Hv637WcPze+WjVQ4LhXEbwVSRstHiObxIPaNzufbbotlAVzeKiVnNu6qgnKK4/Qp
+ZUYWztGIosZPNo3SLFPbhe02nNGCyNwY0sGFsaBUH+UQ+h8tOHUXnuf4Qo97eMVP
+1Da0UWPhWDZ4uPjBDpCZIdVa3rJ6ksSIkClA9ovZlI/fYdTI/A5lEpXZvzIxcCoc
+SMjU8hzU5osYX0JjlgmAUP/H7CA0LWxXIZZuDALPgvyLjaw7C4U/ZRPXEP4VBjXz
+abb93q5XY3WUBbIckf+lJvddZNv8wHFCmAN0RLeFZR/QojPvxvpgrlSVs1hetzis
+XcGhQyZtGzgfadqBlJAKKmjkU7w4TjagLoSOYzlEwS/9PWFLij206txqkMqRWhxh
+WF1LZRaRb6OQLYqXQUg6oWiTzZfxFAEgxx7cR6opawyx86xf2HMmVR+DNQARAQAB
+iQJOBB8BCgA4FiEEXmGyFyZdqYB6I8X/TfqycMqpbfoFAlyy58UXDIABgOl28UpQ
+ikjpyj/pvDciUsoc+WQCBwAACgkQTfqycMqpbfolgRAAs6J+0laTDAd7LwfHf7sd
+wFemkDaTB6mkOloF/n8CgGA5zg1apJfeQXTmwJeFUARLiHIPyzaElzIi1NakyR3l
+8Vs2yzJvVgWDX4wJuFhlyxZTv00gt1hQ+R99n3V7vnX3/6Dma/fjdmzHtAH4xWXa
++2zkOSRO/kUeyEzMCFq7a+/1hP2Q12zDkJnbCT7yBLrpC/aEKhX+P54vZ8NnQxol
+w7g6jzogTkbjHQl9X5zJRx7pS6TeLQj60xaecN8jc+kyVQIBvDDDi/+DeEGCuyMZ
+UyRa+fTSbYBZFZ/RtImT8nQGoDZOYHkVEwyr4ggEKasDfkbH46nDfmuwGzrsxaBA
+d500sV7iSJgfmwf74Sd52XcqQjyxDcYFIUjcnhmfLTbk6mEOhrqnIfCAcV7w90DP
+zAWaETxB3qGdwAJvHSsTxk2NgD+z1z1enbkszU3PQ3VPINOnhy6koTx6SCwQqwFn
+2zH9P+FDZPyNWmZjgl9ynWLP7ojyH568HAc65W/szFmMgOt4SbytkF2U4pxqbzMa
+zZZ04ZnR61RYT5dY/xlh1eDdU1a1f6h16oSwOhiviZwmeo07CkzjPZGOPBVPTHQC
+IYiQJJijO4B7nOnPqqAhBVaaqQKAANWYmjDMW21s84qlmdP9gfao2Icox7SwED/g
+IgpPEGzczJjNIWoOwU+Z1Q2JAk4EHwEKADgWIQReYbIXJl2pgHojxf9N+rJwyqlt
++gUCXLLnxRcMgAH7+r21QbXclVvZum7bFs9bsSUlxAIHAAAKCRBN+rJwyqlt+j/4
+D/wMClr929EM8S+bTMA70KmA+94EPbIazGIr72eZt16y4FMGi02mI+XipwQH+oIK
+ueXov7Xl/I1sFM/33YZq0dUWa2EAjkQSY4g6ZJT//9Y0Pa2lbgV+oOvT/bgoBO33
+HNcikKQubbavOP6RuPDq82QfjFwx1JA7+7tG1XohW37ZtxIspRfIJ3CiP9Qd/hYn
+mNs5QZsQ8ZGPmfvpXnb0pWRnSIcX51RMgBQkr2IPsGqiwUZYmbHLJ76+A6AMoANx
+UICoqUaopMmPbeYv4V04XM+0396yffapt6iguxyq5FEsW41wsPFxa90S3kXPsbgw
+dmZIeqFkYDB6oI0JPoU9GVQ3UEcV+W4arIXeUrTzvT312DmsYLZcGWoT6MbKmDWY
+gwMH77ZmU++EcaCQllbEB1HK3R0RFz9QG6wYihd+Ilj5R/YEYLU47ZJ5DQXAS8Ww
+1RXG0JxDnfpZnb25wgJkfCEamoSqp0l9SLLgqIz2zETJ6Whd3F2eEw3S1NSo29Ep
+SbTK4bWvvWaO4u+RKrCBzDJ+rHVTtfSuHKBhvdy36R07jBMUnDz4sZQgNHamgSmh
+I9AWZop/X7hmJnvNZe2x/uFOHvHzcIpBNB0CqyEuqpDNdf1k4A24CEGcF/fn+YG9
+enlPha/KzDrvNNrQ58NpX1hMKWM9659Ci0EtspLBEx6GP4kCTgQfAQoAOBYhBF5h
+shcmXamAeiPF/036snDKqW36BQJcsufFFwyAAYyCPe0QqoBBY54SEFrOjW4MFKRw
+AgcAAAoJEE36snDKqW36hmYP/1+Vajlfgrs80MMXv0ArgpGg+5YvigqIPu74LuwZ
+GHG9afsWicddSYRngTbaFNiqc6rNZDXtnEruDovq7CISokyHvM0VNiSTY8vap//P
+QW/8+ZWyW7ZeQDuqU3IRzvYAV3RAu2JaNuZWaK7czg2J8T4Gj1dFYAwf4OPx2x1a
+3HsRTQCGioTrrcuhDbuhOvAH+mY1akYkWXGdse04rKlX9HNoSLKgwoFlqFuxAkW0
+Yy7qZzNOhxCbMZJojoR1baE0Keer98rF0OVuHtQbvON+Wm4hYkku91fgFJ1cgvYQ
+VE+lknME60DH7keiULBmjQIwcCbG9PN1zOus+/EnA5W/qf8lPX/rh2tppmfAEUbN
+yxjOzTdEpzrg+Urh7V5fAThTcNKSrYSjbY0CN27EBaaiVTWYtEY6+13eipQV6yyj
+GiAAKwva/ehlFzFgpRfmEEZZzq7US32TnznxJ0lU+YgsoJo+3TO3B77hAet/TfU9
+uQa1nffUpIA8CWf2MIKY2lfXZ5AF2a1hPpWPCG3fB7YETzmgZRYnEfaS3zktSlHU
+KZzUXcM1zBzUmGqUqgBbHP2wnD/H0y01ubff8C57S/sJ1OTJCt8/rnT6wtPPLNL3
+cPYFfpH1vIc9tYluaN78nWqmfqRnaD53mJM19gCxJcOAgUILkOopRl8ZStrqwipi
+tj4hiQJOBB8BCgA4FiEEXmGyFyZdqYB6I8X/TfqycMqpbfoFAlyy58UXDIABMJkR
+vqlm0GEwUwRXEbTl/xWw/YICBwAACgkQTfqycMqpbfqZsBAAmLNngcE9k8LstJSK
+zMGL8uWyLRq+DeAHMQ4OZT8aa7paM9PLPeNjpktnxAtvoDy/ZoJaSVWhTAMDMD/z
+PLou1VM43J1dBMe5mN63VR6QGVupfjuQ4h6kLd22FUXvnrxPenLTnEMfSs0ZJ657
+xLnDvDyZy10xoft9yJHxHFRcD23ynGqQqatcpFltPieoST64KzJmATo+mba6J9vY
+4DRrfhz3WV2H5RsWueJACYsKdkW05ZaPUHujIZtdEFslGbpPgP89T3UBmEVlTXNm
+59uh0WOdlvA8ESLQmqzV70U+se8WP64p9YXYW/WMh083sq2vrVuV7t4YKcLWBB61
+TcBDgVzKXTl2Kde08YEA7wmVG0EH1DwFRHkxirm+PyaGyuuoyke+LNZ1YqSdrPtN
+rTC/2WXIiclVfeqFzc1bVcu9E2MFf9Sf2Gjpi7h4xvEiK76ap2+w23eFIRI1DI5p
+Gr/ryApjGo49NrZOocKIwUtZBZ6iVZABtf8EPwgeMea250EwRwSmU36w0hba3I/3
+G/nZBKtG43wecYkp7hFBbOQ/I3ARPe3Ecmdr14baRIqVZwNL6F4VlYMaXz1jKAXX
+ktkrmq2E+mUQvK/RR1cQg9FMkvMTFBz7S8kqc0RvRcZkuJ0oyMaUQsyZmEHdUmnV
+VCtdg/qUkt4clowLnNSfgzYzPxSJAk4EHwEKADgWIQReYbIXJl2pgHojxf9N+rJw
+yqlt+gUCXLLnxRcMgAHHT2rJ6TOzBn9S8z+kWexnFbBwXwIHAAAKCRBN+rJwyqlt
++nkcEACEHAUInrpSbYPzxPpzEWe2tMO5OQa2URTA50F9i5TxJ5brGwhK2OLV+7oO
+IRx4xOTB8DYNjgik3E99xWctiBpSHOykSEEHcJelL3CN8hcmJKYlL5cdMlbZTs6+
+JV0jjp6QRgqBbHNUXNU9JBtH2PniKM54b9egcKbsljP5Y7OPrwStu08gd3lgnPHN
+6zGUfHjcwt1ojbVnhl71v3pgYBKox02za2vPvfGK4bTjZLRVekfFgeWFBeHGW7YC
+DeLjonBED96HSsBLvqWSCjrh/Ku31eV/nDrd/fhrQemmi9wshBPGVyWj9QzS8pIs
+4ShgOBdca6+3dJAPdK6dj3fEHF+6Z9UZvgD3FAan0G26l1JW7ryQsD/iQZ5AufxJ
+kR3IP8iiyaGBUhdggyrBqBEos1sSgtjpUewdUbKVwUPtPe5iwSFVyCpsK7M739dQ
+MQaEvxkvohL2bvNhX2T+BmSvVIleZAYJzuzPWJVzw5tfpyLoGMHhN+nO5VXm9t9E
+GSJbwDtmtkxAvoeJXghHr3VhNfZGlMiwoSDIJHTi6raD3Z6KMarXZb4ih+NG8FwX
+PD2lnw8/c4bj/eqSOQgPxeY+hJG8QwiUtnbg3tSu4xTVK9mnVEHH6HAG5aQyRnfy
+us6NTOOZZWaG7dJFsCCtjIWzJ0fGKESHz/b8V/Crl67tYJCZmbRQRGViaWFuIFNl
+Y3VyaXR5IEFyY2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgxMC9idXN0ZXIp
+IDxmdHBtYXN0ZXJAZGViaWFuLm9yZz6JAlQEEwEKAD4WIQReYbIXJl2pgHojxf9N
++rJwyqlt+gUCXLLnwAIbAwUJDwmcAAULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAK
+CRBN+rJwyqlt+umHEACJ9UGJy+3Ppc9W39C/CSO0/DUlTodwQ6jk1WW/ayp1hYX3
+nWJmtp0dhDdEYx0eGzczWN3oFhJh5/No7VM/WisTDuhhPHShOJ7u9g3OlJ270R5F
+fuMskaF6rtaiecTtX6W2xYlYDMEmutNZwVuMw/vtZdUq/cLGJ1DBgPXQ6lbX3o9j
+ufRIwrrDZ0OU1R1fFW6+uBEunixiNji3zcf5/Df9Kq5wO5wOL9OM/wRbHPbSDD9d
+3VODSiDdWcSBQVepMx7/PvmdL/466t+a1kGBMOP5IB8qo0TnpsULpzj7JN9vH8t7
+FLKhjB1vF2nxfSK6DZjZbVO7avrK+GbLmK7GBVaAl5V44W8vapTTnKZh2CqegDWG
+kAWx+L5+lzSL9Zolz+PJRgDnfASplWvLcogGQELqydbittmomDi/rUxcQ+eUQ1ki
+7o3MMBSJ5nqENluHg9eq3MsvzhM7+0O2KrsufHo4tFEdEVXV+5mMRp+cV23TNkd+
+MwL5MOYek2/LPzRR13n/VPdGbe7wJQN1LlbOq6aniDzEvyytQHhbUsOWvyrGN4ph
+wS+WIAovS0Tgs11uz8tiDO3dlkucyevRwbN44U7Xyopt7/T3X8tyJqphpasfQqsf
+z4V1BDtnqPtwdeb82dDgG3JA8fNilUfk3T14z1EaTnA0o+te9G8ktPzsePB8d4kC
+MwQQAQgAHRYhBOHPIN3/5LiegCZY8eCxGJT2auyYBQJcsuvHAAoJEOCxGJT2auyY
+x5oQAI2VXupB1fXFqBcbclXyRoiT9Bp02VvoLslHCkj0xECIFa6/c7qqBsfDd5Wo
+f/7ihyZHWt8IkYdzrOVnYUR7CsxJrEUzEeKBThWPL30dsVVyBVFW0SYei0T9RJvs
+DchAHezCvOaDNha3aZ7r2Ks+gYVFMI5gKZmtu2f7bObkvs4hB7BwfuTaOxlbWrJi
+SIlHnNL6HyRXMC5cfrRI4VRxZxL0Ud2tCe2ElcwM0wQQUv2WlCt4dM2Ti6oQaaT2
+e8d0Mt+xjj9K0oKcaVUs6BAKTq6Al/vO1sDlv/xuRzWyccPY6RZrXld6aP19yPHU
+HTJSrT0h4VPyT+7LElJl1gShldFwArFQmmNIssEQK6FtkTZkKa7YTRr1HVIA3+tV
+dJ3iiVxtsDzcysPBD52ZMtgNJALTVR5pzW9NIdJm05vhUyQSQxeb+fbBXbbLmUlI
+lPbbH6Z3RaVi3dGU45FkU+AjNrISTNzRjmzcb0UeYX1TRxFW7PotTYPNPJH3P0Zi
+7mPx5Iom2amgS3MMg7n/1uLbTCjfuG4JSi3kz+lWH2whYMhOa/9aosCozJA191hQ
+1XMT7q2rdTgW6SUfwAY/4gs3EaqTNNGOjk+1QyXBpq7nP2EKl/7ndjJuEM7hQwdD
+FkjsI9Zec0L/q/A/VN+pW1xcyKv9eAkd73EQGX9ubRs/N2CyiQIzBBABCAAdFiEE
+btb1y1+m+y9GCuiO7aDSOIriK6kFAlyy7OkACgkQ7aDSOIriK6ltIg/9EP1Zwe0t
+zXKKBvyUpIuTsYyZRz3w0rrv/2EuzMY8Y3UE/e0hYzPStvTPrXqR/Wuw1QRbIO10
+jXm4KW+mpbyDB7LK0gJvZFawynZp05z65NcvtvnPpxwYRtBsQ/aSQjj6oBLW7V21
+n2X5zFNERZcX0O0jwZQTn/g0hgMrd2lYIW6b54bvwmOnZgNrvpHRwPlLCPFPDjBs
+pXAS5eY1pWcQ8NrfRCk0yfxLZR2AtlaDoEmhswaGVjan+ccBhADnMwuCP9iECPiC
+kr3tMyVWGrVg+WoW968TrgHHIZC+7sxGHU8wF/9EPsRl+PSfUQLyUodV6+UfqRLL
+QnjOJBE8i1vOZjBpavMWFq+4ylYng8Swti/L+EQm2wGOJ/yzEuhb088FsorA+xEA
+Tgep7a7j6m+JouQCuzHJKgaSR0IYKe2T7F73RMrTZ3NDjosdaDeCOt0xq//4ubHq
+q9LBr8bsYUD2EAol9eGMxIrSxU8QY2RETxd+WBntvb7ZgPvCBC5aW0A9HD8xrcy+
+KIg3PWU7nMdqVVfRBZryEmdwrNboW8S/ud3xyDyUQSFoM2+LCEOuTuwhcD0NvciH
+oyL8V1cmJyMw+jCT8/Rit6XsAwXILbtSjU9Q8DkwNts5KsncSY6W3QR2t6fLiwzK
+a7qLCS2yApQGGG34B+BQWCbW/91wisyP60iJAjMEEAEKAB0WIQSA6XbxSlCKSOnK
+P+m8NyJSyhz5ZAUCXLLvBwAKCRC8NyJSyhz5ZAsaEACfrGCJKBZP7zbcE+EKI21V
+0megq3bd96gqKVGY5OsvODHAgvzCevXhl2LCEiXJCQj3JCDynwn9VVoInloK7XZd
+7iYb1BZ0Ce8PpPuXYji8vi1sHcTZZFm6H6uHoId+895er8a3GAOvWaaL953HA5fx
+dV87GYTTneKRxJJpMNu/idFn1ZdxfUwoOZnBFuKbyNAcc8WWRr7XCZDq8X0PBa3b
+Brp83h3sNKdSgofI3ZB9hND8cGxwJmxEKEYdVRf2NpEY/yywBXaXJ4QlWJRNdFAD
+t9mG1fdop3TsvSyFCGzL9d3tRFbm5rtVT9XAzSPuit3YmL0pyc8LcWfH+kcunR3n
+UvbtqKNGBBSz05wNkfu08l4TWPTQhui6/WgggYkrnjfOWibHncmpx//tGMvxaGBP
+sw2AzbMjONTaGYUfJ3xcpclaNtXfwdclHQnH++t/p8eaUn4wbmOU8HktgPa71WLn
+iKL3pSHOm5Fs4FxNiPO43PbB+UgUanUDwaGp7IGr5WDkp8D7yblrp/dmJKPko3R9
+THwuZEFUjJzznf429QbEsj/Q1NItO1ZIBCV3ApbE8KyU3ESfmmQes5IDt/uW/ucn
+Gl/F5fUvDcoN42SDBDSWas6SLPdM7MTWwodhrO6lkjQuDKOeGt/GCj7DcAX8Om7f
+fGw+R/Z9J6kuigyJviGYh4kCVQQQAQoAPxYhBPv6vbVBtdyVW9m6btsWz1uxJSXE
+BQJcs4vlIRpodHRwOi8vZ3BnLmdhbm5lZmYuZGUvcG9saWN5LnR4dAAKCRDbFs9b
+sSUlxHrtEACK50akHPDqKH/H54xcNoBkPB7IudBLptUR3fsfmq/CzrDXYUiFPIBd
+C4alSyIA0aYQ5nfCac54VM+SYHMtzeSMle2EuTBqU+NVhKUOrVlvOjvFKqWx2Vnc
+ntOFQs5gTtu97nTDjuycXvX4w8GU7SVnpil0OD0wLSEMw6x12A4H56Pvtzu0drCa
+mJSrJ/35iGI9TypmAN5T9kjMqrTeifpxEcUFvdOOOL2mpIBg6F8XuAYvMMX8rGB2
+ZeQgZyAZOzNMCtLwOu2NQdFtFVR/sEdNZRf9t+46oCh7zOb2iPcLciUodfg6CEGr
+t9C6bplDebKfOQu3VZAVa9cmDiThoDGr3Lx5toNHbDO8D6qZgbPcM0/cNDz6eOuS
+JS9QSATXRC7Gvjf+Ltd5Y23sa6Bsbegix9BoJP1qkqI0XDi0sG4AEMD+TrWLYDVR
+/NqbSub5RcLcjFJczC99/j+BV61wus/Fyyi1OTI9iOChwcvqLbpn7M5wxnuVgxO0
+i0rimePznFprwQ4gshG3ioQNkoApW91z8NyuyDLIk7lnLyTvkwJ05ntY2RQH8q3S
+sgKUE9Qacowjm6ZKEOivG5bCZnoaPsMqYfDQXqa2M7Ytz6tlE+v9VfgIyz2Jurav
+OchTNV2CR9Qi4A7PS2Z5O3gDY8NwiEpivCQTZ6aR1U1/estvRqVpC7kCDQRcsufA
+ARAAzTM+elVKuyb29MUg+cjp1cAntXmkErLF5RmWmhR7BndQEoLWg+BcjnCevxub
+ZLffbeasYue4HWdyG8KUXCCS7h5/R+2J7f15So7k21MC2Yn4rJpKmdHOTAlGmKo7
+D6B5vwvSF1EQxFH3PRfVRDoM9qtx4+C/3uq7MBXSXBAshGsBnQTZgdDt8odk5Awt
+2xOrC+EY1X/nG06bNvwKYWrNDFsc/tTjRKl4Jd+Unq/JLcKwv5CPLiSSFlLWrcDS
+RorcxklKyhfGcaCofcS00EDu+7qK7Z3958zqZWeTR5zW4mPcGpcg8Em6G1qX8lAk
+rv5VltjJQajIjSGreMo9aHiOARjrJ/st3SY7YuSzJuHdxHbldk8fV7/npaSHn4DN
+f00oOsgpe09XhmsqxVhYI8MxgzP5NScRNVEVKsWiL3WANos/EjTln3pISTmrGwq2
+FFhTd2/8fk9cp6wZAh/UyJdX3CfdWdgRFM509zcy6ej7dlYkYnIOw2eHwEwCi4PK
+klBjHaFXCbkP33oidhZMr89mfMRBy4mpwDAhM5bv+UA2qBhIMQtwjtrbvW/QjeRY
+EKDTrli6hupzGNleajcvEynOztL0miu0ytkDEjTYKEXF6UykoOl0AWHX8US3dIHo
+7cUUk6JuN55nQpeDIJ9eQuBmQEqJtWVJeB350Np7EDIc3t0AEQEAAYkEcgQYAQoA
+JhYhBF5hshcmXamAeiPF/036snDKqW36BQJcsufAAhsCBQkPCZwAAkAJEE36snDK
+qW36wXQgBBkBCgAdFiEEUjfO7vIS89UcdKvgESaVoOVisyoFAlyy58AACgkQESaV
+oOVisypOpw/+P3UwCLsfpLuAs0QpNUJflPNm0AskKDUW07M14SKMK6pu/EbkQE1k
+Cr0hKeHRjd1dGeMl7Bkihpi+8RS6ZSt8L2rcQwah9INDQRytjW4r6t4lB78q3IrI
+NrBHEA40hJNbk+pcOQ47kTMi+BttiwPos/cpbioSEDVO1Mndfg2vtpmjogqE1Hyw
+ZcQWpZYKAgsUsengFLTEmECRRRS8KbICYyVCXUXe8gCfcgiDs7piKMGmc+vd62gT
+aNVoC8jkFQwWLvZzZjKb7GFS/5I8FkbfGwtOGqZYYGVWf7sb7WEQfO57HKxUjnGI
+bCvQYbgu2uM1zkTniy2fubXQ7wWrxZQPSXhY2b+DHtmLMxhSPi4mTo+BItVbj72L
+sxW8HhxcjarYRopwWf82DbZbnrGdex7X5JK00mBoOEjzXcFM+ySIzDjfrTC+a6Bn
+okMti++EDdIcFmu4fBO7S7zee6nnbT26TbMPsUvNZmU2jhJyFpyBr2PKh1aIblMp
+SywAYsniDtQCPMbUD4k3VAShwGG2CAYKeVnyg2ov4pHtcOHU+Z1hUi3rhnwZ2VuI
+mymeO3/7kq6MUK8Gu7EHUm4su3Rbt+zlY0rsPKXn3qPE+uVDKPWVz7tLI6/o3JrR
+9p8HNl7bVgSw+J+oWfGexk7T/oJB64t75EnkiZWQtzYdvziE2F2cwcVy+g/+MBKd
+h6SrGvzRaVoZEnvspphpuKgdme9FEXuqmUapwztwNK71+SkjX/lJNWNun03HQQ3T
+8j7tLlwEu6AUPQE3cUhKeezt8vV4VA0IQ++itQvjm+ZKdeLAVSyW8L+kjBhvDUug
+2VLGrAEaH1syAjJiQsvIReO9q3QujBzGtREXeJgSFLi7feQvP6+QW25zNnVlsamS
+++A7Tyy3WI1ABQqK0BqcwxkoOQaK1s5F6BsRH1G90jkYwl6eU6cGJYIo9dqA0/+O
+lG/uRxXBmFxuNlK/kN1uJc0uutrmXgcQBHlHdS7MQyNAHJ3UYSTISUOJgsqMQGei
+Z39UpBgL50ZJU9KUXxJYWUzr/YEtRzzVlr/b4+AxsAMjZdAeimZ8Y2YHA7P+M4z7
+pKt8AjLI7Pe6xKOO2CoZkqFv18h8MO+yXeBR8iJQQXPVUZCyJl21eQ1DpvpTxR9A
+4FCZrahNExsTZA9wv6lLCS7fVGrbgi7sIV1gG9R2reGnkHSn0c7g3RBdnoDSbebl
+IfIU0uATOn4umDTEgg3jim+qco1JdnghlYdDMtzHB+xk+MzmH4d3xfi2W6XfZnbd
+ISUL8jzK6Al6fegHQc4u3SSPj2n1KtSfN8V6QUxYc0AhAEg6SZsPQMqdQI1rEOmQ
+8V9DmVt99tlJJvTXFUXZ7K2JMX0f8pDW7KtR0zI=
+=xBv7
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/debian-archive-buster-stable.asc b/apt/trusted.gpg.d/debian-archive-buster-stable.asc
new file mode 100644 (file)
index 0000000..e9fe5b5
--- /dev/null
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFxZ9FABEADPEDVwAUd10zcdnQJF7klaxK1mcTEUd+xfNAKBjhvP69XdAf54
+7PS8Xid9zMAK/JARzLsZj5STy1VQQrPGOkSqPKA+gSpW8CmEWwfL/VTfQFFrJ9kb
+1eArtb3FFk3qdtLih38t5JUhm0PidKcThemoi3kfVfoK3iWnfnb36RuNG75H73gf
+/5i3C4Wq+dGusGXWxz15E9qACja3i/r239unHKvfEFWXQU6IyNYkz8o/hG/knRCX
+DTBKbzKt4AH7LQFoLsd+qN8DNUUjxIUZyDTxJac5TXTWKiiOXsxzUmcgZBO+FT8b
+Nx19fq9leIqxcBGdXU1TT2STwcgku9QtIKdm8wq0IrlbLjEasmmpeEx6WAIvaZfx
+U2hFIKhYJXue2LTu2eUgxFBPUwQYoClCBUDuJgA9n+Z4HGKlibiUhf3HF+KIxqzr
+woQn+rac6eVJowsPPN8maeMwltjAdkfSHGWQkgGPPCaGwJj7shq2qJBYmbEbC5j6
+02ZJS1srmvJbQrKhG+jdPDADDhwLq5vEQysqcJJ72+vAKjMHOTWc026zwQz3evvO
+p6LsrJ+l0kyH1CjMhmumr4A/d+GSFGxzUR6BRAGigSYKQdPWb7Fb9fEuTsa1kp9k
+cqRMMGxPYNQsBPu+h0PIMMHEYY5WOMaKni7bE7lfxSdcnDG6TbtAy4zcQwARAQAB
+tEdEZWJpYW4gU3RhYmxlIFJlbGVhc2UgS2V5ICgxMC9idXN0ZXIpIDxkZWJpYW4t
+cmVsZWFzZUBsaXN0cy5kZWJpYW4ub3JnPokCVAQTAQoAPhYhBG0zhm7dj/pBwBQ6
+7dzJ77934RUXBQJcWfRQAhsDBQkPCZwABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheA
+AAoJENzJ77934RUX/woQAICqnZKgvhZrYU/ogF1Kbx1oPYWg1Dz8ErQtXbFqcSeU
+JBsG2eJFHkR//sqeKGFYcE8xHN9oX8i9UMUvmb6FtMMTK9wJ99sSA/PFWJT6FbZo
+Eflx27q3fJfzcGGAgtslXBEqYVcyBv6KUQk/d+OC73rdFAH+53BuWFLQKxPFEa3l
+U7QLo0oyWH4gKXVGs2D+Bo4sRSa0NzcJoUQXTi04f2RU/4Zs4ar/tYopMoA3H0hC
+axZLfrSFtXpb7n3IsivP4mwdaPDSRavLZuNoc/Vze4RGmd0rtC/HyUBHVVMJ17Q2
+2WD7eCEhq8XBbh2u1xZWW3WjRgZxlIdvBu78+A0Kiz0noobA/pwPqYAtMmY3hB+8
+AuaYYWiM53HhySp0m/XkIMOCHZiAaOe4mTf1rrj2qsEH9ZqHljqLD1Bas5NIy2AD
+Q2t5MJiNLKKI54cNCsYB2gkCNNoBN+wYRzbrFPMGFxFk/dnb7gRIsqq60t+cwfdt
+Y8QlyI0ss1uWhaB7ORXNC7hOziTM1nJ3rCQy5LY1pUyb7WecYIRG2niLIb8bXlml
+XA+jyVQ/Ft8FL33drvXdIrNobNz5Q9PZUSC0Ll2OYkbTzioxTMv8o0SPkz7xawvq
+cOhWyNdf7E0/SUf4T75jCZ3zqaZOucNBRekumcUme+6ua8+W0iC4Jtmot5yh4oaZ
+=a/CW
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/frank.brehm.asc b/apt/trusted.gpg.d/frank.brehm.asc
new file mode 100644 (file)
index 0000000..c7f1b9f
--- /dev/null
@@ -0,0 +1,98 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFdj9dcBEADfCy/wCwo2Nbu3wT6Rg3GInCx8E8QSUtNg2sPUisKD3M9dxp0z
+2ygy9ssL4p1u7h4QK0koQW7ciuauTx31Y7Zvs7hybiOTsh9lI+5DZaz4R5whCmJb
+3FICK7jN9UmRSrh2ztJsgkbDU67SRGwtel8OuPow1O/2nOT2EGPzeaToSoctZeBN
+et/zksOs1wyghbXMEgplQBspaKfr9UAYwKwYcQer7Kw9TaD2QHt370WFV14uMD7S
+GGbD+JUNo8u4vhpjjOfEwB3IAbCAKM62WFbx0mxV+h0EcOwJ0F5vr7Q4xJgOSQXh
+V1ATi91qSRkcu1qZjrT5sdkPqBkUcnBvXlzIMbDmgB7e94OJwA9RW9n44clJe6ok
+PIdKmKfurmrssB6o0JKI3f3DXwOF4T3K7KGTKAzUexQHFe8yAQb/2h/woqzMFWVK
+qXR85S5VGfyofGLtjD8/kKPoOf1nAG7TRaJI3T7neOHncIl7gc9D8GQP+b0gpbtG
+NmFilyQAs7ygBZHF0YoUmOgInDOgizBoNCBJm5jSfdjpvzzo9IuoaN6sHMjxmwoH
+UV0M+t3L6/zNuh+r6By0ao/iyghsyh8Fcum8uHUuziLhUgJfJUidn1RFbTt0rbhk
+vzd/EuUYwwq5a01Z4qJXMHWry7JuUfgQN9B3OybZGfHmriwjcRJa5uZbxQARAQAB
+tDxSZXBvc2l0b3J5IEFkbWluIGZvciBGcmFuayBCcmVobSA8cGFja2FnZXNAYnJl
+aG0tb25saW5lLmNvbT6JAjcEEwEIACECGwMCHgECF4AFAldj/m0FCwkIBwMFFQoJ
+CAsFFgIDAQAACgkQh6jb1reW4Sq40RAA1bzL6v0PqApIlY8DTkSADKBq+7oV2mBV
+e1ZO4sj6KBolWkVlGhgUvqOUjEyNmN4NsGH2lY2n5dfwC3EIW5rz8BCC8nxWflp1
+8+YUvkKiF3SMxRVqCVvDnxDLCG4JfwCX+GTBj7FiFMHJHQIJZH9gCdYt60fxY1TL
+sDOgf8WVKZ/YF7L5IRDvPD4FpA5qV7fo/w8yWWY4ctm3iZyCYuOLo9nXY+PcJuc4
+FN+sb66blHE0Q53GgHtIZPu73mfmdrqhtGUhwgPAM+6mEyAiRwxRssrgfmyjd/ZG
+j7Uo22mUcBYs97K7/7qujNpMmxsVRm0yC3ImnciS0NHfqEU5dm6nbILqA897uyac
+Ps5CC/bzV0kFirp6oaOXFXXERC46WdU0w7+rjimpsIML+IwLy4TmWsfCR3V3Pfys
+7JrSLN2QNh3aKMloWTK0TzYcl5OzRzqzCUfUy2+GPl6j232i0jFwrbPrOpNY81Pj
+V1Cmcgtijk4u5N8tii5l4eGrb1U2Pw6dORg6su27brb9N0ouDNiRtLpagwYLnNpf
+CDTjVN3o0bGf+PnZDOf1Y4Bt22KYujTcDHzN8sozRQM05MaJj5QVbz+lrEtsRfoQ
+zZDGokvL3PxDqDkBX/1i6cx3dGFhZx0EvDgcU5+x4f33VV2dvpOoyQRbvAC2qxue
+rBwR5qJzGwy5Ag0EV2P11wEQAKkgfEIJwhnlWxWCX8/TMIH0MbdMN5j9CKk88E9/
+XCL4x9AsgkX7gqy2FlDMecq/QdgjnE5RsQNOPHLloPZoIyIKdGrHxff14iUyQT4Z
+oJAeHgVyiZRsjlJy0dicPaOD20WV5bkf2Qa8XmQ3qj791Yi5l8MuadopyaLXzOD1
+GpL5PI4bmJuWQ91ew4gQqygjc4gMzgWgQUDdpTGsPLDm1g0fEzGeQ4RwBBFb6374
+d/oghdaMM4+1KeoN+5TyCurOwZW/+mH2ex89xdx0+dRl0gShnOC9AhI6zGz9yijX
+ZFA48I53JV3pYaUEtFyGD/UDwoXnWW6ZdVIW38xrNrVxO6ZuJ3haV7jzQKm2JSkP
+u1uCvjr6avyx8EQ6O9xX+APx7XjEFVvdEkqwv2LA3swdDDKiLUTYZeMiHpzI4aD3
+s1XcWgGT5hSdvavH3390kQwRPmK8bdGT9ZFsiRrH+vp7ndUi1S49UDWKQkNHIPeW
+f61hX16EJhYxeK7Fchzqo0/mBBWpIv0WRP7iwt1C3b8Vq4FFuPG4vkmAMzEfuK23
+5IcRVHhFz6qEMxcV5PXRkUAKJGmgfBqJzBVrc3KdrVcxvdBVSDX8bzfL45nuaipp
+xbBQTruHbmSJCkLGWWLFfvm7kRT+WGVoOYxca0a9MkrzVZBTYl8FJOFIFysQDTyW
++iF7ABEBAAGJAh8EGAEIAAkFAldj9dcCGwwACgkQh6jb1reW4Sq3/g//UZ7qjNkz
+EAWsMTqzD2BsAW2rSlWJfJ5+aqTb4ilPX2lOL1q7h1JQKZ0ZJweelyIuIItVlWwm
+Cuu5fwDsmgkWflZtKkNdQ7pYiibUEMKxymILhTHn5UusfsASs8YiO/9eJtVmbuzg
+nUoSvjdhoUGDYmztmvJtQkfCJnf2fBNnnTTbHOB75M5WHPBcdKEhOHv91q3z+0nC
+OOLyIkLZ4Xwdy7zzGZSg1NOmhN59DTEqnIxA7TVAHZwh1OiY76TRfIcc9Y8LZf/t
+73z39I+lnysppfuS8CuYHGg4/AXqfVTqq5HOsVBpszIpkicd5i9dkBSwCFK/rz4s
+y4l66ft/QLg8J20EMuoIalJExFhR9svOf5jO4sjWjtjjz3QLafjAafGZjftKj6Ys
+COzn2ccQFyxT6LOCj1sYb2ZzGfPMIVf1N2iXJ4COV4ugVKE0364mEx/xwae189wd
+9ThPXCqg3K4IErNFi2hHsP08a0M9ICF+iWydQqode8q8ogFthqFY/NEzM29AUYyK
+m9AbzCBIh9DCDljnevBQ31BLt+Q0Dr0ZvG21W9yPVQrkYBR2iJ/vol3d+E8FEpiN
+3X+GofRaN3Ix1+qwIhxyT8DWtbGBVQwUQId2QuUFNZKAooWpfaoWASJNkzutJM9n
+og4IHx4/ewCHpZw0I5gSrvEl8ClADzV82g+ZAg0EV2P11wEQAN8LL/ALCjY1u7fB
+PpGDcYicLHwTxBJS02Daw9SKwoPcz13GnTPbKDL2ywvinW7uHhArSShBbtyK5q5P
+HfVjtm+zuHJuI5OyH2Uj7kNlrPhHnCEKYlvcUgIruM31SZFKuHbO0myCRsNTrtJE
+bC16Xw64+jDU7/ac5PYQY/N5pOhKhy1l4E163/OSw6zXDKCFtcwSCmVAGylop+v1
+QBjArBhxB6vsrD1NoPZAe3fvRYVXXi4wPtIYZsP4lQ2jy7i+GmOM58TAHcgBsIAo
+zrZYVvHSbFX6HQRw7AnQXm+vtDjEmA5JBeFXUBOL3WpJGRy7WpmOtPmx2Q+oGRRy
+cG9eXMgxsOaAHt73g4nAD1Fb2fjhyUl7qiQ8h0qYp+6uauywHqjQkojd/cNfA4Xh
+PcrsoZMoDNR7FAcV7zIBBv/aH/CirMwVZUqpdHzlLlUZ/Kh8Yu2MPz+Qo+g5/WcA
+btNFokjdPud44edwiXuBz0PwZA/5vSClu0Y2YWKXJACzvKAFkcXRihSY6AicM6CL
+MGg0IEmbmNJ92Om/POj0i6ho3qwcyPGbCgdRXQz63cvr/M26H6voHLRqj+LKCGzK
+HwVy6by4dS7OIuFSAl8lSJ2fVEVtO3StuGS/N38S5RjDCrlrTVniolcwdavLsm5R
++BA30Hc7JtkZ8eauLCNxElrm5lvFABEBAAG0PFJlcG9zaXRvcnkgQWRtaW4gZm9y
+IEZyYW5rIEJyZWhtIDxwYWNrYWdlc0BicmVobS1vbmxpbmUuY29tPokCNwQTAQgA
+IQIbAwIeAQIXgAUCV2P+bQULCQgHAwUVCgkICwUWAgMBAAAKCRCHqNvWt5bhKrjR
+EADVvMvq/Q+oCkiVjwNORIAMoGr7uhXaYFV7Vk7iyPooGiVaRWUaGBS+o5SMTI2Y
+3g2wYfaVjafl1/ALcQhbmvPwEILyfFZ+WnXz5hS+QqIXdIzFFWoJW8OfEMsIbgl/
+AJf4ZMGPsWIUwckdAglkf2AJ1i3rR/FjVMuwM6B/xZUpn9gXsvkhEO88PgWkDmpX
+t+j/DzJZZjhy2beJnIJi44uj2ddj49wm5zgU36xvrpuUcTRDncaAe0hk+7veZ+Z2
+uqG0ZSHCA8Az7qYTICJHDFGyyuB+bKN39kaPtSjbaZRwFiz3srv/uq6M2kybGxVG
+bTILciadyJLQ0d+oRTl2bqdsguoDz3u7Jpw+zkIL9vNXSQWKunqho5cVdcRELjpZ
+1TTDv6uOKamwgwv4jAvLhOZax8JHdXc9/KzsmtIs3ZA2HdooyWhZMrRPNhyXk7NH
+OrMJR9TLb4Y+XqPbfaLSMXCts+s6k1jzU+NXUKZyC2KOTi7k3y2KLmXh4atvVTY/
+Dp05GDqy7btutv03Si4M2JG0ulqDBguc2l8INONU3ejRsZ/4+dkM5/VjgG3bYpi6
+NNwMfM3yyjNFAzTkxomPlBVvP6WsS2xF+hDNkMaiS8vc/EOoOQFf/WLpzHd0YWFn
+HQS8OBxTn7Hh/fdVXZ2+k6jJBFu8ALarG56sHBHmonMbDLkCDQRXY/XXARAAqSB8
+QgnCGeVbFYJfz9MwgfQxt0w3mP0IqTzwT39cIvjH0CyCRfuCrLYWUMx5yr9B2COc
+TlGxA048cuWg9mgjIgp0asfF9/XiJTJBPhmgkB4eBXKJlGyOUnLR2Jw9o4PbRZXl
+uR/ZBrxeZDeqPv3ViLmXwy5p2inJotfM4PUakvk8jhuYm5ZD3V7DiBCrKCNziAzO
+BaBBQN2lMaw8sObWDR8TMZ5DhHAEEVvrfvh3+iCF1owzj7Up6g37lPIK6s7Blb/6
+YfZ7Hz3F3HT51GXSBKGc4L0CEjrMbP3KKNdkUDjwjnclXelhpQS0XIYP9QPChedZ
+bpl1UhbfzGs2tXE7pm4neFpXuPNAqbYlKQ+7W4K+Ovpq/LHwRDo73Ff4A/HteMQV
+W90SSrC/YsDezB0MMqItRNhl4yIenMjhoPezVdxaAZPmFJ29q8fff3SRDBE+Yrxt
+0ZP1kWyJGsf6+nud1SLVLj1QNYpCQ0cg95Z/rWFfXoQmFjF4rsVyHOqjT+YEFaki
+/RZE/uLC3ULdvxWrgUW48bi+SYAzMR+4rbfkhxFUeEXPqoQzFxXk9dGRQAokaaB8
+GonMFWtzcp2tVzG90FVINfxvN8vjme5qKmnFsFBOu4duZIkKQsZZYsV++buRFP5Y
+ZWg5jFxrRr0ySvNVkFNiXwUk4UgXKxANPJb6IXsAEQEAAYkCHwQYAQgACQUCV2P1
+1wIbDAAKCRCHqNvWt5bhKrf+D/9RnuqM2TMQBawxOrMPYGwBbatKVYl8nn5qpNvi
+KU9faU4vWruHUlApnRknB56XIi4gi1WVbCYK67l/AOyaCRZ+Vm0qQ11DuliKJtQQ
+wrHKYguFMeflS6x+wBKzxiI7/14m1WZu7OCdShK+N2GhQYNibO2a8m1CR8Imd/Z8
+E2edNNsc4HvkzlYc8Fx0oSE4e/3WrfP7ScI44vIiQtnhfB3LvPMZlKDU06aE3n0N
+MSqcjEDtNUAdnCHU6JjvpNF8hxz1jwtl/+3vfPf0j6WfKyml+5LwK5gcaDj8Bep9
+VOqrkc6xUGmzMimSJx3mL12QFLAIUr+vPizLiXrp+39AuDwnbQQy6ghqUkTEWFH2
+y85/mM7iyNaO2OPPdAtp+MBp8ZmN+0qPpiwI7OfZxxAXLFPos4KPWxhvZnMZ88wh
+V/U3aJcngI5Xi6BUoTTfriYTH/HBp7Xz3B31OE9cKqDcrggSs0WLaEew/TxrQz0g
+IX6JbJ1Cqh17yryiAW2GoVj80TMzb0BRjIqb0BvMIEiH0MIOWOd68FDfUEu35DQO
+vRm8bbVb3I9VCuRgFHaIn++iXd34TwUSmI3df4ah9Fo3cjHX6rAiHHJPwNa1sYFV
+DBRAh3ZC5QU1koCihal9qhYBIk2TO60kz2eiDggfHj97AIelnDQjmBKu8SXwKUAP
+NXzaDw==
+=TpPn
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/apt/trusted.gpg.d/frank.brehm.gpg b/apt/trusted.gpg.d/frank.brehm.gpg
new file mode 100644 (file)
index 0000000..fb17f88
Binary files /dev/null and b/apt/trusted.gpg.d/frank.brehm.gpg differ
diff --git a/at.deny b/at.deny
new file mode 100644 (file)
index 0000000..0d5a382
--- /dev/null
+++ b/at.deny
@@ -0,0 +1,24 @@
+alias
+backup
+bin
+daemon
+ftp
+games
+gnats
+guest
+irc
+lp
+mail
+man
+nobody
+operator
+proxy
+qmaild
+qmaill
+qmailp
+qmailq
+qmailr
+qmails
+sync
+sys
+www-data
diff --git a/bash.bashrc b/bash.bashrc
new file mode 100644 (file)
index 0000000..7fabe82
--- /dev/null
@@ -0,0 +1,58 @@
+# System-wide .bashrc file for interactive bash(1) shells.
+
+# To enable the settings / commands in this file for login shells as well,
+# this file has to be sourced in /etc/profile.
+
+# If not running interactively, don't do anything
+[ -z "$PS1" ] && return
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+    debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, overwrite the one in /etc/profile)
+# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
+if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
+  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+
+# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
+# If this is an xterm set the title to user@host:dir
+#case "$TERM" in
+#xterm*|rxvt*)
+#    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
+#    ;;
+#*)
+#    ;;
+#esac
+
+# enable bash completion in interactive shells
+#if ! shopt -oq posix; then
+#  if [ -f /usr/share/bash-completion/bash_completion ]; then
+#    . /usr/share/bash-completion/bash_completion
+#  elif [ -f /etc/bash_completion ]; then
+#    . /etc/bash_completion
+#  fi
+#fi
+
+# if the command-not-found package is installed, use it
+if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
+       function command_not_found_handle {
+               # check because c-n-f could've been removed in the meantime
+                if [ -x /usr/lib/command-not-found ]; then
+                  /usr/lib/command-not-found -- "$1"
+                   return $?
+                elif [ -x /usr/share/command-not-found/command-not-found ]; then
+                  /usr/share/command-not-found/command-not-found -- "$1"
+                   return $?
+               else
+                  printf "%s: command not found\n" "$1" >&2
+                  return 127
+               fi
+       }
+fi
diff --git a/bash_completion b/bash_completion
new file mode 100644 (file)
index 0000000..41ffe59
--- /dev/null
@@ -0,0 +1 @@
+. /usr/share/bash-completion/bash_completion
diff --git a/bash_completion.d/git-prompt b/bash_completion.d/git-prompt
new file mode 100644 (file)
index 0000000..8b5852a
--- /dev/null
@@ -0,0 +1,11 @@
+# In git versions < 1.7.12, this shell library was part of the
+# git completion script.
+#
+# Some users rely on the __git_ps1 function becoming available
+# when bash-completion is loaded.  Continue to load this library
+# at bash-completion startup for now, to ease the transition to a
+# world order where the prompt function is requested separately.
+#
+if [[ -e /usr/lib/git-core/git-sh-prompt ]]; then
+       . /usr/lib/git-core/git-sh-prompt
+fi
diff --git a/bind/bind.keys b/bind/bind.keys
new file mode 100644 (file)
index 0000000..1ac4a56
--- /dev/null
@@ -0,0 +1,49 @@
+# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+#
+# SPDX-License-Identifier: MPL-2.0
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at https://mozilla.org/MPL/2.0/.
+#
+# See the COPYRIGHT file distributed with this work for additional
+# information regarding copyright ownership.
+
+# The bind.keys file is used to override the built-in DNSSEC trust anchors
+# which are included as part of BIND 9.  The only trust anchors it contains
+# are for the DNS root zone (".").  Trust anchors for any other zones MUST
+# be configured elsewhere; if they are configured here, they will not be
+# recognized or used by named.
+#
+# To use the built-in root key, set "dnssec-validation auto;" in the
+# named.conf options, or else leave "dnssec-validation" unset.  If
+# "dnssec-validation" is set to "yes", then the keys in this file are
+# ignored; keys will need to be explicitly configured in named.conf for
+# validation to work.  "auto" is the default setting, unless named is
+# built with "configure --disable-auto-validation", in which case the
+# default is "yes".
+#
+# This file is NOT expected to be user-configured.
+#
+# Servers being set up for the first time can use the contents of this file
+# as initializing keys; thereafter, the keys in the managed key database
+# will be trusted and maintained automatically.
+#
+# These keys are current as of Mar 2019.  If any key fails to initialize
+# correctly, it may have expired.  In that event you should replace this
+# file with a current version.  The latest version of bind.keys can always
+# be obtained from ISC at https://www.isc.org/bind-keys.
+#
+# See https://data.iana.org/root-anchors/root-anchors.xml for current trust
+# anchor information for the root zone.
+
+trust-anchors {
+        # This key (20326) was published in the root zone in 2017.
+        . initial-key 257 3 8 "AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3
+                +/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kv
+                ArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF
+                0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+e
+                oZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfd
+                RUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwN
+                R1AkUTV74bU=";
+};
diff --git a/bind/db.0 b/bind/db.0
new file mode 100644 (file)
index 0000000..0cbfc38
--- /dev/null
+++ b/bind/db.0
@@ -0,0 +1,12 @@
+;
+; BIND reverse data file for "this host on this network" zone
+;
+$TTL   604800
+@      IN      SOA     localhost. root.localhost. (
+                             1         ; Serial
+                        604800         ; Refresh
+                         86400         ; Retry
+                       2419200         ; Expire
+                        604800 )       ; Negative Cache TTL
+;
+@      IN      NS      localhost.
diff --git a/bind/db.127 b/bind/db.127
new file mode 100644 (file)
index 0000000..cd05bef
--- /dev/null
@@ -0,0 +1,13 @@
+;
+; BIND reverse data file for local loopback interface
+;
+$TTL   604800
+@      IN      SOA     localhost. root.localhost. (
+                             1         ; Serial
+                        604800         ; Refresh
+                         86400         ; Retry
+                       2419200         ; Expire
+                        604800 )       ; Negative Cache TTL
+;
+@      IN      NS      localhost.
+1.0.0  IN      PTR     localhost.
diff --git a/bind/db.255 b/bind/db.255
new file mode 100644 (file)
index 0000000..e3aabdb
--- /dev/null
@@ -0,0 +1,12 @@
+;
+; BIND reverse data file for broadcast zone
+;
+$TTL   604800
+@      IN      SOA     localhost. root.localhost. (
+                             1         ; Serial
+                        604800         ; Refresh
+                         86400         ; Retry
+                       2419200         ; Expire
+                        604800 )       ; Negative Cache TTL
+;
+@      IN      NS      localhost.
diff --git a/bind/db.empty b/bind/db.empty
new file mode 100644 (file)
index 0000000..8a12858
--- /dev/null
@@ -0,0 +1,14 @@
+; BIND reverse data file for empty rfc1918 zone
+;
+; DO NOT EDIT THIS FILE - it is used for multiple zones.
+; Instead, copy it, edit named.conf, and use that copy.
+;
+$TTL   86400
+@      IN      SOA     localhost. root.localhost. (
+                             1         ; Serial
+                        604800         ; Refresh
+                         86400         ; Retry
+                       2419200         ; Expire
+                         86400 )       ; Negative Cache TTL
+;
+@      IN      NS      localhost.
diff --git a/bind/db.local b/bind/db.local
new file mode 100644 (file)
index 0000000..2f272d4
--- /dev/null
@@ -0,0 +1,14 @@
+;
+; BIND data file for local loopback interface
+;
+$TTL   604800
+@      IN      SOA     localhost. root.localhost. (
+                             2         ; Serial
+                        604800         ; Refresh
+                         86400         ; Retry
+                       2419200         ; Expire
+                        604800 )       ; Negative Cache TTL
+;
+@      IN      NS      localhost.
+@      IN      A       127.0.0.1
+@      IN      AAAA    ::1
diff --git a/bind/named.conf b/bind/named.conf
new file mode 100644 (file)
index 0000000..bc71baa
--- /dev/null
@@ -0,0 +1,11 @@
+// This is the primary configuration file for the BIND DNS server named.
+//
+// Please read /usr/share/doc/bind9/README.Debian for information on the
+// structure of BIND configuration files in Debian, *BEFORE* you customize
+// this configuration file.
+//
+// If you are just adding zones, please do that in /etc/bind/named.conf.local
+
+include "/etc/bind/named.conf.options";
+include "/etc/bind/named.conf.local";
+include "/etc/bind/named.conf.default-zones";
diff --git a/bind/named.conf.default-zones b/bind/named.conf.default-zones
new file mode 100644 (file)
index 0000000..1a85ad3
--- /dev/null
@@ -0,0 +1,30 @@
+// prime the server with knowledge of the root servers
+zone "." {
+       type hint;
+       file "/usr/share/dns/root.hints";
+};
+
+// be authoritative for the localhost forward and reverse zones, and for
+// broadcast zones as per RFC 1912
+
+zone "localhost" {
+       type master;
+       file "/etc/bind/db.local";
+};
+
+zone "127.in-addr.arpa" {
+       type master;
+       file "/etc/bind/db.127";
+};
+
+zone "0.in-addr.arpa" {
+       type master;
+       file "/etc/bind/db.0";
+};
+
+zone "255.in-addr.arpa" {
+       type master;
+       file "/etc/bind/db.255";
+};
+
+
diff --git a/bind/named.conf.local b/bind/named.conf.local
new file mode 100644 (file)
index 0000000..7a57b10
--- /dev/null
@@ -0,0 +1,8 @@
+//
+// Do any local configuration here
+//
+
+// Consider adding the 1918 zones here, if they are not used in your
+// organization
+//include "/etc/bind/zones.rfc1918";
+
diff --git a/bind/named.conf.options b/bind/named.conf.options
new file mode 100644 (file)
index 0000000..32d127d
--- /dev/null
@@ -0,0 +1,29 @@
+options {
+       directory "/var/cache/bind";
+
+       // If there is a firewall between you and nameservers you want
+       // to talk to, you may need to fix the firewall to allow multiple
+       // ports to talk.  See http://www.kb.cert.org/vuls/id/800113
+
+       // If your ISP provided one or more IP addresses for stable 
+       // nameservers, you probably want to use them as forwarders.  
+       // Uncomment the following block, and insert the addresses replacing 
+       // the all-0's placeholder.
+
+       // forwarders {
+       //      0.0.0.0;
+       // };
+
+       //========================================================================
+       // If BIND logs error messages about the root key being expired,
+       // you will need to update your keys.  See https://www.isc.org/bind-keys
+       //========================================================================
+       dnssec-validation auto;
+
+       listen-on-v6 { any; };
+       listen-on { any; };
+
+       version "none";
+};
+
+// vim: ts=4 filetype=named noai
diff --git a/bind/rndc.key b/bind/rndc.key
new file mode 100644 (file)
index 0000000..cceafba
--- /dev/null
@@ -0,0 +1,4 @@
+key "rndc-key" {
+       algorithm hmac-sha256;
+       secret "AO+L8GqHFlChIg13WzsJ1rgncI2Bm+gpfPY09X4mn58=";
+};
diff --git a/bind/zones.rfc1918 b/bind/zones.rfc1918
new file mode 100644 (file)
index 0000000..03b5546
--- /dev/null
@@ -0,0 +1,20 @@
+zone "10.in-addr.arpa"      { type master; file "/etc/bind/db.empty"; };
+zone "16.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "17.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "18.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "19.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "20.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "21.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "22.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "23.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "24.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "25.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "26.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "27.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "28.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "29.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "30.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+zone "31.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
+
+zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
diff --git a/bindresvport.blacklist b/bindresvport.blacklist
new file mode 100644 (file)
index 0000000..1dc056e
--- /dev/null
@@ -0,0 +1,15 @@
+#
+# This file contains a list of port numbers between 600 and 1024,
+# which should not be used by bindresvport. bindresvport is mostly
+# called by RPC services. This mostly solves the problem, that a
+# RPC service uses a well known port of another service.
+#
+631    # cups
+636    # ldaps
+655    # tinc
+774    # rpasswd
+783    # spamd
+873    # rsync
+921    # lwresd
+993    # imaps
+995    # pops
diff --git a/byobu/backend b/byobu/backend
new file mode 100644 (file)
index 0000000..d71e61c
--- /dev/null
@@ -0,0 +1,4 @@
+# BYOBU_BACKEND can currently be "screen" or "tmux"
+# Override this on a per-user basis by editing "$BYOBU_CONFIG_DIR/backend"
+# or by launching either "byobu-screen" or "byobu-tmux" instead of "byobu".
+BYOBU_BACKEND="tmux"
diff --git a/byobu/socketdir b/byobu/socketdir
new file mode 100644 (file)
index 0000000..05ab041
--- /dev/null
@@ -0,0 +1,11 @@
+# Set the location of the socket directory that byobu will use.
+# On Debian/Ubuntu systems, this is in /var/run/screen, but on
+# other distros, it might be elsewhere, such as /tmp/screens
+# depending on your compilation.
+#
+# This file will be sourced by both shell scripts and python code,
+# so please ensure that:
+#  * the variable name is SOCKETDIR
+#  * there is no space around the "="
+#  * and that the path value is quoted
+SOCKETDIR="/var/run/screen"
diff --git a/ca-certificates.conf b/ca-certificates.conf
new file mode 100644 (file)
index 0000000..cd47f66
--- /dev/null
@@ -0,0 +1,151 @@
+# This file lists certificates that you wish to use or to ignore to be
+# installed in /etc/ssl/certs.
+# update-ca-certificates(8) will update /etc/ssl/certs by reading this file.
+#
+# This is autogenerated by dpkg-reconfigure ca-certificates.
+# Certificates should be installed under /usr/share/ca-certificates
+# and files with extension '.crt' is recognized as available certs.
+#
+# line begins with # is comment.
+# line begins with ! is certificate filename to be deselected.
+#
+mozilla/ACCVRAIZ1.crt
+mozilla/AC_RAIZ_FNMT-RCM.crt
+mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt
+mozilla/Actalis_Authentication_Root_CA.crt
+mozilla/AffirmTrust_Commercial.crt
+mozilla/AffirmTrust_Networking.crt
+mozilla/AffirmTrust_Premium.crt
+mozilla/AffirmTrust_Premium_ECC.crt
+mozilla/Amazon_Root_CA_1.crt
+mozilla/Amazon_Root_CA_2.crt
+mozilla/Amazon_Root_CA_3.crt
+mozilla/Amazon_Root_CA_4.crt
+mozilla/ANF_Secure_Server_Root_CA.crt
+mozilla/Atos_TrustedRoot_2011.crt
+mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068_2.crt
+mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt
+mozilla/Baltimore_CyberTrust_Root.crt
+mozilla/Buypass_Class_2_Root_CA.crt
+mozilla/Buypass_Class_3_Root_CA.crt
+mozilla/CA_Disig_Root_R2.crt
+mozilla/Certainly_Root_E1.crt
+mozilla/Certainly_Root_R1.crt
+mozilla/Certigna.crt
+mozilla/Certigna_Root_CA.crt
+mozilla/certSIGN_ROOT_CA.crt
+mozilla/certSIGN_Root_CA_G2.crt
+mozilla/Certum_EC-384_CA.crt
+mozilla/Certum_Trusted_Network_CA_2.crt
+mozilla/Certum_Trusted_Network_CA.crt
+mozilla/Certum_Trusted_Root_CA.crt
+mozilla/CFCA_EV_ROOT.crt
+mozilla/Comodo_AAA_Services_root.crt
+mozilla/COMODO_Certification_Authority.crt
+mozilla/COMODO_ECC_Certification_Authority.crt
+mozilla/COMODO_RSA_Certification_Authority.crt
+mozilla/DigiCert_Assured_ID_Root_CA.crt
+mozilla/DigiCert_Assured_ID_Root_G2.crt
+mozilla/DigiCert_Assured_ID_Root_G3.crt
+mozilla/DigiCert_Global_Root_CA.crt
+mozilla/DigiCert_Global_Root_G2.crt
+mozilla/DigiCert_Global_Root_G3.crt
+mozilla/DigiCert_High_Assurance_EV_Root_CA.crt
+mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt
+mozilla/DigiCert_TLS_RSA4096_Root_G5.crt
+mozilla/DigiCert_Trusted_Root_G4.crt
+mozilla/D-TRUST_BR_Root_CA_1_2020.crt
+mozilla/D-TRUST_EV_Root_CA_1_2020.crt
+mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt
+mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt
+mozilla/emSign_ECC_Root_CA_-_C3.crt
+mozilla/emSign_ECC_Root_CA_-_G3.crt
+mozilla/emSign_Root_CA_-_C1.crt
+mozilla/emSign_Root_CA_-_G1.crt
+mozilla/Entrust.net_Premium_2048_Secure_Server_CA.crt
+mozilla/Entrust_Root_Certification_Authority.crt
+mozilla/Entrust_Root_Certification_Authority_-_EC1.crt
+mozilla/Entrust_Root_Certification_Authority_-_G2.crt
+mozilla/Entrust_Root_Certification_Authority_-_G4.crt
+mozilla/ePKI_Root_Certification_Authority.crt
+mozilla/e-Szigno_Root_CA_2017.crt
+mozilla/E-Tugra_Certification_Authority.crt
+mozilla/E-Tugra_Global_Root_CA_ECC_v3.crt
+mozilla/E-Tugra_Global_Root_CA_RSA_v3.crt
+mozilla/GDCA_TrustAUTH_R5_ROOT.crt
+mozilla/GlobalSign_ECC_Root_CA_-_R4.crt
+mozilla/GlobalSign_ECC_Root_CA_-_R5.crt
+mozilla/GlobalSign_Root_CA.crt
+mozilla/GlobalSign_Root_CA_-_R3.crt
+mozilla/GlobalSign_Root_CA_-_R6.crt
+mozilla/GlobalSign_Root_E46.crt
+mozilla/GlobalSign_Root_R46.crt
+mozilla/GLOBALTRUST_2020.crt
+mozilla/Go_Daddy_Class_2_CA.crt
+mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt
+mozilla/GTS_Root_R1.crt
+mozilla/GTS_Root_R2.crt
+mozilla/GTS_Root_R3.crt
+mozilla/GTS_Root_R4.crt
+mozilla/HARICA_TLS_ECC_Root_CA_2021.crt
+mozilla/HARICA_TLS_RSA_Root_CA_2021.crt
+mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt
+mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt
+mozilla/HiPKI_Root_CA_-_G1.crt
+mozilla/Hongkong_Post_Root_CA_1.crt
+mozilla/Hongkong_Post_Root_CA_3.crt
+mozilla/IdenTrust_Commercial_Root_CA_1.crt
+mozilla/IdenTrust_Public_Sector_Root_CA_1.crt
+mozilla/ISRG_Root_X1.crt
+mozilla/ISRG_Root_X2.crt
+mozilla/Izenpe.com.crt
+mozilla/Microsec_e-Szigno_Root_CA_2009.crt
+mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt
+mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt
+mozilla/NAVER_Global_Root_Certification_Authority.crt
+mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
+mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt
+mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt
+mozilla/QuoVadis_Root_CA_1_G3.crt
+mozilla/QuoVadis_Root_CA_2.crt
+mozilla/QuoVadis_Root_CA_2_G3.crt
+mozilla/QuoVadis_Root_CA_3.crt
+mozilla/QuoVadis_Root_CA_3_G3.crt
+mozilla/Secure_Global_CA.crt
+mozilla/SecureSign_RootCA11.crt
+mozilla/SecureTrust_CA.crt
+mozilla/Security_Communication_ECC_RootCA1.crt
+mozilla/Security_Communication_RootCA2.crt
+mozilla/Security_Communication_RootCA3.crt
+mozilla/Security_Communication_Root_CA.crt
+mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt
+mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt
+mozilla/SSL.com_Root_Certification_Authority_ECC.crt
+mozilla/SSL.com_Root_Certification_Authority_RSA.crt
+mozilla/Starfield_Class_2_CA.crt
+mozilla/Starfield_Root_Certificate_Authority_-_G2.crt
+mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt
+mozilla/SwissSign_Gold_CA_-_G2.crt
+mozilla/SwissSign_Silver_CA_-_G2.crt
+mozilla/SZAFIR_ROOT_CA2.crt
+mozilla/Telia_Root_CA_v2.crt
+mozilla/TeliaSonera_Root_CA_v1.crt
+mozilla/TrustCor_ECA-1.crt
+mozilla/TrustCor_RootCert_CA-1.crt
+mozilla/TrustCor_RootCert_CA-2.crt
+mozilla/Trustwave_Global_Certification_Authority.crt
+mozilla/Trustwave_Global_ECC_P256_Certification_Authority.crt
+mozilla/Trustwave_Global_ECC_P384_Certification_Authority.crt
+mozilla/T-TeleSec_GlobalRoot_Class_2.crt
+mozilla/T-TeleSec_GlobalRoot_Class_3.crt
+mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt
+mozilla/TunTrust_Root_CA.crt
+mozilla/TWCA_Global_Root_CA.crt
+mozilla/TWCA_Root_Certification_Authority.crt
+mozilla/UCA_Extended_Validation_Root.crt
+mozilla/UCA_Global_G2_Root.crt
+mozilla/USERTrust_ECC_Certification_Authority.crt
+mozilla/USERTrust_RSA_Certification_Authority.crt
+mozilla/vTrus_ECC_Root_CA.crt
+mozilla/vTrus_Root_CA.crt
+mozilla/XRamp_Global_CA_Root.crt
diff --git a/chrony/chrony.conf b/chrony/chrony.conf
new file mode 100644 (file)
index 0000000..bd63609
--- /dev/null
@@ -0,0 +1,47 @@
+# Welcome to the chrony configuration file. See chrony.conf(5) for more
+# information about usable directives.
+
+# Include configuration files found in /etc/chrony/conf.d.
+confdir /etc/chrony/conf.d
+
+# Use Debian vendor zone.
+pool 2.debian.pool.ntp.org iburst
+
+# Use time sources from DHCP.
+sourcedir /run/chrony-dhcp
+
+# Use NTP sources found in /etc/chrony/sources.d.
+sourcedir /etc/chrony/sources.d
+
+# This directive specify the location of the file containing ID/key pairs for
+# NTP authentication.
+keyfile /etc/chrony/chrony.keys
+
+# This directive specify the file into which chronyd will store the rate
+# information.
+driftfile /var/lib/chrony/chrony.drift
+
+# Save NTS keys and cookies.
+ntsdumpdir /var/lib/chrony
+
+# Uncomment the following line to turn logging on.
+#log tracking measurements statistics
+
+# Log files location.
+logdir /var/log/chrony
+
+# Stop bad estimates upsetting machine clock.
+maxupdateskew 100.0
+
+# This directive enables kernel synchronisation (every 11 minutes) of the
+# real-time clock. Note that it can't be used along with the 'rtcfile' directive.
+rtcsync
+
+# Step the system clock instead of slewing it if the adjustment is larger than
+# one second, but only in the first three clock updates.
+makestep 1 3
+
+# Get TAI-UTC offset and leap seconds from the system tz database.
+# This directive must be commented out when using time sources serving
+# leap-smeared time.
+leapsectz right/UTC
diff --git a/chrony/chrony.keys b/chrony/chrony.keys
new file mode 100644 (file)
index 0000000..a2d655d
--- /dev/null
@@ -0,0 +1,10 @@
+# This file is solely used for NTP authentication with symmetric keys
+# as defined by RFC 1305 and RFC 5905.
+#
+# It can contain ID/key pairs which can be generated using the “keygen” option
+# from “chronyc”; for example:
+# chronyc keygen 1 SHA256 256 >> /etc/chrony/chrony.keys
+# would generate a 256-bit SHA-256 key using ID 1.
+#
+# A list of supported hash functions and output encoding is available by
+# consulting the "keyfile" directive in the chrony.conf(5) man page.
diff --git a/chrony/conf.d/README b/chrony/conf.d/README
new file mode 100644 (file)
index 0000000..de1fa8e
--- /dev/null
@@ -0,0 +1,7 @@
+Files found under the /etc/chrony/conf.d directory with the .conf suffix are
+parsed in the lexicographical order of the file names when chronyd starts up.
+This enables a fragmented configuration of chronyd.
+
+Although those files can contain any directives listed in chrony.conf(5),
+it would be wiser to add NTP sources in the /etc/chrony/sources.d
+directory. Please read /etc/chrony/sources.d/README for more information.
diff --git a/chrony/sources.d/README b/chrony/sources.d/README
new file mode 100644 (file)
index 0000000..184eaec
--- /dev/null
@@ -0,0 +1,12 @@
+Only NTP sources can be specified in the /etc/chrony/sources.d directory.
+Files in this directory must end with the ".sources" suffix. They can only
+contain the "peer", "pool" and "server" directives and must have all
+lines terminated by a trailing newline.
+
+There is no need to restart chronyd for these time sources to be usable,
+running 'chronyc reload sources' is sufficient.
+
+Example:
+
+# echo 'server 192.0.2.1 iburst' > /etc/chrony/sources.d/local-ntp-server.sources
+# chronyc reload sources
diff --git a/colordiffrc b/colordiffrc
new file mode 100644 (file)
index 0000000..e0598ed
--- /dev/null
@@ -0,0 +1,30 @@
+# Example colordiffrc file for dark backgrounds
+#
+# Set banner=no to suppress authorship info at top of
+# colordiff output
+banner=no
+# By default, when colordiff output is being redirected
+# to a file, it detects this and does not colour-highlight
+# To make the patch file *include* colours, change the option
+# below to 'yes'
+color_patches=no
+# Sometimes it can be useful to specify which diff command to
+# use: that can be specified here
+diff_cmd=diff
+# 
+# available colours are: white, yellow, green, blue,
+#                        cyan, red, magenta, black,
+#                        darkwhite, darkyellow, darkgreen,
+#                        darkblue, darkcyan, darkred,
+#                        darkmagenta, darkblack
+#
+# Can also specify 'none', 'normal' or 'off' which are all
+# aliases for the same thing, namely "don't colour highlight
+# this, use the default output colour"
+#
+plain=off
+newtext=darkgreen
+oldtext=darkred
+diffstuff=darkcyan
+cvsstuff=cyan
+difffile=white
diff --git a/console-setup/cached_Lat15-Fixed16.psf.gz b/console-setup/cached_Lat15-Fixed16.psf.gz
new file mode 100644 (file)
index 0000000..0150aab
Binary files /dev/null and b/console-setup/cached_Lat15-Fixed16.psf.gz differ
diff --git a/console-setup/cached_UTF-8_del.kmap.gz b/console-setup/cached_UTF-8_del.kmap.gz
new file mode 100644 (file)
index 0000000..aef0e59
Binary files /dev/null and b/console-setup/cached_UTF-8_del.kmap.gz differ
diff --git a/console-setup/cached_setup_font.sh b/console-setup/cached_setup_font.sh
new file mode 100755 (executable)
index 0000000..b767a0f
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+setfont '/usr/share/consolefonts/Lat15-Fixed16.psf.gz' 
+
+if ls /dev/fb* >/dev/null 2>/dev/null; then
+    for i in /dev/vcs[0-9]*; do
+        { :
+            setfont '/usr/share/consolefonts/Lat15-Fixed16.psf.gz' 
+        } < /dev/tty${i#/dev/vcs} > /dev/tty${i#/dev/vcs}
+    done
+fi
+
+mkdir -p /run/console-setup
+> /run/console-setup/font-loaded
+for i in /dev/vcs[0-9]*; do
+    { :
+printf '\033%%G' 
+    } < /dev/tty${i#/dev/vcs} > /dev/tty${i#/dev/vcs}
+done
diff --git a/console-setup/cached_setup_keyboard.sh b/console-setup/cached_setup_keyboard.sh
new file mode 100755 (executable)
index 0000000..30b46c1
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+if [ -f /run/console-setup/keymap_loaded ]; then
+    rm /run/console-setup/keymap_loaded
+    exit 0
+fi
+kbd_mode '-u' < '/dev/tty1' 
+kbd_mode '-u' < '/dev/tty2' 
+kbd_mode '-u' < '/dev/tty3' 
+kbd_mode '-u' < '/dev/tty4' 
+kbd_mode '-u' < '/dev/tty5' 
+kbd_mode '-u' < '/dev/tty6' 
+loadkeys '/etc/console-setup/cached_UTF-8_del.kmap.gz' > '/dev/null' 
diff --git a/console-setup/cached_setup_terminal.sh b/console-setup/cached_setup_terminal.sh
new file mode 100755 (executable)
index 0000000..494e363
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+{ :
+printf '\033%%G' 
+} < /dev/tty${1#vcs} > /dev/tty${1#vcs}
diff --git a/console-setup/compose.ARMSCII-8.inc b/console-setup/compose.ARMSCII-8.inc
new file mode 100644 (file)
index 0000000..ca8d3c9
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ARMSCII-8
diff --git a/console-setup/compose.CP1251.inc b/console-setup/compose.CP1251.inc
new file mode 100644 (file)
index 0000000..4fb90da
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for CP1251
diff --git a/console-setup/compose.CP1255.inc b/console-setup/compose.CP1255.inc
new file mode 100644 (file)
index 0000000..93e6a7b
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for CP1255
diff --git a/console-setup/compose.CP1256.inc b/console-setup/compose.CP1256.inc
new file mode 100644 (file)
index 0000000..a792b8c
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for CP1256
diff --git a/console-setup/compose.GEORGIAN-ACADEMY.inc b/console-setup/compose.GEORGIAN-ACADEMY.inc
new file mode 100644 (file)
index 0000000..33869fd
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for GEORGIAN-ACADEMY
diff --git a/console-setup/compose.GEORGIAN-PS.inc b/console-setup/compose.GEORGIAN-PS.inc
new file mode 100644 (file)
index 0000000..a4d20c4
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for GEORGIAN-PS
diff --git a/console-setup/compose.IBM1133.inc b/console-setup/compose.IBM1133.inc
new file mode 100644 (file)
index 0000000..9369645
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for IBM1133
diff --git a/console-setup/compose.ISIRI-3342.inc b/console-setup/compose.ISIRI-3342.inc
new file mode 100644 (file)
index 0000000..242f739
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ISIRI-3342
diff --git a/console-setup/compose.ISO-8859-1.inc b/console-setup/compose.ISO-8859-1.inc
new file mode 100644 (file)
index 0000000..a09f3fb
--- /dev/null
@@ -0,0 +1,168 @@
+# Compose sequences for ISO-8859-1
+compose '!' '!' to exclamdown
+compose '!' '^' to brokenbar
+compose '!' 'p' to paragraph
+compose '!' 's' to section
+compose '"' '"' to diaeresis
+compose '"' 'A' to Adiaeresis
+compose '"' 'E' to Ediaeresis
+compose '"' 'I' to Idiaeresis
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'a' to adiaeresis
+compose '"' 'e' to ediaeresis
+compose '"' 'i' to idiaeresis
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '"' 'y' to ydiaeresis
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose '(' 'c' to copyright
+compose '(' 'r' to registered
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' '0' to degree
+compose '*' 'A' to Aring
+compose '*' 'a' to aring
+compose '+' '+' to '#'
+compose '+' '-' to plusminus
+compose ',' ',' to cedilla
+compose ',' '-' to notsign
+compose ',' 'C' to Ccedilla
+compose ',' 'c' to ccedilla
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '+' to plusminus
+compose '-' ',' to notsign
+compose '-' '-' to hyphen
+compose '-' ':' to division
+compose '-' 'A' to Atilde
+compose '-' 'D' to ETH
+compose '-' 'N' to Ntilde
+compose '-' 'O' to Otilde
+compose '-' '^' to macron
+compose '-' 'a' to atilde
+compose '-' 'd' to eth
+compose '-' 'l' to sterling
+compose '-' 'n' to ntilde
+compose '-' 'o' to otilde
+compose '-' 'y' to yen
+compose '.' '.' to periodcentered
+compose '.' '^' to periodcentered
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' 'O' to Ooblique
+compose '/' '^' to '|'
+compose '/' 'c' to cent
+compose '/' 'o' to oslash
+compose '/' 'u' to mu
+compose '1' '2' to onehalf
+compose '1' '4' to onequarter
+compose '3' '4' to threequarters
+compose ':' '-' to division
+compose '<' '/' to '\''
+compose '<' '<' to guillemotleft
+compose '=' 'U' to Udiaeresis
+compose '=' 'l' to sterling
+compose '=' 'u' to udiaeresis
+compose '=' 'y' to yen
+compose '>' '>' to guillemotright
+compose '>' 'A' to Acircumflex
+compose '>' 'E' to Ecircumflex
+compose '>' 'I' to Icircumflex
+compose '>' 'O' to Ocircumflex
+compose '>' 'U' to Ucircumflex
+compose '>' 'a' to acircumflex
+compose '>' 'e' to ecircumflex
+compose '>' 'i' to icircumflex
+compose '>' 'o' to ocircumflex
+compose '>' 'u' to ucircumflex
+compose '?' '?' to questiondown
+compose 'A' 'E' to AE
+compose 'A' 'O' to Aring
+compose 'T' 'H' to THORN
+compose '\'' 'A' to Aacute
+compose '\'' 'C' to Ccedilla
+compose '\'' 'E' to Eacute
+compose '\'' 'I' to Iacute
+compose '\'' 'O' to Oacute
+compose '\'' 'U' to Uacute
+compose '\'' 'Y' to Yacute
+compose '\'' '\'' to acute
+compose '\'' 'a' to aacute
+compose '\'' 'c' to ccedilla
+compose '\'' 'e' to eacute
+compose '\'' 'i' to iacute
+compose '\'' 'o' to oacute
+compose '\'' 'u' to uacute
+compose '\'' 'y' to yacute
+compose '^' '!' to brokenbar
+compose '^' '-' to macron
+compose '^' '.' to periodcentered
+compose '^' '/' to '|'
+compose '^' '0' to degree
+compose '^' '1' to onesuperior
+compose '^' '2' to twosuperior
+compose '^' '3' to threesuperior
+compose '^' 'A' to Acircumflex
+compose '^' 'E' to Ecircumflex
+compose '^' 'I' to Icircumflex
+compose '^' 'O' to Ocircumflex
+compose '^' 'U' to Ucircumflex
+compose '^' '_' to macron
+compose '^' 'a' to acircumflex
+compose '^' 'e' to ecircumflex
+compose '^' 'i' to icircumflex
+compose '^' 'o' to ocircumflex
+compose '^' 'u' to ucircumflex
+compose '_' '^' to macron
+compose '_' '_' to macron
+compose '_' 'a' to ordfeminine
+compose '_' 'o' to masculine
+compose '`' 'A' to Agrave
+compose '`' 'E' to Egrave
+compose '`' 'I' to Igrave
+compose '`' 'O' to Ograve
+compose '`' 'U' to Ugrave
+compose '`' 'a' to agrave
+compose '`' 'e' to egrave
+compose '`' 'i' to igrave
+compose '`' 'o' to ograve
+compose '`' 'u' to ugrave
+compose 'a' 'e' to ae
+compose 'a' 'o' to aring
+compose 'a' 't' to '@'
+compose 'c' '0' to copyright
+compose 'c' 'o' to copyright
+compose 'o' 'c' to copyright
+compose 'o' 'x' to currency
+compose 'r' 'o' to registered
+compose 's' '0' to section
+compose 's' '1' to onesuperior
+compose 's' '2' to twosuperior
+compose 's' '3' to threesuperior
+compose 's' 'o' to section
+compose 't' 'h' to thorn
+compose 'v' 'b' to brokenbar
+compose 'v' 'l' to '|'
+compose 'x' '0' to currency
+compose 'x' 'o' to currency
+compose '|' 'c' to cent
+compose '|' '|' to brokenbar
+compose '~' 'A' to Atilde
+compose '~' 'N' to Ntilde
+compose '~' 'O' to Otilde
+compose '~' 'a' to atilde
+compose '~' 'n' to ntilde
+compose '~' 'o' to otilde
+compose U+00A8 'A' to Adiaeresis
+compose U+00A8 'E' to Ediaeresis
+compose U+00A8 'I' to Idiaeresis
+compose U+00A8 'O' to Odiaeresis
+compose U+00A8 'U' to Udiaeresis
+compose U+00A8 'a' to adiaeresis
+compose U+00A8 'e' to ediaeresis
+compose U+00A8 'i' to idiaeresis
+compose U+00A8 'o' to odiaeresis
+compose U+00A8 'u' to udiaeresis
+compose U+00A8 'y' to ydiaeresis
diff --git a/console-setup/compose.ISO-8859-10.inc b/console-setup/compose.ISO-8859-10.inc
new file mode 100644 (file)
index 0000000..7ca7b10
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ISO-8859-10
diff --git a/console-setup/compose.ISO-8859-11.inc b/console-setup/compose.ISO-8859-11.inc
new file mode 100644 (file)
index 0000000..add3f6a
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ISO-8859-11
diff --git a/console-setup/compose.ISO-8859-13.inc b/console-setup/compose.ISO-8859-13.inc
new file mode 100644 (file)
index 0000000..0c38216
--- /dev/null
@@ -0,0 +1,179 @@
+# Compose sequences for ISO-8859-13
+compose '!' '^' to brokenbar
+compose '!' 'p' to paragraph
+compose '!' 's' to section
+compose '"' '<' to U+201C
+compose '"' '>' to U+201D
+compose '"' 'A' to Adiaeresis
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'a' to adiaeresis
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose '(' 'c' to copyright
+compose '(' 'r' to registered
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' '0' to degree
+compose '*' 'A' to Aring
+compose '*' 'E' to U+0116
+compose '*' 'Z' to U+017B
+compose '*' 'a' to aring
+compose '*' 'e' to U+0117
+compose '*' 'z' to U+017C
+compose '+' '+' to '#'
+compose '+' '-' to plusminus
+compose ',' '-' to notsign
+compose ',' '>' to U+201E
+compose ',' 'A' to U+0104
+compose ',' 'E' to U+0118
+compose ',' 'G' to U+0122
+compose ',' 'I' to U+012E
+compose ',' 'K' to U+0136
+compose ',' 'L' to U+013B
+compose ',' 'N' to U+0145
+compose ',' 'R' to U+0156
+compose ',' 'U' to U+0172
+compose ',' 'a' to U+0105
+compose ',' 'e' to U+0119
+compose ',' 'g' to U+0123
+compose ',' 'i' to U+012F
+compose ',' 'k' to U+0137
+compose ',' 'l' to U+013C
+compose ',' 'n' to U+0146
+compose ',' 'r' to U+0157
+compose ',' 'u' to U+0173
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '+' to plusminus
+compose '-' ',' to notsign
+compose '-' '-' to hyphen
+compose '-' ':' to division
+compose '-' 'A' to U+0100
+compose '-' 'E' to U+0112
+compose '-' 'I' to U+012A
+compose '-' 'L' to U+0141
+compose '-' 'O' to U+014C
+compose '-' 'U' to U+016A
+compose '-' 'a' to U+0101
+compose '-' 'e' to U+0113
+compose '-' 'i' to U+012B
+compose '-' 'l' to U+0142
+compose '-' 'o' to U+014D
+compose '-' 'u' to U+016B
+compose '.' '.' to periodcentered
+compose '.' 'A' to Aring
+compose '.' 'E' to U+0116
+compose '.' 'Z' to U+017B
+compose '.' '^' to periodcentered
+compose '.' 'a' to aring
+compose '.' 'e' to U+0117
+compose '.' 'z' to U+017C
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' 'L' to U+0141
+compose '/' 'O' to Ooblique
+compose '/' '^' to '|'
+compose '/' 'c' to cent
+compose '/' 'l' to U+0142
+compose '/' 'o' to oslash
+compose '/' 'u' to mu
+compose '1' '2' to onehalf
+compose '1' '4' to onequarter
+compose '3' '4' to threequarters
+compose ':' '-' to division
+compose ';' 'A' to U+0104
+compose ';' 'E' to U+0118
+compose ';' 'I' to U+012E
+compose ';' 'U' to U+0172
+compose ';' 'a' to U+0105
+compose ';' 'e' to U+0119
+compose ';' 'i' to U+012F
+compose ';' 'u' to U+0173
+compose '<' '"' to U+201C
+compose '<' '/' to '\''
+compose '<' '<' to guillemotleft
+compose '<' 'C' to U+010C
+compose '<' 'S' to U+0160
+compose '<' 'Z' to U+017D
+compose '<' '\'' to '`'
+compose '<' 'c' to U+010D
+compose '<' 's' to U+0161
+compose '<' 'z' to U+017E
+compose '=' 'l' to sterling
+compose '>' '"' to U+201D
+compose '>' ',' to U+201E
+compose '>' '>' to guillemotright
+compose '>' '\'' to U+2019
+compose '?' '?' to ae
+compose 'A' 'E' to AE
+compose 'A' 'O' to Aring
+compose '\'' '<' to '`'
+compose '\'' '>' to U+2019
+compose '\'' 'C' to U+0106
+compose '\'' 'E' to Eacute
+compose '\'' 'N' to U+0143
+compose '\'' 'O' to Oacute
+compose '\'' 'S' to U+015A
+compose '\'' 'Z' to U+0179
+compose '\'' '\'' to U+2019
+compose '\'' 'c' to U+0107
+compose '\'' 'e' to eacute
+compose '\'' 'n' to U+0144
+compose '\'' 'o' to oacute
+compose '\'' 's' to U+015B
+compose '\'' 'z' to U+017A
+compose '^' '!' to brokenbar
+compose '^' '.' to periodcentered
+compose '^' '/' to '|'
+compose '^' '0' to degree
+compose '^' '1' to onesuperior
+compose '^' '2' to twosuperior
+compose '^' '3' to threesuperior
+compose '_' 'A' to U+0100
+compose '_' 'E' to U+0112
+compose '_' 'I' to U+012A
+compose '_' 'O' to U+014C
+compose '_' 'U' to U+016A
+compose '_' 'a' to U+0101
+compose '_' 'e' to U+0113
+compose '_' 'i' to U+012B
+compose '_' 'o' to U+014D
+compose '_' 'u' to U+016B
+compose 'a' 'e' to ae
+compose 'a' 'o' to aring
+compose 'a' 't' to '@'
+compose 'c' '0' to copyright
+compose 'c' 'S' to U+0160
+compose 'c' 'Z' to U+017D
+compose 'c' 'c' to U+010C
+compose 'c' 'o' to copyright
+compose 'c' 's' to U+0161
+compose 'c' 'z' to U+017E
+compose 'k' 'A' to U+0104
+compose 'k' 'E' to U+0118
+compose 'k' 'I' to U+012E
+compose 'k' 'U' to U+0172
+compose 'k' 'a' to U+0105
+compose 'k' 'e' to U+0119
+compose 'k' 'i' to U+012F
+compose 'k' 'u' to U+0173
+compose 'm' 'u' to mu
+compose 'o' 'c' to copyright
+compose 'o' 'x' to currency
+compose 'r' 'o' to registered
+compose 's' '0' to section
+compose 's' '1' to onesuperior
+compose 's' '2' to twosuperior
+compose 's' '3' to threesuperior
+compose 's' 'o' to section
+compose 'v' 'b' to brokenbar
+compose 'x' '0' to currency
+compose 'x' 'o' to currency
+compose '|' 'c' to cent
+compose '|' '|' to brokenbar
+compose '~' 'O' to Otilde
+compose '~' 'o' to otilde
+compose '~' '~' to '~'
diff --git a/console-setup/compose.ISO-8859-14.inc b/console-setup/compose.ISO-8859-14.inc
new file mode 100644 (file)
index 0000000..049d21f
--- /dev/null
@@ -0,0 +1,164 @@
+# Compose sequences for ISO-8859-14
+compose '!' 'p' to paragraph
+compose '!' 's' to section
+compose '"' 'A' to Adiaeresis
+compose '"' 'E' to Ediaeresis
+compose '"' 'I' to Idiaeresis
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'W' to U+1E84
+compose '"' 'Y' to U+0178
+compose '"' 'a' to adiaeresis
+compose '"' 'e' to ediaeresis
+compose '"' 'i' to idiaeresis
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '"' 'w' to U+1E85
+compose '"' 'y' to ydiaeresis
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' 'A' to Aring
+compose '*' 'a' to aring
+compose '+' '+' to '#'
+compose ',' 'C' to Ccedilla
+compose ',' 'c' to ccedilla
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '-' to hyphen
+compose '-' 'A' to Atilde
+compose '-' 'N' to Ntilde
+compose '-' 'O' to Otilde
+compose '-' 'a' to atilde
+compose '-' 'l' to sterling
+compose '-' 'n' to ntilde
+compose '-' 'o' to otilde
+compose '.' 'B' to U+1E02
+compose '.' 'D' to U+1E0A
+compose '.' 'F' to U+1E1E
+compose '.' 'G' to U+0120
+compose '.' 'M' to U+1E40
+compose '.' 'P' to U+1E56
+compose '.' 'S' to U+1E60
+compose '.' 'T' to U+1E6A
+compose '.' 'b' to U+1E03
+compose '.' 'c' to U+010B
+compose '.' 'd' to U+1E0B
+compose '.' 'f' to U+1E1F
+compose '.' 'g' to U+0121
+compose '.' 'm' to U+1E41
+compose '.' 'p' to U+1E57
+compose '.' 's' to U+1E61
+compose '.' 't' to U+1E6B
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' 'O' to Ooblique
+compose '/' '^' to '|'
+compose '/' 'o' to oslash
+compose '<' '/' to '\''
+compose '=' 'l' to sterling
+compose '>' 'A' to Acircumflex
+compose '>' 'E' to Ecircumflex
+compose '>' 'I' to Icircumflex
+compose '>' 'O' to Ocircumflex
+compose '>' 'U' to Ucircumflex
+compose '>' 'a' to acircumflex
+compose '>' 'e' to ecircumflex
+compose '>' 'i' to icircumflex
+compose '>' 'o' to ocircumflex
+compose '>' 'u' to ucircumflex
+compose 'A' 'E' to AE
+compose '\'' 'A' to Aacute
+compose '\'' 'B' to U+1E02
+compose '\'' 'D' to U+1E0A
+compose '\'' 'E' to Eacute
+compose '\'' 'F' to U+1E1E
+compose '\'' 'G' to U+0120
+compose '\'' 'I' to Iacute
+compose '\'' 'M' to U+1E40
+compose '\'' 'O' to Oacute
+compose '\'' 'P' to U+1E56
+compose '\'' 'S' to U+1E60
+compose '\'' 'T' to U+1E6A
+compose '\'' 'U' to Uacute
+compose '\'' 'W' to U+1E82
+compose '\'' 'Y' to Yacute
+compose '\'' 'a' to aacute
+compose '\'' 'b' to U+1E03
+compose '\'' 'c' to U+010B
+compose '\'' 'd' to U+1E0B
+compose '\'' 'e' to eacute
+compose '\'' 'f' to U+1E1F
+compose '\'' 'g' to U+0121
+compose '\'' 'i' to iacute
+compose '\'' 'm' to U+1E41
+compose '\'' 'o' to oacute
+compose '\'' 'p' to U+1E57
+compose '\'' 's' to U+1E61
+compose '\'' 't' to U+1E6B
+compose '\'' 'u' to uacute
+compose '\'' 'w' to U+1E83
+compose '\'' 'y' to yacute
+compose '^' '/' to '|'
+compose '^' 'A' to Acircumflex
+compose '^' 'B' to U+1E02
+compose '^' 'D' to U+1E0A
+compose '^' 'E' to Ecircumflex
+compose '^' 'F' to U+1E1E
+compose '^' 'G' to U+0120
+compose '^' 'I' to Icircumflex
+compose '^' 'M' to U+1E40
+compose '^' 'O' to Ocircumflex
+compose '^' 'P' to U+1E56
+compose '^' 'S' to U+1E60
+compose '^' 'T' to U+1E6A
+compose '^' 'U' to Ucircumflex
+compose '^' 'W' to U+0174
+compose '^' 'Y' to U+0176
+compose '^' 'a' to acircumflex
+compose '^' 'b' to U+1E03
+compose '^' 'c' to U+010B
+compose '^' 'd' to U+1E0B
+compose '^' 'e' to ecircumflex
+compose '^' 'f' to U+1E1F
+compose '^' 'g' to U+0121
+compose '^' 'i' to icircumflex
+compose '^' 'm' to U+1E41
+compose '^' 'o' to ocircumflex
+compose '^' 'p' to U+1E57
+compose '^' 's' to U+1E61
+compose '^' 't' to U+1E6B
+compose '^' 'u' to ucircumflex
+compose '^' 'w' to U+0175
+compose '^' 'y' to U+0177
+compose '`' 'A' to Agrave
+compose '`' 'E' to Egrave
+compose '`' 'I' to Igrave
+compose '`' 'O' to Ograve
+compose '`' 'U' to Ugrave
+compose '`' 'W' to U+1E80
+compose '`' 'Y' to U+1EF2
+compose '`' 'a' to agrave
+compose '`' 'e' to egrave
+compose '`' 'i' to igrave
+compose '`' 'o' to ograve
+compose '`' 'u' to ugrave
+compose '`' 'w' to U+1E81
+compose '`' 'y' to U+1EF3
+compose 'a' 'e' to ae
+compose 'a' 't' to '@'
+compose 'c' '0' to copyright
+compose 'c' 'o' to copyright
+compose 'o' 'c' to copyright
+compose 'r' '0' to registered
+compose 'r' 'o' to registered
+compose 's' '0' to section
+compose 's' 'o' to section
+compose 'v' 'l' to '|'
+compose '~' 'A' to Atilde
+compose '~' 'N' to Ntilde
+compose '~' 'O' to Otilde
+compose '~' 'a' to atilde
+compose '~' 'n' to ntilde
+compose '~' 'o' to otilde
diff --git a/console-setup/compose.ISO-8859-15.inc b/console-setup/compose.ISO-8859-15.inc
new file mode 100644 (file)
index 0000000..980f063
--- /dev/null
@@ -0,0 +1,161 @@
+# Compose sequences for ISO-8859-15
+compose '!' '!' to exclamdown
+compose '!' 'p' to paragraph
+compose '!' 's' to section
+compose '"' '"' to '"'
+compose '"' 'A' to Adiaeresis
+compose '"' 'E' to Ediaeresis
+compose '"' 'I' to Idiaeresis
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'Y' to U+0178
+compose '"' 'a' to adiaeresis
+compose '"' 'e' to ediaeresis
+compose '"' 'i' to idiaeresis
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '"' 'y' to ydiaeresis
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose '(' 'c' to copyright
+compose '(' 'r' to registered
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' '0' to degree
+compose '*' 'A' to Aring
+compose '*' 'a' to aring
+compose '+' '+' to '#'
+compose '+' '-' to plusminus
+compose ',' '-' to notsign
+compose ',' 'C' to Ccedilla
+compose ',' 'c' to ccedilla
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '+' to plusminus
+compose '-' ',' to notsign
+compose '-' '-' to hyphen
+compose '-' ':' to division
+compose '-' 'A' to Atilde
+compose '-' 'D' to ETH
+compose '-' 'N' to Ntilde
+compose '-' 'O' to Otilde
+compose '-' '^' to macron
+compose '-' 'a' to atilde
+compose '-' 'd' to eth
+compose '-' 'l' to sterling
+compose '-' 'n' to ntilde
+compose '-' 'o' to otilde
+compose '-' 'y' to yen
+compose '.' '.' to periodcentered
+compose '.' '^' to periodcentered
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' 'O' to Ooblique
+compose '/' '^' to '|'
+compose '/' 'c' to cent
+compose '/' 'o' to oslash
+compose '/' 'u' to mu
+compose ':' '-' to division
+compose '<' '/' to '\''
+compose '<' '<' to guillemotleft
+compose '<' 'S' to U+0160
+compose '<' 'Z' to U+017D
+compose '<' 's' to U+0161
+compose '<' 'z' to U+017E
+compose '=' 'c' to U+20AC
+compose '=' 'l' to sterling
+compose '=' 'y' to yen
+compose '>' '>' to guillemotright
+compose '>' 'A' to Acircumflex
+compose '>' 'E' to Ecircumflex
+compose '>' 'I' to Icircumflex
+compose '>' 'O' to Ocircumflex
+compose '>' 'U' to Ucircumflex
+compose '>' 'a' to acircumflex
+compose '>' 'e' to ecircumflex
+compose '>' 'i' to icircumflex
+compose '>' 'o' to ocircumflex
+compose '>' 'u' to ucircumflex
+compose '?' '?' to questiondown
+compose 'A' 'E' to AE
+compose 'A' 'O' to Aring
+compose 'O' 'E' to U+0152
+compose 'T' 'H' to THORN
+compose '\'' 'A' to Aacute
+compose '\'' 'C' to Ccedilla
+compose '\'' 'E' to Eacute
+compose '\'' 'I' to Iacute
+compose '\'' 'O' to Oacute
+compose '\'' 'U' to Uacute
+compose '\'' 'Y' to Yacute
+compose '\'' '\'' to '\''
+compose '\'' 'a' to aacute
+compose '\'' 'c' to ccedilla
+compose '\'' 'e' to eacute
+compose '\'' 'i' to iacute
+compose '\'' 'o' to oacute
+compose '\'' 'u' to uacute
+compose '\'' 'y' to yacute
+compose '^' '-' to macron
+compose '^' '.' to periodcentered
+compose '^' '/' to '|'
+compose '^' '0' to degree
+compose '^' '1' to onesuperior
+compose '^' '2' to twosuperior
+compose '^' '3' to threesuperior
+compose '^' 'A' to Acircumflex
+compose '^' 'E' to Ecircumflex
+compose '^' 'I' to Icircumflex
+compose '^' 'O' to Ocircumflex
+compose '^' 'S' to U+0160
+compose '^' 'U' to Ucircumflex
+compose '^' 'Z' to U+017D
+compose '^' '_' to macron
+compose '^' 'a' to acircumflex
+compose '^' 'e' to ecircumflex
+compose '^' 'i' to icircumflex
+compose '^' 'o' to ocircumflex
+compose '^' 's' to U+0161
+compose '^' 'u' to ucircumflex
+compose '^' 'z' to U+017E
+compose '_' '^' to macron
+compose '_' '_' to macron
+compose '_' 'a' to ordfeminine
+compose '_' 'o' to masculine
+compose '`' 'A' to Agrave
+compose '`' 'E' to Egrave
+compose '`' 'I' to Igrave
+compose '`' 'O' to Ograve
+compose '`' 'U' to Ugrave
+compose '`' 'a' to agrave
+compose '`' 'e' to egrave
+compose '`' 'i' to igrave
+compose '`' 'o' to ograve
+compose '`' 'u' to ugrave
+compose 'a' 'e' to ae
+compose 'a' 'o' to aring
+compose 'a' 't' to '@'
+compose 'c' '0' to copyright
+compose 'c' 'S' to U+0160
+compose 'c' 'Z' to U+017D
+compose 'c' 'o' to copyright
+compose 'c' 's' to U+0161
+compose 'c' 'z' to U+017E
+compose 'e' '=' to U+20AC
+compose 'o' 'c' to copyright
+compose 'o' 'e' to U+0153
+compose 'r' 'o' to registered
+compose 's' '0' to section
+compose 's' '1' to onesuperior
+compose 's' '2' to twosuperior
+compose 's' '3' to threesuperior
+compose 's' 'o' to section
+compose 't' 'h' to thorn
+compose 'v' 'l' to '|'
+compose '|' 'c' to cent
+compose '~' 'A' to Atilde
+compose '~' 'N' to Ntilde
+compose '~' 'O' to Otilde
+compose '~' 'a' to atilde
+compose '~' 'n' to ntilde
+compose '~' 'o' to otilde
diff --git a/console-setup/compose.ISO-8859-16.inc b/console-setup/compose.ISO-8859-16.inc
new file mode 100644 (file)
index 0000000..96c38ae
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ISO-8859-16
diff --git a/console-setup/compose.ISO-8859-2.inc b/console-setup/compose.ISO-8859-2.inc
new file mode 100644 (file)
index 0000000..7f5ef7f
--- /dev/null
@@ -0,0 +1,243 @@
+# Compose sequences for ISO-8859-2
+compose '!' 'p' to U+015B
+compose '!' 's' to section
+compose '"' '"' to diaeresis
+compose '"' 'A' to Adiaeresis
+compose '"' 'E' to Ediaeresis
+compose '"' 'I' to U+010E
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'a' to adiaeresis
+compose '"' 'e' to ediaeresis
+compose '"' 'i' to U+010F
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '"' 'y' to U+02D9
+compose '"' U+00A0 to diaeresis
+compose '"' U+00A8 to diaeresis
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' '0' to degree
+compose '*' 'A' to U+0139
+compose '*' 'U' to U+016E
+compose '*' 'a' to U+013A
+compose '*' 'u' to U+016F
+compose '*' U+00A0 to degree
+compose '*' U+00B0 to degree
+compose '+' '+' to '#'
+compose ',' ',' to cedilla
+compose ',' 'A' to U+0104
+compose ',' 'C' to Ccedilla
+compose ',' 'E' to U+0118
+compose ',' 'S' to U+015E
+compose ',' 'T' to U+0162
+compose ',' 'a' to U+0105
+compose ',' 'c' to ccedilla
+compose ',' 'e' to U+0119
+compose ',' 's' to U+015F
+compose ',' 't' to U+0163
+compose ',' U+00A0 to cedilla
+compose ',' U+00B8 to cedilla
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '-' to hyphen
+compose '-' ':' to division
+compose '-' 'D' to U+0110
+compose '-' 'd' to U+0111
+compose '.' '.' to U+02D9
+compose '.' 'C' to U+0139
+compose '.' 'E' to U+011A
+compose '.' 'I' to U+0160
+compose '.' 'U' to U+016E
+compose '.' 'Z' to U+017B
+compose '.' 'c' to U+013A
+compose '.' 'e' to U+011B
+compose '.' 'i' to U+0161
+compose '.' 'u' to U+016F
+compose '.' 'z' to U+017C
+compose '.' U+00A0 to U+02D9
+compose '.' U+02D9 to U+02D9
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' '^' to '|'
+compose ':' '-' to division
+compose '<' '/' to '\''
+compose '<' '<' to U+02C7
+compose '<' 'C' to U+010C
+compose '<' 'D' to U+010E
+compose '<' 'E' to U+011A
+compose '<' 'L' to U+013D
+compose '<' 'N' to U+0147
+compose '<' 'R' to U+0158
+compose '<' 'S' to U+0160
+compose '<' 'T' to U+0164
+compose '<' 'Z' to U+017D
+compose '<' 'c' to U+010D
+compose '<' 'd' to U+010F
+compose '<' 'e' to U+011B
+compose '<' 'l' to U+013E
+compose '<' 'n' to U+0148
+compose '<' 'r' to U+0159
+compose '<' 's' to U+0161
+compose '<' 't' to U+0165
+compose '<' 'z' to U+017E
+compose '=' 'O' to U+0150
+compose '=' 'U' to U+0170
+compose '=' 'o' to U+0151
+compose '=' 'u' to U+0171
+compose '=' U+00A0 to U+0000
+compose '=' U+02DD to U+0000
+compose '>' 'A' to Acircumflex
+compose '>' 'I' to Icircumflex
+compose '>' 'O' to Ocircumflex
+compose '>' 'a' to acircumflex
+compose '>' 'i' to icircumflex
+compose '>' 'o' to ocircumflex
+compose 'A' 'U' to U+0102
+compose 'L' '-' to U+0141
+compose 'O' 'E' to U+017A
+compose 'U' 'A' to U+0102
+compose 'U' 'G' to U+0164
+compose 'U' 'U' to Yacute
+compose 'U' 'a' to U+0103
+compose 'U' 'g' to U+0165
+compose 'U' 'u' to yacute
+compose 'U' U+00A0 to U+02D8
+compose 'U' U+02D8 to U+02D8
+compose 'Z' '.' to U+017B
+compose '\'' 'A' to Aacute
+compose '\'' 'C' to U+0106
+compose '\'' 'E' to Eacute
+compose '\'' 'I' to Iacute
+compose '\'' 'L' to U+0139
+compose '\'' 'N' to U+0143
+compose '\'' 'O' to Oacute
+compose '\'' 'R' to U+0154
+compose '\'' 'S' to U+015A
+compose '\'' 'U' to Uacute
+compose '\'' 'Y' to Yacute
+compose '\'' 'Z' to U+0179
+compose '\'' '\'' to U+02DD
+compose '\'' 'a' to aacute
+compose '\'' 'c' to U+0107
+compose '\'' 'e' to eacute
+compose '\'' 'i' to iacute
+compose '\'' 'l' to U+013A
+compose '\'' 'n' to U+0144
+compose '\'' 'o' to oacute
+compose '\'' 'r' to U+0155
+compose '\'' 's' to U+015B
+compose '\'' 'u' to uacute
+compose '\'' 'y' to yacute
+compose '\'' 'z' to U+017A
+compose '\'' U+00A0 to acute
+compose '^' '/' to '|'
+compose '^' 'A' to Acircumflex
+compose '^' 'I' to Icircumflex
+compose '^' 'O' to Ocircumflex
+compose '^' 'U' to U+0170
+compose '^' '^' to '^'
+compose '^' 'a' to acircumflex
+compose '^' 'i' to icircumflex
+compose '^' 'o' to ocircumflex
+compose '^' 'u' to U+0171
+compose '^' U+00A0 to '^'
+compose '_' U+00A0 to U+017B
+compose '`' 'A' to U+0154
+compose '`' 'E' to U+010C
+compose '`' 'I' to U+011A
+compose '`' 'O' to U+0147
+compose '`' 'U' to U+016E
+compose '`' '`' to '`'
+compose '`' 'a' to U+0155
+compose '`' 'e' to U+010D
+compose '`' 'i' to U+011B
+compose '`' 'o' to U+0148
+compose '`' 'u' to U+016F
+compose '`' U+00A0 to '`'
+compose 'a' 'U' to U+0103
+compose 'c' 'C' to U+010C
+compose 'c' 'D' to U+010E
+compose 'c' 'E' to U+011A
+compose 'c' 'L' to U+013D
+compose 'c' 'N' to U+0147
+compose 'c' 'R' to U+0158
+compose 'c' 'S' to U+0160
+compose 'c' 'T' to U+0164
+compose 'c' 'U' to U+016E
+compose 'c' 'Z' to U+017D
+compose 'c' 'c' to U+010D
+compose 'c' 'd' to U+010F
+compose 'c' 'e' to U+011B
+compose 'c' 'l' to U+013E
+compose 'c' 'n' to U+0148
+compose 'c' 'r' to U+0159
+compose 'c' 's' to U+0161
+compose 'c' 't' to U+0165
+compose 'c' 'u' to U+016F
+compose 'c' 'z' to U+017E
+compose 'c' U+00A0 to U+02C7
+compose 'c' U+02C7 to U+02C7
+compose 'k' 'A' to U+0104
+compose 'k' 'E' to U+0118
+compose 'k' 'I' to Ccedilla
+compose 'k' 'U' to U+016E
+compose 'k' 'a' to U+0105
+compose 'k' 'e' to U+0119
+compose 'k' 'i' to ccedilla
+compose 'k' 'u' to U+016F
+compose 'k' U+00A0 to U+0000
+compose 'k' U+02DB to U+0000
+compose 'l' '-' to U+0142
+compose 'o' 'e' to U+02DD
+compose 'o' 'x' to currency
+compose 's' '0' to section
+compose 's' 'o' to section
+compose 'v' 'l' to '|'
+compose 'x' '0' to currency
+compose 'x' 'o' to currency
+compose 'z' '.' to U+017C
+compose '~' 'A' to U+0102
+compose '~' 'I' to U+013D
+compose '~' 'N' to U+0143
+compose '~' 'O' to U+0150
+compose '~' 'U' to Yacute
+compose '~' 'a' to U+0103
+compose '~' 'i' to U+013E
+compose '~' 'n' to U+0144
+compose '~' 'o' to U+0151
+compose '~' 'u' to yacute
+compose '~' '~' to '~'
+compose '~' U+00A0 to '~'
+compose U+00B8 'C' to Ccedilla
+compose U+00B8 'S' to U+015E
+compose U+00B8 'T' to U+0162
+compose U+00B8 'c' to ccedilla
+compose U+00B8 's' to U+015F
+compose U+00B8 't' to U+0163
+compose U+02C7 'C' to U+010C
+compose U+02C7 'D' to U+010E
+compose U+02C7 'E' to U+011A
+compose U+02C7 'L' to U+013D
+compose U+02C7 'N' to U+0147
+compose U+02C7 'R' to U+0158
+compose U+02C7 'S' to U+0160
+compose U+02C7 'T' to U+0164
+compose U+02C7 'Z' to U+017D
+compose U+02C7 'c' to U+010D
+compose U+02C7 'd' to U+010F
+compose U+02C7 'e' to U+011B
+compose U+02C7 'l' to U+013E
+compose U+02C7 'n' to U+0148
+compose U+02C7 'r' to U+0159
+compose U+02C7 's' to U+0161
+compose U+02C7 't' to U+0165
+compose U+02C7 'z' to U+017E
+compose U+02D8 'A' to U+0102
+compose U+02D8 'a' to U+0103
+compose U+02DB 'A' to U+0104
+compose U+02DB 'E' to U+0118
+compose U+02DB 'a' to U+0105
+compose U+02DB 'e' to U+0119
diff --git a/console-setup/compose.ISO-8859-3.inc b/console-setup/compose.ISO-8859-3.inc
new file mode 100644 (file)
index 0000000..30414f2
--- /dev/null
@@ -0,0 +1,177 @@
+# Compose sequences for ISO-8859-3
+compose '!' 's' to section
+compose '"' '"' to diaeresis
+compose '"' 'A' to Adiaeresis
+compose '"' 'E' to Ediaeresis
+compose '"' 'I' to Idiaeresis
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'Y' to U+FFFD
+compose '"' 'a' to adiaeresis
+compose '"' 'e' to ediaeresis
+compose '"' 'i' to idiaeresis
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '"' 'y' to U+02D9
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose '(' 'G' to U+011E
+compose '(' 'U' to U+016C
+compose '(' 'g' to U+011F
+compose '(' 'r' to U+FFFD
+compose '(' 'u' to U+016D
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' '0' to degree
+compose '*' 'A' to U+010A
+compose '*' 'a' to U+010B
+compose '+' '+' to '#'
+compose ',' ',' to cedilla
+compose ',' '-' to U+0134
+compose ',' 'C' to Ccedilla
+compose ',' 'S' to U+015E
+compose ',' 'c' to ccedilla
+compose ',' 's' to U+015F
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '-' to hyphen
+compose '-' ':' to division
+compose '-' 'H' to U+0126
+compose '-' 'O' to U+0120
+compose '-' 'a' to U+FFFD
+compose '-' 'd' to U+FFFD
+compose '-' 'h' to U+0127
+compose '-' 'l' to sterling
+compose '-' 'o' to U+0121
+compose '-' 'y' to U+FFFD
+compose '.' '.' to periodcentered
+compose '.' 'C' to U+010A
+compose '.' 'G' to U+0120
+compose '.' 'I' to U+0130
+compose '.' 'Z' to U+017B
+compose '.' '^' to periodcentered
+compose '.' 'c' to U+010B
+compose '.' 'g' to U+0121
+compose '.' 'i' to U+0131
+compose '.' 'z' to U+017C
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' '^' to '|'
+compose '/' 'u' to mu
+compose ':' '-' to division
+compose '<' '/' to '\''
+compose '=' 'c' to currency
+compose '=' 'e' to currency
+compose '=' 'l' to sterling
+compose '=' 'y' to U+FFFD
+compose '>' 'A' to Acircumflex
+compose '>' 'C' to U+0108
+compose '>' 'E' to Ecircumflex
+compose '>' 'G' to U+011C
+compose '>' 'H' to U+0124
+compose '>' 'I' to Icircumflex
+compose '>' 'J' to U+0134
+compose '>' 'O' to Ocircumflex
+compose '>' 'S' to U+015C
+compose '>' 'U' to Ucircumflex
+compose '>' 'a' to acircumflex
+compose '>' 'c' to U+0109
+compose '>' 'e' to ecircumflex
+compose '>' 'g' to U+011D
+compose '>' 'h' to U+0125
+compose '>' 'i' to icircumflex
+compose '>' 'j' to U+0135
+compose '>' 'o' to ocircumflex
+compose '>' 's' to U+015D
+compose '>' 'u' to ucircumflex
+compose 'G' 'U' to U+011E
+compose 'U' 'G' to U+011E
+compose 'U' 'U' to U+016C
+compose 'U' 'g' to U+011F
+compose 'U' 'u' to U+016D
+compose '\'' 'A' to Aacute
+compose '\'' 'E' to Eacute
+compose '\'' 'I' to Iacute
+compose '\'' 'O' to Oacute
+compose '\'' 'U' to Uacute
+compose '\'' 'Y' to U+016C
+compose '\'' '\'' to acute
+compose '\'' 'a' to aacute
+compose '\'' 'e' to eacute
+compose '\'' 'i' to iacute
+compose '\'' 'o' to oacute
+compose '\'' 'u' to uacute
+compose '\'' 'y' to U+016D
+compose '^' '-' to U+017B
+compose '^' '.' to periodcentered
+compose '^' '/' to '|'
+compose '^' '0' to degree
+compose '^' '1' to U+0131
+compose '^' '2' to twosuperior
+compose '^' '3' to threesuperior
+compose '^' 'A' to Acircumflex
+compose '^' 'C' to U+0108
+compose '^' 'E' to Ecircumflex
+compose '^' 'G' to U+011C
+compose '^' 'H' to U+0124
+compose '^' 'I' to Icircumflex
+compose '^' 'J' to U+0134
+compose '^' 'O' to Ocircumflex
+compose '^' 'S' to U+015C
+compose '^' 'U' to Ucircumflex
+compose '^' '_' to U+017B
+compose '^' 'a' to acircumflex
+compose '^' 'c' to U+0109
+compose '^' 'e' to ecircumflex
+compose '^' 'g' to U+011D
+compose '^' 'h' to U+0125
+compose '^' 'i' to icircumflex
+compose '^' 'j' to U+0135
+compose '^' 'o' to ocircumflex
+compose '^' 's' to U+015D
+compose '^' 'u' to ucircumflex
+compose '`' 'A' to Agrave
+compose '`' 'E' to Egrave
+compose '`' 'I' to Igrave
+compose '`' 'O' to Ograve
+compose '`' 'U' to Ugrave
+compose '`' 'a' to agrave
+compose '`' 'e' to egrave
+compose '`' 'i' to igrave
+compose '`' 'o' to ograve
+compose '`' 'u' to ugrave
+compose 'c' 'S' to U+0124
+compose 'c' 'Z' to acute
+compose 'c' 's' to diaeresis
+compose 'c' 'z' to cedilla
+compose 'g' 'U' to U+011F
+compose 'r' 'o' to U+FFFD
+compose 's' '0' to section
+compose 's' '2' to twosuperior
+compose 's' '3' to threesuperior
+compose 's' 'o' to section
+compose 'u' 'u' to U+016D
+compose 'v' 'l' to '|'
+compose '~' 'N' to Ntilde
+compose '~' 'O' to U+0120
+compose '~' 'a' to U+FFFD
+compose '~' 'n' to ntilde
+compose '~' 'o' to U+0121
+compose U+00A8 'A' to Adiaeresis
+compose U+00A8 'E' to Ediaeresis
+compose U+00A8 'I' to Idiaeresis
+compose U+00A8 'O' to Odiaeresis
+compose U+00A8 'U' to Udiaeresis
+compose U+00A8 'Y' to U+FFFD
+compose U+00A8 'a' to adiaeresis
+compose U+00A8 'e' to ediaeresis
+compose U+00A8 'i' to idiaeresis
+compose U+00A8 'o' to odiaeresis
+compose U+00A8 'u' to udiaeresis
+compose U+00A8 'y' to U+02D9
+compose U+00B8 'S' to U+015E
+compose U+00B8 's' to U+015F
+compose U+02D8 'G' to U+011E
+compose U+02D8 'U' to U+016C
+compose U+02D8 'g' to U+011F
+compose U+02D8 'u' to U+016D
diff --git a/console-setup/compose.ISO-8859-4.inc b/console-setup/compose.ISO-8859-4.inc
new file mode 100644 (file)
index 0000000..5760038
--- /dev/null
@@ -0,0 +1,142 @@
+# Compose sequences for ISO-8859-4
+compose '!' 's' to section
+compose '"' '"' to diaeresis
+compose '"' 'A' to Adiaeresis
+compose '"' 'E' to Ediaeresis
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'a' to adiaeresis
+compose '"' 'e' to ediaeresis
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '"' U+00A8 to diaeresis
+compose '*' '0' to degree
+compose '*' 'A' to Aring
+compose '*' 'a' to aring
+compose ',' ',' to cedilla
+compose ',' 'A' to U+0104
+compose ',' 'E' to U+0118
+compose ',' 'G' to U+0122
+compose ',' 'I' to U+012E
+compose ',' 'K' to U+0136
+compose ',' 'L' to U+013B
+compose ',' 'N' to U+0145
+compose ',' 'R' to U+0156
+compose ',' 'U' to U+0172
+compose ',' 'a' to U+0105
+compose ',' 'e' to U+0119
+compose ',' 'g' to U+0123
+compose ',' 'i' to U+012F
+compose ',' 'k' to U+0137
+compose ',' 'l' to U+013C
+compose ',' 'n' to U+0146
+compose ',' 'r' to U+0157
+compose ',' 'u' to U+0173
+compose ',' U+00B8 to cedilla
+compose '-' '-' to hyphen
+compose '-' ':' to division
+compose '-' 'A' to U+0100
+compose '-' 'D' to U+0110
+compose '-' 'E' to U+0112
+compose '-' 'I' to U+012A
+compose '-' 'O' to U+014C
+compose '-' 'U' to U+016A
+compose '-' '^' to macron
+compose '-' 'a' to U+0101
+compose '-' 'd' to U+0111
+compose '-' 'e' to U+0113
+compose '-' 'i' to U+012B
+compose '-' 'o' to U+014D
+compose '-' 'u' to U+016B
+compose '.' '.' to U+02D9
+compose '.' 'E' to U+0116
+compose '.' 'e' to U+0117
+compose '.' U+02D9 to U+02D9
+compose '/' 'O' to Ooblique
+compose '/' 'T' to U+0166
+compose '/' 'o' to oslash
+compose '/' 't' to U+0167
+compose ':' '-' to division
+compose '<' '<' to U+02C7
+compose '<' 'C' to U+010C
+compose '<' 'S' to U+0160
+compose '<' 'Z' to U+017D
+compose '<' 'c' to U+010D
+compose '<' 's' to U+0161
+compose '<' 'z' to U+017E
+compose '>' 'A' to Acircumflex
+compose '>' 'I' to Icircumflex
+compose '>' 'O' to Ocircumflex
+compose '>' 'U' to Ucircumflex
+compose '>' 'a' to acircumflex
+compose '>' 'i' to icircumflex
+compose '>' 'o' to ocircumflex
+compose '>' 'u' to ucircumflex
+compose 'A' 'E' to AE
+compose 'N' 'G' to U+014A
+compose 'T' '-' to U+0166
+compose '\'' 'A' to Aacute
+compose '\'' 'E' to Eacute
+compose '\'' 'I' to Iacute
+compose '\'' 'U' to Uacute
+compose '\'' '\'' to acute
+compose '\'' 'a' to aacute
+compose '\'' 'e' to eacute
+compose '\'' 'i' to iacute
+compose '\'' 'u' to uacute
+compose '^' '-' to macron
+compose '^' 'A' to Acircumflex
+compose '^' 'I' to Icircumflex
+compose '^' 'O' to Ocircumflex
+compose '^' 'U' to Ucircumflex
+compose '^' '_' to macron
+compose '^' 'a' to acircumflex
+compose '^' 'i' to icircumflex
+compose '^' 'o' to ocircumflex
+compose '^' 'u' to ucircumflex
+compose '_' 'A' to U+0100
+compose '_' 'E' to U+0112
+compose '_' 'I' to U+012A
+compose '_' 'O' to U+014C
+compose '_' 'U' to U+016A
+compose '_' '^' to macron
+compose '_' '_' to macron
+compose '_' 'a' to U+0101
+compose '_' 'e' to U+0113
+compose '_' 'i' to U+012B
+compose '_' 'o' to U+014D
+compose '_' 'u' to U+016B
+compose '_' U+00AF to macron
+compose 'a' 'e' to ae
+compose 'c' 'C' to U+010C
+compose 'c' 'S' to U+0160
+compose 'c' 'Z' to U+017D
+compose 'c' 'c' to U+010D
+compose 'c' 's' to U+0161
+compose 'c' 'z' to U+017E
+compose 'c' U+02C7 to U+02C7
+compose 'k' 'A' to U+0104
+compose 'k' 'E' to U+0118
+compose 'k' 'I' to U+012E
+compose 'k' 'U' to U+0172
+compose 'k' 'a' to U+0105
+compose 'k' 'e' to U+0119
+compose 'k' 'i' to U+012F
+compose 'k' 'u' to U+0173
+compose 'k' U+02DB to U+02DB
+compose 'n' 'g' to U+014B
+compose 'o' 'x' to currency
+compose 's' '0' to section
+compose 's' 'o' to section
+compose 't' '-' to U+0167
+compose 'x' '0' to currency
+compose 'x' 'o' to currency
+compose '~' 'A' to Atilde
+compose '~' 'I' to U+0128
+compose '~' 'O' to Otilde
+compose '~' 'U' to U+0168
+compose '~' 'a' to atilde
+compose '~' 'i' to U+0129
+compose '~' 'o' to otilde
+compose '~' 'u' to U+0169
+compose '~' '~' to '~'
diff --git a/console-setup/compose.ISO-8859-5.inc b/console-setup/compose.ISO-8859-5.inc
new file mode 100644 (file)
index 0000000..90c4f07
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ISO-8859-5
diff --git a/console-setup/compose.ISO-8859-6.inc b/console-setup/compose.ISO-8859-6.inc
new file mode 100644 (file)
index 0000000..1a4f93f
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ISO-8859-6
diff --git a/console-setup/compose.ISO-8859-7.inc b/console-setup/compose.ISO-8859-7.inc
new file mode 100644 (file)
index 0000000..f38e32e
--- /dev/null
@@ -0,0 +1,94 @@
+# Compose sequences for ISO-8859-7
+compose '!' '^' to brokenbar
+compose '!' 's' to section
+compose '"' '"' to diaeresis
+compose '"' '.' to periodcentered
+compose '"' '<' to guillemotleft
+compose '"' '>' to guillemotright
+compose '"' U+0399 to U+03AA
+compose '"' U+03A5 to U+03AB
+compose '"' U+03B9 to U+03CA
+compose '"' U+03C5 to U+03CB
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose '(' 'c' to copyright
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' '0' to degree
+compose '+' '+' to '#'
+compose '+' '-' to plusminus
+compose ',' '-' to notsign
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '+' to plusminus
+compose '-' ',' to notsign
+compose '-' '-' to hyphen
+compose '-' 'l' to sterling
+compose '.' '.' to periodcentered
+compose '.' '^' to periodcentered
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' '^' to '|'
+compose '1' '2' to onehalf
+compose '<' '/' to '\''
+compose '<' '<' to guillemotleft
+compose '<' '\'' to U+201B
+compose '=' 'l' to sterling
+compose '>' '>' to guillemotright
+compose '>' '\'' to U+2019
+compose 'U' U+03B9 to U+0390
+compose 'U' U+03C5 to U+03B0
+compose '\'' '.' to periodcentered
+compose '\'' '<' to U+201B
+compose '\'' '>' to U+2019
+compose '\'' '\'' to acute
+compose '\'' U+0391 to U+0386
+compose '\'' U+0395 to U+0388
+compose '\'' U+0397 to U+0389
+compose '\'' U+0399 to U+038A
+compose '\'' U+039F to U+038C
+compose '\'' U+03A5 to U+038E
+compose '\'' U+03A9 to U+038F
+compose '\'' U+03B1 to U+03AC
+compose '\'' U+03B5 to U+03AD
+compose '\'' U+03B7 to U+03AE
+compose '\'' U+03B9 to U+03AF
+compose '\'' U+03BF to U+03CC
+compose '\'' U+03C5 to U+03CD
+compose '\'' U+03C9 to U+03CE
+compose '^' '!' to brokenbar
+compose '^' '.' to periodcentered
+compose '^' '/' to '|'
+compose '^' '0' to degree
+compose '^' '2' to twosuperior
+compose '^' '3' to threesuperior
+compose 'a' 't' to '@'
+compose 'c' '0' to copyright
+compose 'c' 'o' to copyright
+compose 'o' 'c' to copyright
+compose 's' '0' to section
+compose 's' '2' to twosuperior
+compose 's' '3' to threesuperior
+compose 's' 'o' to section
+compose 'v' 'b' to brokenbar
+compose 'v' 'l' to '|'
+compose '|' '|' to brokenbar
+compose '~' '~' to U+2014
+compose U+0391 '\'' to U+0386
+compose U+0395 '\'' to U+0388
+compose U+0397 '\'' to U+0389
+compose U+0399 '"' to U+03AA
+compose U+0399 '\'' to U+038A
+compose U+039F '\'' to U+038C
+compose U+03A5 '"' to U+03AB
+compose U+03A5 '\'' to U+038E
+compose U+03A9 '\'' to U+038F
+compose U+03B1 '\'' to U+03AC
+compose U+03B5 '\'' to U+03AD
+compose U+03B7 '\'' to U+03AE
+compose U+03B9 '"' to U+03CA
+compose U+03B9 '\'' to U+03AF
+compose U+03BF '\'' to U+03CC
+compose U+03C5 '"' to U+03CB
+compose U+03C5 '\'' to U+03CD
+compose U+03C9 '\'' to U+03CE
diff --git a/console-setup/compose.ISO-8859-8.inc b/console-setup/compose.ISO-8859-8.inc
new file mode 100644 (file)
index 0000000..1fbb453
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for ISO-8859-8
diff --git a/console-setup/compose.ISO-8859-9.inc b/console-setup/compose.ISO-8859-9.inc
new file mode 100644 (file)
index 0000000..7cca97b
--- /dev/null
@@ -0,0 +1,176 @@
+# Compose sequences for ISO-8859-9
+compose '!' '!' to exclamdown
+compose '!' 'p' to paragraph
+compose '!' 's' to section
+compose '"' '"' to diaeresis
+compose '"' 'A' to Adiaeresis
+compose '"' 'E' to Ediaeresis
+compose '"' 'I' to Idiaeresis
+compose '"' 'O' to Odiaeresis
+compose '"' 'U' to Udiaeresis
+compose '"' 'Y' to threequarters
+compose '"' 'a' to adiaeresis
+compose '"' 'e' to ediaeresis
+compose '"' 'i' to U+012B
+compose '"' 'o' to odiaeresis
+compose '"' 'u' to udiaeresis
+compose '"' 'y' to ydiaeresis
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose '(' 'G' to U+011E
+compose '(' 'c' to copyright
+compose '(' 'g' to U+011F
+compose '(' 'r' to registered
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '*' '0' to degree
+compose '*' 'A' to Aring
+compose '*' 'a' to aring
+compose '+' '+' to '#'
+compose '+' '-' to plusminus
+compose ',' ',' to cedilla
+compose ',' '-' to notsign
+compose ',' 'C' to Ccedilla
+compose ',' 'S' to U+015E
+compose ',' 'c' to ccedilla
+compose ',' 's' to U+015F
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '-' '+' to plusminus
+compose '-' ',' to notsign
+compose '-' '-' to hyphen
+compose '-' ':' to division
+compose '-' 'A' to Atilde
+compose '-' 'D' to U+011E
+compose '-' 'N' to Ntilde
+compose '-' 'O' to Otilde
+compose '-' '^' to macron
+compose '-' 'a' to atilde
+compose '-' 'd' to U+011F
+compose '-' 'l' to sterling
+compose '-' 'n' to ntilde
+compose '-' 'o' to otilde
+compose '-' 'y' to yen
+compose '.' '.' to periodcentered
+compose '.' 'I' to U+0130
+compose '.' '^' to periodcentered
+compose '.' 'i' to U+0131
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' 'O' to Ooblique
+compose '/' '^' to '|'
+compose '/' 'c' to cent
+compose '/' 'o' to oslash
+compose '/' 'u' to mu
+compose ':' '-' to division
+compose '<' '/' to '\''
+compose '<' '<' to guillemotleft
+compose '<' 'Z' to acute
+compose '<' 'z' to cedilla
+compose '=' 'c' to currency
+compose '=' 'e' to currency
+compose '=' 'l' to sterling
+compose '=' 'y' to yen
+compose '>' '>' to guillemotright
+compose '>' 'A' to Acircumflex
+compose '>' 'E' to Ecircumflex
+compose '>' 'I' to Icircumflex
+compose '>' 'O' to Ocircumflex
+compose '>' 'U' to Ucircumflex
+compose '>' 'a' to acircumflex
+compose '>' 'e' to U+0119
+compose '>' 'i' to icircumflex
+compose '>' 'o' to ocircumflex
+compose '>' 'u' to ucircumflex
+compose '?' '?' to questiondown
+compose 'A' 'E' to AE
+compose 'G' 'U' to U+011E
+compose 'T' 'H' to U+015E
+compose 'U' 'G' to U+011E
+compose 'U' 'g' to U+011F
+compose '\'' 'A' to Aacute
+compose '\'' 'E' to Eacute
+compose '\'' 'I' to Iacute
+compose '\'' 'O' to Oacute
+compose '\'' 'U' to Uacute
+compose '\'' 'Y' to U+0130
+compose '\'' '\'' to acute
+compose '\'' 'a' to aacute
+compose '\'' 'e' to eacute
+compose '\'' 'i' to iacute
+compose '\'' 'o' to oacute
+compose '\'' 'u' to uacute
+compose '\'' 'y' to U+0131
+compose '^' '-' to macron
+compose '^' '.' to periodcentered
+compose '^' '/' to '|'
+compose '^' '0' to degree
+compose '^' '1' to onesuperior
+compose '^' '2' to twosuperior
+compose '^' '3' to threesuperior
+compose '^' 'A' to Acircumflex
+compose '^' 'E' to Ecircumflex
+compose '^' 'I' to Icircumflex
+compose '^' 'O' to Ocircumflex
+compose '^' 'U' to Ucircumflex
+compose '^' '_' to macron
+compose '^' 'a' to acircumflex
+compose '^' 'e' to U+0119
+compose '^' 'i' to icircumflex
+compose '^' 'o' to ocircumflex
+compose '^' 'u' to ucircumflex
+compose '_' '^' to macron
+compose '_' '_' to macron
+compose '_' 'a' to ordfeminine
+compose '_' 'o' to masculine
+compose '`' 'A' to Agrave
+compose '`' 'E' to Egrave
+compose '`' 'I' to Igrave
+compose '`' 'O' to Ograve
+compose '`' 'U' to Ugrave
+compose '`' 'a' to agrave
+compose '`' 'e' to egrave
+compose '`' 'i' to U+0117
+compose '`' 'o' to ograve
+compose '`' 'u' to ugrave
+compose 'a' 'e' to ae
+compose 'c' '0' to copyright
+compose 'c' 'S' to brokenbar
+compose 'c' 'Z' to acute
+compose 'c' 'o' to copyright
+compose 'c' 's' to diaeresis
+compose 'c' 'z' to cedilla
+compose 'g' 'U' to U+011F
+compose 'o' 'c' to copyright
+compose 'o' 'e' to onequarter
+compose 'r' 'o' to registered
+compose 's' '0' to section
+compose 's' '1' to onesuperior
+compose 's' '2' to twosuperior
+compose 's' '3' to threesuperior
+compose 's' 'o' to section
+compose 't' 'h' to U+015F
+compose 'v' 'Z' to acute
+compose 'v' 'l' to '|'
+compose 'v' 'z' to cedilla
+compose '|' 'c' to cent
+compose '~' 'A' to Atilde
+compose '~' 'N' to Ntilde
+compose '~' 'O' to Otilde
+compose '~' 'a' to atilde
+compose '~' 'n' to ntilde
+compose '~' 'o' to otilde
+compose U+00A8 'A' to Adiaeresis
+compose U+00A8 'E' to Ediaeresis
+compose U+00A8 'I' to Idiaeresis
+compose U+00A8 'O' to Odiaeresis
+compose U+00A8 'U' to Udiaeresis
+compose U+00A8 'Y' to threequarters
+compose U+00A8 'a' to adiaeresis
+compose U+00A8 'e' to ediaeresis
+compose U+00A8 'i' to U+012B
+compose U+00A8 'o' to odiaeresis
+compose U+00A8 'u' to udiaeresis
+compose U+00A8 'y' to ydiaeresis
+compose U+00B8 'S' to U+015E
+compose U+00B8 's' to U+015F
diff --git a/console-setup/compose.KOI8-R.inc b/console-setup/compose.KOI8-R.inc
new file mode 100644 (file)
index 0000000..715ed10
--- /dev/null
@@ -0,0 +1,67 @@
+# Compose sequences for KOI8-R
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '+' '+' to '#'
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' '^' to '|'
+compose '<' '/' to '\''
+compose 'H' '\'' to nobreakspace
+compose '^' '/' to '|'
+compose 'a' 't' to '@'
+compose 'h' '\'' to U+253C
+compose 'v' 'l' to '|'
+compose U+0413 '-' to U+2591
+compose U+0415 ':' to U+0401
+compose U+0415 U+0415 to U+2321
+compose U+0416 ',' to U+2592
+compose U+0418 '-' to degree
+compose U+0419 U+0410 to U+042F
+compose U+0419 U+041E to U+0401
+compose U+0419 U+0423 to U+042E
+compose U+041A ',' to U+2593
+compose U+041A '/' to U+2320
+compose U+041A '|' to U+2320
+compose U+041D ',' to U+25A0
+compose U+041E '-' to twosuperior
+compose U+0422 U+0421 to U+0426
+compose U+0423 ',' to U+221A
+compose U+0423 '-' to periodcentered
+compose U+0423 '/' to U+221A
+compose U+0423 '\'' to U+2219
+compose U+0423 '|' to U+2219
+compose U+0425 ',' to U+2248
+compose U+0425 '\'' to nobreakspace
+compose U+0427 ',' to U+2264
+compose U+0427 '/' to U+2265
+compose U+0427 '|' to U+2265
+compose U+0428 ',' to U+0429
+compose U+0433 '-' to U+2500
+compose U+0435 ':' to U+0451
+compose U+0435 U+0435 to U+2580
+compose U+0436 ',' to U+2502
+compose U+0438 '-' to U+2584
+compose U+0439 U+0430 to U+044F
+compose U+0439 U+043E to U+0451
+compose U+0439 U+0443 to U+044E
+compose U+043A ',' to U+250C
+compose U+043A '/' to U+2510
+compose U+043A '|' to U+2510
+compose U+043D ',' to U+2514
+compose U+043E '-' to U+2588
+compose U+0442 U+0441 to U+0446
+compose U+0443 ',' to U+251C
+compose U+0443 '-' to U+258C
+compose U+0443 '/' to U+251C
+compose U+0443 '\'' to U+2518
+compose U+0443 '|' to U+2518
+compose U+0445 ',' to U+2524
+compose U+0445 '\'' to U+253C
+compose U+0447 ',' to U+252C
+compose U+0447 '/' to U+2534
+compose U+0447 '|' to U+2534
+compose U+0448 ',' to U+0449
diff --git a/console-setup/compose.KOI8-U.inc b/console-setup/compose.KOI8-U.inc
new file mode 100644 (file)
index 0000000..ea96ac7
--- /dev/null
@@ -0,0 +1,67 @@
+# Compose sequences for KOI8-U
+compose '(' '(' to '['
+compose '(' '-' to '{'
+compose ')' ')' to ']'
+compose ')' '-' to '}'
+compose '+' '+' to '#'
+compose '-' '(' to '{'
+compose '-' ')' to '}'
+compose '/' '/' to '\''
+compose '/' '<' to '\''
+compose '/' '^' to '|'
+compose '<' '/' to '\''
+compose 'H' '\'' to nobreakspace
+compose '^' '/' to '|'
+compose 'a' 't' to '@'
+compose 'h' '\'' to U+253C
+compose 'v' 'l' to '|'
+compose U+0413 '-' to U+2591
+compose U+0415 ':' to U+0401
+compose U+0415 U+0415 to U+2321
+compose U+0416 ',' to U+2592
+compose U+0418 '-' to degree
+compose U+0419 U+0410 to U+042F
+compose U+0419 U+041E to U+0401
+compose U+0419 U+0423 to U+042E
+compose U+041A ',' to U+2593
+compose U+041A '/' to U+2320
+compose U+041A '|' to U+2320
+compose U+041D ',' to U+25A0
+compose U+041E '-' to twosuperior
+compose U+0422 U+0421 to U+0426
+compose U+0423 ',' to U+221A
+compose U+0423 '-' to periodcentered
+compose U+0423 '/' to U+221A
+compose U+0423 '\'' to U+2219
+compose U+0423 '|' to U+2219
+compose U+0425 ',' to U+2248
+compose U+0425 '\'' to nobreakspace
+compose U+0427 ',' to U+2264
+compose U+0427 '/' to U+2265
+compose U+0427 '|' to U+2265
+compose U+0428 ',' to U+0429
+compose U+0433 '-' to U+2500
+compose U+0435 ':' to U+0451
+compose U+0435 U+0435 to U+2580
+compose U+0436 ',' to U+2502
+compose U+0438 '-' to U+2584
+compose U+0439 U+0430 to U+044F
+compose U+0439 U+043E to U+0451
+compose U+0439 U+0443 to U+044E
+compose U+043A ',' to U+250C
+compose U+043A '/' to U+2510
+compose U+043A '|' to U+2510
+compose U+043D ',' to U+2514
+compose U+043E '-' to U+2588
+compose U+0442 U+0441 to U+0446
+compose U+0443 ',' to U+251C
+compose U+0443 '-' to U+258C
+compose U+0443 '/' to U+251C
+compose U+0443 '\'' to U+2518
+compose U+0443 '|' to U+2518
+compose U+0445 ',' to U+2524
+compose U+0445 '\'' to U+253C
+compose U+0447 ',' to U+252C
+compose U+0447 '/' to U+2534
+compose U+0447 '|' to U+2534
+compose U+0448 ',' to U+0449
diff --git a/console-setup/compose.TIS-620.inc b/console-setup/compose.TIS-620.inc
new file mode 100644 (file)
index 0000000..4b229cc
--- /dev/null
@@ -0,0 +1 @@
+# Compose sequences for TIS-620
diff --git a/console-setup/compose.VISCII.inc b/console-setup/compose.VISCII.inc
new file mode 100644 (file)
index 0000000..f2012c7
--- /dev/null
@@ -0,0 +1,122 @@
+# Compose sequences for VISCII
+compose '!' 'A' to U+1EA0
+compose '!' 'E' to U+1EB8
+compose '!' 'I' to U+1ECA
+compose '!' 'O' to U+1ECC
+compose '!' 'U' to U+1EE4
+compose '!' 'Y' to U+001E
+compose '!' 'a' to U+1EA1
+compose '!' 'e' to U+1EB9
+compose '!' 'i' to U+1ECB
+compose '!' 'o' to U+1ECD
+compose '!' 'u' to U+1EE5
+compose '!' 'y' to U+1EF5
+compose '!' U+00C2 to U+1EAC
+compose '!' U+00CA to U+1EC6
+compose '!' U+00D4 to U+1ED8
+compose '!' U+00E2 to U+1EAD
+compose '!' U+00EA to U+1EC7
+compose '!' U+00F4 to U+1ED9
+compose '!' U+0102 to U+1EB6
+compose '!' U+0103 to U+1EB7
+compose '!' U+01A0 to U+1EE2
+compose '!' U+01A1 to U+1EE3
+compose '!' U+01AF to U+1EF0
+compose '!' U+01B0 to U+1EF1
+compose '?' 'A' to U+1EA2
+compose '?' 'E' to U+1EBA
+compose '?' 'I' to U+1EC8
+compose '?' 'O' to U+1ECE
+compose '?' 'U' to U+1EE6
+compose '?' 'Y' to U+0014
+compose '?' 'a' to U+1EA3
+compose '?' 'e' to U+1EBB
+compose '?' 'i' to U+1EC9
+compose '?' 'o' to U+1ECF
+compose '?' 'u' to U+1EE7
+compose '?' 'y' to U+1EF7
+compose '?' U+00C2 to U+1EA8
+compose '?' U+00CA to U+1EC2
+compose '?' U+00D4 to U+1ED4
+compose '?' U+00E2 to U+1EA9
+compose '?' U+00EA to U+1EC3
+compose '?' U+00F4 to U+1ED5
+compose '?' U+0102 to U+0002
+compose '?' U+0103 to U+1EB3
+compose '?' U+01A0 to U+1EDE
+compose '?' U+01A1 to U+1EDF
+compose '?' U+01AF to U+1EEC
+compose '?' U+01B0 to U+1EED
+compose '\'' 'A' to Aacute
+compose '\'' 'E' to Eacute
+compose '\'' 'I' to Iacute
+compose '\'' 'O' to Oacute
+compose '\'' 'U' to Uacute
+compose '\'' 'Y' to Yacute
+compose '\'' '\'' to U+01A0
+compose '\'' 'a' to aacute
+compose '\'' 'e' to eacute
+compose '\'' 'i' to iacute
+compose '\'' 'o' to oacute
+compose '\'' 'u' to uacute
+compose '\'' 'y' to yacute
+compose '\'' U+00C2 to U+1EA4
+compose '\'' U+00CA to U+1EBE
+compose '\'' U+00D4 to U+1ED0
+compose '\'' U+00E2 to U+1EA5
+compose '\'' U+00EA to U+1EBF
+compose '\'' U+00F4 to U+1ED1
+compose '\'' U+0102 to U+1EAE
+compose '\'' U+0103 to U+1EAF
+compose '\'' U+01A0 to U+1EDA
+compose '\'' U+01A1 to U+1EDB
+compose '\'' U+01AF to U+1EE8
+compose '\'' U+01B0 to U+1EE9
+compose '`' 'A' to Agrave
+compose '`' 'E' to Egrave
+compose '`' 'I' to Igrave
+compose '`' 'O' to Ograve
+compose '`' 'U' to Ugrave
+compose '`' 'Y' to U+1EF2
+compose '`' 'a' to agrave
+compose '`' 'e' to egrave
+compose '`' 'i' to igrave
+compose '`' 'o' to ograve
+compose '`' 'u' to ugrave
+compose '`' 'y' to U+1EF3
+compose '`' U+00C2 to U+1EA6
+compose '`' U+00CA to U+1EC0
+compose '`' U+00D4 to U+1ED2
+compose '`' U+00E2 to U+1EA7
+compose '`' U+00EA to U+1EC1
+compose '`' U+00F4 to U+1ED3
+compose '`' U+0102 to U+1EB0
+compose '`' U+0103 to U+1EB1
+compose '`' U+01A0 to U+1EDC
+compose '`' U+01A1 to U+1EDD
+compose '`' U+01AF to U+1EEA
+compose '`' U+01B0 to U+1EEB
+compose '~' 'A' to Atilde
+compose '~' 'E' to U+1EBC
+compose '~' 'I' to U+0128
+compose '~' 'O' to Otilde
+compose '~' 'U' to U+0168
+compose '~' 'Y' to U+0019
+compose '~' 'a' to atilde
+compose '~' 'e' to U+1EBD
+compose '~' 'i' to U+0129
+compose '~' 'o' to otilde
+compose '~' 'u' to U+0169
+compose '~' 'y' to U+1EF9
+compose '~' U+00C2 to U+0006
+compose '~' U+00CA to U+1EC4
+compose '~' U+00D4 to U+1ED6
+compose '~' U+00E2 to U+1EAB
+compose '~' U+00EA to U+1EC5
+compose '~' U+00F4 to U+1ED7
+compose '~' U+0102 to U+0005
+compose '~' U+0103 to U+1EB5
+compose '~' U+01A0 to U+1EE0
+compose '~' U+01A1 to U+1EE1
+compose '~' U+01AF to U+1EEE
+compose '~' U+01B0 to U+1EEF
diff --git a/console-setup/remap.inc b/console-setup/remap.inc
new file mode 100644 (file)
index 0000000..a5475c6
--- /dev/null
@@ -0,0 +1,32 @@
+# The content of this file will be appended to the keyboard layout.
+# The following is an example how to make Alt+j switch to to the next
+# console and Alt+k switch to the previous console.
+
+# Uncomment the following lines for Linux.  Notice that everything is
+# replicated for all possible values of the modifiers shiftl, shiftr
+# and ctrll (shiftl and shiftr are used for groups 1..4 of XKB and
+# ctrll is used to fix the broken CapsLock when Linux console is in
+# Unicode mode).
+
+# alt keycode 36 = Incr_Console
+# shiftl alt keycode 36 = Incr_Console
+# shiftr alt keycode 36 = Incr_Console
+# shiftr shiftl alt keycode 36 = Incr_Console
+# ctrll alt keycode 36 = Incr_Console
+# ctrll shiftl alt keycode 36 = Incr_Console
+# ctrll shiftr alt keycode 36 = Incr_Console
+# ctrll shiftr shiftl alt keycode 36 = Incr_Console
+#
+# alt keycode 37 = Decr_Console
+# shiftl alt keycode 37 = Decr_Console
+# shiftr alt keycode 37 = Decr_Console
+# shiftr shiftl alt keycode 37 = Decr_Console
+# ctrll alt keycode 37 = Decr_Console
+# ctrll shiftl alt keycode 37 = Decr_Console
+# ctrll shiftr alt keycode 37 = Decr_Console
+# ctrll shiftr shiftl alt keycode 37 = Decr_Console
+
+# For the same result on FreeBSD uncomment the following lines:
+
+#  036   'j'    'J'    nl     nl     nscr   nscr   nl     nl      C
+#  037   'k'    'K'    vt     vt     pscr   pscr   nl     nl      C
diff --git a/cron.d/.placeholder b/cron.d/.placeholder
new file mode 100644 (file)
index 0000000..76cb8d0
--- /dev/null
@@ -0,0 +1,2 @@
+# DO NOT EDIT OR REMOVE
+# This file is a simple placeholder to keep dpkg from removing this directory
diff --git a/cron.d/backup b/cron.d/backup
new file mode 100644 (file)
index 0000000..5e27179
--- /dev/null
@@ -0,0 +1 @@
+5  4  *  *  *  root /root/Work/admin-tools/bin/manual-backup --quiet --mysql --no-sync
diff --git a/cron.d/e2scrub_all b/cron.d/e2scrub_all
new file mode 100644 (file)
index 0000000..711b0b2
--- /dev/null
@@ -0,0 +1,2 @@
+30 3 * * 0 root test -e /run/systemd/system || SERVICE_MODE=1 /usr/lib/x86_64-linux-gnu/e2fsprogs/e2scrub_all_cron
+10 3 * * * root test -e /run/systemd/system || SERVICE_MODE=1 /sbin/e2scrub_all -A -r
diff --git a/cron.daily/.placeholder b/cron.daily/.placeholder
new file mode 100644 (file)
index 0000000..76cb8d0
--- /dev/null
@@ -0,0 +1,2 @@
+# DO NOT EDIT OR REMOVE
+# This file is a simple placeholder to keep dpkg from removing this directory
diff --git a/cron.daily/apache2 b/cron.daily/apache2
new file mode 100755 (executable)
index 0000000..6461f07
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# run htcacheclean if set to 'cron' mode
+
+set -e
+set -u
+
+type htcacheclean > /dev/null 2>&1 || exit 0
+[ -e /etc/default/apache-htcacheclean ] || exit 0
+
+
+# edit /etc/default/apache-htcacheclean to change this
+HTCACHECLEAN_MODE=daemon
+HTCACHECLEAN_RUN=auto
+HTCACHECLEAN_SIZE=300M
+HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk
+HTCACHECLEAN_OPTIONS=""
+
+. /etc/default/apache-htcacheclean
+
+[ "$HTCACHECLEAN_MODE" = "cron" ] || exit 0
+
+htcacheclean ${HTCACHECLEAN_OPTIONS}   \
+               -p${HTCACHECLEAN_PATH}  \
+               -l${HTCACHECLEAN_SIZE}
diff --git a/cron.daily/apt-compat b/cron.daily/apt-compat
new file mode 100755 (executable)
index 0000000..bde3237
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+set -e
+
+# Systemd systems use a systemd timer unit which is preferable to
+# run. We want to randomize the apt update and unattended-upgrade
+# runs as much as possible to avoid hitting the mirrors all at the
+# same time. The systemd time is better at this than the fixed
+# cron.daily time
+if [ -d /run/systemd/system ]; then
+    exit 0
+fi
+
+check_power()
+{
+    # laptop check, on_ac_power returns:
+    #       0 (true)    System is on main power
+    #       1 (false)   System is not on main power
+    #       255 (false) Power status could not be determined
+    # Desktop systems always return 255 it seems
+    if command -v on_ac_power >/dev/null; then
+        if on_ac_power; then
+            :
+        elif [ $? -eq 1 ]; then
+            return 1
+        fi
+    fi
+    return 0
+}
+
+# sleep for a random interval of time (default 30min)
+# (some code taken from cron-apt, thanks)
+random_sleep()
+{
+    RandomSleep=1800
+    eval $(apt-config shell RandomSleep APT::Periodic::RandomSleep)
+    if [ $RandomSleep -eq 0 ]; then
+       return
+    fi
+    if [ -z "$RANDOM" ] ; then
+        # A fix for shells that do not have this bash feature.
+       RANDOM=$(( $(dd if=/dev/urandom bs=2 count=1 2> /dev/null | cksum | cut -d' ' -f1) % 32767 ))
+    fi
+    TIME=$(($RANDOM % $RandomSleep))
+    sleep $TIME
+}
+
+# delay the job execution by a random amount of time
+random_sleep
+
+# ensure we don't do this on battery
+check_power || exit 0
+
+# run daily job
+exec /usr/lib/apt/apt.systemd.daily
diff --git a/cron.daily/dpkg b/cron.daily/dpkg
new file mode 100755 (executable)
index 0000000..899572d
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Skip if systemd is running.
+if [ -d /run/systemd/system ]; then
+  exit 0
+fi
+
+/usr/libexec/dpkg/dpkg-db-backup
diff --git a/cron.daily/etckeeper b/cron.daily/etckeeper
new file mode 100755 (executable)
index 0000000..eb74401
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+if [ -e /etc/etckeeper/daily ] && [ -e /etc/etckeeper/etckeeper.conf ]; then
+       . /etc/etckeeper/etckeeper.conf
+       if [ "$AVOID_DAILY_AUTOCOMMITS" != "1" ]; then
+               /etc/etckeeper/daily
+       fi
+fi
diff --git a/cron.daily/logrotate b/cron.daily/logrotate
new file mode 100755 (executable)
index 0000000..1ac1570
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# skip in favour of systemd timer
+if [ -d /run/systemd/system ]; then
+    exit 0
+fi
+
+# this cronjob persists removals (but not purges)
+if [ ! -x /usr/sbin/logrotate ]; then
+    exit 0
+fi
+
+/usr/sbin/logrotate /etc/logrotate.conf
+EXITVALUE=$?
+if [ $EXITVALUE != 0 ]; then
+    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
+fi
+exit $EXITVALUE
diff --git a/cron.daily/man-db b/cron.daily/man-db
new file mode 100755 (executable)
index 0000000..4dd8ae0
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# man-db cron daily
+
+set -e
+
+if [ -d /run/systemd/system ]; then
+    # Skip in favour of systemd timer.
+    exit 0
+fi
+
+# This should be set by cron, but apparently isn't always; see
+# https://bugs.debian.org/209185.  Add fallbacks so that start-stop-daemon
+# can be found.
+export PATH="$PATH:/usr/local/sbin:/usr/sbin:/sbin"
+
+iosched_idle=
+# Don't try to change I/O priority in a vserver or OpenVZ.
+if ! grep -Eq '(envID|VxID):.*[1-9]' /proc/self/status && \
+   { [ ! -d /proc/vz ] || [ -d /proc/bc ]; }; then
+    iosched_idle='--iosched idle'
+fi
+
+if ! [ -d /var/cache/man ]; then
+    # Recover from deletion, per FHS.
+    install -d -o man -g man -m 0755 /var/cache/man
+fi
+
+# expunge old catman pages which have not been read in a week
+if [ -d /var/cache/man ]; then
+  cd /
+  # shellcheck disable=SC2086
+  start-stop-daemon --start --pidfile /dev/null --startas /bin/sh \
+       --oknodo --chuid man $iosched_idle -- -c \
+       "find /var/cache/man -type f -name '*.gz' -atime +6 -print0 | \
+        xargs -r0 rm -f"
+fi
+
+# regenerate man database
+if [ -x /usr/bin/mandb ]; then
+    # --pidfile /dev/null so it always starts; mandb isn't really a daemon,
+    # but we want to start it like one.
+    # shellcheck disable=SC2086
+    start-stop-daemon --start --pidfile /dev/null \
+                     --startas /usr/bin/mandb --oknodo --chuid man \
+                     $iosched_idle \
+                     -- --no-purge --quiet
+fi
+
+exit 0
diff --git a/cron.daily/plocate b/cron.daily/plocate
new file mode 100755 (executable)
index 0000000..e3b6c42
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+set -e
+
+UPDATEDB=/usr/sbin/updatedb.plocate
+
+# Skip if systemd timer is available.
+if [ -d /run/systemd/system ]; then
+    exit 0
+fi
+
+[ -x $UPDATEDB ] || exit 0
+
+if which on_ac_power >/dev/null 2>&1; then
+    ON_BATTERY=0
+    on_ac_power >/dev/null 2>&1 || ON_BATTERY=$?
+    if [ "$ON_BATTERY" -eq 1 ]; then
+        exit 0
+    fi
+fi
+
+# See ionice(1).
+IONICE=
+if [ -x /usr/bin/ionice ] &&
+    /usr/bin/ionice -c3 true 2>/dev/null; then
+    IONICE="/usr/bin/ionice -c3"
+fi
+
+# See nocache(1).
+NOCACHE=
+if [ -x /usr/bin/nocache ]; then
+    NOCACHE="/usr/bin/nocache"
+fi
+
+flock --nonblock /run/plocate.daily.lock $NOCACHE $IONICE nice $UPDATEDB
diff --git a/cron.hourly/.placeholder b/cron.hourly/.placeholder
new file mode 100644 (file)
index 0000000..76cb8d0
--- /dev/null
@@ -0,0 +1,2 @@
+# DO NOT EDIT OR REMOVE
+# This file is a simple placeholder to keep dpkg from removing this directory
diff --git a/cron.monthly/.placeholder b/cron.monthly/.placeholder
new file mode 100644 (file)
index 0000000..76cb8d0
--- /dev/null
@@ -0,0 +1,2 @@
+# DO NOT EDIT OR REMOVE
+# This file is a simple placeholder to keep dpkg from removing this directory
diff --git a/cron.weekly/.placeholder b/cron.weekly/.placeholder
new file mode 100644 (file)
index 0000000..76cb8d0
--- /dev/null
@@ -0,0 +1,2 @@
+# DO NOT EDIT OR REMOVE
+# This file is a simple placeholder to keep dpkg from removing this directory
diff --git a/cron.weekly/man-db b/cron.weekly/man-db
new file mode 100755 (executable)
index 0000000..c2a55cb
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# man-db cron weekly
+
+set -e
+
+if [ -d /run/systemd/system ]; then
+    # Skip in favour of systemd timer.
+    exit 0
+fi
+
+# This should be set by cron, but apparently isn't always; see
+# https://bugs.debian.org/209185.  Add fallbacks so that start-stop-daemon
+# can be found.
+export PATH="$PATH:/usr/local/sbin:/usr/sbin:/sbin"
+
+iosched_idle=
+# Don't try to change I/O priority in a vserver or OpenVZ.
+if ! grep -Eq '(envID|VxID):.*[1-9]' /proc/self/status && \
+   { [ ! -d /proc/vz ] || [ -d /proc/bc ]; }; then
+    iosched_idle='--iosched idle'
+fi
+
+if ! [ -d /var/cache/man ]; then
+    # Recover from deletion, per FHS.
+    install -d -o man -g man -m 0755 /var/cache/man
+fi
+
+# regenerate man database
+if [ -x /usr/bin/mandb ]; then
+    # --pidfile /dev/null so it always starts; mandb isn't really a daemon,
+    # but we want to start it like one.
+    # shellcheck disable=SC2086
+    start-stop-daemon --start --pidfile /dev/null \
+                     --startas /usr/bin/mandb --oknodo --chuid man \
+                     $iosched_idle \
+                     -- --quiet
+fi
+
+exit 0
diff --git a/cron.yearly/.placeholder b/cron.yearly/.placeholder
new file mode 100644 (file)
index 0000000..76cb8d0
--- /dev/null
@@ -0,0 +1,2 @@
+# DO NOT EDIT OR REMOVE
+# This file is a simple placeholder to keep dpkg from removing this directory
diff --git a/crontab b/crontab
new file mode 100644 (file)
index 0000000..d4f236f
--- /dev/null
+++ b/crontab
@@ -0,0 +1,22 @@
+# /etc/crontab: system-wide crontab
+# Unlike any other crontab you don't have to run the `crontab'
+# command to install the new version when you edit this file
+# and files in /etc/cron.d. These files also have username fields,
+# that none of the other crontabs do.
+
+SHELL=/bin/sh
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+
+# Example of job definition:
+# .---------------- minute (0 - 59)
+# |  .------------- hour (0 - 23)
+# |  |  .---------- day of month (1 - 31)
+# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
+# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
+# |  |  |  |  |
+# *  *  *  *  * user-name command to be executed
+17 *   * * *   root    cd / && run-parts --report /etc/cron.hourly
+25 6   * * *   root    test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; }
+47 6   * * 7   root    test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; }
+52 6   1 * *   root    test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }
+#
diff --git a/cruft/filters-unex/etckeeper b/cruft/filters-unex/etckeeper
new file mode 100644 (file)
index 0000000..edd5f33
--- /dev/null
@@ -0,0 +1,13 @@
+/etc/.etckeeper
+/etc/.gitignore
+/etc/.git
+/etc/.git/**
+/etc/.hgignore
+/etc/.hg
+/etc/.hg/**
+/etc/.bzrignore
+/etc/.bzr
+/etc/.bzr/**
+/etc/.darcsignore
+/etc/_darcs
+/etc/_darcs/**
diff --git a/debconf.conf b/debconf.conf
new file mode 100644 (file)
index 0000000..549c1d5
--- /dev/null
@@ -0,0 +1,83 @@
+# This is the main config file for debconf. It tells debconf where to
+# store data. The format of this file is a set of stanzas. Each stanza
+# except the first sets up a database for debconf to use. For details, see
+# debconf.conf(5) (in the debconf-doc package).
+#
+# So first things first. This first stanza gives the names of two databases.
+
+# Debconf will use this database to store the data you enter into it,
+# and some other dynamic data.
+Config: configdb
+# Debconf will use this database to store static template data.
+Templates: templatedb
+
+# World-readable, and accepts everything but passwords.
+Name: config
+Driver: File
+Mode: 644
+Reject-Type: password
+Filename: /var/cache/debconf/config.dat
+
+# Not world readable (the default), and accepts only passwords.
+Name: passwords
+Driver: File
+Mode: 600
+Backup: false
+Required: false
+Accept-Type: password
+Filename: /var/cache/debconf/passwords.dat
+
+# Set up the configdb database. By default, it consists of a stack of two
+# databases, one to hold passwords and one for everything else.
+Name: configdb
+Driver: Stack
+Stack: config, passwords
+
+# Set up the templatedb database, which is a single flat text file
+# by default.
+Name: templatedb
+Driver: File
+Mode: 644
+Filename: /var/cache/debconf/templates.dat
+
+# Well that was pretty straightforward, and it will be enough for most
+# people's needs, but debconf's database drivers can be used to do much
+# more interesting things. For example, suppose you want to use config 
+# data from another host, which is mounted over nfs or perhaps the database
+# is accessed via LDAP. You don't want to write to the remote debconf database,
+# just read from it, so you still need a local database for local changes.
+#
+# A remote NFS mounted database, read-only. It is optional; if debconf
+# fails to use it it will not abort.
+#Name: remotedb
+#Driver: DirTree
+#Directory: /mnt/otherhost/var/cache/debconf/config
+#Readonly: true
+#Required: false
+#
+# A remote LDAP database. It is also read-only. The password is really
+# only necessary if the database is not accessible anonymously.
+# Option KeyByKey instructs the backend to retrieve keys from the LDAP
+# server individually (when they are requested), instead of loading all
+# keys at startup. The default is 0, and should only be enabled if you
+# want to track accesses to individual keys on the LDAP server side.
+#Name: remotedb
+#Driver: LDAP
+#Server: remotehost
+#BaseDN: cn=debconf,dc=domain,dc=com
+#BindDN: uid=admin,dc=domain,dc=com
+#BindPasswd: secret
+#KeyByKey: 0
+#
+# A stack consisting of two databases. Values will be read from
+# the first database in the stack to contain a value. In this example,
+# writes always go to the first database.
+#Name: fulldb
+#Driver: Stack
+#Stack: configdb, remotedb
+#
+# In this example, we'd use Config: fulldb at the top of the file
+# to make it use the combination of the databases.
+#
+# Even more complex and interesting setups are possible, see the 
+# debconf.conf(5) page for details.
diff --git a/debian_version b/debian_version
new file mode 100644 (file)
index 0000000..8cfdb77
--- /dev/null
@@ -0,0 +1 @@
+12.9
diff --git a/default/apache-htcacheclean b/default/apache-htcacheclean
new file mode 100644 (file)
index 0000000..73637fc
--- /dev/null
@@ -0,0 +1,22 @@
+# This file must only contain KEY=VALUE lines. Do not use advanced
+# shell script constructs!
+
+## run mode: cron, daemon
+## run in daemon mode or as daily cron job
+## default: daemon
+HTCACHECLEAN_MODE=daemon
+
+## cache size
+HTCACHECLEAN_SIZE=300M
+
+## interval: if in daemon mode, clean cache every x minutes
+HTCACHECLEAN_DAEMON_INTERVAL=120
+
+## path to cache
+## must be the same as in CacheRoot directive
+#HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk
+
+## additional options:
+## -n : be nice
+## -t : remove empty directories
+HTCACHECLEAN_OPTIONS="-n"
diff --git a/default/chrony b/default/chrony
new file mode 100644 (file)
index 0000000..028f63d
--- /dev/null
@@ -0,0 +1,6 @@
+# This is a configuration file for /etc/init.d/chrony and
+# /lib/systemd/system/chrony.service; it allows you to pass various options to
+# the chrony daemon without editing the init script or service file.
+
+# Options to pass to chrony.
+DAEMON_OPTS="-F 1"
diff --git a/default/console-setup b/default/console-setup
new file mode 100644 (file)
index 0000000..dc3ea7f
--- /dev/null
@@ -0,0 +1,16 @@
+# CONFIGURATION FILE FOR SETUPCON
+
+# Consult the console-setup(5) manual page.
+
+ACTIVE_CONSOLES="/dev/tty[1-6]"
+
+CHARMAP="UTF-8"
+
+CODESET="Lat15"
+FONTFACE="Fixed"
+FONTSIZE="8x16"
+
+VIDEOMODE=
+
+# The following is an example how to use a braille font
+# FONT='lat9w-08.psf.gz brl-8x8.psf'
diff --git a/default/cron b/default/cron
new file mode 100644 (file)
index 0000000..f62b7be
--- /dev/null
@@ -0,0 +1,28 @@
+# Cron configuration options
+
+# Whether to read the system's default environment files (if present)
+# If set to "yes", cron will set a proper mail charset from the
+# locale information. If set to something other than 'yes', the default
+# charset 'C' (canonical name: ANSI_X3.4-1968) will be used.
+#
+# This has no effect on tasks running under cron; their environment can
+# only be changed via PAM or from within the crontab; see crontab(5).
+READ_ENV="yes"
+
+# Extra options for cron, see cron(8)
+#
+# For example, to enable LSB name support in /etc/cron.d/, use
+# EXTRA_OPTS='-l'  
+#
+# Or, to log standard messages, plus jobs with exit status != 0:
+# EXTRA_OPTS='-L 5'
+#
+# For quick reference, the currently available log levels are:
+#   0   no logging (errors are logged regardless)
+#   1   log start of jobs
+#   2   log end of jobs
+#   4   log jobs with exit status != 0
+#   8   log the process identifier of child process (in all logs)
+#
+#EXTRA_OPTS=""
+
diff --git a/default/dbus b/default/dbus
new file mode 100644 (file)
index 0000000..4bc8e1b
--- /dev/null
@@ -0,0 +1,7 @@
+# This is a configuration file for /etc/init.d/dbus; it allows you to
+# perform common modifications to the behavior of the dbus daemon
+# startup without editing the init script (and thus getting prompted
+# by dpkg on upgrades).  We all love dpkg prompts.
+
+# Parameters to pass to dbus.
+PARAMS=""
diff --git a/default/grub b/default/grub
new file mode 100644 (file)
index 0000000..3068681
--- /dev/null
@@ -0,0 +1,40 @@
+# If you change this file, run 'update-grub' afterwards to update
+# /boot/grub/grub.cfg.
+# For full documentation of the options in this file, see:
+#   info -f grub -n 'Simple configuration'
+
+GRUB_DEFAULT=0
+GRUB_TIMEOUT=5
+GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
+# GRUB_CMDLINE_LINUX_DEFAULT="quiet"
+GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
+GRUB_CMDLINE_LINUX=""
+
+# If your computer has multiple operating systems installed, then you
+# probably want to run os-prober. However, if your computer is a host
+# for guest OSes installed via LVM or raw disk devices, running
+# os-prober can cause damage to those guest OSes as it mounts
+# filesystems to look for things.
+#GRUB_DISABLE_OS_PROBER=false
+
+# Uncomment to enable BadRAM filtering, modify to suit your needs
+# This works with Linux (no patch required) and with any kernel that obtains
+# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
+#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
+
+# Uncomment to disable graphical terminal
+#GRUB_TERMINAL=console
+
+# The resolution used on graphical terminal
+# note that you can use only modes which your graphic card supports via VBE
+# you can see them in real GRUB with the command `vbeinfo'
+#GRUB_GFXMODE=640x480
+
+# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
+#GRUB_DISABLE_LINUX_UUID=true
+
+# Uncomment to disable generation of recovery mode menu entries
+#GRUB_DISABLE_RECOVERY="true"
+
+# Uncomment to get a beep at grub start
+#GRUB_INIT_TUNE="480 440 1"
diff --git a/default/grub.d/init-select.cfg b/default/grub.d/init-select.cfg
new file mode 100644 (file)
index 0000000..7fbfff8
--- /dev/null
@@ -0,0 +1,7 @@
+# Work around a bug in the obsolete init-select package which broke
+# grub-mkconfig when init-select was removed but not purged.  This file does
+# nothing and will be removed in a later release.
+#
+# See:
+#   https://bugs.debian.org/858528
+#   https://bugs.debian.org/863801
diff --git a/default/haveged b/default/haveged
new file mode 100644 (file)
index 0000000..679e989
--- /dev/null
@@ -0,0 +1,4 @@
+# Configuration file for haveged
+
+# Options to pass to haveged:
+#DAEMON_ARGS=""
diff --git a/default/hwclock b/default/hwclock
new file mode 100644 (file)
index 0000000..44b0431
--- /dev/null
@@ -0,0 +1,2 @@
+# Settings for the hwclock init script.
+# See hwclock(5) for supported settings.
diff --git a/default/intel-microcode b/default/intel-microcode
new file mode 100644 (file)
index 0000000..b958464
--- /dev/null
@@ -0,0 +1,26 @@
+# Configuration script for intel-microcode version 3
+
+#
+# initramfs helper
+#
+
+# Set this to "no" to disable automatic microcode updates on boot;
+# Set this to "auto" to use early initramfs mode automatically (default);
+# Set this to "early" to always attempt to create an early initramfs;
+#IUCODE_TOOL_INITRAMFS=auto
+
+# Set this to "yes" (default) to use "iucode_tool --scan-system" to reduce
+# the initramfs size bloat, by detecting which Intel processors are active
+# in this system, and installing only their microcodes.
+#
+# Set this to "no" to either include all microcodes, or only the microcodes
+# selected through the use of IUCODE_TOOL_EXTRA_OPTIONS below.
+#
+# WARNING: including all microcodes will increase initramfs size greatly.
+# This can cause boot issues if the initramfs is already large.
+#IUCODE_TOOL_SCANCPUS=yes
+
+# Extra options to pass to iucode_tool, useful to forbid or to
+# force the inclusion of microcode for specific processor signatures.
+# See iucode_tool(8) for details.
+#IUCODE_TOOL_EXTRA_OPTIONS=""
diff --git a/default/keyboard b/default/keyboard
new file mode 100644 (file)
index 0000000..f578fd8
--- /dev/null
@@ -0,0 +1,10 @@
+# KEYBOARD CONFIGURATION FILE
+
+# Consult the keyboard(5) manual page.
+
+XKBMODEL="pc105"
+XKBLAYOUT="de"
+XKBVARIANT=""
+XKBOPTIONS=""
+
+BACKSPACE="guess"
diff --git a/default/locale b/default/locale
new file mode 100644 (file)
index 0000000..188a09e
--- /dev/null
@@ -0,0 +1,2 @@
+#  File generated by update-locale
+LANG="de_DE.UTF-8"
diff --git a/default/named b/default/named
new file mode 100644 (file)
index 0000000..66352f0
--- /dev/null
@@ -0,0 +1,6 @@
+#
+# run resolvconf?
+RESOLVCONF=no
+
+# startup options for the server
+OPTIONS="-u bind"
diff --git a/default/networking b/default/networking
new file mode 100644 (file)
index 0000000..9655359
--- /dev/null
@@ -0,0 +1,31 @@
+# Configuration for networking init script being run during
+# the boot sequence
+
+# Set to 'no' to skip interfaces configuration on boot
+#CONFIGURE_INTERFACES=yes
+
+# Don't configure these interfaces. Shell wildcards supported/
+#EXCLUDE_INTERFACES=
+
+# Set to 'yes' to enable additional verbosity
+#VERBOSE=no
+
+# Method to wait for the network to become online,
+# for services that depend on a working network:
+# - ifup: wait for ifup to have configured an interface.
+# - route: wait for a route to a given address to appear.
+# - ping/ping6: wait for a host to respond to ping packets.
+# - none: don't wait.
+#WAIT_ONLINE_METHOD=ifup
+
+# Which interface to wait for.
+# If none given, wait for all auto interfaces, or if there are none,
+# wait for at least one hotplug interface.
+#WAIT_ONLINE_IFACE=
+
+# Which address to wait for for route, ping and ping6 methods.
+# If none is given for route, it waits for a default gateway.
+#WAIT_ONLINE_ADDRESS=
+
+# Timeout in seconds for waiting for the network to come online.
+#WAIT_ONLINE_TIMEOUT=300
diff --git a/default/nss b/default/nss
new file mode 100644 (file)
index 0000000..c43e88b
--- /dev/null
@@ -0,0 +1,37 @@
+# /etc/default/nss
+# This file can theoretically contain a bunch of customization variables
+# for Name Service Switch in the GNU C library.  For now there are only
+# four variables:
+#
+# NETID_AUTHORITATIVE
+#   If set to TRUE, the initgroups() function will accept the information
+#   from the netid.byname NIS map as authoritative.  This can speed up the
+#   function significantly if the group.byname map is large.  The content
+#   of the netid.byname map is used AS IS.  The system administrator has
+#   to make sure it is correctly generated.
+#NETID_AUTHORITATIVE=TRUE
+#
+# SERVICES_AUTHORITATIVE
+#   If set to TRUE, the getservbyname{,_r}() function will assume
+#   services.byservicename NIS map exists and is authoritative, particularly
+#   that it contains both keys with /proto and without /proto for both
+#   primary service names and service aliases.  The system administrator
+#   has to make sure it is correctly generated.
+#SERVICES_AUTHORITATIVE=TRUE
+#
+# SETENT_BATCH_READ
+#  If set to TRUE, various setXXent() functions will read the entire
+#  database at once and then hand out the requests one by one from
+#  memory with every getXXent() call.  Otherwise each getXXent() call
+#  might result into a network communication with the server to get
+#  the next entry.
+#SETENT_BATCH_READ=TRUE
+#
+# ADJUNCT_AS_SHADOW
+#  If set to TRUE, the passwd routines in the NIS NSS module will not
+#  use the passwd.adjunct.byname tables to fill in the password data
+#  in the passwd structure.  This is a security problem if the NIS
+#  server cannot be trusted to send the passwd.adjuct table only to
+#  privileged clients.  Instead the passwd.adjunct.byname table is
+#  used to synthesize the shadow.byname table if it does not exist.
+ADJUNCT_AS_SHADOW=TRUE
diff --git a/default/rsync b/default/rsync
new file mode 100644 (file)
index 0000000..424b1c0
--- /dev/null
@@ -0,0 +1,47 @@
+# defaults file for rsync daemon mode
+#
+# This file is only used for init.d based systems!
+# If this system uses systemd, you can specify options etc. for rsync
+# in daemon mode by copying /lib/systemd/system/rsync.service to
+# /etc/systemd/system/rsync.service and modifying the copy; add required
+# options to the ExecStart line.
+
+# start rsync in daemon mode from init.d script?
+#  only allowed values are "true", "false", and "inetd"
+#  Use "inetd" if you want to start the rsyncd from inetd,
+#  all this does is prevent the init.d script from printing a message
+#  about not starting rsyncd (you still need to modify inetd's config yourself).
+RSYNC_ENABLE=false
+
+# which file should be used as the configuration file for rsync.
+# This file is used instead of the default /etc/rsyncd.conf
+# Warning: This option has no effect if the daemon is accessed
+#          using a remote shell. When using a different file for
+#          rsync you might want to symlink /etc/rsyncd.conf to
+#          that file.
+# RSYNC_CONFIG_FILE=
+
+# what extra options to give rsync --daemon?
+#  that excludes the --daemon; that's always done in the init.d script
+#  Possibilities are:
+#   --address=123.45.67.89             (bind to a specific IP address)
+#   --port=8730                                (bind to specified port; default 873)
+RSYNC_OPTS=''
+
+# run rsyncd at a nice level?
+#  the rsync daemon can impact performance due to much I/O and CPU usage,
+#  so you may want to run it at a nicer priority than the default priority.
+#  Allowed values are 0 - 19 inclusive; 10 is a reasonable value.
+RSYNC_NICE=''
+
+# run rsyncd with ionice?
+#  "ionice" does for IO load what "nice" does for CPU load.
+#  As rsync is often used for backups which aren't all that time-critical,
+#  reducing the rsync IO priority will benefit the rest of the system.
+#  See the manpage for ionice for allowed options.
+#  -c3 is recommended, this will run rsync IO at "idle" priority. Uncomment
+#  the next line to activate this.
+# RSYNC_IONICE='-c3'
+
+# Don't forget to create an appropriate config file,
+# else the daemon will not start.
diff --git a/default/ssh b/default/ssh
new file mode 100644 (file)
index 0000000..3040422
--- /dev/null
@@ -0,0 +1,5 @@
+# Default settings for openssh-server. This file is sourced by /bin/sh from
+# /etc/init.d/ssh.
+
+# Options to pass to sshd
+SSHD_OPTS=
diff --git a/default/useradd b/default/useradd
new file mode 100644 (file)
index 0000000..2cb8167
--- /dev/null
@@ -0,0 +1,37 @@
+# Default values for useradd(8)
+#
+# The SHELL variable specifies the default login shell on your
+# system.
+# Similar to DSHELL in adduser. However, we use "sh" here because
+# useradd is a low level utility and should be as general
+# as possible
+SHELL=/bin/sh
+#
+# The default group for users
+# 100=users on Debian systems
+# Same as USERS_GID in adduser
+# This argument is used when the -n flag is specified.
+# The default behavior (when -n and -g are not specified) is to create a
+# primary user group with the same name as the user being added to the
+# system.
+# GROUP=100
+#
+# The default home directory. Same as DHOME for adduser
+# HOME=/home
+#
+# The number of days after a password expires until the account 
+# is permanently disabled
+# INACTIVE=-1
+#
+# The default expire date
+# EXPIRE=
+#
+# The SKEL variable specifies the directory containing "skeletal" user
+# files; in other words, files such as a sample .profile that will be
+# copied to the new user's home directory when it is created.
+# SKEL=/etc/skel
+#
+# Defines whether the mail spool should be created while
+# creating the account
+# CREATE_MAIL_SPOOL=no
+
diff --git a/default/valkey-server b/default/valkey-server
new file mode 100644 (file)
index 0000000..fa916eb
--- /dev/null
@@ -0,0 +1,7 @@
+# valkey-server configure options
+
+# ULIMIT: Call ulimit -n with this argument prior to invoking Valkey itself.
+# This may be required for high-concurrency environments. Redis itself cannot
+# alter its limits as it is not being run as root. (default: 65536)
+#
+ULIMIT=65536
diff --git a/deluser.conf b/deluser.conf
new file mode 100644 (file)
index 0000000..83dd3fc
--- /dev/null
@@ -0,0 +1,41 @@
+# /etc/deluser.conf: `deluser' configuration.
+# See deluser(8) and deluser.conf(5) for full documentation.
+
+# A commented out setting indicates that this is the default in the
+# code. If you need to change those settings, remove the comment and
+# make your intended change.
+
+# Remove home directory and mail spool when user is removed
+# Default: REMOVE_HOME = 0
+#REMOVE_HOME = 0
+
+# Remove all files on the system owned by the user to be removed
+# Default: REMOVE_ALL_FILES = 0
+#REMOVE_ALL_FILES = 0
+
+# Backup files before removing them. This options has only an effect if
+# REMOVE_HOME or REMOVE_ALL_FILES is set.
+# Default: BACKUP = 0
+#BACKUP = 0
+
+# Target directory for the backup file
+# Default: BACKUP_TO = "."
+#BACKUP_TO = "."
+
+# Select compression (from tar --auto-compress) for backups
+# Default: BACKUP_SUFFIX = .gz
+#BACKUP_SUFFIX = .gz
+
+# Space-Separated list of regular expressions. Do not delete files
+# matching any of these.
+# Default: NO_DEL_PATHS="^/bin\$ ^/boot\$ ^/dev\$ ^/etc\$ ^/initrd ^/lib ^/lost+found\$ ^/media\$ ^/mnt\$ ^/opt\$ ^/proc\$ ^/root\$ ^/run\$ ^/sbin\$ ^/srv\$ ^/sys\$ ^/tmp\$ ^/usr\$ ^/var\$ ^/vmlinu"
+#NO_DEL_PATHS="^/bin\$ ^/boot\$ ^/dev\$ ^/etc\$ ^/initrd ^/lib ^/lost+found\$ ^/media\$ ^/mnt\$ ^/opt\$ ^/proc\$ ^/root\$ ^/run\$ ^/sbin\$ ^/srv\$ ^/sys\$ ^/tmp\$ ^/usr\$ ^/var\$ ^/vmlinu"
+
+# Only delete a group if there are no users belonging to this group.
+# Default: ONLY_IF_EMPTY = 0
+#ONLY_IF_EMPTY = 0
+
+# Single regular expression which describes filesystems types which should
+# be excluded when looking for files of a user to be deleted.
+# Default: EXCLUDE_FSTYPES = "(proc|sysfs|usbfs|devpts|tmpfs|afs)"
+#EXCLUDE_FSTYPES = "(proc|sysfs|usbfs|devpts|tmpfs|afs)"
diff --git a/dhcp/debug b/dhcp/debug
new file mode 100644 (file)
index 0000000..593e7df
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# The purpose of this script is just to show the variables that are
+# available to all the scripts in this directory. All these scripts are
+# called from dhclient-script, which exports all the variables shown
+# before. If you want to debug a problem with your DHCP setup you can
+# enable this script and take a look at /tmp/dhclient-script.debug.
+
+# To enable this script set the following variable to "yes"
+RUN="no"
+
+if [ "$RUN" = "yes" ]; then
+       echo "$(date): entering ${1%/*}, dumping variables." \
+               >> /tmp/dhclient-script.debug
+
+       # loop over the 4 possible prefixes: (empty), cur_, new_, old_
+       for prefix in '' 'cur_' 'new_' 'old_'; do
+               # loop over the DHCP variables passed to dhclient-script
+               for basevar in reason interface medium alias_ip_address \
+                              ip_address host_name network_number subnet_mask \
+                              broadcast_address routers static_routes \
+                              rfc3442_classless_static_routes \
+                              domain_name domain_search domain_name_servers \
+                              netbios_name_servers netbios_scope \
+                              ntp_servers \
+                              ip6_address ip6_prefix ip6_prefixlen \
+                              dhcp6_domain_search dhcp6_name_servers ; do
+                       var="${prefix}${basevar}"
+                       eval "content=\$$var"
+
+                       # show only variables with values set
+                       if [ -n "${content}" ]; then
+                               echo "$var='${content}'" >> /tmp/dhclient-script.debug
+                       fi
+               done
+       done
+
+       echo '--------------------------' >> /tmp/dhclient-script.debug
+fi
diff --git a/dhcp/dhclient-enter-hooks.d/debug b/dhcp/dhclient-enter-hooks.d/debug
new file mode 120000 (symlink)
index 0000000..ee34fdc
--- /dev/null
@@ -0,0 +1 @@
+../debug
\ No newline at end of file
diff --git a/dhcp/dhclient-exit-hooks.d/chrony b/dhcp/dhclient-exit-hooks.d/chrony
new file mode 100644 (file)
index 0000000..f3dacd7
--- /dev/null
@@ -0,0 +1,27 @@
+CHRONY_SOURCEDIR=/run/chrony-dhcp
+SERVERFILE=$CHRONY_SOURCEDIR/$interface.sources
+
+chrony_config() {
+    rm -f "$SERVERFILE"
+    mkdir -p "$CHRONY_SOURCEDIR"
+    for server in $new_ntp_servers; do
+        echo "server $server iburst" >> "$SERVERFILE"
+    done
+    /usr/bin/chronyc reload sources > /dev/null 2>&1 || :
+}
+
+chrony_restore() {
+    if [ -f "$SERVERFILE" ]; then
+        rm -f "$SERVERFILE"
+        /usr/bin/chronyc reload sources > /dev/null 2>&1 || :
+    fi
+}
+
+case $reason in
+    BOUND|RENEW|REBIND|REBOOT)
+        chrony_config
+        ;;
+    EXPIRE|FAIL|RELEASE|STOP)
+        chrony_restore
+        ;;
+esac
diff --git a/dhcp/dhclient-exit-hooks.d/debug b/dhcp/dhclient-exit-hooks.d/debug
new file mode 120000 (symlink)
index 0000000..ee34fdc
--- /dev/null
@@ -0,0 +1 @@
+../debug
\ No newline at end of file
diff --git a/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes b/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes
new file mode 100644 (file)
index 0000000..1ef7b8a
--- /dev/null
@@ -0,0 +1,78 @@
+# set classless routes based on the format specified in RFC3442
+# e.g.:
+#   new_rfc3442_classless_static_routes='24 192 168 10 192 168 1 1 8 10 10 17 66 41'
+# specifies the routes:
+#   192.168.10.0/24 via 192.168.1.1
+#   10.0.0.0/8 via 10.10.17.66.41
+
+RUN="yes"
+
+
+if [ "$RUN" = "yes" ]; then
+       if [ -n "$new_rfc3442_classless_static_routes" ]; then
+               if [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then
+
+                       set -- $new_rfc3442_classless_static_routes
+
+                       while [ $# -gt 0 ]; do
+                               net_length=$1
+                               via_arg=''
+
+                               case $net_length in
+                                       32|31|30|29|28|27|26|25)
+                                               if [ $# -lt 9 ]; then
+                                                       return 1
+                                               fi
+                                               net_address="${2}.${3}.${4}.${5}"
+                                               gateway="${6}.${7}.${8}.${9}"
+                                               shift 9
+                                               ;;
+                                       24|23|22|21|20|19|18|17)
+                                               if [ $# -lt 8 ]; then
+                                                       return 1
+                                               fi
+                                               net_address="${2}.${3}.${4}.0"
+                                               gateway="${5}.${6}.${7}.${8}"
+                                               shift 8
+                                               ;;
+                                       16|15|14|13|12|11|10|9)
+                                               if [ $# -lt 7 ]; then
+                                                       return 1
+                                               fi
+                                               net_address="${2}.${3}.0.0"
+                                               gateway="${4}.${5}.${6}.${7}"
+                                               shift 7
+                                               ;;
+                                       8|7|6|5|4|3|2|1)
+                                               if [ $# -lt 6 ]; then
+                                                       return 1
+                                               fi
+                                               net_address="${2}.0.0.0"
+                                               gateway="${3}.${4}.${5}.${6}"
+                                               shift 6
+                                               ;;
+                                       0)      # default route
+                                               if [ $# -lt 5 ]; then
+                                                       return 1
+                                               fi
+                                               net_address="0.0.0.0"
+                                               gateway="${2}.${3}.${4}.${5}"
+                                               shift 5
+                                               ;;
+                                       *)      # error
+                                               return 1
+                                               ;;
+                               esac
+
+                               # take care of link-local routes
+                               if [ "${gateway}" != '0.0.0.0' ]; then
+                                       via_arg="via ${gateway}"
+                               fi
+
+                               # set route (ip detects host routes automatically)
+                               ip -4 route add "${net_address}/${net_length}" \
+                                       ${via_arg} dev "${interface}" >/dev/null 2>&1
+                       done
+               fi
+       fi
+fi
diff --git a/dhcp/dhclient-exit-hooks.d/timesyncd b/dhcp/dhclient-exit-hooks.d/timesyncd
new file mode 100644 (file)
index 0000000..bb98cab
--- /dev/null
@@ -0,0 +1,52 @@
+TIMESYNCD_CONF=/run/systemd/timesyncd.conf.d/01-dhclient.conf
+
+timesyncd_servers_setup_remove() {
+        if [ ! -d /run/systemd/system ]; then
+                return
+        fi
+        if [ ! -x /lib/systemd/systemd-timesyncd ]; then
+                return
+        fi
+
+        if [ -e $TIMESYNCD_CONF ]; then
+                rm -f $TIMESYNCD_CONF
+                systemctl try-restart systemd-timesyncd.service || true
+        fi
+}
+
+timesyncd_servers_setup_add() {
+        if [ ! -d /run/systemd/system ]; then
+                return
+        fi
+        if [ ! -x /lib/systemd/systemd-timesyncd ]; then
+                return
+        fi
+
+        if [ -e $TIMESYNCD_CONF ] && [ "$new_ntp_servers" = "$old_ntp_servers" ]; then
+                return
+        fi
+
+        if [ -z "$new_ntp_servers" ]; then
+                timesyncd_servers_setup_remove
+                return
+        fi
+
+        mkdir -p $(dirname $TIMESYNCD_CONF)
+        cat <<EOF > ${TIMESYNCD_CONF}.new
+# NTP server entries received from DHCP server
+[Time]
+NTP=$new_ntp_servers
+EOF
+        mv ${TIMESYNCD_CONF}.new ${TIMESYNCD_CONF}
+        systemctl try-restart systemd-timesyncd.service || true
+}
+
+
+case $reason in
+        BOUND|RENEW|REBIND|REBOOT)
+                timesyncd_servers_setup_add
+                ;;
+        EXPIRE|FAIL|RELEASE|STOP)
+                timesyncd_servers_setup_remove
+                ;;
+esac
diff --git a/dhcp/dhclient.conf b/dhcp/dhclient.conf
new file mode 100644 (file)
index 0000000..b85301b
--- /dev/null
@@ -0,0 +1,54 @@
+# Configuration file for /sbin/dhclient.
+#
+# This is a sample configuration file for dhclient. See dhclient.conf's
+#      man page for more information about the syntax of this file
+#      and a more comprehensive list of the parameters understood by
+#      dhclient.
+#
+# Normally, if the DHCP server provides reasonable information and does
+#      not leave anything out (like the domain name, for example), then
+#      few changes must be made to this file, if any.
+#
+
+option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
+
+send host-name = gethostname();
+request subnet-mask, broadcast-address, time-offset, routers,
+       domain-name, domain-name-servers, domain-search, host-name,
+       dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
+       netbios-name-servers, netbios-scope, interface-mtu,
+       rfc3442-classless-static-routes, ntp-servers;
+
+#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
+#send dhcp-lease-time 3600;
+#supersede domain-name "fugue.com home.vix.com";
+#prepend domain-name-servers 127.0.0.1;
+#require subnet-mask, domain-name-servers;
+#timeout 60;
+#retry 60;
+#reboot 10;
+#select-timeout 5;
+#initial-interval 2;
+#script "/sbin/dhclient-script";
+#media "-link0 -link1 -link2", "link0 link1";
+#reject 192.33.137.209;
+
+#alias {
+#  interface "eth0";
+#  fixed-address 192.5.5.213;
+#  option subnet-mask 255.255.255.255;
+#}
+
+#lease {
+#  interface "eth0";
+#  fixed-address 192.33.137.200;
+#  medium "link0 link1";
+#  option host-name "andare.swiftmedia.com";
+#  option subnet-mask 255.255.255.0;
+#  option broadcast-address 192.33.137.255;
+#  option routers 192.33.137.250;
+#  option domain-name-servers 127.0.0.1;
+#  renew 2 2000/1/12 00:00:01;
+#  rebind 2 2000/1/12 00:00:01;
+#  expire 2 2000/1/12 00:00:01;
+#}
diff --git a/dictionaries-common/default.aff b/dictionaries-common/default.aff
new file mode 120000 (symlink)
index 0000000..bcc63f7
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/ispell/ngerman.aff
\ No newline at end of file
diff --git a/dictionaries-common/default.hash b/dictionaries-common/default.hash
new file mode 120000 (symlink)
index 0000000..44c8aa2
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/ispell/ngerman.hash
\ No newline at end of file
diff --git a/dictionaries-common/ispell-default b/dictionaries-common/ispell-default
new file mode 120000 (symlink)
index 0000000..f4b786e
--- /dev/null
@@ -0,0 +1 @@
+/var/cache/dictionaries-common/ispell-default
\ No newline at end of file
diff --git a/dictionaries-common/words b/dictionaries-common/words
new file mode 120000 (symlink)
index 0000000..a610187
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/dict/ngerman
\ No newline at end of file
diff --git a/discover-modprobe.conf b/discover-modprobe.conf
new file mode 100644 (file)
index 0000000..713c3e6
--- /dev/null
@@ -0,0 +1,13 @@
+
+# $Progeny$
+
+# Load modules for the following device types. Specify "all"
+# to detect all device types.
+types="all"
+
+# Don't ever load the foo, bar, or baz modules.
+#skip="foo bar baz"
+
+# Lines below this point have been automatically added by
+# discover-modprobe(8) to disable the loading of modules that have
+# previously crashed the machine:
diff --git a/discover.conf.d/00discover b/discover.conf.d/00discover
new file mode 100644 (file)
index 0000000..69ec3a1
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+
+<!-- $Progeny$ -->
+
+<!DOCTYPE conffile SYSTEM "conffile.dtd">
+
+<conffile>
+  <busscan scan="default">
+    <bus name="ata"/>
+    <bus name="pci"/>
+    <bus name="pcmcia"/>
+    <bus name="scsi"/>
+    <bus name="usb"/>
+  </busscan>
+</conffile>
diff --git a/dpkg/dpkg.cfg b/dpkg/dpkg.cfg
new file mode 100644 (file)
index 0000000..ba898ee
--- /dev/null
@@ -0,0 +1,13 @@
+# dpkg configuration file
+#
+# This file can contain default options for dpkg.  All command-line
+# options are allowed.  Values can be specified by putting them after
+# the option, separated by whitespace and/or an `=' sign.
+#
+
+# Do not enable debsig-verify by default; since the distribution is not using
+# embedded signatures, debsig-verify would reject all packages.
+no-debsig
+
+# Log status changes and actions to a file.
+log /var/log/dpkg.log
diff --git a/dpkg/origins/debian b/dpkg/origins/debian
new file mode 100644 (file)
index 0000000..3b623d2
--- /dev/null
@@ -0,0 +1,3 @@
+Vendor: Debian
+Vendor-URL: https://www.debian.org/
+Bugs: debbugs://bugs.debian.org
diff --git a/dpkg/origins/default b/dpkg/origins/default
new file mode 120000 (symlink)
index 0000000..b2f7fd3
--- /dev/null
@@ -0,0 +1 @@
+debian
\ No newline at end of file
diff --git a/e2scrub.conf b/e2scrub.conf
new file mode 100644 (file)
index 0000000..661fc13
--- /dev/null
@@ -0,0 +1,25 @@
+# e2scrub configuration file
+
+# Uncomment to enable automatic periodic runs of e2scrub_all
+# (either via cron or via a systemd timer)
+# periodic_e2scrub=1
+
+# e-mail destination used by e2scrub_fail when problems are found with
+# the file system.
+# recipient=root
+
+# e-mail sender used by e2scrub_fail when problems are found with
+# the file system.
+# sender=e2scrub@host.domain.name
+
+# Snapshots will be created to run fsck; the snapshot will be of this size.
+# snap_size_mb=256
+
+# Set this to 1 to enable fstrim for everyone.
+# fstrim=0
+
+# Arguments passed into e2fsck.
+# e2fsck_opts="-vtt"
+
+# Set this to 1 to have e2scrub_all scrub all LVs, not just the mounted ones.
+# scrub_all=0
diff --git a/emacs/site-start.d/50dictionaries-common.el b/emacs/site-start.d/50dictionaries-common.el
new file mode 100644 (file)
index 0000000..fc254f7
--- /dev/null
@@ -0,0 +1,43 @@
+;; File: startup.el.in
+;; Description: Emacsen startup for dictionaries-common in Debian
+;; Authors: Rafael Laboissière <rafael@debian.org>
+;;          Agustin Martin     <agmartin@debian.org>
+;; Created on: Fri Oct 22 09:48:21 CEST 1999
+
+(let ((skip-emacs-flavors-list '(emacs19
+                                emacs20
+                                emacs21
+                                emacs22
+                                emacs-snapshot))
+      (debian-dict-entries "/var/cache/dictionaries-common/emacsen-ispell-dicts.el"))
+  (if (member debian-emacs-flavor skip-emacs-flavors-list)
+      (message "Skipping dictionaries-common setup for %s" debian-emacs-flavor)
+
+    (debian-pkg-add-load-path-item
+     (concat "/usr/share/"
+            (symbol-name debian-emacs-flavor)
+            "/site-lisp/dictionaries-common"))
+
+    (autoload 'flyspell-word "flyspell" nil t)
+    (autoload 'flyspell-mode "flyspell" nil t)
+    (autoload 'flyspell-prog-mode "flyspell" nil t)
+
+    ;; Load Debian emacsen cache file, with entries for installed dictionaries
+    ;; This might result in a call to debian-ispell, so do this only if
+    ;;  a) It exists, that is, package is not removed.
+    ;;  b) Not in installations under dpkg control, otherwise we might get some
+    ;;     bogus errors on installation because of #132355 and friends.
+    (if (file-exists-p
+        (concat "/usr/share/"
+                (symbol-name debian-emacs-flavor)
+                "/site-lisp/dictionaries-common/debian-ispell.el"))
+       (if (getenv "DPKG_RUNNING_VERSION")
+           (message "Info: Skip debian-el loading if run under dpkg control.")
+         (let ((coding-system-for-read 'raw-text)) ;; Read these as data streams
+           (load "debian-ispell" t)
+           (load debian-dict-entries t)))
+      (message "Info: Package dictionaries-common removed but not purged."))))
+
+;;; Previous code for loading ispell.el and refreshing spell-checking
+;;; pulldown menus has been removed from this file since it should no
+;;; longer be needed.
diff --git a/emacs/site-start.d/50figlet.el b/emacs/site-start.d/50figlet.el
new file mode 100644 (file)
index 0000000..5e1da10
--- /dev/null
@@ -0,0 +1,7 @@
+;;; 50figlet.el -- debian emacs setups for figlet
+
+(if (not (file-exists-p "/usr/share/emacs/site-lisp/figlet.el"))
+    (message "figlet removed but not purged, skipping setup")
+
+  (autoload 'figlet-message "figlet"
+    "Inserts large message of text in ASCII font into current buffer" t))
diff --git a/environment b/environment
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/etckeeper/commit.d/10vcs-test b/etckeeper/commit.d/10vcs-test
new file mode 100755 (executable)
index 0000000..e33d734
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+set -e
+       
+not_enabled_warning() {
+       echo "etckeeper warning: etckeeper is not yet enabled for $(pwd)" >&2
+       echo "etckeeper warning: run etckeeper init to enable it" >&2
+}
+
+if [ "$VCS" = git ] && [ ! -d .git ]; then
+       not_enabled_warning
+elif [ "$VCS" = hg ] && [ ! -d .hg ]; then
+       not_enabled_warning
+elif [ "$VCS" = bzr ] && [ ! -d .bzr ]; then
+       not_enabled_warning
+elif [ "$VCS" = darcs ] && [ ! -d _darcs ]; then
+       not_enabled_warning
+fi
diff --git a/etckeeper/commit.d/20store-metadata b/etckeeper/commit.d/20store-metadata
new file mode 120000 (symlink)
index 0000000..5698d64
--- /dev/null
@@ -0,0 +1 @@
+../pre-commit.d/30store-metadata
\ No newline at end of file
diff --git a/etckeeper/commit.d/30bzr-add b/etckeeper/commit.d/30bzr-add
new file mode 100755 (executable)
index 0000000..3e7e95d
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = bzr ] && [ -d .bzr ]; then
+       if ! bzr add -q .; then
+               echo "etckeeper warning: bzr add failed" >&2
+       fi
+fi
diff --git a/etckeeper/commit.d/30darcs-add b/etckeeper/commit.d/30darcs-add
new file mode 100755 (executable)
index 0000000..98be4bf
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = darcs ] && [ -d _darcs ]; then
+       rc=0
+       res=$( darcs add -qr . 2>&1 ) || rc=$?
+       if test $rc -ne 0; then
+               if ! test $rc -eq 2 -a "${res%No files were added}" != "$res"; then
+                       printf "%s" "$res"
+                       echo "etckeeper warning: darcs add failed" >&2
+               fi
+       fi
+       unset rc res
+fi
diff --git a/etckeeper/commit.d/30git-add b/etckeeper/commit.d/30git-add
new file mode 100755 (executable)
index 0000000..b08b583
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = git ] && [ -d .git ]; then
+       if ! git add --all; then
+               echo "etckeeper warning: git add --all" >&2
+       fi
+fi
diff --git a/etckeeper/commit.d/30hg-addremove b/etckeeper/commit.d/30hg-addremove
new file mode 100755 (executable)
index 0000000..1b999bb
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = hg ] && [ -d .hg ]; then
+       if ! hg addremove .; then
+               echo "etckeeper warning: hg addremove failed" >&2
+       fi
+fi
diff --git a/etckeeper/commit.d/50vcs-commit b/etckeeper/commit.d/50vcs-commit
new file mode 100755 (executable)
index 0000000..408b508
--- /dev/null
@@ -0,0 +1,142 @@
+#!/bin/sh
+set -e
+
+cleanup () {
+       if [ -n "$logfile" ]; then
+               rm -f "$logfile"
+       fi
+}
+if [ -n "$1" ]; then
+       trap cleanup EXIT
+       logfile="$(mktemp -t etckeeper-$VCS.XXXXXXXXXX)"
+       if [ "x$1" = "x--stdin" ]; then
+               cat > "$logfile"
+       else
+               sed '1s/^-m \{0,1\}//' >"$logfile" <<-EOF
+                       $*
+               EOF
+       fi
+else
+       logfile=""
+fi
+
+hostname=`hostname 2>/dev/null || cat /etc/hostname`
+hostname="${hostname%%.*}"
+dnsdomainname=`dnsdomainname 2>/dev/null || true`
+if [ -n "$dnsdomainname" ]; then
+       hostname="$hostname.$dnsdomainname"
+fi
+
+ORIG_USER=$USER
+USER=
+if [ -n "$SUDO_USER" ]; then
+       USER="$SUDO_USER"
+else
+       # try to check tty ownership, in case user su'd to root
+       TTY="$(tty 2>/dev/null || true)"
+       if [ -n "$TTY" ] && [ -c "$TTY" ]; then
+               USER="$(find "$TTY" -printf "%u")"
+       fi
+fi
+
+if [ "$VCS" = git ] && [ -d .git ]; then
+       # When not su'd to root, still set environment variables, 
+       # since git's own code to determine the author and committer
+       # has several edge cases where it fails and would prevent the
+       # commit.
+       if [ -z "$USER" ]; then
+               USER="$(whoami)"
+       fi
+       if [ -n "$USER" ]; then
+               # Use user.name and user.email from the gitconfig belonging
+               # to USER.
+               USER_HOME="$(getent passwd "$USER" | cut -d: -f6)"
+               if [ -n "$USER_HOME" ] && [ -e "$USER_HOME/.gitconfig" ]; then
+                       if [ -z "$GIT_AUTHOR_NAME" ]; then
+                               GIT_AUTHOR_NAME="$(git config -f "$USER_HOME/.gitconfig" user.name)" || true
+                               export GIT_AUTHOR_NAME
+                       fi
+                       if [ -z "$GIT_AUTHOR_EMAIL" ]; then
+                               GIT_AUTHOR_EMAIL="$(git config -f "$USER_HOME/.gitconfig" user.email)" || true
+                               export GIT_AUTHOR_EMAIL
+                       fi
+               fi
+               if [ -z "$GIT_AUTHOR_NAME" ] || [ -z "$GIT_AUTHOR_EMAIL" ]; then
+                       if [ -n "$USER_HOME" ] && [ -e "$USER_HOME/.config/git/config" ]; then
+                               if [ -z "$GIT_AUTHOR_NAME" ]; then
+                                       GIT_AUTHOR_NAME="$(git config -f "$USER_HOME/.config/git/config" user.name)" || true
+                                       export GIT_AUTHOR_NAME
+                               fi
+                               if [ -z "$GIT_AUTHOR_EMAIL" ]; then
+                                       GIT_AUTHOR_EMAIL="$(git config -f "$USER_HOME/.config/git/config" user.email)" || true
+                                       export GIT_AUTHOR_EMAIL
+                               fi
+                       fi
+               fi
+
+               if [ -z "$GIT_COMMITTER_EMAIL" ]; then
+                       GIT_COMMITTER_EMAIL="$(git config --global user.email)" || true
+                       export GIT_COMMITTER_EMAIL
+               fi
+               if [ -z "$GIT_AUTHOR_NAME" ]; then
+                       GIT_AUTHOR_NAME="$USER"
+                       export GIT_AUTHOR_NAME
+               fi
+               if [ -z "$GIT_AUTHOR_EMAIL" ]; then
+                       GIT_AUTHOR_EMAIL="$USER@$hostname"
+                       export GIT_AUTHOR_EMAIL
+               fi
+               if [ -z "$GIT_COMMITTER_EMAIL" ]; then
+                       GIT_COMMITTER_EMAIL=`whoami`"@$hostname"
+                       export GIT_COMMITTER_EMAIL
+               fi
+       fi
+
+       # gc ten times more frequently than the default
+       # (unless some other config is set)
+       GIT_GC_OPTIONS=
+       if ! git config gc.auto >/dev/null; then
+               GIT_GC_OPTIONS="-c gc.auto=670"
+       fi
+
+       if [ -n "$logfile" ]; then
+               git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS -F "$logfile"
+       else
+               git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS
+       fi
+elif [ "$VCS" = hg ] && [ -d .hg ]; then
+       if [ -n "$USER" ]; then
+               LOGNAME="$USER"
+               export LOGNAME
+       fi
+       if [ -z "$HGUSER" ]; then
+               HGUSER="$USER@$hostname"
+               export HGUSER
+       fi
+       if [ -n "$logfile" ]; then
+               hg commit $HG_COMMIT_OPTIONS -l "$logfile"
+       else
+               hg commit $HG_COMMIT_OPTIONS
+       fi
+elif [ "$VCS" = bzr ] && [ -d .bzr ]; then
+       if [ -z "$EMAIL" ] && [ -n "$USER" ]; then
+               EMAIL="$USER <$USER@$hostname>"
+               export EMAIL
+       else
+               bzr whoami >/dev/null 2>&1 || export EMAIL="$ORIG_USER <$ORIG_USER@$hostname>"
+       fi
+       if [ -n "$logfile" ]; then
+               bzr commit $BZR_COMMIT_OPTIONS -F "$logfile"
+       else
+               bzr commit --quiet $BZR_COMMIT_OPTIONS
+       fi
+elif [ "$VCS" = darcs ] && [ -d _darcs ]; then
+       if [ -z "$USER" ]; then
+               USER=root
+       fi
+       if [ -n "$logfile" ]; then
+               darcs record --author="$USER" $DARCS_COMMIT_OPTIONS --logfile="$logfile"
+       else
+               darcs record --author="$USER" $DARCS_COMMIT_OPTIONS
+       fi
+fi
diff --git a/etckeeper/commit.d/99push b/etckeeper/commit.d/99push
new file mode 100755 (executable)
index 0000000..3df1350
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+if [ -n "$PUSH_REMOTE" ]; then
+       if [ "$VCS" = git ] && [ -d .git ]; then
+               for REMOTE in $PUSH_REMOTE; do
+                       git push "$REMOTE" || true
+               done
+       elif [ "$VCS" = hg ] && [ -d .hg ]; then
+               for REMOTE in $PUSH_REMOTE; do
+                       hg push "$REMOTE" || true
+               done
+       else
+               echo "PUSH_REMOTE not yet supported for $VCS" >&2
+       fi
+fi
diff --git a/etckeeper/commit.d/README b/etckeeper/commit.d/README
new file mode 100644 (file)
index 0000000..25d0d45
--- /dev/null
@@ -0,0 +1,3 @@
+Files in this directory are run when there might be changes to commit.
+(Before and after packages are installed, upgraded, etc.)
+They should commit changes and new files in /etc to repository.
diff --git a/etckeeper/daily b/etckeeper/daily
new file mode 100755 (executable)
index 0000000..f98c6ad
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Script that can be run daily to autocommit /etc changes.
+set -e
+if [ -x /usr/bin/etckeeper ] && [ -e /etc/etckeeper/etckeeper.conf ]; then
+       # avoid autocommit if an install run is in progress
+       lockfile=/var/cache/etckeeper/packagelist.pre-install
+       if [ -e "$lockfile" ] && [ -n "$(find "$lockfile" -mtime +1)" ]; then
+               rm -f "$lockfile" # stale
+       fi
+       if [ ! -e "$lockfile" ]; then
+               AVOID_SPECIAL_FILE_WARNING=1
+               export AVOID_SPECIAL_FILE_WARNING
+               if etckeeper unclean; then
+                       etckeeper commit "daily autocommit" >/dev/null
+               fi
+       fi
+fi
diff --git a/etckeeper/etckeeper.conf b/etckeeper/etckeeper.conf
new file mode 100644 (file)
index 0000000..06ce250
--- /dev/null
@@ -0,0 +1,45 @@
+# The VCS to use.
+#VCS="hg"
+VCS="git"
+#VCS="bzr"
+#VCS="darcs"
+
+# Options passed to git commit when run by etckeeper.
+GIT_COMMIT_OPTIONS=""
+
+# Options passed to hg commit when run by etckeeper.
+HG_COMMIT_OPTIONS=""
+
+# Options passed to bzr commit when run by etckeeper.
+BZR_COMMIT_OPTIONS=""
+
+# Options passed to darcs record when run by etckeeper.
+DARCS_COMMIT_OPTIONS="-a"
+
+# Etckeeper includes both a cron job and a systemd timer, which each
+# can commit exiting changes to /etc automatically once per day.
+# To enable the systemd timer, run: systemctl enable etckeeper.timer
+# The cron job is enabled by default; to disable it, uncomment this next line.
+#AVOID_DAILY_AUTOCOMMITS=1
+
+# Uncomment the following to avoid special file warning
+# (the option is enabled automatically for daily autocommits regardless).
+#AVOID_SPECIAL_FILE_WARNING=1
+
+# Uncomment to avoid etckeeper committing existing changes to 
+# /etc before installation. It will cancel the installation,
+# so you can commit the changes by hand.
+#AVOID_COMMIT_BEFORE_INSTALL=1
+
+# The high-level package manager that's being used.
+# (apt, pacman, pacman-g2, yum, dnf, zypper, apk, xbps, emerge, cave, etc)
+HIGHLEVEL_PACKAGE_MANAGER=apt
+
+# The low-level package manager that's being used.
+# (dpkg, rpm, pacman, pacmatic, pacman-g2, apk, xbps, cave, qlist, etc)
+LOWLEVEL_PACKAGE_MANAGER=dpkg
+
+# To push each commit to a remote, put the name of the remote here.
+# (eg, "origin" for git). Space-separated lists of multiple remotes
+# also work (eg, "origin gitlab github" for git).
+PUSH_REMOTE=""
diff --git a/etckeeper/init.d/10restore-metadata b/etckeeper/init.d/10restore-metadata
new file mode 100755 (executable)
index 0000000..b0c9049
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -e
+
+# Note that metastore doesn't check that the .metastore file only changes
+# perms of files in the current directory. It's ok to trust the .metastore
+# file won't do anything shady, because, as documented, etckeeper-init
+# should only be run on repositories you trust.
+if [ -e .metadata ]; then
+       if command -v metastore >/dev/null; then
+               metastore --apply --mtime
+       else
+               echo "etckeeper warning: legacy .metastore file is present but metastore is not installed" >&2
+       fi
+fi
diff --git a/etckeeper/init.d/20restore-etckeeper b/etckeeper/init.d/20restore-etckeeper
new file mode 100755 (executable)
index 0000000..0485e63
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+# Used by .etckeeper to run a command if the file it acts on
+# (the last parameter) exists.
+maybe () {
+       command="$1"
+       shift 1
+
+       if eval [ -e "\"\$$#\"" ]; then
+               "$command" "$@"
+       fi
+}
+
+# Yes, this runs code from the repository. As documented, etckeeper-init
+# should only be run on repositories you trust.
+if [ -e .etckeeper ]; then
+       . ./.etckeeper
+else
+       touch .etckeeper
+       chmod 600 .etckeeper
+fi
diff --git a/etckeeper/init.d/40vcs-init b/etckeeper/init.d/40vcs-init
new file mode 100755 (executable)
index 0000000..27eba4e
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+description="$(hostname 2>/dev/null || cat /etc/hostname) /etc repository"
+if [ "$VCS" = git ] && [ ! -e .git ]; then
+       git init
+       echo "$description" > .git/description
+elif [ "$VCS" = hg ] && [ ! -e .hg ]; then
+       hg init
+       echo  "[web]" > .hg/hgrc
+       echo  "description = $description" >> .hg/hgrc
+elif [ "$VCS" = bzr ] && [ ! -e .bzr ]; then
+       bzr init
+       bzr nick "$description"
+elif [ "$VCS" = darcs ] && [ ! -e _darcs ]; then
+       darcs initialize
+       echo "$description" > _darcs/prefs/motd
+fi
diff --git a/etckeeper/init.d/50vcs-ignore b/etckeeper/init.d/50vcs-ignore
new file mode 100755 (executable)
index 0000000..33d79d3
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -e
+
+etckeeper update-ignore -a || true
diff --git a/etckeeper/init.d/50vcs-perm b/etckeeper/init.d/50vcs-perm
new file mode 100755 (executable)
index 0000000..4dd080b
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = git ]; then
+       chmod 700 .git
+elif [ "$VCS" = hg ]; then
+       chmod 700 .hg
+elif [ "$VCS" = bzr ]; then
+       chmod 700 .bzr
+elif [ "$VCS" = darcs ]; then
+       chmod 700 _darcs
+fi
diff --git a/etckeeper/init.d/50vcs-pre-commit-hook b/etckeeper/init.d/50vcs-pre-commit-hook
new file mode 100755 (executable)
index 0000000..166540d
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/sh
+set -e
+
+case "$VCS" in
+       git)
+               if [ -x .git/hooks/pre-commit ]; then
+                       if ! grep -q "etckeeper pre-commit" .git/hooks/pre-commit; then
+                               echo "etckeeper warning: .git/hooks/pre-commit needs to be manually modified to run: etckeeper pre-commit -d `pwd`" >&2
+                       fi
+               else
+                       cat >.git/hooks/pre-commit <<EOF
+#!/bin/sh
+# pre-commit hook for etckeeper, to store metadata and do sanity checks
+set -e
+
+################################################################################
+# Do not run etckeeper inside linked worktrees. An additional worktree can be
+# very useful for resolving *.rpmsave/*.rpmnew files where you are able to merge
+# and check out older versions without changing the whole content of /etc.
+# However while doing such work, avoid modifying .etckeeper since only the /etc
+# directory should track permissions.
+#
+#
+# $ cd /etc
+# $ git worktree list
+# /etc                2984704 [main]
+# /root/etc.worktree  aeae148 [main.worktree]
+# $ git rev-parse --git-dir
+# .git
+# $ cd /root/etc.worktree
+# $ git rev-parse --git-dir
+# /etc/.git/worktrees/etc.worktree
+# $
+#
+################################################################################
+
+# Using 'rev-parse' + 'grep' rather than for instance parsing output from
+# 'worktree list' since the worktree command is not present in older git version
+# and parsing it would be slightly more complex.
+if git rev-parse --git-dir | grep -q /.git/worktrees
+then
+       # Inside worktree, do nothing.
+       exit
+fi
+
+etckeeper pre-commit -d `pwd`
+EOF
+               chmod +x .git/hooks/pre-commit
+               fi
+       ;;
+       hg)
+               if [ -e .hg/hgrc ] && grep "^\[hooks\]" .hg/hgrc; then
+                       if ! grep "^pre-commit" .hg/hgrc | grep -q "etckeeper pre-commit"; then
+                               echo "etckeeper warning: [hooks] section in .hg/hgrc needs to be manually modified to contain: pre-commit = etckeeper pre-commit -d `pwd`" >&2
+                       fi
+               else
+                       touch .hg/hgrc
+                       cat >>.hg/hgrc <<EOF
+[hooks]
+# pre-commit hook for etckeeper, to store metadata and do sanity checks
+pre-commit = etckeeper pre-commit -d `pwd`
+EOF
+               fi
+       ;;
+       darcs)
+               if [ -e _darcs/prefs/defaults ]; then
+                       if ! ( grep -q "record prehook etckeeper pre-commit" _darcs/prefs/defaults &&
+                               grep -q "whatsnew prehook etckeeper pre-commit" _darcs/prefs/defaults ); then
+                               echo "etckeeper warning: _darcs/prefs/defaults needs to be manually modified to run: etckeeper pre-commit -d `pwd`" >&2
+                       fi
+               else
+                       cat >_darcs/prefs/defaults <<EOF
+record prehook etckeeper pre-commit -d `pwd`
+record run-prehook
+whatsnew prehook etckeeper pre-commit -d `pwd`
+whatsnew run-prehook
+EOF
+               fi
+       ;;
+esac
diff --git a/etckeeper/init.d/60darcs-deleted-symlinks b/etckeeper/init.d/60darcs-deleted-symlinks
new file mode 100755 (executable)
index 0000000..9c34e95
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+set -e
+
+filter_ignore() {
+       if [ "$VCS" = darcs ]; then
+               ignorefile=.darcsignore
+       fi
+
+       if [ "$VCS" = darcs ] && [ -e "$ignorefile" ]; then
+               # Spaces embedded into patterns would break it.
+               # But really, why would anyone want to use ' ' instead of '\s' ?
+               #patterns=$( grep -v '^[[:space:]]*\(#\|$\)' "$ignorefile" | xargs -n 1 printf " -e %s" )
+               #grep -Ev $patterns
+               #unset patterns
+               # Alternative using a temp file
+               patternsfile="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
+               grep -v '^[[:space:]]*\(#\|$\)' "$ignorefile" > "$patternsfile" || true
+               grep -Evf "$patternsfile"
+               rm -f "$patternsfile"
+               unset patternsfile
+       else
+               cat -
+       fi
+}
+
+
+if [ "$VCS" = darcs ];then
+       NOVCS='. -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg -prune -o -path ./_darcs -prune -o'
+
+       # We assume that if .etckeeper is empty this is the first run
+       if [ -s .etckeeper ]; then
+               linksindex="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
+               grep '^ln -s' .etckeeper | while IFS="'" read n n n link n; do
+                       printf "%s\n" "$link" >> "$linksindex"
+               done
+
+               # Warn about symbolic links that shouldn't exist
+               if links=$( find $NOVCS -type l -print | filter_ignore | grep -vFf "$linksindex" ); then
+                       printf "%s\n%s\n" \
+                               "The following symbolic links should not exist:" \
+                               "$links" >&2
+               fi
+
+               rm -f "$linksindex"
+               unset links linksindex
+       fi
+
+fi
diff --git a/etckeeper/init.d/70vcs-add b/etckeeper/init.d/70vcs-add
new file mode 100755 (executable)
index 0000000..9a9ec45
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = git ]; then
+       if ! git add .; then
+               echo "etckeeper warning: git add failed" >&2
+       fi
+elif [ "$VCS" = hg ]; then
+       if ! hg add .; then
+               echo "etckeeper warning: hg add failed" >&2
+       fi
+elif [ "$VCS" = bzr ]; then
+       if ! bzr add .; then
+               echo "etckeeper warning: bzr add failed" >&2
+       fi
+elif [ "$VCS" = darcs ]; then
+       # Don't warn if all the files were already added.
+       rc=0
+       res=$( darcs add -qr . 2>&1 ) || rc=$?
+       if test $rc -ne 0; then
+               if ! test $rc -eq 2 -a "${res%No files were added}" != "$res"; then
+                       printf "%s" "$res"
+                       echo "etckeeper warning: darcs add failed" >&2
+               fi
+       fi
+       unset rc res
+fi
diff --git a/etckeeper/init.d/README b/etckeeper/init.d/README
new file mode 100644 (file)
index 0000000..90aec67
--- /dev/null
@@ -0,0 +1,13 @@
+Executable files in this directory are run to initialise the working directory
+for use by etckeeper. If the working directory is not already in version
+control, that includes setting up the version control, but not actually
+committing anything. If the working directory is in version control,
+it includes applying stored metadata to the checked out files in the
+working directory.
+
+Please be careful to *never* overwrite existing files/directories
+in the working directory (or use absolute care when doing so). If a file
+you need to write already exists, check if its contents are sane, and 
+if not, emit a warning on stderr.
+
+If initialisation fails, exit nonzero and no later files will be run.
diff --git a/etckeeper/list-installed.d/50list-installed b/etckeeper/list-installed.d/50list-installed
new file mode 100755 (executable)
index 0000000..bbec194
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+if [ "$1" = fmt ]; then
+       # If the list format changes, change the fmt
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = dpkg ]; then
+               echo 2
+       else
+               echo ""
+       fi
+else
+       # Keep the sort order the same at all times.
+       LC_COLLATE=C
+       export LC_COLLATE
+       unset LC_ALL
+
+       # Output to stdout a *sorted* list of all currently installed 
+       # (or removed but still with config-files) packages, in the
+       # format "package version\n" (or something similar).
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = dpkg ]; then
+               dpkg-query -W -f '${Status}\t${Package} ${Version} ${Architecture}\n' | \
+                       grep -E '(ok installed|ok config-files)' | cut -f2,3
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = rpm ]; then
+               rpm -qa --qf "%|epoch?{%{epoch}}:{0}|:%{name}-%{version}-%{release}.%{arch}\n" | sort
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = pacman ]; then
+               pacman -Q
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = pacmatic ]; then
+               pacmatic -Q
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = pkgng ]; then
+               pkg info -E "*"
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = apk ]; then
+               apk info -v | sort
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = xbps ]; then
+               xbps-query -l | awk '{print $2}' | sed -r 's/-([^-]+)$/ \1/g;'
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = qlist ]; then
+               qlist -ICv
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = cave ]; then
+               cave print-packages -r installed
+       fi
+fi
diff --git a/etckeeper/post-install.d/50vcs-commit b/etckeeper/post-install.d/50vcs-commit
new file mode 100755 (executable)
index 0000000..eba0c39
--- /dev/null
@@ -0,0 +1,94 @@
+#!/bin/sh
+set -e
+
+pl="/var/cache/etckeeper/packagelist"
+
+# Parent process is etckeeper
+# (Only procps ps is currently supported, others will fail,
+# so this may end up empty.)
+ETCKEEPER_PID=$( ps --no-headers -o ppid "${PPID}" 2>/dev/null | sed 's/^ *//' )
+
+# Find the parent of etckeeper and get the command line of the process
+if ! [ -z "${ETCKEEPER_PID}" ]; then
+       ETCKEEPER_PPID=$( ps --no-headers -o ppid "${ETCKEEPER_PID}" | sed 's/^ *//' )
+       ETCKEEPER_PARENT_COMMAND_LINE=$( ps --no-headers -o args "${ETCKEEPER_PPID}" )
+fi
+
+get_changes () {
+       if [ "$VCS" = git ]; then
+               git diff --stat | grep '|' | cut -d'|' -f1 | cut -b2-
+               git ls-files --exclude-standard --others
+       fi
+       if [ "$VCS" = hg ]; then
+               hg status --no-status
+       fi
+       if [ "$VCS" = bzr ]; then
+               bzr status -S | cut -b5-
+       fi
+       if [ "$VCS" = darcs ]; then
+               # ignore ' file -> file' lines for moved files
+               # trim ' -M +N rP' from change summary
+               darcs whatsnew --summary | grep -v '^ .* -> ' | cut -d' ' -f2- | sed 's/ [-+r][0-9]\+//g;s/^\.\///'
+               # lines beginning with 'a' show unversioned files
+               darcs whatsnew --look-for-adds --boring --summary | grep '^a' | cut -d' ' -f2- | sed 's/^\.\///'
+       fi
+}
+
+get_changed_packages () {
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = dpkg ]; then
+               get_changes | sed 's/^/\/etc\//;s/\s*$//' | xargs -d '\n' dpkg 2>/dev/null -S | cut -d':' -f1 | sed 's/, /\n/g'
+       fi
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = rpm ]; then
+               # if output contains file path, file was not found
+               get_changes | sed 's/^/\/etc\//;s/\s*$//' | xargs -d '\n' rpm --qf '%{NAME}\n' -qf | grep -v "/etc/"
+       fi
+       # is it even possible to use pacmatic without pacman?
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = pacman -o "$LOWLEVEL_PACKAGE_MANAGER" = pacmatic ]; then
+               get_changes | sed 's/^/\/etc\//;s/\s*$//' | xargs -d '\n' pacman 2>/dev/null -Qo | rev | cut -d' ' -f1-2 | rev | cut -d' ' -f1
+       fi
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = pkgng ]; then
+               get_changes | sed 's/^/\/etc\//;s/\s*$//' | xargs -d '\n' pkg which --quiet | rev | cut -d'-' -f2- | rev
+       fi
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = xbps ]; then
+               get_changes | sed 's/^/\/etc\//;s/\s*$//' | xargs -d '\n' xbps-query -o | cut -d':' -f1
+       fi
+}
+
+if etckeeper unclean; then
+       if [ -z "${ETCKEEPER_PARENT_COMMAND_LINE}" ]; then
+               message="committing changes in /etc after $HIGHLEVEL_PACKAGE_MANAGER run"
+       else
+               message="committing changes in /etc made by \"$ETCKEEPER_PARENT_COMMAND_LINE\""
+       fi
+
+       set +e
+       if [ -e $pl.pre-install ] && [ "$(cat $pl.fmt 2>/dev/null || true)" = "$(etckeeper list-installed fmt)" ]; then
+               (
+                       echo "$message"
+                       echo
+                       get_changed_packages | sort | uniq > $pl.found-pkgs
+                       if [ -s $pl.found-pkgs ]; then
+                               sed -i 's/^/^[-+]/;s/$/ /' $pl.found-pkgs
+                               etckeeper list-installed | diff -U0 $pl.pre-install - | tail -n+4 | grep -E '^[-+]' | grep -f $pl.found-pkgs > $pl.found-packages
+                               if [ -s $pl.found-packages ]; then
+                                       echo "Packages with configuration changes:"
+                                       cat $pl.found-packages || true
+                                       echo
+                               fi
+                       fi
+                       echo "Package changes:"
+                       etckeeper list-installed | diff -U0 $pl.pre-install - | tail -n+4 | grep -E '^[-+]' || true
+               ) | etckeeper commit --stdin
+       else
+               etckeeper commit "$(printf "$message")"
+       fi
+       status=$?
+       set -e
+
+       if [ "$status" != 0 ]; then
+               echo "warning: etckeeper failed to commit changes in /etc using $VCS" >&2
+       fi
+fi
+
+rm -f $pl.pre-install $pl.fmt
+rm -f $pl.found-pkgs $pl.found-packages
diff --git a/etckeeper/post-install.d/README b/etckeeper/post-install.d/README
new file mode 100644 (file)
index 0000000..62f4f9c
--- /dev/null
@@ -0,0 +1,2 @@
+Files in this directory are run after packages are installed, upgraded, etc.
+They should commit changes and new files in /etc to repository.
diff --git a/etckeeper/pre-commit.d/20warn-problem-files b/etckeeper/pre-commit.d/20warn-problem-files
new file mode 100755 (executable)
index 0000000..43320e4
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/sh
+set -e
+
+exclude_internal () {
+       grep -E -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
+}
+
+if [ "$VCS" = bzr ] || [ "$VCS" = darcs ]; then
+       special=$(find . ! -type d ! -type f ! -type l | exclude_internal) || true
+       hardlinks=$(find . -type f ! -links 1 | exclude_internal ) || true
+elif [ "$VCS" = hg ]; then
+       special=$(find . ! -type d ! -type f ! -type l | exclude_internal) || true
+       hardlinks=$(find . -type f ! -links 1 -exec hg status {} \; | exclude_internal ) || true
+elif [ "$VCS" = git ]; then
+       special=$(find . ! -type d ! -type f ! -type l -exec git ls-files --exclude-standard --cached --others {} + | exclude_internal) || true
+       hardlinks=$(find . -type f ! -links 1 -exec git ls-files --exclude-standard --cached --others {} + | exclude_internal) || true
+else
+       special=""
+fi
+       
+if [ -n "$special" ] && [ -z "$AVOID_SPECIAL_FILE_WARNING" ]; then
+       echo "etckeeper warning: special files could cause problems with $VCS:" >&2
+       echo "$special" >&2
+fi
+if [ -n "$hardlinks" ] && [ -z "$AVOID_SPECIAL_FILE_WARNING" ]; then
+       echo "etckeeper warning: hardlinked files could cause problems with $VCS:" >&2
+       echo "$hardlinks" >&2
+fi
+
+true
diff --git a/etckeeper/pre-commit.d/30store-metadata b/etckeeper/pre-commit.d/30store-metadata
new file mode 100755 (executable)
index 0000000..b3722ab
--- /dev/null
@@ -0,0 +1,171 @@
+#!/bin/sh
+set -e
+
+# Keep the sort order the same at all times.
+LC_COLLATE=C
+export LC_COLLATE
+unset LC_ALL
+
+filter_ignore() {
+       case "$VCS" in
+               darcs) ignorefile=.darcsignore ;;
+               git)   ignorefile=.gitignore ;;
+       esac
+
+       if [ -n "$ignorefile" ] && [ -e "$ignorefile" ]; then
+               listfile="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
+               case "$VCS" in
+                       darcs)
+                               LC_CTYPE=C grep -v '^[[:space:]]*\(#\|$\)' "$ignorefile" > "$listfile" || true
+                               LC_CTYPE=C grep -Evf "$listfile"
+                               ;;
+                       git)
+                               (git ls-files -oi --exclude-standard; git ls-files -oi --exclude-standard --directory) | sort | uniq > "$listfile" || true
+                               if [ -s "$listfile" ]; then
+                                       sed 's/^\.\///' | LC_CTYPE=C grep -xFvf "$listfile"
+                               else
+                                       cat -
+                               fi
+                               ;;
+               esac
+               rm -f "$listfile"
+               unset listfile
+       else
+               cat -
+       fi
+}
+
+shellquote() {
+       # Single quotes text, escaping existing single quotes.
+       sed -e "s/'/'\"'\"'/g" -e "s/^/'/" -e "s/$/'/"
+}
+
+generate_metadata() {
+       # This function generates the script commands to fix any file
+       # ownerships that aren't owner=root, group=root, as well as to 
+       # store the permissions of files.
+       # The script is produced on stdout.  Errors go to stderr.
+       # 
+       # The script can use a 'maybe' function, which only runs a command
+       # if the file in its last argument exists.
+
+       # We want files in the directory containing VCS data
+       # but we want find to ignore the VCS files themselves.
+       # 
+       # (Note that when using this, the find expression must end with 
+       # -print or -exec, else the excluded directories will actually be
+       # printed!)
+       NOVCS='. -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg -prune -o -path ./_darcs -prune -o'
+
+       if [ "$VCS" = git ] || [ "$VCS" = hg ]; then
+               # These version control systems do not track directories,
+               # so empty directories must be stored specially.
+               find $NOVCS -type d -empty -print |
+                       sort | shellquote | sed -e "s/^/mkdir -p /"
+       fi
+
+       if [ "$VCS" = darcs ]; then
+               # This version control system does not track symlinks,
+               # so they must be stored specially.
+               find $NOVCS -type l -print | sort | filter_ignore | while read link; do
+                       dest=$( readlink "$link" )
+                       printf "ln -sf '%s' '%s'\n" "$(echo "$dest" | shellquote)" "$(echo "$link" | shellquote)"
+               done
+       fi
+       # Store things that don't have the default user or group.
+       # Store all file modes, in case the user has an unusual umask.
+       find $NOVCS \( -type f -or -type d \) -print | filter_ignore | sort | maybe_chmod_chown
+
+       # We don't handle xattrs.
+       # Maybe check for getfattr/setfattr and use them if they're available?
+}
+
+maybe_chmod_chown() {
+       if command -v perl >/dev/null; then
+               perl -ne '
+                       BEGIN { $q=chr(39) }
+                       sub uidname {
+                               my $want=shift;
+                               if (exists $uidcache{$want}) {
+                                       return $uidcache{$want};
+                               }
+                               my $name=scalar getpwuid($want);
+                               return $uidcache{$want}=defined $name ? $name : $want;
+                       }
+                       sub gidname {
+                               my $want=shift;
+                               if (exists $gidcache{$want}) {
+                                       return $gidcache{$want};
+                               }
+                               my $name=scalar getgrgid($want);
+                               return $gidcache{$want}=defined $name ? $name : $want;
+                       }
+                       chomp;
+                       my @stat=stat($_);
+                       my $mode = $stat[2];
+                       my $uid = $stat[4];
+                       my $gid = $stat[5];
+                       s/$q/$q"$q"$q/g; # escape single quotes
+                       s/^/$q/;
+                       s/$/$q/;
+                       if ($uid != $>) {
+                               printf "maybe chown $q%s$q %s\n", uidname($uid), $_;
+                       }
+                       if ($gid != $)) {
+                               printf "maybe chgrp $q%s$q %s\n", gidname($gid), $_;
+                       }
+                       printf "maybe chmod %04o %s\n", $mode & 07777, $_;
+               '
+               return $?
+       else
+               # fallback if perl isn't present
+               euid=$(id -u)
+               egid=$(id -g)
+               q="'"
+               while read x; do
+                       stat=$(stat -c "%f:%u:%g:%a:%U:%G" "$x")
+                       IFS=":" read mode uid gid perm uname gname <<EOF
+$stat
+EOF
+                       x=$q$(echo $x | sed "s/$q/$q\"$q\"$q/")$q
+                       if [ $uid -ne $euid ]; then
+                               echo maybe chown "'$uname'" $x
+                       fi
+                       if [ $gid -ne $egid ]; then
+                               echo maybe chgrp "'$gname'" $x
+                       fi
+                       echo maybe chmod 0$perm $x
+               done
+       fi
+}
+
+if [ "$VCS" = git ] || [ "$VCS" = hg ] || [ "$VCS" = bzr ] || [ "$VCS" = darcs ]; then
+       if [ -f .metadata ]; then
+               # remove obsolete .metadata file
+               # git allows fully deleting it at this point, other VCS
+               # may not (the repo is locked for hg).
+               if [ "$VCS" = git ]; then
+                       $VCS rm .metadata
+               else
+                       rm -f .metadata
+               fi
+       fi
+
+       echo "# Generated by etckeeper.  Do not edit." > .etckeeper
+       echo >> .etckeeper
+
+       # Make sure the file is not readable by others, since it can leak
+       # information about contents of non-readable directories in /etc.
+       chmod 700 .etckeeper
+
+       generate_metadata >> .etckeeper
+
+       # stage the file as part of the current commit
+       if [ "$VCS" = git ]; then
+               # this will do nothing if the metadata file is unchanged.
+               git add .etckeeper
+       fi
+       # hg, bzr and darcs add not done, they will automatically
+       # include the file in the current commit
+fi
diff --git a/etckeeper/pre-commit.d/README b/etckeeper/pre-commit.d/README
new file mode 100644 (file)
index 0000000..051d094
--- /dev/null
@@ -0,0 +1,2 @@
+This is run by a git pre-commit hook before committing changes to the
+repository. This can be used for storing metadata, and for sanity checks.
diff --git a/etckeeper/pre-install.d/10packagelist b/etckeeper/pre-install.d/10packagelist
new file mode 100755 (executable)
index 0000000..fbd4ac3
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+# This list will be later used when committing.
+mkdir -p /var/cache/etckeeper/
+etckeeper list-installed > /var/cache/etckeeper/packagelist.pre-install
+etckeeper list-installed fmt > /var/cache/etckeeper/packagelist.fmt
diff --git a/etckeeper/pre-install.d/50uncommitted-changes b/etckeeper/pre-install.d/50uncommitted-changes
new file mode 100755 (executable)
index 0000000..969d341
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+
+if etckeeper unclean; then
+       if [ "$AVOID_COMMIT_BEFORE_INSTALL" = 1 ]; then
+               echo "" >&2
+               echo "** etckeeper detected uncommitted changes in /etc prior to $HIGHLEVEL_PACKAGE_MANAGER run" >&2 
+               echo "** Aborting $HIGHLEVEL_PACKAGE_MANAGER run. Manually commit and restart." >&2
+               echo "" >&2
+               exit 1
+       fi
+       if ! etckeeper commit "saving uncommitted changes in /etc prior to $HIGHLEVEL_PACKAGE_MANAGER run"; then
+               echo "warning: etckeeper failed to commit changes in /etc using $VCS" >&2
+       fi
+fi
diff --git a/etckeeper/pre-install.d/README b/etckeeper/pre-install.d/README
new file mode 100644 (file)
index 0000000..a3b5a57
--- /dev/null
@@ -0,0 +1,3 @@
+Files in this directory are run before packages are installed, upgraded,
+etc. This is mostly used for sanity checks, ie, does /etc have any
+uncommitted changes?
diff --git a/etckeeper/unclean.d/50test b/etckeeper/unclean.d/50test
new file mode 100755 (executable)
index 0000000..e52003f
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = git ]; then
+       [ -d .git ] && [ -n "`git status --porcelain`" ]
+elif [ "$VCS" = hg ]; then
+       [ -d .hg ] && ! hg status 2>&1 | wc -l | grep -q "^0$"
+elif [ "$VCS" = bzr ]; then
+       [ -d .bzr ] && ! bzr version-info --custom --template="{clean}\n" | grep -q "^1$"
+elif [ "$VCS" = darcs ]; then
+       [ -d _darcs ] && darcs whatsnew -l >/dev/null
+fi
diff --git a/etckeeper/unclean.d/README b/etckeeper/unclean.d/README
new file mode 100644 (file)
index 0000000..74bfbdd
--- /dev/null
@@ -0,0 +1,2 @@
+Files in this directory are used to test if the working copy has
+uncommitted changes.
diff --git a/etckeeper/uninit.d/01prompt b/etckeeper/uninit.d/01prompt
new file mode 100755 (executable)
index 0000000..8b43937
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+set -e
+
+if [ "$1" != "-f" ]; then
+       echo "** Warning: This will DESTROY all recorded history for $ETCKEEPER_DIR,"
+       echo "** including the $VCS repository."
+       echo ""
+       printf "Are you sure you want to do this? [yN] "
+       read answer
+       case "$answer" in 
+               [Yy]*)
+                       echo "Proceeding.."
+                       exit 0
+               ;;
+               *)
+                       echo "Aborting etckeeper uninit."
+                       exit 1
+               ;;
+       esac
+fi
diff --git a/etckeeper/uninit.d/50remove-metadata b/etckeeper/uninit.d/50remove-metadata
new file mode 100755 (executable)
index 0000000..0be8d36
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -e
+
+# Files generated by etckeeper to store metadata the VCS cannot preserve.
+rm -f .etckeeper
+rm -f .metadata # only generated by old versions
diff --git a/etckeeper/uninit.d/50vcs-uninit b/etckeeper/uninit.d/50vcs-uninit
new file mode 100755 (executable)
index 0000000..1007069
--- /dev/null
@@ -0,0 +1,54 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = git ]; then
+       rm -rf .git
+       file=.gitignore
+elif [ "$VCS" = hg ]; then
+       rm -rf .hg
+       file=.hgignore
+elif [ "$VCS" = bzr ]; then
+       rm -rf .bzr
+       file=.bzrignore
+elif [ "$VCS" = darcs ]; then
+       rm -rf _darcs
+       file=.darcsignore
+fi
+
+managed_by_etckeeper="managed by etckeeper"
+
+if ! grep -q "$managed_by_etckeeper" "$file"; then
+       exit 0
+else
+       realfile="$file"
+       if command -v mktemp >/dev/null; then
+               tempfile="mktemp"
+       elif command -v tempfile >/dev/null; then
+               tempfile="tempfile"
+       else
+               echo "etckeeper warning: can't find tempfile or mktemp" >&2
+               exit 1
+       fi
+       file=$($tempfile)
+       otherentries=
+       skipping=
+       while read -r line; do
+               if echo "$line" | grep -q "$managed_by_etckeeper"; then
+                       if [ ! "$skipping" ]; then
+                               skipping=1
+                       else
+                               skipping=
+                       fi
+               elif [ ! "$skipping" ]; then
+                       echo "$line" >> "$file"
+                       otherentries=1
+               fi
+       done <"$realfile"
+
+       if [ "$otherentries" ]; then
+               mv -f "$file" "$realfile"
+       else
+               rm -f "$file"
+               rm -f "$realfile"
+       fi
+fi
diff --git a/etckeeper/uninit.d/README b/etckeeper/uninit.d/README
new file mode 100644 (file)
index 0000000..d1a4eaa
--- /dev/null
@@ -0,0 +1,2 @@
+Executable files in this directory are run to uninitialise the working
+directory, removing files added by `etckeeper init`.
diff --git a/etckeeper/update-ignore.d/01update-ignore b/etckeeper/update-ignore.d/01update-ignore
new file mode 100755 (executable)
index 0000000..22929ae
--- /dev/null
@@ -0,0 +1,223 @@
+#!/bin/sh
+set -e
+
+if [ "$VCS" = git ]; then
+       dir=.git
+       file=.gitignore
+elif [ "$VCS" = hg ]; then
+       dir=.hg
+       file=.hgignore
+elif [ "$VCS" = bzr ]; then
+       dir=.bzr
+       file=.bzrignore
+elif [ "$VCS" = darcs ]; then
+       dir=_darcs
+       file=.darcsignore
+else
+       echo "etckeeper: unsupported VCS $VCS" >&2
+       exit 1
+fi
+
+if [ ! -d "$dir" ]; then
+       exit 0
+fi
+
+managed_by_etckeeper="managed by etckeeper"
+
+nl() {
+       echo >>"$file"
+}
+
+comment() {
+       comment="$1"
+       echo "# $comment" >>"$file"
+}
+
+ignore() {
+       glob="$1"
+       
+       case "$VCS" in
+               git)
+                       # escape "#" in ignores, as otherwise it may
+                       # be considered a comment
+                       echo "$glob" | sed 's/#/\\#/g' >>"$file"
+               ;;
+               bzr)
+                       echo "$glob" >>"$file"
+               ;;
+               hg)
+                       # rather than converting the glob to a regexp, just
+                       # configure hg to use globs
+                       if [ -z "$hg_syntax_printed" ]; then
+                               comment "use glob syntax"
+                               echo "syntax: glob" >>"$file"
+                               nl
+                               hg_syntax_printed=1
+                       fi
+                       echo "$glob" | sed 's/#/\\#/g' >>"$file"
+               ;;
+               darcs)
+                       # darcs doesn't understand globs, so we need to
+                       # translate them into regexs. Not a complete converter,
+                       # but suitable for given globs.
+                       if [ "${glob%\*}" != "$glob" ]; then
+                               glob="${glob%\*}"
+                       else
+                               glob="$glob"'($|/)'
+                       fi
+                       if [ "${glob#\*}" != "$glob" ]; then
+                               glob="${glob#\*}"
+                       else
+                               glob='(^|/)'"$glob"
+                       fi
+                       glob="$( printf %s $glob | sed -e 's/\./\\./g;s/\*/[^\/]*/g;s/\?/[^\/]/g' )"
+                       echo "$glob" >>"$file"
+       esac
+}
+
+writefile () {
+       comment "begin section $managed_by_etckeeper (do not edit this section by hand)"
+       nl
+
+       if [ "$VCS" = darcs ]; then
+               darcs setpref boringfile .darcsignore
+       fi
+
+       if [ "$LOWLEVEL_PACKAGE_MANAGER" = dpkg ]; then
+               comment "new and old versions of conffiles, stored by dpkg"
+               ignore "*.dpkg-*"
+               comment "new and old versions of conffiles, stored by ucf"
+               ignore "*.ucf-*"
+               nl
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "rpm" ]; then
+               comment "new and old versions of conffiles, stored by apt/rpm"
+               ignore "*.rpm*"
+               nl
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "pacman-g2" -o "$LOWLEVEL_PACKAGE_MANAGER" = "pacman" -o "$LOWLEVEL_PACKAGE_MANAGER" = "pacmatic" ]; then
+               comment "new and old versions of conffiles, stored by pacman"
+               ignore "*.pacnew"
+               ignore "*.pacorig"
+               ignore "*.pacsave"
+               nl
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "apk" ]; then
+               comment "new versions of conffiles, stored by apk"
+               ignore "*.apk-new"
+               nl
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "xbps" ]; then
+               comment "new versions of conffiles, stored by xbps"
+               ignore "*.new-*_[0-9]*"
+               nl
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "qlist" -o "$LOWLEVEL_PACKAGE_MANAGER" = "cave" ]; then
+               comment "new and old versions of conffiles, stored by emerge"
+               ignore "._cfg*"
+               nl
+       fi
+
+       comment "old versions of files"
+       ignore "*.old"
+       # Not currently ignored as admins tend to rely on these files.
+       #ignore "passwd-"
+       #ignore "group-"
+       #ignore "shadow-"
+       #ignore "gshadow-"
+       nl
+
+       comment "mount(8) records system state here, no need to store these"
+       ignore blkid.tab
+       ignore blkid.tab.old
+       nl
+       
+       comment "some other files in /etc that typically do not need to be tracked"
+       ignore nologin
+       ignore ld.so.cache
+       ignore prelink.cache
+       ignore mtab
+       ignore mtab.fuselock
+       ignore .pwd.lock
+       ignore "*.LOCK"
+       ignore network/run
+       ignore adjtime
+       ignore udev/hwdb.bin
+       ignore lvm/cache
+       ignore lvm/archive
+       ignore "X11/xdm/authdir/authfiles/*"
+       ignore ntp.conf.dhcp
+       ignore .initctl
+       ignore "webmin/fsdump/*.status"
+       ignore "webmin/webmin/oscache"
+       ignore "apparmor.d/cache/*"
+       ignore "service/*/supervise/*"
+       ignore "service/*/log/supervise/*"
+       ignore "sv/*/supervise/*"
+       ignore "sv/*/log/supervise/*"
+       ignore "*.elc"
+       ignore "*.pyc"
+       ignore "*.pyo"
+       ignore "init.d/.depend.*"
+       ignore "openvpn/openvpn-status.log"
+       ignore "cups/subscriptions.conf"
+       ignore "cups/subscriptions.conf.O"
+       ignore "fake-hwclock.data"
+       ignore "check_mk/logwatch.state"
+       nl
+       
+       comment "editor temp files"
+       ignore "*~"
+       ignore ".*.sw?"
+       ignore ".sw?"
+       ignore "#*#"
+       ignore DEADJOE
+
+       nl
+       comment "end section $managed_by_etckeeper"
+}
+
+if [ -e "$file" ]; then
+       if ! grep -q "$managed_by_etckeeper" "$file"; then
+               if [ "$1" != "-a" ]; then
+                       echo "etckeeper: "$file" does not contain \"$managed_by_etckeeper\" comment; not updating"
+                       exit 1
+               else
+                       echo "etckeeper: "$file" exists but does not contain \"$managed_by_etckeeper\" comment; updating"
+                       writefile
+                       exit 0
+               fi
+       fi
+       realfile="$file"
+       if command -v mktemp >/dev/null; then
+               tempfile="mktemp"
+       elif command -v tempfile >/dev/null; then
+               tempfile="tempfile"
+       else
+               echo "etckeeper warning: can't find tempfile or mktemp" >&2
+       fi
+       file=$($tempfile)
+
+       # preserve permissions and ownership
+       cp -fp "$realfile" "$file"
+       cat /dev/null >"$file"
+
+       (
+               skipping=
+               while read -r line; do
+                       if echo "$line" | grep -q "$managed_by_etckeeper"; then
+                               if [ ! "$skipping" ]; then
+                                       skipping=1
+                               else
+                                       skipping=
+                                       writefile
+                               fi
+                       elif [ ! "$skipping" ]; then
+                               echo "$line" >> "$file"
+                       fi
+               done
+               if [ "$skipping" ]; then
+                       # reached end of file w/o ending block
+                       writefile
+               fi
+       ) <"$realfile"
+
+       mv -f "$file" "$realfile"
+else
+       writefile
+fi
diff --git a/etckeeper/update-ignore.d/README b/etckeeper/update-ignore.d/README
new file mode 100644 (file)
index 0000000..a573135
--- /dev/null
@@ -0,0 +1,2 @@
+Executable files in this directory are run to update the VCS ignore file,
+or create it if it does not exist.
diff --git a/etckeeper/vcs.d/50vcs-cmd b/etckeeper/vcs.d/50vcs-cmd
new file mode 100755 (executable)
index 0000000..307f1e1
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+# check whether we can locate the vcs binary
+if [ -n "$VCS" ] && command -v "$VCS" > /dev/null; then
+        # pass commands to the VCS application
+        $VCS "$@"
+else
+       echo "error: VCS ($VCS) not set or not in PATH" >&2
+       exit 1
+fi
diff --git a/ethertypes b/ethertypes
new file mode 100644 (file)
index 0000000..261b837
--- /dev/null
@@ -0,0 +1,46 @@
+# Ethernet frame types
+#
+# The EtherType is a two-octet field of Ethernet frames used to indicate
+# which protocol is contained in their payload.
+#
+# More entries, mostly historical, can be found on:
+#      https://www.iana.org/assignments/ieee-802-numbers/
+#      http://standards-oui.ieee.org/ethertype/eth.txt
+#
+# <name>       <hexnumber> <alias1>...<alias35> # Comment
+#
+IPv4           0800    ip ip4  # IP (IPv4)
+X25            0805
+ARP            0806    ether-arp # Address Resolution Protocol
+FR_ARP         0808            # Frame Relay ARP [RFC1701]
+BPQ            08FF            # G8BPQ AX.25 over Ethernet
+TRILL          22F3            # TRILL [RFC6325]
+L2-IS-IS       22F4            # TRILL IS-IS [RFC6325]
+TEB            6558            # Transparent Ethernet Bridging [RFC1701]
+RAW_FR         6559            # Raw Frame Relay [RFC1701]
+RARP           8035            # Reverse ARP [RFC903]
+ATALK          809B            # Appletalk
+AARP           80F3            # Appletalk Address Resolution Protocol
+802_1Q         8100    8021q 1q 802.1q dot1q # VLAN tagged frame [802.1q]
+IPX            8137            # Novell IPX
+NetBEUI                8191            # NetBEUI
+IPv6           86DD    ip6     # IP version 6
+PPP            880B            # Point-to-Point Protocol
+MPLS           8847            # MPLS [RFC5332]
+MPLS_MULTI     8848            # MPLS with upstream-assigned label [RFC5332]
+ATMMPOA                884C            # MultiProtocol over ATM
+PPP_DISC       8863            # PPP over Ethernet discovery stage
+PPP_SES                8864            # PPP over Ethernet session stage
+ATMFATE                8884            # Frame-based ATM Transport over Ethernet
+EAPOL          888E            # EAP over LAN [802.1x]
+S-TAG          88A8            # QinQ Service VLAN tag identifier [802.1q]
+EAP_PREAUTH    88C7            # EAPOL Pre-Authentication [802.11i]
+LLDP           88CC            # Link Layer Discovery Protocol [802.1ab]
+MACSEC         88E5            # Media Access Control Security [802.1ae]
+PBB            88E7    macinmac # Provider Backbone Bridging [802.1ah]
+MVRP           88F5            # Multiple VLAN Registration Protocol [802.1q]
+PTP            88F7            # Precision Time Protocol
+FCOE           8906            # Fibre Channel over Ethernet
+FIP            8914            # FCoE Initialization Protocol
+ROCE           8915            # RDMA over Converged Ethernet
+LoWPAN         A0ED            # LoWPAN encapsulation
diff --git a/fonts/conf.avail/20-unhint-small-dejavu-lgc-sans-mono.conf b/fonts/conf.avail/20-unhint-small-dejavu-lgc-sans-mono.conf
new file mode 100644 (file)
index 0000000..9036e83
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+  <!--  /etc/fonts/conf.d/20-unhint-small-dejavu-lgc-sans-mono.conf
+
+        Disable hinting manually at smaller sizes (< 8ppem)
+        This is a copy of the Bistream Vera fonts fonts rule, as DejaVu is
+        derived from Vera.
+
+       The Bistream Vera fonts have GASP entries suggesting that hinting be
+       disabled below 8 ppem, but FreeType ignores those, preferring to use
+       the data found in the instructed hints. The initial Vera release
+       didn't include the right instructions in the 'prep' table.
+ -->
+  <match target="font">
+    <test name="family">
+      <string>DejaVu LGC Sans Mono</string>
+    </test>
+    <test compare="less" name="pixelsize">
+      <double>7.5</double>
+    </test>
+    <edit name="hinting">
+      <bool>false</bool>
+    </edit>
+  </match>
+</fontconfig>
diff --git a/fonts/conf.avail/20-unhint-small-dejavu-lgc-sans.conf b/fonts/conf.avail/20-unhint-small-dejavu-lgc-sans.conf
new file mode 100644 (file)
index 0000000..35abebd
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+  <!--  /etc/fonts/conf.d/20-unhint-small-dejavu-lgc-sans.conf
+
+        Disable hinting manually at smaller sizes (< 8ppem)
+        This is a copy of the Bistream Vera fonts fonts rule, as DejaVu is
+        derived from Vera.
+
+       The Bistream Vera fonts have GASP entries suggesting that hinting be
+       disabled below 8 ppem, but FreeType ignores those, preferring to use
+       the data found in the instructed hints. The initial Vera release
+       didn't include the right instructions in the 'prep' table.
+ -->
+  <match target="font">
+    <test name="family">
+      <string>DejaVu LGC Sans</string>
+    </test>
+    <test compare="less" name="pixelsize">
+      <double>7.5</double>
+    </test>
+    <edit name="hinting">
+      <bool>false</bool>
+    </edit>
+  </match>
+</fontconfig>
diff --git a/fonts/conf.avail/20-unhint-small-dejavu-lgc-serif.conf b/fonts/conf.avail/20-unhint-small-dejavu-lgc-serif.conf
new file mode 100644 (file)
index 0000000..54486e8
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+  <!--  /etc/fonts/conf.d/20-unhint-small-dejavu-lgc-serif.conf
+
+        Disable hinting manually at smaller sizes (< 8ppem)
+        This is a copy of the Bistream Vera fonts fonts rule, as DejaVu is
+        derived from Vera.
+
+       The Bistream Vera fonts have GASP entries suggesting that hinting be
+       disabled below 8 ppem, but FreeType ignores those, preferring to use
+       the data found in the instructed hints. The initial Vera release
+       didn't include the right instructions in the 'prep' table.
+ -->
+  <match target="font">
+    <test name="family">
+      <string>DejaVu LGC Serif</string>
+    </test>
+    <test compare="less" name="pixelsize">
+      <double>7.5</double>
+    </test>
+    <edit name="hinting">
+      <bool>false</bool>
+    </edit>
+  </match>
+</fontconfig>
diff --git a/fonts/conf.avail/20-unhint-small-dejavu-sans-mono.conf b/fonts/conf.avail/20-unhint-small-dejavu-sans-mono.conf
new file mode 100644 (file)
index 0000000..102dbcc
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+  <!--  /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf
+
+        Disable hinting manually at smaller sizes (< 8ppem)
+        This is a copy of the Bistream Vera fonts fonts rule, as DejaVu is
+        derived from Vera.
+
+       The Bistream Vera fonts have GASP entries suggesting that hinting be
+       disabled below 8 ppem, but FreeType ignores those, preferring to use
+       the data found in the instructed hints. The initial Vera release
+       didn't include the right instructions in the 'prep' table.
+ -->
+  <match target="font">
+    <test name="family">
+      <string>DejaVu Sans Mono</string>
+    </test>
+    <test compare="less" name="pixelsize">
+      <double>7.5</double>
+    </test>
+    <edit name="hinting">
+      <bool>false</bool>
+    </edit>
+  </match>
+</fontconfig>
diff --git a/fonts/conf.avail/20-unhint-small-dejavu-sans.conf b/fonts/conf.avail/20-unhint-small-dejavu-sans.conf
new file mode 100644 (file)
index 0000000..ee69996
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+  <!--  /etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
+
+        Disable hinting manually at smaller sizes (< 8ppem)
+        This is a copy of the Bistream Vera fonts fonts rule, as DejaVu is
+        derived from Vera.
+
+       The Bistream Vera fonts have GASP entries suggesting that hinting be
+       disabled below 8 ppem, but FreeType ignores those, preferring to use
+       the data found in the instructed hints. The initial Vera release
+       didn't include the right instructions in the 'prep' table.
+ -->
+  <match target="font">
+    <test name="family">
+      <string>DejaVu Sans</string>
+    </test>
+    <test compare="less" name="pixelsize">
+      <double>7.5</double>
+    </test>
+    <edit name="hinting">
+      <bool>false</bool>
+    </edit>
+  </match>
+</fontconfig>
diff --git a/fonts/conf.avail/20-unhint-small-dejavu-serif.conf b/fonts/conf.avail/20-unhint-small-dejavu-serif.conf
new file mode 100644 (file)
index 0000000..cf6caa2
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+  <!--  /etc/fonts/conf.d/20-unhint-small-dejavu-serif.conf
+
+        Disable hinting manually at smaller sizes (< 8ppem)
+        This is a copy of the Bistream Vera fonts fonts rule, as DejaVu is
+        derived from Vera.
+
+       The Bistream Vera fonts have GASP entries suggesting that hinting be
+       disabled below 8 ppem, but FreeType ignores those, preferring to use
+       the data found in the instructed hints. The initial Vera release
+       didn't include the right instructions in the 'prep' table.
+ -->
+  <match target="font">
+    <test name="family">
+      <string>DejaVu Serif</string>
+    </test>
+    <test compare="less" name="pixelsize">
+      <double>7.5</double>
+    </test>
+    <edit name="hinting">
+      <bool>false</bool>
+    </edit>
+  </match>
+</fontconfig>
diff --git a/fonts/conf.avail/57-dejavu-sans-mono.conf b/fonts/conf.avail/57-dejavu-sans-mono.conf
new file mode 100644 (file)
index 0000000..2c75b5c
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<!-- /etc/fonts/conf.d/57-dejavu-sans-mono.conf
+
+     Define aliasing and other fontconfig settings for
+     DejaVu Sans Mono.
+
+     © 2006-2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
+-->
+<fontconfig>
+  <!-- Font substitution rules -->
+  <alias binding="same">
+    <family>Bepa Mono</family>
+    <accept>
+      <family>DejaVu Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Prima Sans Mono</family>
+    <accept>
+      <family>DejaVu Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Vera Sans Mono</family>
+    <accept>
+      <family>DejaVu Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>DejaVu LGC Sans Mono</family>
+    <accept>
+      <family>DejaVu Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Olwen Sans Mono</family>
+    <accept>
+      <family>DejaVu Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>SUSE Sans Mono</family>
+    <accept>
+      <family>DejaVu Sans Mono</family>
+    </accept>
+  </alias>
+</fontconfig>
diff --git a/fonts/conf.avail/57-dejavu-sans.conf b/fonts/conf.avail/57-dejavu-sans.conf
new file mode 100644 (file)
index 0000000..cff7a84
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<!-- /etc/fonts/conf.d/57-dejavu-sans.conf
+
+     Define aliasing and other fontconfig settings for
+     DejaVu Sans.
+
+     © 2006-2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
+-->
+<fontconfig>
+  <!-- Font substitution rules -->
+  <alias binding="same">
+    <family>Arev Sans</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bepa</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Prima Sans</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Vera Sans</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>DejaVu LGC Sans</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Hunky Sans</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Olwen Sans</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>SUSE Sans</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Verajja</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+  <!-- In case VerajjaPDA stops declaring itself as Verajja -->
+  <alias binding="same">
+    <family>VerajjaPDA</family>
+    <accept>
+      <family>DejaVu Sans</family>
+    </accept>
+  </alias>
+</fontconfig>
diff --git a/fonts/conf.avail/57-dejavu-serif.conf b/fonts/conf.avail/57-dejavu-serif.conf
new file mode 100644 (file)
index 0000000..10ae70f
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<!-- /etc/fonts/conf.d/57-dejavu-serif.conf
+
+     Define aliasing and other fontconfig settings for
+     DejaVu Serif.
+
+     © 2006-2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
+-->
+<fontconfig>
+  <!-- Font substitution rules -->
+  <alias binding="same">
+    <family>Bitstream Prima Serif</family>
+    <accept>
+      <family>DejaVu Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Vera Serif</family>
+    <accept>
+      <family>DejaVu Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>DejaVu LGC Serif</family>
+    <accept>
+      <family>DejaVu Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Hunky Serif</family>
+    <accept>
+      <family>DejaVu Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Olwen Serif</family>
+    <accept>
+      <family>DejaVu Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>SUSE Serif</family>
+    <accept>
+      <family>DejaVu Serif</family>
+    </accept>
+  </alias>
+  <!-- In case Verajja Serif stops declaring itself as DejaVu Serif -->
+  <alias binding="same">
+    <family>Verajja Serif</family>
+    <accept>
+      <family>DejaVu Serif</family>
+    </accept>
+  </alias>
+</fontconfig>
diff --git a/fonts/conf.avail/58-dejavu-lgc-sans-mono.conf b/fonts/conf.avail/58-dejavu-lgc-sans-mono.conf
new file mode 100644 (file)
index 0000000..9d0a8b2
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<!-- /etc/fonts/conf.d/58-dejavu-lgc-sans-mono.conf
+
+     Define aliasing and other fontconfig settings for
+     DejaVu LGC Sans Mono.
+
+     © 2006-2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
+-->
+<fontconfig>
+  <!-- Font substitution rules -->
+  <alias binding="same">
+    <family>Bepa Mono</family>
+    <accept>
+      <family>DejaVu LGC Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Prima Sans Mono</family>
+    <accept>
+      <family>DejaVu LGC Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Vera Sans Mono</family>
+    <accept>
+      <family>DejaVu LGC Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>DejaVu Sans Mono</family>
+    <accept>
+      <family>DejaVu LGC Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Olwen Sans Mono</family>
+    <accept>
+      <family>DejaVu LGC Sans Mono</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>SUSE Sans Mono</family>
+    <accept>
+      <family>DejaVu LGC Sans Mono</family>
+    </accept>
+  </alias>
+  <!-- Generic name assignment -->
+  <alias>
+    <family>DejaVu LGC Sans Mono</family>
+    <default>
+      <family>monospace</family>
+    </default>
+  </alias>
+  <!-- Generic name aliasing -->
+  <alias>
+    <family>monospace</family>
+    <prefer>
+      <family>DejaVu LGC Sans Mono</family>
+    </prefer>
+  </alias>
+</fontconfig>
diff --git a/fonts/conf.avail/58-dejavu-lgc-sans.conf b/fonts/conf.avail/58-dejavu-lgc-sans.conf
new file mode 100644 (file)
index 0000000..decd2a3
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<!-- /etc/fonts/conf.d/58-dejavu-lgc-sans.conf
+
+     Define aliasing and other fontconfig settings for
+     DejaVu LGC Sans.
+
+     © 2006-2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
+-->
+<fontconfig>
+  <!-- Font substitution rules -->
+  <alias binding="same">
+    <family>Arev Sans</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bepa</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Prima Sans</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Vera Sans</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>DejaVu Sans</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Hunky Sans</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Olwen Sans</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>SUSE Sans</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Verajja</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <!-- In case VerajjaPDA stops declaring itself as Verajja -->
+  <alias binding="same">
+    <family>VerajjaPDA</family>
+    <accept>
+      <family>DejaVu LGC Sans</family>
+    </accept>
+  </alias>
+  <!-- Generic name assignment -->
+  <alias>
+    <family>DejaVu LGC Sans</family>
+    <default>
+      <family>sans-serif</family>
+    </default>
+  </alias>
+  <!-- Generic name aliasing -->
+  <alias>
+    <family>sans-serif</family>
+    <prefer>
+      <family>DejaVu LGC Sans</family>
+    </prefer>
+  </alias>
+</fontconfig>
diff --git a/fonts/conf.avail/58-dejavu-lgc-serif.conf b/fonts/conf.avail/58-dejavu-lgc-serif.conf
new file mode 100644 (file)
index 0000000..01045e8
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<!-- /etc/fonts/conf.d/58-dejavu-lgc-serif.conf
+
+     Define aliasing and other fontconfig settings for
+     DejaVu LGC Serif.
+
+     © 2006-2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
+-->
+<fontconfig>
+  <!-- Font substitution rules -->
+  <alias binding="same">
+    <family>Bitstream Prima Serif</family>
+    <accept>
+      <family>DejaVu LGC Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Bitstream Vera Serif</family>
+    <accept>
+      <family>DejaVu LGC Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>DejaVu Serif</family>
+    <accept>
+      <family>DejaVu LGC Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Hunky Serif</family>
+    <accept>
+      <family>DejaVu LGC Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Olwen Serif</family>
+    <accept>
+      <family>DejaVu LGC Serif</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>SUSE Serif</family>
+    <accept>
+      <family>DejaVu LGC Serif</family>
+    </accept>
+  </alias>
+  <!-- In case Verajja Serif stops declaring itself as DejaVu Serif -->
+  <alias binding="same">
+    <family>Verajja Serif</family>
+    <accept>
+      <family>DejaVu LGC Serif</family>
+    </accept>
+  </alias>
+  <!-- Generic name assignment -->
+  <alias>
+    <family>DejaVu LGC Serif</family>
+    <default>
+      <family>serif</family>
+    </default>
+  </alias>
+  <!-- Generic name aliasing -->
+  <alias>
+    <family>serif</family>
+    <prefer>
+      <family>DejaVu LGC Serif</family>
+    </prefer>
+  </alias>
+</fontconfig>
diff --git a/fonts/conf.d/10-hinting-slight.conf b/fonts/conf.d/10-hinting-slight.conf
new file mode 120000 (symlink)
index 0000000..99241c8
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/10-hinting-slight.conf
\ No newline at end of file
diff --git a/fonts/conf.d/10-scale-bitmap-fonts.conf b/fonts/conf.d/10-scale-bitmap-fonts.conf
new file mode 120000 (symlink)
index 0000000..7e50611
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
\ No newline at end of file
diff --git a/fonts/conf.d/10-yes-antialias.conf b/fonts/conf.d/10-yes-antialias.conf
new file mode 120000 (symlink)
index 0000000..139972e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/10-yes-antialias.conf
\ No newline at end of file
diff --git a/fonts/conf.d/11-lcdfilter-default.conf b/fonts/conf.d/11-lcdfilter-default.conf
new file mode 120000 (symlink)
index 0000000..fbc10b0
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf
\ No newline at end of file
diff --git a/fonts/conf.d/20-unhint-small-dejavu-lgc-sans-mono.conf b/fonts/conf.d/20-unhint-small-dejavu-lgc-sans-mono.conf
new file mode 120000 (symlink)
index 0000000..068e8ea
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/20-unhint-small-dejavu-lgc-sans-mono.conf
\ No newline at end of file
diff --git a/fonts/conf.d/20-unhint-small-dejavu-lgc-sans.conf b/fonts/conf.d/20-unhint-small-dejavu-lgc-sans.conf
new file mode 120000 (symlink)
index 0000000..4c76710
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/20-unhint-small-dejavu-lgc-sans.conf
\ No newline at end of file
diff --git a/fonts/conf.d/20-unhint-small-dejavu-lgc-serif.conf b/fonts/conf.d/20-unhint-small-dejavu-lgc-serif.conf
new file mode 120000 (symlink)
index 0000000..1c8a107
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/20-unhint-small-dejavu-lgc-serif.conf
\ No newline at end of file
diff --git a/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf b/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf
new file mode 120000 (symlink)
index 0000000..e075245
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/20-unhint-small-dejavu-sans-mono.conf
\ No newline at end of file
diff --git a/fonts/conf.d/20-unhint-small-dejavu-sans.conf b/fonts/conf.d/20-unhint-small-dejavu-sans.conf
new file mode 120000 (symlink)
index 0000000..61320a1
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/20-unhint-small-dejavu-sans.conf
\ No newline at end of file
diff --git a/fonts/conf.d/20-unhint-small-dejavu-serif.conf b/fonts/conf.d/20-unhint-small-dejavu-serif.conf
new file mode 120000 (symlink)
index 0000000..7abd5e1
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/20-unhint-small-dejavu-serif.conf
\ No newline at end of file
diff --git a/fonts/conf.d/20-unhint-small-vera.conf b/fonts/conf.d/20-unhint-small-vera.conf
new file mode 120000 (symlink)
index 0000000..cde2cce
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf
\ No newline at end of file
diff --git a/fonts/conf.d/30-metric-aliases.conf b/fonts/conf.d/30-metric-aliases.conf
new file mode 120000 (symlink)
index 0000000..1880d96
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/30-metric-aliases.conf
\ No newline at end of file
diff --git a/fonts/conf.d/40-nonlatin.conf b/fonts/conf.d/40-nonlatin.conf
new file mode 120000 (symlink)
index 0000000..c46eb4e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/40-nonlatin.conf
\ No newline at end of file
diff --git a/fonts/conf.d/45-generic.conf b/fonts/conf.d/45-generic.conf
new file mode 120000 (symlink)
index 0000000..da483b3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/45-generic.conf
\ No newline at end of file
diff --git a/fonts/conf.d/45-latin.conf b/fonts/conf.d/45-latin.conf
new file mode 120000 (symlink)
index 0000000..cb1c08f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/45-latin.conf
\ No newline at end of file
diff --git a/fonts/conf.d/48-spacing.conf b/fonts/conf.d/48-spacing.conf
new file mode 120000 (symlink)
index 0000000..b54e605
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/48-spacing.conf
\ No newline at end of file
diff --git a/fonts/conf.d/49-sansserif.conf b/fonts/conf.d/49-sansserif.conf
new file mode 120000 (symlink)
index 0000000..2625516
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/49-sansserif.conf
\ No newline at end of file
diff --git a/fonts/conf.d/50-user.conf b/fonts/conf.d/50-user.conf
new file mode 120000 (symlink)
index 0000000..62f8b14
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/50-user.conf
\ No newline at end of file
diff --git a/fonts/conf.d/51-local.conf b/fonts/conf.d/51-local.conf
new file mode 120000 (symlink)
index 0000000..39557bd
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/51-local.conf
\ No newline at end of file
diff --git a/fonts/conf.d/57-dejavu-sans-mono.conf b/fonts/conf.d/57-dejavu-sans-mono.conf
new file mode 120000 (symlink)
index 0000000..c0c1959
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/57-dejavu-sans-mono.conf
\ No newline at end of file
diff --git a/fonts/conf.d/57-dejavu-sans.conf b/fonts/conf.d/57-dejavu-sans.conf
new file mode 120000 (symlink)
index 0000000..92a40d6
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/57-dejavu-sans.conf
\ No newline at end of file
diff --git a/fonts/conf.d/57-dejavu-serif.conf b/fonts/conf.d/57-dejavu-serif.conf
new file mode 120000 (symlink)
index 0000000..b7e7481
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/57-dejavu-serif.conf
\ No newline at end of file
diff --git a/fonts/conf.d/58-dejavu-lgc-sans-mono.conf b/fonts/conf.d/58-dejavu-lgc-sans-mono.conf
new file mode 120000 (symlink)
index 0000000..89ea6b2
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/58-dejavu-lgc-sans-mono.conf
\ No newline at end of file
diff --git a/fonts/conf.d/58-dejavu-lgc-sans.conf b/fonts/conf.d/58-dejavu-lgc-sans.conf
new file mode 120000 (symlink)
index 0000000..ca377e0
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/58-dejavu-lgc-sans.conf
\ No newline at end of file
diff --git a/fonts/conf.d/58-dejavu-lgc-serif.conf b/fonts/conf.d/58-dejavu-lgc-serif.conf
new file mode 120000 (symlink)
index 0000000..603352a
--- /dev/null
@@ -0,0 +1 @@
+../conf.avail/58-dejavu-lgc-serif.conf
\ No newline at end of file
diff --git a/fonts/conf.d/60-generic.conf b/fonts/conf.d/60-generic.conf
new file mode 120000 (symlink)
index 0000000..ff9243f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/60-generic.conf
\ No newline at end of file
diff --git a/fonts/conf.d/60-latin.conf b/fonts/conf.d/60-latin.conf
new file mode 120000 (symlink)
index 0000000..020a763
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/60-latin.conf
\ No newline at end of file
diff --git a/fonts/conf.d/65-fonts-persian.conf b/fonts/conf.d/65-fonts-persian.conf
new file mode 120000 (symlink)
index 0000000..c5ceafc
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/65-fonts-persian.conf
\ No newline at end of file
diff --git a/fonts/conf.d/65-nonlatin.conf b/fonts/conf.d/65-nonlatin.conf
new file mode 120000 (symlink)
index 0000000..eee5d46
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/65-nonlatin.conf
\ No newline at end of file
diff --git a/fonts/conf.d/69-unifont.conf b/fonts/conf.d/69-unifont.conf
new file mode 120000 (symlink)
index 0000000..313ab54
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/69-unifont.conf
\ No newline at end of file
diff --git a/fonts/conf.d/70-no-bitmaps.conf b/fonts/conf.d/70-no-bitmaps.conf
new file mode 120000 (symlink)
index 0000000..dbfc647
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/70-no-bitmaps.conf
\ No newline at end of file
diff --git a/fonts/conf.d/80-delicious.conf b/fonts/conf.d/80-delicious.conf
new file mode 120000 (symlink)
index 0000000..e2d1d22
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/80-delicious.conf
\ No newline at end of file
diff --git a/fonts/conf.d/90-synthetic.conf b/fonts/conf.d/90-synthetic.conf
new file mode 120000 (symlink)
index 0000000..20e176b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/fontconfig/conf.avail/90-synthetic.conf
\ No newline at end of file
diff --git a/fonts/conf.d/README b/fonts/conf.d/README
new file mode 100644 (file)
index 0000000..0d20ef4
--- /dev/null
@@ -0,0 +1,23 @@
+conf.d/README
+
+Each file in this directory is a fontconfig configuration file.  Fontconfig
+scans this directory, loading all files of the form [0-9][0-9]*.conf.
+These files are normally installed in /usr/share/fontconfig/conf.avail
+and then symlinked here, allowing them to be easily installed and then
+enabled/disabled by adjusting the symlinks.
+
+The files are loaded in numeric order, the structure of the configuration
+has led to the following conventions in usage:
+
+ Files beginning with: Contain:
+ 00 through 09         Font directories
+ 10 through 19         system rendering defaults (AA, etc)
+ 20 through 29         font rendering options
+ 30 through 39         family substitution
+ 40 through 49         generic identification, map family->generic
+ 50 through 59         alternate config file loading
+ 60 through 69         generic aliases, map generic->family
+ 70 through 79         select font (adjust which fonts are available)
+ 80 through 89         match target="scan" (modify scanned patterns)
+ 90 through 99         font synthesis
diff --git a/fonts/fonts.conf b/fonts/fonts.conf
new file mode 100644 (file)
index 0000000..128a0ee
--- /dev/null
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<!-- /etc/fonts/fonts.conf file to configure system font access -->
+<fontconfig>
+       <description>Default configuration file</description>
+
+<!--
+       DO NOT EDIT THIS FILE.
+       IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
+       LOCAL CHANGES BELONG IN 'local.conf'.
+
+       The intent of this standard configuration file is to be adequate for
+       most environments.  If you have a reasonably normal environment and
+       have found problems with this configuration, they are probably
+       things that others will also want fixed.  Please submit any problems
+       to the fontconfig issue tracking system located at fontconfig.org
+
+       Note that the normal 'make install' procedure for fontconfig is to
+       replace any existing fonts.conf file with the new version.  Place
+       any local customizations in local.conf which this file references.
+
+       Keith Packard
+-->
+
+<!-- Font directory list -->
+
+       <dir>/usr/share/fonts</dir>
+       <dir>/usr/local/share/fonts</dir>
+       <dir prefix="xdg">fonts</dir>
+       <!-- the following element will be removed in the future -->
+       <dir>~/.fonts</dir>
+
+<!--
+  Accept deprecated 'mono' alias, replacing it with 'monospace'
+-->
+       <match target="pattern">
+               <test qual="any" name="family">
+                       <string>mono</string>
+               </test>
+               <edit name="family" mode="assign" binding="same">
+                       <string>monospace</string>
+               </edit>
+       </match>
+
+<!--
+  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
+-->
+       <match target="pattern">
+               <test qual="any" name="family">
+                       <string>sans serif</string>
+               </test>
+               <edit name="family" mode="assign" binding="same">
+                       <string>sans-serif</string>
+               </edit>
+       </match>
+
+<!--
+  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
+-->
+       <match target="pattern">
+               <test qual="any" name="family">
+                       <string>sans</string>
+               </test>
+               <edit name="family" mode="assign" binding="same">
+                       <string>sans-serif</string>
+               </edit>
+       </match>
+<!--
+  Accept alternate 'system ui' spelling, replacing it with 'system-ui'
+-->
+       <match target="pattern">
+               <test qual="any" name="family">
+                       <string>system ui</string>
+               </test>
+               <edit name="family" mode="assign" binding="same">
+                       <string>system-ui</string>
+               </edit>
+       </match>
+
+<!--
+  Ignore dpkg temporary files created in fonts directories
+-->
+       <selectfont>
+               <rejectfont>
+                       <glob>*.dpkg-tmp</glob>
+               </rejectfont>
+       </selectfont>
+       <selectfont>
+               <rejectfont>
+                       <glob>*.dpkg-new</glob>
+               </rejectfont>
+       </selectfont>
+
+<!--
+  Load local system customization file
+-->
+       <include ignore_missing="yes">conf.d</include>
+
+<!-- Font cache directory list -->
+
+       <cachedir>/var/cache/fontconfig</cachedir>
+       <cachedir prefix="xdg">fontconfig</cachedir>
+       <!-- the following element will be removed in the future -->
+       <cachedir>~/.fontconfig</cachedir>
+
+       <config>
+<!--
+  Rescan configuration every 30 seconds when FcFontSetList is called
+ -->
+               <rescan>
+                       <int>30</int>
+               </rescan>
+       </config>
+
+</fontconfig>
diff --git a/fstab b/fstab
new file mode 100644 (file)
index 0000000..0d027b0
--- /dev/null
+++ b/fstab
@@ -0,0 +1,21 @@
+# /etc/fstab: static file system information.
+#
+# Use 'blkid' to print the universally unique identifier for a
+# device; this may be used with UUID= as a more robust way to name devices
+# that works even if disks are added and removed. See fstab(5).
+#
+# systemd generates mount units based on this file, see systemd.mount(5).
+# Please run 'systemctl daemon-reload' after making changes here.
+#
+# <file system> <mount point>   <type>  <options>       <dump>  <pass>
+# / was on /dev/sda2 during installation
+UUID=34d6e7d7-3ce4-45c1-8f73-206e672466a5 /               xfs     defaults        0       0
+# /boot was on /dev/sda1 during installation
+UUID=99c7a1d3-b80d-492c-a03f-6078e782569d /boot           ext4    defaults        0       2
+/dev/mapper/vg00-home /home           xfs     defaults        0       0
+/dev/mapper/vg00-opt /opt            xfs     defaults        0       0
+/dev/mapper/vg00-var /var            xfs     defaults        0       0
+/dev/mapper/vg00-mysql /var/lib/mysql  xfs     defaults        0       0
+/dev/mapper/vg00-mail /var/vmail      xfs     defaults        0       0
+/dev/mapper/vg00-swap none            swap    sw              0       0
+/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
diff --git a/fuse.conf b/fuse.conf
new file mode 100644 (file)
index 0000000..3c9b6ac
--- /dev/null
+++ b/fuse.conf
@@ -0,0 +1,17 @@
+# The file /etc/fuse.conf allows for the following parameters:
+#
+# user_allow_other - Using the allow_other mount option works fine as root, in
+# order to have it work as user you need user_allow_other in /etc/fuse.conf as
+# well. (This option allows users to use the allow_other option.) You need
+# allow_other if you want users other than the owner to access a mounted fuse.
+# This option must appear on a line by itself. There is no value, just the
+# presence of the option.
+
+#user_allow_other
+
+
+# mount_max = n - this option sets the maximum number of mounts.
+# Currently (2014) it must be typed exactly as shown
+# (with a single space before and after the equals sign).
+
+#mount_max = 1000
diff --git a/gai.conf b/gai.conf
new file mode 100644 (file)
index 0000000..4616ed0
--- /dev/null
+++ b/gai.conf
@@ -0,0 +1,65 @@
+# Configuration for getaddrinfo(3).
+#
+# So far only configuration for the destination address sorting is needed.
+# RFC 3484 governs the sorting.  But the RFC also says that system
+# administrators should be able to overwrite the defaults.  This can be
+# achieved here.
+#
+# All lines have an initial identifier specifying the option followed by
+# up to two values.  Information specified in this file replaces the
+# default information.  Complete absence of data of one kind causes the
+# appropriate default information to be used.  The supported commands include:
+#
+# reload  <yes|no>
+#    If set to yes, each getaddrinfo(3) call will check whether this file
+#    changed and if necessary reload.  This option should not really be
+#    used.  There are possible runtime problems.  The default is no.
+#
+# label   <mask>   <value>
+#    Add another rule to the RFC 3484 label table.  See section 2.1 in
+#    RFC 3484.  The default is:
+#
+#label ::1/128       0
+#label ::/0          1
+#label 2002::/16     2
+#label ::/96         3
+#label ::ffff:0:0/96 4
+#label fec0::/10     5
+#label fc00::/7      6
+#label 2001:0::/32   7
+#
+#    This default differs from the tables given in RFC 3484 by handling
+#    (now obsolete) site-local IPv6 addresses and Unique Local Addresses.
+#    The reason for this difference is that these addresses are never
+#    NATed while IPv4 site-local addresses most probably are.  Given
+#    the precedence of IPv6 over IPv4 (see below) on machines having only
+#    site-local IPv4 and IPv6 addresses a lookup for a global address would
+#    see the IPv6 be preferred.  The result is a long delay because the
+#    site-local IPv6 addresses cannot be used while the IPv4 address is
+#    (at least for the foreseeable future) NATed.  We also treat Teredo
+#    tunnels special.
+#
+# precedence  <mask>   <value>
+#    Add another rule to the RFC 3484 precedence table.  See section 2.1
+#    and 10.3 in RFC 3484.  The default is:
+#
+#precedence  ::1/128       50
+#precedence  ::/0          40
+#precedence  2002::/16     30
+#precedence ::/96          20
+#precedence ::ffff:0:0/96  10
+#
+#    For sites which prefer IPv4 connections change the last line to
+#
+#precedence ::ffff:0:0/96  100
+
+#
+# scopev4  <mask>  <value>
+#    Add another rule to the RFC 6724 scope table for IPv4 addresses.
+#    By default the scope IDs described in section 3.2 in RFC 6724 are
+#    used.  Changing these defaults should hardly ever be necessary.
+#    The defaults are equivalent to:
+#
+#scopev4 ::ffff:169.254.0.0/112  2
+#scopev4 ::ffff:127.0.0.0/104    2
+#scopev4 ::ffff:0.0.0.0/96       14
diff --git a/gprofng.rc b/gprofng.rc
new file mode 100644 (file)
index 0000000..07f84c0
--- /dev/null
@@ -0,0 +1,132 @@
+#   Copyright (C) 2021-2023 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+#
+# Specify which classes of compiler commentary will be shown
+# with annotated source.
+scc all
+
+# Specify which classes of compiler commentary will be shown
+# with annotated disassembly
+dcc all:src
+
+# Set the default function-list metrics
+# for heap data, show inclusive leaks and bytes leaked; not allocations
+dmetrics i.heapleakbytes:e!heapleakbytes
+dmetrics i.heapleakcnt:e!heapleakcnt
+dmetrics i.heapallocbytes:e!heapallocbytes
+dmetrics i.heapalloccnt:e!heapalloccnt:
+
+# Clock profiling data
+#   Note: use same display order of LMS_* in: er.rc, TimelineVariable.java, 
+#     Ovw_data.h, BaseMetricTreeNode.cc and Experiment.cc metric registration
+dmetrics i!total:e!.total
+#   Show total cpu time
+dmetrics ei%.totalcpu
+dmetrics i!.user:e!.user
+dmetrics i!system:e!.system
+dmetrics i!trap:e!.trap
+dmetrics i!lock:e!.lock
+dmetrics i!datapfault:e!.datapfault
+dmetrics i!textpfault:e!.textpfault
+dmetrics i!kernelpfault:e!.kernelpfault
+dmetrics i!stop:e!.stop
+dmetrics i!wait:e!.wait
+dmetrics i!sleep:e!.sleep
+
+# for kernel clock profiling data, show inclusive and exclusive KCPU
+dmetrics ei.kcpu
+###dmetrics ie.kcpu
+
+# for count data, show exclusive metrics only
+dmetrics i!bit:e.bit
+
+# for er_generic data, show exclusive metrics only
+dmetrics i!icount:e.icount
+
+# Hide implementation hack. Functionmark column only serves
+# to force zero-count functions to be displayed.
+dmetrics e!bit_FM
+
+# for kernel profiles, show inclusive and exclusive kucycles and kcycles
+# (kucycles and kcycles are for 12.3 and older experiments, Obsolete TBR)
+dmetrics ei.kucycles:ei.kcycles
+###dmetrics ie.kucycles:ie.kcycles
+
+# for derived HWC metrics, show exclusive only
+dmetrics i!IPC:e!.IPC
+dmetrics i!CPI:e!.CPI
+dmetrics i!K_IPC:e!.K_IPC
+dmetrics i!K_CPI:e!.K_CPI
+
+# for HWC, show exclusive only
+dmetrics i!hwc:e%.hwc
+
+# for synctrace, show inclusive only
+dmetrics i.sync:e!sync
+dmetrics i.syncn:e!syncn
+
+# Set the default function-list metrics for OMP profiling
+dmetrics i.ompwork:e!ompwork
+dmetrics i.ompwait:e!ompwait
+dmetrics i!.masterthread:e!.masterthread
+
+#set the default function-list metrics for deadlock detection
+dmetrics i!deadlocks:e.deadlocks
+
+# io data
+dmetrics i.ioreadtime:e!ioreadtime
+dmetrics i.iowritetime:e!iowritetime
+dmetrics i.ioothertime:e!ioothertime
+dmetrics i.ioerrortime:e!ioerrortime
+dmetrics i!.ioreadcnt:e!ioreadcnt
+dmetrics i!.ioreadbytes:e!ioreadbytes
+dmetrics i!.iowritecnt:e!iowritecnt
+dmetrics i!.iowritebytes:e!iowritebytes
+dmetrics i!.ioothercnt:e!ioothercnt
+dmetrics i!.ioerrorcnt:e!ioerrorcnt
+
+# for any other unnamed metrics, don't show them
+dmetrics ie!.any
+
+# don't show size or address; show name
+dmetrics !size:!address:name
+
+# Select the default function-list sorting metric
+dsort ei.any:name
+###dsort ie.any:name
+
+# Set function name style
+name long
+
+# Set View mode to user
+viewmode user
+
+# Set compare mode
+compare off
+
+# Set enabling descendants to on
+en_desc on
+
+# Set path where the gprofng libraries are installed
+preload_libdirs ../lib:../lib32:../lib64
+
+# Add search path for annotated source and disasm
+addpath $expts:.
+
+# Add controls for specific load objects
+#  object_hide <Unknown>
+
+# version "@(#)er.rc 1.62 11/10/31"
diff --git a/groff/man.local b/groff/man.local
new file mode 100644 (file)
index 0000000..ef5eaf8
--- /dev/null
@@ -0,0 +1,45 @@
+.\" -*- nroff -*-
+.\"
+.\" This file is loaded after an-old.tmac.
+.\" Put any local modifications to an-old.tmac here.
+.\"
+.\" for forward compatibility with a groff 1.23 feature
+.if !d MR \{\
+.  \" Provide a simple implementation of the new `MR` macro to avoid
+.  \" loss of formatted text.
+.  de MR
+.    ie \\n(.$=1 \
+.      I \%\\$1
+.    el \
+.      IR \%\\$1 (\\$2)\\$3
+.  .
+.\}
+.
+.if n \{\
+.  \" Debian: Map \(oq to ' rather than ` in nroff mode for devices other
+.  \" than utf8.
+.  if !'\*[.T]'utf8' \
+.    tr \[oq]'
+.
+.  \" Debian: Disable the use of SGR (ANSI colour) escape sequences by
+.  \" grotty.
+.  if '\V[GROFF_SGR]'' \
+.    output x X tty: sgr 0
+.
+.  \" Debian: Strictly, "-" is a hyphen while "\-" is a minus sign, and the
+.  \" former may not always be rendered in the form expected for things like
+.  \" command-line options.  Uncomment this if you want to make sure that
+.  \" manual pages you're writing are clear of this problem.
+.  \" if '\*[.T]'utf8' \
+.  \"   char - \[hy]
+.
+.  \" Debian: "\-" is more commonly used for option dashes than for minus
+.  \" signs in manual pages, so map it to plain "-" for HTML/XHTML output
+.  \" rather than letting it be rendered as "&minus;".
+.  ie '\*[.T]'html' \
+.    char \- \N'45'
+.  el \{\
+.    if '\*[.T]'xhtml' \
+.      char \- \N'45'
+.  \}
+.\}
diff --git a/groff/mdoc.local b/groff/mdoc.local
new file mode 100644 (file)
index 0000000..c29fac8
--- /dev/null
@@ -0,0 +1,33 @@
+.\" -*- nroff -*-
+.\"
+.\" This file is loaded after doc.tmac.
+.\" Put any local modifications to doc.tmac here.
+.
+.if n \{\
+.  \" Debian: Map \(oq to ' rather than ` in nroff mode for devices other
+.  \" than utf8.
+.  if !'\*[.T]'utf8' \
+.    tr \[oq]'
+.
+.  \" Debian: Disable the use of SGR (ANSI colour) escape sequences by
+.  \" grotty.
+.  if '\V[GROFF_SGR]'' \
+.    output x X tty: sgr 0
+.
+.  \" Debian: Strictly, "-" is a hyphen while "\-" is a minus sign, and the
+.  \" former may not always be rendered in the form expected for things like
+.  \" command-line options.  Uncomment this if you want to make sure that
+.  \" manual pages you're writing are clear of this problem.
+.  \" if '\*[.T]'utf8' \
+.  \"   char - \[hy]
+.
+.  \" Debian: "\-" is more commonly used for option dashes than for minus
+.  \" signs in manual pages, so map it to plain "-" for HTML/XHTML output
+.  \" rather than letting it be rendered as "&minus;".
+.  ie '\*[.T]'html' \
+.    char \- \N'45'
+.  el \{\
+.    if '\*[.T]'xhtml' \
+.      char \- \N'45'
+.  \}
+.\}
diff --git a/group b/group
new file mode 100644 (file)
index 0000000..c3f115a
--- /dev/null
+++ b/group
@@ -0,0 +1,58 @@
+root:x:0:
+daemon:x:1:frank
+bin:x:2:frank
+sys:x:3:frank
+adm:x:4:
+tty:x:5:frank
+disk:x:6:frank
+lp:x:7:frank
+mail:x:8:frank
+news:x:9:
+uucp:x:10:
+man:x:12:frank
+proxy:x:13:
+kmem:x:15:
+dialout:x:20:
+fax:x:21:
+voice:x:22:
+cdrom:x:24:
+floppy:x:25:
+tape:x:26:
+sudo:x:27:frank
+audio:x:29:frank
+dip:x:30:
+www-data:x:33:
+backup:x:34:
+operator:x:37:frank
+list:x:38:
+irc:x:39:
+src:x:40:
+shadow:x:42:
+utmp:x:43:frank
+video:x:44:frank
+sasl:x:45:
+plugdev:x:46:
+staff:x:50:frank
+games:x:60:frank
+users:x:100:frank
+nogroup:x:65534:
+systemd-journal:x:999:
+systemd-network:x:998:
+crontab:x:101:frank
+input:x:102:
+sgx:x:103:
+kvm:x:104:
+render:x:105:
+netdev:x:106:
+ssl-cert:x:107:
+systemd-timesync:x:997:
+messagebus:x:108:
+_ssh:x:109:
+bind:x:110:
+plocate:x:111:frank
+_chrony:x:112:
+postfix:x:113:
+postdrop:x:114:
+valkey:x:115:
+mysql:x:116:
+tcpdump:x:117:
diff --git a/group- b/group-
new file mode 100644 (file)
index 0000000..3196e08
--- /dev/null
+++ b/group-
@@ -0,0 +1,57 @@
+root:x:0:
+daemon:x:1:frank
+bin:x:2:frank
+sys:x:3:frank
+adm:x:4:
+tty:x:5:frank
+disk:x:6:frank
+lp:x:7:frank
+mail:x:8:frank
+news:x:9:
+uucp:x:10:
+man:x:12:frank
+proxy:x:13:
+kmem:x:15:
+dialout:x:20:
+fax:x:21:
+voice:x:22:
+cdrom:x:24:
+floppy:x:25:
+tape:x:26:
+sudo:x:27:frank
+audio:x:29:frank
+dip:x:30:
+www-data:x:33:
+backup:x:34:
+operator:x:37:frank
+list:x:38:
+irc:x:39:
+src:x:40:
+shadow:x:42:
+utmp:x:43:frank
+video:x:44:frank
+sasl:x:45:
+plugdev:x:46:
+staff:x:50:frank
+games:x:60:frank
+users:x:100:frank
+nogroup:x:65534:
+systemd-journal:x:999:
+systemd-network:x:998:
+crontab:x:101:frank
+input:x:102:
+sgx:x:103:
+kvm:x:104:
+render:x:105:
+netdev:x:106:
+ssl-cert:x:107:
+systemd-timesync:x:997:
+messagebus:x:108:
+_ssh:x:109:
+bind:x:110:
+plocate:x:111:frank
+_chrony:x:112:
+postfix:x:113:
+postdrop:x:114:
+valkey:x:115:
+mysql:x:116:
diff --git a/grub.d/00_header b/grub.d/00_header
new file mode 100755 (executable)
index 0000000..a91d965
--- /dev/null
@@ -0,0 +1,421 @@
+#! /bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2006,2007,2008,2009,2010  Free Software Foundation, Inc.
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+
+prefix="/usr"
+exec_prefix="/usr"
+datarootdir="/usr/share"
+grub_lang=`echo $LANG | cut -d . -f 1`
+grubdir="`echo "/boot/grub" | sed 's,//*,/,g'`"
+quick_boot="0"
+
+export TEXTDOMAIN=grub
+export TEXTDOMAINDIR="${datarootdir}/locale"
+
+. "$pkgdatadir/grub-mkconfig_lib"
+
+# Do this as early as possible, since other commands might depend on it.
+# (e.g. the `loadfont' command might need lvm or raid modules)
+for i in ${GRUB_PRELOAD_MODULES} ; do
+  echo "insmod $i"
+done
+
+if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi
+if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then GRUB_DEFAULT='${saved_entry}' ; fi
+if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=5 ; fi
+if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=auto ; fi
+
+if [ "x${GRUB_DEFAULT_BUTTON}" = "x" ] ; then GRUB_DEFAULT_BUTTON="$GRUB_DEFAULT" ; fi
+if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_entry}' ; fi
+if [ "x${GRUB_TIMEOUT_BUTTON}" = "x" ] ; then GRUB_TIMEOUT_BUTTON="$GRUB_TIMEOUT" ; fi
+
+cat << EOF
+if [ -s \$prefix/grubenv ]; then
+  set have_grubenv=true
+  load_env
+fi
+EOF
+if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
+    cat <<EOF
+if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
+   set default="${GRUB_DEFAULT_BUTTON}"
+elif [ "\${next_entry}" ] ; then
+   set default="\${next_entry}"
+   set next_entry=
+   save_env next_entry
+   set boot_once=true
+else
+   set default="${GRUB_DEFAULT}"
+fi
+EOF
+else
+    cat <<EOF
+if [ "\${next_entry}" ] ; then
+   set default="\${next_entry}"
+   set next_entry=
+   save_env next_entry
+   set boot_once=true
+else
+   set default="${GRUB_DEFAULT}"
+fi
+EOF
+fi
+cat <<EOF
+
+if [ x"\${feature_menuentry_id}" = xy ]; then
+  menuentry_id_option="--id"
+else
+  menuentry_id_option=""
+fi
+
+export menuentry_id_option
+
+if [ "\${prev_saved_entry}" ]; then
+  set saved_entry="\${prev_saved_entry}"
+  save_env saved_entry
+  set prev_saved_entry=
+  save_env prev_saved_entry
+  set boot_once=true
+fi
+
+function savedefault {
+  if [ -z "\${boot_once}" ]; then
+    saved_entry="\${chosen}"
+    save_env saved_entry
+  fi
+}
+EOF
+
+if [ "$quick_boot" = 1 ]; then
+    cat <<EOF
+function recordfail {
+  set recordfail=1
+EOF
+
+  check_writable () {
+    abstractions="$(grub-probe --target=abstraction "${grubdir}")"
+    for abstraction in $abstractions; do
+      case "$abstraction" in
+        diskfilter | lvm)
+          cat <<EOF
+  # GRUB lacks write support for $abstraction, so recordfail support is disabled.
+EOF
+          return 1
+          ;;
+      esac
+    done
+
+    FS="$(grub-probe --target=fs "${grubdir}")"
+    case "$FS" in
+      btrfs | cpiofs | newc | odc | romfs | squash4 | tarfs | zfs)
+       cat <<EOF
+  # GRUB lacks write support for $FS, so recordfail support is disabled.
+EOF
+       return 1
+       ;;
+    esac
+
+    cat <<EOF
+  if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
+EOF
+  }
+
+  if ! check_writable; then
+    recordfail_broken=1
+  fi
+
+  cat <<EOF
+}
+EOF
+fi
+
+cat <<EOF
+function load_video {
+EOF
+if [ -n "${GRUB_VIDEO_BACKEND}" ]; then
+    cat <<EOF
+  insmod ${GRUB_VIDEO_BACKEND}
+EOF
+else
+# If all_video.mod isn't available load all modules available
+# with versions prior to introduction of all_video.mod
+cat <<EOF
+  if [ x\$feature_all_video_module = xy ]; then
+    insmod all_video
+  else
+    insmod efi_gop
+    insmod efi_uga
+    insmod ieee1275_fb
+    insmod vbe
+    insmod vga
+    insmod video_bochs
+    insmod video_cirrus
+  fi
+EOF
+fi
+cat <<EOF
+}
+
+EOF
+
+serial=0;
+gfxterm=0;
+for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
+    if [ xserial = "x$x" ]; then
+       serial=1;
+    fi
+    if [ xgfxterm = "x$x" ]; then
+       gfxterm=1;
+    fi
+done
+
+if [ "x$serial" = x1 ]; then
+    if [ "x${GRUB_SERIAL_COMMAND}" = "x" ] ; then
+       grub_warn "$(gettext "Requested serial terminal but GRUB_SERIAL_COMMAND is unspecified. Default parameters will be used.")"
+       GRUB_SERIAL_COMMAND=serial
+    fi
+    echo "${GRUB_SERIAL_COMMAND}"
+fi
+
+if [ "x$gfxterm" = x1 ]; then
+    if [ -n "$GRUB_FONT" ] ; then
+       # Make the font accessible
+       prepare_grub_to_access_device `${grub_probe} --target=device "${GRUB_FONT}"`
+    cat << EOF
+if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT}"` ; then
+EOF
+    else
+       for dir in "${pkgdatadir}" "`echo '/boot/grub' | sed "s,//*,/,g"`" /usr/share/grub ; do
+           for basename in unicode unifont ascii; do
+               path="${dir}/${basename}.pf2"
+               if is_path_readable_by_grub "${path}" > /dev/null ; then
+                   font_path="${path}"
+               else
+                   continue
+               fi
+               break 2
+           done
+       done
+       if [ -n "${font_path}" ] ; then
+    cat << EOF
+if [ x\$feature_default_font_path = xy ] ; then
+   font=unicode
+else
+EOF
+                # Make the font accessible
+               prepare_grub_to_access_device `${grub_probe} --target=device "${font_path}"`
+    cat << EOF
+    font="`make_system_path_relative_to_its_root "${font_path}"`"
+fi
+
+if loadfont \$font ; then
+EOF
+           else
+    cat << EOF
+if loadfont unicode ; then
+EOF
+           fi
+       fi
+
+    cat << EOF
+  set gfxmode=${GRUB_GFXMODE}
+  load_video
+  insmod gfxterm
+EOF
+
+# Gettext variables and module
+if [ "x${LANG}" != "xC" ] &&  [ "x${LANG}" != "x" ]; then
+  cat << EOF
+  set locale_dir=\$prefix/locale
+  set lang=${grub_lang}
+  insmod gettext
+EOF
+fi
+
+cat <<EOF
+fi
+EOF
+fi
+
+case x${GRUB_TERMINAL_INPUT} in
+  x)
+    # Just use the native terminal
+  ;;
+  x*)
+    cat << EOF
+terminal_input ${GRUB_TERMINAL_INPUT}
+EOF
+  ;;
+esac
+
+case x${GRUB_TERMINAL_OUTPUT} in
+  x)
+    # Just use the native terminal
+  ;;
+  x*)
+    cat << EOF
+terminal_output ${GRUB_TERMINAL_OUTPUT}
+EOF
+  ;;
+esac
+
+if [ "x$gfxterm" = x1 ]; then
+    if [ "x$GRUB_THEME" != x ] && [ -f "$GRUB_THEME" ] \
+       && is_path_readable_by_grub "$GRUB_THEME"; then
+       gettext_printf "Found theme: %s\n" "$GRUB_THEME" >&2
+
+       prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_THEME"`
+       cat << EOF
+insmod gfxmenu
+EOF
+       themedir="`dirname "$GRUB_THEME"`"
+       for x in "$themedir"/*.pf2 "$themedir"/f/*.pf2; do
+           if [ -f "$x" ]; then
+               cat << EOF
+loadfont (\$root)`make_system_path_relative_to_its_root $x`
+EOF
+           fi
+       done
+       if [ x"`echo "$themedir"/*.jpg`" != x"$themedir/*.jpg" ] || [ x"`echo "$themedir"/*.jpeg`" != x"$themedir/*.jpeg" ]; then
+           cat << EOF
+insmod jpeg
+EOF
+       fi
+       if [ x"`echo "$themedir"/*.png`" != x"$themedir/*.png" ]; then
+           cat << EOF
+insmod png
+EOF
+       fi
+       if [ x"`echo "$themedir"/*.tga`" != x"$themedir/*.tga" ]; then
+           cat << EOF
+insmod tga
+EOF
+       fi
+           
+       cat << EOF
+set theme=(\$root)`make_system_path_relative_to_its_root $GRUB_THEME`
+export theme
+EOF
+    elif [ "x$GRUB_BACKGROUND" != x ] && [ -f "$GRUB_BACKGROUND" ] \
+           && is_path_readable_by_grub "$GRUB_BACKGROUND"; then
+       gettext_printf "Found background: %s\n" "$GRUB_BACKGROUND" >&2
+       case "$GRUB_BACKGROUND" in 
+           *.png)         reader=png ;;
+           *.tga)         reader=tga ;;
+           *.jpg|*.jpeg)  reader=jpeg ;;
+           *)             gettext "Unsupported image format" >&2; echo >&2; exit 1 ;;
+       esac
+       prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_BACKGROUND"`
+       cat << EOF
+insmod $reader
+background_image -m stretch `make_system_path_relative_to_its_root "$GRUB_BACKGROUND"`
+EOF
+    fi
+fi
+
+make_timeout ()
+{
+    cat << EOF
+if [ "\${recordfail}" = 1 ] ; then
+  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
+else
+EOF
+    if [ "x${3}" != "x" ] ; then
+       timeout="${2}"
+       style="${3}"
+    elif [ "x${1}" != "x" ] && \
+        ([ "$quick_boot" = 1 ] || [ "x${1}" != "x0" ]) ; then
+       # Handle the deprecated GRUB_HIDDEN_TIMEOUT scheme.
+       timeout="${1}"
+       if [ "x${2}" != "x0" ] ; then
+           grub_warn "$(gettext "Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.")"
+       fi
+       if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
+           style="hidden"
+           verbose=
+       else
+           style="countdown"
+           verbose=" --verbose"
+       fi
+    else
+       # No hidden timeout, so treat as GRUB_TIMEOUT_STYLE=menu
+       timeout="${2}"
+       style="menu"
+    fi
+    cat << EOF
+  if [ x\$feature_timeout_style = xy ] ; then
+    set timeout_style=${style}
+    set timeout=${timeout}
+EOF
+    if [ "x${style}" = "xmenu" ] ; then
+       cat << EOF
+  # Fallback normal timeout code in case the timeout_style feature is
+  # unavailable.
+  else
+    set timeout=${timeout}
+EOF
+    else
+       cat << EOF
+  # Fallback hidden-timeout code in case the timeout_style feature is
+  # unavailable.
+  elif sleep${verbose} --interruptible ${timeout} ; then
+    set timeout=0
+EOF
+    fi
+    cat << EOF
+  fi
+fi
+EOF
+if [ "$recordfail_broken" = 1 ]; then
+  cat << EOF
+if [ \$grub_platform = efi ]; then
+  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
+  if [ x\$feature_timeout_style = xy ] ; then
+    set timeout_style=menu
+  fi
+fi
+EOF
+fi
+}
+
+if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
+    cat <<EOF
+if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
+EOF
+make_timeout "${GRUB_HIDDEN_TIMEOUT_BUTTON}" "${GRUB_TIMEOUT_BUTTON}" "${GRUB_TIMEOUT_STYLE_BUTTON}"
+echo else
+make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}" "${GRUB_TIMEOUT_STYLE}"
+echo fi
+else
+make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}" "${GRUB_TIMEOUT_STYLE}"
+fi
+
+if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ] && [ "x$GRUB_BUTTON_CMOS_CLEAN" = "xyes" ]; then
+    cat <<EOF
+cmosclean $GRUB_BUTTON_CMOS_ADDRESS
+EOF
+fi
+
+# Play an initial tune
+if [ "x${GRUB_INIT_TUNE}" != "x" ] ; then
+  echo "play ${GRUB_INIT_TUNE}"
+fi
+
+if [ "x${GRUB_BADRAM}" != "x" ] ; then
+  echo "badram ${GRUB_BADRAM}"
+fi
diff --git a/grub.d/05_debian_theme b/grub.d/05_debian_theme
new file mode 100755 (executable)
index 0000000..786888d
--- /dev/null
@@ -0,0 +1,197 @@
+#!/bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2010  Alexander Kurtz <kurtz.alex@googlemail.com>
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+
+# Include the GRUB helper library for grub-mkconfig.
+. /usr/share/grub/grub-mkconfig_lib
+
+# We want to work in /boot/grub/ only.
+test -d /boot/grub; cd /boot/grub
+
+# Set the location of a possibly necessary cache file for the background image.
+# NOTE: This MUST BE A DOTFILE to avoid confusing it with user-defined images.
+BACKGROUND_CACHE=".background_cache"
+
+set_default_theme(){
+       case $GRUB_DISTRIBUTOR in
+               Tanglu|Ubuntu|Kubuntu)
+                       # Set a monochromatic theme for Tanglu/Ubuntu.
+                       echo "${1}set menu_color_normal=white/black"
+                       echo "${1}set menu_color_highlight=black/light-gray"
+
+                       if [ -e /usr/share/plymouth/themes/default.grub ]; then
+                               sed "s/^/${1}/" /usr/share/plymouth/themes/default.grub
+                       fi
+                       # For plymouth backward compatibility. Can be removed
+                       # after xenial.
+                       if [ -e /lib/plymouth/themes/default.grub ]; then
+                               sed "s/^/${1}/" /lib/plymouth/themes/default.grub
+                       fi
+                       ;;
+               *)
+                       # Set the traditional Debian blue theme.
+                       echo "${1}set menu_color_normal=cyan/blue"
+                       echo "${1}set menu_color_highlight=white/blue"
+                       ;;
+       esac
+}
+
+module_available(){
+       local module
+       for module in "${1}.mod" */"${1}.mod"; do
+               if [ -f "${module}" ]; then
+                       return 0
+               fi
+       done
+       return 1
+}
+
+set_background_image(){
+       # Step #1: Search all available output modes ...
+       local output
+       for output in ${GRUB_TERMINAL_OUTPUT}; do
+               if [ "x$output" = "xgfxterm" ]; then
+                       break
+               fi
+       done
+
+       # ... and check if we are able to display a background image at all.
+       if ! [ "x${output}" = "xgfxterm" ]; then
+               return 1
+       fi
+
+       # Step #2: Check if the specified background image exists.
+       if ! [ -f "${1}" ]; then
+               return 2
+       fi
+
+       # Step #3: Search the correct GRUB module for our background image.
+       local reader
+       case "${1}" in
+               *.jpg|*.JPG|*.jpeg|*.JPEG) reader="jpeg";;
+               *.png|*.PNG) reader="png";;
+               *.tga|*.TGA) reader="tga";;
+               *) return 3;; # Unknown image type.
+       esac
+
+       # Step #4: Check if the necessary GRUB module is available.
+       if ! module_available "${reader}"; then
+               return 4
+       fi
+
+       # Step #5: Check if GRUB can read the background image directly.
+       # If so, we can remove the cache file (if any). Otherwise the background
+       # image needs to be cached under /boot/grub/.
+       if is_path_readable_by_grub "${1}"; then
+               rm --force "${BACKGROUND_CACHE}.jpeg" \
+                       "${BACKGROUND_CACHE}.png" "${BACKGROUND_CACHE}.tga"
+       elif cp "${1}" "${BACKGROUND_CACHE}.${reader}"; then
+               set -- "${BACKGROUND_CACHE}.${reader}" "${2}" "${3}"
+       else
+               return 5
+       fi
+
+       # Step #6: Prepare GRUB to read the background image.
+       if ! prepare_grub_to_access_device "`${grub_probe} --target=device "${1}"`"; then
+               return 6
+       fi
+
+       # Step #7: Everything went fine, print out a message to stderr ...
+       echo "Found background image: ${1}" >&2
+
+       # ... and write our configuration snippet to stdout. Use the colors
+       # desktop-base specified. If we're using a user-defined background, use
+       # the default colors since we've got no idea how the image looks like.
+       # If loading the background image fails, use the default theme.
+       echo "insmod ${reader}"
+       echo "if background_image `make_system_path_relative_to_its_root "${1}"`; then"
+       if [ -n "${2}" ]; then
+               echo "  set color_normal=${2}"
+       fi
+       if [ -n "${3}" ]; then
+               echo "  set color_highlight=${3}"
+       fi
+       if [ -z "${2}" ] && [ -z "${3}" ]; then
+               echo "  true"
+       fi
+       echo "else"
+       set_default_theme "  "
+       echo "fi"
+}
+
+# Earlier versions of grub-pc copied the default background image to /boot/grub
+# during postinst. Remove those obsolete images if they haven't been touched by
+# the user. They are still available under /usr/share/images/desktop-base/ if
+# desktop-base is installed.
+while read checksum background; do
+       if [ -f "${background}" ] && [ "x`sha1sum "${background}"`" = "x${checksum}  ${background}" ]; then
+               echo "Removing old background image: ${background}" >&2
+               rm "${background}"
+       fi
+done <<EOF
+648ee65dd0c157a69b019a5372cbcfea4fc754a5  debian-blueish-wallpaper-640x480.png
+0431e97a6c661084c59676c4baeeb8c2f602edb8  debian-blueish-wallpaper-640x480.png
+968ecf6696c5638cfe80e8e70aba239526270864  debian-blueish-wallpaper-640x480.tga
+11143e8c92a073401de0b0fd42d0c052af4ccd9b  moreblue-orbit-grub.png
+d00d5e505ab63f2d53fa880bfac447e2d3bb197c  moreblue-orbit-grub.png
+f5b12c1009ec0a3b029185f6b66cd0d7e5611019  moreblue-orbit-grub.png
+EOF
+
+# Include the configuration of desktop-base if available.
+if [ -f "/usr/share/desktop-base/grub_background.sh" ]; then
+       . "/usr/share/desktop-base/grub_background.sh"
+fi
+
+# First check whether the user has specified a background image explicitly.
+# If so, try to use it. Don't try the other possibilities in that case
+# (#608263).
+if [ -n "${GRUB_BACKGROUND+x}" ]; then
+       set_background_image "${GRUB_BACKGROUND}" || set_default_theme
+       exit 0
+fi
+
+# Next search for pictures the user put into /boot/grub/ and use the first one.
+for background in *.jpg *.JPG *.jpeg *.JPEG *.png *.PNG *.tga *.TGA; do
+       if set_background_image "${background}"; then
+               exit 0
+       fi
+done
+
+# Next try to use the background image and colors specified by desktop-base.
+if set_background_image "${WALLPAPER}" "${COLOR_NORMAL}" "${COLOR_HIGHLIGHT}"; then
+       exit 0
+fi
+
+# If we haven't found a background image yet, use the default from desktop-base.
+case $GRUB_DISTRIBUTOR in
+       Ubuntu|Kubuntu)
+               ;;
+       Tanglu)
+               if set_background_image "/usr/share/images/grub/grub.png"; then
+                       exit 0
+               fi
+               ;;
+       *)
+               if set_background_image "/usr/share/images/desktop-base/desktop-grub.png"; then
+                       exit 0
+               fi
+               ;;
+esac
+
+# Finally, if all of the above fails, use the default theme.
+set_default_theme
diff --git a/grub.d/10_linux b/grub.d/10_linux
new file mode 100755 (executable)
index 0000000..907a514
--- /dev/null
@@ -0,0 +1,416 @@
+#! /bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2006,2007,2008,2009,2010  Free Software Foundation, Inc.
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+
+prefix="/usr"
+exec_prefix="/usr"
+datarootdir="/usr/share"
+ubuntu_recovery="0"
+quiet_boot="0"
+quick_boot="0"
+gfxpayload_dynamic="0"
+vt_handoff="0"
+
+. "$pkgdatadir/grub-mkconfig_lib"
+
+export TEXTDOMAIN=grub
+export TEXTDOMAINDIR="${datarootdir}/locale"
+
+CLASS="--class gnu-linux --class gnu --class os"
+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart"
+
+if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
+  OS=GNU/Linux
+else
+  case ${GRUB_DISTRIBUTOR} in
+    Ubuntu|Kubuntu)
+      OS="${GRUB_DISTRIBUTOR}"
+      ;;
+    *)
+      OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+      ;;
+  esac
+  CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
+fi
+
+# loop-AES arranges things so that /dev/loop/X can be our root device, but
+# the initrds that Linux uses don't like that.
+case ${GRUB_DEVICE} in
+  /dev/loop/*|/dev/loop[0-9])
+    GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
+    # We can't cope with devices loop-mounted from files here.
+    case ${GRUB_DEVICE} in
+      /dev/*) ;;
+      *) exit 0 ;;
+    esac
+  ;;
+esac
+
+# Default to disabling partition uuid support to maintian compatibility with
+# older kernels.
+GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true}
+
+# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter
+# and mounting btrfs requires user space scanning, so force UUID in this case.
+if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \
+    || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
+       && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \
+    || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
+       && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \
+    || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then
+  LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \
+    || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then
+  LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID}
+else
+  LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
+fi
+
+case x"$GRUB_FS" in
+    xbtrfs)
+       rootsubvol="`make_system_path_relative_to_its_root /`"
+       rootsubvol="${rootsubvol#/}"
+       if [ "x${rootsubvol}" != x ]; then
+           GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
+       fi;;
+    xzfs)
+       rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
+       bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
+       LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
+       ;;
+esac
+
+title_correction_code=
+
+if [ -x /lib/recovery-mode/recovery-menu ]; then
+    GRUB_CMDLINE_LINUX_RECOVERY=recovery
+else
+    GRUB_CMDLINE_LINUX_RECOVERY=single
+fi
+if [ "$ubuntu_recovery" = 1 ]; then
+    GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset"
+fi
+
+if [ "$vt_handoff" = 1 ]; then
+  for word in $GRUB_CMDLINE_LINUX_DEFAULT; do
+    if [ "$word" = splash ]; then
+      GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \$vt_handoff"
+    fi
+  done
+fi
+
+linux_entry ()
+{
+  os="$1"
+  version="$2"
+  type="$3"
+  args="$4"
+
+  if [ -z "$boot_device_id" ]; then
+      boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
+  fi
+  if [ x$type != xsimple ] ; then
+      case $type in
+         recovery)
+             title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;;
+         init-*)
+             title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "${type#init-}")" ;;
+         *)
+             title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
+      esac
+      if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
+         replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
+         quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
+         title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
+         grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
+      fi
+      echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
+  else
+      echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
+  fi      
+  if [ "$quick_boot" = 1 ]; then
+      echo "   recordfail" | sed "s/^/$submenu_indentation/"
+  fi
+  if [ x$type != xrecovery ] ; then
+      save_default_entry | grub_add_tab
+  fi
+
+  # Use ELILO's generic "efifb" when it's known to be available.
+  # FIXME: We need an interface to select vesafb in case efifb can't be used.
+  if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then
+      echo "   load_video" | sed "s/^/$submenu_indentation/"
+  else
+      if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
+         echo "        load_video" | sed "s/^/$submenu_indentation/"
+      fi
+  fi
+  if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \
+     ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then
+      echo "   gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/"
+  fi
+
+  echo "       insmod gzio" | sed "s/^/$submenu_indentation/"
+  echo "       if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/$submenu_indentation/"
+
+  if [ x$dirname = x/ ]; then
+    if [ -z "${prepare_root_cache}" ]; then
+      prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | grub_add_tab)"
+    fi
+    printf '%s\n' "${prepare_root_cache}" | sed "s/^/$submenu_indentation/"
+  else
+    if [ -z "${prepare_boot_cache}" ]; then
+      prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)"
+    fi
+    printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
+  fi
+  if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
+    message="$(gettext_printf "Loading Linux %s ..." ${version})"
+    sed "s/^/$submenu_indentation/" << EOF
+       echo    '$(echo "$message" | grub_quote)'
+EOF
+  fi
+  if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then
+    sed "s/^/$submenu_indentation/" << EOF
+       linux   ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}
+EOF
+  else
+    sed "s/^/$submenu_indentation/" << EOF
+       linux   ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
+EOF
+  fi
+  if test -n "${initrd}" ; then
+    # TRANSLATORS: ramdisk isn't identifier. Should be translated.
+    if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
+      message="$(gettext_printf "Loading initial ramdisk ...")"
+      sed "s/^/$submenu_indentation/" << EOF
+       echo    '$(echo "$message" | grub_quote)'
+EOF
+    fi
+    initrd_path=
+    for i in ${initrd}; do
+      initrd_path="${initrd_path} ${rel_dirname}/${i}"
+    done
+    sed "s/^/$submenu_indentation/" << EOF
+       initrd  $(echo $initrd_path)
+EOF
+  fi
+  sed "s/^/$submenu_indentation/" << EOF
+}
+EOF
+}
+
+machine=`uname -m`
+case "x$machine" in
+    xi?86 | xx86_64)
+       list=
+       for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
+           if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
+       done ;;
+    *) 
+       list=
+       for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
+                  if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
+       done ;;
+esac
+
+case "$machine" in
+    i?86) GENKERNEL_ARCH="x86" ;;
+    mips|mips64) GENKERNEL_ARCH="mips" ;;
+    mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
+    arm*) GENKERNEL_ARCH="arm" ;;
+    *) GENKERNEL_ARCH="$machine" ;;
+esac
+
+prepare_boot_cache=
+prepare_root_cache=
+boot_device_id=
+title_correction_code=
+
+cat << 'EOF'
+function gfxmode {
+       set gfxpayload="${1}"
+EOF
+if [ "$vt_handoff" = 1 ]; then
+  cat << 'EOF'
+       if [ "${1}" = "keep" ]; then
+               set vt_handoff=vt.handoff=7
+       else
+               set vt_handoff=
+       fi
+EOF
+fi
+cat << EOF
+}
+EOF
+
+# Use ELILO's generic "efifb" when it's known to be available.
+# FIXME: We need an interface to select vesafb in case efifb can't be used.
+if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then
+  echo "set linux_gfx_mode=$GRUB_GFXPAYLOAD_LINUX"
+else
+  cat << EOF
+if [ "\${recordfail}" != 1 ]; then
+  if [ -e \${prefix}/gfxblacklist.txt ]; then
+    if hwmatch \${prefix}/gfxblacklist.txt 3; then
+      if [ \${match} = 0 ]; then
+        set linux_gfx_mode=keep
+      else
+        set linux_gfx_mode=text
+      fi
+    else
+      set linux_gfx_mode=text
+    fi
+  else
+    set linux_gfx_mode=keep
+  fi
+else
+  set linux_gfx_mode=text
+fi
+EOF
+fi
+cat << EOF
+export linux_gfx_mode
+EOF
+
+# Extra indentation to add to menu entries in a submenu. We're not in a submenu
+# yet, so it's empty. In a submenu it will be equal to '\t' (one tab).
+submenu_indentation=""
+
+is_top_level=true
+while [ "x$list" != "x" ] ; do
+  linux=`version_find_latest $list`
+  case $linux in
+    *.efi.signed)
+      # We handle these in linux_entry.
+      list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
+      continue
+      ;;
+  esac
+  gettext_printf "Found linux image: %s\n" "$linux" >&2
+  basename=`basename $linux`
+  dirname=`dirname $linux`
+  rel_dirname=`make_system_path_relative_to_its_root $dirname`
+  version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
+  alt_version=`echo $version | sed -e "s,\.old$,,g"`
+  linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+
+  initrd_early=
+  for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \
+          ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do
+    if test -e "${dirname}/${i}" ; then
+      initrd_early="${initrd_early} ${i}"
+    fi
+  done
+
+  initrd_real=
+  for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
+          "initrd-${version}" "initramfs-${version}.img" \
+          "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
+          "initrd-${alt_version}" "initramfs-${alt_version}.img" \
+          "initramfs-genkernel-${version}" \
+          "initramfs-genkernel-${alt_version}" \
+          "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
+          "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
+    if test -e "${dirname}/${i}" ; then
+      initrd_real="${i}"
+      break
+    fi
+  done
+
+  initrd=
+  if test -n "${initrd_early}" || test -n "${initrd_real}"; then
+    initrd="${initrd_early} ${initrd_real}"
+
+    initrd_display=
+    for i in ${initrd}; do
+      initrd_display="${initrd_display} ${dirname}/${i}"
+    done
+    gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2
+  fi
+
+  config=
+  for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
+    if test -e "${i}" ; then
+      config="${i}"
+      break
+    fi
+  done
+
+  initramfs=
+  if test -n "${config}" ; then
+      initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
+  fi
+
+  if test -z "${initramfs}" && test -z "${initrd_real}" ; then
+    # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs.  Since there's
+    # no initrd or builtin initramfs, it can't work here.
+    if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \
+       || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then
+
+       linux_root_device_thisversion=${GRUB_DEVICE}
+    else
+       linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID}
+    fi
+  fi
+
+  # The GRUB_DISABLE_SUBMENU option used to be different than others since it was
+  # mentioned in the documentation that has to be set to 'y' instead of 'true' to
+  # enable it. This caused a lot of confusion to users that set the option to 'y',
+  # 'yes' or 'true'. This was fixed but all of these values must be supported now.
+  if [ "x${GRUB_DISABLE_SUBMENU}" = xyes ] || [ "x${GRUB_DISABLE_SUBMENU}" = xy ]; then
+    GRUB_DISABLE_SUBMENU="true"
+  fi
+
+  if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
+    linux_entry "${OS}" "${version}" simple \
+    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+
+    submenu_indentation="$grub_tab"
+    
+    if [ -z "$boot_device_id" ]; then
+       boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
+    fi
+    # TRANSLATORS: %s is replaced with an OS name
+    echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
+    is_top_level=false
+  fi
+
+  linux_entry "${OS}" "${version}" advanced \
+              "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+  for supported_init in ${SUPPORTED_INITS}; do
+    init_path="${supported_init#*:}"
+    if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then
+      linux_entry "${OS}" "${version}" "init-${supported_init%%:*}" \
+                 "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}"
+    fi
+  done
+  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
+    linux_entry "${OS}" "${version}" recovery \
+                "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
+  fi
+
+  list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
+done
+
+# If at least one kernel was found, then we need to
+# add a closing '}' for the submenu command.
+if [ x"$is_top_level" != xtrue ]; then
+  echo '}'
+fi
+
+echo "$title_correction_code"
diff --git a/grub.d/20_linux_xen b/grub.d/20_linux_xen
new file mode 100755 (executable)
index 0000000..3a27fc6
--- /dev/null
@@ -0,0 +1,379 @@
+#! /bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2006,2007,2008,2009,2010  Free Software Foundation, Inc.
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+
+prefix="/usr"
+exec_prefix="/usr"
+datarootdir="/usr/share"
+
+. "$pkgdatadir/grub-mkconfig_lib"
+
+export TEXTDOMAIN=grub
+export TEXTDOMAINDIR="${datarootdir}/locale"
+
+CLASS="--class gnu-linux --class gnu --class os --class xen"
+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart"
+
+if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
+  OS=GNU/Linux
+else
+  OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+  CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
+fi
+
+# loop-AES arranges things so that /dev/loop/X can be our root device, but
+# the initrds that Linux uses don't like that.
+case ${GRUB_DEVICE} in
+  /dev/loop/*|/dev/loop[0-9])
+    GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
+    # We can't cope with devices loop-mounted from files here.
+    case ${GRUB_DEVICE} in
+      /dev/*) ;;
+      *) exit 0 ;;
+    esac
+  ;;
+esac
+
+# Default to disabling partition uuid support to maintian compatibility with
+# older kernels.
+GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true}
+
+# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter
+# and mounting btrfs requires user space scanning, so force UUID in this case.
+if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \
+    || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
+       && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \
+    || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
+       && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \
+    || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then
+  LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \
+    || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then
+  LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID}
+else
+  LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
+fi
+
+# Allow overriding GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT.
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE}" ]; then
+  GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX_XEN_REPLACE}"
+fi
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}" ]; then
+  GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}"
+fi
+
+case x"$GRUB_FS" in
+    xbtrfs)
+       rootsubvol="`make_system_path_relative_to_its_root /`"
+       rootsubvol="${rootsubvol#/}"
+       if [ "x${rootsubvol}" != x ]; then
+           GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
+       fi;;
+    xzfs)
+       rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
+       bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
+       LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
+       ;;
+esac
+
+title_correction_code=
+
+linux_entry ()
+{
+  linux_entry_xsm "$@" false
+  linux_entry_xsm "$@" true
+}
+linux_entry_xsm ()
+{
+  os="$1"
+  version="$2"
+  xen_version="$3"
+  type="$4"
+  args="$5"
+  xen_args="$6"
+  xsm="$7"
+  # If user wants to enable XSM support, make sure there's
+  # corresponding policy file.
+  if ${xsm} ; then
+      xenpolicy="xenpolicy-$xen_version"
+      if test ! -e "${xen_dirname}/${xenpolicy}" ; then
+         return
+      fi
+      xen_args="$xen_args flask=enforcing"
+      xen_version="$(gettext_printf "%s (XSM enabled)" "$xen_version")"
+      # xen_version is used for messages only; actual file is xen_basename
+  fi
+  if [ -z "$boot_device_id" ]; then
+      boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
+  fi
+  if [ x$type != xsimple ] ; then
+      if [ x$type = xrecovery ] ; then
+         title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
+      elif [ "${type#init-}" != "$type" ] ; then
+         title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")"
+      else
+         title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")"
+      fi
+      replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
+      if [ x"Xen ${xen_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
+         quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
+         title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
+         grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
+      fi
+      echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
+  else
+      title="$(gettext_printf "%s, with Xen hypervisor" "${os}")"
+      echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
+  fi
+  if [ x$type != xrecovery ] ; then
+      save_default_entry | grub_add_tab | sed "s/^/$submenu_indentation/"
+  fi
+
+  if [ -z "${prepare_boot_cache}" ]; then
+    prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)"
+  fi
+  printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
+  xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})"
+  lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
+  sed "s/^/$submenu_indentation/" << EOF
+       echo    '$(echo "$xmessage" | grub_quote)'
+        if [ "\$grub_platform" = "pc" -o "\$grub_platform" = "" ]; then
+            xen_rm_opts=
+        else
+            xen_rm_opts="no-real-mode edd=off"
+        fi
+       ${xen_loader}   ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
+       echo    '$(echo "$lmessage" | grub_quote)'
+       ${module_loader}        ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
+EOF
+  if test -n "${initrd}" ; then
+    # TRANSLATORS: ramdisk isn't identifier. Should be translated.
+    message="$(gettext_printf "Loading initial ramdisk ...")"
+    initrd_path=
+    for i in ${initrd}; do
+       initrd_path="${initrd_path} ${rel_dirname}/${i}"
+    done
+    sed "s/^/$submenu_indentation/" << EOF
+       echo    '$(echo "$message" | grub_quote)'
+       ${module_loader}        --nounzip   $(echo $initrd_path)
+EOF
+  fi
+  if ${xsm} && test -n "${xenpolicy}" ; then
+    message="$(gettext_printf "Loading XSM policy ...")"
+    sed "s/^/$submenu_indentation/" << EOF
+       echo    '$(echo "$message" | grub_quote)'
+       ${module_loader}     ${rel_dirname}/${xenpolicy}
+EOF
+  fi
+  sed "s/^/$submenu_indentation/" << EOF
+}
+EOF
+}
+
+linux_list=
+for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
+    if grub_file_is_not_garbage "$i"; then
+       basename=$(basename $i)
+       version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
+       dirname=$(dirname $i)
+       config=
+       for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
+           if test -e "${j}" ; then
+               config="${j}"
+               break
+           fi
+       done
+        if (grep -qx "CONFIG_XEN_DOM0=y" "${config}" 2> /dev/null || grep -qx "CONFIG_XEN_PRIVILEGED_GUEST=y" "${config}" 2> /dev/null); then linux_list="$linux_list $i" ; fi
+    fi
+done
+if [ "x${linux_list}" = "x" ] ; then
+    exit 0
+fi
+
+file_is_not_xen_garbage () {
+    case "$1" in
+       */xen-syms-*)
+           return 1;;
+       */xenpolicy-*)
+           return 1;;
+       */*.config)
+           return 1;;
+       *)
+           return 0;;
+    esac
+}
+
+xen_list=
+for i in /boot/xen*; do
+    if grub_file_is_not_garbage "$i" && file_is_not_xen_garbage "$i" ; then xen_list="$xen_list $i" ; fi
+done
+prepare_boot_cache=
+boot_device_id=
+
+title_correction_code=
+
+machine=`uname -m`
+
+case "$machine" in
+    i?86) GENKERNEL_ARCH="x86" ;;
+    mips|mips64) GENKERNEL_ARCH="mips" ;;
+    mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
+    arm*) GENKERNEL_ARCH="arm" ;;
+    *) GENKERNEL_ARCH="$machine" ;;
+esac
+
+# Extra indentation to add to menu entries in a submenu. We're not in a submenu
+# yet, so it's empty. In a submenu it will be equal to '\t' (one tab).
+submenu_indentation=""
+
+is_top_level=true
+
+while [ "x${xen_list}" != "x" ] ; do
+    list="${linux_list}"
+    current_xen=`version_find_latest $xen_list`
+    xen_basename=`basename ${current_xen}`
+    xen_dirname=`dirname ${current_xen}`
+    rel_xen_dirname=`make_system_path_relative_to_its_root $xen_dirname`
+    xen_version=`echo $xen_basename | sed -e "s,.gz$,,g;s,^xen-,,g"`
+    if [ -z "$boot_device_id" ]; then
+       boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
+    fi
+    if [ "x$is_top_level" != xtrue ]; then
+       echo "  submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {"
+    fi
+    if ($grub_file --is-arm64-efi $current_xen); then
+       xen_loader="xen_hypervisor"
+       module_loader="xen_module"
+    else
+       if ($grub_file --is-x86-multiboot2 $current_xen); then
+           xen_loader="multiboot2"
+           module_loader="module2"
+       else
+           xen_loader="multiboot"
+           module_loader="module"
+        fi
+    fi
+
+    initrd_early=
+    for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \
+             ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do
+       if test -e "${xen_dirname}/${i}" ; then
+          initrd_early="${initrd_early} ${i}"
+       fi
+    done
+
+    while [ "x$list" != "x" ] ; do
+       linux=`version_find_latest $list`
+       gettext_printf "Found linux image: %s\n" "$linux" >&2
+       basename=`basename $linux`
+       dirname=`dirname $linux`
+       rel_dirname=`make_system_path_relative_to_its_root $dirname`
+       version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
+       alt_version=`echo $version | sed -e "s,\.old$,,g"`
+       linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+
+       initrd_real=
+       for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
+          "initrd-${version}" "initramfs-${version}.img" \
+          "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
+          "initrd-${alt_version}" "initramfs-${alt_version}.img" \
+          "initramfs-genkernel-${version}" \
+          "initramfs-genkernel-${alt_version}" \
+          "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
+          "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do
+           if test -e "${dirname}/${i}" ; then
+               initrd_real="$i"
+               break
+           fi
+       done
+
+       initrd=
+       if test -n "${initrd_early}" || test -n "${initrd_real}"; then
+           initrd="${initrd_early} ${initrd_real}"
+
+           initrd_display=
+           for i in ${initrd}; do
+               initrd_display="${initrd_display} ${dirname}/${i}"
+           done
+           gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2
+       fi
+
+       if test -z "${initrd_real}"; then
+    # "UUID=" magic is parsed by initrds.  Since there's no initrd, it can't work here.
+           if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \
+               || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then
+
+               linux_root_device_thisversion=${GRUB_DEVICE}
+           else
+               linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID}
+           fi
+       fi
+
+       # The GRUB_DISABLE_SUBMENU option used to be different than others since it was
+       # mentioned in the documentation that has to be set to 'y' instead of 'true' to
+       # enable it. This caused a lot of confusion to users that set the option to 'y',
+       # 'yes' or 'true'. This was fixed but all of these values must be supported now.
+       if [ "x${GRUB_DISABLE_SUBMENU}" = xyes ] || [ "x${GRUB_DISABLE_SUBMENU}" = xy ]; then
+           GRUB_DISABLE_SUBMENU="true"
+       fi
+
+       if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
+           linux_entry "${OS}" "${version}" "${xen_version}" simple \
+               "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
+
+           submenu_indentation="$grub_tab$grub_tab"
+    
+           if [ -z "$boot_device_id" ]; then
+               boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
+           fi
+            # TRANSLATORS: %s is replaced with an OS name
+           echo "submenu '$(gettext_printf "Advanced options for %s (with Xen hypervisor)" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
+       echo "  submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {"
+          is_top_level=false
+       fi
+
+       linux_entry "${OS}" "${version}" "${xen_version}" advanced \
+           "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
+       for supported_init in ${SUPPORTED_INITS}; do
+           init_path="${supported_init#*:}"
+           if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then
+               linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \
+                   "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
+
+           fi
+       done
+       if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
+           linux_entry "${OS}" "${version}" "${xen_version}" recovery \
+               "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
+       fi
+
+       list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
+    done
+    if [ x"$is_top_level" != xtrue ]; then
+       echo '  }'
+    fi
+    xen_list=`echo $xen_list | tr ' ' '\n' | fgrep -vx "$current_xen" | tr '\n' ' '`
+done
+
+# If at least one kernel was found, then we need to
+# add a closing '}' for the submenu command.
+if [ x"$is_top_level" != xtrue ]; then
+  echo '}'
+fi
+
+echo "$title_correction_code"
diff --git a/grub.d/30_os-prober b/grub.d/30_os-prober
new file mode 100755 (executable)
index 0000000..dd71e5a
--- /dev/null
@@ -0,0 +1,387 @@
+#! /bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2006,2007,2008,2009  Free Software Foundation, Inc.
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+
+prefix="/usr"
+exec_prefix="/usr"
+datarootdir="/usr/share"
+quick_boot="0"
+
+export TEXTDOMAIN=grub
+export TEXTDOMAINDIR="${datarootdir}/locale"
+
+. "$pkgdatadir/grub-mkconfig_lib"
+
+found_other_os=
+
+adjust_timeout () {
+  if [ "$quick_boot" = 1 ] && [ "x${found_other_os}" != "x" ]; then
+    cat << EOF
+set timeout_style=menu
+if [ "\${timeout}" = 0 ]; then
+  set timeout=10
+fi
+EOF
+  fi
+}
+
+if ! command -v os-prober > /dev/null || ! command -v linux-boot-prober > /dev/null ; then
+  # missing os-prober and/or linux-boot-prober
+  exit 0
+fi
+
+if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
+  grub_warn "$(gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.")"
+  exit 0
+fi
+
+grub_warn "$(gettext_printf "os-prober will be executed to detect other bootable partitions.\nIts output will be used to detect bootable binaries on them and create new boot entries.")"
+
+OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
+if [ -z "${OSPROBED}" ] ; then
+  # empty os-prober output, nothing doing
+  exit 0
+fi
+
+osx_entry() {
+    found_other_os=1
+    if [ x$2 = x32 ]; then
+        # TRANSLATORS: it refers to kernel architecture (32-bit)
+       bitstr="$(gettext "(32-bit)")"
+    else
+        # TRANSLATORS: it refers to kernel architecture (64-bit)
+       bitstr="$(gettext "(64-bit)")"
+    fi
+    # TRANSLATORS: it refers on the OS residing on device %s
+    onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+        cat << EOF
+menuentry '$(echo "${LONGNAME} $bitstr $onstr" | grub_quote)' --class osx --class darwin --class os \$menuentry_id_option 'osprober-xnu-$2-$(grub_get_device_id "${DEVICE}")'  {
+EOF
+       save_default_entry | grub_add_tab
+       prepare_grub_to_access_device ${DEVICE} | grub_add_tab
+       cat << EOF
+        load_video
+        set do_resume=0
+        if [ /var/vm/sleepimage -nt10 / ]; then
+           if xnu_resume /var/vm/sleepimage; then
+             set do_resume=1
+           fi
+        fi
+        if [ \$do_resume = 0 ]; then
+           xnu_uuid ${OSXUUID} uuid
+           if [ -f /Extra/DSDT.aml ]; then
+              acpi -e /Extra/DSDT.aml
+           fi
+           if [ /kernelcache -nt /System/Library/Extensions ]; then
+              $1 /kernelcache boot-uuid=\${uuid} rd=*uuid
+           elif [ -f /System/Library/Kernels/kernel ]; then
+              $1 /System/Library/Kernels/kernel boot-uuid=\${uuid} rd=*uuid
+              xnu_kextdir /System/Library/Extensions
+           else
+              $1 /mach_kernel boot-uuid=\${uuid} rd=*uuid
+              if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
+                xnu_mkext /System/Library/Extensions.mkext
+              else
+                xnu_kextdir /System/Library/Extensions
+              fi
+           fi
+           if [ -f /Extra/Extensions.mkext ]; then
+              xnu_mkext /Extra/Extensions.mkext
+           fi
+           if [ -d /Extra/Extensions ]; then
+              xnu_kextdir /Extra/Extensions
+           fi
+           if [ -f /Extra/devprop.bin ]; then
+              xnu_devprop_load /Extra/devprop.bin
+           fi
+           if [ -f /Extra/splash.jpg ]; then
+              insmod jpeg
+              xnu_splash /Extra/splash.jpg
+           fi
+           if [ -f /Extra/splash.png ]; then
+              insmod png
+              xnu_splash /Extra/splash.png
+           fi
+           if [ -f /Extra/splash.tga ]; then
+              insmod tga
+              xnu_splash /Extra/splash.tga
+           fi
+        fi
+}
+EOF
+}
+
+used_osprober_linux_ids=
+
+wubi=
+
+for OS in ${OSPROBED} ; do
+  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
+  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
+  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
+  BOOT="`echo ${OS} | cut -d ':' -f 4`"
+  if UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`"; then
+    EXPUUID="$UUID"
+
+    if [ x"${DEVICE#*@}" != x ] ; then
+      EXPUUID="${EXPUUID}@${DEVICE#*@}"
+    fi
+
+    if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" ] && [ "x`echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b'`" != "x" ] ; then
+      echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2
+      continue
+    fi
+  fi
+
+  BTRFS="`echo ${OS} | cut -d ':' -f 5`"
+  if [ "x$BTRFS" = "xbtrfs" ]; then
+       BTRFSuuid="`echo ${OS} | cut -d ':' -f 6`"
+       BTRFSsubvol="`echo ${OS} | cut -d ':' -f 7`"
+  fi
+
+  if [ -z "${LONGNAME}" ] ; then
+    LONGNAME="${LABEL}"
+  fi
+
+  # os-prober returns text string followed by optional counter
+  CLASS="--class $(echo "${LABEL}" | LC_ALL=C sed 's,[[:digit:]]*$,,' | cut -d' ' -f1 | tr 'A-Z' 'a-z' | LC_ALL=C sed 's,[^[:alnum:]_],_,g')"
+
+  gettext_printf "Found %s on %s\n" "${LONGNAME}" "${DEVICE}" >&2
+
+  case ${BOOT} in
+    chain)
+
+      case ${LONGNAME} in
+       Windows*)
+         if [ -z "$wubi" ]; then
+           if [ -x /usr/share/lupin-support/grub-mkimage ] && \
+              /usr/share/lupin-support/grub-mkimage --test; then
+             wubi=yes
+           else
+             wubi=no
+           fi
+         fi
+         if [ "$wubi" = yes ]; then
+           echo "Skipping ${LONGNAME} on Wubi system" >&2
+           continue
+         fi
+         ;;
+      esac
+
+      found_other_os=1
+         onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+      cat << EOF
+menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' $CLASS --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' {
+EOF
+      save_default_entry | grub_add_tab
+      prepare_grub_to_access_device ${DEVICE} | grub_add_tab
+
+      if [ x"`${grub_probe} --device ${DEVICE} --target=partmap`" = xmsdos ]; then
+         cat << EOF
+       parttool \${root} hidden-
+EOF
+      fi
+
+      case ${LONGNAME} in
+       Windows\ Vista*|Windows\ 7*|Windows\ Server\ 2008*)
+       ;;
+       *)
+         cat << EOF
+       drivemap -s (hd0) \${root}
+EOF
+       ;;
+      esac
+
+      cat <<EOF
+       chainloader +1
+}
+EOF
+    ;;
+    efi)
+
+       found_other_os=1
+       EFIPATH=${DEVICE#*@}
+       DEVICE=${DEVICE%@*}
+       onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+      cat << EOF
+menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' $CLASS --class os \$menuentry_id_option 'osprober-efi-$(grub_get_device_id "${DEVICE}")' {
+EOF
+      save_default_entry | sed -e "s/^/\t/"
+      prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
+
+      cat <<EOF
+       chainloader ${EFIPATH}
+}
+EOF
+    ;;
+    linux)
+      if [ "x$BTRFS" = "xbtrfs" ]; then
+         LINUXPROBED="`linux-boot-prober btrfs ${BTRFSuuid} ${BTRFSsubvol}  2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
+      else
+         LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
+      fi
+      prepare_boot_cache=
+      boot_device_id=
+      is_top_level=true
+      title_correction_code=
+      OS="${LONGNAME}"
+
+      for LINUX in ${LINUXPROBED} ; do
+        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
+        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
+        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
+        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
+        LINITRD="`echo ${LINUX} | cut -d ':' -f 5 | tr '^' ' '`"
+        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"
+
+        if [ -z "${LLABEL}" ] ; then
+          LLABEL="${LONGNAME}"
+        fi
+
+       if [ "${LROOT}" != "${LBOOT}" ]; then
+         LKERNEL="${LKERNEL#/boot}"
+         LINITRD="${LINITRD#/boot}"
+       fi
+
+       if [ -z "${prepare_boot_cache}" ]; then
+         prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)"
+         [ "${prepare_boot_cache}" ] || continue
+       fi
+
+       found_other_os=1
+       onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+       recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true
+       counter=1
+       while echo "$used_osprober_linux_ids" | grep 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id' > /dev/null; do
+           counter=$((counter+1));
+       done
+       if [ -z "$boot_device_id" ]; then
+           boot_device_id="$(grub_get_device_id "${DEVICE}")"
+       fi
+       used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'"
+
+       # The GRUB_DISABLE_SUBMENU option used to be different than others since it was
+       # mentioned in the documentation that has to be set to 'y' instead of 'true' to
+       # enable it. This caused a lot of confusion to users that set the option to 'y',
+       # 'yes' or 'true'. This was fixed but all of these values must be supported now.
+       if [ "x${GRUB_DISABLE_SUBMENU}" = xyes ] || [ "x${GRUB_DISABLE_SUBMENU}" = xy ]; then
+           GRUB_DISABLE_SUBMENU="true"
+       fi
+
+       if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
+            cat << EOF
+menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' {
+EOF
+           save_default_entry | grub_add_tab
+           printf '%s\n' "${prepare_boot_cache}"
+           cat <<  EOF
+       linux ${LKERNEL} ${LPARAMS}
+EOF
+            if [ -n "${LINITRD}" ] ; then
+          cat << EOF
+       initrd ${LINITRD}
+EOF
+            fi
+        cat << EOF
+}
+EOF
+           echo "submenu '$(gettext_printf "Advanced options for %s" "${OS} $onstr" | grub_quote)' \$menuentry_id_option 'osprober-gnulinux-advanced-$boot_device_id' {"
+           is_top_level=false
+       fi
+       title="${LLABEL} $onstr"
+        cat << EOF
+       menuentry '$(echo "$title" | grub_quote)' --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-$LKERNEL-${recovery_params}-$boot_device_id' {
+EOF
+       save_default_entry | sed -e "s/^/$grub_tab$grub_tab/"
+       printf '%s\n' "${prepare_boot_cache}" | grub_add_tab
+       cat <<  EOF
+               linux ${LKERNEL} ${LPARAMS}
+EOF
+        if [ -n "${LINITRD}" ] ; then
+            cat << EOF
+               initrd ${LINITRD}
+EOF
+        fi
+        cat << EOF
+       }
+EOF
+       if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
+           replacement_title="$(echo "Advanced options for ${OS} $onstr" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
+           quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
+           title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
+           grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
+       fi
+      done
+      if [ x"$is_top_level" != xtrue ]; then
+         echo '}'
+      fi
+      echo "$title_correction_code"
+    ;;
+    macosx)
+      if [ "${UUID}" ]; then
+       OSXUUID="${UUID}"
+       osx_entry xnu_kernel 32
+       osx_entry xnu_kernel64 64
+      fi
+    ;;
+    hurd)
+      found_other_os=1
+      onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+      cat << EOF
+menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class hurd --class gnu --class os \$menuentry_id_option 'osprober-gnuhurd-/boot/gnumach.gz-false-$(grub_get_device_id "${DEVICE}")' {
+EOF
+      save_default_entry | grub_add_tab
+      prepare_grub_to_access_device ${DEVICE} | grub_add_tab
+      grub_device="`${grub_probe} --device ${DEVICE} --target=drive`"
+      mach_device="`echo "${grub_device}" | sed -e 's/(\(hd.*\),msdos\(.*\))/\1s\2/'`"
+      grub_fs="`${grub_probe} --device ${DEVICE} --target=fs`"
+      case "${grub_fs}" in
+       *fs)    hurd_fs="${grub_fs}" ;;
+       *)      hurd_fs="${grub_fs}fs" ;;
+      esac
+      cat << EOF
+       multiboot /boot/gnumach.gz root=device:${mach_device}
+       module /hurd/${hurd_fs}.static ${hurd_fs} --readonly \\
+                       --multiboot-command-line='\${kernel-command-line}' \\
+                       --host-priv-port='\${host-port}' \\
+                       --device-master-port='\${device-port}' \\
+                       --exec-server-task='\${exec-task}' -T typed '\${root}' \\
+                       '\$(task-create)' '\$(task-resume)'
+       module /lib/ld.so.1 exec /hurd/exec '\$(exec-task=task-create)'
+}
+EOF
+    ;;
+    minix)
+         cat << EOF
+menuentry "${LONGNAME} (on ${DEVICE}, Multiboot)" {
+EOF
+         save_default_entry | sed -e "s/^/\t/"
+         prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
+        cat << EOF
+       multiboot /boot/image_latest
+}
+EOF
+    ;;
+    *)
+      # TRANSLATORS: %s is replaced by OS name.
+      gettext_printf "%s is not yet supported by grub-mkconfig.\n" "  ${LONGNAME}" >&2
+    ;;
+  esac
+done
+
+adjust_timeout
diff --git a/grub.d/30_uefi-firmware b/grub.d/30_uefi-firmware
new file mode 100755 (executable)
index 0000000..73ce6e1
--- /dev/null
@@ -0,0 +1,44 @@
+#! /bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2020  Free Software Foundation, Inc.
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+
+prefix="/usr"
+exec_prefix="/usr"
+datarootdir="/usr/share"
+
+export TEXTDOMAIN=grub
+export TEXTDOMAINDIR="${datarootdir}/locale"
+
+. "$pkgdatadir/grub-mkconfig_lib"
+
+EFI_VARS_DIR=/sys/firmware/efi/efivars
+EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c
+OS_INDICATIONS="$EFI_VARS_DIR/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE"
+
+if [ -e "$OS_INDICATIONS" ] && \
+   [ "$(( $(printf 0x%x \'"$(cat $OS_INDICATIONS | cut -b5)"\') & 1 ))" = 1 ]; then
+  LABEL="UEFI Firmware Settings"
+
+  gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2
+
+  cat << EOF
+menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
+       fwsetup
+}
+EOF
+fi
diff --git a/grub.d/40_custom b/grub.d/40_custom
new file mode 100755 (executable)
index 0000000..48068de
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+exec tail -n +3 $0
+# This file provides an easy way to add custom menu entries.  Simply type the
+# menu entries you want to add after this comment.  Be careful not to change
+# the 'exec tail' line above.
diff --git a/grub.d/41_custom b/grub.d/41_custom
new file mode 100755 (executable)
index 0000000..a08363d
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+cat <<EOF
+if [ -f  \${config_directory}/custom.cfg ]; then
+  source \${config_directory}/custom.cfg
+elif [ -z "\${config_directory}" -a -f  \$prefix/custom.cfg ]; then
+  source \$prefix/custom.cfg
+fi
+EOF
+
diff --git a/grub.d/README b/grub.d/README
new file mode 100644 (file)
index 0000000..3ea109d
--- /dev/null
@@ -0,0 +1,11 @@
+
+All executable files in this directory are processed in shell expansion order.
+
+  00_*: Reserved for 00_header.
+  10_*: Native boot entries.
+  20_*: Third party apps (e.g. memtest86+).
+
+The number namespace in-between is configurable by system installer and/or
+administrator.  For example, you can add an entry to boot another OS as
+01_otheros, 11_otheros, etc, depending on the position you want it to occupy in
+the menu; and then adjust the default setting via /etc/default/grub.
diff --git a/gshadow b/gshadow
new file mode 100644 (file)
index 0000000..1553993
--- /dev/null
+++ b/gshadow
@@ -0,0 +1,58 @@
+root:*::
+daemon:*::frank
+bin:*::frank
+sys:*::frank
+adm:*::
+tty:*::frank
+disk:*::frank
+lp:*::frank
+mail:*::frank
+news:*::
+uucp:*::
+man:*::frank
+proxy:*::
+kmem:*::
+dialout:*::
+fax:*::
+voice:*::
+cdrom:*::
+floppy:*::
+tape:*::
+sudo:*::frank
+audio:*::frank
+dip:*::
+www-data:*::
+backup:*::
+operator:*::frank
+list:*::
+irc:*::
+src:*::
+shadow:*::
+utmp:*::frank
+video:*::frank
+sasl:*::
+plugdev:*::
+staff:*::frank
+games:*::frank
+users:*::frank
+nogroup:*::
+systemd-journal:!*::
+systemd-network:!*::
+crontab:!::frank
+input:!::
+sgx:!::
+kvm:!::
+render:!::
+netdev:!::
+ssl-cert:!::
+systemd-timesync:!*::
+messagebus:!::
+_ssh:!::
+bind:!::
+plocate:!::frank
+_chrony:!::
+postfix:!::
+postdrop:!::
+valkey:!::
+mysql:!::
+tcpdump:!::
diff --git a/gshadow- b/gshadow-
new file mode 100644 (file)
index 0000000..e54010e
--- /dev/null
+++ b/gshadow-
@@ -0,0 +1,57 @@
+root:*::
+daemon:*::frank
+bin:*::frank
+sys:*::frank
+adm:*::
+tty:*::frank
+disk:*::frank
+lp:*::frank
+mail:*::frank
+news:*::
+uucp:*::
+man:*::frank
+proxy:*::
+kmem:*::
+dialout:*::
+fax:*::
+voice:*::
+cdrom:*::
+floppy:*::
+tape:*::
+sudo:*::frank
+audio:*::frank
+dip:*::
+www-data:*::
+backup:*::
+operator:*::frank
+list:*::
+irc:*::
+src:*::
+shadow:*::
+utmp:*::frank
+video:*::frank
+sasl:*::
+plugdev:*::
+staff:*::frank
+games:*::frank
+users:*::frank
+nogroup:*::
+systemd-journal:!*::
+systemd-network:!*::
+crontab:!::frank
+input:!::
+sgx:!::
+kvm:!::
+render:!::
+netdev:!::
+ssl-cert:!::
+systemd-timesync:!*::
+messagebus:!::
+_ssh:!::
+bind:!::
+plocate:!::frank
+_chrony:!::
+postfix:!::
+postdrop:!::
+valkey:!::
+mysql:!::
diff --git a/gssapi_mech.conf b/gssapi_mech.conf
new file mode 100644 (file)
index 0000000..1de9061
--- /dev/null
@@ -0,0 +1,21 @@
+# Example /etc/gssapi_mech.conf file
+#
+# GSSAPI Mechanism Definitions
+#
+# This configuration file determines which GSS-API mechanisms
+# the gssd code should use
+#
+# NOTE:
+# The initialization function "mechglue_internal_krb5_init"
+# is used for the MIT krb5 gssapi mechanism.  This special
+# function name indicates that an internal function should
+# be used to determine the entry points for the MIT gssapi
+# mechanism funtions.
+#
+# library                               initialization function
+# ================================     ==========================
+# The MIT K5 gssapi library, use special function for initialization.
+libgssapi_krb5.so.2                    mechglue_internal_krb5_init
+#
+# The SPKM3 gssapi library function.  Use the function spkm3_gss_initialize.
+# /usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so    spkm3_gss_initialize
diff --git a/host.conf b/host.conf
new file mode 100644 (file)
index 0000000..d1a59f7
--- /dev/null
+++ b/host.conf
@@ -0,0 +1 @@
+multi on
diff --git a/hostname b/hostname
new file mode 100644 (file)
index 0000000..4fcdea0
--- /dev/null
+++ b/hostname
@@ -0,0 +1 @@
+dev-mail-fbrehm
diff --git a/hosts b/hosts
new file mode 100644 (file)
index 0000000..62e4fc4
--- /dev/null
+++ b/hosts
@@ -0,0 +1,7 @@
+127.0.0.1      localhost
+217.66.51.28   dev-mail-fbrehm.pixelpark.com   dev-mail-fbrehm
+
+# The following lines are desirable for IPv6 capable hosts
+::1     localhost ip6-localhost ip6-loopback
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
diff --git a/hosts.allow b/hosts.allow
new file mode 100644 (file)
index 0000000..4c12673
--- /dev/null
@@ -0,0 +1,10 @@
+# /etc/hosts.allow: list of hosts that are allowed to access the system.
+#                   See the manual pages hosts_access(5) and hosts_options(5).
+#
+# Example:    ALL: LOCAL @some_netgroup
+#             ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
+#
+# If you're going to protect the portmapper use the name "rpcbind" for the
+# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
+#
+
diff --git a/hosts.deny b/hosts.deny
new file mode 100644 (file)
index 0000000..f393e64
--- /dev/null
@@ -0,0 +1,17 @@
+# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
+#                  See the manual pages hosts_access(5) and hosts_options(5).
+#
+# Example:    ALL: some.host.name, .some.domain
+#             ALL EXCEPT in.fingerd: other.host.name, .other.domain
+#
+# If you're going to protect the portmapper use the name "rpcbind" for the
+# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
+#
+# The PARANOID wildcard matches any host whose name does not match its
+# address.
+#
+# You may wish to enable this to ensure any programs that don't
+# validate looked up hostnames still leave understandable logs. In past
+# versions of Debian this has been the default.
+# ALL: PARANOID
+
diff --git a/init.d/apache-htcacheclean b/init.d/apache-htcacheclean
new file mode 100755 (executable)
index 0000000..c7f7f94
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
+if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
+    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
+fi
+### BEGIN INIT INFO
+# Provides:          apache-htcacheclean
+# Required-Start:    $remote_fs $syslog
+# Required-Stop:     $remote_fs $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Cache cleaner process for Apache2 web server
+# Description:       Start the htcacheclean helper
+#  This script will start htcacheclean which will periodically scan the
+#  cache directory of Apache2's mod_cache_disk and remove outdated files.
+### END INIT INFO
+
+DESC="Apache htcacheclean"
+DAEMON=/usr/bin/htcacheclean
+
+NAME="${0##*/}"
+NAME="${NAME##[KS][0-9][0-9]}"
+DIR_SUFFIX="${NAME##apache-htcacheclean}"
+APACHE_CONFDIR="${APACHE_CONFDIR:=/etc/apache2$DIR_SUFFIX}"
+RUN_USER=$(. $APACHE_CONFDIR/envvars > /dev/null && echo "$APACHE_RUN_USER")
+
+# Default values. Edit /etc/default/apache-htcacheclean$DIR_SUFFIX to change these
+HTCACHECLEAN_SIZE="${HTCACHECLEAN_SIZE:=300M}"
+HTCACHECLEAN_DAEMON_INTERVAL="${HTCACHECLEAN_DAEMON_INTERVAL:=120}"
+HTCACHECLEAN_PATH="${HTCACHECLEAN_PATH:=/var/cache/apache2$DIR_SUFFIX/mod_cache_disk}"
+HTCACHECLEAN_OPTIONS="${HTCACHECLEAN_OPTIONS:=-n}"
+
+# Read configuration variable file if it is present
+if [ -f /etc/default/apache-htcacheclean$DIR_SUFFIX ] ; then
+       . /etc/default/apache-htcacheclean$DIR_SUFFIX
+elif [ -f /etc/default/apache-htcacheclean ] ; then
+       . /etc/default/apache-htcacheclean
+fi
+
+PIDDIR="/var/run/apache2/$RUN_USER"
+PIDFILE="$PIDDIR/$NAME.pid"
+DAEMON_ARGS="$HTCACHECLEAN_OPTIONS \
+    -d$HTCACHECLEAN_DAEMON_INTERVAL \
+    -P$PIDFILE -i \
+    -p$HTCACHECLEAN_PATH \
+    -l$HTCACHECLEAN_SIZE"
+
+do_start_prepare () {
+       if [ ! -d "$PIDDIR" ] ; then
+               mkdir -p "$PIDDIR"
+               chown "$RUN_USER:" "$PIDDIR"
+       fi
+       if [ ! -d "$HTCACHECLEAN_PATH" ] ; then
+               echo "Directory $HTCACHECLEAN_PATH does not exist!" >&2
+               exit 2
+       fi
+}
+
+do_start_cmd_override () {
+       start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
+           -u $RUN_USER --startas $DAEMON --name htcacheclean --test > /dev/null \
+           || return 1
+       start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
+           -c $RUN_USER --startas $DAEMON --name htcacheclean -- $DAEMON_ARGS \
+           || return 2
+}
+
+do_stop_cmd_override () {
+       start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
+           -u $RUN_USER --pidfile ${PIDFILE} --name htcacheclean
+}
diff --git a/init.d/apache2 b/init.d/apache2
new file mode 100755 (executable)
index 0000000..c2959d4
--- /dev/null
@@ -0,0 +1,353 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          apache2
+# Required-Start:    $local_fs $remote_fs $network $syslog $named
+# Required-Stop:     $local_fs $remote_fs $network $syslog $named
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# X-Interactive:     true
+# Short-Description: Apache2 web server
+# Description:       Start the web server
+#  This script will start the apache2 web server.
+### END INIT INFO
+
+DESC="Apache httpd web server"
+NAME=apache2
+DAEMON=/usr/sbin/$NAME
+
+SCRIPTNAME="${0##*/}"
+SCRIPTNAME="${SCRIPTNAME##[KS][0-9][0-9]}"
+if [ -n "$APACHE_CONFDIR" ] ; then
+       if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
+               DIR_SUFFIX="${APACHE_CONFDIR##/etc/apache2-}"
+       else
+               DIR_SUFFIX=
+       fi
+elif [ "${SCRIPTNAME##apache2-}" != "$SCRIPTNAME" ] ; then
+       DIR_SUFFIX="-${SCRIPTNAME##apache2-}"
+       APACHE_CONFDIR=/etc/apache2$DIR_SUFFIX
+else
+       DIR_SUFFIX=
+       APACHE_CONFDIR=/etc/apache2
+fi
+if [ -z "$APACHE_ENVVARS" ] ; then
+       APACHE_ENVVARS=$APACHE_CONFDIR/envvars
+fi
+export APACHE_CONFDIR APACHE_ENVVARS
+
+ENV="env -i LANG=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+if [ "$APACHE_CONFDIR" != /etc/apache2 ] ; then
+       ENV="$ENV APACHE_CONFDIR=$APACHE_CONFDIR"
+fi
+if [ "$APACHE_ENVVARS" != "$APACHE_CONFDIR/envvars" ] ; then
+       ENV="$ENV APACHE_ENVVARS=$APACHE_ENVVARS"
+fi
+
+PIDFILE=$(. $APACHE_ENVVARS && echo $APACHE_PID_FILE)
+
+VERBOSE=no
+if [ -f /etc/default/rcS ]; then
+       . /etc/default/rcS
+fi
+. /lib/lsb/init-functions
+
+
+# Now, set defaults:
+APACHE2CTL="$ENV apache2ctl"
+PIDFILE=$(. $APACHE_ENVVARS && echo $APACHE_PID_FILE)
+APACHE2_INIT_MESSAGE=""
+
+CONFTEST_OUTFILE=
+cleanup() {
+       if [ -n "$CONFTEST_OUTFILE" ] ; then
+               rm -f "$CONFTEST_OUTFILE"
+       fi
+}
+trap cleanup 0  # "0" means "EXIT", but "EXIT" is not portable
+
+
+apache_conftest() {
+       [ -z "$CONFTEST_OUTFILE" ] || rm -f "$CONFTEST_OUTFILE"
+       CONFTEST_OUTFILE=$(mktemp)
+       if ! $APACHE2CTL configtest > "$CONFTEST_OUTFILE" 2>&1 ; then
+               return 1
+       else
+               rm -f "$CONFTEST_OUTFILE"
+               CONFTEST_OUTFILE=
+               return 0
+       fi
+}
+
+clear_error_msg() {
+       [ -z "$CONFTEST_OUTFILE" ] || rm -f "$CONFTEST_OUTFILE"
+       CONFTEST_OUTFILE=
+       APACHE2_INIT_MESSAGE=
+}
+
+print_error_msg() {
+       [ -z "$APACHE2_INIT_MESSAGE" ] || log_warning_msg "$APACHE2_INIT_MESSAGE"
+       if [ -n "$CONFTEST_OUTFILE" ] ; then
+               echo "Output of config test was:" >&2
+               cat "$CONFTEST_OUTFILE" >&2
+               rm -f "$CONFTEST_OUTFILE"
+               CONFTEST_OUTFILE=
+       fi
+}
+
+apache_wait_start() {
+       local STATUS=$1
+       local i=0
+
+       if [ $STATUS != 0 ] ; then
+               return $STATUS
+       fi
+       while : ; do
+               PIDTMP=$(pidofproc -p $PIDFILE $DAEMON)
+               if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then
+                       return $STATUS
+               fi
+
+               if [ $i = "20" ] ; then
+                       APACHE2_INIT_MESSAGE="The apache2$DIR_SUFFIX instance did not start within 20 seconds. Please read the log files to discover problems"
+                       return 2
+               fi
+
+               [ "$VERBOSE" != no ] && log_progress_msg "."
+               sleep 1
+               i=$(($i+1))
+       done
+}
+
+apache_wait_stop() {
+       local STATUS=$1
+       local METH=$2
+
+       if [ $STATUS != 0 ] ; then
+               return $STATUS
+       fi
+
+       PIDTMP=$(pidofproc -p $PIDFILE $DAEMON)
+       if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then
+               if [ "$METH" = "kill" ]; then
+                   killproc -p $PIDFILE $DAEMON
+               else
+                   $APACHE2CTL $METH > /dev/null 2>&1
+               fi
+
+               local i=0
+               while kill -0 "${PIDTMP:-}" 2> /dev/null;  do
+                       if [ $i = '60' ]; then
+                               STATUS=2
+                               break
+                       fi
+                       [ "$VERBOSE" != no ] && log_progress_msg "."
+                       sleep 1
+                       i=$(($i+1))
+               done
+               return $STATUS
+       else
+           return $STATUS
+       fi
+}
+
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+       # Return
+       #   0 if daemon has been started
+       #   1 if daemon was already running
+       #   2 if daemon could not be started
+
+       if pidofproc -p $PIDFILE "$DAEMON" > /dev/null 2>&1 ; then
+               return 1
+       fi
+
+       if apache_conftest ; then
+               $APACHE2CTL start
+               apache_wait_start $?
+               return $?
+       else
+               APACHE2_INIT_MESSAGE="The apache2$DIR_SUFFIX configtest failed."
+               return 2
+       fi
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+       # Return
+       #   0 if daemon has been stopped
+       #   1 if daemon was already stopped
+       #   2 if daemon could not be stopped
+       #   other if a failure occurred
+
+       # either "stop" or "graceful-stop"
+       local STOP=$1
+       # can't use pidofproc from LSB here
+       local AP_RET=0
+
+       if pidof $DAEMON > /dev/null 2>&1 ; then
+               if [ -e $PIDFILE ] && pidof $DAEMON | tr ' ' '\n' | grep -w $(cat $PIDFILE) > /dev/null 2>&1 ; then
+                       AP_RET=2
+               else
+                       AP_RET=1
+               fi
+       else
+           AP_RET=0
+       fi
+
+       # AP_RET is:
+       # 0 if Apache (whichever) is not running
+       # 1 if Apache (whichever) is running
+       # 2 if Apache from the PIDFILE is running
+
+       if [ $AP_RET = 0 ] ; then
+               return 1
+       fi
+
+       if [ $AP_RET = 2 ] && apache_conftest ; then
+               apache_wait_stop $? $STOP
+               return $?
+       else
+               if [ $AP_RET = 2 ]; then
+                                       clear_error_msg
+                       APACHE2_INIT_MESSAGE="The apache2$DIR_SUFFIX configtest failed, so we are trying to kill it manually. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now!"
+                       apache_wait_stop $? "kill"
+                       return $?
+               elif [ $AP_RET = 1 ] ; then
+                       APACHE2_INIT_MESSAGE="There are processes named 'apache2' running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand".
+                       return 2
+               fi
+       fi
+
+}
+
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+       if apache_conftest; then
+               if ! pidofproc -p $PIDFILE "$DAEMON" > /dev/null 2>&1 ; then
+                       APACHE2_INIT_MESSAGE="Apache2 is not running"
+                       return 2
+               fi
+               $APACHE2CTL graceful > /dev/null 2>&1
+               return $?
+       else
+               APACHE2_INIT_MESSAGE="The apache2$DIR_SUFFIX configtest failed. Not doing anything."
+               return 2
+       fi
+}
+
+
+# Sanity checks. They need to occur after function declarations
+[ -x $DAEMON ] || exit 0
+
+if [ ! -x $DAEMON ] ; then
+       echo "No apache-bin package installed"
+       exit 0
+fi
+
+if [ -z "$PIDFILE" ] ; then
+       echo ERROR: APACHE_PID_FILE needs to be defined in $APACHE_ENVVARS >&2
+       exit 2
+fi
+
+
+case "$1" in
+  start)
+       log_daemon_msg "Starting $DESC" "$NAME"
+       do_start
+       RET_STATUS=$?
+       case "$RET_STATUS" in
+               0|1)
+                       log_success_msg
+                       [ "$VERBOSE" != no ] && [ $RET_STATUS = 1 ] && log_warning_msg "Server was already running"
+               ;;
+               2)
+                       log_failure_msg
+                       print_error_msg
+                       exit 1
+                       ;;
+       esac
+       ;;
+  stop|graceful-stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop "$1"
+       RET_STATUS=$?
+       case "$RET_STATUS" in
+               0|1)
+                       log_success_msg
+                       [ "$VERBOSE" != no ] && [ $RET_STATUS = 1 ] && log_warning_msg "Server was not running"
+               ;;
+               2)
+                       log_failure_msg
+                       print_error_msg
+                       exit 1
+               ;;
+       esac
+       print_error_msg
+
+       ;;
+  status)
+       status_of_proc -p $PIDFILE "apache2" "$NAME"
+       exit $?
+       ;;
+  reload|force-reload|graceful)
+       log_daemon_msg "Reloading $DESC" "$NAME"
+       do_reload
+       RET_STATUS=$?
+       case "$RET_STATUS" in
+               0|1)
+                       log_success_msg
+                       [ "$VERBOSE" != no ] && [ $RET_STATUS = 1 ] && log_warning_msg "Server was already running"
+                       ;;
+               2)
+                       log_failure_msg
+                       print_error_msg
+                       exit 1
+                       ;;
+       esac
+       print_error_msg
+       ;;
+  restart)
+       log_daemon_msg "Restarting $DESC" "$NAME"
+       do_stop stop
+       case "$?" in
+               0|1)
+                       do_start
+                       case "$?" in
+                               0)
+                                       log_end_msg 0
+                                       ;;
+                               1|*)
+                                       log_end_msg 1 # Old process is still or failed to running
+                                       print_error_msg
+                                       exit 1
+                                       ;;
+                       esac
+                       ;;
+               *)
+                       # Failed to stop
+                       log_end_msg 1
+                       print_error_msg
+                       exit 1
+                       ;;
+       esac
+       ;;
+  start-htcacheclean|stop-htcacheclean)
+       echo "Use 'service apache-htcacheclean' instead"
+       ;;
+  *)
+       echo "Usage: $SCRIPTNAME {start|stop|graceful-stop|restart|reload|force-reload}" >&2
+       exit 3
+       ;;
+esac
+
+exit 0
diff --git a/init.d/apparmor b/init.d/apparmor
new file mode 100755 (executable)
index 0000000..f8a2453
--- /dev/null
@@ -0,0 +1,156 @@
+#!/bin/sh
+# ----------------------------------------------------------------------
+#    Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+#     NOVELL (All rights reserved)
+#    Copyright (c) 2008, 2009 Canonical, Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of version 2 of the GNU General Public
+#    License published by the Free Software Foundation.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, contact Novell, Inc.
+# ----------------------------------------------------------------------
+# Authors:
+#  Steve Beattie <steve.beattie@canonical.com>
+#  Kees Cook <kees@ubuntu.com>
+#
+# /etc/init.d/apparmor
+#
+# Note: "Required-Start: $local_fs" implies that the cache may not be available
+# yet when /var is on a remote filesystem. The worst consequence this should
+# have is slowing down the boot.
+#
+### BEGIN INIT INFO
+# Provides: apparmor
+# Required-Start: $local_fs
+# Required-Stop: umountfs
+# Default-Start: S
+# Default-Stop:
+# Short-Description: AppArmor initialization
+# Description: AppArmor init script. This script loads all AppArmor profiles.
+### END INIT INFO
+
+APPARMOR_FUNCTIONS=/lib/apparmor/rc.apparmor.functions
+
+# Functions needed by rc.apparmor.functions
+
+. /lib/lsb/init-functions
+
+aa_action() {
+       STRING=$1
+       shift
+       $*
+       rc=$?
+       if [ $rc -eq 0 ] ; then
+               aa_log_success_msg $"$STRING "
+       else
+               aa_log_failure_msg $"$STRING "
+       fi
+       return $rc
+}
+
+aa_log_action_start() {
+       log_action_begin_msg $@
+}
+
+aa_log_action_end() {
+       log_action_end_msg $@
+}
+
+aa_log_success_msg() {
+       log_success_msg $@
+}
+
+aa_log_warning_msg() {
+       log_warning_msg $@
+}
+
+aa_log_failure_msg() {
+       log_failure_msg $@
+}
+
+aa_log_skipped_msg() {
+       if [ -n "$1" ]; then
+               log_warning_msg "${1}: Skipped."
+       fi
+}
+
+aa_log_daemon_msg() {
+       log_daemon_msg $@
+}
+
+aa_log_end_msg() {
+       log_end_msg $@
+}
+
+# Source AppArmor function library
+if [ -f "${APPARMOR_FUNCTIONS}" ]; then
+       . ${APPARMOR_FUNCTIONS}
+else
+       aa_log_failure_msg "Unable to find AppArmor initscript functions"
+       exit 1
+fi
+
+usage() {
+    echo "Usage: $0 {start|stop|restart|reload|force-reload|status}"
+}
+
+test -x ${PARSER} || exit 0 # by debian policy
+# LSM is built-in, so it is either there or not enabled for this boot
+test -d /sys/module/apparmor || exit 0
+
+# do not perform start/stop/reload actions when running from liveCD
+test -d /rofs/etc/apparmor.d && exit 0
+
+rc=255
+case "$1" in
+       start)
+               if [ -x /usr/bin/systemd-detect-virt ] && \
+                  systemd-detect-virt --quiet --container && \
+                  ! is_container_with_internal_policy; then
+                       aa_log_daemon_msg "Not starting AppArmor in container"
+                       aa_log_end_msg 0
+                       exit 0
+               fi
+               apparmor_start
+               rc=$?
+               ;;
+       restart|reload|force-reload)
+               if [ -x /usr/bin/systemd-detect-virt ] && \
+                  systemd-detect-virt --quiet --container && \
+                  ! is_container_with_internal_policy; then
+                       aa_log_daemon_msg "Not starting AppArmor in container"
+                       aa_log_end_msg 0
+                       exit 0
+               fi
+               apparmor_restart
+               rc=$?
+               ;;
+       stop)
+               aa_log_daemon_msg "Leaving AppArmor profiles loaded"
+               cat >&2 <<EOM
+No profiles have been unloaded.
+
+Unloading profiles will leave already running processes permanently
+unconfined, which can lead to unexpected situations.
+
+To set a process to complain mode, use the command line tool
+'aa-complain'. To really tear down all profiles, run 'aa-teardown'."
+EOM
+               ;;
+       status)
+               apparmor_status
+               rc=$?
+               ;;
+       *)
+               usage
+               rc=1
+               ;;
+       esac
+exit $rc
diff --git a/init.d/atd b/init.d/atd
new file mode 100755 (executable)
index 0000000..2e825fc
--- /dev/null
@@ -0,0 +1,48 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          atd
+# Required-Start:    $syslog $time $remote_fs
+# Required-Stop:     $syslog $time $remote_fs
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Deferred execution scheduler
+# Description:       Debian init script for the atd deferred executions
+#                    scheduler
+### END INIT INFO
+#
+# Author:      Ryan Murray <rmurray@debian.org>
+#
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DAEMON=/usr/sbin/atd
+PIDFILE=/var/run/atd.pid
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+case "$1" in
+  start)
+       log_daemon_msg "Starting deferred execution scheduler" "atd"
+       start_daemon -p $PIDFILE $DAEMON
+       log_end_msg $?
+    ;;
+  stop)
+       log_daemon_msg "Stopping deferred execution scheduler" "atd"
+       killproc -p $PIDFILE $DAEMON
+       log_end_msg $?
+    ;;
+  force-reload|restart)
+    $0 stop
+    $0 start
+    ;;
+  status)
+    status_of_proc -p $PIDFILE $DAEMON atd && exit 0 || exit $?
+    ;;
+  *)
+    echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload|status}"
+    exit 1
+    ;;
+esac
+
+exit 0
diff --git a/init.d/chrony b/init.d/chrony
new file mode 100755 (executable)
index 0000000..ce121d7
--- /dev/null
@@ -0,0 +1,69 @@
+#! /bin/sh
+#
+# Written by Miquel van Smoorenburg <miquels@drinkel.ow.org>.
+# Modified for Debian GNU/Linux by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+# Modified for Debian by Christoph Lameter <clameter@debian.org>
+# Modified for chrony by John Hasler <jhasler@debian.org> 1998-2012
+# Modified for Debian by Vincent Blut <vincent.debian@free.fr>
+
+### BEGIN INIT INFO
+# Provides:          chrony
+# Required-Start:    $remote_fs
+# Required-Stop:     $remote_fs
+# Should-Start:      $syslog $network $named $time
+# Should-Stop:       $syslog $network $named $time
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Controls chronyd NTP time daemon
+# Description:       Chronyd is the NTP time daemon in the Chrony package
+### END INIT INFO
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DAEMON=/usr/sbin/chronyd
+NAME="chronyd"
+DESC="time daemon"
+PIDFILE=/run/chrony/chronyd.pid
+
+[ -x "$DAEMON" ] || exit 0
+
+. /lib/lsb/init-functions
+
+# Override this variable by editing /etc/default/chrony.
+DAEMON_OPTS=""
+if [ -f /etc/default/chrony ]; then
+    . /etc/default/chrony
+fi
+
+case "$1" in
+    start)
+        if $0 status > /dev/null ; then
+            log_success_msg "$NAME is already running"
+        else
+            log_daemon_msg "Starting $DESC" "$NAME"
+            start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
+            log_end_msg $?
+        fi
+        ;;
+
+    stop)
+        log_daemon_msg "Stopping $DESC" "$NAME"
+        start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
+        log_end_msg $?
+        ;;
+
+    restart|force-reload)
+        $0 stop
+        $0 start
+        ;;
+
+    status)
+        status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
+        ;;
+
+    *)
+        log_action_msg "Usage: /etc/init.d/chrony {start|stop|restart|force-reload|status}"
+        exit 1
+        ;;
+esac
+
+exit 0
diff --git a/init.d/console-setup.sh b/init.d/console-setup.sh
new file mode 100755 (executable)
index 0000000..d8d9349
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          console-setup.sh
+# Required-Start:    $remote_fs
+# Required-Stop:
+# Should-Start:      console-screen kbd
+# Default-Start:     2 3 4 5
+# Default-Stop:
+# X-Interactive:     true
+# Short-Description: Set console font and keymap
+### END INIT INFO
+
+if [ -f /bin/setupcon ]; then
+    case "$1" in
+        stop|status)
+        # console-setup isn't a daemon
+        ;;
+        start|force-reload|restart|reload)
+            if [ -f /lib/lsb/init-functions ]; then
+                . /lib/lsb/init-functions
+            else
+                log_action_begin_msg () {
+                   echo -n "$@... "
+                }
+
+                log_action_end_msg () {
+                   if [ "$1" -eq 0 ]; then
+                       echo done.
+                   else
+                       echo failed.
+                   fi
+                }
+            fi
+            log_action_begin_msg "Setting up console font and keymap"
+            if /lib/console-setup/console-setup.sh; then
+               log_action_end_msg 0
+           else
+               log_action_end_msg $?
+           fi
+           ;;
+        *)
+            echo 'Usage: /etc/init.d/console-setup.sh {start|reload|restart|force-reload|stop|status}'
+            exit 3
+            ;;
+    esac
+fi
diff --git a/init.d/cron b/init.d/cron
new file mode 100755 (executable)
index 0000000..c90dc1e
--- /dev/null
@@ -0,0 +1,92 @@
+#!/bin/sh
+# Start/stop the cron daemon.
+#
+### BEGIN INIT INFO
+# Provides:          cron
+# Required-Start:    $remote_fs $syslog $time
+# Required-Stop:     $remote_fs $syslog $time
+# Should-Start:      $network $named slapd autofs ypbind nscd nslcd winbind sssd
+# Should-Stop:       $network $named slapd autofs ypbind nscd nslcd winbind sssd
+# Default-Start:     2 3 4 5
+# Default-Stop:
+# Short-Description: Regular background program processing daemon
+# Description:       cron is a standard UNIX program that runs user-specified 
+#                    programs at periodic scheduled times. vixie cron adds a 
+#                    number of features to the basic UNIX cron, including better
+#                    security and more powerful configuration options.
+### END INIT INFO
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DESC="cron daemon"
+NAME=cron
+DAEMON=/usr/sbin/cron
+PIDFILE=/var/run/crond.pid
+SCRIPTNAME=/etc/init.d/"$NAME"
+
+test -f $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+[ -r /etc/default/cron ] && . /etc/default/cron
+
+# Read the system's locale and set cron's locale. This is only used for
+# setting the charset of mails generated by cron. To provide locale
+# information to tasks running under cron, see /etc/pam.d/cron.
+#
+# We read /etc/environment, but warn about locale information in
+# there because it should be in /etc/default/locale.
+parse_environment () 
+{
+    for ENV_FILE in /etc/environment /etc/default/locale; do
+        [ -r "$ENV_FILE" ] || continue
+        [ -s "$ENV_FILE" ] || continue
+
+         for var in LANG LANGUAGE LC_ALL LC_CTYPE; do
+             value=`egrep "^${var}=" "$ENV_FILE" | tail -n1 | cut -d= -f2`
+             [ -n "$value" ] && eval export $var=$value
+
+             if [ -n "$value" ] && [ "$ENV_FILE" = /etc/environment ]; then
+                 log_warning_msg "/etc/environment has been deprecated for locale information; use /etc/default/locale for $var=$value instead"
+             fi
+         done
+     done
+
+# Get the timezone set.
+    if [ -z "$TZ" -a -e /etc/timezone ]; then
+        TZ=`cat /etc/timezone` 
+    fi
+}
+
+# Parse the system's environment
+if [ "$READ_ENV" = "yes" ] ; then
+    parse_environment
+fi
+
+
+case "$1" in
+start) log_daemon_msg "Starting periodic command scheduler" "cron"
+        start_daemon -p $PIDFILE $DAEMON $EXTRA_OPTS
+        log_end_msg $?
+       ;;
+stop)  log_daemon_msg "Stopping periodic command scheduler" "cron"
+        killproc -p $PIDFILE $DAEMON
+        RETVAL=$?
+        [ $RETVAL -eq 0 ] && [ -e "$PIDFILE" ] && rm -f $PIDFILE
+        log_end_msg $RETVAL
+        ;;
+restart) log_daemon_msg "Restarting periodic command scheduler" "cron" 
+        $0 stop
+        $0 start
+        ;;
+reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "cron"
+       # cron reloads automatically
+        log_end_msg 0
+        ;;
+status)
+        status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
+        ;;
+*)     log_action_msg "Usage: /etc/init.d/cron {start|stop|status|restart|reload|force-reload}"
+        exit 2
+        ;;
+esac
+exit 0
diff --git a/init.d/dbus b/init.d/dbus
new file mode 100755 (executable)
index 0000000..105c83b
--- /dev/null
@@ -0,0 +1,129 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          dbus
+# Required-Start:    $remote_fs $syslog
+# Required-Stop:     $remote_fs $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:
+# Short-Description: D-Bus systemwide message bus
+# Description:       D-Bus is a simple interprocess messaging system, used
+#                    for sending messages between applications.
+### END INIT INFO
+# -*- coding: utf-8 -*-
+# Debian init.d script for D-BUS
+# Copyright © 2003 Colin Walters <walters@debian.org>
+# Copyright © 2005 Sjoerd Simons <sjoerd@debian.org>
+
+set -e
+
+DAEMON=/usr/bin/dbus-daemon
+UUIDGEN=/usr/bin/dbus-uuidgen
+UUIDGEN_OPTS=--ensure
+NAME=dbus
+DAEMONUSER=messagebus
+PIDDIR=/var/run/dbus
+PIDFILE=$PIDDIR/pid
+DESC="system message bus"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+# Source defaults file; edit that file to configure this script.
+PARAMS=""
+if [ -e /etc/default/dbus ]; then
+  . /etc/default/dbus
+fi
+
+create_machineid() {
+  # Create machine-id file
+  if [ -x $UUIDGEN ]; then
+    $UUIDGEN $UUIDGEN_OPTS
+  fi
+}
+
+start_it_up()
+{
+  if [ ! -d $PIDDIR ]; then
+    mkdir -p $PIDDIR
+    chown $DAEMONUSER $PIDDIR
+    chgrp $DAEMONUSER $PIDDIR
+  fi
+
+  if ! mountpoint -q /proc/ ; then
+    log_failure_msg "Can't start $DESC - /proc is not mounted"
+    return
+  fi
+
+  if [ -e $PIDFILE ]; then
+    if $0 status > /dev/null ; then
+      log_success_msg "$DESC already started; not starting."
+      return
+    else
+      log_success_msg "Removing stale PID file $PIDFILE."
+      rm -f $PIDFILE
+    fi
+  fi
+
+  create_machineid
+
+  # Force libnss-systemd to avoid trying to communicate via D-Bus, which
+  # is never going to work well from within dbus-daemon. systemd
+  # special-cases this internally, but we might need to do the same when
+  # booting with sysvinit if libnss-systemd is still installed.
+  # (Workaround for #940971)
+  export SYSTEMD_NSS_BYPASS_BUS=1
+
+  log_daemon_msg "Starting $DESC" "$NAME"
+  start-stop-daemon --start --quiet --pidfile $PIDFILE \
+    --exec $DAEMON -- --system $PARAMS
+  log_end_msg $?
+}
+
+shut_it_down()
+{
+  log_daemon_msg "Stopping $DESC" "$NAME"
+  start-stop-daemon --stop --retry 5 --quiet --oknodo --pidfile $PIDFILE \
+    --user $DAEMONUSER
+  # We no longer include these arguments so that start-stop-daemon
+  # can do its job even given that we may have been upgraded.
+  # We rely on the pidfile being sanely managed
+  # --exec $DAEMON -- --system $PARAMS
+  log_end_msg $?
+  rm -f $PIDFILE
+}
+
+reload_it()
+{
+  create_machineid
+  log_action_begin_msg "Reloading $DESC config"
+  dbus-send --print-reply --system --type=method_call \
+            --dest=org.freedesktop.DBus \
+            / org.freedesktop.DBus.ReloadConfig > /dev/null
+  # hopefully this is enough time for dbus to reload it's config file.
+  log_action_end_msg $?
+}
+
+case "$1" in
+  start)
+    start_it_up
+  ;;
+  stop)
+    shut_it_down
+  ;;
+  reload|force-reload)
+    reload_it
+  ;;
+  restart)
+    shut_it_down
+    start_it_up
+  ;;
+  status)
+    status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
+    ;;
+  *)
+    echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload|status}" >&2
+    exit 2
+  ;;
+esac
+
diff --git a/init.d/haveged b/init.d/haveged
new file mode 100755 (executable)
index 0000000..e03a517
--- /dev/null
@@ -0,0 +1,100 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          haveged
+# Required-Start:    $remote_fs
+# Required-Stop:     $remote_fs
+# Should-Start:      $syslog
+# Should-Stop:       $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Entropy daemon using the HAVEGE algorithm
+# Description:       haveged uses HAVEGE (HArdware Volatile Entropy Gathering
+#                    and Expansion) to maintain a pool of random bytes used
+#                    to fill /dev/random whenever necessary.
+### END INIT INFO
+
+# Do NOT "set -e"
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="entropy daemon"
+NAME=haveged
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS=""
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+. /lib/lsb/init-functions
+
+do_start()
+{
+       start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+               || return 1
+       start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+               $DAEMON_ARGS \
+               || return 2
+}
+
+do_stop()
+{
+       start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+       RETVAL="$?"
+       [ "$RETVAL" = 2 ] && return 2
+       rm -f $PIDFILE
+       return "$RETVAL"
+}
+
+case "$1" in
+    start)
+       [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+       do_start
+       case "$?" in
+           0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+           2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+       esac
+       ;;
+    stop)
+       [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop
+       case "$?" in
+           0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+           2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+       esac
+       ;;
+    status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+       ;;
+    restart|force-reload)
+       log_daemon_msg "Restarting $DESC" "$NAME"
+       do_stop
+       case "$?" in
+           0|1)
+               do_start
+               case "$?" in
+                   0) log_end_msg 0 ;;
+                   1) log_end_msg 1 ;; # Old process is still running
+                   *) log_end_msg 1 ;; # Failed to start
+               esac
+               ;;
+           *)
+               # Failed to stop
+               log_end_msg 1
+               ;;
+       esac
+       ;;
+    *)
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+       exit 3
+       ;;
+esac
+
+:
diff --git a/init.d/hwclock.sh b/init.d/hwclock.sh
new file mode 100755 (executable)
index 0000000..a9872b6
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides:          hwclock
+# Required-Start:
+# Required-Stop:     mountdevsubfs
+# Should-Stop:       umountfs
+# Default-Start:     S
+# Default-Stop:      0 6
+# Short-Description: Save system clock to hardware on shutdown.
+### END INIT INFO
+
+# Note: this init script and related code is only useful if you
+# run a sysvinit system, without NTP synchronization.
+
+if [ -e /run/systemd/system ] ; then
+    exit 0
+fi
+
+unset TZ
+
+hwclocksh()
+{
+    HCTOSYS_DEVICE=rtc0
+    [ ! -x /sbin/hwclock ] && return 0
+    [ ! -r /etc/default/rcS ] || . /etc/default/rcS
+    [ ! -r /etc/default/hwclock ] || . /etc/default/hwclock
+
+    . /lib/lsb/init-functions
+    verbose_log_action_msg() { [ "$VERBOSE" = no ] || log_action_msg "$@"; }
+
+    case "$1" in
+        start)
+            # start is handled by /usr/lib/udev/rules.d/85-hwclock.rules.
+            return 0
+            ;;
+        stop|restart|reload|force-reload)
+            # Updates the Hardware Clock with the System Clock time.
+            # This will *override* any changes made to the Hardware Clock,
+            # for example by the Linux kernel when NTP is in use.
+            log_action_msg "Saving the system clock to /dev/$HCTOSYS_DEVICE"
+            if /sbin/hwclock --rtc=/dev/$HCTOSYS_DEVICE --systohc; then
+                verbose_log_action_msg "Hardware Clock updated to `date`"
+            fi
+            ;;
+        show)
+            /sbin/hwclock --rtc=/dev/$HCTOSYS_DEVICE --show
+            ;;
+        *)
+            log_success_msg "Usage: hwclock.sh {stop|reload|force-reload|show}"
+            log_success_msg "       stop and reload set hardware (RTC) clock from kernel (system) clock"
+            return 1
+            ;;
+    esac
+}
+
+hwclocksh "$@"
diff --git a/init.d/keyboard-setup.sh b/init.d/keyboard-setup.sh
new file mode 100755 (executable)
index 0000000..9f50168
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          keyboard-setup.sh
+# Required-Start:    mountkernfs
+# Required-Stop:
+# X-Start-Before:    checkroot
+# Default-Start:     S
+# Default-Stop:
+# X-Interactive:     true
+# Short-Description: Set the console keyboard layout
+# Description:       Set the console keyboard as early as possible
+#                    so during the file systems checks the administrator
+#                    can interact.  At this stage of the boot process
+#                    only the ASCII symbols are supported.
+### END INIT INFO
+
+if [ -f /bin/setupcon ]; then
+    case "$1" in
+        stop|status)
+        # console-setup isn't a daemon
+        ;;
+        start|force-reload|restart|reload)
+            if [ -f /lib/lsb/init-functions ]; then
+                . /lib/lsb/init-functions
+            else
+                log_action_begin_msg () {
+                   echo -n "$@... "
+                }
+
+                log_action_end_msg () {
+                   if [ "$1" -eq 0 ]; then
+                       echo done.
+                   else
+                       echo failed.
+                   fi
+                }
+            fi
+           log_action_begin_msg "Setting up keyboard layout"
+            if /lib/console-setup/keyboard-setup.sh; then
+               log_action_end_msg 0
+           else
+               log_action_end_msg $?
+           fi
+           ;;
+        *)
+            echo 'Usage: /etc/init.d/keyboard-setup.sh {start|reload|restart|force-reload|stop|status}'
+            exit 3
+            ;;
+    esac
+fi
diff --git a/init.d/kmod b/init.d/kmod
new file mode 100755 (executable)
index 0000000..26b77e3
--- /dev/null
@@ -0,0 +1,92 @@
+#!/bin/sh -e
+### BEGIN INIT INFO
+# Provides:          kmod
+# Required-Start:    
+# Required-Stop:     
+# Should-Start:      checkroot
+# Should-Stop:
+# Default-Start:     S
+# Default-Stop:
+# Short-Description: Load the modules listed in /etc/modules.
+# Description:       Load the modules listed in /etc/modules.
+### END INIT INFO
+
+# Silently exit if the kernel does not support modules.
+[ -f /proc/modules ] || exit 0
+[ -x /sbin/modprobe  ] || exit 0
+
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+. /lib/lsb/init-functions
+
+PATH='/usr/sbin:/usr/bin:/sbin:/bin'
+
+case "$1" in
+  start)
+  ;;
+
+  stop|restart|reload|force-reload)
+  log_warning_msg "Action '$1' is meaningless for this init script"
+  exit 0
+  ;;
+
+  *)
+  log_success_msg "Usage: $0 start"
+  exit 1
+esac
+
+load_module() {
+  local module args
+  module="$1"
+  args="$2"
+
+  if [ "$VERBOSE" != no ]; then
+    log_action_msg "Loading kernel module $module"
+    modprobe $module $args || true
+  else
+    modprobe $module $args > /dev/null 2>&1 || true
+  fi
+}
+
+modules_files() {
+  local modules_load_dirs='/etc/modules-load.d /run/modules-load.d /usr/local/lib/modules-load.d /usr/lib/modules-load.d /lib/modules-load.d'
+  local processed=' '
+  local add_etc_modules=true
+
+  for dir in $modules_load_dirs; do
+    [ -d $dir ] || continue
+    for file in $(run-parts --list --regex='\.conf$' $dir 2> /dev/null || true); do
+      local base=${file##*/}
+      if echo -n "$processed" | grep -qF " $base "; then
+        continue
+      fi
+      if [ "$add_etc_modules" -a -L $file \
+         -a "$(readlink -f $file)" = /etc/modules ]; then
+        add_etc_modules=
+      fi
+      processed="$processed$base "
+      echo $file
+    done
+  done
+
+  if [ "$add_etc_modules" ]; then
+    echo /etc/modules
+  fi
+}
+
+if [ "$VERBOSE" = no ]; then
+  log_action_begin_msg 'Loading kernel modules'
+fi
+
+files=$(modules_files)
+if [ "$files" ] ; then
+  grep -h '^[^#]' $files |
+  while read module args; do
+    [ "$module" ] || continue
+    load_module "$module" "$args"
+  done
+fi
+
+if [ "$VERBOSE" = no ]; then
+  log_action_end_msg 0
+fi
+
diff --git a/init.d/mariadb b/init.d/mariadb
new file mode 100755 (executable)
index 0000000..2e1b3c8
--- /dev/null
@@ -0,0 +1,222 @@
+#!/bin/bash
+#
+### BEGIN INIT INFO
+# Provides:          mariadb
+# Required-Start:    $remote_fs $syslog
+# Required-Stop:     $remote_fs $syslog
+# Should-Start:      $network $named $time
+# Should-Stop:       $network $named $time
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start and stop the mysql database server daemon
+# Description:       Controls the main MariaDB database server daemon "mariadbd"
+#                    and its wrapper script "mysqld_safe".
+### END INIT INFO
+#
+set -e
+set -u
+${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
+
+test -x /usr/sbin/mariadbd || exit 0
+
+. /lib/lsb/init-functions
+
+SELF=$(cd "$(dirname $0)"; pwd -P)/$(basename $0)
+
+if [ -f /usr/bin/mariadb-admin ]
+then
+  MYADMIN="/usr/bin/mariadb-admin --defaults-file=/etc/mysql/debian.cnf"
+elif [ -f /usr/bin/mysqladmin ]
+then
+  MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
+else
+  log_failure_msg "Command mariadb-admin/mysqladmin not found! This SysV init script depends on it."
+  exit -1
+fi
+
+if [ ! -x /usr/bin/mysqld_safe ]
+then
+  log_failure_msg "/usr/bin/mysqld_safe not found or executable! This SysV init script depends on it."
+  exit -1
+fi
+
+# priority can be overridden and "-s" adds output to stderr
+ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mariadb -i"
+
+if [ -f /etc/default/mysql ]; then
+  . /etc/default/mysql
+fi
+
+# Also source default/mariadb in case the installation was upgraded from
+# packages originally installed from MariaDB.org repositories, which have
+# had support for reading /etc/default/mariadb since March 2016.
+if [ -f /etc/default/mariadb ]; then
+  . /etc/default/mariadb
+fi
+
+# Safeguard (relative paths, core dumps..)
+cd /
+umask 077
+
+# mysqladmin likes to read /root/.my.cnf. This is usually not what I want
+# as many admins e.g. only store a password without a username there and
+# so break my scripts.
+export HOME=/etc/mysql/
+
+## Fetch a particular option from mysql's invocation.
+#
+# Usage: void mariadbd_get_param option
+mariadbd_get_param() {
+  /usr/sbin/mariadbd --print-defaults \
+    | tr " " "\n" \
+    | grep -- "--$1" \
+    | tail -n 1 \
+    | cut -d= -f2
+}
+
+## Do some sanity checks before even trying to start mariadbd.
+sanity_checks() {
+  # check for config file
+  if [ ! -r /etc/mysql/my.cnf ]; then
+    log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
+    echo                "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
+  fi
+
+  # check for diskspace shortage
+  datadir=`mariadbd_get_param datadir`
+  if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then
+    log_failure_msg "$0: ERROR: The partition with $datadir is too full!"
+    echo                "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
+    exit 1
+  fi
+}
+
+## Checks if there is a server running and if so if it is accessible.
+#
+# check_alive insists on a pingable server
+# check_dead also fails if there is a lost mariadbd in the process list
+#
+# Usage: boolean mariadbd_status [check_alive|check_dead] [warn|nowarn]
+mariadbd_status () {
+  ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? ))
+
+  ps_alive=0
+  pidfile=`mariadbd_get_param pid-file`
+  if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
+
+  if [ "$1" = "check_alive"  -a  $ping_alive = 1 ] ||
+     [ "$1" = "check_dead"   -a  $ping_alive = 0  -a  $ps_alive = 0 ]; then
+    return 0 # EXIT_SUCCESS
+  else
+    if [ "$2" = "warn" ]; then
+      echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug
+    fi
+  return 1 # EXIT_FAILURE
+  fi
+}
+
+#
+# main()
+#
+
+case "${1:-''}" in
+
+  'start')
+  sanity_checks;
+  # Start daemon
+  log_daemon_msg "Starting MariaDB database server" "mariadbd"
+  if mariadbd_status check_alive nowarn; then
+   log_progress_msg "already running"
+   log_end_msg 0
+  else
+    # Could be removed during boot
+    test -e /run/mysqld || install -m 755 -o mysql -g root -d /run/mysqld
+
+    # Start MariaDB!
+    /usr/bin/mysqld_safe "${@:2}" 2>&1 >/dev/null | $ERR_LOGGER &
+
+    for i in $(seq 1 "${MYSQLD_STARTUP_TIMEOUT:-30}"); do
+      sleep 1
+      if mariadbd_status check_alive nowarn ; then break; fi
+      log_progress_msg "."
+    done
+    if mariadbd_status check_alive warn; then
+      log_end_msg 0
+      # Now start mysqlcheck or whatever the admin wants.
+      output=$(/etc/mysql/debian-start)
+      if [ -n "$output" ]; then
+        log_action_msg "$output"
+      fi
+    else
+      log_end_msg 1
+      log_failure_msg "Please take a look at the syslog"
+    fi
+  fi
+  ;;
+
+  'stop')
+  # * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
+  # at least for cron, we can rely on it here, too. (although we have
+  # to specify it explicit as e.g. sudo environments points to the normal
+  # users home and not /root)
+  log_daemon_msg "Stopping MariaDB database server" "mariadbd"
+  if ! mariadbd_status check_dead nowarn; then
+    set +e
+    shutdown_out=`$MYADMIN shutdown 2>&1`; r=$?
+    set -e
+    if [ "$r" -ne 0 ]; then
+      log_end_msg 1
+      [ "$VERBOSE" != "no" ] && log_failure_msg "Error: $shutdown_out"
+      log_daemon_msg "Killing MariaDB database server by signal" "mariadbd"
+      killall -15 mariadbd
+      server_down=
+      for i in `seq 1 600`; do
+        sleep 1
+        if mariadbd_status check_dead nowarn; then server_down=1; break; fi
+      done
+      if test -z "$server_down"; then killall -9 mariadbd; fi
+    fi
+  fi
+
+  if ! mariadbd_status check_dead warn; then
+    log_end_msg 1
+    log_failure_msg "Please stop MariaDB manually and read /usr/share/doc/mariadb-server/README.Debian.gz!"
+    exit -1
+  else
+    log_end_msg 0
+  fi
+  ;;
+
+  'restart')
+  set +e; $SELF stop; set -e
+  shift
+  $SELF start "${@}"
+  ;;
+
+  'reload'|'force-reload')
+  log_daemon_msg "Reloading MariaDB database server" "mariadbd"
+  $MYADMIN reload
+  log_end_msg 0
+  ;;
+
+  'status')
+  if mariadbd_status check_alive nowarn; then
+    log_action_msg "$($MYADMIN version)"
+  else
+    log_action_msg "MariaDB is stopped."
+    exit 3
+  fi
+  ;;
+
+  'bootstrap')
+       # Bootstrap the cluster, start the first node
+       # that initiates the cluster
+       log_daemon_msg "Bootstrapping the cluster" "mariadbd"
+       $SELF start "${@:2}" --wsrep-new-cluster
+       ;;
+
+  *)
+  echo "Usage: $SELF start|stop|restart|reload|force-reload|status"
+  exit 1
+  ;;
+esac
diff --git a/init.d/named b/init.d/named
new file mode 100755 (executable)
index 0000000..44b00ca
--- /dev/null
@@ -0,0 +1,146 @@
+#!/bin/sh -e
+
+### BEGIN INIT INFO
+# Provides:          bind bind9
+# Required-Start:    $remote_fs
+# Required-Stop:     $remote_fs
+# Should-Start:      $network $syslog
+# Should-Stop:       $network $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start and stop BIND 9 Domain Name Server
+# Description:       BIND 9 is a Domain Name Server (DNS)
+#        which translates ip addresses to and from internet names
+### END INIT INFO
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+# for a chrooted server: "-u bind -t /var/lib/named"
+# Don't modify this line, instead change or create /etc/default/named.
+OPTIONS=""
+RESOLVCONF=no
+
+test -f /etc/default/named && . /etc/default/named
+
+test -x /usr/sbin/rndc || exit 0
+
+. /lib/lsb/init-functions
+PIDFILE=/run/named/named.pid
+
+check_network() {
+    result=0
+    if [ -x /usr/bin/uname ] && [ "X$(/usr/bin/uname -o)" = XSolaris ]; then
+        LIST_NICS_IP=$(/sbin/ifconfig -au) || result=$?
+    else
+        LIST_NICS_IP=$(/bin/ip addr) || result=$?
+    fi
+    if [ $result -ne 0 -o -z "${LIST_NICS_IP}" ]; then
+       #log_action_msg "No networks configured."
+       return 1
+    fi
+    return 0
+}
+
+case "$1" in
+    start)
+       log_daemon_msg "Starting domain name service..." "named"
+
+       modprobe capability >/dev/null 2>&1 || true
+
+       # dirs under /run can go away on reboots.
+       mkdir -p /run/named
+       chmod 775 /run/named
+       chown root:bind /run/named >/dev/null 2>&1 || true
+
+       if [ ! -x /usr/sbin/named ]; then
+           log_action_msg "named binary missing - not starting"
+           log_end_msg 1
+       fi
+
+       if ! check_network; then
+           log_action_msg "no networks configured"
+           log_end_msg 1
+       fi
+
+       if start-stop-daemon --start --oknodo --quiet --exec /usr/sbin/named \
+               --pidfile ${PIDFILE} -- $OPTIONS; then
+           if [ "X$RESOLVCONF" != "Xno" ] && [ -x /sbin/resolvconf ] ; then
+               echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.named
+           fi
+           log_end_msg 0
+       else
+           log_end_msg 1
+       fi
+    ;;
+
+    stop)
+       log_daemon_msg "Stopping domain name service..." "named"
+       if ! check_network; then
+           log_action_msg "no networks configured"
+           log_end_msg 1
+       fi
+
+       if [ "X$RESOLVCONF" != "Xno" ] && [ -x /sbin/resolvconf ] ; then
+           /sbin/resolvconf -d lo.named
+       fi
+       pid=$(/usr/sbin/rndc stop -p | awk '/^pid:/ {print $2}') || true
+       if [ -z "$pid" ]; then          # no pid found, so either not running, or error
+           pid=$(pgrep -f ^/usr/sbin/named) || true
+           start-stop-daemon --stop --oknodo --quiet --exec /usr/sbin/named \
+                   --pidfile ${PIDFILE} -- $OPTIONS
+       fi
+       if [ -n "$pid" ]; then
+           sig=0
+           n=1
+           while kill -$sig $pid 2>/dev/null; do
+               if [ $n -eq 1 ]; then
+                   echo "waiting for pid $pid to die"
+               fi
+               if [ $n -eq 11 ]; then
+                   echo "giving up on pid $pid with kill -0; trying -9"
+                   sig=9
+               fi
+               if [ $n -gt 20 ]; then
+                   echo "giving up on pid $pid"
+                   break
+               fi
+               n=$(($n+1))
+               sleep 1
+           done
+       fi
+       log_end_msg 0
+    ;;
+
+    reload|force-reload)
+       log_daemon_msg "Reloading domain name service..." "named"
+       if ! check_network; then
+           log_action_msg "no networks configured"
+           log_end_msg 1
+       fi
+
+       /usr/sbin/rndc reload >/dev/null && log_end_msg 0 || log_end_msg 1
+    ;;
+
+    restart)
+       if ! check_network; then
+           log_action_msg "no networks configured"
+           exit 1
+       fi
+
+       $0 stop
+       $0 start
+    ;;
+    
+    status)
+       ret=0
+       status_of_proc -p ${PIDFILE} /usr/sbin/named bind 2>/dev/null || ret=$?
+       exit $ret
+       ;;
+
+    *)
+       log_action_msg "Usage: /etc/init.d/named {start|stop|reload|restart|force-reload|status}"
+       exit 1
+    ;;
+esac
+
+exit 0
diff --git a/init.d/networking b/init.d/networking
new file mode 100755 (executable)
index 0000000..1a366ed
--- /dev/null
@@ -0,0 +1,195 @@
+#!/bin/sh -e
+### BEGIN INIT INFO
+# Provides:          networking ifupdown
+# Required-Start:    mountkernfs $local_fs urandom
+# Required-Stop:     $local_fs
+# Default-Start:     S
+# Default-Stop:      0 6
+# Short-Description: Raise network interfaces.
+# Description:       Prepare /run/network directory, ifstate file and raise network interfaces, or take them down.
+### END INIT INFO
+
+PATH="/sbin:/bin:/usr/sbin:/usr/bin"
+RUN_DIR="/run/network"
+IFSTATE="$RUN_DIR/ifstate"
+STATEDIR="$RUN_DIR/state"
+
+[ -x "$(command -v ifup)" ] || exit 0
+[ -x "$(command -v ifdown)" ] || exit 0
+
+. /lib/lsb/init-functions
+
+CONFIGURE_INTERFACES=yes
+EXCLUDE_INTERFACES=
+VERBOSE=no
+
+[ -f /etc/default/networking ] && . /etc/default/networking
+
+verbose=""
+[ "$VERBOSE" = yes ] && verbose=-v
+
+process_exclusions() {
+    set -- $EXCLUDE_INTERFACES
+    exclusions=""
+    for d
+    do
+       exclusions="-X $d $exclusions"
+    done
+    echo $exclusions
+}
+
+process_options() {
+    [ -e /etc/network/options ] || return 0
+    log_warning_msg "/etc/network/options still exists and it will be IGNORED! Please use /etc/sysctl.conf instead."
+}
+
+check_ifstate() {
+    if [ ! -d "$RUN_DIR" ] ; then
+       if ! mkdir -p "$RUN_DIR" ; then
+           log_failure_msg "can't create $RUN_DIR"
+           exit 1
+       fi
+       if ! chown root:netdev "$RUN_DIR" ; then
+           log_warning_msg "can't chown $RUN_DIR"
+       fi
+    fi
+    if [ ! -r "$IFSTATE" ] ; then
+       if ! :> "$IFSTATE" ; then
+           log_failure_msg "can't initialise $IFSTATE"
+           exit 1
+       fi
+    fi
+}
+
+check_network_file_systems() {
+    [ -e /proc/mounts ] || return 0
+
+    if [ -e /etc/iscsi/iscsi.initramfs ]; then
+       log_warning_msg "not deconfiguring network interfaces: iSCSI root is mounted."
+       exit 0
+    fi
+
+    while read DEV MTPT FSTYPE REST; do
+       case $DEV in
+       /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*|curlftpfs*)
+           log_warning_msg "not deconfiguring network interfaces: network devices still mounted."
+           exit 0
+           ;;
+       esac
+       case $FSTYPE in
+       nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs)
+           log_warning_msg "not deconfiguring network interfaces: network file systems still mounted."
+           exit 0
+           ;;
+       esac
+    done < /proc/mounts
+}
+
+check_network_swap() {
+    [ -e /proc/swaps ] || return 0
+
+    while read DEV MTPT FSTYPE REST; do
+       case $DEV in
+       /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
+           log_warning_msg "not deconfiguring network interfaces: network swap still mounted."
+           exit 0
+           ;;
+       esac
+    done < /proc/swaps
+}
+
+ifup_hotplug () {
+    if [ -d /sys/class/net ]
+    then
+           ifaces=$(for iface in $(ifquery --list --allow=hotplug)
+                           do
+                                   link=${iface%%:*}
+                                   link=${link%%.*}
+                                   if [ -e "/sys/class/net/$link" ] && ! ifquery --state "$iface" >/dev/null
+                                   then
+                                       echo "$iface"
+                                   fi
+                           done)
+           if [ -n "$ifaces" ]
+           then
+               ifup $ifaces "$@" || true
+           fi
+    fi
+}
+
+case "$1" in
+start)
+       process_options
+       check_ifstate
+
+       if [ "$CONFIGURE_INTERFACES" = no ]
+       then
+           log_action_msg "Not configuring network interfaces, see /etc/default/networking"
+           exit 0
+       fi
+       set -f
+       exclusions=$(process_exclusions)
+       log_action_begin_msg "Configuring network interfaces"
+       if [ -x "$(command -v udevadm)" ]; then
+               if [ -n "$(ifquery --list --exclude=lo)" ] || [ -n "$(ifquery --list --allow=hotplug)" ]; then
+                       udevadm settle || true
+               fi
+       fi
+       if ifup -a $exclusions $verbose && ifup_hotplug $exclusions $verbose
+       then
+           log_action_end_msg $?
+       else
+           log_action_end_msg $?
+       fi
+       ;;
+
+stop)
+       check_network_file_systems
+       check_network_swap
+
+       log_action_begin_msg "Deconfiguring network interfaces"
+       if ifdown -a --exclude=lo $verbose; then
+           log_action_end_msg $?
+       else
+           log_action_end_msg $?
+       fi
+       ;;
+
+reload)
+       process_options
+
+       log_action_begin_msg "Reloading network interfaces configuration"
+       state=$(ifquery --state)
+       ifdown -a --exclude=lo $verbose || true
+       if ifup --exclude=lo $state $verbose ; then
+           log_action_end_msg $?
+       else
+           log_action_end_msg $?
+       fi
+       ;;
+
+force-reload|restart)
+       process_options
+
+       log_warning_msg "Running $0 $1 is deprecated because it may not re-enable some interfaces"
+       log_action_begin_msg "Reconfiguring network interfaces"
+       ifdown -a --exclude=lo $verbose || true
+       set -f
+       exclusions=$(process_exclusions)
+       if ifup -a --exclude=lo $exclusions $verbose && ifup_hotplug $exclusions $verbose
+       then
+           log_action_end_msg $?
+       else
+           log_action_end_msg $?
+       fi
+       ;;
+
+*)
+       echo "Usage: /etc/init.d/networking {start|stop|reload|restart|force-reload}"
+       exit 1
+       ;;
+esac
+
+exit 0
+
+# vim: noet ts=8
diff --git a/init.d/open-vm-tools b/init.d/open-vm-tools
new file mode 100755 (executable)
index 0000000..fa7fcf6
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides:            open-vm-tools
+# Required-Start:      $local_fs $remote_fs
+# Required-Stop:       $local_fs $remote_fs
+# X-Start-Before:
+# X-Stop-After:
+# Default-Start:       2 3 4 5
+# Default-Stop:                0 1 6
+# Description:         Runs the open-vm-tools services
+# Short-Description:   Runs the open-vm-tools services
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+exit_if_not_in_vm () {
+    if which systemd-detect-virt 1>/dev/null; then
+        checktool='systemd-detect-virt'
+    else
+        checktool='vmware-checkvm'
+    fi
+
+    if ! ${checktool} | grep -iq vmware; then
+        echo "open-vm-tools: not starting as this is not a VMware VM"
+        exit 0
+    fi
+}
+
+case "${1}" in
+    start)
+        # Check if we're running inside VMWare
+        exit_if_not_in_vm
+
+        log_daemon_msg "Starting open-vm daemon" "vmtoolsd"
+        start-stop-daemon --start --quiet --pidfile /var/run/vmtoolsd.pid --exec /usr/bin/vmtoolsd --test > /dev/null || exit 1
+        start-stop-daemon --start --quiet --pidfile /var/run/vmtoolsd.pid --exec /usr/bin/vmtoolsd -- --background /var/run/vmtoolsd.pid || exit 2
+        log_end_msg 0
+        ;;
+
+    stop)
+        log_daemon_msg "Stopping open-vm guest daemon" "vmtoolsd"
+        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /var/run/vmtoolsd.pid --exec /usr/bin/vmtoolsd
+        RETURN="${?}"
+        [ "${RETURN}" = 2 ] && exit 2
+        # Many daemons don't delete their pidfiles when they exit.
+        rm -f /var/run/vmtoolsd.pid
+        log_end_msg 0
+        ;;
+
+    force-reload|restart)
+        ${0} stop
+        ${0} start
+        ;;
+
+    status)
+        status_of_proc -p /var/run/vmtoolsd.pid /usr/bin/vmtoolsd vmtoolsd && exit 0 || exit $?
+        ;;
+
+    *)
+        log_success_msg "Usage: ${0} {start|stop|restart|force-reload|status}"
+        exit 1
+        ;;
+esac
diff --git a/init.d/postfix b/init.d/postfix
new file mode 100755 (executable)
index 0000000..c6fe853
--- /dev/null
@@ -0,0 +1,129 @@
+#!/bin/sh -e
+
+# Start or stop Postfix
+#
+# LaMont Jones <lamont@debian.org>
+# based on sendmail's init.d script
+
+### BEGIN INIT INFO
+# Provides:          postfix mail-transport-agent
+# Required-Start:    $local_fs $remote_fs $syslog $named $network $time
+# Required-Stop:     $local_fs $remote_fs $syslog $named $network
+# Should-Start:      postgresql mysql clamav-daemon postgrey spamassassin saslauthd dovecot
+# Should-Stop:       postgresql mysql clamav-daemon postgrey spamassassin saslauthd dovecot
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Postfix Mail Transport Agent
+# Description:       postfix is a Mail Transport agent
+### END INIT INFO
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DAEMON=/usr/sbin/postfix
+NAME=Postfix
+TZ=
+unset TZ
+
+test -x $DAEMON && test -f /etc/postfix/main.cf || exit 0
+
+. /lib/lsb/init-functions
+#DISTRO=$(lsb_release -is 2>/dev/null || echo Debian)
+
+enabled_instances() {
+       postmulti -l -a | awk '($3=="y") { print $1}'
+}
+
+running() {
+    INSTANCE="$1"
+    if [ "X$INSTANCE" = X ]; then
+           POSTMULTI=""
+    else
+           POSTMULTI="postmulti -i $INSTANCE -x "
+    fi
+    POSTCONF="${POSTMULTI} postconf"
+
+    daemon_directory=$($POSTCONF -hx daemon_directory 2>/dev/null || echo /usr/lib/postfix/sbin)
+    if ! ${POSTMULTI} $daemon_directory/master -t 2>/dev/null ; then
+            echo y
+    fi
+}
+
+case "$1" in
+    start)
+       RET=0
+       # for all instances that are not already running, handle chroot setup if needed, and start
+       for INSTANCE in $(enabled_instances); do
+           RUNNING=$(running $INSTANCE)
+           if [ "X$RUNNING" = X ]; then
+               /usr/lib/postfix/configure-instance.sh $INSTANCE
+               CMD="/usr/sbin/postmulti -- -i $INSTANCE -x ${DAEMON}"
+               if ! start-stop-daemon --start --exec $CMD start; then
+                   RET=1
+               fi
+           fi
+       done
+       log_end_msg $RET
+    ;;
+
+    stop)
+       RET=0
+       # for all instances that are not already running, handle chroot setup if needed, and start
+       for INSTANCE in $(enabled_instances); do
+           RUNNING=$(running $INSTANCE)
+           if [ "X$RUNNING" != X ]; then
+               CMD="/usr/sbin/postmulti -i $INSTANCE -x ${DAEMON}"
+               if ! ${CMD} stop; then
+                   RET=1
+               fi
+           fi
+       done
+       log_end_msg $RET
+    ;;
+
+    restart)
+        $0 stop
+        $0 start
+    ;;
+
+    force-reload|reload)
+       ${DAEMON} reload
+    ;;
+
+    status)
+       ALL=1
+       ANY=0
+       # for all instances that are not already running, handle chroot setup if needed, and start
+       for INSTANCE in $(enabled_instances); do
+           RUNNING=$(running $INSTANCE)
+           if [ "X$RUNNING" != X ]; then
+               ANY=1
+           else
+               ALL=0
+           fi
+       done
+       # handle the case when postmulti returns *no* configured instances
+       if [ $ANY = 0 ]; then
+          ALL=0
+       fi
+       if [ $ALL = 1 ]; then
+          log_success_msg "postfix is running"
+          exit 0
+       elif [ $ANY = 1 ]; then
+          log_success_msg "some postfix instances are running"
+          exit 0
+       else
+          log_success_msg "postfix is not running"
+          exit 3
+       fi
+    ;;
+
+    flush|check|abort)
+       ${DAEMON} $1
+    ;;
+
+    *)
+       log_action_msg "Usage: /etc/init.d/postfix {start|stop|restart|reload|flush|check|abort|force-reload|status}"
+       exit 1
+    ;;
+esac
+
+exit 0
diff --git a/init.d/procps b/init.d/procps
new file mode 100755 (executable)
index 0000000..c9a494b
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
+if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
+    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
+fi
+### BEGIN INIT INFO
+# Provides:          procps
+# Required-Start:    mountkernfs $local_fs
+# Required-Stop:
+# Should-Start:      udev module-init-tools
+# X-Start-Before:    $network
+# Default-Start:     S
+# Default-Stop:
+# Short-Description: Configure kernel parameters at boottime
+# Description:  Loads kernel parameters that are specified in /etc/sysctl.conf
+### END INIT INFO
+#
+# written by Elrond <Elrond@Wunder-Nett.org>
+
+DESC="Setting kernel variables"
+DAEMON=/sbin/sysctl
+PIDFILE=none
+
+# Comment this out for sysctl to print every item changed
+QUIET_SYSCTL="-q"
+
+do_start_cmd() {
+       STATUS=0
+       $DAEMON $QUIET_SYSCTL --system || STATUS=$?
+       return $STATUS
+}
+
+do_reload() { call do_start_cmd; }
+do_stop() { return 0; }
+do_status() { return 0; }
diff --git a/init.d/rsync b/init.d/rsync
new file mode 100755 (executable)
index 0000000..3cb0447
--- /dev/null
@@ -0,0 +1,156 @@
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides:          rsyncd
+# Required-Start:    $remote_fs $syslog
+# Required-Stop:     $remote_fs $syslog
+# Should-Start:      $named autofs
+# Default-Start:     2 3 4 5
+# Default-Stop:      
+# Short-Description: fast remote file copy program daemon
+# Description:       rsync is a program that allows files to be copied to and
+#                    from remote machines in much the same way as rcp.
+#                    This provides rsyncd daemon functionality.
+### END INIT INFO
+
+set -e
+
+# /etc/init.d/rsync: start and stop the rsync daemon
+
+DAEMON=/usr/bin/rsync
+RSYNC_ENABLE=false
+RSYNC_OPTS=''
+RSYNC_DEFAULTS_FILE=/etc/default/rsync
+RSYNC_CONFIG_FILE=/etc/rsyncd.conf
+RSYNC_PID_FILE=/var/run/rsync.pid
+RSYNC_NICE_PARM=''
+RSYNC_IONICE_PARM=''
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+if [ -s $RSYNC_DEFAULTS_FILE ]; then
+    . $RSYNC_DEFAULTS_FILE
+    case "x$RSYNC_ENABLE" in
+       xtrue|xfalse)   ;;
+       xinetd)         exit 0
+                       ;;
+       *)              log_failure_msg "Value of RSYNC_ENABLE in $RSYNC_DEFAULTS_FILE must be either 'true' or 'false';"
+                       log_failure_msg "not starting rsync daemon."
+                       exit 1
+                       ;;
+    esac
+    case "x$RSYNC_NICE" in
+       x[0-9]|x1[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";;
+       x)              ;;
+       *)              log_warning_msg "Value of RSYNC_NICE in $RSYNC_DEFAULTS_FILE must be a value between 0 and 19 (inclusive);"
+                       log_warning_msg "ignoring RSYNC_NICE now."
+                       ;;
+    esac
+    case "x$RSYNC_IONICE" in
+       x-c[123]*)      RSYNC_IONICE_PARM="$RSYNC_IONICE";;
+       x)              ;;
+       *)              log_warning_msg "Value of RSYNC_IONICE in $RSYNC_DEFAULTS_FILE must be -c1, -c2 or -c3;"
+                       log_warning_msg "ignoring RSYNC_IONICE now."
+                       ;;
+    esac
+fi
+
+export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+
+rsync_start() {
+    if [ ! -s "$RSYNC_CONFIG_FILE" ]; then
+        log_failure_msg "missing or empty config file $RSYNC_CONFIG_FILE"
+        log_end_msg 1
+        exit 0
+    fi
+    # See ionice(1)
+    if [ -n "$RSYNC_IONICE_PARM" ] && [ -x /usr/bin/ionice ] &&
+        /usr/bin/ionice "$RSYNC_IONICE_PARM" true 2>/dev/null; then
+        /usr/bin/ionice "$RSYNC_IONICE_PARM" -p$$ > /dev/null 2>&1
+    fi
+    if start-stop-daemon --start --quiet --background \
+        --pidfile $RSYNC_PID_FILE --make-pidfile \
+        $RSYNC_NICE_PARM --exec $DAEMON \
+        -- --no-detach --daemon --config "$RSYNC_CONFIG_FILE" $RSYNC_OPTS
+    then
+        rc=0
+        sleep 1
+        if ! kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
+            log_failure_msg "rsync daemon failed to start"
+            rc=1
+        fi
+    else
+        rc=1
+    fi
+    if [ $rc -eq 0 ]; then
+        log_end_msg 0
+    else
+        log_end_msg 1
+        rm -f $RSYNC_PID_FILE
+    fi
+} # rsync_start
+
+
+case "$1" in
+  start)
+       if "$RSYNC_ENABLE"; then
+           log_daemon_msg "Starting rsync daemon" "rsync"
+           if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
+               log_progress_msg "apparently already running"
+               log_end_msg 0
+               exit 0
+           fi
+            rsync_start
+        else
+            if [ -s "$RSYNC_CONFIG_FILE" ]; then
+                [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_FILE, not starting..."
+            fi
+       fi
+       ;;
+  stop)
+       log_daemon_msg "Stopping rsync daemon" "rsync"
+       start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $RSYNC_PID_FILE
+       RETVAL="$?"
+       log_end_msg $RETVAL
+       if [ $RETVAL != 0 ]
+       then
+               exit 1
+       fi
+       rm -f $RSYNC_PID_FILE
+       ;;
+
+  reload|force-reload)
+       log_warning_msg "Reloading rsync daemon: not needed, as the daemon"
+       log_warning_msg "re-reads the config file whenever a client connects."
+       ;;
+
+  restart)
+       set +e
+       if $RSYNC_ENABLE; then
+           log_daemon_msg "Restarting rsync daemon" "rsync"
+           if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
+               start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $RSYNC_PID_FILE
+           else
+               log_warning_msg "rsync daemon not running, attempting to start."
+               rm -f $RSYNC_PID_FILE
+           fi
+            rsync_start
+        else
+            if [ -s "$RSYNC_CONFIG_FILE" ]; then
+                [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_FILE, not starting..."
+            fi
+       fi
+       ;;
+
+  status)
+       status_of_proc -p $RSYNC_PID_FILE "$DAEMON" rsync
+       exit $? # notreached due to set -e
+       ;;
+  *)
+       echo "Usage: /etc/init.d/rsync {start|stop|reload|force-reload|restart|status}"
+       exit 1
+esac
+
+exit 0
diff --git a/init.d/screen-cleanup b/init.d/screen-cleanup
new file mode 100755 (executable)
index 0000000..3eb4185
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+# $Id: init,v 1.3 2004/03/16 01:43:45 zal Exp $
+#
+# Script to remove stale screen named pipes on bootup.
+#
+
+### BEGIN INIT INFO
+# Provides:          screen-cleanup
+# Required-Start:    $remote_fs
+# Required-Stop:     $remote_fs
+# Default-Start:     S
+# Default-Stop:
+# Short-Description: screen sessions cleaning
+# Description: Cleans up the screen session directory and fixes its
+#  permissions if needed.
+### END INIT INFO
+
+set -e
+
+test -f /usr/bin/screen || exit 0
+
+SCREENDIR=/run/screen
+
+case "$1" in
+start)
+    if test -L $SCREENDIR || ! test -d $SCREENDIR; then
+        rm -f $SCREENDIR
+        mkdir $SCREENDIR
+        chown root:utmp $SCREENDIR
+        [ -x /sbin/restorecon ] && /sbin/restorecon $SCREENDIR
+    fi
+    find $SCREENDIR -type p -delete
+# If the local admin has used dpkg-statoverride to install the screen
+# binary with different set[ug]id bits, change the permissions of
+# $SCREENDIR accordingly
+    BINARYPERM=`stat -c%a /usr/bin/screen`
+    if [ "$BINARYPERM" -ge 4000 ]; then
+        chmod 0755 $SCREENDIR
+    elif [ "$BINARYPERM" -ge 2000 ]; then
+        chmod 0775 $SCREENDIR
+    else
+        chmod 1777 $SCREENDIR
+    fi
+    ;;
+stop|restart|reload|force-reload)
+    ;;
+esac
+
+exit 0
diff --git a/init.d/ssh b/init.d/ssh
new file mode 100755 (executable)
index 0000000..1913218
--- /dev/null
@@ -0,0 +1,166 @@
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides:            ssh sshd
+# Required-Start:      $remote_fs $syslog
+# Required-Stop:       $remote_fs $syslog
+# Default-Start:       2 3 4 5
+# Default-Stop:                
+# Short-Description:   OpenBSD Secure Shell server
+### END INIT INFO
+
+set -e
+
+# /etc/init.d/ssh: start and stop the OpenBSD "secure shell(tm)" daemon
+
+test -x /usr/sbin/sshd || exit 0
+( /usr/sbin/sshd -\? 2>&1 | grep -q OpenSSH ) 2>/dev/null || exit 0
+
+umask 022
+
+if test -f /etc/default/ssh; then
+    . /etc/default/ssh
+fi
+
+. /lib/lsb/init-functions
+
+if [ -n "$2" ]; then
+    SSHD_OPTS="$SSHD_OPTS $2"
+fi
+
+# Are we running from init?
+run_by_init() {
+    ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
+}
+
+check_for_no_start() {
+    # forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists
+    if [ -e /etc/ssh/sshd_not_to_be_run ]; then 
+       if [ "$1" = log_end_msg ]; then
+           log_end_msg 0 || true
+       fi
+       if ! run_by_init; then
+           log_action_msg "OpenBSD Secure Shell server not in use (/etc/ssh/sshd_not_to_be_run)" || true
+       fi
+       exit 0
+    fi
+}
+
+check_dev_null() {
+    if [ ! -c /dev/null ]; then
+       if [ "$1" = log_end_msg ]; then
+           log_end_msg 1 || true
+       fi
+       if ! run_by_init; then
+           log_action_msg "/dev/null is not a character device!" || true
+       fi
+       exit 1
+    fi
+}
+
+check_privsep_dir() {
+    # Create the PrivSep empty dir if necessary
+    if [ ! -d /run/sshd ]; then
+       mkdir /run/sshd
+       chmod 0755 /run/sshd
+    fi
+}
+
+check_config() {
+    if [ ! -e /etc/ssh/sshd_not_to_be_run ]; then
+       # shellcheck disable=SC2086
+       /usr/sbin/sshd $SSHD_OPTS -t || exit 1
+    fi
+}
+
+export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+
+case "$1" in
+  start)
+       check_privsep_dir
+       check_for_no_start
+       check_dev_null
+       log_daemon_msg "Starting OpenBSD Secure Shell server" "sshd" || true
+       # shellcheck disable=SC2086
+       if start-stop-daemon --start --quiet --oknodo --chuid 0:0 --pidfile /run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
+           log_end_msg 0 || true
+       else
+           log_end_msg 1 || true
+       fi
+       ;;
+  stop)
+       log_daemon_msg "Stopping OpenBSD Secure Shell server" "sshd" || true
+       if start-stop-daemon --stop --quiet --oknodo --pidfile /run/sshd.pid --exec /usr/sbin/sshd; then
+           log_end_msg 0 || true
+       else
+           log_end_msg 1 || true
+       fi
+       ;;
+
+  reload|force-reload)
+       check_for_no_start
+       check_config
+       log_daemon_msg "Reloading OpenBSD Secure Shell server's configuration" "sshd" || true
+       if start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile /run/sshd.pid --exec /usr/sbin/sshd; then
+           log_end_msg 0 || true
+       else
+           log_end_msg 1 || true
+       fi
+       ;;
+
+  restart)
+       check_privsep_dir
+       check_config
+       log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd" || true
+       start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /run/sshd.pid --exec /usr/sbin/sshd
+       check_for_no_start log_end_msg
+       check_dev_null log_end_msg
+       # shellcheck disable=SC2086
+       if start-stop-daemon --start --quiet --oknodo --chuid 0:0 --pidfile /run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
+           log_end_msg 0 || true
+       else
+           log_end_msg 1 || true
+       fi
+       ;;
+
+  try-restart)
+       check_privsep_dir
+       check_config
+       log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd" || true
+       RET=0
+       start-stop-daemon --stop --quiet --retry 30 --pidfile /run/sshd.pid --exec /usr/sbin/sshd || RET="$?"
+       case $RET in
+           0)
+               # old daemon stopped
+               check_for_no_start log_end_msg
+               check_dev_null log_end_msg
+               # shellcheck disable=SC2086
+               if start-stop-daemon --start --quiet --oknodo --chuid 0:0 --pidfile /run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
+                   log_end_msg 0 || true
+               else
+                   log_end_msg 1 || true
+               fi
+               ;;
+           1)
+               # daemon not running
+               log_progress_msg "(not running)" || true
+               log_end_msg 0 || true
+               ;;
+           *)
+               # failed to stop
+               log_progress_msg "(failed to stop)" || true
+               log_end_msg 1 || true
+               ;;
+       esac
+       ;;
+
+  status)
+       status_of_proc -p /run/sshd.pid /usr/sbin/sshd sshd && exit 0 || exit $?
+       ;;
+
+  *)
+       log_action_msg "Usage: /etc/init.d/ssh {start|stop|reload|force-reload|restart|try-restart|status}" || true
+       exit 1
+esac
+
+exit 0
diff --git a/init.d/sudo b/init.d/sudo
new file mode 100755 (executable)
index 0000000..602d9bf
--- /dev/null
@@ -0,0 +1,46 @@
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides:          sudo
+# Required-Start:    $local_fs $remote_fs
+# Required-Stop:
+# X-Start-Before:    rmnologin
+# Default-Start:     2 3 4 5
+# Default-Stop:
+# Short-Description: Provide limited super user privileges to specific users
+# Description: Provide limited super user privileges to specific users.
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+N=/etc/init.d/sudo
+
+set -e
+
+case "$1" in
+  start)
+       # make sure privileges don't persist across reboots
+       # if the /run/sudo directory doesn't exist, let's create it with the
+       # correct permissions and SELinux label
+        if ! [ -d /run/systemd/system ] ; then
+               if [ -d /run/sudo ]
+               then
+                        find /run/sudo -exec touch -d @0 '{}' \;
+               else
+                       mkdir /run/sudo /run/sudo/ts
+                       chown root:root /run/sudo /run/sudo/ts
+                       chmod 0711 /run/sudo
+                       chmod 0700 /run/sudo/ts
+                       [ -x /sbin/restorecon ] && /sbin/restorecon /run/sudo /run/sudo/ts
+               fi
+       fi
+       ;;
+  stop|reload|restart|force-reload|status)
+       ;;
+  *)
+       echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/init.d/udev b/init.d/udev
new file mode 100755 (executable)
index 0000000..bb54f61
--- /dev/null
@@ -0,0 +1,255 @@
+#!/bin/sh -e
+### BEGIN INIT INFO
+# Provides:          udev
+# Required-Start:    mountkernfs
+# Required-Stop:     umountroot
+# Default-Start:     S
+# Default-Stop:      0 6
+# Short-Description: Start systemd-udevd, populate /dev and load drivers.
+### END INIT INFO
+
+PATH="/sbin:/bin"
+NAME="systemd-udevd"
+DAEMON="/lib/systemd/systemd-udevd"
+DESC="hotplug events dispatcher"
+PIDFILE="/run/udev.pid"
+CTRLFILE="/run/udev/control"
+OMITDIR="/run/sendsigs.omit.d"
+
+# we need to unmount /dev/pts/ and remount it later over the devtmpfs
+unmount_devpts() {
+  if mountpoint -q /dev/pts/; then
+    umount -n -l /dev/pts/
+  fi
+
+  if mountpoint -q /dev/shm/; then
+    umount -n -l /dev/shm/
+  fi
+}
+
+# mount a devtmpfs over /dev, if somebody did not already do it
+mount_devtmpfs() {
+  if grep -E -q "^[^[:space:]]+ /dev devtmpfs" /proc/mounts; then
+    mount -n -o remount,nosuid,size=$tmpfs_size,mode=0755 -t devtmpfs devtmpfs /dev
+    return
+  fi
+
+  if ! mount -n -o nosuid,size=$tmpfs_size,mode=0755 -t devtmpfs devtmpfs /dev; then
+    log_failure_msg "udev requires devtmpfs support, not started"
+    log_end_msg 1
+  fi
+
+  return 0
+}
+
+create_dev_makedev() {
+  if [ -e /sbin/MAKEDEV ]; then
+    ln -sf /sbin/MAKEDEV /dev/MAKEDEV
+  else
+    ln -sf /bin/true /dev/MAKEDEV
+  fi
+}
+
+# shell version of /usr/bin/tty
+my_tty() {
+  [ -x /bin/readlink ] || return 0
+  [ -e /proc/self/fd/0 ] || return 0
+  readlink --silent /proc/self/fd/0 || true
+}
+
+warn_if_interactive() {
+  if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then
+    return
+  fi
+
+  TTY=$(my_tty)
+  if [ -z "$TTY" -o "$TTY" = "/dev/console" -o "$TTY" = "/dev/null" ]; then
+    return
+  fi
+
+  printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n"
+  printf "has been run from an interactive shell.\n"
+  printf "It will probably not do what you expect, so this script will wait\n"
+  printf "60 seconds before continuing. Press ^C to stop it.\n"
+  printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n"
+  sleep 60
+}
+
+make_static_nodes() {
+  [ -e /lib/modules/$(uname -r)/modules.devname ] || return 0
+  [ -x /bin/kmod ] || return 0
+
+  /bin/kmod static-nodes --format=tmpfiles --output=/proc/self/fd/1 | \
+  while read type name mode uid gid age arg; do
+    [ -e $name ] && continue
+    case "$type" in
+      c|b|c!|b!) mknod -m $mode $name $type $(echo $arg | sed 's/:/ /') ;;
+      d|d!) mkdir $name ;;
+      *) echo "unparseable line ($type $name $mode $uid $gid $age $arg)" >&2 ;;
+    esac
+
+    if [ -x /sbin/restorecon ]; then
+      /sbin/restorecon $name
+    fi
+  done
+}
+
+
+##############################################################################
+
+
+[ -x $DAEMON ] || exit 0
+
+# defaults
+tmpfs_size="10M"
+
+if [ -e /etc/udev/udev.conf ]; then
+  . /etc/udev/udev.conf
+fi
+
+. /lib/lsb/init-functions
+
+if [ ! -e /proc/filesystems ]; then
+  log_failure_msg "udev requires a mounted procfs, not started"
+  log_end_msg 1
+fi
+
+if ! grep -q '[[:space:]]devtmpfs$' /proc/filesystems; then
+  log_failure_msg "udev requires devtmpfs support, not started"
+  log_end_msg 1
+fi
+
+if [ ! -d /sys/class/ ]; then
+  log_failure_msg "udev requires a mounted sysfs, not started"
+  log_end_msg 1
+fi
+
+if [ ! -w /sys ]; then
+  log_warning_msg "udev does not support containers, not started"
+  exit 0
+fi
+
+if [ -d /sys/class/mem/null -a ! -L /sys/class/mem/null ] || \
+   [ -e /sys/block -a ! -e /sys/class/block ]; then
+  log_warning_msg "CONFIG_SYSFS_DEPRECATED must not be selected"
+  log_warning_msg "Booting will continue in 30 seconds but many things will be broken"
+  sleep 30
+fi
+
+# When modifying this script, do not forget that between the time that the
+# new /dev has been mounted and udevadm trigger has been run there will be
+# no /dev/null. This also means that you cannot use the "&" shell command.
+
+case "$1" in
+    start)
+    if [ ! -e "/run/udev/" ]; then
+        warn_if_interactive
+    fi
+
+    if [ -w /sys/kernel/uevent_helper ]; then
+        echo > /sys/kernel/uevent_helper
+    fi
+
+    if ! mountpoint -q /dev/; then
+        unmount_devpts
+        mount_devtmpfs
+        [ -d /proc/1 ] || mount -n /proc
+    fi
+
+    make_static_nodes
+
+    # clean up parts of the database created by the initramfs udev
+    udevadm info --cleanup-db
+
+    # set the SELinux context for devices created in the initramfs
+    [ -x /sbin/restorecon ] && /sbin/restorecon -R /dev
+
+    log_daemon_msg "Starting $DESC" "$NAME"
+    if start-stop-daemon --start --name $NAME --user root --quiet \
+        --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile \
+        --notify-await; then
+        # prevents udevd to be killed by sendsigs (see #791944)
+        mkdir -p $OMITDIR
+        ln -sf $PIDFILE $OMITDIR/$NAME
+        log_end_msg $?
+    else
+        log_warning_msg $?
+        log_warning_msg "Waiting 15 seconds and trying to continue anyway"
+        sleep 15
+    fi
+
+    log_action_begin_msg "Synthesizing the initial hotplug events (subsystems)"
+    if udevadm trigger --type=subsystems --action=add; then
+        log_action_end_msg $?
+    else
+        log_action_end_msg $?
+    fi
+    log_action_begin_msg "Synthesizing the initial hotplug events (devices)"
+    if udevadm trigger --type=devices --action=add; then
+        log_action_end_msg $?
+    else
+        log_action_end_msg $?
+    fi
+
+    create_dev_makedev
+
+    # wait for the systemd-udevd childs to finish
+    log_action_begin_msg "Waiting for /dev to be fully populated"
+    if udevadm settle; then
+        log_action_end_msg 0
+    else
+        log_action_end_msg 0 'timeout'
+    fi
+    ;;
+
+    stop)
+    log_daemon_msg "Stopping $DESC" "$NAME"
+    if start-stop-daemon --stop --name $NAME --user root --quiet \
+        --pidfile $PIDFILE --remove-pidfile --oknodo --retry 5; then
+        # prevents cryptsetup/dmsetup hangs (see #791944)
+        rm -f $CTRLFILE
+        log_end_msg $?
+    else
+        log_end_msg $?
+    fi
+    ;;
+
+    restart)
+    log_daemon_msg "Stopping $DESC" "$NAME"
+    if start-stop-daemon --stop --name $NAME --user root --quiet \
+        --pidfile $PIDFILE --remove-pidfile --oknodo --retry 5; then
+        # prevents cryptsetup/dmsetup hangs (see #791944)
+        rm -f $CTRLFILE
+        log_end_msg $?
+    else
+        log_end_msg $? || true
+    fi
+
+    log_daemon_msg "Starting $DESC" "$NAME"
+    if start-stop-daemon --start --name $NAME --user root --quiet \
+        --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile \
+        --notify-await; then
+        # prevents udevd to be killed by sendsigs (see #791944)
+        mkdir -p $OMITDIR
+        ln -sf $PIDFILE $OMITDIR/$NAME
+        log_end_msg $?
+    else
+        log_end_msg $?
+    fi
+    ;;
+
+    reload|force-reload)
+    udevadm control --reload-rules
+    ;;
+
+    status)
+    status_of_proc $DAEMON $NAME && exit 0 || exit $?
+    ;;
+
+    *)
+    echo "Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload|status}" >&2
+    exit 1
+    ;;
+esac
+
+exit 0
diff --git a/init.d/valkey-server b/init.d/valkey-server
new file mode 100755 (executable)
index 0000000..8265787
--- /dev/null
@@ -0,0 +1,89 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:            valkey-server
+# Required-Start:      $syslog $remote_fs
+# Required-Stop:       $syslog $remote_fs
+# Should-Start:                $local_fs
+# Should-Stop:         $local_fs
+# Default-Start:       2 3 4 5
+# Default-Stop:                0 1 6
+# Short-Description:   valkey-server - Persistent key-value db
+# Description:         valkey-server - Persistent key-value db
+### END INIT INFO
+
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/valkey-server
+DAEMON_ARGS=/etc/valkey/valkey.conf
+NAME=valkey-server
+DESC=valkey-server
+
+RUNDIR=/run/valkey
+PIDFILE=$RUNDIR/valkey-server.pid
+
+test -x $DAEMON || exit 0
+
+if [ -r /etc/default/$NAME ]
+then
+       . /etc/default/$NAME
+fi
+
+. /lib/lsb/init-functions
+
+set -e
+
+if [ "$(id -u)" != "0" ]
+then
+       log_failure_msg "Must be run as root."
+       exit 1
+fi
+
+case "$1" in
+  start)
+       echo -n "Starting $DESC: "
+       mkdir -p $RUNDIR
+       touch $PIDFILE
+       chown valkey:valkey $RUNDIR $PIDFILE
+       chmod 755 $RUNDIR
+
+       if [ -n "$ULIMIT" ]
+       then
+               ulimit -n $ULIMIT || true
+       fi
+
+       if start-stop-daemon --start --quiet --oknodo --umask 007 --pidfile $PIDFILE --chuid valkey:valkey --exec $DAEMON -- $DAEMON_ARGS
+       then
+               echo "$NAME."
+       else
+               echo "failed"
+       fi
+       ;;
+  stop)
+       echo -n "Stopping $DESC: "
+
+       if start-stop-daemon --stop --retry forever/TERM/1 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
+       then
+               echo "$NAME."
+       else
+               echo "failed"
+       fi
+       rm -f $PIDFILE
+       sleep 1
+       ;;
+
+  restart|force-reload)
+       ${0} stop
+       ${0} start
+       ;;
+
+  status)
+       status_of_proc -p ${PIDFILE} ${DAEMON} ${NAME}
+       ;;
+
+  *)
+       echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/init.d/x11-common b/init.d/x11-common
new file mode 100755 (executable)
index 0000000..afea20b
--- /dev/null
@@ -0,0 +1,122 @@
+#!/bin/sh
+# /etc/init.d/x11-common: set up the X server and ICE socket directories
+### BEGIN INIT INFO
+# Provides:          x11-common
+# Required-Start:    $remote_fs
+# Required-Stop:     $remote_fs
+# Default-Start:     S
+# Default-Stop:
+# Short-Description: set up the X server and ICE socket directories
+### END INIT INFO
+
+set -e
+
+PATH=/usr/bin:/usr/sbin:/bin:/sbin
+SOCKET_DIR=.X11-unix
+ICE_DIR=.ICE-unix
+
+. /lib/lsb/init-functions
+if [ -f /etc/default/rcS ]; then
+  . /etc/default/rcS
+fi
+
+do_restorecon () {
+  # Restore file security context (SELinux).
+  if command -v restorecon >/dev/null 2>&1; then
+    restorecon "$1"
+  fi
+}
+
+# create a directory in /tmp.
+# assumes /tmp has a sticky bit set (or is only writeable by root)
+set_up_dir () {
+  DIR="/tmp/$1"
+
+  if [ "$VERBOSE" != no ]; then
+    log_progress_msg "$DIR"
+  fi
+  # if $DIR exists and isn't a directory, move it aside
+  if [ -e $DIR ] && ! [ -d $DIR ] || [ -h $DIR ]; then
+    mv "$DIR" "$(mktemp -d $DIR.XXXXXX)"
+  fi
+
+  error=0
+  while :; do
+    if [ $error -ne 0 ] ; then
+      # an error means the file-system is readonly or an attacker
+      # is doing evil things, distinguish by creating a temporary file,
+      # but give up after a while.
+      if [ $error -gt 5 ]; then
+        log_failure_msg "failed to set up $DIR"
+        return 1
+      fi
+      fn="$(mktemp /tmp/testwriteable.XXXXXXXXXX)" || return 1
+      rm "$fn"
+    fi
+    mkdir -p -m 01777 "$DIR" || { rm "$DIR" || error=$((error + 1)) ; continue ; }
+    case "$(LC_ALL=C stat -c '%u %g %a %F' "$DIR")" in
+      "0 0 1777 directory")
+        # everything as it is supposed to be
+        break
+        ;;
+      "0 0 "*" directory")
+        # as it is owned by root, cannot be replaced with a symlink:
+        chmod 01777 "$DIR"
+        break
+        ;;
+      *" directory")
+        # if the chown succeeds, the next step can change it savely
+        chown -h root:root "$DIR" || error=$((error + 1))
+        continue
+        ;;
+      *)
+        log_failure_msg "failed to set up $DIR"
+        return 1
+        ;;
+    esac
+  done
+  do_restorecon "$DIR"
+
+  return 0
+}
+
+do_status () {
+    if [ -d "/tmp/$ICE_DIR" ] && [ -d "/tmp/$SOCKET_DIR" ]; then
+      return 0
+    else
+      return 4
+    fi
+}
+
+case "$1" in
+  start)
+    if [ "$VERBOSE" != no ]; then
+      log_begin_msg "Setting up X socket directories..."
+    fi
+    set_up_dir "$SOCKET_DIR"
+    set_up_dir "$ICE_DIR"
+    if [ "$VERBOSE" != no ]; then
+      log_end_msg 0
+    fi
+  ;;
+
+  restart|reload|force-reload)
+    /etc/init.d/x11-common start
+  ;;
+
+  stop)
+   :
+  ;;
+
+  status)
+    do_status
+  ;;
+  *)
+    log_success_msg "Usage: /etc/init.d/x11-common {start|stop|status|restart|reload|force-reload}"
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# vim:set ai et sts=2 sw=2 tw=0:
diff --git a/initramfs-tools/conf.d/driver-policy b/initramfs-tools/conf.d/driver-policy
new file mode 100644 (file)
index 0000000..c1d30f0
--- /dev/null
@@ -0,0 +1,4 @@
+# Driver inclusion policy selected during installation
+# Note: this setting overrides the value set in the file
+# /etc/initramfs-tools/initramfs.conf
+MODULES=dep
diff --git a/initramfs-tools/conf.d/resume b/initramfs-tools/conf.d/resume
new file mode 100644 (file)
index 0000000..01bcf93
--- /dev/null
@@ -0,0 +1 @@
+RESUME=/dev/mapper/vg00-swap
diff --git a/initramfs-tools/initramfs.conf b/initramfs-tools/initramfs.conf
new file mode 100644 (file)
index 0000000..aa561bd
--- /dev/null
@@ -0,0 +1,90 @@
+#
+# initramfs.conf
+# Configuration file for mkinitramfs(8). See initramfs.conf(5).
+#
+# Note that configuration options from this file can be overridden
+# by config files in the /etc/initramfs-tools/conf.d directory.
+
+#
+# MODULES: [ most | netboot | dep | list ]
+#
+# most - Add most filesystem and all harddrive drivers.
+#
+# dep - Try and guess which modules to load.
+#
+# netboot - Add the base modules, network modules, but skip block devices.
+#
+# list - Only include modules from the 'additional modules' list
+#
+
+MODULES=most
+
+#
+# BUSYBOX: [ y | n | auto ]
+#
+# Use busybox shell and utilities.  If set to n, klibc utilities will be used.
+# If set to auto (or unset), busybox will be used if installed and klibc will
+# be used otherwise.
+#
+
+BUSYBOX=auto
+
+#
+# KEYMAP: [ y | n ]
+#
+# Load a keymap during the initramfs stage.
+#
+
+KEYMAP=n
+
+#
+# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ]
+#
+
+COMPRESS=zstd
+
+#
+# COMPRESSLEVEL: ...
+#
+# Set a compression level for the compressor.
+# Defaults vary by compressor.
+#
+# Valid values are:
+# 1 -  9 for gzip|bzip2|lzma|lzop
+# 0 -  9 for  lz4|xz
+# 0 - 19 for zstd
+#
+# COMPRESSLEVEL=3
+
+#
+# DEVICE: ...
+#
+# Specify a specific network interface, like eth0
+# Overridden by optional ip= or BOOTIF= bootarg
+#
+
+DEVICE=
+
+#
+# NFSROOT: [ auto | HOST:MOUNT ]
+#
+
+NFSROOT=auto
+
+#
+# RUNSIZE: ...
+#
+# The size of the /run tmpfs mount point, like 256M or 10%
+# Overridden by optional initramfs.runsize= bootarg
+#
+
+RUNSIZE=10%
+
+#
+# FSTYPE: ...
+#
+# The filesystem type(s) to support, or "auto" to use the current root
+# filesystem type
+#
+
+FSTYPE=auto
diff --git a/initramfs-tools/modules b/initramfs-tools/modules
new file mode 100644 (file)
index 0000000..dd9dc54
--- /dev/null
@@ -0,0 +1,11 @@
+# List of modules that you want to include in your initramfs.
+# They will be loaded at boot time in the order below.
+#
+# Syntax:  module_name [args ...]
+#
+# You must run update-initramfs(8) to effect this change.
+#
+# Examples:
+#
+# raid1
+# sd_mod
diff --git a/initramfs-tools/update-initramfs.conf b/initramfs-tools/update-initramfs.conf
new file mode 100644 (file)
index 0000000..31823e2
--- /dev/null
@@ -0,0 +1,20 @@
+#
+# Configuration file for update-initramfs(8)
+#
+
+#
+# update_initramfs [ yes | all | no ]
+#
+# Default is yes
+# If set to all update-initramfs will update all initramfs
+# If set to no disables any update to initramfs beside kernel upgrade
+
+update_initramfs=yes
+
+#
+# backup_initramfs [ yes | no ]
+#
+# Default is no
+# If set to no leaves no .bak backup files.
+
+backup_initramfs=no
diff --git a/inputrc b/inputrc
new file mode 100644 (file)
index 0000000..a16ddab
--- /dev/null
+++ b/inputrc
@@ -0,0 +1,71 @@
+# /etc/inputrc - global inputrc for libreadline
+# See readline(3readline) and `info rluserman' for more information.
+
+# Be 8 bit clean.
+set input-meta on
+set output-meta on
+
+# To allow the use of 8bit-characters like the german umlauts, uncomment
+# the line below. However this makes the meta key not work as a meta key,
+# which is annoying to those which don't need to type in 8-bit characters.
+
+# set convert-meta off
+
+# try to enable the application keypad when it is called.  Some systems
+# need this to enable the arrow keys.
+# set enable-keypad on
+
+# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
+
+# do not bell on tab-completion
+# set bell-style none
+# set bell-style visible
+
+# make autocompletion case insensitive and display suggestions
+# set completion-ignore-case On
+# set show-all-if-ambiguous On
+
+# some defaults / modifications for the emacs mode
+$if mode=emacs
+
+# allow the use of the Home/End keys
+"\e[1~": beginning-of-line
+"\e[4~": end-of-line
+
+# allow the use of the Delete/Insert keys
+"\e[3~": delete-char
+"\e[2~": quoted-insert
+
+# mappings for "page up" and "page down" to step to the beginning/end
+# of the history
+# "\e[5~": beginning-of-history
+# "\e[6~": end-of-history
+
+# alternate mappings for "page up" and "page down" to search the history
+# "\e[5~": history-search-backward
+# "\e[6~": history-search-forward
+
+# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
+"\e[1;5C": forward-word
+"\e[1;5D": backward-word
+"\e[5C": forward-word
+"\e[5D": backward-word
+"\e\e[C": forward-word
+"\e\e[D": backward-word
+
+$if term=rxvt
+"\e[7~": beginning-of-line
+"\e[8~": end-of-line
+"\eOc": forward-word
+"\eOd": backward-word
+$endif
+
+# for non RH/Debian xterm, can't hurt for RH/Debian xterm
+# "\eOH": beginning-of-line
+# "\eOF": end-of-line
+
+# for freebsd console
+# "\e[H": beginning-of-line
+# "\e[F": end-of-line
+
+$endif
diff --git a/insserv.conf.d/bind9 b/insserv.conf.d/bind9
new file mode 100644 (file)
index 0000000..1861a99
--- /dev/null
@@ -0,0 +1 @@
+$named bind9
diff --git a/insserv.conf.d/postfix b/insserv.conf.d/postfix
new file mode 100644 (file)
index 0000000..ddd0034
--- /dev/null
@@ -0,0 +1 @@
+$mail-transport-agent postfix
diff --git a/iproute2/bpf_pinning b/iproute2/bpf_pinning
new file mode 100644 (file)
index 0000000..2b39c70
--- /dev/null
@@ -0,0 +1,6 @@
+#
+# subpath mappings from mount point for pinning
+#
+#3     tracing
+#4     foo/bar
+#5     tc/cls1
diff --git a/iproute2/ematch_map b/iproute2/ematch_map
new file mode 100644 (file)
index 0000000..4d6bb2f
--- /dev/null
@@ -0,0 +1,8 @@
+# lookup table for ematch kinds
+1      cmp
+2      nbyte
+3      u32
+4      meta
+7      canid
+8      ipset
+9      ipt
diff --git a/iproute2/group b/iproute2/group
new file mode 100644 (file)
index 0000000..6f000b2
--- /dev/null
@@ -0,0 +1,2 @@
+# device group names
+0      default
diff --git a/iproute2/nl_protos b/iproute2/nl_protos
new file mode 100644 (file)
index 0000000..7c17cf0
--- /dev/null
@@ -0,0 +1,23 @@
+# Netlink protocol names mapping
+
+0   rtnl
+1   unused
+2   usersock
+3   fw
+4   tcpdiag
+5   nflog
+6   xfrm
+7   selinux
+8   iscsi
+9   audit
+10  fiblookup
+11  connector
+12  nft
+13  ip6fw
+14  dec-rt
+15  uevent
+16  genl
+18  scsi-trans
+19  ecryptfs
+20  rdma
+21  crypto
diff --git a/iproute2/rt_dsfield b/iproute2/rt_dsfield
new file mode 100644 (file)
index 0000000..1426d60
--- /dev/null
@@ -0,0 +1,26 @@
+# Differentiated field values
+# These include the DSCP and unused bits
+0x0    default
+# Newer RFC2597 values
+0x28   AF11
+0x30   AF12
+0x38   AF13
+0x48   AF21
+0x50   AF22
+0x58   AF23
+0x68   AF31
+0x70   AF32
+0x78   AF33
+0x88   AF41
+0x90   AF42
+0x98   AF43
+# Older values RFC2474
+0x20   CS1
+0x40   CS2
+0x60   CS3
+0x80   CS4
+0xA0   CS5
+0xC0   CS6
+0xE0   CS7
+# RFC 2598
+0xB8   EF
diff --git a/iproute2/rt_protos b/iproute2/rt_protos
new file mode 100644 (file)
index 0000000..0f98609
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# Reserved protocols.
+#
+0      unspec
+1      redirect
+2      kernel
+3      boot
+4      static
+8      gated
+9      ra
+10     mrt
+11     zebra
+12     bird
+13     dnrouted
+14     xorp
+15     ntk
+16     dhcp
+18     keepalived
+42     babel
+99     openr
+186    bgp
+187    isis
+188    ospf
+189    rip
+192    eigrp
diff --git a/iproute2/rt_protos.d/README b/iproute2/rt_protos.d/README
new file mode 100644 (file)
index 0000000..f9c599c
--- /dev/null
@@ -0,0 +1,2 @@
+Each file in this directory is an rt_protos configuration file. iproute2
+commands scan this directory processing all files that end in '.conf'.
diff --git a/iproute2/rt_realms b/iproute2/rt_realms
new file mode 100644 (file)
index 0000000..eedd76d
--- /dev/null
@@ -0,0 +1,13 @@
+#
+# reserved values
+#
+0      cosmos
+#
+# local
+#
+#1     inr.ac
+#2     inr.ruhep
+#3     freenet
+#4     radio-msu
+#5     russia
+#6     internet
diff --git a/iproute2/rt_scopes b/iproute2/rt_scopes
new file mode 100644 (file)
index 0000000..8514bc1
--- /dev/null
@@ -0,0 +1,11 @@
+#
+# reserved values
+#
+0      global
+255    nowhere
+254    host
+253    link
+#
+# pseudo-reserved
+#
+200    site
diff --git a/iproute2/rt_tables b/iproute2/rt_tables
new file mode 100644 (file)
index 0000000..541abfd
--- /dev/null
@@ -0,0 +1,11 @@
+#
+# reserved values
+#
+255    local
+254    main
+253    default
+0      unspec
+#
+# local
+#
+#1     inr.ruhep
diff --git a/iproute2/rt_tables.d/README b/iproute2/rt_tables.d/README
new file mode 100644 (file)
index 0000000..0920cb1
--- /dev/null
@@ -0,0 +1,2 @@
+Each file in this directory is an rt_tables configuration file. iproute2
+commands scan this directory processing all files that end in '.conf'.
diff --git a/issue b/issue
new file mode 100644 (file)
index 0000000..d0506b2
--- /dev/null
+++ b/issue
@@ -0,0 +1,2 @@
+Debian GNU/Linux 12 \n \l
+
diff --git a/issue.net b/issue.net
new file mode 100644 (file)
index 0000000..04cb63f
--- /dev/null
+++ b/issue.net
@@ -0,0 +1 @@
+Debian GNU/Linux 12
diff --git a/kernel-img.conf b/kernel-img.conf
new file mode 100644 (file)
index 0000000..e818d6e
--- /dev/null
@@ -0,0 +1,6 @@
+# Kernel image management overrides
+# See kernel-img.conf(5) for details
+do_symlinks = yes
+do_bootloader = no
+do_initrd = yes
+link_in_boot = no
diff --git a/kernel/postinst.d/initramfs-tools b/kernel/postinst.d/initramfs-tools
new file mode 100755 (executable)
index 0000000..6b6fef3
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh -e
+
+version="$1"
+bootopt=""
+
+command -v update-initramfs >/dev/null 2>&1 || exit 0
+
+# passing the kernel version is required
+if [ -z "${version}" ]; then
+       echo >&2 "W: initramfs-tools: ${DPKG_MAINTSCRIPT_PACKAGE:-kernel package} did not pass a version number"
+       exit 2
+fi
+
+# exit if kernel does not need an initramfs
+if [ "$INITRD" = 'No' ]; then
+       exit 0
+fi
+
+# absolute file name of kernel image may be passed as a second argument;
+# create the initrd in the same directory
+if [ -n "$2" ]; then
+       bootdir=$(dirname "$2")
+       bootopt="-b ${bootdir}"
+fi
+
+# avoid running multiple times
+if [ -n "$DEB_MAINT_PARAMS" ]; then
+       eval set -- "$DEB_MAINT_PARAMS"
+       if [ -z "$1" ] || [ "$1" != "configure" ]; then
+               exit 0
+       fi
+fi
+
+# we're good - create initramfs.  update runs do_bootloader
+# shellcheck disable=SC2086
+update-initramfs -c -k "${version}" ${bootopt} >&2
diff --git a/kernel/postinst.d/zz-update-grub b/kernel/postinst.d/zz-update-grub
new file mode 100755 (executable)
index 0000000..9521057
--- /dev/null
@@ -0,0 +1,26 @@
+#! /bin/sh
+set -e
+
+command -v update-grub >/dev/null || exit 0
+
+if type systemd-detect-virt >/dev/null 2>&1 &&
+   systemd-detect-virt --quiet --container; then
+       exit 0
+fi
+
+set -- $DEB_MAINT_PARAMS
+mode="${1#\'}"
+mode="${mode%\'}"
+case $0:$mode in
+    # Only run on postinst configure and postrm remove, to avoid wasting
+    # time by calling update-grub multiple times on upgrade and removal.
+    # Also run if we have no DEB_MAINT_PARAMS, in order to work with old
+    # kernel packages.
+    */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove)
+       if [ -e /boot/grub/grub.cfg ]; then
+               exec update-grub
+       fi
+       ;;
+esac
+
+exit 0
diff --git a/kernel/postrm.d/initramfs-tools b/kernel/postrm.d/initramfs-tools
new file mode 100755 (executable)
index 0000000..c340beb
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh -e
+
+version="$1"
+bootopt=""
+
+[ -x /usr/sbin/update-initramfs ] || exit 0
+
+# passing the kernel version is required
+if [ -z "${version}" ]; then
+       echo >&2 "W: initramfs-tools: ${DPKG_MAINTSCRIPT_PACKAGE:-kernel package} did not pass a version number"
+       exit 0
+fi
+
+# exit if custom kernel does not need an initramfs
+if [ "$INITRD" = 'No' ]; then
+       exit 0
+fi
+
+# absolute file name of kernel image may be passed as a second argument;
+# create the initrd in the same directory
+if [ -n "$2" ]; then
+       bootdir=$(dirname "$2")
+       bootopt="-b ${bootdir}"
+fi
+
+# avoid running multiple times
+if [ -n "$DEB_MAINT_PARAMS" ]; then
+       eval set -- "$DEB_MAINT_PARAMS"
+       if [ -z "$1" ] || [ "$1" != "remove" ]; then
+               exit 0
+       fi
+fi
+
+# delete initramfs
+# shellcheck disable=SC2086
+update-initramfs -d -k "${version}" ${bootopt} >&2
diff --git a/kernel/postrm.d/zz-update-grub b/kernel/postrm.d/zz-update-grub
new file mode 100755 (executable)
index 0000000..9521057
--- /dev/null
@@ -0,0 +1,26 @@
+#! /bin/sh
+set -e
+
+command -v update-grub >/dev/null || exit 0
+
+if type systemd-detect-virt >/dev/null 2>&1 &&
+   systemd-detect-virt --quiet --container; then
+       exit 0
+fi
+
+set -- $DEB_MAINT_PARAMS
+mode="${1#\'}"
+mode="${mode%\'}"
+case $0:$mode in
+    # Only run on postinst configure and postrm remove, to avoid wasting
+    # time by calling update-grub multiple times on upgrade and removal.
+    # Also run if we have no DEB_MAINT_PARAMS, in order to work with old
+    # kernel packages.
+    */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove)
+       if [ -e /boot/grub/grub.cfg ]; then
+               exec update-grub
+       fi
+       ;;
+esac
+
+exit 0
diff --git a/kernel/preinst.d/intel-microcode b/kernel/preinst.d/intel-microcode
new file mode 100755 (executable)
index 0000000..d98b40c
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# /etc/kernel/preinst.d script for intel-microcode version 3
+# Copyright (C) 2014 Henrique de Moraes Holschuh <hmh@debian.org>
+# Released under the GPL v2 or later license
+#
+# This script makes sure the cpuid module is loaded, before the
+# kernel image has a chance to replace it with a new one that
+# might not be compatible with the current kernel.
+#
+# We need the cpuid module for iucode_tool --scan-system,
+# which is used by the initramfs hook.
+#
+
+grep -q cpu/cpuid /proc/devices || modprobe -q cpuid || true
+
+:
diff --git a/ld.so.conf b/ld.so.conf
new file mode 100644 (file)
index 0000000..20c9763
--- /dev/null
@@ -0,0 +1,2 @@
+include /etc/ld.so.conf.d/*.conf
+
diff --git a/ld.so.conf.d/libc.conf b/ld.so.conf.d/libc.conf
new file mode 100644 (file)
index 0000000..463b8bb
--- /dev/null
@@ -0,0 +1,2 @@
+# libc default configuration
+/usr/local/lib
diff --git a/ld.so.conf.d/x86_64-linux-gnu.conf b/ld.so.conf.d/x86_64-linux-gnu.conf
new file mode 100644 (file)
index 0000000..cd691ab
--- /dev/null
@@ -0,0 +1,4 @@
+# Multiarch support
+/usr/local/lib/x86_64-linux-gnu
+/lib/x86_64-linux-gnu
+/usr/lib/x86_64-linux-gnu
diff --git a/ldap/ldap.conf b/ldap/ldap.conf
new file mode 100644 (file)
index 0000000..635114a
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# LDAP Defaults
+#
+
+# See ldap.conf(5) for details
+# This file should be world readable but not world writable.
+
+#BASE  dc=example,dc=com
+#URI   ldap://ldap.example.com ldap://ldap-provider.example.com:666
+
+#SIZELIMIT     12
+#TIMELIMIT     15
+#DEREF         never
+
+# TLS certificates (needed for GnuTLS)
+TLS_CACERT     /etc/ssl/certs/ca-certificates.crt
+
diff --git a/libaudit.conf b/libaudit.conf
new file mode 100644 (file)
index 0000000..90855d7
--- /dev/null
@@ -0,0 +1,7 @@
+# This is the configuration file for libaudit tunables.
+# It is currently only used for the failure_action tunable.
+
+# failure_action can be: log, ignore, terminate
+failure_action = ignore
+
+
diff --git a/libnl-3/classid b/libnl-3/classid
new file mode 100644 (file)
index 0000000..2203243
--- /dev/null
@@ -0,0 +1,45 @@
+###############################################################################
+#
+# ClassID <-> Name Translation Table
+#
+# This file can be used to assign names to classids for easier reference
+# in all libnl tools.
+#
+# Format:
+#   <MAJ:>             <NAME>          # qdisc definition
+#   <MAJ:MIN>          <NAME>          # class deifnition
+#   <NAME:MIN>         <NAME>          # class definition referencing an
+#                                        existing qdisc definition.
+#
+# Example:
+#   1:                 top             # top -> 1:0
+#   top:1              interactive     # interactive -> 1:1
+#   top:2              www             # www -> 1:2
+#   top:3              bulk            # bulk -> 1:3
+#   2:1                        test_class      # test_class -> 2:1
+#
+# Illegal Example:
+#   30:1                classD
+#   classD:2            invalidClass    # classD refers to a class, not a qdisc
+#
+###############################################################################
+
+# <CLASSID>            <NAME>
+
+# Reserved default classids
+0:0                    none
+ffff:ffff              root
+ffff:fff1              ingress
+
+#
+# List your classid definitions here:
+#
+
+
+
+###############################################################################
+# List of auto-generated classids
+#
+# DO NOT ADD CLASSID DEFINITIONS BELOW THIS LINE
+#
+# <CLASSID>            <NAME>
diff --git a/libnl-3/pktloc b/libnl-3/pktloc
new file mode 100644 (file)
index 0000000..8559161
--- /dev/null
@@ -0,0 +1,76 @@
+#
+# Location definitions for packet matching
+#
+
+# name         alignment       offset          mask            shift
+ip.version     u8              net+0           0xF0            4
+ip.hdrlen      u8              net+0           0x0F
+ip.diffserv    u8              net+1
+ip.length      u16             net+2
+ip.id          u16             net+4
+ip.flag.res    u8              net+6           0xff            7
+ip.df          u8              net+6           0x40            6
+ip.mf          u8              net+6           0x20            5
+ip.offset      u16             net+6           0x1FFF
+ip.ttl         u8              net+8
+ip.proto       u8              net+9
+ip.chksum      u16             net+10
+ip.src         u32             net+12
+ip.dst         u32             net+16
+
+# if ip.ihl > 5
+ip.opts                u32             net+20
+
+
+#
+# IP version 6
+#
+# name         alignment       offset          mask            shift
+ip6.version    u8              net+0           0xF0            4
+ip6.tc         u16             net+0           0xFF0           4
+ip6.flowlabel  u32             net+0           0xFFFFF
+ip6.length     u16             net+4
+ip6.nexthdr    u8              net+6
+ip6.hoplimit   u8              net+7
+ip6.src                16              net+8
+ip6.dst                16              net+24
+
+#
+# Transmission Control Protocol (TCP)
+#
+# name         alignment       offset          mask            shift
+tcp.sport      u16             tcp+0
+tcp.dport      u16             tcp+2
+tcp.seq                u32             tcp+4
+tcp.ack                u32             tcp+8
+
+# Data offset (4 bits)
+tcp.off                u8              tcp+12          0xF0            4
+
+# Reserved [0 0 0] (3 bits)
+tcp.reserved   u8              tcp+12          0x04            1
+
+# ECN [N C E] (3 bits)
+tcp.ecn                u16             tcp+12          0x01C00         6
+
+# Individual TCP flags (0|1) (6 bits in total)
+tcp.flag.urg   u8              tcp+13          0x20            5
+tcp.flag.ack   u8              tcp+13          0x10            4
+tcp.flag.psh   u8              tcp+13          0x08            3
+tcp.flag.rst   u8              tcp+13          0x04            2
+tcp.flag.syn   u8              tcp+13          0x02            1
+tcp.flag.fin   u8              tcp+13          0x01
+
+tcp.win                u16             tcp+14
+tcp.csum       u16             tcp+16
+tcp.urg                u16             tcp+18
+tcp.opts       u32             tcp+20
+
+#
+# User Datagram Protocol (UDP)
+#
+# name         alignment       offset          mask            shift
+udp.sport      u16             tcp+0
+udp.dport      u16             tcp+2
+udp.length     u16             tcp+4
+udp.csum       u16             tcp+6
diff --git a/lighttpd/conf-available/90-javascript-alias.conf b/lighttpd/conf-available/90-javascript-alias.conf
new file mode 100644 (file)
index 0000000..a8b442f
--- /dev/null
@@ -0,0 +1 @@
+alias.url += ("/javascript" => "/usr/share/javascript")
diff --git a/lighttpd/conf-enabled/90-javascript-alias.conf b/lighttpd/conf-enabled/90-javascript-alias.conf
new file mode 120000 (symlink)
index 0000000..dc909f6
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/90-javascript-alias.conf
\ No newline at end of file
diff --git a/locale.alias b/locale.alias
new file mode 100644 (file)
index 0000000..f3e5260
--- /dev/null
@@ -0,0 +1,82 @@
+# Locale name alias data base.
+# Copyright (C) 1996-2022 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+
+# The format of this file is the same as for the corresponding file of
+# the X Window System, which normally can be found in
+#      /usr/lib/X11/locale/locale.alias
+# A single line contains two fields: an alias and a substitution value.
+# All entries are case independent.
+
+# Note: This file is obsolete and is kept around for the time being for
+# backward compatibility.  Nobody should rely on the names defined here.
+# Locales should always be specified by their full name.
+
+# Note: This file used to contain the following lines:
+#      bokmaal         nb_NO.ISO-8859-1
+#      franc,ais       fr_FR.ISO-8859-1
+# except that the "aa" was actually the byte '\0xE5' (the Latin-1
+# encoding for U+00E5 LATIN SMALL LETTER A WITH RING ABOVE) and the
+# "c," was actually the byte '\xE7' (the Latin-1 encoding for U+00E7
+# LATIN SMALL LETTER C WITH CEDILLA).  These lines were removed
+# because they caused 'locale -a' to output text encoded in Latin-1,
+# which broke applications in UTF-8 locales.  See:
+# https://sourceware.org/bugzilla/show_bug.cgi?id=18412
+
+bokmal         nb_NO.ISO-8859-1
+catalan                ca_ES.ISO-8859-1
+croatian       hr_HR.ISO-8859-2
+czech          cs_CZ.ISO-8859-2
+danish          da_DK.ISO-8859-1
+dansk          da_DK.ISO-8859-1
+deutsch                de_DE.ISO-8859-1
+dutch          nl_NL.ISO-8859-1
+eesti          et_EE.ISO-8859-15
+estonian       et_EE.ISO-8859-15
+finnish         fi_FI.ISO-8859-1
+french         fr_FR.ISO-8859-1
+galego         gl_ES.ISO-8859-1
+galician       gl_ES.ISO-8859-1
+german         de_DE.ISO-8859-1
+greek           el_GR.ISO-8859-7
+hebrew          he_IL.ISO-8859-8
+hrvatski       hr_HR.ISO-8859-2
+hungarian       hu_HU.ISO-8859-2
+icelandic       is_IS.ISO-8859-1
+italian         it_IT.ISO-8859-1
+japanese       ja_JP.eucJP
+japanese.euc   ja_JP.eucJP
+ja_JP          ja_JP.eucJP
+ja_JP.ujis     ja_JP.eucJP
+japanese.sjis  ja_JP.SJIS
+korean         ko_KR.eucKR
+korean.euc     ko_KR.eucKR
+ko_KR          ko_KR.eucKR
+lithuanian      lt_LT.ISO-8859-13
+no_NO          nb_NO.ISO-8859-1
+no_NO.ISO-8859-1 nb_NO.ISO-8859-1
+norwegian       nb_NO.ISO-8859-1
+nynorsk                nn_NO.ISO-8859-1
+polish          pl_PL.ISO-8859-2
+portuguese      pt_PT.ISO-8859-1
+romanian        ro_RO.ISO-8859-2
+russian         ru_RU.KOI8-R
+slovak          sk_SK.ISO-8859-2
+slovene         sl_SI.ISO-8859-2
+slovenian       sl_SI.ISO-8859-2
+spanish         es_ES.ISO-8859-1
+swedish         sv_SE.ISO-8859-1
+thai           th_TH.TIS-620
+turkish         tr_TR.ISO-8859-9
diff --git a/locale.gen b/locale.gen
new file mode 100644 (file)
index 0000000..5841f1f
--- /dev/null
@@ -0,0 +1,513 @@
+# This file lists locales that you wish to have built. You can find a list
+# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add
+# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change
+# this file, you need to rerun locale-gen.
+
+
+# C.UTF-8 UTF-8
+# aa_DJ ISO-8859-1
+# aa_DJ.UTF-8 UTF-8
+# aa_ER UTF-8
+# aa_ER@saaho UTF-8
+# aa_ET UTF-8
+# af_ZA ISO-8859-1
+# af_ZA.UTF-8 UTF-8
+# agr_PE UTF-8
+# ak_GH UTF-8
+# am_ET UTF-8
+# an_ES ISO-8859-15
+# an_ES.UTF-8 UTF-8
+# anp_IN UTF-8
+# ar_AE ISO-8859-6
+# ar_AE.UTF-8 UTF-8
+# ar_BH ISO-8859-6
+# ar_BH.UTF-8 UTF-8
+# ar_DZ ISO-8859-6
+# ar_DZ.UTF-8 UTF-8
+# ar_EG ISO-8859-6
+# ar_EG.UTF-8 UTF-8
+# ar_IN UTF-8
+# ar_IQ ISO-8859-6
+# ar_IQ.UTF-8 UTF-8
+# ar_JO ISO-8859-6
+# ar_JO.UTF-8 UTF-8
+# ar_KW ISO-8859-6
+# ar_KW.UTF-8 UTF-8
+# ar_LB ISO-8859-6
+# ar_LB.UTF-8 UTF-8
+# ar_LY ISO-8859-6
+# ar_LY.UTF-8 UTF-8
+# ar_MA ISO-8859-6
+# ar_MA.UTF-8 UTF-8
+# ar_OM ISO-8859-6
+# ar_OM.UTF-8 UTF-8
+# ar_QA ISO-8859-6
+# ar_QA.UTF-8 UTF-8
+# ar_SA ISO-8859-6
+# ar_SA.UTF-8 UTF-8
+# ar_SD ISO-8859-6
+# ar_SD.UTF-8 UTF-8
+# ar_SS UTF-8
+# ar_SY ISO-8859-6
+# ar_SY.UTF-8 UTF-8
+# ar_TN ISO-8859-6
+# ar_TN.UTF-8 UTF-8
+# ar_YE ISO-8859-6
+# ar_YE.UTF-8 UTF-8
+# as_IN UTF-8
+# ast_ES ISO-8859-15
+# ast_ES.UTF-8 UTF-8
+# ayc_PE UTF-8
+# az_AZ UTF-8
+# az_IR UTF-8
+# be_BY CP1251
+# be_BY.UTF-8 UTF-8
+# be_BY@latin UTF-8
+# bem_ZM UTF-8
+# ber_DZ UTF-8
+# ber_MA UTF-8
+# bg_BG CP1251
+# bg_BG.UTF-8 UTF-8
+# bhb_IN.UTF-8 UTF-8
+# bho_IN UTF-8
+# bho_NP UTF-8
+# bi_VU UTF-8
+# bn_BD UTF-8
+# bn_IN UTF-8
+# bo_CN UTF-8
+# bo_IN UTF-8
+# br_FR ISO-8859-1
+# br_FR.UTF-8 UTF-8
+# br_FR@euro ISO-8859-15
+# brx_IN UTF-8
+# bs_BA ISO-8859-2
+# bs_BA.UTF-8 UTF-8
+# byn_ER UTF-8
+# ca_AD ISO-8859-15
+# ca_AD.UTF-8 UTF-8
+# ca_ES ISO-8859-1
+# ca_ES.UTF-8 UTF-8
+# ca_ES@euro ISO-8859-15
+# ca_ES@valencia UTF-8
+# ca_FR ISO-8859-15
+# ca_FR.UTF-8 UTF-8
+# ca_IT ISO-8859-15
+# ca_IT.UTF-8 UTF-8
+# ce_RU UTF-8
+# chr_US UTF-8
+# ckb_IQ UTF-8
+# cmn_TW UTF-8
+# crh_UA UTF-8
+# cs_CZ ISO-8859-2
+# cs_CZ.UTF-8 UTF-8
+# csb_PL UTF-8
+# cv_RU UTF-8
+# cy_GB ISO-8859-14
+# cy_GB.UTF-8 UTF-8
+# da_DK ISO-8859-1
+# da_DK.UTF-8 UTF-8
+# de_AT ISO-8859-1
+# de_AT.UTF-8 UTF-8
+# de_AT@euro ISO-8859-15
+# de_BE ISO-8859-1
+# de_BE.UTF-8 UTF-8
+# de_BE@euro ISO-8859-15
+# de_CH ISO-8859-1
+# de_CH.UTF-8 UTF-8
+# de_DE ISO-8859-1
+# de_DE.UTF-8 UTF-8
+# de_DE@euro ISO-8859-15
+# de_IT ISO-8859-1
+# de_IT.UTF-8 UTF-8
+# de_LI.UTF-8 UTF-8
+# de_LU ISO-8859-1
+# de_LU.UTF-8 UTF-8
+# de_LU@euro ISO-8859-15
+# doi_IN UTF-8
+# dsb_DE UTF-8
+# dv_MV UTF-8
+# dz_BT UTF-8
+# el_CY ISO-8859-7
+# el_CY.UTF-8 UTF-8
+# el_GR ISO-8859-7
+# el_GR.UTF-8 UTF-8
+# el_GR@euro ISO-8859-7
+# en_AG UTF-8
+# en_AU ISO-8859-1
+# en_AU.UTF-8 UTF-8
+# en_BW ISO-8859-1
+# en_BW.UTF-8 UTF-8
+# en_CA ISO-8859-1
+# en_CA.UTF-8 UTF-8
+# en_DK ISO-8859-1
+# en_DK.ISO-8859-15 ISO-8859-15
+# en_DK.UTF-8 UTF-8
+# en_GB ISO-8859-1
+# en_GB.ISO-8859-15 ISO-8859-15
+# en_GB.UTF-8 UTF-8
+# en_HK ISO-8859-1
+# en_HK.UTF-8 UTF-8
+# en_IE ISO-8859-1
+# en_IE.UTF-8 UTF-8
+# en_IE@euro ISO-8859-15
+# en_IL UTF-8
+# en_IN UTF-8
+# en_NG UTF-8
+# en_NZ ISO-8859-1
+# en_NZ.UTF-8 UTF-8
+# en_PH ISO-8859-1
+# en_PH.UTF-8 UTF-8
+# en_SC.UTF-8 UTF-8
+# en_SG ISO-8859-1
+# en_SG.UTF-8 UTF-8
+# en_US ISO-8859-1
+# en_US.ISO-8859-15 ISO-8859-15
+# en_US.UTF-8 UTF-8
+# en_ZA ISO-8859-1
+# en_ZA.UTF-8 UTF-8
+# en_ZM UTF-8
+# en_ZW ISO-8859-1
+# en_ZW.UTF-8 UTF-8
+# eo UTF-8
+# es_AR ISO-8859-1
+# es_AR.UTF-8 UTF-8
+# es_BO ISO-8859-1
+# es_BO.UTF-8 UTF-8
+# es_CL ISO-8859-1
+# es_CL.UTF-8 UTF-8
+# es_CO ISO-8859-1
+# es_CO.UTF-8 UTF-8
+# es_CR ISO-8859-1
+# es_CR.UTF-8 UTF-8
+# es_CU UTF-8
+# es_DO ISO-8859-1
+# es_DO.UTF-8 UTF-8
+# es_EC ISO-8859-1
+# es_EC.UTF-8 UTF-8
+# es_ES ISO-8859-1
+# es_ES.UTF-8 UTF-8
+# es_ES@euro ISO-8859-15
+# es_GT ISO-8859-1
+# es_GT.UTF-8 UTF-8
+# es_HN ISO-8859-1
+# es_HN.UTF-8 UTF-8
+# es_MX ISO-8859-1
+# es_MX.UTF-8 UTF-8
+# es_NI ISO-8859-1
+# es_NI.UTF-8 UTF-8
+# es_PA ISO-8859-1
+# es_PA.UTF-8 UTF-8
+# es_PE ISO-8859-1
+# es_PE.UTF-8 UTF-8
+# es_PR ISO-8859-1
+# es_PR.UTF-8 UTF-8
+# es_PY ISO-8859-1
+# es_PY.UTF-8 UTF-8
+# es_SV ISO-8859-1
+# es_SV.UTF-8 UTF-8
+# es_US ISO-8859-1
+# es_US.UTF-8 UTF-8
+# es_UY ISO-8859-1
+# es_UY.UTF-8 UTF-8
+# es_VE ISO-8859-1
+# es_VE.UTF-8 UTF-8
+# et_EE ISO-8859-1
+# et_EE.ISO-8859-15 ISO-8859-15
+# et_EE.UTF-8 UTF-8
+# eu_ES ISO-8859-1
+# eu_ES.UTF-8 UTF-8
+# eu_ES@euro ISO-8859-15
+# eu_FR ISO-8859-1
+# eu_FR.UTF-8 UTF-8
+# eu_FR@euro ISO-8859-15
+# fa_IR UTF-8
+# ff_SN UTF-8
+# fi_FI ISO-8859-1
+# fi_FI.UTF-8 UTF-8
+# fi_FI@euro ISO-8859-15
+# fil_PH UTF-8
+# fo_FO ISO-8859-1
+# fo_FO.UTF-8 UTF-8
+# fr_BE ISO-8859-1
+# fr_BE.UTF-8 UTF-8
+# fr_BE@euro ISO-8859-15
+# fr_CA ISO-8859-1
+# fr_CA.UTF-8 UTF-8
+# fr_CH ISO-8859-1
+# fr_CH.UTF-8 UTF-8
+# fr_FR ISO-8859-1
+# fr_FR.UTF-8 UTF-8
+# fr_FR@euro ISO-8859-15
+# fr_LU ISO-8859-1
+# fr_LU.UTF-8 UTF-8
+# fr_LU@euro ISO-8859-15
+# fur_IT UTF-8
+# fy_DE UTF-8
+# fy_NL UTF-8
+# ga_IE ISO-8859-1
+# ga_IE.UTF-8 UTF-8
+# ga_IE@euro ISO-8859-15
+# gd_GB ISO-8859-15
+# gd_GB.UTF-8 UTF-8
+# gez_ER UTF-8
+# gez_ER@abegede UTF-8
+# gez_ET UTF-8
+# gez_ET@abegede UTF-8
+# gl_ES ISO-8859-1
+# gl_ES.UTF-8 UTF-8
+# gl_ES@euro ISO-8859-15
+# gu_IN UTF-8
+# gv_GB ISO-8859-1
+# gv_GB.UTF-8 UTF-8
+# ha_NG UTF-8
+# hak_TW UTF-8
+# he_IL ISO-8859-8
+# he_IL.UTF-8 UTF-8
+# hi_IN UTF-8
+# hif_FJ UTF-8
+# hne_IN UTF-8
+# hr_HR ISO-8859-2
+# hr_HR.UTF-8 UTF-8
+# hsb_DE ISO-8859-2
+# hsb_DE.UTF-8 UTF-8
+# ht_HT UTF-8
+# hu_HU ISO-8859-2
+# hu_HU.UTF-8 UTF-8
+# hy_AM UTF-8
+# hy_AM.ARMSCII-8 ARMSCII-8
+# ia_FR UTF-8
+# id_ID ISO-8859-1
+# id_ID.UTF-8 UTF-8
+# ig_NG UTF-8
+# ik_CA UTF-8
+# is_IS ISO-8859-1
+# is_IS.UTF-8 UTF-8
+# it_CH ISO-8859-1
+# it_CH.UTF-8 UTF-8
+# it_IT ISO-8859-1
+# it_IT.UTF-8 UTF-8
+# it_IT@euro ISO-8859-15
+# iu_CA UTF-8
+# ja_JP.EUC-JP EUC-JP
+# ja_JP.UTF-8 UTF-8
+# ka_GE GEORGIAN-PS
+# ka_GE.UTF-8 UTF-8
+# kab_DZ UTF-8
+# kk_KZ PT154
+# kk_KZ.RK1048 RK1048
+# kk_KZ.UTF-8 UTF-8
+# kl_GL ISO-8859-1
+# kl_GL.UTF-8 UTF-8
+# km_KH UTF-8
+# kn_IN UTF-8
+# ko_KR.EUC-KR EUC-KR
+# ko_KR.UTF-8 UTF-8
+# kok_IN UTF-8
+# ks_IN UTF-8
+# ks_IN@devanagari UTF-8
+# ku_TR ISO-8859-9
+# ku_TR.UTF-8 UTF-8
+# kw_GB ISO-8859-1
+# kw_GB.UTF-8 UTF-8
+# ky_KG UTF-8
+# lb_LU UTF-8
+# lg_UG ISO-8859-10
+# lg_UG.UTF-8 UTF-8
+# li_BE UTF-8
+# li_NL UTF-8
+# lij_IT UTF-8
+# ln_CD UTF-8
+# lo_LA UTF-8
+# lt_LT ISO-8859-13
+# lt_LT.UTF-8 UTF-8
+# lv_LV ISO-8859-13
+# lv_LV.UTF-8 UTF-8
+# lzh_TW UTF-8
+# mag_IN UTF-8
+# mai_IN UTF-8
+# mai_NP UTF-8
+# mfe_MU UTF-8
+# mg_MG ISO-8859-15
+# mg_MG.UTF-8 UTF-8
+# mhr_RU UTF-8
+# mi_NZ ISO-8859-13
+# mi_NZ.UTF-8 UTF-8
+# miq_NI UTF-8
+# mjw_IN UTF-8
+# mk_MK ISO-8859-5
+# mk_MK.UTF-8 UTF-8
+# ml_IN UTF-8
+# mn_MN UTF-8
+# mni_IN UTF-8
+# mnw_MM UTF-8
+# mr_IN UTF-8
+# ms_MY ISO-8859-1
+# ms_MY.UTF-8 UTF-8
+# mt_MT ISO-8859-3
+# mt_MT.UTF-8 UTF-8
+# my_MM UTF-8
+# nan_TW UTF-8
+# nan_TW@latin UTF-8
+# nb_NO ISO-8859-1
+# nb_NO.UTF-8 UTF-8
+# nds_DE UTF-8
+# nds_NL UTF-8
+# ne_NP UTF-8
+# nhn_MX UTF-8
+# niu_NU UTF-8
+# niu_NZ UTF-8
+# nl_AW UTF-8
+# nl_BE ISO-8859-1
+# nl_BE.UTF-8 UTF-8
+# nl_BE@euro ISO-8859-15
+# nl_NL ISO-8859-1
+# nl_NL.UTF-8 UTF-8
+# nl_NL@euro ISO-8859-15
+# nn_NO ISO-8859-1
+# nn_NO.UTF-8 UTF-8
+# nr_ZA UTF-8
+# nso_ZA UTF-8
+# oc_FR ISO-8859-1
+# oc_FR.UTF-8 UTF-8
+# om_ET UTF-8
+# om_KE ISO-8859-1
+# om_KE.UTF-8 UTF-8
+# or_IN UTF-8
+# os_RU UTF-8
+# pa_IN UTF-8
+# pa_PK UTF-8
+# pap_AW UTF-8
+# pap_CW UTF-8
+# pl_PL ISO-8859-2
+# pl_PL.UTF-8 UTF-8
+# ps_AF UTF-8
+# pt_BR ISO-8859-1
+# pt_BR.UTF-8 UTF-8
+# pt_PT ISO-8859-1
+# pt_PT.UTF-8 UTF-8
+# pt_PT@euro ISO-8859-15
+# quz_PE UTF-8
+# raj_IN UTF-8
+# rif_MA UTF-8
+# ro_RO ISO-8859-2
+# ro_RO.UTF-8 UTF-8
+# ru_RU ISO-8859-5
+# ru_RU.CP1251 CP1251
+# ru_RU.KOI8-R KOI8-R
+# ru_RU.UTF-8 UTF-8
+# ru_UA KOI8-U
+# ru_UA.UTF-8 UTF-8
+# rw_RW UTF-8
+# sa_IN UTF-8
+# sah_RU UTF-8
+# sat_IN UTF-8
+# sc_IT UTF-8
+# sd_IN UTF-8
+# sd_IN@devanagari UTF-8
+# se_NO UTF-8
+# sgs_LT UTF-8
+# shn_MM UTF-8
+# shs_CA UTF-8
+# si_LK UTF-8
+# sid_ET UTF-8
+# sk_SK ISO-8859-2
+# sk_SK.UTF-8 UTF-8
+# sl_SI ISO-8859-2
+# sl_SI.UTF-8 UTF-8
+# sm_WS UTF-8
+# so_DJ ISO-8859-1
+# so_DJ.UTF-8 UTF-8
+# so_ET UTF-8
+# so_KE ISO-8859-1
+# so_KE.UTF-8 UTF-8
+# so_SO ISO-8859-1
+# so_SO.UTF-8 UTF-8
+# sq_AL ISO-8859-1
+# sq_AL.UTF-8 UTF-8
+# sq_MK UTF-8
+# sr_ME UTF-8
+# sr_RS UTF-8
+# sr_RS@latin UTF-8
+# ss_ZA UTF-8
+# st_ZA ISO-8859-1
+# st_ZA.UTF-8 UTF-8
+# sv_FI ISO-8859-1
+# sv_FI.UTF-8 UTF-8
+# sv_FI@euro ISO-8859-15
+# sv_SE ISO-8859-1
+# sv_SE.ISO-8859-15 ISO-8859-15
+# sv_SE.UTF-8 UTF-8
+# sw_KE UTF-8
+# sw_TZ UTF-8
+# syr UTF-8
+# szl_PL UTF-8
+# ta_IN UTF-8
+# ta_LK UTF-8
+# tcy_IN.UTF-8 UTF-8
+# te_IN UTF-8
+# tg_TJ KOI8-T
+# tg_TJ.UTF-8 UTF-8
+# th_TH TIS-620
+# th_TH.UTF-8 UTF-8
+# the_NP UTF-8
+# ti_ER UTF-8
+# ti_ET UTF-8
+# tig_ER UTF-8
+# tk_TM UTF-8
+# tl_PH ISO-8859-1
+# tl_PH.UTF-8 UTF-8
+# tn_ZA UTF-8
+# to_TO UTF-8
+# tpi_PG UTF-8
+# tr_CY ISO-8859-9
+# tr_CY.UTF-8 UTF-8
+# tr_TR ISO-8859-9
+# tr_TR.UTF-8 UTF-8
+# ts_ZA UTF-8
+# tt_RU UTF-8
+# tt_RU@iqtelif UTF-8
+# ug_CN UTF-8
+# uk_UA KOI8-U
+# uk_UA.UTF-8 UTF-8
+# unm_US UTF-8
+# ur_IN UTF-8
+# ur_PK UTF-8
+# uz_UZ ISO-8859-1
+# uz_UZ.UTF-8 UTF-8
+# uz_UZ@cyrillic UTF-8
+# ve_ZA UTF-8
+# vi_VN UTF-8
+# wa_BE ISO-8859-1
+# wa_BE.UTF-8 UTF-8
+# wa_BE@euro ISO-8859-15
+# wae_CH UTF-8
+# wal_ET UTF-8
+# wo_SN UTF-8
+# xh_ZA ISO-8859-1
+# xh_ZA.UTF-8 UTF-8
+# yi_US CP1255
+# yi_US.UTF-8 UTF-8
+# yo_NG UTF-8
+# yue_HK UTF-8
+# yuw_PG UTF-8
+# zh_CN GB2312
+# zh_CN.GB18030 GB18030
+# zh_CN.GBK GBK
+# zh_CN.UTF-8 UTF-8
+# zh_HK BIG5-HKSCS
+# zh_HK.UTF-8 UTF-8
+# zh_SG GB2312
+# zh_SG.GBK GBK
+# zh_SG.UTF-8 UTF-8
+# zh_TW BIG5
+# zh_TW.EUC-TW EUC-TW
+# zh_TW.UTF-8 UTF-8
+# zu_ZA ISO-8859-1
+# zu_ZA.UTF-8 UTF-8
+de_DE.UTF-8 UTF-8
+de_AT@euro ISO-8859-15
+de_CH.UTF-8 UTF-8
+de_DE@euro ISO-8859-15
+de_IT.UTF-8 UTF-8
+en_GB.UTF-8 UTF-8
+en_US.UTF-8 UTF-8
diff --git a/localtime b/localtime
new file mode 120000 (symlink)
index 0000000..622b45b
--- /dev/null
+++ b/localtime
@@ -0,0 +1 @@
+/usr/share/zoneinfo/Europe/Berlin
\ No newline at end of file
diff --git a/logcheck/ignore.d.paranoid/mariadb-server b/logcheck/ignore.d.paranoid/mariadb-server
new file mode 100644 (file)
index 0000000..407d406
--- /dev/null
@@ -0,0 +1,9 @@
+/etc/init.d/mariadb\[[0-9]+\]: Check that mariadbd is running and that the socket: '/run/mysqld/mysqld.sock' exists\!$
+/etc/init.d/mariadb\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
+mariadbd\[[0-9]+\]: $
+mariadbd\[[0-9]+\]: Version: .* socket: '/run/mysqld/mysqld.sock'  port: 3306$
+mariadbd\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
+mysqld_safe\[[0-9]+\]: started$
+usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
+usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
diff --git a/logcheck/ignore.d.server/gpg-agent b/logcheck/ignore.d.server/gpg-agent
new file mode 100644 (file)
index 0000000..6de7991
--- /dev/null
@@ -0,0 +1,11 @@
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Listening on GnuPG cryptographic agent and passphrase cache\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Listening on GnuPG network certificate management daemon\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Listening on GnuPG cryptographic agent and passphrase cache \(restricted\)\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Listening on GnuPG cryptographic agent and passphrase cache \(access for web browsers\)\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Listening on GnuPG cryptographic agent \(ssh-agent emulation\)\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Closed GnuPG network certificate management daemon\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Closed GnuPG cryptographic agent and passphrase cache\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Closed GnuPG cryptographic agent and passphrase cache \(restricted\)\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Closed GnuPG cryptographic agent \(ssh-agent emulation\)\.$
+^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd\[[[:digit:]]+\]: Closed GnuPG cryptographic agent and passphrase cache \(access for web browsers\)\.$
+
diff --git a/logcheck/ignore.d.server/mariadb-server b/logcheck/ignore.d.server/mariadb-server
new file mode 100644 (file)
index 0000000..7db321a
--- /dev/null
@@ -0,0 +1,30 @@
+/etc/init.d/mariadb\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+/etc/init.d/mariadb\[[0-9]+\]: Check that mariadbd is running and that the socket: '/run/mysqld/mysqld.sock' exists\!$
+/etc/init.d/mariadb\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
+mariadbd\[[0-9]+\]: ?$
+mariadbd\[[0-9]+\]: .*InnoDB: Shutdown completed
+mariadbd\[[0-9]+\]: .*InnoDB: Started;
+mariadbd\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$
+mariadbd\[[0-9]+\]: .*\[Note\] /usr/sbin/mariadbd: Normal shutdown$
+mariadbd\[[0-9]+\]: .*\[Note\] /usr/sbin/mariadbd: ready for connections\.$
+mariadbd\[[0-9]+\]: .*\[Note\] /usr/sbin/mariadbd: Shutdown complete$
+mariadbd\[[0-9]+\]: /usr/sbin/mariadbd: ready for connections\.$
+mariadbd\[[0-9]+\]: .*/usr/sbin/mariadbd: Shutdown Complete$
+mariadbd\[[0-9]+\]: Version: .* socket
+mariadbd\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
+mysqld_safe\[[0-9]+\]: ?$
+mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$
+mysqld_safe\[[0-9]+\]: ended$
+mysqld_safe\[[0-9]+\]: NOTE:  If you are upgrading from a MySQL <= 3.22.10 you should run$
+mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$
+mysqld_safe\[[0-9]+\]: Please report any problems at https://jira.mariadb.org$
+mysqld_safe\[[0-9]+\]: See the manual for more instructions.$
+mysqld_safe\[[0-9]+\]: started$
+mysqld_safe\[[0-9]+\]: The latest information about MariaDB is available at$
+mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$
+mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$
+mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root -h app109 password 'new-password'$
+mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$
+usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
+usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
diff --git a/logcheck/ignore.d.workstation/mariadb-server b/logcheck/ignore.d.workstation/mariadb-server
new file mode 100644 (file)
index 0000000..7db321a
--- /dev/null
@@ -0,0 +1,30 @@
+/etc/init.d/mariadb\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+/etc/init.d/mariadb\[[0-9]+\]: Check that mariadbd is running and that the socket: '/run/mysqld/mysqld.sock' exists\!$
+/etc/init.d/mariadb\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
+mariadbd\[[0-9]+\]: ?$
+mariadbd\[[0-9]+\]: .*InnoDB: Shutdown completed
+mariadbd\[[0-9]+\]: .*InnoDB: Started;
+mariadbd\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$
+mariadbd\[[0-9]+\]: .*\[Note\] /usr/sbin/mariadbd: Normal shutdown$
+mariadbd\[[0-9]+\]: .*\[Note\] /usr/sbin/mariadbd: ready for connections\.$
+mariadbd\[[0-9]+\]: .*\[Note\] /usr/sbin/mariadbd: Shutdown complete$
+mariadbd\[[0-9]+\]: /usr/sbin/mariadbd: ready for connections\.$
+mariadbd\[[0-9]+\]: .*/usr/sbin/mariadbd: Shutdown Complete$
+mariadbd\[[0-9]+\]: Version: .* socket
+mariadbd\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
+mysqld_safe\[[0-9]+\]: ?$
+mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$
+mysqld_safe\[[0-9]+\]: ended$
+mysqld_safe\[[0-9]+\]: NOTE:  If you are upgrading from a MySQL <= 3.22.10 you should run$
+mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$
+mysqld_safe\[[0-9]+\]: Please report any problems at https://jira.mariadb.org$
+mysqld_safe\[[0-9]+\]: See the manual for more instructions.$
+mysqld_safe\[[0-9]+\]: started$
+mysqld_safe\[[0-9]+\]: The latest information about MariaDB is available at$
+mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$
+mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$
+mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root -h app109 password 'new-password'$
+mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$
+usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
+usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
diff --git a/login.defs b/login.defs
new file mode 100644 (file)
index 0000000..bc12977
--- /dev/null
@@ -0,0 +1,402 @@
+#
+# /etc/login.defs - Configuration control definitions for the login package.
+#
+# Three items must be defined:  MAIL_DIR, ENV_SUPATH, and ENV_PATH.
+# If unspecified, some arbitrary (and possibly incorrect) value will
+# be assumed.  All other items are optional - if not specified then
+# the described action or option will be inhibited.
+#
+# Comment lines (lines beginning with "#") and blank lines are ignored.
+#
+# Modified for Linux.  --marekm
+
+# REQUIRED for useradd/userdel/usermod
+#   Directory where mailboxes reside, _or_ name of file, relative to the
+#   home directory.  If you _do_ define MAIL_DIR and MAIL_FILE,
+#   MAIL_DIR takes precedence.
+#
+#   Essentially:
+#      - MAIL_DIR defines the location of users mail spool files
+#        (for mbox use) by appending the username to MAIL_DIR as defined
+#        below.
+#      - MAIL_FILE defines the location of the users mail spool files as the
+#        fully-qualified filename obtained by prepending the user home
+#        directory before $MAIL_FILE
+#
+# NOTE: This is no more used for setting up users MAIL environment variable
+#       which is, starting from shadow 4.0.12-1 in Debian, entirely the
+#       job of the pam_mail PAM modules
+#       See default PAM configuration files provided for
+#       login, su, etc.
+#
+# This is a temporary situation: setting these variables will soon
+# move to /etc/default/useradd and the variables will then be
+# no more supported
+MAIL_DIR        /var/mail
+#MAIL_FILE      .mail
+
+#
+# Enable logging and display of /var/log/faillog login failure info.
+# This option conflicts with the pam_tally PAM module.
+#
+FAILLOG_ENAB           yes
+
+#
+# Enable display of unknown usernames when login failures are recorded.
+#
+# WARNING: Unknown usernames may become world readable. 
+# See #290803 and #298773 for details about how this could become a security
+# concern
+LOG_UNKFAIL_ENAB       no
+
+#
+# Enable logging of successful logins
+#
+LOG_OK_LOGINS          no
+
+#
+# Enable "syslog" logging of su activity - in addition to sulog file logging.
+# SYSLOG_SG_ENAB does the same for newgrp and sg.
+#
+SYSLOG_SU_ENAB         yes
+SYSLOG_SG_ENAB         yes
+
+#
+# If defined, all su activity is logged to this file.
+#
+#SULOG_FILE    /var/log/sulog
+
+#
+# If defined, file which maps tty line to TERM environment parameter.
+# Each line of the file is in a format something like "vt100  tty01".
+#
+#TTYTYPE_FILE  /etc/ttytype
+
+#
+# If defined, login failures will be logged here in a utmp format
+# last, when invoked as lastb, will read /var/log/btmp, so...
+#
+FTMP_FILE      /var/log/btmp
+
+#
+# If defined, the command name to display when running "su -".  For
+# example, if this is defined as "su" then a "ps" will display the
+# command is "-su".  If not defined, then "ps" would display the
+# name of the shell actually being run, e.g. something like "-sh".
+#
+SU_NAME                su
+
+#
+# If defined, file which inhibits all the usual chatter during the login
+# sequence.  If a full pathname, then hushed mode will be enabled if the
+# user's name or shell are found in the file.  If not a full pathname, then
+# hushed mode will be enabled if the file exists in the user's home directory.
+#
+HUSHLOGIN_FILE .hushlogin
+#HUSHLOGIN_FILE        /etc/hushlogins
+
+#
+# *REQUIRED*  The default PATH settings, for superuser and normal users.
+#
+# (they are minimal, add the rest in the shell startup files)
+ENV_SUPATH     PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ENV_PATH       PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+
+#
+# Terminal permissions
+#
+#      TTYGROUP        Login tty will be assigned this group ownership.
+#      TTYPERM         Login tty will be set to this permission.
+#
+# If you have a "write" program which is "setgid" to a special group
+# which owns the terminals, define TTYGROUP to the group number and
+# TTYPERM to 0620.  Otherwise leave TTYGROUP commented out and assign
+# TTYPERM to either 622 or 600.
+#
+# In Debian /usr/bin/bsd-write or similar programs are setgid tty
+# However, the default and recommended value for TTYPERM is still 0600
+# to not allow anyone to write to anyone else console or terminal
+
+# Users can still allow other people to write them by issuing 
+# the "mesg y" command.
+
+TTYGROUP       tty
+TTYPERM                0600
+
+#
+# Login configuration initializations:
+#
+#      ERASECHAR       Terminal ERASE character ('\010' = backspace).
+#      KILLCHAR        Terminal KILL character ('\025' = CTRL/U).
+#      UMASK           Default "umask" value.
+#
+# The ERASECHAR and KILLCHAR are used only on System V machines.
+# 
+# UMASK is the default umask value for pam_umask and is used by
+# useradd and newusers to set the mode of the new home directories.
+# 022 is the "historical" value in Debian for UMASK
+# 027, or even 077, could be considered better for privacy
+# There is no One True Answer here : each sysadmin must make up his/her
+# mind.
+#
+# If USERGROUPS_ENAB is set to "yes", that will modify this UMASK default value
+# for private user groups, i. e. the uid is the same as gid, and username is
+# the same as the primary group name: for these, the user permissions will be
+# used as group permissions, e. g. 022 will become 002.
+#
+# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
+#
+ERASECHAR      0177
+KILLCHAR       025
+UMASK          022
+
+# HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
+# home directories.
+# If HOME_MODE is not set, the value of UMASK is used to create the mode.
+#HOME_MODE     0700
+
+#
+# Password aging controls:
+#
+#      PASS_MAX_DAYS   Maximum number of days a password may be used.
+#      PASS_MIN_DAYS   Minimum number of days allowed between password changes.
+#      PASS_WARN_AGE   Number of days warning given before a password expires.
+#
+PASS_MAX_DAYS  99999
+PASS_MIN_DAYS  0
+PASS_WARN_AGE  7
+
+#
+# Min/max values for automatic uid selection in useradd
+#
+UID_MIN                         1000
+UID_MAX                        60000
+# System accounts
+#SYS_UID_MIN             100
+#SYS_UID_MAX             999
+# Extra per user uids
+SUB_UID_MIN               100000
+SUB_UID_MAX            600100000
+SUB_UID_COUNT              65536
+
+#
+# Min/max values for automatic gid selection in groupadd
+#
+GID_MIN                         1000
+GID_MAX                        60000
+# System accounts
+#SYS_GID_MIN             100
+#SYS_GID_MAX             999
+# Extra per user group ids
+SUB_GID_MIN               100000
+SUB_GID_MAX            600100000
+SUB_GID_COUNT              65536
+
+#
+# Max number of login retries if password is bad. This will most likely be
+# overriden by PAM, since the default pam_unix module has it's own built
+# in of 3 retries. However, this is a safe fallback in case you are using
+# an authentication module that does not enforce PAM_MAXTRIES.
+#
+LOGIN_RETRIES          5
+
+#
+# Max time in seconds for login
+#
+LOGIN_TIMEOUT          60
+
+#
+# Which fields may be changed by regular users using chfn - use
+# any combination of letters "frwh" (full name, room number, work
+# phone, home phone).  If not defined, no changes are allowed.
+# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
+# 
+CHFN_RESTRICT          rwh
+
+#
+# Should login be allowed if we can't cd to the home directory?
+# Default is no.
+#
+DEFAULT_HOME   yes
+
+#
+# If defined, this command is run when removing a user.
+# It should remove any at/cron/print jobs etc. owned by
+# the user to be removed (passed as the first argument).
+#
+#USERDEL_CMD   /usr/sbin/userdel_local
+
+#
+# If set to yes, userdel will remove the user's group if it contains no
+# more members, and useradd will create by default a group with the name
+# of the user.
+#
+# Other former uses of this variable such as setting the umask when
+# user==primary group are not used in PAM environments, such as Debian
+#
+USERGROUPS_ENAB yes
+
+#
+# Instead of the real user shell, the program specified by this parameter
+# will be launched, although its visible name (argv[0]) will be the shell's.
+# The program may do whatever it wants (logging, additional authentification,
+# banner, ...) before running the actual shell.
+#
+# FAKE_SHELL /bin/fakeshell
+
+#
+# If defined, either full pathname of a file containing device names or
+# a ":" delimited list of device names.  Root logins will be allowed only
+# upon these devices.
+#
+# This variable is used by login and su.
+#
+#CONSOLE       /etc/consoles
+#CONSOLE       console:tty01:tty02:tty03:tty04
+
+#
+# List of groups to add to the user's supplementary group set
+# when logging in on the console (as determined by the CONSOLE
+# setting).  Default is none.
+#
+# Use with caution - it is possible for users to gain permanent
+# access to these groups, even when not logged in on the console.
+# How to do it is left as an exercise for the reader...
+#
+# This variable is used by login and su.
+#
+#CONSOLE_GROUPS                floppy:audio:cdrom
+
+#
+# If set to "yes", new passwords will be encrypted using the MD5-based
+# algorithm compatible with the one used by recent releases of FreeBSD.
+# It supports passwords of unlimited length and longer salt strings.
+# Set to "no" if you need to copy encrypted passwords to other systems
+# which don't understand the new algorithm.  Default is "no".
+#
+# This variable is deprecated. You should use ENCRYPT_METHOD.
+#
+#MD5_CRYPT_ENAB        no
+
+#
+# If set to MD5, MD5-based algorithm will be used for encrypting password
+# If set to SHA256, SHA256-based algorithm will be used for encrypting password
+# If set to SHA512, SHA512-based algorithm will be used for encrypting password
+# If set to BCRYPT, BCRYPT-based algorithm will be used for encrypting password
+# If set to YESCRYPT, YESCRYPT-based algorithm will be used for encrypting password
+# If set to DES, DES-based algorithm will be used for encrypting password (default)
+# MD5 and DES should not be used for new hashes, see crypt(5) for recommendations.
+# Overrides the MD5_CRYPT_ENAB option
+#
+# Note: It is recommended to use a value consistent with
+# the PAM modules configuration.
+#
+ENCRYPT_METHOD SHA512
+
+#
+# Only works if ENCRYPT_METHOD is set to SHA256 or SHA512.
+#
+# Define the number of SHA rounds.
+# With a lot of rounds, it is more difficult to brute-force the password.
+# However, more CPU resources will be needed to authenticate users if
+# this value is increased.
+#
+# If not specified, the libc will choose the default number of rounds (5000),
+# which is orders of magnitude too low for modern hardware.
+# The values must be within the 1000-999999999 range.
+# If only one of the MIN or MAX values is set, then this value will be used.
+# If MIN > MAX, the highest value will be used.
+#
+#SHA_CRYPT_MIN_ROUNDS 5000
+#SHA_CRYPT_MAX_ROUNDS 5000
+
+#
+# Only works if ENCRYPT_METHOD is set to YESCRYPT.
+#
+# Define the YESCRYPT cost factor.
+# With a higher cost factor, it is more difficult to brute-force the password.
+# However, more CPU time and more memory will be needed to authenticate users
+# if this value is increased.
+#
+# If not specified, a cost factor of 5 will be used.
+# The value must be within the 1-11 range.
+#
+#YESCRYPT_COST_FACTOR 5
+
+#
+# The pwck(8) utility emits a warning for any system account with a home
+# directory that does not exist.  Some system accounts intentionally do
+# not have a home directory.  Such accounts may have this string as
+# their home directory in /etc/passwd to avoid a spurious warning.
+#
+NONEXISTENT    /nonexistent
+
+#
+# Allow newuidmap and newgidmap when running under an alternative
+# primary group.
+#
+#GRANT_AUX_GROUP_SUBIDS yes
+
+#
+# Prevents an empty password field to be interpreted as "no authentication
+# required".
+# Set to "yes" to prevent for all accounts
+# Set to "superuser" to prevent for UID 0 / root (default)
+# Set to "no" to not prevent for any account (dangerous, historical default)
+PREVENT_NO_AUTH superuser
+
+#
+# Select the HMAC cryptography algorithm.
+# Used in pam_timestamp module to calculate the keyed-hash message
+# authentication code.
+#
+# Note: It is recommended to check hmac(3) to see the possible algorithms
+# that are available in your system.
+#
+#HMAC_CRYPTO_ALGO SHA512
+
+################# OBSOLETED BY PAM ##############
+#                                              #
+# These options are now handled by PAM. Please #
+# edit the appropriate file in /etc/pam.d/ to  #
+# enable the equivelants of them.
+#
+###############
+
+#MOTD_FILE
+#DIALUPS_CHECK_ENAB
+#LASTLOG_ENAB
+#MAIL_CHECK_ENAB
+#OBSCURE_CHECKS_ENAB
+#PORTTIME_CHECKS_ENAB
+#SU_WHEEL_ONLY
+#CRACKLIB_DICTPATH
+#PASS_CHANGE_TRIES
+#PASS_ALWAYS_WARN
+#ENVIRON_FILE
+#NOLOGINS_FILE
+#ISSUE_FILE
+#PASS_MIN_LEN
+#PASS_MAX_LEN
+#ULIMIT
+#ENV_HZ
+#CHFN_AUTH
+#CHSH_AUTH
+#FAIL_DELAY
+
+################# OBSOLETED #######################
+#                                                #
+# These options are no more handled by shadow.    #
+#                                                 #
+# Shadow utilities will display a warning if they #
+# still appear.                                   #
+#                                                 #
+###################################################
+
+# CLOSE_SESSIONS
+# LOGIN_STRING
+# NO_PASSWORD_CONSOLE
+# QMAIL_DIR
+
+
+
diff --git a/logrotate.conf b/logrotate.conf
new file mode 100644 (file)
index 0000000..9d12745
--- /dev/null
@@ -0,0 +1,28 @@
+# see "man logrotate" for details
+
+# global options do not affect preceding include directives
+
+# rotate log files weekly
+weekly
+
+# keep 4 weeks worth of backlogs
+rotate 4
+
+# create new (empty) log files after rotating old ones
+create
+
+# use date as a suffix of the rotated file
+compress
+delaycompress
+missingok
+notifempty
+dateext
+dateformat -%Y-%m-%d
+
+# uncomment this if you want your log files compressed
+#compress
+
+# packages drop log rotation information into this directory
+include /etc/logrotate.d
+
+# system-specific logs may also be configured here.
diff --git a/logrotate.d/alternatives b/logrotate.d/alternatives
new file mode 100644 (file)
index 0000000..41c8a9c
--- /dev/null
@@ -0,0 +1,9 @@
+/var/log/alternatives.log {
+       monthly
+       rotate 12
+       compress
+       delaycompress
+       missingok
+       notifempty
+       create 644 root root
+}
diff --git a/logrotate.d/apache2 b/logrotate.d/apache2
new file mode 100644 (file)
index 0000000..f8df022
--- /dev/null
@@ -0,0 +1,20 @@
+/var/log/apache2/*.log {
+       daily
+       missingok
+       rotate 14
+       compress
+       delaycompress
+       notifempty
+       create 640 root adm
+       sharedscripts
+       prerotate
+               if [ -d /etc/logrotate.d/httpd-prerotate ]; then
+                       run-parts /etc/logrotate.d/httpd-prerotate
+               fi
+       endscript
+       postrotate
+               if pgrep -f ^/usr/sbin/apache2 > /dev/null; then
+                       invoke-rc.d apache2 reload 2>&1 | logger -t apache2.logrotate
+               fi
+       endscript
+}
diff --git a/logrotate.d/apt b/logrotate.d/apt
new file mode 100644 (file)
index 0000000..9a6e5d1
--- /dev/null
@@ -0,0 +1,16 @@
+/var/log/apt/term.log {
+  rotate 12
+  monthly
+  compress
+  missingok
+  notifempty
+}
+
+/var/log/apt/history.log {
+  rotate 12
+  monthly
+  compress
+  missingok
+  notifempty
+}
+
diff --git a/logrotate.d/btmp b/logrotate.d/btmp
new file mode 100644 (file)
index 0000000..46dffb5
--- /dev/null
@@ -0,0 +1,10 @@
+# no packages own btmp -- we'll rotate it here
+/var/log/btmp {
+    missingok
+    monthly
+    create 0660 root utmp
+    rotate 12
+    minsize 4M
+}
+
+# vim: ts=4 filetype=conf noet
diff --git a/logrotate.d/chrony b/logrotate.d/chrony
new file mode 100644 (file)
index 0000000..e1623e3
--- /dev/null
@@ -0,0 +1,12 @@
+/var/log/chrony/*.log {
+       rotate 7
+    missingok
+    minsize 4M
+    nocreate
+    sharedscripts
+    postrotate
+        /usr/bin/chronyc cyclelogs > /dev/null 2>&1 || true
+    endscript
+}
+
+# vim: ts=4 filetype=conf noet
diff --git a/logrotate.d/dpkg b/logrotate.d/dpkg
new file mode 100644 (file)
index 0000000..c5051c8
--- /dev/null
@@ -0,0 +1,10 @@
+/var/log/dpkg.log {
+       monthly
+       rotate 12
+       compress
+       delaycompress
+       missingok
+       notifempty
+       create 644 root root
+       olddir /var/log/.old
+}
diff --git a/logrotate.d/mariadb b/logrotate.d/mariadb
new file mode 100644 (file)
index 0000000..985c7c2
--- /dev/null
@@ -0,0 +1,59 @@
+# This is the MariaDB configuration for the logrotate utility
+#
+# Note that on most Linux systems logs are written to journald, which has its
+# own rotation scheme.
+#
+# Read https://mariadb.com/kb/en/error-log/ to learn more about logging and
+# https://mariadb.com/kb/en/rotating-logs-on-unix-and-linux/ about rotating logs.
+
+/var/lib/mysql/mysqld.log /var/lib/mysql/mariadb.log /var/log/mysql/*.log {
+
+  # Depends on a mysql@localhost unix_socket authenticated user with RELOAD privilege
+  #su mysql mysql
+
+  # If any of the files listed above is missing, skip them silently without
+  # emitting any errors
+  missingok
+
+  # If file exists but is empty, don't rotate it
+  notifempty
+
+  # Run monthly
+  monthly
+
+  # Keep 6 months of logs
+  rotate 6
+
+  # If file is growing too big, rotate immediately
+  maxsize 500M
+
+  # If file size is too small, don't rotate at all
+  minsize 50M
+
+  # Compress logs, as they are text and compression will save a lot of disk space
+  compress
+
+  # Don't compress the log immediately to avoid errors about "file size changed while zipping"
+  delaycompress
+
+  # Don't run the postrotate script for each file configured in this file, but
+  # run it only once if one or more files were rotated
+  sharedscripts
+
+  # After each rotation, run this custom script to flush the logs. Note that
+  # this assumes that the mariadb-admin command has database access, which it
+  # has thanks to the default use of Unix socket authentication for the 'mysql'
+  # (or root on Debian) account used everywhere since MariaDB 10.4.
+  postrotate
+    if test -r /etc/mysql/debian.cnf
+    then
+      EXTRAPARAM='--defaults-file=/etc/mysql/debian.cnf'
+    fi
+
+    if test -x /usr/bin/mariadb-admin
+    then
+      /usr/bin/mariadb-admin $EXTRAPARAM --local flush-error-log \
+        flush-engine-log flush-general-log flush-slow-log
+    fi
+  endscript
+}
diff --git a/logrotate.d/valkey-server b/logrotate.d/valkey-server
new file mode 100644 (file)
index 0000000..a8ab437
--- /dev/null
@@ -0,0 +1,9 @@
+/var/log/valkey/valkey-server*.log {
+        weekly
+        missingok
+       minsize 4M
+        rotate 12
+        compress
+        notifempty
+        delaycompress
+}
diff --git a/logrotate.d/wtmp b/logrotate.d/wtmp
new file mode 100644 (file)
index 0000000..7700d47
--- /dev/null
@@ -0,0 +1,10 @@
+# no packages own wtmp -- we'll rotate it here
+/var/log/wtmp {
+    missingok
+    monthly
+    create 0664 root utmp
+    minsize 4M
+    rotate 12
+}
+
+# vim: ts=4 filetype=conf noet
diff --git a/lvm/backup/vg00 b/lvm/backup/vg00
new file mode 100644 (file)
index 0000000..4666925
--- /dev/null
@@ -0,0 +1,165 @@
+# Generated by LVM2 version 2.03.16(2) (2022-05-18): Thu Jan  9 13:47:21 2025
+
+contents = "Text Format Volume Group"
+version = 1
+
+description = "Created *after* executing 'vgcfgbackup'"
+
+creation_host = "dev-mail-fbrehm"      # Linux dev-mail-fbrehm 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64
+creation_time = 1736426841     # Thu Jan  9 13:47:21 2025
+
+vg00 {
+       id = "nyothx-b768-uW1L-KKrt-d8fD-ElW8-9KNOPG"
+       seqno = 7
+       format = "lvm2"                 # informational
+       status = ["RESIZEABLE", "READ", "WRITE"]
+       flags = []
+       extent_size = 8192              # 4 Megabytes
+       max_lv = 0
+       max_pv = 0
+       metadata_copies = 0
+
+       physical_volumes {
+
+               pv0 {
+                       id = "sBDi1R-0wS3-aXpe-Ex31-nx7u-7lCl-gNWJjy"
+                       device = "/dev/sda3"    # Hint only
+
+                       status = ["ALLOCATABLE"]
+                       flags = []
+                       dev_size = 60815360     # 28,999 Gigabytes
+                       pe_start = 2048
+                       pe_count = 7423 # 28,9961 Gigabytes
+               }
+       }
+
+       logical_volumes {
+
+               home {
+                       id = "Qs9vLi-6Xmc-HYA3-C6ko-PEGO-c4Jd-xtXFCL"
+                       status = ["READ", "WRITE", "VISIBLE"]
+                       flags = []
+                       creation_time = 1736420937      # 2025-01-09 12:08:57 +0100
+                       creation_host = "grml"
+                       segment_count = 1
+
+                       segment1 {
+                               start_extent = 0
+                               extent_count = 1280     # 5 Gigabytes
+
+                               type = "striped"
+                               stripe_count = 1        # linear
+
+                               stripes = [
+                                       "pv0", 0
+                               ]
+                       }
+               }
+
+               var {
+                       id = "U0Wifc-o5xL-47HR-dWWj-BoxK-5B6w-nwuQtn"
+                       status = ["READ", "WRITE", "VISIBLE"]
+                       flags = []
+                       creation_time = 1736421138      # 2025-01-09 12:12:18 +0100
+                       creation_host = "grml"
+                       segment_count = 1
+
+                       segment1 {
+                               start_extent = 0
+                               extent_count = 2560     # 10 Gigabytes
+
+                               type = "striped"
+                               stripe_count = 1        # linear
+
+                               stripes = [
+                                       "pv0", 1280
+                               ]
+                       }
+               }
+
+               opt {
+                       id = "zBVDgE-hsMC-B8RG-IvUW-8qOd-sjJL-Doguhj"
+                       status = ["READ", "WRITE", "VISIBLE"]
+                       flags = []
+                       creation_time = 1736421207      # 2025-01-09 12:13:27 +0100
+                       creation_host = "grml"
+                       segment_count = 1
+
+                       segment1 {
+                               start_extent = 0
+                               extent_count = 256      # 1024 Megabytes
+
+                               type = "striped"
+                               stripe_count = 1        # linear
+
+                               stripes = [
+                                       "pv0", 3840
+                               ]
+                       }
+               }
+
+               mail {
+                       id = "VOO0OE-IfrI-4Zid-W05r-0cXq-MET1-0FTgI1"
+                       status = ["READ", "WRITE", "VISIBLE"]
+                       flags = []
+                       creation_time = 1736421290      # 2025-01-09 12:14:50 +0100
+                       creation_host = "grml"
+                       segment_count = 1
+
+                       segment1 {
+                               start_extent = 0
+                               extent_count = 1280     # 5 Gigabytes
+
+                               type = "striped"
+                               stripe_count = 1        # linear
+
+                               stripes = [
+                                       "pv0", 4096
+                               ]
+                       }
+               }
+
+               mysql {
+                       id = "8ZHqdb-za76-42V8-VMUA-DJPp-PCl1-j0VdEh"
+                       status = ["READ", "WRITE", "VISIBLE"]
+                       flags = []
+                       creation_time = 1736421457      # 2025-01-09 12:17:37 +0100
+                       creation_host = "grml"
+                       segment_count = 1
+
+                       segment1 {
+                               start_extent = 0
+                               extent_count = 256      # 1024 Megabytes
+
+                               type = "striped"
+                               stripe_count = 1        # linear
+
+                               stripes = [
+                                       "pv0", 5376
+                               ]
+                       }
+               }
+
+               swap {
+                       id = "yFrGjM-3nO2-PvX9-btpL-EYGn-kOk5-7Tc8Wk"
+                       status = ["READ", "WRITE", "VISIBLE"]
+                       flags = []
+                       creation_time = 1736426707      # 2025-01-09 13:45:07 +0100
+                       creation_host = "dev-mail-fbrehm"
+                       segment_count = 1
+
+                       segment1 {
+                               start_extent = 0
+                               extent_count = 715      # 2,79297 Gigabytes
+
+                               type = "striped"
+                               stripe_count = 1        # linear
+
+                               stripes = [
+                                       "pv0", 5632
+                               ]
+                       }
+               }
+       }
+
+}
diff --git a/lvm/lvm.conf b/lvm/lvm.conf
new file mode 100644 (file)
index 0000000..d0b4fef
--- /dev/null
@@ -0,0 +1,2449 @@
+# This is an example configuration file for the LVM2 system.
+# It contains the default settings that would be used if there was no
+# /etc/lvm/lvm.conf file.
+#
+# Refer to 'man lvm.conf' for further information including the file layout.
+#
+# Refer to 'man lvm.conf' for information about how settings configured in
+# this file are combined with built-in values and command line options to
+# arrive at the final values used by LVM.
+#
+# Refer to 'man lvmconfig' for information about displaying the built-in
+# and configured values used by LVM.
+#
+# If a default value is set in this file (not commented out), then a
+# new version of LVM using this file will continue using that value,
+# even if the new version of LVM changes the built-in default value.
+#
+# To put this file in a different directory and override /etc/lvm set
+# the environment variable LVM_SYSTEM_DIR before running the tools.
+#
+# N.B. Take care that each setting only appears once if uncommenting
+# example settings in this file.
+
+
+# Configuration section config.
+# How LVM configuration settings are handled.
+config {
+
+       # Configuration option config/checks.
+       # If enabled, any LVM configuration mismatch is reported.
+       # This implies checking that the configuration key is understood by
+       # LVM and that the value of the key is the proper type. If disabled,
+       # any configuration mismatch is ignored and the default value is used
+       # without any warning (a message about the configuration key not being
+       # found is issued in verbose mode only).
+       # This configuration option has an automatic default value.
+       # checks = 1
+
+       # Configuration option config/abort_on_errors.
+       # Abort the LVM process if a configuration mismatch is found.
+       # This configuration option has an automatic default value.
+       # abort_on_errors = 0
+
+       # Configuration option config/profile_dir.
+       # Directory where LVM looks for configuration profiles.
+       # This configuration option has an automatic default value.
+       # profile_dir = "/etc/lvm/profile"
+}
+
+# Configuration section devices.
+# How LVM uses block devices.
+devices {
+
+       # Configuration option devices/dir.
+       # Directory in which to create volume group device nodes.
+       # Commands also accept this as a prefix on volume group names.
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # dir = "/dev"
+
+       # Configuration option devices/scan.
+       # Directories containing device nodes to use with LVM.
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # scan = [ "/dev" ]
+
+       # Configuration option devices/obtain_device_list_from_udev.
+       # Obtain the list of available devices from udev.
+       # This avoids opening or using any inapplicable non-block devices or
+       # subdirectories found in the udev directory. Any device node or
+       # symlink not managed by udev in the udev directory is ignored. This
+       # setting applies only to the udev-managed device directory; other
+       # directories will be scanned fully. LVM needs to be compiled with
+       # udev support for this setting to apply.
+       # This configuration option has an automatic default value.
+       # obtain_device_list_from_udev = 0
+
+       # Configuration option devices/external_device_info_source.
+       # Enable device information from udev.
+       # If set to "udev", lvm will supplement its own native device information
+       # with information from libudev. This can potentially improve the detection
+       # of MD component devices and multipath component devices.
+       # This configuration option has an automatic default value.
+       # external_device_info_source = "none"
+
+       # Configuration option devices/hints.
+       # Use a local file to remember which devices have PVs on them.
+       # Some commands will use this as an optimization to reduce device
+       # scanning, and will only scan the listed PVs. Removing the hint file
+       # will cause lvm to generate a new one. Disable hints if PVs will
+       # be copied onto devices using non-lvm commands, like dd.
+       #
+       # Accepted values:
+       #   all
+       #     Use all hints.
+       #   none
+       #     Use no hints.
+       #
+       # This configuration option has an automatic default value.
+       # hints = "all"
+
+       # Configuration option devices/preferred_names.
+       # Select which path name to display for a block device.
+       # If multiple path names exist for a block device, and LVM needs to
+       # display a name for the device, the path names are matched against
+       # each item in this list of regular expressions. The first match is
+       # used. Try to avoid using undescriptive /dev/dm-N names, if present.
+       # If no preferred name matches, or if preferred_names are not defined,
+       # the following built-in preferences are applied in order until one
+       # produces a preferred name:
+       # Prefer names with path prefixes in the order of:
+       # /dev/mapper, /dev/disk, /dev/dm-*, /dev/block.
+       # Prefer the name with the least number of slashes.
+       # Prefer a name that is a symlink.
+       # Prefer the path with least value in lexicographical order.
+       #
+       # Example
+       # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option devices/use_devicesfile.
+       # Enable or disable the use of a devices file.
+       # When enabled, lvm will only use devices that
+       # are lised in the devices file. A devices file will
+       # be used, regardless of this setting, when the --devicesfile
+       # option is set to a specific file name.
+       # This configuration option has an automatic default value.
+       # use_devicesfile = 0
+
+       # Configuration option devices/devicesfile.
+       # The name of the system devices file, listing devices that LVM should use.
+       # This should not be used to select a non-system devices file.
+       # The --devicesfile option is intended for alternative devices files.
+       # This configuration option has an automatic default value.
+       # devicesfile = "system.devices"
+
+       # Configuration option devices/search_for_devnames.
+       # Look outside of the devices file for missing devname entries.
+       # A devname entry is used for a device that does not have a stable
+       # device id, e.g. wwid, so the unstable device name is used as
+       # the device id. After reboot, or if the device is reattached,
+       # the device name may change, in which case lvm will not find
+       # the expected PV on the device listed in the devices file.
+       # This setting controls whether lvm will search other devices,
+       # outside the devices file, to look for the missing PV on a
+       # renamed device. If "none", lvm will not look at other devices,
+       # and the PV may appear to be missing. If "auto", lvm will look
+       # at other devices, but only those that are likely to have the PV.
+       # If "all", lvm will look at all devices on the system.
+       # This configuration option has an automatic default value.
+       # search_for_devnames = "auto"
+
+       # Configuration option devices/filter.
+       # Limit the block devices that are used by LVM commands.
+       # This is a list of regular expressions used to accept or reject block
+       # device path names. Each regex is delimited by a vertical bar '|'
+       # (or any character) and is preceded by 'a' to accept the path, or
+       # by 'r' to reject the path. The first regex in the list to match the
+       # path is used, producing the 'a' or 'r' result for the device.
+       # When multiple path names exist for a block device, if any path name
+       # matches an 'a' pattern before an 'r' pattern, then the device is
+       # accepted. If all the path names match an 'r' pattern first, then the
+       # device is rejected. Unmatching path names do not affect the accept
+       # or reject decision. If no path names for a device match a pattern,
+       # then the device is accepted. Be careful mixing 'a' and 'r' patterns,
+       # as the combination might produce unexpected results (test changes.)
+       # Run vgscan after changing the filter to regenerate the cache.
+       #
+       # Example
+       # Accept every block device:
+       # filter = [ "a|.*|" ]
+       # Reject the cdrom drive:
+       # filter = [ "r|/dev/cdrom|" ]
+       # Work with just loopback devices, e.g. for testing:
+       # filter = [ "a|loop|", "r|.*|" ]
+       # Accept all loop devices and ide drives except hdc:
+       # filter = [ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
+       # Use anchors to be very specific:
+       # filter = [ "a|^/dev/hda8$|", "r|.*|" ]
+       #
+       # This configuration option has an automatic default value.
+       # filter = [ "a|.*|" ]
+
+       # Configuration option devices/global_filter.
+       # Limit the block devices that are used by LVM system components.
+       # Because devices/filter may be overridden from the command line, it is
+       # not suitable for system-wide device filtering, e.g. udev.
+       # Use global_filter to hide devices from these LVM system components.
+       # The syntax is the same as devices/filter. Devices rejected by
+       # global_filter are not opened by LVM.
+       # This configuration option has an automatic default value.
+       # global_filter = [ "a|.*|" ]
+
+       # Configuration option devices/types.
+       # List of additional acceptable block device types.
+       # These are of device type names from /proc/devices, followed by the
+       # maximum number of partitions.
+       #
+       # Example
+       # types = [ "fd", 16 ]
+       #
+       # This configuration option is advanced.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option devices/sysfs_scan.
+       # Restrict device scanning to block devices appearing in sysfs.
+       # This is a quick way of filtering out block devices that are not
+       # present on the system. sysfs must be part of the kernel and mounted.)
+       # This configuration option has an automatic default value.
+       # sysfs_scan = 1
+
+       # Configuration option devices/scan_lvs.
+       # Scan LVM LVs for layered PVs, allowing LVs to be used as PVs.
+       # When 1, LVM will detect PVs layered on LVs, and caution must be
+       # taken to avoid a host accessing a layered VG that may not belong
+       # to it, e.g. from a guest image. This generally requires excluding
+       # the LVs with device filters. Also, when this setting is enabled,
+       # every LVM command will scan every active LV on the system (unless
+       # filtered), which can cause performance problems on systems with
+       # many active LVs. When this setting is 0, LVM will not detect or
+       # use PVs that exist on LVs, and will not allow a PV to be created on
+       # an LV. The LVs are ignored using a built in device filter that
+       # identifies and excludes LVs.
+       # This configuration option has an automatic default value.
+       # scan_lvs = 0
+
+       # Configuration option devices/multipath_component_detection.
+       # Ignore devices that are components of DM multipath devices.
+       # This configuration option has an automatic default value.
+       # multipath_component_detection = 1
+
+       # Configuration option devices/multipath_wwids_file.
+       # The path to the multipath wwids file used for multipath component detection.
+       # Set this to an empty string to disable the use of the multipath wwids file.
+       # This configuration option has an automatic default value.
+       # multipath_wwids_file = "/etc/multipath/wwids"
+
+       # Configuration option devices/md_component_detection.
+       # Enable detection and exclusion of MD component devices.
+       # An MD component device is a block device that MD uses as part
+       # of a software RAID virtual device. When an LVM PV is created
+       # on an MD device, LVM must only use the top level MD device as
+       # the PV, and should ignore the underlying component devices.
+       # In cases where the MD superblock is located at the end of the
+       # component devices, it is more difficult for LVM to consistently
+       # identify an MD component, see the md_component_checks setting.
+       # This configuration option has an automatic default value.
+       # md_component_detection = 1
+
+       # Configuration option devices/md_component_checks.
+       # The checks LVM should use to detect MD component devices.
+       # MD component devices are block devices used by MD software RAID.
+       #
+       # Accepted values:
+       #   auto
+       #     LVM will skip scanning the end of devices when it has other
+       #     indications that the device is not an MD component.
+       #   start
+       #     LVM will only scan the start of devices for MD superblocks.
+       #     This does not incur extra I/O by LVM.
+       #   full
+       #     LVM will scan the start and end of devices for MD superblocks.
+       #     This requires an extra read at the end of devices.
+       #
+       # This configuration option has an automatic default value.
+       # md_component_checks = "auto"
+
+       # Configuration option devices/fw_raid_component_detection.
+       # Ignore devices that are components of firmware RAID devices.
+       # LVM must use an external_device_info_source other than none for this
+       # detection to execute.
+       # This configuration option has an automatic default value.
+       # fw_raid_component_detection = 0
+
+       # Configuration option devices/md_chunk_alignment.
+       # Align the start of a PV data area with md device's stripe-width.
+       # This applies if a PV is placed directly on an md device.
+       # default_data_alignment will be overridden if it is not aligned
+       # with the value detected for this setting.
+       # This setting is overridden by data_alignment_detection,
+       # data_alignment, and the --dataalignment option.
+       # This configuration option has an automatic default value.
+       # md_chunk_alignment = 1
+
+       # Configuration option devices/default_data_alignment.
+       # Align the start of a PV data area with this number of MiB.
+       # Set to 1 for 1MiB, 2 for 2MiB, etc. Set to 0 to disable.
+       # This setting is overridden by data_alignment and the --dataalignment
+       # option.
+       # This configuration option has an automatic default value.
+       # default_data_alignment = 1
+
+       # Configuration option devices/data_alignment_detection.
+       # Align the start of a PV data area with sysfs io properties.
+       # The start of a PV data area will be a multiple of minimum_io_size or
+       # optimal_io_size exposed in sysfs. minimum_io_size is the smallest
+       # request the device can perform without incurring a read-modify-write
+       # penalty, e.g. MD chunk size. optimal_io_size is the device's
+       # preferred unit of receiving I/O, e.g. MD stripe width.
+       # minimum_io_size is used if optimal_io_size is undefined (0).
+       # If md_chunk_alignment is enabled, that detects the optimal_io_size.
+       # default_data_alignment and md_chunk_alignment will be overridden
+       # if they are not aligned with the value detected for this setting.
+       # This setting is overridden by data_alignment and the --dataalignment
+       # option.
+       # This configuration option has an automatic default value.
+       # data_alignment_detection = 1
+
+       # Configuration option devices/data_alignment.
+       # Align the start of a PV data area with this number of KiB.
+       # When non-zero, this setting overrides default_data_alignment.
+       # Set to 0 to disable, in which case default_data_alignment
+       # is used to align the first PE in units of MiB.
+       # This setting is overridden by the --dataalignment option.
+       # This configuration option has an automatic default value.
+       # data_alignment = 0
+
+       # Configuration option devices/data_alignment_offset_detection.
+       # Shift the start of an aligned PV data area based on sysfs information.
+       # After a PV data area is aligned, it will be shifted by the
+       # alignment_offset exposed in sysfs. This offset is often 0, but may
+       # be non-zero. Certain 4KiB sector drives that compensate for windows
+       # partitioning will have an alignment_offset of 3584 bytes (sector 7
+       # is the lowest aligned logical block, the 4KiB sectors start at
+       # LBA -1, and consequently sector 63 is aligned on a 4KiB boundary).
+       # This setting is overridden by the --dataalignmentoffset option.
+       # This configuration option has an automatic default value.
+       # data_alignment_offset_detection = 1
+
+       # Configuration option devices/ignore_suspended_devices.
+       # Ignore DM devices that have I/O suspended while scanning devices.
+       # Otherwise, LVM waits for a suspended device to become accessible.
+       # This should only be needed in recovery situations.
+       # This configuration option has an automatic default value.
+       # ignore_suspended_devices = 0
+
+       # Configuration option devices/ignore_lvm_mirrors.
+       # Do not scan 'mirror' LVs to avoid possible deadlocks.
+       # This avoids possible deadlocks when using the 'mirror' segment type.
+       # This setting determines whether LVs using the 'mirror' segment type
+       # are scanned for LVM labels. This affects the ability of mirrors to
+       # be used as physical volumes. If this setting is enabled, it is
+       # impossible to create VGs on top of mirror LVs, i.e. to stack VGs on
+       # mirror LVs. If this setting is disabled, allowing mirror LVs to be
+       # scanned, it may cause LVM processes and I/O to the mirror to become
+       # blocked. This is due to the way that the mirror segment type handles
+       # failures. In order for the hang to occur, an LVM command must be run
+       # just after a failure and before the automatic LVM repair process
+       # takes place, or there must be failures in multiple mirrors in the
+       # same VG at the same time with write failures occurring moments before
+       # a scan of the mirror's labels. The 'mirror' scanning problems do not
+       # apply to LVM RAID types like 'raid1' which handle failures in a
+       # different way, making them a better choice for VG stacking.
+       # This configuration option has an automatic default value.
+       # ignore_lvm_mirrors = 1
+
+       # Configuration option devices/require_restorefile_with_uuid.
+       # Allow use of pvcreate --uuid without requiring --restorefile.
+       # This configuration option has an automatic default value.
+       # require_restorefile_with_uuid = 1
+
+       # Configuration option devices/pv_min_size.
+       # Minimum size in KiB of block devices which can be used as PVs.
+       # In a clustered environment all nodes must use the same value.
+       # Any value smaller than 512KiB is ignored. The previous built-in
+       # value was 512.
+       # This configuration option has an automatic default value.
+       # pv_min_size = 2048
+
+       # Configuration option devices/issue_discards.
+       # Issue discards to PVs that are no longer used by an LV.
+       # Discards are sent to an LV's underlying physical volumes when the LV
+       # is no longer using the physical volumes' space, e.g. lvremove,
+       # lvreduce. Discards inform the storage that a region is no longer
+       # used. Storage that supports discards advertise the protocol-specific
+       # way discards should be issued by the kernel (TRIM, UNMAP, or
+       # WRITE SAME with UNMAP bit set). Not all storage will support or
+       # benefit from discards, but SSDs and thinly provisioned LUNs
+       # generally do. If enabled, discards will only be issued if both the
+       # storage and kernel provide support.
+       # This configuration option has an automatic default value.
+       # issue_discards = 0
+
+       # Configuration option devices/allow_changes_with_duplicate_pvs.
+       # Allow VG modification while a PV appears on multiple devices.
+       # When a PV appears on multiple devices, LVM attempts to choose the
+       # best device to use for the PV. If the devices represent the same
+       # underlying storage, the choice has minimal consequence. If the
+       # devices represent different underlying storage, the wrong choice
+       # can result in data loss if the VG is modified. Disabling this
+       # setting is the safest option because it prevents modifying a VG
+       # or activating LVs in it while a PV appears on multiple devices.
+       # Enabling this setting allows the VG to be used as usual even with
+       # uncertain devices.
+       # This configuration option has an automatic default value.
+       # allow_changes_with_duplicate_pvs = 0
+
+       # Configuration option devices/allow_mixed_block_sizes.
+       # Allow PVs in the same VG with different logical block sizes.
+       # When allowed, the user is responsible to ensure that an LV is
+       # using PVs with matching block sizes when necessary.
+       # This configuration option has an automatic default value.
+       # allow_mixed_block_sizes = 0
+}
+
+# Configuration section allocation.
+# How LVM selects space and applies properties to LVs.
+allocation {
+
+       # Configuration option allocation/cling_tag_list.
+       # Advise LVM which PVs to use when searching for new space.
+       # When searching for free space to extend an LV, the 'cling' allocation
+       # policy will choose space on the same PVs as the last segment of the
+       # existing LV. If there is insufficient space and a list of tags is
+       # defined here, it will check whether any of them are attached to the
+       # PVs concerned and then seek to match those PV tags between existing
+       # extents and new extents.
+       #
+       # Example
+       # Use the special tag "@*" as a wildcard to match any PV tag:
+       # cling_tag_list = [ "@*" ]
+       # LVs are mirrored between two sites within a single VG, and
+       # PVs are tagged with either @site1 or @site2 to indicate where
+       # they are situated:
+       # cling_tag_list = [ "@site1", "@site2" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option allocation/maximise_cling.
+       # Use a previous allocation algorithm.
+       # Changes made in version 2.02.85 extended the reach of the 'cling'
+       # policies to detect more situations where data can be grouped onto
+       # the same disks. This setting can be used to disable the changes
+       # and revert to the previous algorithm.
+       # This configuration option has an automatic default value.
+       # maximise_cling = 1
+
+       # Configuration option allocation/use_blkid_wiping.
+       # Use blkid to detect and erase existing signatures on new PVs and LVs.
+       # The blkid library can detect more signatures than the native LVM
+       # detection code, but may take longer. LVM needs to be compiled with
+       # blkid wiping support for this setting to apply. LVM native detection
+       # code is currently able to recognize: MD device signatures,
+       # swap signature, and LUKS signatures. To see the list of signatures
+       # recognized by blkid, check the output of the 'blkid -k' command.
+       # This configuration option has an automatic default value.
+       # use_blkid_wiping = 1
+
+       # Configuration option allocation/wipe_signatures_when_zeroing_new_lvs.
+       # Look for and erase any signatures while zeroing a new LV.
+       # The --wipesignatures option overrides this setting.
+       # Zeroing is controlled by the -Z/--zero option, and if not specified,
+       # zeroing is used by default if possible. Zeroing simply overwrites the
+       # first 4KiB of a new LV with zeroes and does no signature detection or
+       # wiping. Signature wiping goes beyond zeroing and detects exact types
+       # and positions of signatures within the whole LV. It provides a
+       # cleaner LV after creation as all known signatures are wiped. The LV
+       # is not claimed incorrectly by other tools because of old signatures
+       # from previous use. The number of signatures that LVM can detect
+       # depends on the detection code that is selected (see
+       # use_blkid_wiping.) Wiping each detected signature must be confirmed.
+       # When this setting is disabled, signatures on new LVs are not detected
+       # or erased unless the --wipesignatures option is used directly.
+       # This configuration option has an automatic default value.
+       # wipe_signatures_when_zeroing_new_lvs = 1
+
+       # Configuration option allocation/mirror_logs_require_separate_pvs.
+       # Mirror logs and images will always use different PVs.
+       # The default setting changed in version 2.02.85.
+       # This configuration option has an automatic default value.
+       # mirror_logs_require_separate_pvs = 0
+
+       # Configuration option allocation/raid_stripe_all_devices.
+       # Stripe across all PVs when RAID stripes are not specified.
+       # If enabled, all PVs in the VG or on the command line are used for
+       # raid0/4/5/6/10 when the command does not specify the number of
+       # stripes to use.
+       # This was the default behaviour until release 2.02.162.
+       # This configuration option has an automatic default value.
+       # raid_stripe_all_devices = 0
+
+       # Configuration option allocation/cache_pool_metadata_require_separate_pvs.
+       # Cache pool metadata and data will always use different PVs.
+       # This configuration option has an automatic default value.
+       # cache_pool_metadata_require_separate_pvs = 0
+
+       # Configuration option allocation/cache_metadata_format.
+       # Sets default metadata format for new cache.
+       #
+       # Accepted values:
+       #   0  Automatically detected best available format
+       #   1  Original format
+       #   2  Improved 2nd. generation format
+       #
+       # This configuration option has an automatic default value.
+       # cache_metadata_format = 0
+
+       # Configuration option allocation/cache_mode.
+       # The default cache mode used for new cache.
+       #
+       # Accepted values:
+       #   writethrough
+       #     Data blocks are immediately written from the cache to disk.
+       #   writeback
+       #     Data blocks are written from the cache back to disk after some
+       #     delay to improve performance.
+       #
+       # This setting replaces allocation/cache_pool_cachemode.
+       # This configuration option has an automatic default value.
+       # cache_mode = "writethrough"
+
+       # Configuration option allocation/cache_policy.
+       # The default cache policy used for new cache volume.
+       # Since kernel 4.2 the default policy is smq (Stochastic multiqueue),
+       # otherwise the older mq (Multiqueue) policy is selected.
+       # This configuration option does not have a default value defined.
+
+       # Configuration section allocation/cache_settings.
+       # Settings for the cache policy.
+       # See documentation for individual cache policies for more info.
+       # This configuration section has an automatic default value.
+       # cache_settings {
+       # }
+
+       # Configuration option allocation/cache_pool_chunk_size.
+       # The minimal chunk size in KiB for cache pool volumes.
+       # Using a chunk_size that is too large can result in wasteful use of
+       # the cache, where small reads and writes can cause large sections of
+       # an LV to be mapped into the cache. However, choosing a chunk_size
+       # that is too small can result in more overhead trying to manage the
+       # numerous chunks that become mapped into the cache. The former is
+       # more of a problem than the latter in most cases, so the default is
+       # on the smaller end of the spectrum. Supported values range from
+       # 32KiB to 1GiB in multiples of 32.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option allocation/cache_pool_max_chunks.
+       # The maximum number of chunks in a cache pool.
+       # For cache target v1.9 the recommended maximumm is 1000000 chunks.
+       # Using cache pool with more chunks may degrade cache performance.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option allocation/thin_pool_metadata_require_separate_pvs.
+       # Thin pool metadata and data will always use different PVs.
+       # This configuration option has an automatic default value.
+       # thin_pool_metadata_require_separate_pvs = 0
+
+       # Configuration option allocation/thin_pool_crop_metadata.
+       # Older version of lvm2 cropped pool's metadata size to 15.81 GiB.
+       # This is slightly less then the actual maximum 15.88 GiB.
+       # For compatibility with older version and use of cropped size set to 1.
+       # This configuration option has an automatic default value.
+       # thin_pool_crop_metadata = 0
+
+       # Configuration option allocation/thin_pool_zero.
+       # Thin pool data chunks are zeroed before they are first used.
+       # Zeroing with a larger thin pool chunk size reduces performance.
+       # This configuration option has an automatic default value.
+       # thin_pool_zero = 1
+
+       # Configuration option allocation/thin_pool_discards.
+       # The discards behaviour of thin pool volumes.
+       #
+       # Accepted values:
+       #   ignore
+       #   nopassdown
+       #   passdown
+       #
+       # This configuration option has an automatic default value.
+       # thin_pool_discards = "passdown"
+
+       # Configuration option allocation/thin_pool_chunk_size_policy.
+       # The chunk size calculation policy for thin pool volumes.
+       #
+       # Accepted values:
+       #   generic
+       #     If thin_pool_chunk_size is defined, use it. Otherwise, calculate
+       #     the chunk size based on estimation and device hints exposed in
+       #     sysfs - the minimum_io_size. The chunk size is always at least
+       #     64KiB.
+       #   performance
+       #     If thin_pool_chunk_size is defined, use it. Otherwise, calculate
+       #     the chunk size for performance based on device hints exposed in
+       #     sysfs - the optimal_io_size. The chunk size is always at least
+       #     512KiB.
+       #
+       # This configuration option has an automatic default value.
+       # thin_pool_chunk_size_policy = "generic"
+
+       # Configuration option allocation/zero_metadata.
+       # Zero whole metadata area before use with thin or cache pool.
+       # This configuration option has an automatic default value.
+       # zero_metadata = 1
+
+       # Configuration option allocation/thin_pool_chunk_size.
+       # The minimal chunk size in KiB for thin pool volumes.
+       # Larger chunk sizes may improve performance for plain thin volumes,
+       # however using them for snapshot volumes is less efficient, as it
+       # consumes more space and takes extra time for copying. When unset,
+       # lvm tries to estimate chunk size starting from 64KiB. Supported
+       # values are in the range 64KiB to 1GiB.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option allocation/physical_extent_size.
+       # Default physical extent size in KiB to use for new VGs.
+       # This configuration option has an automatic default value.
+       # physical_extent_size = 4096
+
+       # Configuration option allocation/vdo_use_compression.
+       # Enables or disables compression when creating a VDO volume.
+       # Compression may be disabled if necessary to maximize performance
+       # or to speed processing of data that is unlikely to compress.
+       # This configuration option has an automatic default value.
+       # vdo_use_compression = 1
+
+       # Configuration option allocation/vdo_use_deduplication.
+       # Enables or disables deduplication when creating a VDO volume.
+       # Deduplication may be disabled in instances where data is not expected
+       # to have good deduplication rates but compression is still desired.
+       # This configuration option has an automatic default value.
+       # vdo_use_deduplication = 1
+
+       # Configuration option allocation/vdo_use_metadata_hints.
+       # Enables or disables whether VDO volume should tag its latency-critical
+       # writes with the REQ_SYNC flag. Some device mapper targets such as dm-raid5
+       # process writes with this flag at a higher priority.
+       # Default is enabled.
+       # This configuration option has an automatic default value.
+       # vdo_use_metadata_hints = 1
+
+       # Configuration option allocation/vdo_minimum_io_size.
+       # The minimum IO size for VDO volume to accept, in bytes.
+       # Valid values are 512 or 4096. The recommended and default value is 4096.
+       # This configuration option has an automatic default value.
+       # vdo_minimum_io_size = 4096
+
+       # Configuration option allocation/vdo_block_map_cache_size_mb.
+       # Specifies the amount of memory in MiB allocated for caching block map
+       # pages for VDO volume. The value must be a multiple of 4096 and must be
+       # at least 128MiB and less than 16TiB. The cache must be at least 16MiB
+       # per logical thread. Note that there is a memory overhead of 15%.
+       # This configuration option has an automatic default value.
+       # vdo_block_map_cache_size_mb = 128
+
+       # Configuration option allocation/vdo_block_map_period.
+       # The speed with which the block map cache writes out modified block map pages.
+       # A smaller era length is likely to reduce the amount time spent rebuilding,
+       # at the cost of increased block map writes during normal operation.
+       # The maximum and recommended value is 16380; the minimum value is 1.
+       # This configuration option has an automatic default value.
+       # vdo_block_map_period = 16380
+
+       # Configuration option allocation/vdo_check_point_frequency.
+       # The default check point frequency for VDO volume.
+       # This configuration option has an automatic default value.
+       # vdo_check_point_frequency = 0
+
+       # Configuration option allocation/vdo_use_sparse_index.
+       # Enables sparse indexing for VDO volume.
+       # This configuration option has an automatic default value.
+       # vdo_use_sparse_index = 0
+
+       # Configuration option allocation/vdo_index_memory_size_mb.
+       # Specifies the amount of index memory in MiB for VDO volume.
+       # The value must be at least 256MiB and at most 1TiB.
+       # This configuration option has an automatic default value.
+       # vdo_index_memory_size_mb = 256
+
+       # Configuration option allocation/vdo_slab_size_mb.
+       # Specifies the size in MiB of the increment by which a VDO is grown.
+       # Using a smaller size constrains the total maximum physical size
+       # that can be accommodated. Must be a power of two between 128MiB and 32GiB.
+       # This configuration option has an automatic default value.
+       # vdo_slab_size_mb = 2048
+
+       # Configuration option allocation/vdo_ack_threads.
+       # Specifies the number of threads to use for acknowledging
+       # completion of requested VDO I/O operations.
+       # The value must be at in range [0..100].
+       # This configuration option has an automatic default value.
+       # vdo_ack_threads = 1
+
+       # Configuration option allocation/vdo_bio_threads.
+       # Specifies the number of threads to use for submitting I/O
+       # operations to the storage device of VDO volume.
+       # The value must be in range [1..100]
+       # Each additional thread after the first will use an additional 18MiB of RAM,
+       # plus 1.12 MiB of RAM per megabyte of configured read cache size.
+       # This configuration option has an automatic default value.
+       # vdo_bio_threads = 4
+
+       # Configuration option allocation/vdo_bio_rotation.
+       # Specifies the number of I/O operations to enqueue for each bio-submission
+       # thread before directing work to the next. The value must be in range [1..1024].
+       # This configuration option has an automatic default value.
+       # vdo_bio_rotation = 64
+
+       # Configuration option allocation/vdo_cpu_threads.
+       # Specifies the number of threads to use for CPU-intensive work such as
+       # hashing or compression for VDO volume. The value must be in range [1..100]
+       # This configuration option has an automatic default value.
+       # vdo_cpu_threads = 2
+
+       # Configuration option allocation/vdo_hash_zone_threads.
+       # Specifies the number of threads across which to subdivide parts of the VDO
+       # processing based on the hash value computed from the block data.
+       # The value must be at in range [0..100].
+       # vdo_hash_zone_threads, vdo_logical_threads and vdo_physical_threads must be
+       # either all zero or all non-zero.
+       # This configuration option has an automatic default value.
+       # vdo_hash_zone_threads = 1
+
+       # Configuration option allocation/vdo_logical_threads.
+       # Specifies the number of threads across which to subdivide parts of the VDO
+       # processing based on the hash value computed from the block data.
+       # A logical thread count of 9 or more will require explicitly specifying
+       # a sufficiently large block map cache size, as well.
+       # The value must be in range [0..100].
+       # vdo_hash_zone_threads, vdo_logical_threads and vdo_physical_threads must be
+       # either all zero or all non-zero.
+       # This configuration option has an automatic default value.
+       # vdo_logical_threads = 1
+
+       # Configuration option allocation/vdo_physical_threads.
+       # Specifies the number of threads across which to subdivide parts of the VDO
+       # processing based on physical block addresses.
+       # Each additional thread after the first will use an additional 10MiB of RAM.
+       # The value must be in range [0..16].
+       # vdo_hash_zone_threads, vdo_logical_threads and vdo_physical_threads must be
+       # either all zero or all non-zero.
+       # This configuration option has an automatic default value.
+       # vdo_physical_threads = 1
+
+       # Configuration option allocation/vdo_write_policy.
+       # Specifies the write policy:
+       # auto  - VDO will check the storage device and determine whether it supports flushes.
+       #         If it does, VDO will run in async mode, otherwise it will run in sync mode.
+       # sync  - Writes are acknowledged only after data is stably written.
+       #         This policy is not supported if the underlying storage is not also synchronous.
+       # async - Writes are acknowledged after data has been cached for writing to stable storage.
+       #         Data which has not been flushed is not guaranteed to persist in this mode.
+       # async-unsafe - Writes are handled like 'async' but there is no guarantee of the atomicity async provides.
+       #         This mode should only be used for better performance when atomicity is not required.
+       # This configuration option has an automatic default value.
+       # vdo_write_policy = "auto"
+
+       # Configuration option allocation/vdo_max_discard.
+       # Specified the maximum size of discard bio accepted, in 4096 byte blocks.
+       # I/O requests to a VDO volume are normally split into 4096-byte blocks,
+       # and processed up to 2048 at a time. However, discard requests to a VDO volume
+       # can be automatically split to a larger size, up to <max discard> 4096-byte blocks
+       # in a single bio, and are limited to 1500 at a time.
+       # Increasing this value may provide better overall performance, at the cost of
+       # increased latency for the individual discard requests.
+       # The default and minimum is 1. The maximum is UINT_MAX / 4096.
+       # This configuration option has an automatic default value.
+       # vdo_max_discard = 1
+
+       # Configuration option allocation/vdo_pool_header_size.
+       # Specified the emptry header size in KiB at the front and end of vdo pool device.
+       # This configuration option has an automatic default value.
+       # vdo_pool_header_size = 512
+}
+
+# Configuration section log.
+# How LVM log information is reported.
+log {
+
+       # Configuration option log/report_command_log.
+       # Enable or disable LVM log reporting.
+       # If enabled, LVM will collect a log of operations, messages,
+       # per-object return codes with object identification and associated
+       # error numbers (errnos) during LVM command processing. Then the
+       # log is either reported solely or in addition to any existing
+       # reports, depending on LVM command used. If it is a reporting command
+       # (e.g. pvs, vgs, lvs, lvm fullreport), then the log is reported in
+       # addition to any existing reports. Otherwise, there's only log report
+       # on output. For all applicable LVM commands, you can request that
+       # the output has only log report by using --logonly command line
+       # option. Use log/command_log_cols and log/command_log_sort settings
+       # to define fields to display and sort fields for the log report.
+       # You can also use log/command_log_selection to define selection
+       # criteria used each time the log is reported.
+       # This configuration option has an automatic default value.
+       # report_command_log = 0
+
+       # Configuration option log/command_log_sort.
+       # List of columns to sort by when reporting command log.
+       # See <lvm command> --logonly --configreport log -o help
+       # for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # command_log_sort = "log_seq_num"
+
+       # Configuration option log/command_log_cols.
+       # List of columns to report when reporting command log.
+       # See <lvm command> --logonly --configreport log -o help
+       # for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # command_log_cols = "log_seq_num,log_type,log_context,log_object_type,log_object_name,log_object_id,log_object_group,log_object_group_id,log_message,log_errno,log_ret_code"
+
+       # Configuration option log/command_log_selection.
+       # Selection criteria used when reporting command log.
+       # You can define selection criteria that are applied each
+       # time log is reported. This way, it is possible to control the
+       # amount of log that is displayed on output and you can select
+       # only parts of the log that are important for you. To define
+       # selection criteria, use fields from log report. See also
+       # <lvm command> --logonly --configreport log -S help for the
+       # list of possible fields and selection operators. You can also
+       # define selection criteria for log report on command line directly
+       # using <lvm command> --configreport log -S <selection criteria>
+       # which has precedence over log/command_log_selection setting.
+       # For more information about selection criteria in general, see
+       # lvm(8) man page.
+       # This configuration option has an automatic default value.
+       # command_log_selection = "!(log_type=status && message=success)"
+
+       # Configuration option log/verbose.
+       # Controls the messages sent to stdout or stderr.
+       # This configuration option has an automatic default value.
+       # verbose = 0
+
+       # Configuration option log/silent.
+       # Suppress all non-essential messages from stdout.
+       # This has the same effect as -qq. When enabled, the following commands
+       # still produce output: dumpconfig, lvdisplay, lvmdiskscan, lvs, pvck,
+       # pvdisplay, pvs, version, vgcfgrestore -l, vgdisplay, vgs.
+       # Non-essential messages are shifted from log level 4 to log level 5
+       # for syslog and lvm2_log_fn purposes.
+       # Any 'yes' or 'no' questions not overridden by other arguments are
+       # suppressed and default to 'no'.
+       # This configuration option has an automatic default value.
+       # silent = 0
+
+       # Configuration option log/syslog.
+       # Send log messages through syslog.
+       # This configuration option has an automatic default value.
+       # syslog = 0
+
+       # Configuration option log/file.
+       # Write error and debug log messages to a file specified here.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option log/journal.
+       # Record lvm information in the systemd journal.
+       # command: record commands that are run.
+       # output: record default output from commands.
+       # debug: record debug messages from commands.
+       # This configuration option has an automatic default value.
+       # journal = [ ]
+
+       # Configuration option log/overwrite.
+       # Overwrite the log file each time the program is run.
+       # This configuration option has an automatic default value.
+       # overwrite = 0
+
+       # Configuration option log/level.
+       # The level of log messages that are sent to the log file or syslog.
+       # There are 6 syslog-like log levels currently in use: 2 to 7 inclusive.
+       # 7 is the most verbose (LOG_DEBUG).
+       # This configuration option has an automatic default value.
+       # level = 0
+
+       # Configuration option log/indent.
+       # Indent messages according to their severity.
+       # This configuration option has an automatic default value.
+       # indent = 0
+
+       # Configuration option log/command_names.
+       # Display the command name on each line of output.
+       # This configuration option has an automatic default value.
+       # command_names = 0
+
+       # Configuration option log/prefix.
+       # A prefix to use before the log message text.
+       # (After the command name, if selected).
+       # Two spaces allows you to see/grep the severity of each message.
+       # To make the messages look similar to the original LVM tools use:
+       # indent = 0, command_names = 1, prefix = " -- "
+       # This configuration option has an automatic default value.
+       # prefix = "  "
+
+       # Configuration option log/activation.
+       # Log messages during activation.
+       # Don't use this in low memory situations (can deadlock).
+       # This configuration option has an automatic default value.
+       # activation = 0
+
+       # Configuration option log/debug_classes.
+       # Select log messages by class.
+       # Some debugging messages are assigned to a class and only appear in
+       # debug output if the class is listed here. Classes currently
+       # available: memory, devices, io, activation, allocation,
+       # metadata, cache, locking, lvmpolld. Use "all" to see everything.
+       # This configuration option has an automatic default value.
+       # debug_classes = [ "memory", "devices", "io", "activation", "allocation", "metadata", "cache", "locking", "lvmpolld", "dbus" ]
+
+       # Configuration option log/debug_file_fields.
+       # The fields included in debug output written to log file.
+       # Use "all" to include everything (the default).
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # debug_file_fields = [ "time", "command", "fileline", "message" ]
+
+       # Configuration option log/debug_output_fields.
+       # The fields included in debug output written to stderr.
+       # Use "all" to include everything (the default).
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # debug_output_fields = [ "time", "command", "fileline", "message" ]
+}
+
+# Configuration section backup.
+# How LVM metadata is backed up and archived.
+# In LVM, a 'backup' is a copy of the metadata for the current system,
+# and an 'archive' contains old metadata configurations. They are
+# stored in a human readable text format.
+backup {
+
+       # Configuration option backup/backup.
+       # Maintain a backup of the current metadata configuration.
+       # Think very hard before turning this off!
+       # This configuration option has an automatic default value.
+       # backup = 1
+
+       # Configuration option backup/backup_dir.
+       # Location of the metadata backup files.
+       # Remember to back up this directory regularly!
+       # This configuration option has an automatic default value.
+       # backup_dir = "/etc/lvm/backup"
+
+       # Configuration option backup/archive.
+       # Maintain an archive of old metadata configurations.
+       # Think very hard before turning this off.
+       # This configuration option has an automatic default value.
+       # archive = 1
+
+       # Configuration option backup/archive_dir.
+       # Location of the metdata archive files.
+       # Remember to back up this directory regularly!
+       # This configuration option has an automatic default value.
+       # archive_dir = "/etc/lvm/archive"
+
+       # Configuration option backup/retain_min.
+       # Minimum number of archives to keep.
+       # This configuration option has an automatic default value.
+       # retain_min = 10
+
+       # Configuration option backup/retain_days.
+       # Minimum number of days to keep archive files.
+       # This configuration option has an automatic default value.
+       # retain_days = 30
+}
+
+# Configuration section shell.
+# Settings for running LVM in shell (readline) mode.
+shell {
+
+       # Configuration option shell/history_size.
+       # Number of lines of history to store in ~/.lvm_history.
+       # This configuration option has an automatic default value.
+       # history_size = 100
+}
+
+# Configuration section global.
+# Miscellaneous global LVM settings.
+global {
+
+       # Configuration option global/umask.
+       # The file creation mask for any files and directories created.
+       # Interpreted as octal if the first digit is zero.
+       # This configuration option has an automatic default value.
+       # umask = 077
+
+       # Configuration option global/test.
+       # No on-disk metadata changes will be made in test mode.
+       # Equivalent to having the -t option on every command.
+       # This configuration option has an automatic default value.
+       # test = 0
+
+       # Configuration option global/units.
+       # Default value for --units argument.
+       # This configuration option has an automatic default value.
+       # units = "r"
+
+       # Configuration option global/si_unit_consistency.
+       # Distinguish between powers of 1024 and 1000 bytes.
+       # The LVM commands distinguish between powers of 1024 bytes,
+       # e.g. KiB, MiB, GiB, and powers of 1000 bytes, e.g. KB, MB, GB.
+       # If scripts depend on the old behaviour, disable this setting
+       # temporarily until they are updated.
+       # This configuration option has an automatic default value.
+       # si_unit_consistency = 1
+
+       # Configuration option global/suffix.
+       # Display unit suffix for sizes.
+       # This setting has no effect if the units are in human-readable form
+       # (global/units = "h") in which case the suffix is always displayed.
+       # This configuration option has an automatic default value.
+       # suffix = 1
+
+       # Configuration option global/activation.
+       # Enable/disable communication with the kernel device-mapper.
+       # Disable to use the tools to manipulate LVM metadata without
+       # activating any logical volumes. If the device-mapper driver
+       # is not present in the kernel, disabling this should suppress
+       # the error messages.
+       # This configuration option has an automatic default value.
+       # activation = 1
+
+       # Configuration option global/proc.
+       # Location of proc filesystem.
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # proc = "/proc"
+
+       # Configuration option global/etc.
+       # Location of /etc system configuration directory.
+       # This configuration option has an automatic default value.
+       # etc = "/etc"
+
+       # Configuration option global/wait_for_locks.
+       # When disabled, fail if a lock request would block.
+       # This configuration option has an automatic default value.
+       # wait_for_locks = 1
+
+       # Configuration option global/locking_dir.
+       # Directory to use for LVM command file locks.
+       # Local non-LV directory that holds file-based locks while commands are
+       # in progress. A directory like /tmp that may get wiped on reboot is OK.
+       # This configuration option has an automatic default value.
+       # locking_dir = "/run/lock/lvm"
+
+       # Configuration option global/prioritise_write_locks.
+       # Allow quicker VG write access during high volume read access.
+       # When there are competing read-only and read-write access requests for
+       # a volume group's metadata, instead of always granting the read-only
+       # requests immediately, delay them to allow the read-write requests to
+       # be serviced. Without this setting, write access may be stalled by a
+       # high volume of read-only requests. This option only affects file locks.
+       # This configuration option has an automatic default value.
+       # prioritise_write_locks = 1
+
+       # Configuration option global/library_dir.
+       # Search this directory first for shared libraries.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option global/abort_on_internal_errors.
+       # Abort a command that encounters an internal error.
+       # Treat any internal errors as fatal errors, aborting the process that
+       # encountered the internal error. Please only enable for debugging.
+       # This configuration option has an automatic default value.
+       # abort_on_internal_errors = 0
+
+       # Configuration option global/metadata_read_only.
+       # No operations that change on-disk metadata are permitted.
+       # Additionally, read-only commands that encounter metadata in need of
+       # repair will still be allowed to proceed exactly as if the repair had
+       # been performed (except for the unchanged vg_seqno). Inappropriate
+       # use could mess up your system, so seek advice first!
+       # This configuration option has an automatic default value.
+       # metadata_read_only = 0
+
+       # Configuration option global/mirror_segtype_default.
+       # The segment type used by the short mirroring option -m.
+       # The --type mirror|raid1 option overrides this setting.
+       #
+       # Accepted values:
+       #   mirror
+       #     The original RAID1 implementation from LVM/DM. It is
+       #     characterized by a flexible log solution (core, disk, mirrored),
+       #     and by the necessity to block I/O while handling a failure.
+       #     There is an inherent race in the dmeventd failure handling logic
+       #     with snapshots of devices using this type of RAID1 that in the
+       #     worst case could cause a deadlock. (Also see
+       #     devices/ignore_lvm_mirrors.)
+       #   raid1
+       #     This is a newer RAID1 implementation using the MD RAID1
+       #     personality through device-mapper. It is characterized by a
+       #     lack of log options. (A log is always allocated for every
+       #     device and they are placed on the same device as the image,
+       #     so no separate devices are required.) This mirror
+       #     implementation does not require I/O to be blocked while
+       #     handling a failure. This mirror implementation is not
+       #     cluster-aware and cannot be used in a shared (active/active)
+       #     fashion in a cluster.
+       #
+       # This configuration option has an automatic default value.
+       # mirror_segtype_default = "raid1"
+
+       # Configuration option global/support_mirrored_mirror_log.
+       # Enable mirrored 'mirror' log type for testing.
+       #
+       # This type is deprecated to create or convert to but can
+       # be enabled to test that activation of existing mirrored
+       # logs and conversion to disk/core works.
+       #
+       # Not supported for regular operation!
+       # This configuration option has an automatic default value.
+       # support_mirrored_mirror_log = 0
+
+       # Configuration option global/raid10_segtype_default.
+       # The segment type used by the -i -m combination.
+       # The --type raid10|mirror option overrides this setting.
+       # The --stripes/-i and --mirrors/-m options can both be specified
+       # during the creation of a logical volume to use both striping and
+       # mirroring for the LV. There are two different implementations.
+       #
+       # Accepted values:
+       #   raid10
+       #     LVM uses MD's RAID10 personality through DM. This is the
+       #     preferred option.
+       #   mirror
+       #     LVM layers the 'mirror' and 'stripe' segment types. The layering
+       #     is done by creating a mirror LV on top of striped sub-LVs,
+       #     effectively creating a RAID 0+1 array. The layering is suboptimal
+       #     in terms of providing redundancy and performance.
+       #
+       # This configuration option has an automatic default value.
+       # raid10_segtype_default = "raid10"
+
+       # Configuration option global/sparse_segtype_default.
+       # The segment type used by the -V -L combination.
+       # The --type snapshot|thin option overrides this setting.
+       # The combination of -V and -L options creates a sparse LV. There are
+       # two different implementations.
+       #
+       # Accepted values:
+       #   snapshot
+       #     The original snapshot implementation from LVM/DM. It uses an old
+       #     snapshot that mixes data and metadata within a single COW
+       #     storage volume and performs poorly when the size of stored data
+       #     passes hundreds of MB.
+       #   thin
+       #     A newer implementation that uses thin provisioning. It has a
+       #     bigger minimal chunk size (64KiB) and uses a separate volume for
+       #     metadata. It has better performance, especially when more data
+       #     is used. It also supports full snapshots.
+       #
+       # This configuration option has an automatic default value.
+       # sparse_segtype_default = "thin"
+
+       # Configuration option global/lvdisplay_shows_full_device_path.
+       # Enable this to reinstate the previous lvdisplay name format.
+       # The default format for displaying LV names in lvdisplay was changed
+       # in version 2.02.89 to show the LV name and path separately.
+       # Previously this was always shown as /dev/vgname/lvname even when that
+       # was never a valid path in the /dev filesystem.
+       # This configuration option has an automatic default value.
+       # lvdisplay_shows_full_device_path = 0
+
+       # Configuration option global/event_activation.
+       # Disable event based autoactivation commands.
+       # WARNING: setting this to zero may cause machine startup to fail.
+       # Previously, setting this to zero would enable static autoactivation
+       # services (via the lvm2-activation-generator), but the autoactivation
+       # services and generator have been removed.
+       # This configuration option has an automatic default value.
+       # event_activation = 1
+
+       # Configuration option global/use_aio.
+       # Use async I/O when reading and writing devices.
+       # This configuration option has an automatic default value.
+       # use_aio = 1
+
+       # Configuration option global/use_lvmlockd.
+       # Use lvmlockd for locking among hosts using LVM on shared storage.
+       # Applicable only if LVM is compiled with lockd support in which
+       # case there is also lvmlockd(8) man page available for more
+       # information.
+       # This configuration option has an automatic default value.
+       # use_lvmlockd = 0
+
+       # Configuration option global/lvmlockd_lock_retries.
+       # Retry lvmlockd lock requests this many times.
+       # Applicable only if LVM is compiled with lockd support
+       # This configuration option has an automatic default value.
+       # lvmlockd_lock_retries = 3
+
+       # Configuration option global/sanlock_lv_extend.
+       # Size in MiB to extend the internal LV holding sanlock locks.
+       # The internal LV holds locks for each LV in the VG, and after enough
+       # LVs have been created, the internal LV needs to be extended. lvcreate
+       # will automatically extend the internal LV when needed by the amount
+       # specified here. Setting this to 0 disables the automatic extension
+       # and can cause lvcreate to fail. Applicable only if LVM is compiled
+       # with lockd support
+       # This configuration option has an automatic default value.
+       # sanlock_lv_extend = 256
+
+       # Configuration option global/lvmlockctl_kill_command.
+       # The command that lvmlockctl --kill should use to force LVs offline.
+       # The lvmlockctl --kill command is run when a shared VG has lost
+       # access to locks (e.g. when sanlock has lost access to storage.)
+       # An empty string means that there will be no automatic attempt by
+       # lvmlockctl --kill to forcibly shut down LVs in the VG, and the user
+       # can manually intervene as described in lvmlockd(8).
+       # The VG name will be appended to the command specified here.
+       # This configuration option has an automatic default value.
+       # lvmlockctl_kill_command = ""
+
+       # Configuration option global/thin_check_executable.
+       # The full path to the thin_check command.
+       # LVM uses this command to check that a thin metadata device is in a
+       # usable state. When a thin pool is activated and after it is
+       # deactivated, this command is run. Activation will only proceed if
+       # the command has an exit status of 0. Set to "" to skip this check.
+       # (Not recommended.) Also see thin_check_options.
+       # (See package device-mapper-persistent-data or thin-provisioning-tools)
+       # This configuration option has an automatic default value.
+       # thin_check_executable = "/usr/sbin/thin_check"
+
+       # Configuration option global/thin_dump_executable.
+       # The full path to the thin_dump command.
+       # LVM uses this command to dump thin pool metadata.
+       # (See package device-mapper-persistent-data or thin-provisioning-tools)
+       # This configuration option has an automatic default value.
+       # thin_dump_executable = "/usr/sbin/thin_dump"
+
+       # Configuration option global/thin_repair_executable.
+       # The full path to the thin_repair command.
+       # LVM uses this command to repair a thin metadata device if it is in
+       # an unusable state. Also see thin_repair_options.
+       # (See package device-mapper-persistent-data or thin-provisioning-tools)
+       # This configuration option has an automatic default value.
+       # thin_repair_executable = "/usr/sbin/thin_repair"
+
+       # Configuration option global/thin_check_options.
+       # List of options passed to the thin_check command.
+       # With thin_check version 2.1 or newer you can add the option
+       # --ignore-non-fatal-errors to let it pass through ignorable errors
+       # and fix them later. With thin_check version 3.2 or newer you should
+       # include the option --clear-needs-check-flag.
+       # This configuration option has an automatic default value.
+       # thin_check_options = [ "-q", "--clear-needs-check-flag" ]
+
+       # Configuration option global/thin_repair_options.
+       # List of options passed to the thin_repair command.
+       # This configuration option has an automatic default value.
+       # thin_repair_options = [ "" ]
+
+       # Configuration option global/thin_disabled_features.
+       # Features to not use in the thin driver.
+       # This can be helpful for testing, or to avoid using a feature that is
+       # causing problems. Features include: block_size, discards,
+       # discards_non_power_2, external_origin, metadata_resize,
+       # external_origin_extend, error_if_no_space.
+       #
+       # Example
+       # thin_disabled_features = [ "discards", "block_size" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option global/cache_disabled_features.
+       # Features to not use in the cache driver.
+       # This can be helpful for testing, or to avoid using a feature that is
+       # causing problems. Features include: policy_mq, policy_smq, metadata2.
+       #
+       # Example
+       # cache_disabled_features = [ "policy_smq" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option global/cache_check_executable.
+       # The full path to the cache_check command.
+       # LVM uses this command to check that a cache metadata device is in a
+       # usable state. When a cached LV is activated and after it is
+       # deactivated, this command is run. Activation will only proceed if the
+       # command has an exit status of 0. Set to "" to skip this check.
+       # (Not recommended.) Also see cache_check_options.
+       # (See package device-mapper-persistent-data or thin-provisioning-tools)
+       # This configuration option has an automatic default value.
+       # cache_check_executable = "/usr/sbin/cache_check"
+
+       # Configuration option global/cache_dump_executable.
+       # The full path to the cache_dump command.
+       # LVM uses this command to dump cache pool metadata.
+       # (See package device-mapper-persistent-data or thin-provisioning-tools)
+       # This configuration option has an automatic default value.
+       # cache_dump_executable = "/usr/sbin/cache_dump"
+
+       # Configuration option global/cache_repair_executable.
+       # The full path to the cache_repair command.
+       # LVM uses this command to repair a cache metadata device if it is in
+       # an unusable state. Also see cache_repair_options.
+       # (See package device-mapper-persistent-data or thin-provisioning-tools)
+       # This configuration option has an automatic default value.
+       # cache_repair_executable = "/usr/sbin/cache_repair"
+
+       # Configuration option global/cache_check_options.
+       # List of options passed to the cache_check command.
+       # With cache_check version 5.0 or newer you should include the option
+       # --clear-needs-check-flag.
+       # This configuration option has an automatic default value.
+       # cache_check_options = [ "-q", "--clear-needs-check-flag" ]
+
+       # Configuration option global/cache_repair_options.
+       # List of options passed to the cache_repair command.
+       # This configuration option has an automatic default value.
+       # cache_repair_options = [ "" ]
+
+       # Configuration option global/vdo_format_executable.
+       # The full path to the vdoformat command.
+       # LVM uses this command to initial data volume for VDO type logical volume
+       # This configuration option has an automatic default value.
+       # vdo_format_executable = "/usr/bin/vdoformat"
+
+       # Configuration option global/vdo_format_options.
+       # List of options passed added to standard vdoformat command.
+       # This configuration option has an automatic default value.
+       # vdo_format_options = [ "" ]
+
+       # Configuration option global/vdo_disabled_features.
+       # Features to not use in the vdo driver.
+       # This can be helpful for testing, or to avoid using a feature that is
+       # causing problems. Features include: online_rename
+       #
+       # Example
+       # vdo_disabled_features = [ "online_rename" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option global/fsadm_executable.
+       # The full path to the fsadm command.
+       # LVM uses this command to help with lvresize -r operations.
+       # This configuration option has an automatic default value.
+       # fsadm_executable = "/sbin/fsadm"
+
+       # Configuration option global/system_id_source.
+       # The method LVM uses to set the local system ID.
+       # Volume Groups can also be given a system ID (by vgcreate, vgchange,
+       # or vgimport.) A VG on shared storage devices is accessible only to
+       # the host with a matching system ID. See 'man lvmsystemid' for
+       # information on limitations and correct usage.
+       #
+       # Accepted values:
+       #   none
+       #     The host has no system ID.
+       #   lvmlocal
+       #     Obtain the system ID from the system_id setting in the 'local'
+       #     section of an lvm configuration file, e.g. lvmlocal.conf.
+       #   uname
+       #     Set the system ID from the hostname (uname) of the system.
+       #     System IDs beginning localhost are not permitted.
+       #   appmachineid
+       #     Use an LVM-specific derivation of the local machine-id as the
+       #     system ID. See 'man machine-id'.
+       #   machineid
+       #     Use the contents of the machine-id file to set the system ID
+       #     (appmachineid is recommended.)
+       #   file
+       #     Use the contents of another file (system_id_file) to set the
+       #     system ID.
+       #
+       # This configuration option has an automatic default value.
+       # system_id_source = "none"
+
+       # Configuration option global/system_id_file.
+       # The full path to the file containing a system ID.
+       # This is used when system_id_source is set to 'file'.
+       # Comments starting with the character # are ignored.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option global/use_lvmpolld.
+       # Use lvmpolld to supervise long running LVM commands.
+       # When enabled, control of long running LVM commands is transferred
+       # from the original LVM command to the lvmpolld daemon. This allows
+       # the operation to continue independent of the original LVM command.
+       # After lvmpolld takes over, the LVM command displays the progress
+       # of the ongoing operation. lvmpolld itself runs LVM commands to
+       # manage the progress of ongoing operations. lvmpolld can be used as
+       # a native systemd service, which allows it to be started on demand,
+       # and to use its own control group. When this option is disabled, LVM
+       # commands will supervise long running operations by forking themselves.
+       # Applicable only if LVM is compiled with lvmpolld support.
+       # This configuration option has an automatic default value.
+       # use_lvmpolld = 1
+
+       # Configuration option global/notify_dbus.
+       # Enable D-Bus notification from LVM commands.
+       # When enabled, an LVM command that changes PVs, changes VG metadata,
+       # or changes the activation state of an LV will send a notification.
+       # This configuration option has an automatic default value.
+       # notify_dbus = 1
+
+       # Configuration option global/io_memory_size.
+       # The amount of memory in KiB that LVM allocates to perform disk io.
+       # LVM performance may benefit from more io memory when there are many
+       # disks or VG metadata is large. Increasing this size may be necessary
+       # when a single copy of VG metadata is larger than the current setting.
+       # This value should usually not be decreased from the default; setting
+       # it too low can result in lvm failing to read VGs.
+       # This configuration option has an automatic default value.
+       # io_memory_size = 8192
+}
+
+# Configuration section activation.
+activation {
+
+       # Configuration option activation/checks.
+       # Perform internal checks of libdevmapper operations.
+       # Useful for debugging problems with activation. Some of the checks may
+       # be expensive, so it's best to use this only when there seems to be a
+       # problem.
+       # This configuration option has an automatic default value.
+       # checks = 0
+
+       # Configuration option activation/udev_sync.
+       # Use udev notifications to synchronize udev and LVM.
+       # The --noudevsync option overrides this setting.
+       # When disabled, LVM commands will not wait for notifications from
+       # udev, but continue irrespective of any possible udev processing in
+       # the background. Only use this if udev is not running or has rules
+       # that ignore the devices LVM creates. If enabled when udev is not
+       # running, and LVM processes are waiting for udev, run the command
+       # 'dmsetup udevcomplete_all' to wake them up.
+       # This configuration option has an automatic default value.
+       # udev_sync = 1
+
+       # Configuration option activation/udev_rules.
+       # Use udev rules to manage LV device nodes and symlinks.
+       # When disabled, LVM will manage the device nodes and symlinks for
+       # active LVs itself. Manual intervention may be required if this
+       # setting is changed while LVs are active.
+       # This configuration option has an automatic default value.
+       # udev_rules = 1
+
+       # Configuration option activation/verify_udev_operations.
+       # Use extra checks in LVM to verify udev operations.
+       # This enables additional checks (and if necessary, repairs) on entries
+       # in the device directory after udev has completed processing its
+       # events. Useful for diagnosing problems with LVM/udev interactions.
+       # This configuration option has an automatic default value.
+       # verify_udev_operations = 0
+
+       # Configuration option activation/retry_deactivation.
+       # Retry failed LV deactivation.
+       # If LV deactivation fails, LVM will retry for a few seconds before
+       # failing. This may happen because a process run from a quick udev rule
+       # temporarily opened the device.
+       # This configuration option has an automatic default value.
+       # retry_deactivation = 1
+
+       # Configuration option activation/missing_stripe_filler.
+       # Method to fill missing stripes when activating an incomplete LV.
+       # Using 'error' will make inaccessible parts of the device return I/O
+       # errors on access. Using 'zero' will return success (and zero) on I/O
+       # You can instead use a device path, in which case,
+       # that device will be used in place of missing stripes. Using anything
+       # other than 'error' with mirrored or snapshotted volumes is likely to
+       # result in data corruption.
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # missing_stripe_filler = "error"
+
+       # Configuration option activation/use_linear_target.
+       # Use the linear target to optimize single stripe LVs.
+       # When disabled, the striped target is used. The linear target is an
+       # optimised version of the striped target that only handles a single
+       # stripe.
+       # This configuration option has an automatic default value.
+       # use_linear_target = 1
+
+       # Configuration option activation/reserved_stack.
+       # Stack size in KiB to reserve for use while devices are suspended.
+       # Insufficent reserve risks I/O deadlock during device suspension.
+       # This configuration option has an automatic default value.
+       # reserved_stack = 64
+
+       # Configuration option activation/reserved_memory.
+       # Memory size in KiB to reserve for use while devices are suspended.
+       # Insufficent reserve risks I/O deadlock during device suspension.
+       # This configuration option has an automatic default value.
+       # reserved_memory = 8192
+
+       # Configuration option activation/process_priority.
+       # Nice value used while devices are suspended.
+       # Use a high priority so that LVs are suspended
+       # for the shortest possible time.
+       # This configuration option has an automatic default value.
+       # process_priority = -18
+
+       # Configuration option activation/volume_list.
+       # Only LVs selected by this list are activated.
+       # If this list is defined, an LV is only activated if it matches an
+       # entry in this list. If this list is undefined, it imposes no limits
+       # on LV activation (all are allowed).
+       #
+       # Accepted values:
+       #   vgname
+       #     The VG name is matched exactly and selects all LVs in the VG.
+       #   vgname/lvname
+       #     The VG name and LV name are matched exactly and selects the LV.
+       #   @tag
+       #     Selects an LV if the specified tag matches a tag set on the LV
+       #     or VG.
+       #   @*
+       #     Selects an LV if a tag defined on the host is also set on the LV
+       #     or VG. See tags/hosttags. If any host tags exist but volume_list
+       #     is not defined, a default single-entry list containing '@*'
+       #     is assumed.
+       #
+       # Example
+       # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option activation/auto_activation_volume_list.
+       # A list of VGs or LVs that should be autoactivated.
+       # Autoactivation is an activation command run with -aay,
+       # i.e. vgchange -aay, lvchange -aay, or pvscan --cache -aay.
+       # When this list is defined, an autoactivation command will only
+       # activate LVs included in the list. If this list is undefined,
+       # it has no effect. If this list is defined but empty, then no
+       # LVs will be autoactivated. LVs can be included in the list by
+       # LV name, VG name (applies to all LVs in the VG), or tag name.
+       # VGs and LVs can also have an autoactivation property set in
+       # metadata, see --setautoactivation. LVs included in this list
+       # will not be autoactivated if the VG or LV autoactivation
+       # property is disabled (see vgs or lvs "-o autoactivation").
+       # The volume_list setting and the "activation skip" property
+       # also apply to autoactivation.
+       # The -aay option is meant to be used by activation commands that
+       # are run automatically by the system, e.g. from systemd services.
+       #
+       # Accepted values:
+       #   vgname
+       #     The VG name is matched exactly and selects all LVs in the VG.
+       #   vgname/lvname
+       #     The VG name and LV name are matched exactly and selects the LV.
+       #   @tag
+       #     Selects an LV if the specified tag matches a tag set on the LV
+       #     or VG.
+       #   @*
+       #     Selects an LV if a tag defined on the host is also set on the LV
+       #     or VG. See tags/hosttags. If any host tags exist but volume_list
+       #     is not defined, a default single-entry list containing '@*'
+       #     is assumed.
+       #
+       # Example
+       # auto_activation_volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option activation/read_only_volume_list.
+       # LVs in this list are activated in read-only mode.
+       # If this list is defined, each LV that is to be activated is checked
+       # against this list, and if it matches, it is activated in read-only
+       # mode. This overrides the permission setting stored in the metadata,
+       # e.g. from --permission rw.
+       #
+       # Accepted values:
+       #   vgname
+       #     The VG name is matched exactly and selects all LVs in the VG.
+       #   vgname/lvname
+       #     The VG name and LV name are matched exactly and selects the LV.
+       #   @tag
+       #     Selects an LV if the specified tag matches a tag set on the LV
+       #     or VG.
+       #   @*
+       #     Selects an LV if a tag defined on the host is also set on the LV
+       #     or VG. See tags/hosttags. If any host tags exist but volume_list
+       #     is not defined, a default single-entry list containing '@*'
+       #     is assumed.
+       #
+       # Example
+       # read_only_volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+       #
+       # This configuration option does not have a default value defined.
+
+       # Configuration option activation/raid_region_size.
+       # Size in KiB of each raid or mirror synchronization region.
+       # The clean/dirty state of data is tracked for each region.
+       # The value is rounded down to a power of two if necessary, and
+       # is ignored if it is not a multiple of the machine memory page size.
+       # This configuration option has an automatic default value.
+       # raid_region_size = 2048
+
+       # Configuration option activation/error_when_full.
+       # Return errors if a thin pool runs out of space.
+       # The --errorwhenfull option overrides this setting.
+       # When enabled, writes to thin LVs immediately return an error if the
+       # thin pool is out of data space. When disabled, writes to thin LVs
+       # are queued if the thin pool is out of space, and processed when the
+       # thin pool data space is extended. New thin pools are assigned the
+       # behavior defined here.
+       # This configuration option has an automatic default value.
+       # error_when_full = 0
+
+       # Configuration option activation/readahead.
+       # Setting to use when there is no readahead setting in metadata.
+       #
+       # Accepted values:
+       #   none
+       #     Disable readahead.
+       #   auto
+       #     Use default value chosen by kernel.
+       #
+       # This configuration option has an automatic default value.
+       # readahead = "auto"
+
+       # Configuration option activation/raid_fault_policy.
+       # Defines how a device failure in a RAID LV is handled.
+       # This includes LVs that have the following segment types:
+       # raid1, raid4, raid5*, and raid6*.
+       # If a device in the LV fails, the policy determines the steps
+       # performed by dmeventd automatically, and the steps perfomed by the
+       # manual command lvconvert --repair --use-policies.
+       # Automatic handling requires dmeventd to be monitoring the LV.
+       #
+       # Accepted values:
+       #   warn
+       #     Use the system log to warn the user that a device in the RAID LV
+       #     has failed. It is left to the user to run lvconvert --repair
+       #     manually to remove or replace the failed device. As long as the
+       #     number of failed devices does not exceed the redundancy of the LV
+       #     (1 device for raid4/5, 2 for raid6), the LV will remain usable.
+       #   allocate
+       #     Attempt to use any extra physical volumes in the VG as spares and
+       #     replace faulty devices.
+       #
+       # This configuration option has an automatic default value.
+       # raid_fault_policy = "warn"
+
+       # Configuration option activation/mirror_image_fault_policy.
+       # Defines how a device failure in a 'mirror' LV is handled.
+       # An LV with the 'mirror' segment type is composed of mirror images
+       # (copies) and a mirror log. A disk log ensures that a mirror LV does
+       # not need to be re-synced (all copies made the same) every time a
+       # machine reboots or crashes. If a device in the LV fails, this policy
+       # determines the steps perfomed by dmeventd automatically, and the steps
+       # performed by the manual command lvconvert --repair --use-policies.
+       # Automatic handling requires dmeventd to be monitoring the LV.
+       #
+       # Accepted values:
+       #   remove
+       #     Simply remove the faulty device and run without it. If the log
+       #     device fails, the mirror would convert to using an in-memory log.
+       #     This means the mirror will not remember its sync status across
+       #     crashes/reboots and the entire mirror will be re-synced. If a
+       #     mirror image fails, the mirror will convert to a non-mirrored
+       #     device if there is only one remaining good copy.
+       #   allocate
+       #     Remove the faulty device and try to allocate space on a new
+       #     device to be a replacement for the failed device. Using this
+       #     policy for the log is fast and maintains the ability to remember
+       #     sync state through crashes/reboots. Using this policy for a
+       #     mirror device is slow, as it requires the mirror to resynchronize
+       #     the devices, but it will preserve the mirror characteristic of
+       #     the device. This policy acts like 'remove' if no suitable device
+       #     and space can be allocated for the replacement.
+       #   allocate_anywhere
+       #     Not yet implemented. Useful to place the log device temporarily
+       #     on the same physical volume as one of the mirror images. This
+       #     policy is not recommended for mirror devices since it would break
+       #     the redundant nature of the mirror. This policy acts like
+       #     'remove' if no suitable device and space can be allocated for the
+       #     replacement.
+       #
+       # This configuration option has an automatic default value.
+       # mirror_image_fault_policy = "remove"
+
+       # Configuration option activation/mirror_log_fault_policy.
+       # Defines how a device failure in a 'mirror' log LV is handled.
+       # The mirror_image_fault_policy description for mirrored LVs also
+       # applies to mirrored log LVs.
+       # This configuration option has an automatic default value.
+       # mirror_log_fault_policy = "allocate"
+
+       # Configuration option activation/snapshot_autoextend_threshold.
+       # Auto-extend a snapshot when its usage exceeds this percent.
+       # Setting this to 100 disables automatic extension.
+       # The minimum value is 50 (a smaller value is treated as 50.)
+       # Also see snapshot_autoextend_percent.
+       # Automatic extension requires dmeventd to be monitoring the LV.
+       #
+       # Example
+       # Using 70% autoextend threshold and 20% autoextend size, when a 1G
+       # snapshot exceeds 700M, it is extended to 1.2G, and when it exceeds
+       # 840M, it is extended to 1.44G:
+       # snapshot_autoextend_threshold = 70
+       #
+       # This configuration option has an automatic default value.
+       # snapshot_autoextend_threshold = 100
+
+       # Configuration option activation/snapshot_autoextend_percent.
+       # Auto-extending a snapshot adds this percent extra space.
+       # The amount of additional space added to a snapshot is this
+       # percent of its current size.
+       #
+       # Example
+       # Using 70% autoextend threshold and 20% autoextend size, when a 1G
+       # snapshot exceeds 700M, it is extended to 1.2G, and when it exceeds
+       # 840M, it is extended to 1.44G:
+       # snapshot_autoextend_percent = 20
+       #
+       # This configuration option has an automatic default value.
+       # snapshot_autoextend_percent = 20
+
+       # Configuration option activation/thin_pool_autoextend_threshold.
+       # Auto-extend a thin pool when its usage exceeds this percent.
+       # Setting this to 100 disables automatic extension.
+       # The minimum value is 50 (a smaller value is treated as 50.)
+       # Also see thin_pool_autoextend_percent.
+       # Automatic extension requires dmeventd to be monitoring the LV.
+       #
+       # Example
+       # Using 70% autoextend threshold and 20% autoextend size, when a 1G
+       # thin pool exceeds 700M, it is extended to 1.2G, and when it exceeds
+       # 840M, it is extended to 1.44G:
+       # thin_pool_autoextend_threshold = 70
+       #
+       # This configuration option has an automatic default value.
+       # thin_pool_autoextend_threshold = 100
+
+       # Configuration option activation/thin_pool_autoextend_percent.
+       # Auto-extending a thin pool adds this percent extra space.
+       # The amount of additional space added to a thin pool is this
+       # percent of its current size.
+       #
+       # Example
+       # Using 70% autoextend threshold and 20% autoextend size, when a 1G
+       # thin pool exceeds 700M, it is extended to 1.2G, and when it exceeds
+       # 840M, it is extended to 1.44G:
+       # thin_pool_autoextend_percent = 20
+       #
+       # This configuration option has an automatic default value.
+       # thin_pool_autoextend_percent = 20
+
+       # Configuration option activation/vdo_pool_autoextend_threshold.
+       # Auto-extend a VDO pool when its usage exceeds this percent.
+       # Setting this to 100 disables automatic extension.
+       # The minimum value is 50 (a smaller value is treated as 50.)
+       # Also see vdo_pool_autoextend_percent.
+       # Automatic extension requires dmeventd to be monitoring the LV.
+       #
+       # Example
+       # Using 70% autoextend threshold and 20% autoextend size, when a 10G
+       # VDO pool exceeds 7G, it is extended to 12G, and when it exceeds
+       # 8.4G, it is extended to 14.4G:
+       # vdo_pool_autoextend_threshold = 70
+       #
+       # This configuration option has an automatic default value.
+       # vdo_pool_autoextend_threshold = 100
+
+       # Configuration option activation/vdo_pool_autoextend_percent.
+       # Auto-extending a VDO pool adds this percent extra space.
+       # The amount of additional space added to a VDO pool is this
+       # percent of its current size.
+       #
+       # Example
+       # Using 70% autoextend threshold and 20% autoextend size, when a 10G
+       # VDO pool exceeds 7G, it is extended to 12G, and when it exceeds
+       # 8.4G, it is extended to 14.4G:
+       # This configuration option has an automatic default value.
+       # vdo_pool_autoextend_percent = 20
+
+       # Configuration option activation/mlock_filter.
+       # Do not mlock these memory areas.
+       # While activating devices, I/O to devices being (re)configured is
+       # suspended. As a precaution against deadlocks, LVM pins memory it is
+       # using so it is not paged out, and will not require I/O to reread.
+       # Groups of pages that are known not to be accessed during activation
+       # do not need to be pinned into memory. Each string listed in this
+       # setting is compared against each line in /proc/self/maps, and the
+       # pages corresponding to lines that match are not pinned. On some
+       # systems, locale-archive was found to make up over 80% of the memory
+       # used by the process.
+       #
+       # Example
+       # mlock_filter = [ "locale/locale-archive", "gconv/gconv-modules.cache" ]
+       #
+       # This configuration option is advanced.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option activation/use_mlockall.
+       # Use the old behavior of mlockall to pin all memory.
+       # Prior to version 2.02.62, LVM used mlockall() to pin the whole
+       # process's memory while activating devices.
+       # This configuration option has an automatic default value.
+       # use_mlockall = 0
+
+       # Configuration option activation/monitoring.
+       # Monitor LVs that are activated.
+       # The --ignoremonitoring option overrides this setting.
+       # When enabled, LVM will ask dmeventd to monitor activated LVs.
+       # This configuration option has an automatic default value.
+       # monitoring = 1
+
+       # Configuration option activation/polling_interval.
+       # Check pvmove or lvconvert progress at this interval (seconds).
+       # When pvmove or lvconvert must wait for the kernel to finish
+       # synchronising or merging data, they check and report progress at
+       # intervals of this number of seconds. If this is set to 0 and there
+       # is only one thing to wait for, there are no progress reports, but
+       # the process is awoken immediately once the operation is complete.
+       # This configuration option has an automatic default value.
+       # polling_interval = 15
+
+       # Configuration option activation/auto_set_activation_skip.
+       # Set the activation skip flag on new thin snapshot LVs.
+       # The --setactivationskip option overrides this setting.
+       # An LV can have a persistent 'activation skip' flag. The flag causes
+       # the LV to be skipped during normal activation. The lvchange/vgchange
+       # -K option is required to activate LVs that have the activation skip
+       # flag set. When this setting is enabled, the activation skip flag is
+       # set on new thin snapshot LVs.
+       # This configuration option has an automatic default value.
+       # auto_set_activation_skip = 1
+
+       # Configuration option activation/activation_mode.
+       # How LVs with missing devices are activated.
+       # The --activationmode option overrides this setting.
+       #
+       # Accepted values:
+       #   complete
+       #     Only allow activation of an LV if all of the Physical Volumes it
+       #     uses are present. Other PVs in the Volume Group may be missing.
+       #   degraded
+       #     Like complete, but additionally RAID LVs of segment type raid1,
+       #     raid4, raid5, radid6 and raid10 will be activated if there is no
+       #     data loss, i.e. they have sufficient redundancy to present the
+       #     entire addressable range of the Logical Volume.
+       #   partial
+       #     Allows the activation of any LV even if a missing or failed PV
+       #     could cause data loss with a portion of the LV inaccessible.
+       #     This setting should not normally be used, but may sometimes
+       #     assist with data recovery.
+       #
+       # This configuration option has an automatic default value.
+       # activation_mode = "degraded"
+
+       # Configuration option activation/lock_start_list.
+       # Locking is started only for VGs selected by this list.
+       # The rules are the same as those for volume_list.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option activation/auto_lock_start_list.
+       # Locking is auto-started only for VGs selected by this list.
+       # The rules are the same as those for auto_activation_volume_list.
+       # This configuration option does not have a default value defined.
+}
+
+# Configuration section metadata.
+# This configuration section has an automatic default value.
+# metadata {
+
+       # Configuration option metadata/check_pv_device_sizes.
+       # Check device sizes are not smaller than corresponding PV sizes.
+       # If device size is less than corresponding PV size found in metadata,
+       # there is always a risk of data loss. If this option is set, then LVM
+       # issues a warning message each time it finds that the device size is
+       # less than corresponding PV size. You should not disable this unless
+       # you are absolutely sure about what you are doing!
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # check_pv_device_sizes = 1
+
+       # Configuration option metadata/record_lvs_history.
+       # When enabled, LVM keeps history records about removed LVs in
+       # metadata. The information that is recorded in metadata for
+       # historical LVs is reduced when compared to original
+       # information kept in metadata for live LVs. Currently, this
+       # feature is supported for thin and thin snapshot LVs only.
+       # This configuration option has an automatic default value.
+       # record_lvs_history = 0
+
+       # Configuration option metadata/lvs_history_retention_time.
+       # Retention time in seconds after which a record about individual
+       # historical logical volume is automatically destroyed.
+       # A value of 0 disables this feature.
+       # This configuration option has an automatic default value.
+       # lvs_history_retention_time = 0
+
+       # Configuration option metadata/pvmetadatacopies.
+       # Number of copies of metadata to store on each PV.
+       # The --pvmetadatacopies option overrides this setting.
+       #
+       # Accepted values:
+       #   2
+       #     Two copies of the VG metadata are stored on the PV, one at the
+       #     front of the PV, and one at the end.
+       #   1
+       #     One copy of VG metadata is stored at the front of the PV.
+       #   0
+       #     No copies of VG metadata are stored on the PV. This may be
+       #     useful for VGs containing large numbers of PVs.
+       #
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # pvmetadatacopies = 1
+
+       # Configuration option metadata/vgmetadatacopies.
+       # Number of copies of metadata to maintain for each VG.
+       # The --vgmetadatacopies option overrides this setting.
+       # If set to a non-zero value, LVM automatically chooses which of the
+       # available metadata areas to use to achieve the requested number of
+       # copies of the VG metadata. If you set a value larger than the the
+       # total number of metadata areas available, then metadata is stored in
+       # them all. The value 0 (unmanaged) disables this automatic management
+       # and allows you to control which metadata areas are used at the
+       # individual PV level using pvchange --metadataignore y|n.
+       # This configuration option has an automatic default value.
+       # vgmetadatacopies = 0
+
+       # Configuration option metadata/pvmetadatasize.
+       # The default size of the metadata area in units of 512 byte sectors.
+       # The metadata area begins at an offset of the page size from the start
+       # of the device. The first PE is by default at 1 MiB from the start of
+       # the device. The space between these is the default metadata area size.
+       # The actual size of the metadata area may be larger than what is set
+       # here due to default_data_alignment making the first PE a MiB multiple.
+       # The metadata area begins with a 512 byte header and is followed by a
+       # circular buffer used for VG metadata text. The maximum size of the VG
+       # metadata is about half the size of the metadata buffer. VGs with large
+       # numbers of PVs or LVs, or VGs containing complex LV structures, may need
+       # additional space for VG metadata. The --metadatasize option overrides
+       # this setting.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option metadata/pvmetadataignore.
+       # Ignore metadata areas on a new PV.
+       # The --metadataignore option overrides this setting.
+       # If metadata areas on a PV are ignored, LVM will not store metadata
+       # in them.
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # pvmetadataignore = 0
+
+       # Configuration option metadata/stripesize.
+       # This configuration option is advanced.
+       # This configuration option has an automatic default value.
+       # stripesize = 64
+# }
+
+# Configuration section report.
+# LVM report command output formatting.
+# This configuration section has an automatic default value.
+# report {
+
+       # Configuration option report/output_format.
+       # Format of LVM command's report output.
+       # If there is more than one report per command, then the format
+       # is applied for all reports. You can also change output format
+       # directly on command line using --reportformat option which
+       # has precedence over log/output_format setting.
+       # Accepted values:
+       #   basic
+       #     Original format with columns and rows. If there is more than
+       #     one report per command, each report is prefixed with report's
+       #     name for identification.
+       #   json
+       #     JSON format.
+       # This configuration option has an automatic default value.
+       # output_format = "basic"
+
+       # Configuration option report/compact_output.
+       # Do not print empty values for all report fields.
+       # If enabled, all fields that don't have a value set for any of the
+       # rows reported are skipped and not printed. Compact output is
+       # applicable only if report/buffered is enabled. If you need to
+       # compact only specified fields, use compact_output=0 and define
+       # report/compact_output_cols configuration setting instead.
+       # This configuration option has an automatic default value.
+       # compact_output = 0
+
+       # Configuration option report/compact_output_cols.
+       # Do not print empty values for specified report fields.
+       # If defined, specified fields that don't have a value set for any
+       # of the rows reported are skipped and not printed. Compact output
+       # is applicable only if report/buffered is enabled. If you need to
+       # compact all fields, use compact_output=1 instead in which case
+       # the compact_output_cols setting is then ignored.
+       # This configuration option has an automatic default value.
+       # compact_output_cols = ""
+
+       # Configuration option report/aligned.
+       # Align columns in report output.
+       # This configuration option has an automatic default value.
+       # aligned = 1
+
+       # Configuration option report/buffered.
+       # Buffer report output.
+       # When buffered reporting is used, the report's content is appended
+       # incrementally to include each object being reported until the report
+       # is flushed to output which normally happens at the end of command
+       # execution. Otherwise, if buffering is not used, each object is
+       # reported as soon as its processing is finished.
+       # This configuration option has an automatic default value.
+       # buffered = 1
+
+       # Configuration option report/headings.
+       # Show headings for columns on report.
+       # This configuration option has an automatic default value.
+       # headings = 1
+
+       # Configuration option report/separator.
+       # A separator to use on report after each field.
+       # This configuration option has an automatic default value.
+       # separator = " "
+
+       # Configuration option report/list_item_separator.
+       # A separator to use for list items when reported.
+       # This configuration option has an automatic default value.
+       # list_item_separator = ","
+
+       # Configuration option report/prefixes.
+       # Use a field name prefix for each field reported.
+       # This configuration option has an automatic default value.
+       # prefixes = 0
+
+       # Configuration option report/quoted.
+       # Quote field values when using field name prefixes.
+       # This configuration option has an automatic default value.
+       # quoted = 1
+
+       # Configuration option report/columns_as_rows.
+       # Output each column as a row.
+       # If set, this also implies report/prefixes=1.
+       # This configuration option has an automatic default value.
+       # columns_as_rows = 0
+
+       # Configuration option report/binary_values_as_numeric.
+       # Use binary values 0 or 1 instead of descriptive literal values.
+       # For columns that have exactly two valid values to report
+       # (not counting the 'unknown' value which denotes that the
+       # value could not be determined).
+       # This configuration option has an automatic default value.
+       # binary_values_as_numeric = 0
+
+       # Configuration option report/time_format.
+       # Set time format for fields reporting time values.
+       # Format specification is a string which may contain special character
+       # sequences and ordinary character sequences. Ordinary character
+       # sequences are copied verbatim. Each special character sequence is
+       # introduced by the '%' character and such sequence is then
+       # substituted with a value as described below.
+       #
+       # Accepted values:
+       #   %a
+       #     The abbreviated name of the day of the week according to the
+       #     current locale.
+       #   %A
+       #     The full name of the day of the week according to the current
+       #     locale.
+       #   %b
+       #     The abbreviated month name according to the current locale.
+       #   %B
+       #     The full month name according to the current locale.
+       #   %c
+       #     The preferred date and time representation for the current
+       #     locale (alt E)
+       #   %C
+       #     The century number (year/100) as a 2-digit integer. (alt E)
+       #   %d
+       #     The day of the month as a decimal number (range 01 to 31).
+       #     (alt O)
+       #   %D
+       #     Equivalent to %m/%d/%y. (For Americans only. Americans should
+       #     note that in other countries%d/%m/%y is rather common. This
+       #     means that in international context this format is ambiguous and
+       #     should not be used.
+       #   %e
+       #     Like %d, the day of the month as a decimal number, but a leading
+       #     zero is replaced by a space. (alt O)
+       #   %E
+       #     Modifier: use alternative local-dependent representation if
+       #     available.
+       #   %F
+       #     Equivalent to %Y-%m-%d (the ISO 8601 date format).
+       #   %G
+       #     The ISO 8601 week-based year with century as adecimal number.
+       #     The 4-digit year corresponding to the ISO week number (see %V).
+       #     This has the same format and value as %Y, except that if the
+       #     ISO week number belongs to the previous or next year, that year
+       #     is used instead.
+       #   %g
+       #     Like %G, but without century, that is, with a 2-digit year
+       #     (00-99).
+       #   %h
+       #     Equivalent to %b.
+       #   %H
+       #     The hour as a decimal number using a 24-hour clock
+       #     (range 00 to 23). (alt O)
+       #   %I
+       #     The hour as a decimal number using a 12-hour clock
+       #     (range 01 to 12). (alt O)
+       #   %j
+       #     The day of the year as a decimal number (range 001 to 366).
+       #   %k
+       #     The hour (24-hour clock) as a decimal number (range 0 to 23);
+       #     single digits are preceded by a blank. (See also %H.)
+       #   %l
+       #     The hour (12-hour clock) as a decimal number (range 1 to 12);
+       #     single digits are preceded by a blank. (See also %I.)
+       #   %m
+       #     The month as a decimal number (range 01 to 12). (alt O)
+       #   %M
+       #     The minute as a decimal number (range 00 to 59). (alt O)
+       #   %O
+       #     Modifier: use alternative numeric symbols.
+       #   %p
+       #     Either "AM" or "PM" according to the given time value,
+       #     or the corresponding strings for the current locale. Noon is
+       #     treated as "PM" and midnight as "AM".
+       #   %P
+       #     Like %p but in lowercase: "am" or "pm" or a corresponding
+       #     string for the current locale.
+       #   %r
+       #     The time in a.m. or p.m. notation. In the POSIX locale this is
+       #     equivalent to %I:%M:%S %p.
+       #   %R
+       #     The time in 24-hour notation (%H:%M). For a version including
+       #     the seconds, see %T below.
+       #   %s
+       #     The number of seconds since the Epoch,
+       #     1970-01-01 00:00:00 +0000 (UTC)
+       #   %S
+       #     The second as a decimal number (range 00 to 60). (The range is
+       #     up to 60 to allow for occasional leap seconds.) (alt O)
+       #   %t
+       #     A tab character.
+       #   %T
+       #     The time in 24-hour notation (%H:%M:%S).
+       #   %u
+       #     The day of the week as a decimal, range 1 to 7, Monday being 1.
+       #     See also %w. (alt O)
+       #   %U
+       #     The week number of the current year as a decimal number,
+       #     range 00 to 53, starting with the first Sunday as the first
+       #     day of week 01. See also %V and %W. (alt O)
+       #   %V
+       #     The ISO 8601 week number of the current year as a decimal number,
+       #     range 01 to 53, where week 1 is the first week that has at least
+       #     4 days in the new year. See also %U and %W. (alt O)
+       #   %w
+       #     The day of the week as a decimal, range 0 to 6, Sunday being 0.
+       #     See also %u. (alt O)
+       #   %W
+       #     The week number of the current year as a decimal number,
+       #     range 00 to 53, starting with the first Monday as the first day
+       #     of week 01. (alt O)
+       #   %x
+       #     The preferred date representation for the current locale without
+       #     the time. (alt E)
+       #   %X
+       #     The preferred time representation for the current locale without
+       #     the date. (alt E)
+       #   %y
+       #     The year as a decimal number without a century (range 00 to 99).
+       #     (alt E, alt O)
+       #   %Y
+       #     The year as a decimal number including the century. (alt E)
+       #   %z
+       #     The +hhmm or -hhmm numeric timezone (that is, the hour and minute
+       #     offset from UTC).
+       #   %Z
+       #     The timezone name or abbreviation.
+       #   %%
+       #     A literal '%' character.
+       #
+       # This configuration option has an automatic default value.
+       # time_format = "%Y-%m-%d %T %z"
+
+       # Configuration option report/devtypes_sort.
+       # List of columns to sort by when reporting 'lvm devtypes' command.
+       # See 'lvm devtypes -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # devtypes_sort = "devtype_name"
+
+       # Configuration option report/devtypes_cols.
+       # List of columns to report for 'lvm devtypes' command.
+       # See 'lvm devtypes -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # devtypes_cols = "devtype_name,devtype_max_partitions,devtype_description"
+
+       # Configuration option report/devtypes_cols_verbose.
+       # List of columns to report for 'lvm devtypes' command in verbose mode.
+       # See 'lvm devtypes -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # devtypes_cols_verbose = "devtype_name,devtype_max_partitions,devtype_description"
+
+       # Configuration option report/lvs_sort.
+       # List of columns to sort by when reporting 'lvs' command.
+       # See 'lvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # lvs_sort = "vg_name,lv_name"
+
+       # Configuration option report/lvs_cols.
+       # List of columns to report for 'lvs' command.
+       # See 'lvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # lvs_cols = "lv_name,vg_name,lv_attr,lv_size,pool_lv,origin,data_percent,metadata_percent,move_pv,mirror_log,copy_percent,convert_lv"
+
+       # Configuration option report/lvs_cols_verbose.
+       # List of columns to report for 'lvs' command in verbose mode.
+       # See 'lvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # lvs_cols_verbose = "lv_name,vg_name,seg_count,lv_attr,lv_size,lv_major,lv_minor,lv_kernel_major,lv_kernel_minor,pool_lv,origin,data_percent,metadata_percent,move_pv,copy_percent,mirror_log,convert_lv,lv_uuid,lv_profile"
+
+       # Configuration option report/vgs_sort.
+       # List of columns to sort by when reporting 'vgs' command.
+       # See 'vgs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # vgs_sort = "vg_name"
+
+       # Configuration option report/vgs_cols.
+       # List of columns to report for 'vgs' command.
+       # See 'vgs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # vgs_cols = "vg_name,pv_count,lv_count,snap_count,vg_attr,vg_size,vg_free"
+
+       # Configuration option report/vgs_cols_verbose.
+       # List of columns to report for 'vgs' command in verbose mode.
+       # See 'vgs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # vgs_cols_verbose = "vg_name,vg_attr,vg_extent_size,pv_count,lv_count,snap_count,vg_size,vg_free,vg_uuid,vg_profile"
+
+       # Configuration option report/pvs_sort.
+       # List of columns to sort by when reporting 'pvs' command.
+       # See 'pvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvs_sort = "pv_name"
+
+       # Configuration option report/pvs_cols.
+       # List of columns to report for 'pvs' command.
+       # See 'pvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvs_cols = "pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free"
+
+       # Configuration option report/pvs_cols_verbose.
+       # List of columns to report for 'pvs' command in verbose mode.
+       # See 'pvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvs_cols_verbose = "pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,dev_size,pv_uuid"
+
+       # Configuration option report/segs_sort.
+       # List of columns to sort by when reporting 'lvs --segments' command.
+       # See 'lvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # segs_sort = "vg_name,lv_name,seg_start"
+
+       # Configuration option report/segs_cols.
+       # List of columns to report for 'lvs --segments' command.
+       # See 'lvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # segs_cols = "lv_name,vg_name,lv_attr,stripes,segtype,seg_size"
+
+       # Configuration option report/segs_cols_verbose.
+       # List of columns to report for 'lvs --segments' command in verbose mode.
+       # See 'lvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # segs_cols_verbose = "lv_name,vg_name,lv_attr,seg_start,seg_size,stripes,segtype,stripesize,chunksize"
+
+       # Configuration option report/pvsegs_sort.
+       # List of columns to sort by when reporting 'pvs --segments' command.
+       # See 'pvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvsegs_sort = "pv_name,pvseg_start"
+
+       # Configuration option report/pvsegs_cols.
+       # List of columns to sort by when reporting 'pvs --segments' command.
+       # See 'pvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvsegs_cols = "pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,pvseg_start,pvseg_size"
+
+       # Configuration option report/pvsegs_cols_verbose.
+       # List of columns to sort by when reporting 'pvs --segments' command in verbose mode.
+       # See 'pvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvsegs_cols_verbose = "pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,pvseg_start,pvseg_size,lv_name,seg_start_pe,segtype,seg_pe_ranges"
+
+       # Configuration option report/vgs_cols_full.
+       # List of columns to report for lvm fullreport's 'vgs' subreport.
+       # See 'vgs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # vgs_cols_full = "vg_all"
+
+       # Configuration option report/pvs_cols_full.
+       # List of columns to report for lvm fullreport's 'vgs' subreport.
+       # See 'pvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvs_cols_full = "pv_all"
+
+       # Configuration option report/lvs_cols_full.
+       # List of columns to report for lvm fullreport's 'lvs' subreport.
+       # See 'lvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # lvs_cols_full = "lv_all"
+
+       # Configuration option report/pvsegs_cols_full.
+       # List of columns to report for lvm fullreport's 'pvseg' subreport.
+       # See 'pvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvsegs_cols_full = "pvseg_all,pv_uuid,lv_uuid"
+
+       # Configuration option report/segs_cols_full.
+       # List of columns to report for lvm fullreport's 'seg' subreport.
+       # See 'lvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # segs_cols_full = "seg_all,lv_uuid"
+
+       # Configuration option report/vgs_sort_full.
+       # List of columns to sort by when reporting lvm fullreport's 'vgs' subreport.
+       # See 'vgs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # vgs_sort_full = "vg_name"
+
+       # Configuration option report/pvs_sort_full.
+       # List of columns to sort by when reporting lvm fullreport's 'vgs' subreport.
+       # See 'pvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvs_sort_full = "pv_name"
+
+       # Configuration option report/lvs_sort_full.
+       # List of columns to sort by when reporting lvm fullreport's 'lvs' subreport.
+       # See 'lvs -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # lvs_sort_full = "vg_name,lv_name"
+
+       # Configuration option report/pvsegs_sort_full.
+       # List of columns to sort by when reporting for lvm fullreport's 'pvseg' subreport.
+       # See 'pvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # pvsegs_sort_full = "pv_uuid,pvseg_start"
+
+       # Configuration option report/segs_sort_full.
+       # List of columns to sort by when reporting lvm fullreport's 'seg' subreport.
+       # See 'lvs --segments -o help' for the list of possible fields.
+       # This configuration option has an automatic default value.
+       # segs_sort_full = "lv_uuid,seg_start"
+
+       # Configuration option report/mark_hidden_devices.
+       # Use brackets [] to mark hidden devices.
+       # This configuration option has an automatic default value.
+       # mark_hidden_devices = 1
+
+       # Configuration option report/two_word_unknown_device.
+       # Use the two words 'unknown device' in place of '[unknown]'.
+       # This is displayed when the device for a PV is not known.
+       # This configuration option has an automatic default value.
+       # two_word_unknown_device = 0
+# }
+
+# Configuration section dmeventd.
+# Settings for the LVM event daemon.
+dmeventd {
+
+       # Configuration option dmeventd/mirror_library.
+       # The library dmeventd uses when monitoring a mirror device.
+       # libdevmapper-event-lvm2mirror.so attempts to recover from
+       # failures. It removes failed devices from a volume group and
+       # reconfigures a mirror as necessary. If no mirror library is
+       # provided, mirrors are not monitored through dmeventd.
+       # This configuration option has an automatic default value.
+       # mirror_library = "libdevmapper-event-lvm2mirror.so"
+
+       # Configuration option dmeventd/raid_library.
+       # This configuration option has an automatic default value.
+       # raid_library = "libdevmapper-event-lvm2raid.so"
+
+       # Configuration option dmeventd/snapshot_library.
+       # The library dmeventd uses when monitoring a snapshot device.
+       # libdevmapper-event-lvm2snapshot.so monitors the filling of snapshots
+       # and emits a warning through syslog when the usage exceeds 80%. The
+       # warning is repeated when 85%, 90% and 95% of the snapshot is filled.
+       # This configuration option has an automatic default value.
+       # snapshot_library = "libdevmapper-event-lvm2snapshot.so"
+
+       # Configuration option dmeventd/thin_library.
+       # The library dmeventd uses when monitoring a thin device.
+       # libdevmapper-event-lvm2thin.so monitors the filling of a pool
+       # and emits a warning through syslog when the usage exceeds 80%. The
+       # warning is repeated when 85%, 90% and 95% of the pool is filled.
+       # This configuration option has an automatic default value.
+       # thin_library = "libdevmapper-event-lvm2thin.so"
+
+       # Configuration option dmeventd/thin_command.
+       # The plugin runs command with each 5% increment when thin-pool data volume
+       # or metadata volume gets above 50%.
+       # Command which starts with 'lvm ' prefix is internal lvm command.
+       # You can write your own handler to customise behaviour in more details.
+       # User handler is specified with the full path starting with '/'.
+       # This configuration option has an automatic default value.
+       # thin_command = "lvm lvextend --use-policies"
+
+       # Configuration option dmeventd/vdo_library.
+       # The library dmeventd uses when monitoring a VDO pool device.
+       # libdevmapper-event-lvm2vdo.so monitors the filling of a pool
+       # and emits a warning through syslog when the usage exceeds 80%. The
+       # warning is repeated when 85%, 90% and 95% of the pool is filled.
+       # This configuration option has an automatic default value.
+       # vdo_library = "libdevmapper-event-lvm2vdo.so"
+
+       # Configuration option dmeventd/vdo_command.
+       # The plugin runs command with each 5% increment when VDO pool volume
+       # gets above 50%.
+       # Command which starts with 'lvm ' prefix is internal lvm command.
+       # You can write your own handler to customise behaviour in more details.
+       # User handler is specified with the full path starting with '/'.
+       # This configuration option has an automatic default value.
+       # vdo_command = "lvm lvextend --use-policies"
+
+       # Configuration option dmeventd/executable.
+       # The full path to the dmeventd binary.
+       # This configuration option has an automatic default value.
+       # executable = "/sbin/dmeventd"
+}
+
+# Configuration section tags.
+# Host tag settings.
+# This configuration section has an automatic default value.
+# tags {
+
+       # Configuration option tags/hosttags.
+       # Create a host tag using the machine name.
+       # The machine name is nodename returned by uname(2).
+       # This configuration option has an automatic default value.
+       # hosttags = 0
+
+       # Configuration section tags/<tag>.
+       # Replace this subsection name with a custom tag name.
+       # Multiple subsections like this can be created. The '@' prefix for
+       # tags is optional. This subsection can contain host_list, which is a
+       # list of machine names. If the name of the local machine is found in
+       # host_list, then the name of this subsection is used as a tag and is
+       # applied to the local machine as a 'host tag'. If this subsection is
+       # empty (has no host_list), then the subsection name is always applied
+       # as a 'host tag'.
+       #
+       # Example
+       # The host tag foo is given to all hosts, and the host tag
+       # bar is given to the hosts named machine1 and machine2.
+       # tags { foo { } bar { host_list = [ "machine1", "machine2" ] } }
+       #
+       # This configuration section has variable name.
+       # This configuration section has an automatic default value.
+       # tag {
+
+               # Configuration option tags/<tag>/host_list.
+               # A list of machine names.
+               # These machine names are compared to the nodename returned
+               # by uname(2). If the local machine name matches an entry in
+               # this list, the name of the subsection is applied to the
+               # machine as a 'host tag'.
+               # This configuration option does not have a default value defined.
+       # }
+# }
diff --git a/lvm/lvmlocal.conf b/lvm/lvmlocal.conf
new file mode 100644 (file)
index 0000000..bb5d86b
--- /dev/null
@@ -0,0 +1,57 @@
+# This is a local configuration file template for the LVM2 system
+# which should be installed as /etc/lvm/lvmlocal.conf .
+#
+# Refer to 'man lvm.conf' for information about the file layout.
+#
+# To put this file in a different directory and override
+# /etc/lvm set the environment variable LVM_SYSTEM_DIR before
+# running the tools.
+#
+# The lvmlocal.conf file is normally expected to contain only the
+# "local" section which contains settings that should not be shared or
+# repeated among different hosts.  (But if other sections are present,
+# they *will* get processed.  Settings in this file override equivalent
+# ones in lvm.conf and are in turn overridden by ones in any enabled
+# lvm_<tag>.conf files.)
+#
+# Please take care that each setting only appears once if uncommenting
+# example settings in this file and never copy this file between hosts.
+
+
+# Configuration section local.
+# LVM settings that are specific to the local host.
+local {
+
+       # Configuration option local/system_id.
+       # Defines the local system ID for lvmlocal mode.
+       # This is used when global/system_id_source is set to 'lvmlocal' in the
+       # main configuration file, e.g. lvm.conf. When used, it must be set to
+       # a unique value among all hosts sharing access to the storage,
+       # e.g. a host name.
+       #
+       # Example
+       # Set no system ID:
+       # system_id = ""
+       # Set the system_id to a specific name:
+       # system_id = "host1"
+       #
+       # This configuration option has an automatic default value.
+       # system_id = ""
+
+       # Configuration option local/extra_system_ids.
+       # A list of extra VG system IDs the local host can access.
+       # VGs with the system IDs listed here (in addition to the host's own
+       # system ID) can be fully accessed by the local host. (These are
+       # system IDs that the host sees in VGs, not system IDs that identify
+       # the local host, which is determined by system_id_source.)
+       # Use this only after consulting 'man lvmsystemid' to be certain of
+       # correct usage and possible dangers.
+       # This configuration option does not have a default value defined.
+
+       # Configuration option local/host_id.
+       # The lvmlockd sanlock host_id.
+       # This must be unique among all hosts, and must be between 1 and 2000.
+       # Applicable only if LVM is compiled with lockd support
+       # This configuration option has an automatic default value.
+       # host_id = 0
+}
diff --git a/lvm/profile/cache-mq.profile b/lvm/profile/cache-mq.profile
new file mode 100644 (file)
index 0000000..3c90331
--- /dev/null
@@ -0,0 +1,20 @@
+# Demo configuration 'mq' cache policy
+#
+# Note: This policy has been deprecated in favor of the smq policy
+# keyword "default" means, setting is left with kernel defaults.
+#
+
+allocation {
+       cache_pool_chunk_size = 64
+       cache_mode = "writethrough"
+       cache_policy = "mq"
+       cache_settings {
+               mq {
+                       sequential_threshold = "default"        #  #nr_sequential_ios
+                       random_threshold = "default"            #  #nr_random_ios
+                       read_promote_adjustment = "default"
+                       write_promote_adjustment = "default"
+                       discard_promote_adjustment = "default"
+               }
+       }
+}
diff --git a/lvm/profile/cache-smq.profile b/lvm/profile/cache-smq.profile
new file mode 100644 (file)
index 0000000..c457481
--- /dev/null
@@ -0,0 +1,14 @@
+# Demo configuration 'smq' cache policy
+#
+# The stochastic multi-queue (smq) policy addresses some of the problems
+# with the multiqueue (mq) policy and uses less memory.
+#
+
+allocation {
+       cache_pool_chunk_size = 64
+       cache_mode = "writethrough"
+       cache_policy = "smq"
+       cache_settings {
+               # currently no settings for "smq" policy
+       }
+}
diff --git a/lvm/profile/command_profile_template.profile b/lvm/profile/command_profile_template.profile
new file mode 100644 (file)
index 0000000..bf56799
--- /dev/null
@@ -0,0 +1,74 @@
+# This is a command profile template for the LVM2 system.
+#
+# It contains all configuration settings that are customizable by command
+# profiles. To create a new command profile, select the settings you want
+# to customize and add them in a new file named <profile_name>.profile.
+# Then install the new profile in a directory as defined by config/profile_dir
+# setting found in /etc/lvm/lvm.conf file.
+#
+# Command profiles can be referenced by using the --commandprofile option then.
+#
+# Refer to 'man lvm.conf' for further information about profiles and
+# general configuration file layout.
+#
+allocation {
+       cache_mode="writethrough"
+       cache_settings {
+       }
+}
+log {
+       report_command_log=0
+       command_log_sort="log_seq_num"
+       command_log_cols="log_seq_num,log_type,log_context,log_object_type,log_object_name,log_object_id,log_object_group,log_object_group_id,log_message,log_errno,log_ret_code"
+       command_log_selection="!(log_type=status && message=success)"
+}
+global {
+       units="h"
+       si_unit_consistency=1
+       suffix=1
+       lvdisplay_shows_full_device_path=0
+}
+report {
+       output_format="basic"
+       compact_output=0
+       compact_output_cols=""
+       aligned=1
+       buffered=1
+       headings=1
+       separator=" "
+       list_item_separator=","
+       prefixes=0
+       quoted=1
+       columns_as_rows=0
+       binary_values_as_numeric=0
+       time_format="%Y-%m-%d %T %z"
+       devtypes_sort="devtype_name"
+       devtypes_cols="devtype_name,devtype_max_partitions,devtype_description"
+       devtypes_cols_verbose="devtype_name,devtype_max_partitions,devtype_description"
+       lvs_sort="vg_name,lv_name"
+       lvs_cols="lv_name,vg_name,lv_attr,lv_size,pool_lv,origin,data_percent,metadata_percent,move_pv,mirror_log,copy_percent,convert_lv"
+       lvs_cols_verbose="lv_name,vg_name,seg_count,lv_attr,lv_size,lv_major,lv_minor,lv_kernel_major,lv_kernel_minor,pool_lv,origin,data_percent,metadata_percent,move_pv,copy_percent,mirror_log,convert_lv,lv_uuid,lv_profile"
+       vgs_sort="vg_name"
+       vgs_cols="vg_name,pv_count,lv_count,snap_count,vg_attr,vg_size,vg_free"
+       vgs_cols_verbose="vg_name,vg_attr,vg_extent_size,pv_count,lv_count,snap_count,vg_size,vg_free,vg_uuid,vg_profile"
+       pvs_sort="pv_name"
+       pvs_cols="pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free"
+       pvs_cols_verbose="pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,dev_size,pv_uuid"
+       segs_sort="vg_name,lv_name,seg_start"
+       segs_cols="lv_name,vg_name,lv_attr,stripes,segtype,seg_size"
+       segs_cols_verbose="lv_name,vg_name,lv_attr,seg_start,seg_size,stripes,segtype,stripesize,chunksize"
+       pvsegs_sort="pv_name,pvseg_start"
+       pvsegs_cols="pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,pvseg_start,pvseg_size"
+       pvsegs_cols_verbose="pv_name,vg_name,pv_fmt,pv_attr,pv_size,pv_free,pvseg_start,pvseg_size,lv_name,seg_start_pe,segtype,seg_pe_ranges"
+       vgs_cols_full="vg_all"
+       pvs_cols_full="pv_all"
+       lvs_cols_full="lv_all"
+       pvsegs_cols_full="pvseg_all,pv_uuid,lv_uuid"
+       segs_cols_full="seg_all,lv_uuid"
+       vgs_sort_full="vg_name"
+       pvs_sort_full="pv_name"
+       lvs_sort_full="vg_name,lv_name"
+       pvsegs_sort_full="pv_uuid,pvseg_start"
+       segs_sort_full="lv_uuid,seg_start"
+       mark_hidden_devices=1
+}
diff --git a/lvm/profile/lvmdbusd.profile b/lvm/profile/lvmdbusd.profile
new file mode 100644 (file)
index 0000000..2cdc6da
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# DO NOT EDIT THIS FILE!
+#
+# LVM configuration profile used by lvmdbusd daemon.
+#
+# This sets up LVM to produce output in the most suitable format for processing
+# by lvmdbusd daemon which utilizes LVM shell to execute LVM commands.
+#
+# Do not edit this file in any way. This profile is distributed together with
+# lvmdbusd and it contains configuration that is important for lvmdbusd to
+# cooperate and interface with LVM correctly.
+#
+
+global {
+       # use bytes for expected and deterministic output
+       units=b
+       # no need for suffix if we have units set
+       suffix=0
+}
+
+report {
+       compact_output=0
+       compact_output_cols=""
+       binary_values_as_numeric=0
+       # time in number of seconds since the Epoch
+       time_format="%s"
+       mark_hidden_devices=1
+       # lvmdbusd expects JSON output
+       output_format=json
+       # *_cols_full for lvm fullreport's fields which lvmdbusd relies on to update its state
+       vgs_cols_full="vg_name,vg_uuid,vg_fmt,vg_size,vg_free,vg_sysid,vg_extent_size,vg_extent_count,vg_free_count,vg_profile,max_lv,max_pv,pv_count,lv_count,snap_count,vg_seqno,vg_mda_count,vg_mda_free,vg_mda_size,vg_mda_used_count,vg_attr,vg_tags"
+       pvs_cols_full="pv_name,pv_uuid,pv_fmt,pv_size,pv_free,pv_used,dev_size,pv_mda_size,pv_mda_free,pv_ba_start,pv_ba_size,pe_start,pv_pe_count,pv_pe_alloc_count,pv_attr,pv_tags,vg_name,vg_uuid"
+       lvs_cols_full="lv_uuid,lv_name,lv_path,lv_size,vg_name,pool_lv_uuid,pool_lv,origin_uuid,origin,data_percent,lv_attr,lv_tags,vg_uuid,lv_active,data_lv,metadata_lv,lv_parent,lv_role,lv_layout"
+       pvsegs_cols_full="pvseg_start,pvseg_size,segtype,pv_uuid,lv_uuid,pv_name"
+       segs_cols_full="seg_pe_ranges,segtype,lv_uuid"
+       vgs_sort_full="vg_name"
+       pvs_sort_full="pv_name"
+       lvs_sort_full="vg_name,lv_name"
+       pvsegs_sort_full="pv_uuid,pvseg_start"
+       segs_sort_full="lv_uuid,seg_start"
+}
+
+log {
+       # lvmdbusd relies on command log report to inspect LVM command's execution status
+       report_command_log=1
+       # display only outermost LVM shell-related log that lvmdbusd inspects first after LVM command execution (it calls 'lastlog' for more detailed log afterwards if needed)
+       command_log_selection="log_context=shell"
+       command_log_cols="log_seq_num,log_type,log_context,log_object_type,log_object_name,log_object_id,log_object_group,log_object_group_id,log_message,log_errno,log_ret_code"
+       command_log_sort="log_seq_num"
+}
diff --git a/lvm/profile/metadata_profile_template.profile b/lvm/profile/metadata_profile_template.profile
new file mode 100644 (file)
index 0000000..5836a63
--- /dev/null
@@ -0,0 +1,24 @@
+# This is a metadata profile template for the LVM2 system.
+#
+# It contains all configuration settings that are customizable by metadata
+# profiles. To create a new metadata profile, select the settings you want
+# to customize and add them in a new file named <profile_name>.profile.
+# Then install the new profile in a directory as defined by config/profile_dir
+# setting found in /etc/lvm/lvm.conf file.
+#
+# Metadata profiles can be referenced by using the --metadataprofile LVM2
+# command line option.
+#
+# Refer to 'man lvm.conf' for further information about profiles and
+# general configuration file layout.
+#
+allocation {
+       thin_pool_zero=1
+       thin_pool_discards="passdown"
+       thin_pool_chunk_size_policy="generic"
+#      thin_pool_chunk_size=128
+}
+activation {
+       thin_pool_autoextend_threshold=100
+       thin_pool_autoextend_percent=20
+}
diff --git a/lvm/profile/thin-generic.profile b/lvm/profile/thin-generic.profile
new file mode 100644 (file)
index 0000000..229a7fc
--- /dev/null
@@ -0,0 +1,4 @@
+allocation {
+       thin_pool_chunk_size_policy = "generic"
+       thin_pool_zero = 1
+}
diff --git a/lvm/profile/thin-performance.profile b/lvm/profile/thin-performance.profile
new file mode 100644 (file)
index 0000000..2914de2
--- /dev/null
@@ -0,0 +1,4 @@
+allocation {
+       thin_pool_chunk_size_policy = "performance"
+       thin_pool_zero = 0
+}
diff --git a/lvm/profile/vdo-small.profile b/lvm/profile/vdo-small.profile
new file mode 100644 (file)
index 0000000..2044fc2
--- /dev/null
@@ -0,0 +1,24 @@
+# Demo configuration for 'VDO' using less memory.
+# ~lvmconfig --type full | grep vdo
+
+allocation {
+       vdo_use_compression=1
+       vdo_use_deduplication=1
+       vdo_use_metadata_hints=1
+       vdo_minimum_io_size=4096
+       vdo_block_map_cache_size_mb=128
+       vdo_block_map_period=16380
+       vdo_check_point_frequency=0
+       vdo_use_sparse_index=0
+       vdo_index_memory_size_mb=256
+       vdo_slab_size_mb=2048
+       vdo_ack_threads=1
+       vdo_bio_threads=1
+       vdo_bio_rotation=64
+       vdo_cpu_threads=2
+       vdo_hash_zone_threads=1
+       vdo_logical_threads=1
+       vdo_physical_threads=1
+       vdo_write_policy="auto"
+       vdo_max_discard=1
+}
diff --git a/machine-id b/machine-id
new file mode 100644 (file)
index 0000000..80aa57e
--- /dev/null
@@ -0,0 +1 @@
+12eade94e66c451a9c9955949507e1fd
diff --git a/magic b/magic
new file mode 100644 (file)
index 0000000..283a863
--- /dev/null
+++ b/magic
@@ -0,0 +1,3 @@
+# Magic local data for file(1) command.
+# Insert here your local magic data. Format is described in magic(5).
+
diff --git a/magic.mime b/magic.mime
new file mode 100644 (file)
index 0000000..283a863
--- /dev/null
@@ -0,0 +1,3 @@
+# Magic local data for file(1) command.
+# Insert here your local magic data. Format is described in magic(5).
+
diff --git a/mailcap b/mailcap
new file mode 100644 (file)
index 0000000..84007ed
--- /dev/null
+++ b/mailcap
@@ -0,0 +1,64 @@
+###############################################################################
+#
+#  MIME media types and programs that process those types
+#
+#  Much of this file is generated automatically by the program "update-mime".
+#  Please see the "update-mime" man page for more information.
+#
+#  Users can add their own rules if they wish by creating a ".mailcap"
+#  file in their home directory.  Entries included there will take
+#  precedence over those listed here.
+#
+###############################################################################
+
+
+###############################################################################
+#
+#  User section follows:  Any entries included in this section will take
+#  precedence over those created by "update-mime".  DO NOT CHANGE the
+#  "User Section Begins" and "User Section Ends" lines, or anything outside
+#  of this section!
+#
+
+# ----- User Section Begins ----- #
+# -----  User Section Ends  ----- #
+
+###############################################################################
+
+text/plain; less %s; needsterminal
+application/x-troff-man; /usr/bin/man -X100 -l %s; test=test -n "$DISPLAY" -a -e /usr/bin/gxditview; description=Man page
+text/troff; /usr/bin/man -X100 -l %s; test=test -n "$DISPLAY" -a -e /usr/bin/gxditview; description=Man page
+application/x-troff-man; /usr/bin/man -l %s; needsterminal; description=Man page
+text/troff; /usr/bin/man -l %s; needsterminal; description=Man page
+text/html; /usr/bin/sensible-browser %s; description=HTML Text; nametemplate=%s.html
+application/x-troff-man; /usr/bin/nroff -mandoc -Tutf8; copiousoutput; print=/usr/bin/nroff -mandoc -Tutf8 | print text/plain:-
+text/troff; /usr/bin/nroff -mandoc -Tutf8; copiousoutput; print=/usr/bin/nroff -mandoc -Tutf8 | print text/plain:-
+text/plain; more %s; needsterminal
+text/english; vim %s; needsterminal
+text/plain; vim %s; needsterminal
+text/x-makefile; vim %s; needsterminal
+text/x-c++hdr; vim %s; needsterminal
+text/x-c++src; vim %s; needsterminal
+text/x-chdr; vim %s; needsterminal
+text/x-csrc; vim %s; needsterminal
+text/x-java; vim %s; needsterminal
+text/x-moc; vim %s; needsterminal
+text/x-pascal; vim %s; needsterminal
+text/x-tcl; vim %s; needsterminal
+text/x-tex; vim %s; needsterminal
+application/x-shellscript; vim %s; needsterminal
+text/x-c; vim %s; needsterminal
+text/x-c++; vim %s; needsterminal
+text/plain; view %s; edit=vim %s; compose=vim %s; test=test -x /usr/bin/vim; needsterminal
+application/zip; unzip -l %s; nametemplate=%s.zip; copiousoutput
+text/plain; view %s; edit=vi %s; compose=vi %s; needsterminal
+application/x-troff-man; /usr/bin/man -Tascii -l %s | col -b; copiousoutput; description=Man page
+text/troff; /usr/bin/man -Tascii -l %s | col -b; copiousoutput; description=Man page
+text/*; less %s; needsterminal
+text/*; view %s; edit=vim %s; compose=vim %s; test=test -x /usr/bin/vim; needsterminal
+application/x-tar; /bin/tar tvf %s; print=/bin/tar tvf - | print text/plain:-; copiousoutput
+application/x-gtar; /bin/tar tvf %s; print=/bin/tar tvf - | print text/plain:-; copiousoutput
+application/x-ustar; /bin/tar tvf %s; print=/bin/tar tvf - | print text/plain:-; copiousoutput
+text/*; more %s; needsterminal
+text/*; view %s; edit=vi %s; compose=vi %s; needsterminal
+application/vnd.debian.binary-package; /usr/lib/mime/debian-view %s; needsterminal; description=Debian GNU/Linux Package; nametemplate=%s.deb
diff --git a/mailcap.order b/mailcap.order
new file mode 100644 (file)
index 0000000..7f38c23
--- /dev/null
@@ -0,0 +1,10 @@
+###############################################################################
+#
+#  Mailcap.order:  This file allows a system-wide override of MIME program
+#  preferences.  See the mailcap.order(5) man page for more information.
+#
+#  After modifying this file, be sure to run /usr/sbin/update-mime (as root)
+#  to propagate the changes into the /etc/mailcap file.
+#
+################################################################################
+
diff --git a/mailname b/mailname
new file mode 100644 (file)
index 0000000..8eb24b6
--- /dev/null
+++ b/mailname
@@ -0,0 +1 @@
+dev-mail-fbrehm.pixelpark.com
diff --git a/manpath.config b/manpath.config
new file mode 100644 (file)
index 0000000..091bb25
--- /dev/null
@@ -0,0 +1,132 @@
+# manpath.config
+#
+# This file is used by the man-db package to configure the man and cat paths.
+# It is also used to provide a manpath for those without one by examining
+# their PATH environment variable. For details see the manpath(5) man page.
+#
+# Lines beginning with `#' are comments and are ignored. Any combination of
+# tabs or spaces may be used as `whitespace' separators.
+#
+# There are three mappings allowed in this file:
+# --------------------------------------------------------
+# MANDATORY_MANPATH                    manpath_element
+# MANPATH_MAP          path_element    manpath_element
+# MANDB_MAP            global_manpath  [relative_catpath]
+#---------------------------------------------------------
+# every automatically generated MANPATH includes these fields
+#
+#MANDATORY_MANPATH                     /usr/src/pvm3/man
+#
+MANDATORY_MANPATH                      /usr/man
+MANDATORY_MANPATH                      /usr/share/man
+MANDATORY_MANPATH                      /usr/local/share/man
+#---------------------------------------------------------
+# set up PATH to MANPATH mapping
+# ie. what man tree holds man pages for what binary directory.
+#
+#              *PATH*        ->        *MANPATH*
+#
+MANPATH_MAP    /bin                    /usr/share/man
+MANPATH_MAP    /usr/bin                /usr/share/man
+MANPATH_MAP    /sbin                   /usr/share/man
+MANPATH_MAP    /usr/sbin               /usr/share/man
+MANPATH_MAP    /usr/local/bin          /usr/local/man
+MANPATH_MAP    /usr/local/bin          /usr/local/share/man
+MANPATH_MAP    /usr/local/sbin         /usr/local/man
+MANPATH_MAP    /usr/local/sbin         /usr/local/share/man
+MANPATH_MAP    /usr/X11R6/bin          /usr/X11R6/man
+MANPATH_MAP    /usr/bin/X11            /usr/X11R6/man
+MANPATH_MAP    /usr/games              /usr/share/man
+MANPATH_MAP    /opt/bin                /opt/man
+MANPATH_MAP    /opt/sbin               /opt/man
+#---------------------------------------------------------
+# For a manpath element to be treated as a system manpath (as most of those
+# above should normally be), it must be mentioned below. Each line may have
+# an optional extra string indicating the catpath associated with the
+# manpath. If no catpath string is used, the catpath will default to the
+# given manpath.
+#
+# You *must* provide all system manpaths, including manpaths for alternate
+# operating systems, locale specific manpaths, and combinations of both, if
+# they exist, otherwise the permissions of the user running man/mandb will
+# be used to manipulate the manual pages. Also, mandb will not initialise
+# the database cache for any manpaths not mentioned below unless explicitly
+# requested to do so.
+#
+# In a per-user configuration file, this directive only controls the
+# location of catpaths and the creation of database caches; it has no effect
+# on privileges.
+#
+# Any manpaths that are subdirectories of other manpaths must be mentioned
+# *before* the containing manpath. E.g. /usr/man/preformat must be listed
+# before /usr/man.
+#
+#              *MANPATH*     ->        *CATPATH*
+#
+MANDB_MAP      /usr/man                /var/cache/man/fsstnd
+MANDB_MAP      /usr/share/man          /var/cache/man
+MANDB_MAP      /usr/local/man          /var/cache/man/oldlocal
+MANDB_MAP      /usr/local/share/man    /var/cache/man/local
+MANDB_MAP      /usr/X11R6/man          /var/cache/man/X11R6
+MANDB_MAP      /opt/man                /var/cache/man/opt
+MANDB_MAP      /snap/man               /var/cache/man/snap
+#
+#---------------------------------------------------------
+# Program definitions.  These are commented out by default as the value
+# of the definition is already the default.  To change: uncomment a
+# definition and modify it.
+#
+#DEFINE        pager   pager
+#DEFINE        cat     cat
+#DEFINE        tr      tr '\255\267\264\327' '\055\157\047\170'
+#DEFINE                grep    grep
+#DEFINE        troff   groff -mandoc
+#DEFINE        nroff   nroff -mandoc
+#DEFINE        eqn     eqn
+#DEFINE        neqn    neqn
+#DEFINE        tbl     tbl
+#DEFINE        col     col
+#DEFINE        vgrind  vgrind
+#DEFINE        refer   refer
+#DEFINE        grap    grap
+#DEFINE        pic     pic -S
+#
+#DEFINE                compressor      gzip -c7
+#---------------------------------------------------------
+# Misc definitions: same as program definitions above.
+#
+#DEFINE                whatis_grep_flags               -i
+#DEFINE                apropos_grep_flags              -iEw
+#DEFINE                apropos_regex_grep_flags        -iE
+#---------------------------------------------------------
+# Section names. Manual sections will be searched in the order listed here;
+# the default is 1, n, l, 8, 3, 0, 2, 3type, 5, 4, 9, 6, 7. Multiple SECTION
+# directives may be given for clarity, and will be concatenated together in
+# the expected way.
+# If a particular extension is not in this list (say, 1mh), it will be
+# displayed with the rest of the section it belongs to. The effect of this
+# is that you only need to explicitly list extensions if you want to force a
+# particular order. Sections with extensions should usually be adjacent to
+# their main section (e.g. "1 1mh 8 ...").
+#
+SECTION                1 n l 8 3 0 2 3type 3posix 3pm 3perl 3am 5 4 9 6 7
+#
+#---------------------------------------------------------
+# Range of terminal widths permitted when displaying cat pages. If the
+# terminal falls outside this range, cat pages will not be created (if
+# missing) or displayed.
+#
+#MINCATWIDTH   80
+#MAXCATWIDTH   80
+#
+# If CATWIDTH is set to a non-zero number, cat pages will always be
+# formatted for a terminal of the given width, regardless of the width of
+# the terminal actually being used. This should generally be within the
+# range set by MINCATWIDTH and MAXCATWIDTH.
+#
+#CATWIDTH      0
+#
+#---------------------------------------------------------
+# Flags.
+# NOCACHE keeps man from creating cat pages.
+#NOCACHE
diff --git a/mime.types b/mime.types
new file mode 100644 (file)
index 0000000..af38230
--- /dev/null
@@ -0,0 +1,2286 @@
+###############################################################################
+#
+#  Media (MIME) types and the extensions that represent them.
+#
+#  The format of this file is a media type on the left and zero or more
+#  filename extensions on the right.  Programs using this file will map
+#  files ending with those extensions to the associated type.
+#
+#  This file is part of the "media-types" package.  Please report a bug using
+#  the "reportbug" command of the "reportbug" package if you would like new
+#  types or extensions to be added.
+#
+#  The reason that all types are managed by the media-types package instead
+#  allowing individual packages to install types in much the same way as they
+#  add entries in to the mailcap file is so these types can be referenced by
+#  other programs (such as a web server) even if the specific support package
+#  for that type is not installed.
+#
+#  Users can add their own types if they wish by creating a ".mime.types"
+#  file in their home directory.  Definitions included there will take
+#  precedence over those listed here.
+#
+###############################################################################
+
+application/1d-interleaved-parityfec
+application/3gpdash-qoe-report+xml
+application/3gpp-ims+xml
+application/3gppHal+json
+application/3gppHalForms+json
+application/A2L                                        a2l
+application/ace+cbor
+application/ace+json
+application/activemessage
+application/activity+json
+application/aif+cbor
+application/aif+json
+application/alto-cdni+json
+application/alto-cdnifilter+json
+application/alto-costmap+json
+application/alto-costmapfilter+json
+application/alto-directory+json
+application/alto-endpointcost+json
+application/alto-endpointcostparams+json
+application/alto-endpointprop+json
+application/alto-endpointpropparams+json
+application/alto-error+json
+application/alto-networkmap+json
+application/alto-networkmapfilter+json
+application/alto-propmap+json
+application/alto-propmapparams+json
+application/alto-updatestreamcontrol+json
+application/alto-updatestreamparams+json
+application/AML                                        aml
+application/andrew-inset                       ez
+application/annodex                            anx
+application/applefile
+application/at+jwt
+application/ATF                                        atf
+application/ATFX                               atfx
+application/atom+xml                           atom
+application/atomcat+xml                                atomcat
+application/atomdeleted+xml                    atomdeleted
+application/atomicmail
+application/atomserv+xml                       atomsrv
+application/atomsvc+xml                                atomsvc
+application/atsc-dwd+xml                       dwd
+application/atsc-dynamic-event-message
+application/atsc-held+xml                      held
+application/atsc-rdt+json
+application/atsc-rsat+xml                      rsat
+application/ATXML                              atxml
+application/auth-policy+xml                    apxml
+application/automationml-aml+xml
+application/automationml-amlx+zip              amlx
+application/bacnet-xdd+zip                     xdd
+application/batch-SMTP
+application/bbolin                             lin
+application/beep+xml
+application/calendar+json
+application/calendar+xml                       xcs
+application/call-completion
+application/CALS-1840
+application/captive+json
+application/cbor                               cbor
+application/cbor-seq
+application/cccex                              c3ex
+application/ccmp+xml                           ccmp
+application/ccxml+xml                          ccxml
+application/cda+xml
+application/CDFX+XML                           cdfx
+application/cdmi-capability                    cdmia
+application/cdmi-container                     cdmic
+application/cdmi-domain                                cdmid
+application/cdmi-object                                cdmio
+application/cdmi-queue                         cdmiq
+application/cdni
+application/CEA                                        cea
+application/cea-2018+xml
+application/cellml+xml                         cellml cml
+application/cfw
+application/city+json
+application/clr                                        1clr
+application/clue+xml
+application/clue_info+xml                      clue
+application/cms                                        cmsc
+application/cnrp+xml
+application/coap-group+json
+application/coap-payload
+application/commonground
+application/concise-problem-details+cbor
+application/conference-info+xml
+application/cose
+application/cose-key
+application/cose-key-set
+application/cose-x509
+application/cpl+xml                            cpl
+application/csrattrs                           csrattrs
+application/csta+xml
+application/CSTAdata+xml
+application/csvm+json
+application/cu-seeme                           cu
+application/cwl                                        cwl
+application/cwl+json                           cwl.json
+application/cwt
+application/cybercash
+application/dash+xml                           mpd
+application/dash-patch+xml
+application/dashdelta                          mpdd
+application/davmount+xml                       davmount
+application/dca-rft
+application/DCD                                        dcd
+application/dec-dx
+application/dialog-info+xml
+application/dicom                              dcm
+application/dicom+json
+application/dicom+xml
+application/DII                                        dii
+application/DIT                                        dit
+application/dns
+application/dns+json
+application/dns-message
+application/dots+cbor
+application/dskpp+xml                          xmls
+application/dsptype                            tsp
+application/dssc+der                           dssc
+application/dssc+xml                           xdssc
+application/dvcs                               dvc
+application/EDI-consent
+application/EDI-X12
+application/EDIFACT
+application/efi                                        efi
+application/elm+json
+application/elm+xml
+application/EmergencyCallData.cap+xml
+application/EmergencyCallData.Comment+xml
+application/EmergencyCallData.Control+xml
+application/EmergencyCallData.DeviceInfo+xml
+application/EmergencyCallData.eCall.MSD
+application/EmergencyCallData.LegacyESN+json
+application/EmergencyCallData.ProviderInfo+xml
+application/EmergencyCallData.ServiceInfo+xml
+application/EmergencyCallData.SubscriberInfo+xml
+application/EmergencyCallData.VEDS+xml
+application/emma+xml                           emma
+application/emotionml+xml                      emotionml
+application/encaprtp
+application/epp+xml
+application/epub+zip                           epub
+application/eshop
+application/example
+application/exi                                        exi
+application/expect-ct-report+json
+application/express                            exp
+application/fastinfoset                                finf
+application/fastsoap
+application/fdf                                        fdf
+application/fdt+xml                            fdt
+application/fhir+json
+application/fhir+xml
+application/fits
+application/flexfec
+application/font-tdpfr                         pfr
+application/framework-attributes+xml
+application/futuresplash                       spl
+application/geo+json                           geojson
+application/geo+json-seq
+application/geopackage+sqlite3                 gpkg
+application/geoxacml+xml
+application/gltf-buffer                                glbin glbuf
+application/gml+xml                            gml
+application/gzip                               gz
+application/H224
+application/held+xml
+application/hl7v2+xml
+application/hta                                        hta
+application/http
+application/hyperstudio                                stk
+application/ibe-key-request+xml
+application/ibe-pkg-reply+xml
+application/ibe-pp-data
+application/iges
+application/im-iscomposing+xml
+application/index
+application/index.cmd
+application/index.obj
+application/index.response
+application/index.vnd
+application/inkml+xml                          ink inkml
+application/IOTP
+application/ipfix                              ipfix
+application/ipp
+application/ISUP
+application/its+xml                            its
+application/java-archive                       jar
+application/java-serialized-object             ser
+application/java-vm                            class
+application/jf2feed+json
+application/jose
+application/jose+json
+application/jrd+json                           jrd
+application/jscalendar+json
+application/json                               json
+application/json-patch+json                    json-patch
+application/json-seq
+application/jwk+json
+application/jwk-set+json
+application/jwt
+application/kpml-request+xml
+application/kpml-response+xml
+application/ld+json                            jsonld
+application/lgr+xml                            lgr
+application/link-format                                wlnk
+application/linkset
+application/linkset+json
+application/load-control+xml
+application/logout+jwt
+application/lost+xml                           lostxml
+application/lostsync+xml                       lostsyncxml
+application/lpf+zip                            lpf
+application/LXF                                        lxf
+application/m3g                                        m3g
+application/mac-binhex40                       hqx
+application/mac-compactpro                     cpt
+application/macwriteii
+application/mads+xml                           mads
+application/manifest+json                      webmanifest
+application/marc                               mrc
+application/marcxml+xml                                mrcx
+application/mathematica                                ma mb
+application/mathml+xml                         mml
+application/mathml-content+xml
+application/mathml-presentation+xml
+application/mbms-associated-procedure-description+xml
+application/mbms-deregister+xml
+application/mbms-envelope+xml
+application/mbms-msk+xml
+application/mbms-msk-response+xml
+application/mbms-protection-description+xml
+application/mbms-reception-report+xml
+application/mbms-register+xml
+application/mbms-register-response+xml
+application/mbms-schedule+xml
+application/mbms-user-service-description+xml
+application/mbox                               mbox
+application/media-policy-dataset+xml
+application/mediaservercontrol+xml
+application/media_control+xml
+application/merge-patch+json
+application/metalink4+xml                      meta4
+application/mets+xml                           mets
+application/MF4                                        mf4
+application/mikey
+application/mipc
+application/missing-blocks+cbor-seq
+application/mmt-aei+xml                                maei
+application/mmt-usd+xml                                musd
+application/mods+xml                           mods
+application/moss-keys
+application/moss-signature
+application/mosskey-data
+application/mosskey-request
+application/mp21                               m21 mp21
+application/mp4
+application/mpeg4-generic
+application/mpeg4-iod
+application/mpeg4-iod-xmt
+application/mrb-consumer+xml
+application/mrb-publish+xml
+application/msaccess                           mdb
+application/msc-ivr+xml
+application/msc-mixer+xml
+application/msword                             doc
+application/mud+json
+application/multipart-core
+application/mxf                                        mxf
+application/n-quads                            nq
+application/n-triples                          nt
+application/nasdata
+application/news-checkgroups
+application/news-groupinfo
+application/news-transmission
+application/nlsml+xml
+application/node
+application/nss
+application/oauth-authz-req+jwt
+application/oblivious-dns-message
+application/ocsp-request                       orq
+application/ocsp-response                      ors
+application/octet-stream                       bin deploy msu msp
+application/ODA                                        oda
+application/odm+xml
+application/ODX                                        odx
+application/oebps-package+xml                  opf
+application/ogg                                        ogx
+application/onenote                            one onetoc2 onetmp onepkg
+application/opc-nodeset+xml
+application/oscore
+application/oxps                               oxps
+application/p21                                        p21 stpnc 210 ifc
+application/p21+zip
+application/p2p-overlay+xml                    relo
+application/parityfec
+application/passport
+application/patch-ops-error+xml
+application/pdf                                        pdf
+application/PDX                                        pdx
+application/pem-certificate-chain              pem
+application/pgp-encrypted                      pgp
+application/pgp-keys                           asc key
+application/pgp-signature                      sig
+application/pics-rules                         prf
+application/pidf+xml
+application/pidf-diff+xml
+application/pkcs10                             p10
+application/pkcs12                             p12 pfx
+application/pkcs7-mime                         p7m p7c p7z
+application/pkcs7-signature                    p7s
+application/pkcs8                              p8
+application/pkcs8-encrypted                    p8e
+application/pkix-attr-cert                     ac
+application/pkix-cert                          cer
+application/pkix-crl                           crl
+application/pkix-pkipath                       pkipath
+application/pkixcmp                            pki
+application/pls+xml
+application/poc-settings+xml
+application/postscript                         ps ai eps epsi epsf eps2 eps3
+application/ppsp-tracker+json
+application/problem+json
+application/problem+xml
+application/provenance+xml                     provx
+application/prs.alvestrand.titrax-sheet
+application/prs.cww                            cw cww
+application/prs.cyn
+application/prs.hpub+zip                       hpub
+application/prs.nprend                         rnd rct
+application/prs.plucker
+application/prs.rdf-xml-crypt                  rdf-crypt
+application/prs.xsf+xml                                xsf
+application/pskc+xml                           pskcxml
+application/pvd+json
+application/QSIG
+application/raptorfec
+application/rdap+json
+application/rdf+xml                            rdf
+application/reginfo+xml                                rif
+application/relax-ng-compact-syntax            rnc
+application/reputon+json
+application/resource-lists+xml                 rl
+application/resource-lists-diff+xml            rld
+application/rfc+xml                            rfcxml
+application/riscos
+application/rlmi+xml
+application/rls-services+xml                   rs
+application/route-apd+xml                      rapd
+application/route-s-tsid+xml                   sls
+application/route-usd+xml                      rusd
+application/rpki-checklist
+application/rpki-ghostbusters                  gbr
+application/rpki-manifest                      mft
+application/rpki-publication
+application/rpki-roa                           roa
+application/rpki-updown
+application/rtf                                        rtf
+application/rtploopback
+application/rtx
+application/samlassertion+xml
+application/samlmetadata+xml
+application/sarif+json                         sarif sarif.json
+application/sarif-external-properties+json     sarif-external-properties sarif-external-properties.json
+application/sbe
+application/sbml+xml
+application/scaip+xml
+application/scim+json                          scim
+application/scvp-cv-request                    scq
+application/scvp-cv-response                   scs
+application/scvp-vp-request                    spq
+application/scvp-vp-response                   spp
+application/sdp                                        sdp
+application/secevent+jwt
+application/senml+cbor                         senmlc
+application/senml+json                         senml
+application/senml+xml                          senmlx
+application/senml-etch+cbor                    senml-etchc
+application/senml-etch+json                    senml-etchj
+application/senml-exi                          senmle
+application/sensml+cbor                                sensmlc
+application/sensml+json                                sensml
+application/sensml+xml                         sensmlx
+application/sensml-exi                         sensmle
+application/sep+xml
+application/sep-exi
+application/session-info
+application/set-payment
+application/set-payment-initiation
+application/set-registration
+application/set-registration-initiation
+application/SGML
+application/sgml-open-catalog                  soc
+application/shf+xml                            shf
+application/sieve                              siv sieve
+application/simple-filter+xml                  cl
+application/simple-message-summary
+application/simpleSymbolContainer
+application/sipc
+application/slate
+application/smil+xml                           smil smi sml
+application/smpte336m
+application/soap+fastinfoset
+application/soap+xml
+application/sparql-query                       rq
+application/sparql-results+xml                 srx
+application/spdx+json                          spdx.json
+application/spirits-event+xml
+application/sql                                        sql
+application/srgs                               gram
+application/srgs+xml                           grxml
+application/sru+xml                            sru
+application/ssml+xml                           ssml
+application/stix+json                          stix
+application/swid+cbor                          coswid
+application/swid+xml                           swidtag
+application/tamp-apex-update                   tau
+application/tamp-apex-update-confirm           auc
+application/tamp-community-update              tcu
+application/tamp-community-update-confirm      cuc
+application/tamp-error                         ter
+application/tamp-sequence-adjust               tsa
+application/tamp-sequence-adjust-confirm       sac
+application/tamp-status-query
+application/tamp-status-response
+application/tamp-update                                tur
+application/tamp-update-confirm                        tuc
+application/taxii+json
+application/td+json                            jsontd
+application/tei+xml                            tei teiCorpus odd
+application/TETRA_ISI
+application/thraud+xml                         tfi
+application/timestamp-query                    tsq
+application/timestamp-reply                    tsr
+application/timestamped-data                   tsd
+application/tlsrpt+gzip
+application/tlsrpt+json
+application/tm+json                            tm.jsonld tm.json jsontm
+application/tnauthlist
+application/token-introspection+jwt
+application/trickle-ice-sdpfrag
+application/trig                               trig
+application/ttml+xml                           ttml
+application/tve-trigger
+application/tzif
+application/tzif-leap
+application/ulpfec
+application/urc-grpsheet+xml                   gsheet
+application/urc-ressheet+xml                   rsheet
+application/urc-targetdesc+xml                 td
+application/urc-uisocketdesc+xml               uis
+application/vcard+json
+application/vcard+xml
+application/vemmi
+application/vnd.1000minds.decision-model+xml   1km
+application/vnd.3gpp-prose+xml
+application/vnd.3gpp-prose-pc3a+xml
+application/vnd.3gpp-prose-pc3ach+xml
+application/vnd.3gpp-prose-pc3ch+xml
+application/vnd.3gpp-prose-pc8+xml
+application/vnd.3gpp-v2x-local-service-information
+application/vnd.3gpp.5gnas
+application/vnd.3gpp.access-transfer-events+xml
+application/vnd.3gpp.bsf+xml
+application/vnd.3gpp.GMOP+xml
+application/vnd.3gpp.gtpc
+application/vnd.3gpp.interworking-data
+application/vnd.3gpp.lpp
+application/vnd.3gpp.mc-signalling-ear
+application/vnd.3gpp.mcdata-affiliation-command+xml
+application/vnd.3gpp.mcdata-info+xml
+application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml
+application/vnd.3gpp.mcdata-payload
+application/vnd.3gpp.mcdata-regroup+xml
+application/vnd.3gpp.mcdata-service-config+xml
+application/vnd.3gpp.mcdata-signalling
+application/vnd.3gpp.mcdata-ue-config+xml
+application/vnd.3gpp.mcdata-user-profile+xml
+application/vnd.3gpp.mcptt-affiliation-command+xml
+application/vnd.3gpp.mcptt-floor-request+xml
+application/vnd.3gpp.mcptt-info+xml
+application/vnd.3gpp.mcptt-location-info+xml
+application/vnd.3gpp.mcptt-mbms-usage-info+xml
+application/vnd.3gpp.mcptt-service-config+xml
+application/vnd.3gpp.mcptt-signed+xml
+application/vnd.3gpp.mcptt-ue-config+xml
+application/vnd.3gpp.mcptt-ue-init-config+xml
+application/vnd.3gpp.mcptt-user-profile+xml
+application/vnd.3gpp.mcvideo-affiliation-command+xml
+application/vnd.3gpp.mcvideo-info+xml
+application/vnd.3gpp.mcvideo-location-info+xml
+application/vnd.3gpp.mcvideo-mbms-usage-info+xml
+application/vnd.3gpp.mcvideo-service-config+xml
+application/vnd.3gpp.mcvideo-transmission-request+xml
+application/vnd.3gpp.mcvideo-ue-config+xml
+application/vnd.3gpp.mcvideo-user-profile+xml
+application/vnd.3gpp.mid-call+xml
+application/vnd.3gpp.ngap
+application/vnd.3gpp.pfcp
+application/vnd.3gpp.pic-bw-large              plb
+application/vnd.3gpp.pic-bw-small              psb
+application/vnd.3gpp.pic-bw-var                        pvb
+application/vnd.3gpp.s1ap
+application/vnd.3gpp.sms
+application/vnd.3gpp.sms+xml
+application/vnd.3gpp.srvcc-ext+xml
+application/vnd.3gpp.SRVCC-info+xml
+application/vnd.3gpp.state-and-event-info+xml
+application/vnd.3gpp.ussd+xml
+application/vnd.3gpp2.bcmcsinfo+xml
+application/vnd.3gpp2.sms                      sms
+application/vnd.3gpp2.tcap                     tcap
+application/vnd.3lightssoftware.imagescal      imgcal
+application/vnd.3M.Post-it-Notes               pwn
+application/vnd.accpac.simply.aso              aso
+application/vnd.accpac.simply.imp              imp
+application/vnd.acucobol                       acu
+application/vnd.acucorp                                atc acutc
+application/vnd.adobe.flash.movie              swf
+application/vnd.adobe.formscentral.fcdt                fcdt
+application/vnd.adobe.fxp                      fxp fxpl
+application/vnd.adobe.partial-upload
+application/vnd.adobe.xdp+xml                  xdp
+application/vnd.aether.imp
+application/vnd.afpc.afplinedata
+application/vnd.afpc.afplinedata-pagedef
+application/vnd.afpc.cmoca-cmresource
+application/vnd.afpc.foca-charset
+application/vnd.afpc.foca-codedfont
+application/vnd.afpc.foca-codepage
+application/vnd.afpc.modca                     list3820 listafp afp pseg3820
+application/vnd.afpc.modca-formdef
+application/vnd.afpc.modca-mediummap
+application/vnd.afpc.modca-objectcontainer
+application/vnd.afpc.modca-overlay             ovl
+application/vnd.afpc.modca-pagesegment         psg
+application/vnd.age                            age
+application/vnd.ah-barcode
+application/vnd.ahead.space                    ahead
+application/vnd.airzip.filesecure.azf          azf
+application/vnd.airzip.filesecure.azs          azs
+application/vnd.amadeus+json
+application/vnd.amazon.mobi8-ebook             azw3
+application/vnd.americandynamics.acc           acc
+application/vnd.amiga.ami                      ami
+application/vnd.amundsen.maze+xml
+application/vnd.android.ota                    ota
+application/vnd.android.package-archive                                                apk
+application/vnd.anki                           apkg
+application/vnd.anser-web-certificate-issue-initiation cii
+application/vnd.anser-web-funds-transfer-initiation    fti
+application/vnd.antix.game-component
+application/vnd.apache.arrow.file              arrow
+application/vnd.apache.arrow.stream            arrows
+application/vnd.apache.thrift.binary
+application/vnd.apache.thrift.compact
+application/vnd.apache.thrift.json
+application/vnd.apexlang                       apexlang apex
+application/vnd.api+json
+application/vnd.aplextor.warrp+json
+application/vnd.apothekende.reservation+json
+application/vnd.apple.installer+xml            dist distz pkg mpkg
+application/vnd.apple.keynote                  keynote
+application/vnd.apple.mpegurl                  m3u8
+application/vnd.apple.numbers                  numbers
+application/vnd.apple.pages                    pages
+application/vnd.aristanetworks.swi             swi
+application/vnd.artisan+json                   artisan
+application/vnd.artsquare
+application/vnd.astraea-software.iota          iota
+application/vnd.audiograph                     aep
+application/vnd.autopackage                    package
+application/vnd.avalon+json
+application/vnd.avistar+xml
+application/vnd.balsamiq.bmml+xml              bmml
+application/vnd.balsamiq.bmpr                  bmpr
+application/vnd.banana-accounting              ac2
+application/vnd.bbf.usp.error
+application/vnd.bbf.usp.msg
+application/vnd.bbf.usp.msg+json
+application/vnd.bekitzur-stech+json
+application/vnd.belightsoft.lhzd+zip           lhzd
+application/vnd.belightsoft.lhzl+zip           lhzl
+application/vnd.bint.med-content
+application/vnd.biopax.rdf+xml
+application/vnd.blink-idb-value-wrapper
+application/vnd.blueice.multipass              mpm
+application/vnd.bluetooth.ep.oob               ep
+application/vnd.bluetooth.le.oob               le
+application/vnd.bmi                            bmi
+application/vnd.bpf
+application/vnd.bpf3
+application/vnd.businessobjects                        rep
+application/vnd.byu.uapi+json
+application/vnd.cab-jscript
+application/vnd.canon-cpdl
+application/vnd.canon-lips
+application/vnd.capasystems-pg+json
+application/vnd.cendio.thinlinc.clientconf     tlclient
+application/vnd.century-systems.tcp_stream
+application/vnd.chemdraw+xml                   cdxml
+application/vnd.chess-pgn                      pgn
+application/vnd.chipnuts.karaoke-mmd           mmd
+application/vnd.ciedi
+application/vnd.cinderella                     cdy
+application/vnd.cirpack.isdn-ext
+application/vnd.citationstyles.style+xml       csl
+application/vnd.claymore                       cla
+application/vnd.cloanto.rp9                    rp9
+application/vnd.clonk.c4group                  c4g c4d c4f c4p c4u
+application/vnd.cluetrust.cartomobile-config   c11amc
+application/vnd.cluetrust.cartomobile-config-pkg       c11amz
+application/vnd.cncf.helm.chart.content.v1.tar+gzip
+application/vnd.cncf.helm.chart.provenance.v1.prov
+application/vnd.coffeescript                   coffee
+application/vnd.collabio.xodocuments.document  xodt
+application/vnd.collabio.xodocuments.document-template xott
+application/vnd.collabio.xodocuments.presentation      xodp
+application/vnd.collabio.xodocuments.presentation-template     xotp
+application/vnd.collabio.xodocuments.spreadsheet       xods
+application/vnd.collabio.xodocuments.spreadsheet-template      xots
+application/vnd.collection+json
+application/vnd.collection.doc+json
+application/vnd.collection.next+json
+application/vnd.comicbook+zip                  cbz
+application/vnd.comicbook-rar                  cbr
+application/vnd.commerce-battelle              icf icd ic0 ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8
+application/vnd.commonspace                    csp cst
+application/vnd.contact.cmsg                   cdbcmsg
+application/vnd.coreos.ignition+json           ign ignition
+application/vnd.cosmocaller                    cmc
+application/vnd.crick.clicker                  clkx
+application/vnd.crick.clicker.keyboard         clkk
+application/vnd.crick.clicker.palette          clkp
+application/vnd.crick.clicker.template         clkt
+application/vnd.crick.clicker.wordbank         clkw
+application/vnd.criticaltools.wbs+xml          wbs
+application/vnd.cryptii.pipe+json
+application/vnd.crypto-shade-file              ssvc
+application/vnd.cryptomator.encrypted          c9r c9s
+application/vnd.cryptomator.vault              cryptomator
+application/vnd.ctc-posml                      pml
+application/vnd.ctct.ws+xml
+application/vnd.cups-pdf
+application/vnd.cups-postscript
+application/vnd.cups-ppd                       ppd
+application/vnd.cups-raster
+application/vnd.cups-raw
+application/vnd.curl
+application/vnd.cyan.dean.root+xml
+application/vnd.cybank
+application/vnd.cyclonedx+json
+application/vnd.cyclonedx+xml
+application/vnd.d2l.coursepackage1p0+zip
+application/vnd.d3m-dataset
+application/vnd.d3m-problem
+application/vnd.dart                           dart
+application/vnd.data-vision.rdz                        rdz
+application/vnd.datalog                                dl
+application/vnd.datapackage+json
+application/vnd.dataresource+json
+application/vnd.dbf                            dbf
+application/vnd.debian.binary-package          deb ddeb udeb
+application/vnd.dece.data                      uvf uvvf uvd uvvd
+application/vnd.dece.ttml+xml                  uvt uvvt
+application/vnd.dece.unspecified               uvx uvvx
+application/vnd.dece.zip                       uvz uvvz
+application/vnd.denovo.fcselayout-link         fe_launch
+application/vnd.desmume.movie                  dsm
+application/vnd.dir-bi.plate-dl-nosuffix
+application/vnd.dm.delegation+xml
+application/vnd.dna                            dna
+application/vnd.document+json                  docjson
+application/vnd.dolby.mobile.1
+application/vnd.dolby.mobile.2
+application/vnd.doremir.scorecloud-binary-document     scld
+application/vnd.dpgraph                                dpg mwc dpgraph
+application/vnd.dreamfactory                   dfac
+application/vnd.drive+json
+application/vnd.dtg.local
+application/vnd.dtg.local.flash                        fla
+application/vnd.dtg.local.html
+application/vnd.dvb.ait                                ait
+application/vnd.dvb.dvbisl+xml
+application/vnd.dvb.dvbj
+application/vnd.dvb.esgcontainer
+application/vnd.dvb.ipdcdftnotifaccess
+application/vnd.dvb.ipdcesgaccess
+application/vnd.dvb.ipdcesgaccess2
+application/vnd.dvb.ipdcesgpdd
+application/vnd.dvb.ipdcroaming
+application/vnd.dvb.iptv.alfec-base
+application/vnd.dvb.iptv.alfec-enhancement
+application/vnd.dvb.notif-aggregate-root+xml
+application/vnd.dvb.notif-container+xml
+application/vnd.dvb.notif-generic+xml
+application/vnd.dvb.notif-ia-msglist+xml
+application/vnd.dvb.notif-ia-registration-request+xml
+application/vnd.dvb.notif-ia-registration-response+xml
+application/vnd.dvb.notif-init+xml
+application/vnd.dvb.pfr
+application/vnd.dvb.service                    svc
+application/vnd.dxr
+application/vnd.dynageo                                geo
+application/vnd.dzr                            dzr
+application/vnd.easykaraoke.cdgdownload
+application/vnd.ecdis-update
+application/vnd.ecip.rlp
+application/vnd.eclipse.ditto+json
+application/vnd.ecowin.chart                   mag
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.efi.img
+application/vnd.efi.iso
+application/vnd.eln+zip                                ELN
+application/vnd.emclient.accessrequest+xml
+application/vnd.enliven                                nml
+application/vnd.enphase.envoy
+application/vnd.eprints.data+xml
+application/vnd.epson.esf                      esf
+application/vnd.epson.msf                      msf
+application/vnd.epson.quickanime               qam
+application/vnd.epson.salt                     slt
+application/vnd.epson.ssf                      ssf
+application/vnd.ericsson.quickcall             qcall qca
+application/vnd.espass-espass+zip              espass
+application/vnd.eszigno3+xml                   es3 et3
+application/vnd.etsi.aoc+xml
+application/vnd.etsi.asic-e+zip                        asice sce
+application/vnd.etsi.asic-s+zip                        asics
+application/vnd.etsi.cug+xml
+application/vnd.etsi.iptvcommand+xml
+application/vnd.etsi.iptvdiscovery+xml
+application/vnd.etsi.iptvprofile+xml
+application/vnd.etsi.iptvsad-bc+xml
+application/vnd.etsi.iptvsad-cod+xml
+application/vnd.etsi.iptvsad-npvr+xml
+application/vnd.etsi.iptvservice+xml
+application/vnd.etsi.iptvsync+xml
+application/vnd.etsi.iptvueprofile+xml
+application/vnd.etsi.mcid+xml
+application/vnd.etsi.mheg5
+application/vnd.etsi.overload-control-policy-dataset+xml
+application/vnd.etsi.pstn+xml
+application/vnd.etsi.sci+xml
+application/vnd.etsi.simservs+xml
+application/vnd.etsi.timestamp-token           tst
+application/vnd.etsi.tsl+xml
+application/vnd.etsi.tsl.der
+application/vnd.eu.kasparian.car+json          carjson
+application/vnd.eudora.data
+application/vnd.evolv.ecig.profile             ecigprofile
+application/vnd.evolv.ecig.settings            ecig
+application/vnd.evolv.ecig.theme               ecigtheme
+application/vnd.exstream-empower+zip           mpw
+application/vnd.exstream-package               pub
+application/vnd.ezpix-album                    ez2
+application/vnd.ezpix-package                  ez3
+application/vnd.f-secure.mobile
+application/vnd.familysearch.gedcom+zip                gdz
+application/vnd.fastcopy-disk-image            dim
+application/vnd.fdsn.mseed                     msd mseed
+application/vnd.fdsn.seed                      seed dataless
+application/vnd.ffsns
+application/vnd.ficlab.flb+zip                 flb
+application/vnd.filmit.zfc                     zfc
+application/vnd.fints
+application/vnd.firemonkeys.cloudcell
+application/vnd.FloGraphIt                     gph
+application/vnd.fluxtime.clip                  ftc
+application/vnd.font-fontforge-sfd             sfd
+application/vnd.framemaker                     fm
+application/vnd.fsc.weblaunch                  fsc
+application/vnd.fujifilm.fb.docuworks
+application/vnd.fujifilm.fb.docuworks.binder
+application/vnd.fujifilm.fb.docuworks.container
+application/vnd.fujifilm.fb.jfi+xml
+application/vnd.fujitsu.oasys                  oas
+application/vnd.fujitsu.oasys2                 oa2
+application/vnd.fujitsu.oasys3                 oa3
+application/vnd.fujitsu.oasysgp                        fg5
+application/vnd.fujitsu.oasysprs               bh2
+application/vnd.fujixerox.ART-EX
+application/vnd.fujixerox.ART4
+application/vnd.fujixerox.ddd                  ddd
+application/vnd.fujixerox.docuworks            xdw
+application/vnd.fujixerox.docuworks.binder     xbd
+application/vnd.fujixerox.docuworks.container  xct
+application/vnd.fujixerox.HBPL
+application/vnd.fut-misnet
+application/vnd.futoin+cbor
+application/vnd.futoin+json
+application/vnd.fuzzysheet                     fzs
+application/vnd.genomatix.tuxedo               txd
+application/vnd.genozip                                genozip
+application/vnd.gentics.grd+json               grd
+application/vnd.gentoo.catmetadata+xml
+application/vnd.gentoo.ebuild                  ebuild
+application/vnd.gentoo.eclass                  eclass
+application/vnd.gentoo.gpkg                    gpkg.tar
+application/vnd.gentoo.manifest
+application/vnd.gentoo.pkgmetadata+xml         
+application/vnd.gentoo.xpak                    xpak
+application/vnd.geogebra.file                  ggb
+application/vnd.geogebra.slides                        ggs
+application/vnd.geogebra.tool                  ggt
+application/vnd.geometry-explorer              gex gre
+application/vnd.geonext                                gxt
+application/vnd.geoplan                                g2w
+application/vnd.geospace                       g3w
+application/vnd.gerber
+application/vnd.globalplatform.card-content-mgt
+application/vnd.globalplatform.card-content-mgt-response
+application/vnd.gnu.taler.exchange+json
+application/vnd.gnu.taler.merchant+json
+application/vnd.google-earth.kml+xml           kml
+application/vnd.google-earth.kmz               kmz
+application/vnd.gov.sk.e-form+xml
+application/vnd.gov.sk.e-form+zip
+application/vnd.gov.sk.xmldatacontainer+xml
+application/vnd.gpxsee.map+xml
+application/vnd.grafeq                         gqf gqs
+application/vnd.gridmp
+application/vnd.groove-account                 gac
+application/vnd.groove-help                    ghf
+application/vnd.groove-identity-message                gim
+application/vnd.groove-injector                        grv
+application/vnd.groove-tool-message            gtm
+application/vnd.groove-tool-template           tpl
+application/vnd.groove-vcard                   vcg
+application/vnd.hal+json
+application/vnd.hal+xml                                hal
+application/vnd.HandHeld-Entertainment+xml     zmm
+application/vnd.hbci                           hbci hbc kom upa pkd bpd
+application/vnd.hc+json
+application/vnd.hcl-bireports
+application/vnd.hdt                            hdt
+application/vnd.heroku+json
+application/vnd.hhe.lesson-player              les
+application/vnd.hp-HPGL                                hpgl
+application/vnd.hp-hpid                                hpi hpid
+application/vnd.hp-hps                         hps
+application/vnd.hp-jlyt                                jlt
+application/vnd.hp-PCL                         pcl
+application/vnd.hp-PCLXL
+application/vnd.httphone
+application/vnd.hydrostatix.sof-data           sfd-hdstx
+application/vnd.hyper+json
+application/vnd.hyper-item+json
+application/vnd.hyperdrive+json
+application/vnd.hzn-3d-crossword
+application/vnd.ibm.electronic-media           emm
+application/vnd.ibm.MiniPay                    mpy
+application/vnd.ibm.rights-management          irm
+application/vnd.ibm.secure-container           sc
+application/vnd.iccprofile                     icc icm
+application/vnd.ieee.1905                      1905.1
+application/vnd.igloader                       igl
+application/vnd.imagemeter.folder+zip          imf
+application/vnd.imagemeter.image+zip           imi
+application/vnd.immervision-ivp                        ivp
+application/vnd.immervision-ivu                        ivu
+application/vnd.ims.imsccv1p1                  imscc
+application/vnd.ims.imsccv1p2
+application/vnd.ims.imsccv1p3
+application/vnd.ims.lis.v2.result+json
+application/vnd.ims.lti.v2.toolconsumerprofile+json
+application/vnd.ims.lti.v2.toolproxy+json
+application/vnd.ims.lti.v2.toolproxy.id+json
+application/vnd.ims.lti.v2.toolsettings+json
+application/vnd.ims.lti.v2.toolsettings.simple+json
+application/vnd.informedcontrol.rms+xml
+application/vnd.infotech.project
+application/vnd.infotech.project+xml
+application/vnd.innopath.wamp.notification
+application/vnd.insors.igm                     igm
+application/vnd.intercon.formnet               xpw xpx
+application/vnd.intergeo                       i2g
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.intu.qbo                       qbo
+application/vnd.intu.qfx                       qfx
+application/vnd.ipld.car                       car
+application/vnd.ipld.dag-cbor
+application/vnd.ipld.dag-json
+application/vnd.ipld.raw
+application/vnd.iptc.g2.catalogitem+xml
+application/vnd.iptc.g2.conceptitem+xml
+application/vnd.iptc.g2.knowledgeitem+xml
+application/vnd.iptc.g2.newsitem+xml
+application/vnd.iptc.g2.newsmessage+xml
+application/vnd.iptc.g2.packageitem+xml
+application/vnd.iptc.g2.planningitem+xml
+application/vnd.ipunplugged.rcprofile          rcprofile
+application/vnd.irepository.package+xml                irp
+application/vnd.is-xpr                         xpr
+application/vnd.isac.fcs                       fcs
+application/vnd.iso11783-10+zip
+application/vnd.jam                            jam
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms          rms
+application/vnd.jisp                           jisp
+application/vnd.joost.joda-archive             joda
+application/vnd.jsk.isdn-ngn
+application/vnd.kahootz                                ktz ktr
+application/vnd.kde.karbon                     karbon
+application/vnd.kde.kchart                     chrt
+application/vnd.kde.kformula                   kfo
+application/vnd.kde.kivio                      flw
+application/vnd.kde.kontour                    kon
+application/vnd.kde.kpresenter                 kpr kpt
+application/vnd.kde.kspread                    ksp
+application/vnd.kde.kword                      kwd kwt
+application/vnd.kenameaapp                     htke
+application/vnd.kidspiration                   kia
+application/vnd.Kinar                          kne knp sdf
+application/vnd.koan                           skp skd skm skt
+application/vnd.kodak-descriptor               sse
+application/vnd.las                            las
+application/vnd.las.las+json                   lasjson
+application/vnd.las.las+xml                    lasxml
+application/vnd.laszip
+application/vnd.leap+json
+application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop     lbd
+application/vnd.llamagraphics.life-balance.exchange+xml        lbe
+application/vnd.logipipe.circuit+zip           lcs lca
+application/vnd.loom                           loom
+application/vnd.lotus-1-2-3                    123 wk4 wk3 wk1
+application/vnd.lotus-approach                 apr vew
+application/vnd.lotus-freelance                        prz pre
+application/vnd.lotus-notes                    nsf ntf ndl ns4 ns3 ns2 nsh nsg
+application/vnd.lotus-organizer                        or3 or2 org
+application/vnd.lotus-screencam                        scm
+application/vnd.lotus-wordpro                  lwp sam
+application/vnd.macports.portpkg               portpkg
+application/vnd.mapbox-vector-tile             mvt
+application/vnd.marlin.drm.actiontoken+xml
+application/vnd.marlin.drm.conftoken+xml
+application/vnd.marlin.drm.license+xml
+application/vnd.marlin.drm.mdcf                        mdc
+application/vnd.mason+json
+application/vnd.maxar.archive.3tz+zip          3tz
+application/vnd.maxmind.maxmind-db             mmdb
+application/vnd.mcd                            mcd
+application/vnd.medcalcdata                    mc1
+application/vnd.mediastation.cdkey             cdkey
+application/vnd.medicalholodeck.recordxr       rxt
+application/vnd.meridian-slingshot
+application/vnd.MFER                           mwf
+application/vnd.mfmp                           mfm
+application/vnd.micro+json
+application/vnd.micrografx.flo                 flo
+application/vnd.micrografx.igx                 igx
+application/vnd.microsoft.portable-executable
+application/vnd.microsoft.windows.thumbnail-cache
+application/vnd.miele+json
+application/vnd.mif                            mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.Mobius.DAF                     daf
+application/vnd.Mobius.DIS                     dis
+application/vnd.Mobius.MBK                     mbk
+application/vnd.Mobius.MQY                     mqy
+application/vnd.Mobius.MSL                     msl
+application/vnd.Mobius.PLC                     plc
+application/vnd.Mobius.TXF                     txf
+application/vnd.mophun.application             mpn
+application/vnd.mophun.certificate             mpc
+application/vnd.motorola.flexsuite
+application/vnd.motorola.flexsuite.adsi
+application/vnd.motorola.flexsuite.fis
+application/vnd.motorola.flexsuite.gotap
+application/vnd.motorola.flexsuite.kmr
+application/vnd.motorola.flexsuite.ttc
+application/vnd.motorola.flexsuite.wem
+application/vnd.motorola.iprm
+application/vnd.mozilla.xul+xml                        xul
+application/vnd.ms-3mfdocument                 3mf
+application/vnd.ms-artgalry                    cil
+application/vnd.ms-asf                         asf
+application/vnd.ms-cab-compressed              cab
+application/vnd.ms-excel                       xls xlm xla xlc xlt xlw
+application/vnd.ms-excel.addin.macroEnabled.12 xlam
+application/vnd.ms-excel.sheet.binary.macroEnabled.12  xlsb
+application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
+application/vnd.ms-excel.template.macroEnabled.12      xltm
+application/vnd.ms-fontobject                  eot
+application/vnd.ms-htmlhelp                    chm
+application/vnd.ms-ims                         ims
+application/vnd.ms-lrm                         lrm
+application/vnd.ms-office.activeX+xml
+application/vnd.ms-officetheme                 thmx
+application/vnd.ms-pki.seccat                  cat
+application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint                                                  ppt pps
+application/vnd.ms-powerpoint.addin.macroEnabled.12                            ppam
+application/vnd.ms-powerpoint.presentation.macroEnabled.12                     pptm
+application/vnd.ms-powerpoint.slide.macroEnabled.12                            sldm
+application/vnd.ms-powerpoint.slideshow.macroEnabled.12                                ppsm
+application/vnd.ms-powerpoint.template.macroEnabled.12                         potm
+application/vnd.ms-PrintDeviceCapabilities+xml
+application/vnd.ms-PrintSchemaTicket+xml
+application/vnd.ms-project                     mpp mpt
+application/vnd.ms-tnef                                tnef tnf
+application/vnd.ms-windows.devicepairing
+application/vnd.ms-windows.nwprinting.oob
+application/vnd.ms-windows.printerpairing
+application/vnd.ms-windows.wsd.oob
+application/vnd.ms-wmdrm.lic-chlg-req
+application/vnd.ms-wmdrm.lic-resp
+application/vnd.ms-wmdrm.meter-chlg-req
+application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-word.document.macroEnabled.12                               docm
+application/vnd.ms-word.template.macroEnabled.12                               dotm
+application/vnd.ms-works                       wcm wdb wks wps
+application/vnd.ms-wpl                         wpl
+application/vnd.ms-xpsdocument                 xps
+application/vnd.msa-disk-image                 msa
+application/vnd.mseq                           mseq
+application/vnd.msign
+application/vnd.multiad.creator                        crtr
+application/vnd.multiad.creator.cif            cif
+application/vnd.music-niff
+application/vnd.musician                       mus
+application/vnd.muvee.style                    msty
+application/vnd.mynfc                          taglet
+application/vnd.nacamar.ybrid+json
+application/vnd.ncd.control
+application/vnd.ncd.reference
+application/vnd.nearst.inv+json
+application/vnd.nebumind.line                  nebul line
+application/vnd.nervana                                entity request bkm kcm
+application/vnd.netfpx
+application/vnd.neurolanguage.nlu              nlu
+application/vnd.nimn                           nimn
+application/vnd.nintendo.nitro.rom             nds
+application/vnd.nintendo.snes.rom              sfc smc
+application/vnd.nitf                           nitf
+application/vnd.noblenet-directory             nnd
+application/vnd.noblenet-sealer                        nns
+application/vnd.noblenet-web                   nnw
+application/vnd.nokia.catalogs
+application/vnd.nokia.conml+wbxml
+application/vnd.nokia.conml+xml
+application/vnd.nokia.iptv.config+xml
+application/vnd.nokia.iSDS-radio-presets
+application/vnd.nokia.landmark+wbxml
+application/vnd.nokia.landmark+xml
+application/vnd.nokia.landmarkcollection+xml
+application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data              ngdat
+application/vnd.nokia.ncd
+application/vnd.nokia.pcd+wbxml
+application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset             rpst
+application/vnd.nokia.radio-presets            rpss
+application/vnd.novadigm.EDM                   edm
+application/vnd.novadigm.EDX                   edx
+application/vnd.novadigm.EXT                   ext
+application/vnd.ntt-local.content-share
+application/vnd.ntt-local.file-transfer
+application/vnd.ntt-local.ogw_remote-access
+application/vnd.ntt-local.sip-ta_remote
+application/vnd.ntt-local.sip-ta_tcp_stream
+application/vnd.oasis.opendocument.base                                                odb
+application/vnd.oasis.opendocument.chart                                       odc
+application/vnd.oasis.opendocument.chart-template                              otc
+application/vnd.oasis.opendocument.formula                                     odf
+application/vnd.oasis.opendocument.formula-template
+application/vnd.oasis.opendocument.graphics                                    odg
+application/vnd.oasis.opendocument.graphics-template                           otg
+application/vnd.oasis.opendocument.image                                       odi
+application/vnd.oasis.opendocument.image-template                              oti
+application/vnd.oasis.opendocument.presentation                                        odp
+application/vnd.oasis.opendocument.presentation-template                       otp
+application/vnd.oasis.opendocument.spreadsheet                                 ods
+application/vnd.oasis.opendocument.spreadsheet-template                                ots
+application/vnd.oasis.opendocument.text                                                odt
+application/vnd.oasis.opendocument.text-master                                 odm
+application/vnd.oasis.opendocument.text-template                               ott
+application/vnd.oasis.opendocument.text-web                                    oth
+application/vnd.obn
+application/vnd.ocf+cbor
+application/vnd.oci.image.manifest.v1+json
+application/vnd.oftn.l10n+json
+application/vnd.oipf.contentaccessdownload+xml
+application/vnd.oipf.contentaccessstreaming+xml
+application/vnd.oipf.cspg-hexbinary
+application/vnd.oipf.dae.svg+xml
+application/vnd.oipf.dae.xhtml+xml
+application/vnd.oipf.mippvcontrolmessage+xml
+application/vnd.oipf.pae.gem
+application/vnd.oipf.spdiscovery+xml
+application/vnd.oipf.spdlist+xml
+application/vnd.oipf.ueprofile+xml
+application/vnd.oipf.userprofile+xml
+application/vnd.olpc-sugar                     xo
+application/vnd.oma-scws-config
+application/vnd.oma-scws-http-request
+application/vnd.oma-scws-http-response
+application/vnd.oma.bcast.associated-procedure-parameter+xml
+application/vnd.oma.bcast.drm-trigger+xml
+application/vnd.oma.bcast.imd+xml
+application/vnd.oma.bcast.ltkm
+application/vnd.oma.bcast.notification+xml
+application/vnd.oma.bcast.provisioningtrigger
+application/vnd.oma.bcast.sgboot
+application/vnd.oma.bcast.sgdd+xml
+application/vnd.oma.bcast.sgdu
+application/vnd.oma.bcast.simple-symbol-container
+application/vnd.oma.bcast.smartcard-trigger+xml
+application/vnd.oma.bcast.sprov+xml
+application/vnd.oma.bcast.stkm
+application/vnd.oma.cab-address-book+xml
+application/vnd.oma.cab-feature-handler+xml
+application/vnd.oma.cab-pcc+xml
+application/vnd.oma.cab-subs-invite+xml
+application/vnd.oma.cab-user-prefs+xml
+application/vnd.oma.dcd
+application/vnd.oma.dcdc
+application/vnd.oma.dd2+xml                    dd2
+application/vnd.oma.drm.risd+xml
+application/vnd.oma.group-usage-list+xml
+application/vnd.oma.lwm2m+cbor
+application/vnd.oma.lwm2m+json
+application/vnd.oma.lwm2m+tlv
+application/vnd.oma.pal+xml
+application/vnd.oma.poc.detailed-progress-report+xml
+application/vnd.oma.poc.final-report+xml
+application/vnd.oma.poc.groups+xml
+application/vnd.oma.poc.invocation-descriptor+xml
+application/vnd.oma.poc.optimized-progress-report+xml
+application/vnd.oma.push
+application/vnd.oma.scidm.messages+xml
+application/vnd.oma.xcap-directory+xml
+application/vnd.omads-email+xml
+application/vnd.omads-file+xml
+application/vnd.omads-folder+xml
+application/vnd.omaloc-supl-init
+application/vnd.onepager                       tam
+application/vnd.onepagertamp                   tamp
+application/vnd.onepagertamx                   tamx
+application/vnd.onepagertat                    tat
+application/vnd.onepagertatp                   tatp
+application/vnd.onepagertatx                   tatx
+application/vnd.onvif.metadata
+application/vnd.openblox.game+xml              obgx
+application/vnd.openblox.game-binary           obg
+application/vnd.openeye.oeb                    oeb
+application/vnd.openofficeorg.extension                oxt
+application/vnd.openstreetmap.data+xml         osm
+application/vnd.opentimestamps.ots
+application/vnd.openxmlformats-officedocument.custom-properties+xml
+application/vnd.openxmlformats-officedocument.customXmlProperties+xml
+application/vnd.openxmlformats-officedocument.drawing+xml
+application/vnd.openxmlformats-officedocument.drawingml.chart+xml
+application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
+application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml
+application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml
+application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml
+application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml
+application/vnd.openxmlformats-officedocument.extended-properties+xml
+application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml
+application/vnd.openxmlformats-officedocument.presentationml.comments+xml
+application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml
+application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml
+application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml
+application/vnd.openxmlformats-officedocument.presentationml.presentation      pptx
+application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
+application/vnd.openxmlformats-officedocument.presentationml.presProps+xml
+application/vnd.openxmlformats-officedocument.presentationml.slide             sldx
+application/vnd.openxmlformats-officedocument.presentationml.slide+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideshow         ppsx
+application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml
+application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml
+application/vnd.openxmlformats-officedocument.presentationml.tags+xml
+application/vnd.openxmlformats-officedocument.presentationml.template          potx
+application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
+application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet              xlsx
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.template           xltx
+application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
+application/vnd.openxmlformats-officedocument.theme+xml
+application/vnd.openxmlformats-officedocument.themeOverride+xml
+application/vnd.openxmlformats-officedocument.vmlDrawing
+application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.document                docx
+application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.template                dotx
+application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml
+application/vnd.openxmlformats-package.core-properties+xml
+application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
+application/vnd.openxmlformats-package.relationships+xml
+application/vnd.oracle.resource+json
+application/vnd.orange.indata
+application/vnd.osa.netdeploy                  ndc
+application/vnd.osgeo.mapguide.package         mgp
+application/vnd.osgi.bundle
+application/vnd.osgi.dp                                dp
+application/vnd.osgi.subsystem                 esa
+application/vnd.otps.ct-kip+xml
+application/vnd.oxli.countgraph                        oxlicg
+application/vnd.pagerduty+json
+application/vnd.palm                           pdb pqa oprc
+application/vnd.panoply                                plp
+application/vnd.paos.xml
+application/vnd.patentdive                     dive
+application/vnd.patientecommsdoc
+application/vnd.pawaafile                      paw
+application/vnd.pcos
+application/vnd.pg.format                      str
+application/vnd.pg.osasli                      ei6
+application/vnd.piaccess.application-licence   pil
+application/vnd.picsel                         efif
+application/vnd.pmi.widget                     wg
+application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn                    plf
+application/vnd.powerbuilder6                  pbd
+application/vnd.powerbuilder6-s
+application/vnd.powerbuilder7
+application/vnd.powerbuilder7-s
+application/vnd.powerbuilder75
+application/vnd.powerbuilder75-s
+application/vnd.preminet                       preminet
+application/vnd.previewsystems.box             box vbox
+application/vnd.proteus.magazine               mgz
+application/vnd.psfs                           psfs
+application/vnd.publishare-delta-tree          qps
+application/vnd.pvi.ptid1                      ptid
+application/vnd.pwg-multiplexed
+application/vnd.pwg-xhtml-print+xml
+application/vnd.qualcomm.brew-app-res          bar
+application/vnd.quarantainenet
+application/vnd.Quark.QuarkXPress              qxd qxt qwd qwt qxl qxb
+application/vnd.quobject-quoxdocument          quox quiz
+application/vnd.radisys.moml+xml
+application/vnd.radisys.msml+xml
+application/vnd.radisys.msml-audit+xml
+application/vnd.radisys.msml-audit-conf+xml
+application/vnd.radisys.msml-audit-conn+xml
+application/vnd.radisys.msml-audit-dialog+xml
+application/vnd.radisys.msml-audit-stream+xml
+application/vnd.radisys.msml-conf+xml
+application/vnd.radisys.msml-dialog+xml
+application/vnd.radisys.msml-dialog-base+xml
+application/vnd.radisys.msml-dialog-fax-detect+xml
+application/vnd.radisys.msml-dialog-fax-sendrecv+xml
+application/vnd.radisys.msml-dialog-group+xml
+application/vnd.radisys.msml-dialog-speech+xml
+application/vnd.radisys.msml-dialog-transform+xml
+application/vnd.rainstor.data                  tree
+application/vnd.rapid
+application/vnd.rar                            rar
+application/vnd.realvnc.bed                    bed
+application/vnd.recordare.musicxml             mxl
+application/vnd.recordare.musicxml+xml
+application/vnd.RenLearn.rlprint
+application/vnd.resilient.logic                        rlm reload
+application/vnd.restful+json
+application/vnd.rig.cryptonote                 cryptonote
+application/vnd.rim.cod                                                                cod
+application/vnd.route66.link66+xml             link66
+application/vnd.rs-274x
+application/vnd.ruckus.download
+application/vnd.s3sms
+application/vnd.sailingtracker.track           st
+application/vnd.sar                            SAR
+application/vnd.sbm.cid
+application/vnd.sbm.mid2
+application/vnd.scribus                                scd sla slaz
+application/vnd.sealed.3df                     s3df
+application/vnd.sealed.csf                     scsf
+application/vnd.sealed.doc                     sdoc sdo s1w
+application/vnd.sealed.eml                     seml sem
+application/vnd.sealed.mht                     smht smh
+application/vnd.sealed.net
+application/vnd.sealed.ppt                     sppt s1p
+application/vnd.sealed.tiff                    stif
+application/vnd.sealed.xls                     sxls sxl s1e
+application/vnd.sealedmedia.softseal.html      stml s1h
+application/vnd.sealedmedia.softseal.pdf       spdf spd s1a
+application/vnd.seemail                                see
+application/vnd.seis+json
+application/vnd.sema                           sema
+application/vnd.semd                           semd
+application/vnd.semf                           semf
+application/vnd.shade-save-file                        ssv
+application/vnd.shana.informed.formdata                ifm
+application/vnd.shana.informed.formtemplate    itp
+application/vnd.shana.informed.interchange     iif
+application/vnd.shana.informed.package         ipk
+application/vnd.shootproof+json
+application/vnd.shopkick+json
+application/vnd.shp                            shp
+application/vnd.shx                            shx
+application/vnd.sigrok.session                 sr
+application/vnd.SimTech-MindMapper             twd twds
+application/vnd.siren+json
+application/vnd.smaf                           mmf
+application/vnd.smart.notebook                 notebook
+application/vnd.smart.teacher                  teacher
+application/vnd.snesdev-page-table             ptrom pt
+application/vnd.software602.filler.form+xml    fo
+application/vnd.software602.filler.form-xml-zip        zfo
+application/vnd.solent.sdkm+xml                        sdkm sdkd
+application/vnd.spotfire.dxp                   dxp
+application/vnd.spotfire.sfs                   sfs
+application/vnd.sqlite3                                sqlite sqlite3
+application/vnd.sss-cod
+application/vnd.sss-dtf
+application/vnd.sss-ntf
+application/vnd.stardivision.calc                                              sdc
+application/vnd.stardivision.chart                                             sds
+application/vnd.stardivision.draw                                              sda
+application/vnd.stardivision.impress                                           sdd
+application/vnd.stardivision.math                                              smf
+application/vnd.stardivision.writer                                            sdw
+application/vnd.stardivision.writer-global                                     sgl
+application/vnd.stepmania.package              smzip
+application/vnd.stepmania.stepchart            sm
+application/vnd.street-stream
+application/vnd.sun.wadl+xml                   wadl
+application/vnd.sun.xml.calc                                                   sxc
+application/vnd.sun.xml.calc.template                                          stc
+application/vnd.sun.xml.draw                                                   sxd
+application/vnd.sun.xml.draw.template                                          std
+application/vnd.sun.xml.impress                                                        sxi
+application/vnd.sun.xml.impress.template                                       sti
+application/vnd.sun.xml.math                                                   sxm
+application/vnd.sun.xml.writer                                                 sxw
+application/vnd.sun.xml.writer.global                                          sxg
+application/vnd.sun.xml.writer.template                                                stw
+application/vnd.sus-calendar                   sus susp
+application/vnd.svd
+application/vnd.swiftview-ics
+application/vnd.sybyl.mol2                     ml2 mol2 sy2
+application/vnd.sycle+xml                      scl
+application/vnd.syft+json                      syft.json
+application/vnd.symbian.install                                                        sis
+application/vnd.syncml+xml                     xsm
+application/vnd.syncml.dm+wbxml                        bdm
+application/vnd.syncml.dm+xml                  xdm
+application/vnd.syncml.dm.notification
+application/vnd.syncml.dmddf+wbxml
+application/vnd.syncml.dmddf+xml               ddf
+application/vnd.syncml.dmtnds+wbxml
+application/vnd.syncml.dmtnds+xml
+application/vnd.syncml.ds.notification
+application/vnd.tableschema+json
+application/vnd.tao.intent-module-archive      tao
+application/vnd.tcpdump.pcap                   pcap cap dmp
+application/vnd.theqvd                         qvd
+application/vnd.think-cell.ppttc+json          ppttc
+application/vnd.tmd.mediaflex.api+xml
+application/vnd.tml                            vfr viaframe
+application/vnd.tmobile-livetv                 tmo
+application/vnd.tri.onesource
+application/vnd.trid.tpt                       tpt
+application/vnd.triscape.mxs                   mxs
+application/vnd.trueapp                                tra
+application/vnd.truedoc
+application/vnd.ubisoft.webplayer
+application/vnd.ufdl                           ufdl ufd frm
+application/vnd.uiq.theme                      utz
+application/vnd.umajin                         umj
+application/vnd.unity                          unityweb
+application/vnd.uoml+xml                       uoml uo
+application/vnd.uplanet.alert
+application/vnd.uplanet.alert-wbxml
+application/vnd.uplanet.bearer-choice
+application/vnd.uplanet.bearer-choice-wbxml
+application/vnd.uplanet.cacheop
+application/vnd.uplanet.cacheop-wbxml
+application/vnd.uplanet.channel
+application/vnd.uplanet.channel-wbxml
+application/vnd.uplanet.list
+application/vnd.uplanet.list-wbxml
+application/vnd.uplanet.listcmd
+application/vnd.uplanet.listcmd-wbxml
+application/vnd.uplanet.signal
+application/vnd.uri-map                                urim urimap
+application/vnd.valve.source.material          vmt
+application/vnd.vcx                            vcx
+application/vnd.vd-study                       mxi study-inter model-inter
+application/vnd.vectorworks                    vwx
+application/vnd.vel+json
+application/vnd.verimatrix.vcas
+application/vnd.veritone.aion+json             aion vtnstd
+application/vnd.veryant.thin                   istc isws
+application/vnd.ves.encrypted                  VES
+application/vnd.vidsoft.vidconference          vsc
+application/vnd.visio                          vsd vst vsw vss
+application/vnd.visionary                      vis
+application/vnd.vividence.scriptfile
+application/vnd.vsf                            vsf
+application/vnd.wap.sic                                sic
+application/vnd.wap.slc                                slc
+application/vnd.wap.wbxml                      wbxml
+application/vnd.wap.wmlc                       wmlc
+application/vnd.wap.wmlscriptc                 wmlsc
+application/vnd.wasmflow.wafl                  wafl
+application/vnd.webturbo                       wtb
+application/vnd.wfa.dpp
+application/vnd.wfa.p2p                                p2p
+application/vnd.wfa.wsc                                wsc
+application/vnd.windows.devicepairing
+application/vnd.wmc                            wmc
+application/vnd.wmf.bootstrap
+application/vnd.wolfram.mathematica            nb
+application/vnd.wolfram.mathematica.package    m
+application/vnd.wolfram.player                 nbp
+application/vnd.wordlift
+application/vnd.wordperfect                    wpd
+application/vnd.wqd                            wqd
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf                         stf
+application/vnd.wv.csp+wbxml                   wv
+application/vnd.wv.csp+xml
+application/vnd.wv.ssp+xml
+application/vnd.xacml+json
+application/vnd.xara                           xar
+application/vnd.xfdl                           xfdl xfd
+application/vnd.xfdl.webform
+application/vnd.xmi+xml
+application/vnd.xmpie.cpkg                     cpkg
+application/vnd.xmpie.dpkg                     dpkg
+application/vnd.xmpie.plan
+application/vnd.xmpie.ppkg                     ppkg
+application/vnd.xmpie.xlim                     xlim
+application/vnd.yamaha.hv-dic                  hvd
+application/vnd.yamaha.hv-script               hvs
+application/vnd.yamaha.hv-voice                        hvp
+application/vnd.yamaha.openscoreformat         osf
+application/vnd.yamaha.openscoreformat.osfpvg+xml
+application/vnd.yamaha.remote-setup
+application/vnd.yamaha.smaf-audio              saf
+application/vnd.yamaha.smaf-phrase             spf
+application/vnd.yamaha.through-ngn
+application/vnd.yamaha.tunnel-udpencap
+application/vnd.yaoweme                                yme
+application/vnd.yellowriver-custom-menu                cmp
+application/vnd.zul                            zir zirz
+application/vnd.zzazz.deck+xml                 zaz
+application/voicexml+xml                       vxml
+application/voucher-cms+json                   vcj
+application/vq-rtcpxr
+application/wasm                               wasm
+application/watcherinfo+xml                    wif
+application/webpush-options+json
+application/whoispp-query
+application/whoispp-response
+application/widget                             wgt
+application/wita
+application/wordperfect5.1
+application/wsdl+xml                           wsdl
+application/wspolicy+xml                       wspolicy
+application/x-123                              wk
+application/x-7z-compressed                    7z
+application/x-abiword                          abw
+application/x-apple-diskimage                  dmg
+application/x-bcpio                            bcpio
+application/x-bittorrent                       torrent
+application/x-cdf                              cdf cda
+application/x-cdlink                           vcd
+application/x-comsol                           mph
+application/x-cpio                             cpio
+application/x-csh                              csh
+application/x-director                         dcr dir dxr
+application/x-doom                             wad
+application/x-dvi                              dvi
+application/x-font                             pfa pfb gsf
+application/x-font-pcf                         pcf pcf.Z
+application/x-freemind                         mm
+application/x-ganttproject                     gan
+application/x-gnumeric                         gnumeric
+application/x-go-sgf                           sgf
+application/x-graphing-calculator              gcf
+application/x-gtar                             gtar
+application/x-gtar-compressed                  tgz taz
+application/x-hdf                              hdf
+application/x-hwp                              hwp
+application/x-ica                              ica
+application/x-info                             info
+application/x-internet-signup                  ins isp
+application/x-iphone                           iii
+application/x-iso9660-image                    iso
+application/x-java-jnlp-file                   jnlp
+application/x-jmol                             jmz
+application/x-killustrator                     kil
+application/x-latex                            latex
+application/x-lha                              lha
+application/x-lyx                              lyx
+application/x-lzh                              lzh
+application/x-lzx                              lzx
+application/x-maker                            frm maker frame fm fb book fbdoc
+application/x-ms-wmd                           wmd
+application/x-ms-wmz                           wmz
+application/x-msdos-program                    com exe bat dll
+application/x-msi                              msi
+application/x-netcdf                           nc
+application/x-ns-proxy-autoconfig              pac
+application/x-nwc                              nwc
+application/x-object                           o
+application/x-oz-application                   oza
+application/x-pkcs7-certreqresp                        p7r
+application/x-pki-message
+application/x-python-code                      pyc pyo
+application/x-qgis                             qgs shp shx
+application/x-quicktimeplayer                  qtl
+application/x-rdp                              rdp
+application/x-redhat-package-manager           rpm
+application/x-rss+xml                          rss
+application/x-ruby                             rb
+application/x-scilab                           sci sce
+application/x-scilab-xcos                      xcos
+application/x-sh                               sh
+application/x-shar                             shar
+application/x-silverlight                      scr
+application/x-stuffit                          sit sitx
+application/x-sv4cpio                          sv4cpio
+application/x-sv4crc                           sv4crc
+application/x-tar                              tar
+application/x-tcl                              tcl
+application/x-tex-gf                           gf
+application/x-tex-pk                           pk
+application/x-texinfo                          texinfo texi
+application/x-trash                            ~ % bak old sik
+application/x-troff-man                                man
+application/x-troff-me                         me
+application/x-troff-ms                         ms
+application/x-ustar                            ustar
+application/x-wais-source                      src
+application/x-wingz                            wz
+application/x-www-form-urlencoded
+application/x-x509-ca-cert                     crt
+application/x-x509-ca-ra-cert
+application/x-x509-next-ca-cert
+application/x-xfig                             fig
+application/x-xpinstall                                xpi
+application/x-xz                               xz
+application/x400-bp
+application/xacml+xml
+application/xcap-att+xml                       xav
+application/xcap-caps+xml                      xca
+application/xcap-diff+xml                      xdf
+application/xcap-el+xml                                xel
+application/xcap-error+xml                     xer
+application/xcap-ns+xml                                xns
+application/xcon-conference-info+xml
+application/xcon-conference-info-diff+xml
+application/xenc+xml
+application/xfdf                               xfdf
+application/xhtml+xml                          xhtml xhtm xht
+application/xliff+xml                          xlf
+application/xml                                        xml
+application/xml-dtd                            dtd mod
+application/xml-external-parsed-entity         ent
+application/xml-patch+xml
+application/xmpp+xml
+application/xop+xml                            xop
+application/xslt+xml                           xsl xslt
+application/xspf+xml                           xspf
+application/xv+xml                             mxml xhvml xvml xvm
+application/yang                               yang
+application/yang-data+cbor
+application/yang-data+json
+application/yang-data+xml
+application/yang-patch+json
+application/yang-patch+xml
+application/yin+xml                            yin
+application/zip                                        zip
+application/zlib
+application/zstd                               zst
+
+audio/1d-interleaved-parityfec
+audio/32kadpcm                                 726
+audio/3gpp
+audio/3gpp2
+audio/aac                                      adts aac ass
+audio/ac3                                      ac3
+audio/AMR                                      amr AMR
+audio/AMR-WB                                   awb AWB
+audio/amr-wb+
+audio/annodex                                  axa
+audio/aptx
+audio/asc                                      acn
+audio/ATRAC-ADVANCED-LOSSLESS                  aal
+audio/ATRAC-X                                  atx
+audio/ATRAC3                                   at3 aa3 omg
+audio/basic                                    au snd
+audio/BV16
+audio/BV32
+audio/clearmode
+audio/CN
+audio/csound                                   csd orc sco
+audio/DAT12
+audio/dls                                      dls
+audio/dsr-es201108
+audio/dsr-es202050
+audio/dsr-es202211
+audio/dsr-es202212
+audio/DV
+audio/DVI4
+audio/eac3
+audio/encaprtp
+audio/EVRC                                     evc
+audio/EVRC-QCP                                 qcp QCP
+audio/EVRC0
+audio/EVRC1
+audio/EVRCB                                    evb
+audio/EVRCB0
+audio/EVRCB1
+audio/EVRCNW                                   enw
+audio/EVRCNW0
+audio/EVRCNW1
+audio/EVRCWB                                   evw
+audio/EVRCWB0
+audio/EVRCWB1
+audio/EVS
+audio/example
+audio/flac                                     flac
+audio/flexfec
+audio/fwdred
+audio/G711-0
+audio/G719
+audio/G722
+audio/G7221
+audio/G723
+audio/G726-16
+audio/G726-24
+audio/G726-32
+audio/G726-40
+audio/G728
+audio/G729
+audio/G7291
+audio/G729D
+audio/G729E
+audio/GSM
+audio/GSM-EFR
+audio/GSM-HR-08
+audio/iLBC                                     lbc
+audio/ip-mr_v2.5
+audio/L16                                      l16
+audio/L20
+audio/L24
+audio/L8
+audio/LPC
+audio/MELP
+audio/MELP1200
+audio/MELP2400
+audio/MELP600
+audio/mhas                                     mhas
+audio/mobile-xmf                               mxmf
+audio/mp4                                      m4a
+audio/MP4A-LATM
+audio/MPA
+audio/mpa-robust
+audio/mpeg                                     mpga mpega mp1 mp2 mp3
+audio/mpeg4-generic
+audio/mpegurl                                  m3u
+audio/ogg                                      oga ogg opus spx
+audio/opus
+audio/parityfec
+audio/PCMA
+audio/PCMA-WB
+audio/PCMU
+audio/PCMU-WB
+audio/prs.sid                                  sid psid
+audio/QCELP
+audio/raptorfec
+audio/RED
+audio/rtp-enc-aescm128
+audio/rtp-midi
+audio/rtploopback
+audio/rtx
+audio/scip
+audio/SMV                                      smv
+audio/SMV-QCP
+audio/SMV0
+audio/sofa                                     sofa
+audio/sp-midi                                  mid
+audio/speex
+audio/t140c
+audio/t38
+audio/telephone-event
+audio/TETRA_ACELP
+audio/TETRA_ACELP_BB
+audio/tone
+audio/TSVCIS
+audio/UEMCLIP
+audio/ulpfec
+audio/usac                                     loas xhe
+audio/VDVI
+audio/VMR-WB
+audio/vnd.3gpp.iufp
+audio/vnd.4SB
+audio/vnd.audiokoz                             koz
+audio/vnd.CELP
+audio/vnd.cisco.nse
+audio/vnd.cmles.radio-events
+audio/vnd.cns.anp1
+audio/vnd.cns.inf1
+audio/vnd.dece.audio                           uva uvva
+audio/vnd.digital-winds                                eol
+audio/vnd.dlna.adts
+audio/vnd.dolby.heaac.1
+audio/vnd.dolby.heaac.2
+audio/vnd.dolby.mlp                            mlp
+audio/vnd.dolby.mps
+audio/vnd.dolby.pl2
+audio/vnd.dolby.pl2x
+audio/vnd.dolby.pl2z
+audio/vnd.dolby.pulse.1
+audio/vnd.dra
+audio/vnd.dts                                  dts
+audio/vnd.dts.hd                               dtshd
+audio/vnd.dts.uhd
+audio/vnd.dvb.file
+audio/vnd.everad.plj                           plj
+audio/vnd.hns.audio
+audio/vnd.lucent.voice                         lvp
+audio/vnd.ms-playready.media.pya               pya
+audio/vnd.nokia.mobile-xmf
+audio/vnd.nortel.vbk                           vbk
+audio/vnd.nuera.ecelp4800                      ecelp4800
+audio/vnd.nuera.ecelp7470                      ecelp7470
+audio/vnd.nuera.ecelp9600                      ecelp9600
+audio/vnd.octel.sbc
+audio/vnd.presonus.multitrack                  multitrack
+audio/vnd.rhetorex.32kadpcm
+audio/vnd.rip                                  rip
+audio/vnd.sealedmedia.softseal.mpeg            smp3 smp s1m
+audio/vnd.vmx.cvsd
+audio/vorbis
+audio/vorbis-config
+audio/x-aiff                                   aif aiff aifc
+audio/x-gsm                                    gsm
+audio/x-ms-wax                                 wax
+audio/x-ms-wma                                 wma
+audio/x-pn-realaudio                           ra rm ram
+audio/x-scpls                                  pls
+audio/x-sd2                                    sd2
+audio/x-wav                                    wav
+
+chemical/x-alchemy                             alc
+chemical/x-cache                               cac cache
+chemical/x-cache-csf                           csf
+chemical/x-cactvs-binary                       cbin cascii ctab
+chemical/x-cdx                                 cdx
+chemical/x-cerius
+chemical/x-chem3d                              c3d
+chemical/x-chemdraw                            chm
+chemical/x-cif                                 cif
+chemical/x-cmdf                                        cmdf
+chemical/x-cml                                 cml
+chemical/x-compass                             cpa
+chemical/x-crossfire                           bsd
+chemical/x-csml                                        csml csm
+chemical/x-ctx                                 ctx
+chemical/x-cxf                                 cxf cef
+#chemical/x-daylight-smiles                    smi
+chemical/x-embl-dl-nucleotide                  emb embl
+chemical/x-galactic-spc                                spc
+chemical/x-gamess-input                                inp gam gamin
+chemical/x-gaussian-checkpoint                 fch fchk
+chemical/x-gaussian-cube                       cub
+chemical/x-gaussian-input                      gau gjc gjf
+chemical/x-gaussian-log                                gal
+chemical/x-gcg8-sequence                       gcg
+chemical/x-genbank                             gen
+chemical/x-hin                                 hin
+chemical/x-isostar                             istr ist
+chemical/x-jcamp-dx                            jdx dx
+chemical/x-kinemage                            kin
+chemical/x-macmolecule                         mcm
+chemical/x-macromodel-input                    mmod
+chemical/x-mdl-molfile                         mol
+chemical/x-mdl-rdfile                          rd
+chemical/x-mdl-rxnfile                         rxn
+chemical/x-mdl-sdfile                          sd sdf
+chemical/x-mdl-tgf                             tgf
+#chemical/x-mif                                        mif
+chemical/x-mmcif                               mcif
+chemical/x-molconn-Z                           b
+chemical/x-mopac-graph                         gpt
+chemical/x-mopac-input                         mop mopcrt mpc zmt
+chemical/x-mopac-out                           moo
+chemical/x-mopac-vib                           mvb
+chemical/x-ncbi-asn1                           asn
+chemical/x-ncbi-asn1-ascii                     prt
+chemical/x-ncbi-asn1-binary                    val aso
+chemical/x-ncbi-asn1-spec                      asn
+chemical/x-pdb                                 pdb
+chemical/x-rosdal                              ros
+chemical/x-swissprot                           sw
+chemical/x-vamas-iso14976                      vms
+chemical/x-vmd                                 vmd
+chemical/x-xtel                                        xtel
+chemical/x-xyz                                 xyz
+
+font/collection                                        ttc
+font/otf                                       otf
+font/sfnt
+font/ttf                                       ttf
+font/woff                                      woff
+font/woff2                                     woff2
+
+image/aces                                     exr
+image/apng                                     apng
+image/avci                                     avci
+image/avcs                                     avcs
+image/avif                                     avif hif
+image/bmp                                      bmp
+image/cgm                                      cgm
+image/dicom-rle                                        drle
+image/dpx                                      dpx
+image/emf                                      emf
+image/example
+image/fits                                     fits fit fts
+image/g3fax
+image/gif                                      gif
+image/heic                                     heic
+image/heic-sequence                            heics
+image/heif                                     heif
+image/heif-sequence                            heifs
+image/hej2k                                    hej2
+image/hsj2                                     hsj2
+image/ief                                      ief
+image/jls                                      jls
+image/jp2                                      jp2 jpg2
+image/jpeg                                     jpeg jpg jpe jfif
+image/jph                                      jph
+image/jphc                                     jhc jphc
+image/jpm                                      jpm jpgm
+image/jpx                                      jpx jpf
+image/jxl                                      jxl
+image/jxr                                      jxr
+image/jxrA                                     jxra
+image/jxrS                                     jxrs
+image/jxs                                      jxs
+image/jxsc                                     jxsc
+image/jxsi                                     jxsi
+image/jxss                                     jxss
+image/ktx                                      ktx
+image/ktx2                                     ktx2
+image/naplps
+image/png                                      png
+image/prs.btif                                 btif btf
+image/prs.pti                                  pti
+image/pwg-raster
+image/svg+xml                                  svg svgz
+image/t38
+image/tiff                                     tiff tif
+image/tiff-fx                                  tfx
+image/vnd.adobe.photoshop                      psd
+image/vnd.airzip.accelerator.azv               azv
+image/vnd.cns.inf2
+image/vnd.dece.graphic                         uvi uvvi uvg uvvg
+image/vnd.djvu                                 djvu djv
+image/vnd.dvb.subtitle
+image/vnd.dwg                                  dwg
+image/vnd.dxf                                  dxf
+image/vnd.fastbidsheet                         fbs
+image/vnd.fpx                                  fpx
+image/vnd.fst                                  fst
+image/vnd.fujixerox.edmics-mmr                 mmr
+image/vnd.fujixerox.edmics-rlc                 rlc
+image/vnd.globalgraphics.pgb                   PGB pgb
+image/vnd.microsoft.icon                       ico
+image/vnd.mix
+image/vnd.ms-modi                              mdi
+image/vnd.net-fpx
+image/vnd.pco.b16                              b16
+image/vnd.radiance                             hdr rgbe xyze
+image/vnd.sealed.png                           spng spn s1n
+image/vnd.sealedmedia.softseal.gif             sgif sgi s1g
+image/vnd.sealedmedia.softseal.jpg             sjpg sjp s1j
+image/vnd.svf
+image/vnd.tencent.tap                          tap
+image/vnd.valve.source.texture                 vtf
+image/vnd.wap.wbmp                             wbmp
+image/vnd.xiff                                 xif
+image/vnd.zbrush.pcx                           pcx
+image/webp                                     webp
+image/wmf                                      wmf
+image/x-canon-cr2                              cr2
+image/x-canon-crw                              crw
+image/x-cmu-raster                             ras
+image/x-coreldraw                              cdr
+image/x-coreldrawpattern                       pat
+image/x-coreldrawtemplate                      cdt
+image/x-corelphotopaint                                cpt
+image/x-epson-erf                              erf
+image/x-jg                                     art
+image/x-jng                                    jng
+image/x-nikon-nef                              nef
+image/x-olympus-orf                            orf
+image/x-portable-anymap                                pnm
+image/x-portable-bitmap                                pbm
+image/x-portable-graymap                       pgm
+image/x-portable-pixmap                                ppm
+image/x-rgb                                    rgb
+image/x-xbitmap                                        xbm
+image/x-xcf                                    xcf
+image/x-xpixmap                                        xpm
+image/x-xwindowdump                            xwd
+
+inode/blockdevice
+inode/chardevice
+inode/directory
+inode/directory-locked
+inode/fifo
+inode/socket
+
+message/bhttp
+message/CPIM
+message/delivery-status
+message/disposition-notification
+message/example
+message/external-body
+message/feedback-report
+message/global                                 u8msg
+message/global-delivery-status                 u8dsn
+message/global-disposition-notification                u8mdn
+message/global-headers                         u8hdr
+message/http
+message/imdn+xml
+message/partial
+message/rfc822                                 eml mail art
+message/s-http
+message/sip
+message/sipfrag
+message/tracking-status
+message/vnd.wfa.wsc
+
+model/3mf
+model/e57
+model/example
+model/gltf+json                                        gltf
+model/gltf-binary                              glb
+model/iges                                     igs iges
+model/JT                                       jt
+model/mesh                                     msh mesh silo
+model/mtl                                      mtl
+model/obj                                      obj
+model/prc                                      prc
+model/step                                     stp step
+model/step+xml                                 stpx
+model/step+zip                                 stpz
+model/step-xml+zip                             stpxz
+model/stl                                      stl
+model/u3d                                      u3d
+model/vnd.cld                                  cld
+model/vnd.collada+xml                          dae
+model/vnd.dwf                                  dwf
+model/vnd.flatland.3dml
+model/vnd.gdl                                  gdl gsm win dor lmp rsm msm ism
+model/vnd.gs-gdl
+model/vnd.gtw                                  gtw
+model/vnd.moml+xml                             moml
+model/vnd.mts                                  mts
+model/vnd.opengex                              ogex
+model/vnd.parasolid.transmit.binary            x_b xmt_bin
+model/vnd.parasolid.transmit.text              x_t xmt_txt
+model/vnd.pytha.pyox                           pyox
+model/vnd.rosette.annotated-data-model
+model/vnd.sap.vds                              vds
+model/vnd.usda                                 usda
+model/vnd.usdz+zip                             usdz
+model/vnd.valve.source.compiled-map            bsp
+model/vnd.vtu                                  vtu
+model/vrml                                     wrl vrm vrml
+model/x3d+fastinfoset                          x3db
+model/x3d+xml                                  x3d x3dz
+model/x3d-vrml                                 x3dv x3dvz
+
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/example
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/multilingual
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/vnd.bint.med-plus                    bmed
+multipart/voice-message                                vpm
+multipart/x-mixed-replace
+
+text/1d-interleaved-parityfec
+text/cache-manifest                            appcache manifest
+text/calendar                                  ics ifb
+text/cql                                       CQL
+text/cql-extension
+text/cql-identifier
+text/css                                       css
+text/csv                                       csv
+text/csv-schema                                        csvs
+text/dns                                       soa zone
+text/encaprtp
+text/enriched
+text/example
+text/fhirpath
+text/flexfec
+text/fwdred
+text/gff3                                      gff3
+text/grammar-ref-list
+text/hl7v2
+text/html                                      html htm shtml
+text/javascript                                        es js mjs
+text/jcr-cnd                                   cnd
+text/markdown                                  md markdown
+text/mizar                                     miz
+text/n3                                                n3
+text/parameters
+text/parityfec
+text/plain                                     txt text pot brf srt
+text/provenance-notation                       provn
+text/prs.fallenstein.rst                       rst
+text/prs.lines.tag                             tag dsc
+text/prs.prop.logic
+text/raptorfec
+text/RED
+text/rfc822-headers
+text/rtf
+text/rtp-enc-aescm128
+text/rtploopback
+text/rtx
+text/SGML                                      sgml sgm
+text/shaclc                                    shaclc shc
+text/shex                                      shex
+text/spdx                                      spdx
+text/strings
+text/t140
+text/tab-separated-values                      tsv
+text/texmacs                                   tm
+text/troff                                     t tr roff
+text/turtle                                    ttl
+text/ulpfec
+text/uri-list                                  uris uri
+text/vcard                                     vcf vcard
+text/vnd.a                                     a
+text/vnd.abc                                   abc
+text/vnd.ascii-art                             ascii
+text/vnd.curl                                  curl
+text/vnd.debian.copyright                      copyright
+text/vnd.DMClientScript                                dms
+text/vnd.dvb.subtitle
+text/vnd.esmertec.theme-descriptor             jtd
+text/vnd.exchangeable                          VFK
+text/vnd.familysearch.gedcom                   ged
+text/vnd.ficlab.flt                            flt
+text/vnd.fly                                   fly
+text/vnd.fmi.flexstor                          flx
+text/vnd.gml
+text/vnd.graphviz                              gv dot
+text/vnd.hans                                  hans
+text/vnd.hgl                                   hgl
+text/vnd.in3d.3dml                             3dml 3dm
+text/vnd.in3d.spot                             spot spo
+text/vnd.IPTC.NewsML
+text/vnd.IPTC.NITF
+text/vnd.latex-z
+text/vnd.motorola.reflex
+text/vnd.ms-mediapackage                       mpf
+text/vnd.net2phone.commcenter.command          ccc
+text/vnd.radisys.msml-basic-layout
+text/vnd.senx.warpscript                       mc2
+text/vnd.sosi                                  sos
+text/vnd.sun.j2me.app-descriptor               jad
+text/vnd.trolltech.linguist                    ts
+text/vnd.wap.si                                        si
+text/vnd.wap.sl                                        sl
+text/vnd.wap.wml                               wml
+text/vnd.wap.wmlscript                         wmls
+text/vtt                                       vtt
+text/wgsl                                      wgsl
+text/x-bibtex                                  bib
+text/x-boo                                     boo
+text/x-c++hdr                                  h++ hpp hxx hh
+text/x-c++src                                  c++ cpp cxx cc
+text/x-chdr                                    h
+text/x-component                               htc
+text/x-csh                                     csh
+text/x-csrc                                    c
+text/x-diff                                    diff patch
+text/x-dsrc                                    d
+text/x-haskell                                 hs
+text/x-java                                    java
+text/x-lilypond                                        ly
+text/x-literate-haskell                                lhs
+text/x-moc                                     moc
+text/x-pascal                                  p pas
+text/x-pcs-gcd                                 gcd
+text/x-perl                                    pl pm
+text/x-python                                  py
+text/x-scala                                   scala
+text/x-setext                                  etx
+text/x-sfv                                     sfv
+text/x-sh                                      sh
+text/x-tcl                                     tcl tk
+text/x-tex                                     tex ltx sty cls
+text/x-vcalendar                               vcs
+text/xml
+text/xml-dtd
+text/xml-external-parsed-entity
+
+video/1d-interleaved-parityfec
+video/3gpp
+video/3gpp-tt
+video/3gpp2
+video/annodex                                  axv
+video/AV1
+video/BMPEG
+video/BT656
+video/CelB
+video/DV
+video/dv                                       dif dv
+video/encaprtp
+video/example
+video/FFV1
+video/flexfec
+video/fli                                      fli
+video/gl                                       gl
+video/H261
+video/H263
+video/H263-1998
+video/H263-2000
+video/H264
+video/H264-RCDO
+video/H264-SVC
+video/H265
+video/H266
+video/iso.segment                              m4s
+video/JPEG
+video/jpeg2000
+video/jxsv
+video/mj2                                      mj2 mjp2
+video/MP1S
+video/MP2P
+video/MP2T
+video/mp4                                      mp4 mpg4 m4v
+video/MP4V-ES
+video/mpeg                                     mpeg mpg mpe m1v m2v
+video/mpeg4-generic
+video/MPV
+video/nv
+video/ogg                                      ogv
+video/parityfec
+video/pointer
+video/quicktime                                        qt mov
+video/raptorfec
+video/raw
+video/rtp-enc-aescm128
+video/rtploopback
+video/rtx
+video/scip
+video/smpte291
+video/SMPTE292M
+video/ulpfec
+video/vc1
+video/vc2
+video/vnd.CCTV
+video/vnd.dece.hd                              uvh uvvh
+video/vnd.dece.mobile                          uvm uvvm
+video/vnd.dece.mp4                             uvu uvvu
+video/vnd.dece.pd                              uvp uvvp
+video/vnd.dece.sd                              uvs uvvs
+video/vnd.dece.video                           uvv uvvv
+video/vnd.directv.mpeg
+video/vnd.directv.mpeg-tts
+video/vnd.dlna.mpeg-tts
+video/vnd.dvb.file                             dvb
+video/vnd.fvt                                  fvt
+video/vnd.hns.video
+video/vnd.iptvforum.1dparityfec-1010
+video/vnd.iptvforum.1dparityfec-2005
+video/vnd.iptvforum.2dparityfec-1010
+video/vnd.iptvforum.2dparityfec-2005
+video/vnd.iptvforum.ttsavc
+video/vnd.iptvforum.ttsmpeg2
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.mpegurl                              mxu m4u
+video/vnd.ms-playready.media.pyv               pyv
+video/vnd.nokia.interleaved-multimedia         nim
+video/vnd.nokia.mp4vr
+video/vnd.nokia.videovoip
+video/vnd.objectvideo
+video/vnd.radgamettools.bink                   bik bk2
+video/vnd.radgamettools.smacker                        smk
+video/vnd.sealed.mpeg1                         smpg s11
+video/vnd.sealed.mpeg4                         s14
+video/vnd.sealed.swf                           sswf ssw
+video/vnd.sealedmedia.softseal.mov             smov smo s1q
+video/vnd.uvvu.mp4
+video/vnd.vivo                                 viv
+video/vnd.youtube.yt                           yt
+video/VP8
+video/VP9
+video/webm                                     webm
+video/x-flv                                    flv
+video/x-la-asf                                 lsf lsx
+video/x-matroska                               mpv mkv
+video/x-mng                                    mng
+video/x-ms-wm                                  wm
+video/x-ms-wmv                                 wmv
+video/x-ms-wmx                                 wmx
+video/x-ms-wvx                                 wvx
+video/x-msvideo                                        avi
+video/x-sgi-movie                              movie
diff --git a/mke2fs.conf b/mke2fs.conf
new file mode 100644 (file)
index 0000000..0568099
--- /dev/null
@@ -0,0 +1,45 @@
+[defaults]
+       base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr
+       default_mntopts = acl,user_xattr
+       enable_periodic_fsck = 0
+       blocksize = 4096
+       inode_size = 256
+       inode_ratio = 16384
+
+[fs_types]
+       ext3 = {
+               features = has_journal
+       }
+       ext4 = {
+               features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize
+       }
+       small = {
+               blocksize = 1024
+               inode_ratio = 4096
+       }
+       floppy = {
+               blocksize = 1024
+               inode_ratio = 8192
+       }
+       big = {
+               inode_ratio = 32768
+       }
+       huge = {
+               inode_ratio = 65536
+       }
+       news = {
+               inode_ratio = 4096
+       }
+       largefile = {
+               inode_ratio = 1048576
+               blocksize = -1
+       }
+       largefile4 = {
+               inode_ratio = 4194304
+               blocksize = -1
+       }
+       hurd = {
+            blocksize = 4096
+            inode_size = 128
+            warn_y2038_dates = 0
+       }
diff --git a/modprobe.d/intel-microcode-blacklist.conf b/modprobe.d/intel-microcode-blacklist.conf
new file mode 100644 (file)
index 0000000..1dc2c23
--- /dev/null
@@ -0,0 +1,3 @@
+# The microcode module attempts to apply a microcode update when
+# it autoloads.  This is not always safe, so we block it by default.
+blacklist microcode
diff --git a/modules b/modules
new file mode 100644 (file)
index 0000000..d8894c3
--- /dev/null
+++ b/modules
@@ -0,0 +1,6 @@
+# /etc/modules: kernel modules to load at boot time.
+#
+# This file contains the names of kernel modules that should be loaded
+# at boot time, one per line. Lines beginning with "#" are ignored.
+# Parameters can be specified after the module name.
+
diff --git a/modules-load.d/modules.conf b/modules-load.d/modules.conf
new file mode 120000 (symlink)
index 0000000..464b823
--- /dev/null
@@ -0,0 +1 @@
+../modules
\ No newline at end of file
diff --git a/motd b/motd
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/motd.orig b/motd.orig
new file mode 100644 (file)
index 0000000..0c87dd3
--- /dev/null
+++ b/motd.orig
@@ -0,0 +1,7 @@
+
+The programs included with the Debian GNU/Linux system are free software;
+the exact distribution terms for each program are described in the
+individual files in /usr/share/doc/*/copyright.
+
+Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
+permitted by applicable law.
diff --git a/motd.tail b/motd.tail
new file mode 100644 (file)
index 0000000..99c3e79
--- /dev/null
+++ b/motd.tail
@@ -0,0 +1,6 @@
+ ____             __  __       _ _ _____ ____           _               
+|  _ \  _____   _|  \/  | __ _(_) |  ___| __ ) _ __ ___| |__  _ __ ___  
+| | | |/ _ \ \ / / |\/| |/ _` | | | |_  |  _ \| '__/ _ \ '_ \| '_ ` _ \ 
+| |_| |  __/\ V /| |  | | (_| | | |  _| | |_) | | |  __/ | | | | | | | |
+|____/ \___| \_/ |_|  |_|\__,_|_|_|_|   |____/|_|  \___|_| |_|_| |_| |_|
+                                                                        
diff --git a/mysql/conf.d/mysql.cnf b/mysql/conf.d/mysql.cnf
new file mode 100644 (file)
index 0000000..22b052d
--- /dev/null
@@ -0,0 +1 @@
+[mysql]
diff --git a/mysql/conf.d/mysqldump.cnf b/mysql/conf.d/mysqldump.cnf
new file mode 100644 (file)
index 0000000..38310a9
--- /dev/null
@@ -0,0 +1,4 @@
+[mysqldump]
+quick
+quote-names
+max_allowed_packet     = 16M
diff --git a/mysql/debian-start b/mysql/debian-start
new file mode 100755 (executable)
index 0000000..986fa80
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/bash
+#
+# This script is executed by both SysV init /etc/init.d/mariadb and
+# systemd mariadb.service on every (re)start.
+#
+# Changes to this file will be preserved when updating the Debian package.
+#
+
+source /usr/share/mysql/debian-start.inc.sh
+
+# Read default/mysql first and then default/mariadb just like the init.d file does
+if [ -f /etc/default/mysql ]; then
+  . /etc/default/mysql
+fi
+
+if [ -f /etc/default/mariadb ]; then
+  . /etc/default/mariadb
+fi
+
+MYSQL="/usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf"
+MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
+# Don't run full mysql_upgrade on every server restart, use --version-check to do it only once
+MYUPGRADE="/usr/bin/mysql_upgrade --defaults-extra-file=/etc/mysql/debian.cnf --version-check --silent"
+MYCHECK="/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf"
+MYCHECK_SUBJECT="WARNING: mysqlcheck has found corrupt tables"
+MYCHECK_PARAMS="--all-databases --fast --silent"
+MYCHECK_RCPT="${MYCHECK_RCPT:-root}"
+
+## Checking for corrupt, not cleanly closed (only for MyISAM and Aria engines) and upgrade needing tables.
+
+# The following commands should be run when the server is up but in background
+# where they do not block the server start and in one shell instance so that
+# they run sequentially. They are supposed not to echo anything to stdout.
+# If you want to disable the check for crashed tables comment
+# "check_for_crashed_tables" out.
+# (There may be no output to stdout inside the background process!)
+
+# Need to ignore SIGHUP, as otherwise a SIGHUP can sometimes abort the upgrade
+# process in the middle.
+trap "" SIGHUP
+(
+  upgrade_system_tables_if_necessary;
+  check_root_accounts;
+  check_for_crashed_tables;
+) >&2 &
+
+exit 0
diff --git a/mysql/debian.cnf b/mysql/debian.cnf
new file mode 100644 (file)
index 0000000..951f87e
--- /dev/null
@@ -0,0 +1,14 @@
+# THIS FILE IS OBSOLETE. STOP USING IT IF POSSIBLE.
+# This file exists only for backwards compatibility for
+# tools that run '--defaults-file=/etc/mysql/debian.cnf'
+# and have root level access to the local filesystem.
+# With those permissions one can run 'mariadb' directly
+# anyway thanks to unix socket authentication and hence
+# this file is useless. See package README for more info.
+[client]
+host     = localhost
+user     = root
+[mysql_upgrade]
+host     = localhost
+user     = root
+# THIS FILE WILL BE REMOVED IN A FUTURE DEBIAN RELEASE.
diff --git a/mysql/mariadb.cnf b/mysql/mariadb.cnf
new file mode 100644 (file)
index 0000000..62b4ea8
--- /dev/null
@@ -0,0 +1,29 @@
+# The MariaDB configuration file
+#
+# The MariaDB/MySQL tools read configuration files in the following order:
+# 0. "/etc/mysql/my.cnf" symlinks to this file, reason why all the rest is read.
+# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
+# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
+# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
+# 4. "~/.my.cnf" to set user-specific options.
+#
+# If the same option is defined multiple times, the last one will apply.
+#
+# One can use all long options that the program supports.
+# Run program with --help to get a list of available options and with
+# --print-defaults to see which it would actually understand and use.
+#
+# If you are new to MariaDB, check out https://mariadb.com/kb/en/basic-mariadb-articles/
+
+#
+# This group is read both by the client and the server
+# use it for options that affect everything
+#
+[client-server]
+# Port or socket location where to connect
+# port = 3306
+socket = /run/mysqld/mysqld.sock
+
+# Import all .cnf files from configuration directory
+!includedir /etc/mysql/conf.d/
+!includedir /etc/mysql/mariadb.conf.d/
diff --git a/mysql/mariadb.conf.d/50-client.cnf b/mysql/mariadb.conf.d/50-client.cnf
new file mode 100644 (file)
index 0000000..1fd4685
--- /dev/null
@@ -0,0 +1,19 @@
+#
+# This group is read by the client library
+# Use it for options that affect all clients, but not the server
+#
+
+[client]
+# Example of client certificate usage
+#ssl-cert = /etc/mysql/client-cert.pem
+#ssl-key  = /etc/mysql/client-key.pem
+#
+# Allow only TLS encrypted connections
+#ssl-verify-server-cert = on
+
+# This group is *never* read by mysql client library, though this
+# /etc/mysql/mariadb.cnf.d/client.cnf file is not read by Oracle MySQL
+# client anyway.
+# If you use the same .cnf file for MySQL and MariaDB,
+# use it for MariaDB-only client options
+[client-mariadb]
diff --git a/mysql/mariadb.conf.d/50-mysql-clients.cnf b/mysql/mariadb.conf.d/50-mysql-clients.cnf
new file mode 100644 (file)
index 0000000..2f5a360
--- /dev/null
@@ -0,0 +1,22 @@
+#
+# These groups are read by MariaDB command-line tools
+# Use it for options that affect only one utility
+#
+
+[mysql]
+
+[mysql_upgrade]
+
+[mysqladmin]
+
+[mysqlbinlog]
+
+[mysqlcheck]
+
+[mysqldump]
+
+[mysqlimport]
+
+[mysqlshow]
+
+[mysqlslap]
diff --git a/mysql/mariadb.conf.d/50-mysqld_safe.cnf b/mysql/mariadb.conf.d/50-mysqld_safe.cnf
new file mode 100644 (file)
index 0000000..e24f96a
--- /dev/null
@@ -0,0 +1,28 @@
+# NOTE: THIS FILE IS READ ONLY BY THE TRADITIONAL SYSV INIT SCRIPT, NOT SYSTEMD.
+# MARIADB SYSTEMD DOES _NOT_ UTILIZE MYSQLD_SAFE NOR READ THIS FILE.
+#
+# For similar behavior, systemd users should create the following file:
+# /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
+#
+# To achieve the same result as the default 50-mysqld_safe.cnf, please create
+# /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
+# with the following contents:
+#
+# [Service]
+# User = mysql
+# StandardOutput = syslog
+# StandardError = syslog
+# SyslogFacility = daemon
+# SyslogLevel = err
+# SyslogIdentifier = mysqld
+#
+# For more information, please read https://mariadb.com/kb/en/mariadb/systemd/
+
+[mysqld_safe]
+# This will be passed to all mysql clients
+# It has been reported that passwords should be enclosed with ticks/quotes
+# especially if they contain "#" chars...
+
+nice = 0
+skip_log_error
+syslog
diff --git a/mysql/mariadb.conf.d/50-server.cnf b/mysql/mariadb.conf.d/50-server.cnf
new file mode 100644 (file)
index 0000000..3be6396
--- /dev/null
@@ -0,0 +1,124 @@
+#
+# These groups are read by MariaDB server.
+# Use it for options that only the server (but not clients) should see
+
+# this is read by the standalone daemon and embedded servers
+[server]
+
+# this is only for the mysqld standalone daemon
+[mysqld]
+
+#
+# * Basic Settings
+#
+
+#user                    = mysql
+pid-file                = /run/mysqld/mysqld.pid
+basedir                 = /usr
+#datadir                 = /var/lib/mysql
+#tmpdir                  = /tmp
+lc-messages            = en_US
+
+# Broken reverse DNS slows down connections considerably and name resolve is
+# safe to skip if there are no "host by domain name" access grants
+#skip-name-resolve
+
+# Instead of skip-networking the default is now to listen only on
+# localhost which is more compatible and is not less secure.
+bind-address            = 127.0.0.1
+
+#
+# * Fine Tuning
+#
+
+#key_buffer_size        = 128M
+#max_allowed_packet     = 1G
+#thread_stack           = 192K
+#thread_cache_size      = 8
+# This replaces the startup script and checks MyISAM tables if needed
+# the first time they are touched
+#myisam_recover_options = BACKUP
+#max_connections        = 100
+#table_cache            = 64
+query_cache_size        = 16M
+
+#
+# * Logging and Replication
+#
+
+# Note: The configured log file or its directory need to be created
+# and be writable by the mysql user, e.g.:
+# $ sudo mkdir -m 2750 /var/log/mysql
+# $ sudo chown mysql /var/log/mysql
+
+# Both location gets rotated by the cronjob.
+# Be aware that this log type is a performance killer.
+# Recommend only changing this at runtime for short testing periods if needed!
+general_log_file       = /var/log/mysql/mysql.log
+general_log            = 1
+
+# When running under systemd, error logging goes via stdout/stderr to journald
+# and when running legacy init error logging goes to syslog due to
+# /etc/mysql/conf.d/mariadb.conf.d/50-mysqld_safe.cnf
+# Enable this if you want to have error logging into a separate file
+log_error = /var/log/mysql/error.log
+
+# Enable the slow query log to see queries with especially long duration
+#log_slow_query_file    = /var/log/mysql/mariadb-slow.log
+#log_slow_query_time    = 10
+#log_slow_verbosity     = query_plan,explain
+#log-queries-not-using-indexes
+#log_slow_min_examined_row_limit = 1000
+
+# The following can be used as easy to replay backup logs or for replication.
+# note: if you are setting up a replication slave, see README.Debian about
+#       other settings you may need to change.
+#server-id              = 1
+#log_bin                = /var/log/mysql/mysql-bin.log
+expire_logs_days        = 10
+#max_binlog_size        = 100M
+
+#
+# * SSL/TLS
+#
+
+# For documentation, please read
+# https://mariadb.com/kb/en/securing-connections-for-client-and-server/
+#ssl-ca = /etc/mysql/cacert.pem
+#ssl-cert = /etc/mysql/server-cert.pem
+#ssl-key = /etc/mysql/server-key.pem
+#require-secure-transport = on
+
+#
+# * Character sets
+#
+
+# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
+# utf8 4-byte character set. See also client.cnf
+character-set-server  = utf8mb4
+collation-server      = utf8mb4_general_ci
+
+#
+# * InnoDB
+#
+
+# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
+# Read the manual for more InnoDB related options. There are many!
+# Most important is to give InnoDB 80 % of the system RAM for buffer use:
+# https://mariadb.com/kb/en/innodb-system-variables/#innodb_buffer_pool_size
+#innodb_buffer_pool_size = 8G
+
+# this is only for embedded server
+[embedded]
+
+# This group is only read by MariaDB servers, not by MySQL.
+# If you use the same .cnf file for MySQL and MariaDB,
+# you can put MariaDB-only options here
+[mariadb]
+
+# This group is only read by MariaDB-10.11 servers.
+# If you use the same .cnf file for MariaDB of different versions,
+# use this group for options that older servers don't understand
+[mariadb-10.11]
+
+# vim: filetype=dosini
diff --git a/mysql/mariadb.conf.d/60-galera.cnf b/mysql/mariadb.conf.d/60-galera.cnf
new file mode 100644 (file)
index 0000000..274891b
--- /dev/null
@@ -0,0 +1,21 @@
+#
+# * Galera-related settings
+#
+# See the examples of server wsrep.cnf files in /usr/share/mysql
+# and read more at https://mariadb.com/kb/en/galera-cluster/
+
+[galera]
+# Mandatory settings
+#wsrep_on                 = ON
+#wsrep_cluster_name       = "MariaDB Galera Cluster"
+#wsrep_cluster_address    = gcomm://
+#binlog_format            = row
+#default_storage_engine   = InnoDB
+#innodb_autoinc_lock_mode = 2
+
+# Allow server to accept connections on all interfaces.
+#bind-address = 0.0.0.0
+
+# Optional settings
+#wsrep_slave_threads = 1
+#innodb_flush_log_at_trx_commit = 0
diff --git a/mysql/mariadb.conf.d/provider_bzip2.cnf b/mysql/mariadb.conf.d/provider_bzip2.cnf
new file mode 100644 (file)
index 0000000..9b855e8
--- /dev/null
@@ -0,0 +1,3 @@
+[server]
+plugin_load_add=provider_bzip2
+provider_bzip2=force_plus_permanent
diff --git a/mysql/mariadb.conf.d/provider_lz4.cnf b/mysql/mariadb.conf.d/provider_lz4.cnf
new file mode 100644 (file)
index 0000000..0b8a3ec
--- /dev/null
@@ -0,0 +1,3 @@
+[server]
+plugin_load_add=provider_lz4
+provider_lz4=force_plus_permanent
diff --git a/mysql/mariadb.conf.d/provider_lzma.cnf b/mysql/mariadb.conf.d/provider_lzma.cnf
new file mode 100644 (file)
index 0000000..3a05a35
--- /dev/null
@@ -0,0 +1,3 @@
+[server]
+plugin_load_add=provider_lzma
+provider_lzma=force_plus_permanent
diff --git a/mysql/mariadb.conf.d/provider_lzo.cnf b/mysql/mariadb.conf.d/provider_lzo.cnf
new file mode 100644 (file)
index 0000000..6580198
--- /dev/null
@@ -0,0 +1,3 @@
+[server]
+plugin_load_add=provider_lzo
+provider_lzo=force_plus_permanent
diff --git a/mysql/mariadb.conf.d/provider_snappy.cnf b/mysql/mariadb.conf.d/provider_snappy.cnf
new file mode 100644 (file)
index 0000000..da78207
--- /dev/null
@@ -0,0 +1,3 @@
+[server]
+plugin_load_add=provider_snappy
+provider_snappy=force_plus_permanent
diff --git a/mysql/my.cnf b/mysql/my.cnf
new file mode 120000 (symlink)
index 0000000..18bea13
--- /dev/null
@@ -0,0 +1 @@
+/etc/alternatives/my.cnf
\ No newline at end of file
diff --git a/mysql/my.cnf.fallback b/mysql/my.cnf.fallback
new file mode 100644 (file)
index 0000000..92747d8
--- /dev/null
@@ -0,0 +1,23 @@
+#
+# The MySQL database server configuration file.
+#
+# You can copy this to one of:
+# - "/etc/mysql/my.cnf" to set global options,
+# - "~/.my.cnf" to set user-specific options.
+# 
+# One can use all long options that the program supports.
+# Run program with --help to get a list of available options and with
+# --print-defaults to see which it would actually understand and use.
+#
+# For explanations see
+# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
+
+# This will be passed to all mysql clients
+# It has been reported that passwords should be enclosed with ticks/quotes
+# escpecially if they contain "#" chars...
+# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
+
+# Here is entries for some specific programs
+# The following values assume you have at least 32M ram
+
+!includedir /etc/mysql/conf.d/
diff --git a/nala/nala.conf b/nala/nala.conf
new file mode 100644 (file)
index 0000000..0a2fd64
--- /dev/null
@@ -0,0 +1,65 @@
+## Configuration file for Nala
+[Nala]
+# Set to false to disable scrolling text
+scrolling_text = true
+
+# Set to true for a more condensed transaction summary
+simple_summary = false
+
+# Set to false to disable auto auto-removing
+auto_remove = true
+
+# Set to false to disable auto updating the package list
+# when running the upgrade command
+auto_update = true
+
+# Set to true Nala will list the upgradable packages automatically after `update`
+update_show_packages = false
+
+# Set to true and Nala will always assume yes
+assume_yes = false
+
+# Set to true for `MiB` false for `MB`
+filesize_binary = false
+
+# Set to true for `MegaBit` false for `MegaByte`
+transfer_speed_bits = false
+
+## Pre and Post install hooks allow you to run scripts or commands
+## Before or After an install, upgrade and remove
+[PreInstall]
+## The `hook` key will run after every transaction
+# hook = "/general/hook/pre-install.sh"
+
+## You can use a package name to run a specific hook
+## Only if that package has been altered
+# nala = "apt show nala"
+
+## Additionally you can use a wildcard*
+# "linux-image-5*-amd64" = "/hook/for/pre-kernel.sh"
+
+[PostInstall]
+# hook = "/general/hook/post-install.sh"
+# nala = "apt show nala"
+# "linux-image-5*-amd64" = "/hook/for/post-kernel.sh"
+
+## You can also setup Nala to pass arguments to your hook.
+## It can be done inline style like so
+# neofetch = { hook = "/home/username/neo-hook.sh", args = ["name", "version"] }
+
+## You can also use the longer form
+# [PostInstall.neofetch]
+# hook = "/home/volitank/neo-hook.sh"
+
+## Arguments are given to the hook in the order they exist in the array below
+# args = [
+#      "name", # The name of the package. Arch is appended for non-native arches
+#      "fullname", # Full name of the package "neofetch:amd64"
+#      "architecture", # This will be the arch of the candidate version or "None"
+#      "version", # This will be the version string of the candidate version or "None"
+
+## To pick information from a specific version you can use the following syntax
+#      "candidate.version", # Version string of the candidate version or "None"
+#      "installed.version", # Version string of the installed version or "None"
+#      "installed.architecture", # Arch of the installed version or "None"
+# ]
diff --git a/nanorc b/nanorc
new file mode 100644 (file)
index 0000000..67d2365
--- /dev/null
+++ b/nanorc
@@ -0,0 +1,331 @@
+## Sample initialization file for GNU nano.
+##
+## For the options that take parameters, the default value is shown.
+## Other options are unset by default.  To make sure that an option
+## is disabled, you can use "unset <option>".
+##
+## Characters that are special in a shell should not be escaped here.
+## Inside string parameters, quotes should not be escaped -- the last
+## double quote on the line will be seen as the closing quote.
+
+## Make 'nextword' (Ctrl+Right) and 'chopwordright' (Ctrl+Delete)
+## stop at word ends instead of at beginnings.
+# set afterends
+
+## When soft line wrapping is enabled, make it wrap lines at blanks
+## (tabs and spaces) instead of always at the edge of the screen.
+# set atblanks
+
+## Automatically indent a newly created line to the same number of
+## tabs and/or spaces as the preceding line -- or as the next line
+## if the preceding line is the beginning of a paragraph.
+# set autoindent
+
+## Back up files to the current filename plus a tilde.
+# set backup
+
+## The directory to put unique backup files in.
+# set backupdir ""
+
+## Use bold text instead of reverse video text.
+# set boldtext
+
+## Treat any line with leading whitespace as the beginning of a paragraph.
+# set bookstyle
+
+## The characters treated as closing brackets when justifying paragraphs.
+## This may not include any blank characters.  Only closing punctuation,
+## optionally followed by these closing brackets, can end sentences.
+# set brackets ""')>]}"
+
+## Automatically hard-wrap the current line when it becomes overlong.
+# set breaklonglines
+
+## Do case-sensitive searches by default.
+# set casesensitive
+
+## Constantly display the cursor position in the status bar or minibar.
+# set constantshow
+
+## Use cut-from-cursor-to-end-of-line by default.
+# set cutfromcursor
+
+## Do not use the line below the title bar, leaving it entirely blank.
+# set emptyline
+
+## Set the target width for automatic hard-wrapping and for justifying
+## paragraphs.  If the specified value is 0 or less, the wrapping point
+## will be the terminal's width minus this number.
+# set fill -8
+
+## Draw a vertical stripe at the given column, to help judge text width.
+## (This option does not have a default value.)
+# set guidestripe 75
+
+## Remember the used search/replace strings for the next session.
+set historylog
+
+## Display a "scrollbar" on the righthand side of the edit window.
+# set indicator
+
+## Scroll the buffer contents per half-screen instead of per line.
+# set jumpyscrolling
+
+## Display line numbers to the left (and any anchors in the margin).
+# set linenumbers
+
+## Enable vim-style lock-files.  This is just to let a vim user know you
+## are editing a file [s]he is trying to edit and vice versa.  There are
+## no plans to implement vim-style undo state in these files.
+set locking
+
+## Fall back to slow libmagic to try and determine an applicable syntax.
+# set magic
+
+## The opening and closing brackets that are found by a matching-bracket
+## search.  This may not contain blank characters.  The opening brackets
+## must come before the closing ones, and they must be in the same order.
+# set matchbrackets "(<[{)>]}"
+
+## Suppress the title bar and show the filename plus a cursor-position
+## percentage in the space of the status bar.
+# set minibar
+
+## Enable mouse support, if available for your system.  When enabled,
+## mouse clicks can be used to place the cursor, set the mark (with a
+## double click), and execute shortcuts.  The mouse will work in the
+## X Window System, and on the console when gpm is running.
+# set mouse
+
+## Switch on multiple file buffers (inserting a file will put it into
+## a separate buffer).
+# set multibuffer
+
+## Don't convert files from DOS/Mac format.
+# set noconvert
+
+## Don't display the helpful shortcut lists at the bottom of the screen.
+# set nohelp
+
+## Don't automatically add a newline when a file does not end with one.
+# set nonewlines
+
+## Set operating directory.  nano will not read or write files outside
+## this directory and its subdirectories.  Also, the current directory
+## is changed to here, so any files are inserted from this dir.  A blank
+## string means the operating-directory feature is turned off.
+# set operatingdir ""
+
+## Remember the cursor position in each file for the next editing session.
+# set positionlog
+
+## Preserve the XON and XOFF keys (^Q and ^S).
+# set preserve
+
+## The characters treated as closing punctuation when justifying paragraphs.
+## This may not contain blank characters.  Only these closing punctuations,
+## optionally followed by closing brackets, can end sentences.
+# set punct "!.?"
+
+## Make status-bar messages disappear after 1 keystroke instead of after 20.
+# set quickblank
+
+## The regular expression that matches quoting characters in email
+## or line-comment introducers in source code.  The default is:
+# set quotestr "^([    ]*([!#%:;>|}]|//))+"
+
+## Try to work around a mismatching terminfo terminal description.
+# set rawsequences
+
+## Fix Backspace/Delete confusion problem.
+# set rebinddelete
+
+## Do regular-expression searches by default.
+## Regular expressions are of the extended type (ERE).
+# set regexp
+
+## Save a changed buffer automatically on exit; don't prompt.
+# set saveonexit
+
+## Put the cursor on the highlighted item in the file browser, and
+## show the cursor in the help viewer; useful for people who use a
+## braille display and people with poor vision.
+# set showcursor
+
+## Make the Home key smarter: when Home is pressed anywhere but at the
+## very beginning of non-whitespace characters on a line, the cursor
+## will jump to that beginning (either forwards or backwards).  If the
+## cursor is already at that position, it will jump to the true start
+## of the line (the left edge).
+# set smarthome
+
+## Spread overlong lines over multiple screen lines.
+# set softwrap
+
+## Use this spelling checker instead of the internal one.  This option
+## does not have a default value.
+# set speller "aspell -x -c"
+
+## Use the end of the title bar for some state flags: I = auto-indenting,
+## M = mark, L = hard-wrapping long lines, R = recording, S = soft-wrapping.
+set stateflags
+
+## Use this tab size instead of the default; it must be greater than 0.
+# set tabsize 8
+
+## Convert each typed tab to the fitting number of spaces.
+# set tabstospaces
+
+## Snip whitespace at the end of lines when justifying or hard-wrapping.
+# set trimblanks
+
+## Save files by default in Unix format (also when they were DOS or Mac).
+# set unix
+
+## The two single-column characters used to display the first characters
+## of tabs and spaces.  187 in ISO 8859-1 (0000BB in Unicode) and 183 in
+## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
+## The default when in a UTF-8 locale:
+# set whitespace "»·"
+## The default otherwise:
+# set whitespace ">."
+
+## Detect word boundaries differently by treating punctuation
+## characters as parts of words.
+# set wordbounds
+
+## The characters (besides alphanumeric ones) that should be considered
+## as parts of words.  This option does not have a default value.  When
+## set, it overrides option 'set wordbounds'.
+# set wordchars "<_>."
+
+## Let an unmodified Backspace or Delete erase the marked region (instead
+## of a single character, and without affecting the cutbuffer).
+# set zap
+
+## Hide the bars plus help lines and use the whole terminal as edit area.
+# set zero
+
+
+## Paint the interface elements of nano.  These are examples; there are
+## no colors by default, except for errorcolor and spotlightcolor.
+# set titlecolor bold,white,blue
+# set promptcolor lightwhite,grey
+# set statuscolor bold,white,green
+# set errorcolor bold,white,red
+# set spotlightcolor black,lightyellow
+# set selectedcolor lightwhite,magenta
+# set stripecolor ,yellow
+# set scrollercolor cyan
+# set numbercolor cyan
+# set keycolor cyan
+# set functioncolor green
+
+## In root's .nanorc you might want to use:
+# set titlecolor bold,white,magenta
+# set promptcolor black,yellow
+# set statuscolor bold,white,magenta
+# set errorcolor bold,white,red
+# set spotlightcolor black,orange
+# set selectedcolor lightwhite,cyan
+# set stripecolor ,yellow
+# set scrollercolor magenta
+# set numbercolor magenta
+# set keycolor lightmagenta
+# set functioncolor magenta
+
+
+## === Syntax coloring ===
+## For all details, see 'man nanorc', section SYNTAX HIGHLIGHTING.
+
+## To include most of the existing syntax definitions, you can do:
+include "/usr/share/nano/*.nanorc"
+
+## Or you can select just the ones you need.  For example:
+# include "/usr/share/nano/html.nanorc"
+# include "/usr/share/nano/python.nanorc"
+# include "/usr/share/nano/sh.nanorc"
+
+## In /usr/share/nano/extra/ you can find some syntaxes that are
+## specific for certain distros or for some less common languages.
+
+
+## If <Tab> should always produce four spaces when editing a Python file,
+## independent of the settings of 'tabsize' and 'tabstospaces':
+# extendsyntax python tabgives "    "
+
+## If <Tab> should always produce an actual TAB when editing a Makefile:
+# extendsyntax makefile tabgives "     "
+
+
+## === Key bindings ===
+## For all details, see 'man nanorc', section REBINDING KEYS.
+
+## If you want to suspend nano with one keystroke (instead of with ^T^Z):
+# bind ^Z suspend main
+
+## The <Ctrl+Delete> keystroke deletes the word to the right of the cursor.
+## On some terminals the <Ctrl+Backspace> keystroke produces ^H, which is
+## the ASCII character for backspace, so it is bound by default to the
+## backspace function.  The <Backspace> key itself produces a different
+## keycode, which is hard-bound to the backspace function.  So, if you
+## normally use <Backspace> for backspacing and not ^H, you can make
+## <Ctrl+Backspace> delete the word to the left of the cursor with:
+# bind ^H chopwordleft main
+
+## For a more mnemonic Comment keystroke (overriding Cut-from-cursor):
+# bind M-K comment main
+
+## If you want ^L to just refresh the screen and not center the cursor:
+# bind ^L refresh main
+
+## When you sometimes type M-J instead of M-K, or M-T instead of M-R:
+# unbind M-J main
+# unbind M-T main
+## (Those functions are still accessible through ^T^J and ^T^V.)
+
+## For quickly uppercasing or lowercasing the word under or after the cursor.
+## (These effectively select a word and pipe it through a sed command.)
+#bind Sh-M-U "{nextword}{mark}{prevword}{execute}|sed 's/.*/\U&/'{enter}" main
+#bind Sh-M-L "{nextword}{mark}{prevword}{execute}|sed 's/.*/\L&/'{enter}" main
+
+## For copying a marked region to the system clipboard:
+# bind Sh-M-T "{execute}|xsel -ib{enter}{undo}" main
+
+## For snipping trailing blanks when you save a file:
+# bind ^S "{execute}| sed 's/\s\+$//' {enter}{savefile}" main
+
+## If you would like nano to have keybindings that are more "usual",
+## such as ^O for Open, ^F for Find, ^H for Help, and ^Q for Quit,
+## then uncomment these:
+#bind ^X cut main
+#bind ^C copy main
+#bind ^V paste all
+#bind ^Q exit all
+#bind ^S savefile main
+#bind ^W writeout main
+#bind ^O insert main
+#set multibuffer
+#bind ^H help all
+#bind ^H exit help
+#bind ^F whereis all
+#bind ^G findnext all
+#bind ^B wherewas all
+#bind ^D findprevious all
+#bind ^R replace main
+#unbind ^U all
+#unbind ^N main
+#unbind ^Y all
+#unbind M-J main
+#unbind M-T main
+#bind ^A mark main
+#bind ^P location main
+#bind ^T gotoline main
+#bind ^T gotodir browser
+#bind ^T cutrestoffile execute
+#bind ^L linter execute
+#bind ^E execute main
+#bind ^K "{mark}{end}{zap}" main
+#bind ^U "{mark}{home}{zap}" main
+#bind ^Z undo main
+#bind ^Y redo main
diff --git a/netconfig b/netconfig
new file mode 100644 (file)
index 0000000..effc67e
--- /dev/null
+++ b/netconfig
@@ -0,0 +1,19 @@
+#
+# The network configuration file. This file is currently only used in
+# conjunction with the TI-RPC code in the libtirpc library.
+#
+# Entries consist of:
+#
+#       <network_id> <semantics> <flags> <protofamily> <protoname> \
+#               <device> <nametoaddr_libs>
+#
+# The <device> and <nametoaddr_libs> fields are always empty in this
+# implementation.
+#
+udp        tpi_clts      v     inet     udp     -       -
+tcp        tpi_cots_ord  v     inet     tcp     -       -
+udp6       tpi_clts      v     inet6    udp     -       -
+tcp6       tpi_cots_ord  v     inet6    tcp     -       -
+rawip      tpi_raw       -     inet      -      -       -
+local      tpi_cots_ord  -     loopback  -      -       -
+unix       tpi_cots_ord  -     loopback  -      -       -
diff --git a/network/if-down.d/bind9 b/network/if-down.d/bind9
new file mode 100755 (executable)
index 0000000..d06965f
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# Called when an interfaces comes up or down
+# Written by LaMont Jones <lamont@debian.org>
+
+# kick named as needed
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/sbin ]; then
+       exit 0
+fi
+
+# if named is running, reconfig it.
+rndc reconfig >/dev/null 2>&1 &
+
+exit 0
diff --git a/network/if-down.d/postfix b/network/if-down.d/postfix
new file mode 100755 (executable)
index 0000000..a754fb3
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh -e
+
+# Called when an interface disconnects
+# Written by LaMont Jones <lamont@debian.org>
+
+# start or reload Postfix as needed
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/lib/postfix ]; then
+       exit 0
+fi
+
+RUNNING=""
+# If master is running, force a queue run to unload any mail that is
+# hanging around.  Yes, sendmail is a symlink...
+if [ -f /var/spool/postfix/pid/master.pid ]; then
+       pid=$(sed 's/ //g' /var/spool/postfix/pid/master.pid)
+       exe=$(ls -l /proc/$pid/exe 2>/dev/null | sed 's/.* //;s/.*\///')
+       if [ "X$exe" = "Xmaster" ]; then
+               RUNNING="y"
+       fi
+fi
+
+if [ ! -x /sbin/resolvconf ]; then
+       f=/etc/resolv.conf
+       if ! cp $f "$(postconf -hx queue_directory)$f" 2>/dev/null; then
+               exit 0
+       fi
+       if [ -n "$RUNNING" ]; then
+               service postfix reload >/dev/null 2>&1
+       fi
+fi
+
+exit 0
diff --git a/network/if-down.d/resolved b/network/if-down.d/resolved
new file mode 100755 (executable)
index 0000000..5c603d8
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# Script fragment to make ifupdown supply DNS information to resolved
+#
+
+case "$ADDRFAM" in
+    inet|inet6) : ;;
+    *) exit 0 ;;
+esac
+
+if systemctl is-enabled systemd-resolved > /dev/null 2>&1; then
+    interface=$IFACE
+    if [ ! "$interface" ]; then
+        return
+    fi
+    ifindex=$(cat "/sys/class/net/$interface/ifindex")
+    if [ ! "$ifindex" ]; then
+        return
+    fi
+    mystatedir=/run/network
+    statedir=/run/systemd/resolve/netif
+    rm -f "$mystatedir/isc-dhcp-v4-$interface" "$mystatedir/isc-dhcp-v6-$interface" "$mystatedir/ifupdown-inet-$interface" "$mystatedir/ifupdown-inet6-$interface" "$statedir/$ifindex"
+    if systemctl --quiet is-active systemd-resolved; then
+        resolvectl revert "$ifindex" || true
+    fi
+fi
diff --git a/network/if-post-down.d/chrony b/network/if-post-down.d/chrony
new file mode 100755 (executable)
index 0000000..4cc0796
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+[ -x /usr/sbin/chronyd ] || exit 0
+
+if [ -e /run/chrony/chronyd.pid ]; then
+    chronyc onoffline > /dev/null 2>&1
+fi
+
+exit 0
diff --git a/network/if-pre-up.d/ethtool b/network/if-pre-up.d/ethtool
new file mode 100755 (executable)
index 0000000..398adae
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+ETHTOOL=/sbin/ethtool
+
+test -x $ETHTOOL || exit 0
+
+[ "$IFACE" != "lo" ] || exit 0
+
+# Gather together the mixed bag of settings applied with -s/--change
+SETTINGS="\
+${IF_ETHERNET_PORT:+ port $IF_ETHERNET_PORT}\
+${IF_DRIVER_MESSAGE_LEVEL:+ msglvl $IF_DRIVER_MESSAGE_LEVEL}\
+"
+[ -z "$SETTINGS" ] || $ETHTOOL --change "$IFACE" $SETTINGS
diff --git a/network/if-up.d/bind9 b/network/if-up.d/bind9
new file mode 100755 (executable)
index 0000000..d06965f
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# Called when an interfaces comes up or down
+# Written by LaMont Jones <lamont@debian.org>
+
+# kick named as needed
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/sbin ]; then
+       exit 0
+fi
+
+# if named is running, reconfig it.
+rndc reconfig >/dev/null 2>&1 &
+
+exit 0
diff --git a/network/if-up.d/chrony b/network/if-up.d/chrony
new file mode 100755 (executable)
index 0000000..4cc0796
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+[ -x /usr/sbin/chronyd ] || exit 0
+
+if [ -e /run/chrony/chronyd.pid ]; then
+    chronyc onoffline > /dev/null 2>&1
+fi
+
+exit 0
diff --git a/network/if-up.d/ethtool b/network/if-up.d/ethtool
new file mode 100755 (executable)
index 0000000..1e9da0a
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+ETHTOOL=/sbin/ethtool
+
+test -x $ETHTOOL || exit 0
+
+[ "$IFACE" != "lo" ] || exit 0
+
+# Find settings with a given prefix and print them as they appeared in
+# /etc/network/interfaces, only with the prefix removed.
+# This actually prints each name and value on a separate line, but that
+# doesn't matter to the shell.
+gather_settings () {
+    set | sed -n "
+/^IF_$1[A-Za-z0-9_]*=/ {
+    h;                             # hold line
+    s/^IF_$1//; s/=.*//; s/_/-/g;  # get name without prefix
+    y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;  # lower-case
+    p;
+    g;                             # restore line
+    s/^[^=]*=//; s/^'\(.*\)'/\1/;  # get value
+    p;
+}"
+}
+
+# Gather together the mixed bag of settings applied with -s/--change
+SETTINGS="\
+${IF_LINK_SPEED:+ speed $IF_LINK_SPEED}\
+${IF_LINK_DUPLEX:+ duplex $IF_LINK_DUPLEX}\
+"
+
+# WOL has an optional pass-key
+set -- $IF_ETHERNET_WOL
+SETTINGS="$SETTINGS${1:+ wol $1}${2:+ sopass $2}"
+
+# Autonegotiation can be on|off or an advertising mask
+case "$IF_ETHERNET_AUTONEG" in
+'')    ;;
+on|off)        SETTINGS="$SETTINGS autoneg $IF_ETHERNET_AUTONEG" ;;
+*)     SETTINGS="$SETTINGS autoneg on advertise $IF_ETHERNET_AUTONEG" ;;
+esac
+
+[ -z "$SETTINGS" ] || $ETHTOOL --change "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings ETHERNET_PAUSE_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --pause "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings HARDWARE_IRQ_COALESCE_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --coalesce "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings HARDWARE_DMA_RING_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --set-ring "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings OFFLOAD_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --offload "$IFACE" $SETTINGS
diff --git a/network/if-up.d/postfix b/network/if-up.d/postfix
new file mode 100755 (executable)
index 0000000..200414e
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh -e
+# Called when a new interface comes up
+# Written by LaMont Jones <lamont@debian.org>
+
+# don't bother to restart postfix when lo is configured.
+if [ "$IFACE" = "lo" ]; then
+       exit 0
+fi
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/lib/postfix ]; then
+       exit 0
+fi
+
+RUNNING=""
+# If master is running, force a queue run to unload any mail that is
+# hanging around.  Yes, sendmail is a symlink...
+if [ -f /var/spool/postfix/pid/master.pid ]; then
+       pid=$(sed 's/ //g' /var/spool/postfix/pid/master.pid)
+       exe=$(ls -l /proc/$pid/exe 2>/dev/null | sed 's/.* //;s/.*\///')
+       if [ "X$exe" = "Xmaster" ]; then
+               RUNNING="y"
+       fi
+fi
+
+# start or reload Postfix as needed
+if [ ! -x /sbin/resolvconf ]; then
+       f=/etc/resolv.conf
+       if ! cp $f "$(postconf -hx queue_directory)$f" 2>/dev/null; then
+               exit 0
+       fi
+       if [ -n "$RUNNING" ]; then
+               service postfix reload >/dev/null 2>&1
+       fi
+fi
+
+# If master is running, force a queue run to unload any mail that is
+# hanging around.  Yes, sendmail is a symlink...
+if [ -n "$RUNNING" ]; then
+       if [ -x /usr/sbin/sendmail ]; then
+               # Don't propagate the exit code on failure; cf. #959864
+               /usr/sbin/sendmail -q >/dev/null 2>&1 || true
+       fi
+fi
diff --git a/network/if-up.d/resolved b/network/if-up.d/resolved
new file mode 100755 (executable)
index 0000000..cb331ca
--- /dev/null
@@ -0,0 +1,131 @@
+#!/bin/sh
+#
+# Script fragment to make ifupdown supply DNS information to resolved
+#
+
+case "$ADDRFAM" in
+    inet|inet6) : ;;
+    *) exit 0 ;;
+esac
+
+if systemctl is-enabled systemd-resolved > /dev/null 2>&1; then
+    interface=$IFACE
+    if [ ! "$interface" ]; then
+        return
+    fi
+    # TODO handle lo interface settings
+    if [ "$interface" = "lo" ]; then
+        return
+    fi
+    ifindex=$(cat "/sys/class/net/$interface/ifindex")
+    if [ ! "$ifindex" ]; then
+        return
+    fi
+    mystatedir=/run/network
+    mkdir -p $mystatedir
+
+    statedir=/run/systemd/resolve/netif
+    mkdir -p $statedir
+    chown systemd-resolve:systemd-resolve $statedir
+
+    oldstate="$(mktemp)"
+    # ignore errors due to nonexistent file
+    md5sum "$mystatedir/isc-dhcp-v4-$interface" "$mystatedir/isc-dhcp-v6-$interface" "$mystatedir/ifupdown-inet-$interface" "$mystatedir/ifupdown-inet6-$interface" > "$oldstate" 2> /dev/null || true
+
+    NEW_DEFAULT_ROUTE=$IF_DNS_DEFAULT_ROUTE
+    NEW_DNS=$(echo $IF_DNS_NAMESERVERS $IF_DNS_NAMESERVER)
+    NEW_DOMAINS=$(echo $IF_DNS_DOMAIN $IF_DNS_SEARCH)
+    DNS=DNS
+    DOMAINS=DOMAINS
+    if [ "$ADDRFAM" = "inet6" ]; then
+        DNS=DNS6
+        DOMAINS=DOMAINS6
+    fi
+    if  [ -n "$NEW_DNS" ]; then
+        cat <<EOF >"$mystatedir/ifupdown-${ADDRFAM}-$interface"
+"$DNS"="$NEW_DNS"
+EOF
+        if  [ -n "$NEW_DOMAINS" ]; then
+            cat <<EOF >>"$mystatedir/ifupdown-${ADDRFAM}-$interface"
+"$DOMAINS"="$NEW_DOMAINS"
+EOF
+        fi
+    fi
+    case "$NEW_DEFAULT_ROUTE" in
+        1|yes|true|on) NEW_DEFAULT_ROUTE=yes ;;
+        0|no|false|off) NEW_DEFAULT_ROUTE=no ;;
+        *) NEW_DEFAULT_ROUTE= ;;
+    esac
+    if [ -n "$NEW_DEFAULT_ROUTE" ]; then
+        cat <<EOF >>"$mystatedir/ifupdown-${ADDRFAM}-$interface"
+DEFAULT_ROUTE="$NEW_DEFAULT_ROUTE"
+EOF
+    fi
+
+    newstate="$(mktemp)"
+    # ignore errors due to nonexistent file
+    md5sum "$mystatedir/isc-dhcp-v4-$interface" "$mystatedir/isc-dhcp-v6-$interface" "$mystatedir/ifupdown-inet-$interface" "$mystatedir/ifupdown-inet6-$interface" > "$newstate" 2> /dev/null || true
+    if ! cmp --silent "$oldstate" "$newstate" 2>/dev/null; then
+        DNS DNS6 DOMAINS DOMAINS6 DEFAULT_ROUTE
+        # v4 first
+        if [ -e "$mystatedir/isc-dhcp-v4-$interface" ]; then
+            . "$mystatedir/isc-dhcp-v4-$interface"
+        fi
+        # v4 manual config overrides
+        if [ -e "$mystatedir/ifupdown-inet-$interface" ]; then
+            . "$mystatedir/ifupdown-inet-$interface"
+        fi
+        # v6 preffered
+        if [ -e "$mystatedir/isc-dhcp-v6-$interface" ]; then
+            . "$mystatedir/isc-dhcp-v6-$interface"
+        fi
+        # v6 manual config overrides
+        if [ -e "$mystatedir/ifupdown-inet6-$interface" ]; then
+            . "$mystatedir/ifupdown-inet6-$interface"
+        fi
+        resolvectl_failed=
+        if [ "$DNS" ] || [ "$DNS6" ] ; then
+            cat <<EOF >"$statedir/$ifindex"
+# This is private data. Do not parse.
+LLMNR=yes
+MDNS=no
+SERVERS=$(echo $DNS6 $DNS)
+DOMAINS=$(echo $DOMAINS6 $DOMAINS)
+EOF
+            if [ -n "$DEFAULT_ROUTE" ]; then
+                cat <<EOF >>"$statedir/$ifindex"
+DEFAULT_ROUTE=$DEFAULT_ROUTE
+EOF
+            fi
+            chown systemd-resolve:systemd-resolve "$statedir/$ifindex"
+            # In addition to creating the state file (needed if we run before
+            # resolved is started), also feed the information directly to
+            # resolved.
+            if systemctl --quiet is-active systemd-resolved; then
+                resolvectl llmnr "$ifindex" yes || resolvectl_failed=$?
+                resolvectl mdns "$ifindex" no || resolvectl_failed=$?
+                if [ "$DOMAINS6" ] || [ "$DOMAINS" ]; then
+                    resolvectl domain "$ifindex" $DOMAINS6 $DOMAINS || resolvectl_failed=$?
+                else
+                    resolvectl domain "$ifindex" "" || resolvectl_failed=$?
+                fi
+                resolvectl dns "$ifindex" $DNS6 $DNS || resolvectl_failed=$?
+                if [ "$DEFAULT_ROUTE" ]; then
+                    resolvectl default-route "$ifindex" $DEFAULT_ROUTE || resolvectl_failed=$?
+                fi
+            fi
+        else
+            rm -f "$statedir/$ifindex"
+            if systemctl --quiet is-active systemd-resolved; then
+                resolvectl revert "$ifindex" || resolvectl_failed=$?
+            fi
+        fi
+
+        # resolved was running, but without dbus, it means state files
+        # will not be read & resolvectl commands failed, restart it
+        if [ "$resolvectl_failed" ]; then
+                systemctl try-restart systemd-resolved
+        fi
+    fi
+    rm -f "$oldstate" "$newstate"
+fi
diff --git a/network/interfaces b/network/interfaces
new file mode 100644 (file)
index 0000000..e26bb56
--- /dev/null
@@ -0,0 +1,17 @@
+# This file describes the network interfaces available on your system
+# and how to activate them. For more information, see interfaces(5).
+
+source /etc/network/interfaces.d/*
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# The primary network interface
+allow-hotplug ens192
+iface ens192 inet static
+       address 217.66.51.28/24
+       gateway 217.66.51.1
+       # dns-* options are implemented by the resolvconf package, if installed
+       dns-nameservers 217.66.51.54 217.66.51.185 77.74.232.24
+       dns-search pixelpark.com
diff --git a/networks b/networks
new file mode 100644 (file)
index 0000000..9ee56f4
--- /dev/null
+++ b/networks
@@ -0,0 +1,4 @@
+default                0.0.0.0
+loopback       127.0.0.0
+link-local     169.254.0.0
+localnet       217.66.51.0
diff --git a/nftables.conf b/nftables.conf
new file mode 100755 (executable)
index 0000000..fb6f06d
--- /dev/null
@@ -0,0 +1,15 @@
+#!/usr/sbin/nft -f
+
+flush ruleset
+
+table inet filter {
+       chain input {
+               type filter hook input priority filter;
+       }
+       chain forward {
+               type filter hook forward priority filter;
+       }
+       chain output {
+               type filter hook output priority filter;
+       }
+}
diff --git a/nsswitch.conf b/nsswitch.conf
new file mode 100644 (file)
index 0000000..9d73547
--- /dev/null
@@ -0,0 +1,20 @@
+# /etc/nsswitch.conf
+#
+# Example configuration of GNU Name Service Switch functionality.
+# If you have the `glibc-doc-reference' and `info' packages installed, try:
+# `info libc "Name Service Switch"' for information about this file.
+
+passwd:         files systemd
+group:          files systemd
+shadow:         files systemd
+gshadow:        files systemd
+
+hosts:          files dns
+networks:       files
+
+protocols:      db files
+services:       db files
+ethers:         db files
+rpc:            db files
+
+netgroup:       nis
diff --git a/os-release b/os-release
new file mode 120000 (symlink)
index 0000000..c4c75b4
--- /dev/null
@@ -0,0 +1 @@
+../usr/lib/os-release
\ No newline at end of file
diff --git a/pam.conf b/pam.conf
new file mode 100644 (file)
index 0000000..3eeb72d
--- /dev/null
+++ b/pam.conf
@@ -0,0 +1,15 @@
+# ---------------------------------------------------------------------------#
+# /etc/pam.conf                                                                     #
+# ---------------------------------------------------------------------------#
+#
+# NOTE
+# ----
+#
+# NOTE: Most program use a file under the /etc/pam.d/ directory to setup their
+# PAM service modules. This file is used only if that directory does not exist.
+# ---------------------------------------------------------------------------#
+
+# Format:
+# serv.        module     ctrl       module [path]     ...[args..]                  #
+# name type       flag                                                      #
+
diff --git a/pam.d/atd b/pam.d/atd
new file mode 100644 (file)
index 0000000..3674c0a
--- /dev/null
+++ b/pam.d/atd
@@ -0,0 +1,10 @@
+#
+# The PAM configuration file for the at daemon
+#
+
+@include common-auth
+@include common-account
+session    required   pam_loginuid.so
+@include common-session-noninteractive
+session    required   pam_limits.so
+auth   required        pam_env.so user_readenv=1
diff --git a/pam.d/chfn b/pam.d/chfn
new file mode 100644 (file)
index 0000000..10fcf07
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# The PAM configuration file for the Shadow `chfn' service
+#
+
+# This allows root to change user infomation without being
+# prompted for a password
+auth           sufficient      pam_rootok.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+@include common-auth
+@include common-account
+@include common-session
+
+
diff --git a/pam.d/chpasswd b/pam.d/chpasswd
new file mode 100644 (file)
index 0000000..da2adcc
--- /dev/null
@@ -0,0 +1,5 @@
+# The PAM configuration file for the Shadow 'chpasswd' service
+#
+
+@include common-password
+
diff --git a/pam.d/chsh b/pam.d/chsh
new file mode 100644 (file)
index 0000000..7eb604d
--- /dev/null
@@ -0,0 +1,20 @@
+#
+# The PAM configuration file for the Shadow `chsh' service
+#
+
+# This will not allow a user to change their shell unless
+# their current one is listed in /etc/shells. This keeps
+# accounts with special shells from changing them.
+auth       required   pam_shells.so
+
+# This allows root to change user shell without being
+# prompted for a password
+auth           sufficient      pam_rootok.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+@include common-auth
+@include common-account
+@include common-session
+
diff --git a/pam.d/common-account b/pam.d/common-account
new file mode 100644 (file)
index 0000000..316b173
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# /etc/pam.d/common-account - authorization settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authorization modules that define
+# the central access policy for use on the system.  The default is to
+# only deny service to users whose accounts are expired in /etc/shadow.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules.  See
+# pam-auth-update(8) for details.
+#
+
+# here are the per-package modules (the "Primary" block)
+account        [success=1 new_authtok_reqd=done default=ignore]        pam_unix.so 
+# here's the fallback if no module succeeds
+account        requisite                       pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+account        required                        pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/pam.d/common-auth b/pam.d/common-auth
new file mode 100644 (file)
index 0000000..fd3591a
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# /etc/pam.d/common-auth - authentication settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authentication modules that define
+# the central authentication scheme for use on the system
+# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
+# traditional Unix authentication mechanisms.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules.  See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+auth   [success=1 default=ignore]      pam_unix.so nullok
+# here's the fallback if no module succeeds
+auth   requisite                       pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+auth   required                        pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/pam.d/common-password b/pam.d/common-password
new file mode 100644 (file)
index 0000000..6fa9346
--- /dev/null
@@ -0,0 +1,33 @@
+#
+# /etc/pam.d/common-password - password-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define the services to be
+# used to change user passwords.  The default is pam_unix.
+
+# Explanation of pam_unix options:
+# The "yescrypt" option enables
+#hashed passwords using the yescrypt algorithm, introduced in Debian
+#11.  Without this option, the default is Unix crypt.  Prior releases
+#used the option "sha512"; if a shadow password hash will be shared
+#between Debian 11 and older releases replace "yescrypt" with "sha512"
+#for compatibility .  The "obscure" option replaces the old
+#`OBSCURE_CHECKS_ENAB' option in login.defs.  See the pam_unix manpage
+#for other options.
+
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules.  See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+password       [success=1 default=ignore]      pam_unix.so obscure yescrypt
+# here's the fallback if no module succeeds
+password       requisite                       pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+password       required                        pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/pam.d/common-session b/pam.d/common-session
new file mode 100644 (file)
index 0000000..d956ef1
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# /etc/pam.d/common-session - session-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of interactive sessions.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules.  See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+session        [default=1]                     pam_permit.so
+# here's the fallback if no module succeeds
+session        requisite                       pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session        required                        pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+session        required        pam_unix.so 
+session        optional        pam_systemd.so 
+# end of pam-auth-update config
diff --git a/pam.d/common-session-noninteractive b/pam.d/common-session-noninteractive
new file mode 100644 (file)
index 0000000..c9144d5
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# /etc/pam.d/common-session-noninteractive - session-related modules
+# common to all non-interactive services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of all non-interactive sessions.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules.  See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+session        [default=1]                     pam_permit.so
+# here's the fallback if no module succeeds
+session        requisite                       pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session        required                        pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+session        required        pam_unix.so 
+# end of pam-auth-update config
diff --git a/pam.d/cron b/pam.d/cron
new file mode 100644 (file)
index 0000000..d6b06a5
--- /dev/null
@@ -0,0 +1,21 @@
+# The PAM configuration file for the cron daemon
+
+@include common-auth
+
+# Sets the loginuid process attribute
+session    required     pam_loginuid.so
+
+# Read environment variables from pam_env's default files, /etc/environment
+# and /etc/security/pam_env.conf.
+session       required   pam_env.so
+
+# In addition, read system locale information
+session       required   pam_env.so envfile=/etc/default/locale
+
+@include common-account
+@include common-session-noninteractive 
+
+# Sets up user limits, please define limits for cron tasks
+# through /etc/security/limits.conf
+session    required   pam_limits.so
+
diff --git a/pam.d/login b/pam.d/login
new file mode 100644 (file)
index 0000000..553145f
--- /dev/null
@@ -0,0 +1,100 @@
+#
+# The PAM configuration file for the Shadow `login' service
+#
+
+# Enforce a minimal delay in case of failure (in microseconds).
+# (Replaces the `FAIL_DELAY' setting from login.defs)
+# Note that other modules may require another minimal delay. (for example,
+# to disable any delay, you should add the nodelay option to pam_unix)
+auth       optional   pam_faildelay.so  delay=3000000
+
+# Outputs an issue file prior to each login prompt (Replaces the
+# ISSUE_FILE option from login.defs). Uncomment for use
+# auth       required   pam_issue.so issue=/etc/issue
+
+# Disallows other than root logins when /etc/nologin exists
+# (Replaces the `NOLOGINS_FILE' option from login.defs)
+auth       requisite  pam_nologin.so
+
+# SELinux needs to be the first session rule. This ensures that any
+# lingering context has been cleared. Without this it is possible
+# that a module could execute code in the wrong domain.
+# When the module is present, "required" would be sufficient (When SELinux
+# is disabled, this returns success.)
+session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
+
+# Sets the loginuid process attribute
+session    required     pam_loginuid.so
+
+# Prints the message of the day upon successful login.
+# (Replaces the `MOTD_FILE' option in login.defs)
+# This includes a dynamically generated part from /run/motd.dynamic
+# and a static (admin-editable) part from /etc/motd.
+session    optional   pam_motd.so motd=/run/motd.dynamic
+session    optional   pam_motd.so noupdate
+
+# SELinux needs to intervene at login time to ensure that the process
+# starts in the proper default security context. Only sessions which are
+# intended to run in the user's context should be run after this.
+# pam_selinux.so changes the SELinux context of the used TTY and configures
+# SELinux in order to transition to the user context with the next execve()
+# call.
+session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
+# When the module is present, "required" would be sufficient (When SELinux
+# is disabled, this returns success.)
+
+# This module parses environment configuration file(s)
+# and also allows you to use an extended config
+# file /etc/security/pam_env.conf.
+# 
+# parsing /etc/environment needs "readenv=1"
+session       required   pam_env.so readenv=1
+# locale variables are also kept into /etc/default/locale in etch
+# reading this file *in addition to /etc/environment* does not hurt
+session       required   pam_env.so readenv=1 envfile=/etc/default/locale
+
+# Standard Un*x authentication.
+@include common-auth
+
+# This allows certain extra groups to be granted to a user
+# based on things like time of day, tty, service, and user.
+# Please edit /etc/security/group.conf to fit your needs
+# (Replaces the `CONSOLE_GROUPS' option in login.defs)
+auth       optional   pam_group.so
+
+# Uncomment and edit /etc/security/time.conf if you need to set
+# time restraint on logins.
+# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
+# as well as /etc/porttime)
+# account    requisite  pam_time.so
+
+# Uncomment and edit /etc/security/access.conf if you need to
+# set access limits.
+# (Replaces /etc/login.access file)
+# account  required       pam_access.so
+
+# Sets up user limits according to /etc/security/limits.conf
+# (Replaces the use of /etc/limits in old login)
+session    required   pam_limits.so
+
+# Prints the last login info upon successful login
+# (Replaces the `LASTLOG_ENAB' option from login.defs)
+session    optional   pam_lastlog.so
+
+# Prints the status of the user's mailbox upon successful login
+# (Replaces the `MAIL_CHECK_ENAB' option from login.defs). 
+#
+# This also defines the MAIL environment variable
+# However, userdel also needs MAIL_DIR and MAIL_FILE variables
+# in /etc/login.defs to make sure that removing a user 
+# also removes the user's mail spool file.
+# See comments in /etc/login.defs
+session    optional   pam_mail.so standard
+
+# Create a new session keyring.
+session    optional   pam_keyinit.so force revoke
+
+# Standard Un*x account and session
+@include common-account
+@include common-session
+@include common-password
diff --git a/pam.d/newusers b/pam.d/newusers
new file mode 100644 (file)
index 0000000..552ca90
--- /dev/null
@@ -0,0 +1,5 @@
+# The PAM configuration file for the Shadow 'newusers' service
+#
+
+@include common-password
+
diff --git a/pam.d/other b/pam.d/other
new file mode 100644 (file)
index 0000000..59d776c
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# /etc/pam.d/other - specify the PAM fallback behaviour
+#
+# Note that this file is used for any unspecified service; for example
+#if /etc/pam.d/cron  specifies no session modules but cron calls
+#pam_open_session, the session module out of /etc/pam.d/other is
+#used.  If you really want nothing to happen then use pam_permit.so or
+#pam_deny.so as appropriate.
+
+# We fall back to the system default in /etc/pam.d/common-*
+# 
+
+@include common-auth
+@include common-account
+@include common-password
+@include common-session
diff --git a/pam.d/passwd b/pam.d/passwd
new file mode 100644 (file)
index 0000000..5872e7b
--- /dev/null
@@ -0,0 +1,6 @@
+#
+# The PAM configuration file for the Shadow `passwd' service
+#
+
+@include common-password
+
diff --git a/pam.d/runuser b/pam.d/runuser
new file mode 100644 (file)
index 0000000..37f0e84
--- /dev/null
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth           sufficient      pam_rootok.so
+session                optional        pam_keyinit.so revoke
+session                required        pam_limits.so
+session                required        pam_unix.so
diff --git a/pam.d/runuser-l b/pam.d/runuser-l
new file mode 100644 (file)
index 0000000..7a9a48c
--- /dev/null
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth           include         runuser
+session                optional        pam_keyinit.so force revoke
+-session       optional        pam_systemd.so
+session                include         runuser
diff --git a/pam.d/sshd b/pam.d/sshd
new file mode 100644 (file)
index 0000000..d70b384
--- /dev/null
@@ -0,0 +1,55 @@
+# PAM configuration for the Secure Shell service
+
+# Standard Un*x authentication.
+@include common-auth
+
+# Disallow non-root logins when /etc/nologin exists.
+account    required     pam_nologin.so
+
+# Uncomment and edit /etc/security/access.conf if you need to set complex
+# access limits that are hard to express in sshd_config.
+# account  required     pam_access.so
+
+# Standard Un*x authorization.
+@include common-account
+
+# SELinux needs to be the first session rule.  This ensures that any
+# lingering context has been cleared.  Without this it is possible that a
+# module could execute code in the wrong domain.
+session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so close
+
+# Set the loginuid process attribute.
+session    required     pam_loginuid.so
+
+# Create a new session keyring.
+session    optional     pam_keyinit.so force revoke
+
+# Standard Un*x session setup and teardown.
+@include common-session
+
+# Print the message of the day upon successful login.
+# This includes a dynamically generated part from /run/motd.dynamic
+# and a static (admin-editable) part from /etc/motd.
+session    optional     pam_motd.so  motd=/run/motd.dynamic
+session    optional     pam_motd.so noupdate
+
+# Print the status of the user's mailbox upon successful login.
+session    optional     pam_mail.so standard noenv # [1]
+
+# Set up user limits from /etc/security/limits.conf.
+session    required     pam_limits.so
+
+# Read environment variables from /etc/environment and
+# /etc/security/pam_env.conf.
+session    required     pam_env.so # [1]
+# In Debian 4.0 (etch), locale-related environment variables were moved to
+# /etc/default/locale, so read that as well.
+session    required     pam_env.so user_readenv=1 envfile=/etc/default/locale
+
+# SELinux needs to intervene at login time to ensure that the process starts
+# in the proper default security context.  Only sessions which are intended
+# to run in the user's context should be run after this.
+session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so open
+
+# Standard Un*x password updating.
+@include common-password
diff --git a/pam.d/su b/pam.d/su
new file mode 100644 (file)
index 0000000..6729598
--- /dev/null
+++ b/pam.d/su
@@ -0,0 +1,61 @@
+#
+# The PAM configuration file for the Shadow `su' service
+#
+
+# This allows root to su without passwords (normal operation)
+auth       sufficient pam_rootok.so
+
+# Uncomment this to force users to be a member of group wheel
+# before they can use `su'. You can also add "group=foo"
+# to the end of this line if you want to use a group other
+# than the default "wheel" (but this may have side effect of
+# denying "root" user, unless she's a member of "foo" or explicitly
+# permitted earlier by e.g. "sufficient pam_rootok.so").
+# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
+# auth       required   pam_wheel.so
+
+# Uncomment this if you want wheel members to be able to
+# su without a password.
+# auth       sufficient pam_wheel.so trust
+
+# Uncomment this if you want members of a specific group to not
+# be allowed to use su at all.
+# auth       required   pam_wheel.so deny group=nosu
+
+# Uncomment and edit /etc/security/time.conf if you need to set
+# time restrainst on su usage.
+# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
+# as well as /etc/porttime)
+# account    requisite  pam_time.so
+
+# This module parses environment configuration file(s)
+# and also allows you to use an extended config
+# file /etc/security/pam_env.conf.
+# 
+# parsing /etc/environment needs "readenv=1"
+session       required   pam_env.so readenv=1
+# locale variables are also kept into /etc/default/locale in etch
+# reading this file *in addition to /etc/environment* does not hurt
+session       required   pam_env.so readenv=1 envfile=/etc/default/locale
+
+# Defines the MAIL environment variable
+# However, userdel also needs MAIL_DIR and MAIL_FILE variables
+# in /etc/login.defs to make sure that removing a user 
+# also removes the user's mail spool file.
+# See comments in /etc/login.defs
+#
+# "nopen" stands to avoid reporting new mail when su'ing to another user
+session    optional   pam_mail.so nopen
+
+# Sets up user limits according to /etc/security/limits.conf
+# (Replaces the use of /etc/limits in old login)
+session    required   pam_limits.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+@include common-auth
+@include common-account
+@include common-session
+
+
diff --git a/pam.d/su-l b/pam.d/su-l
new file mode 100644 (file)
index 0000000..656a139
--- /dev/null
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth           include         su
+account                include         su
+password       include         su
+session                optional        pam_keyinit.so force revoke
+session                include         su
diff --git a/pam.d/sudo b/pam.d/sudo
new file mode 100644 (file)
index 0000000..96e8906
--- /dev/null
@@ -0,0 +1,8 @@
+#%PAM-1.0
+
+# Set up user limits from /etc/security/limits.conf.
+session    required   pam_limits.so
+
+@include common-auth
+@include common-account
+@include common-session-noninteractive
diff --git a/pam.d/sudo-i b/pam.d/sudo-i
new file mode 100644 (file)
index 0000000..d638522
--- /dev/null
@@ -0,0 +1,8 @@
+#%PAM-1.0
+
+# Set up user limits from /etc/security/limits.conf.
+session    required   pam_limits.so
+
+@include common-auth
+@include common-account
+@include common-session
diff --git a/pam.d/vmtoolsd b/pam.d/vmtoolsd
new file mode 100644 (file)
index 0000000..f7937c6
--- /dev/null
@@ -0,0 +1,7 @@
+# PAM configuration for vmtoolsd
+
+@include common-auth
+
+account     required    pam_shells.so
+@include common-account
+
diff --git a/passwd b/passwd
new file mode 100644 (file)
index 0000000..8434d52
--- /dev/null
+++ b/passwd
@@ -0,0 +1,29 @@
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
+_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin
+systemd-timesync:x:997:997:systemd Time Synchronization:/:/usr/sbin/nologin
+messagebus:x:100:108::/nonexistent:/usr/sbin/nologin
+sshd:x:101:65534::/run/sshd:/usr/sbin/nologin
+bind:x:102:110::/var/cache/bind:/usr/sbin/nologin
+frank:x:1017:100:Frank Brehm:/home/frank:/bin/bash
+_chrony:x:103:112:Chrony daemon,,,:/var/lib/chrony:/usr/sbin/nologin
+postfix:x:104:113::/var/spool/postfix:/usr/sbin/nologin
+valkey:x:105:115::/var/lib/valkey:/usr/sbin/nologin
+mysql:x:106:116:MySQL Server,,,:/nonexistent:/bin/false
+tcpdump:x:107:117::/nonexistent:/usr/sbin/nologin
diff --git a/passwd- b/passwd-
new file mode 100644 (file)
index 0000000..d32844e
--- /dev/null
+++ b/passwd-
@@ -0,0 +1,28 @@
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
+_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin
+systemd-timesync:x:997:997:systemd Time Synchronization:/:/usr/sbin/nologin
+messagebus:x:100:108::/nonexistent:/usr/sbin/nologin
+sshd:x:101:65534::/run/sshd:/usr/sbin/nologin
+bind:x:102:110::/var/cache/bind:/usr/sbin/nologin
+frank:x:1017:100:Frank Brehm:/home/frank:/bin/bash
+_chrony:x:103:112:Chrony daemon,,,:/var/lib/chrony:/usr/sbin/nologin
+postfix:x:104:113::/var/spool/postfix:/usr/sbin/nologin
+valkey:x:105:115::/var/lib/valkey:/usr/sbin/nologin
+mysql:x:106:116:MySQL Server,,,:/nonexistent:/bin/false
diff --git a/perl/Net/libnet.cfg b/perl/Net/libnet.cfg
new file mode 100644 (file)
index 0000000..2936582
--- /dev/null
@@ -0,0 +1,21 @@
+# Prior to perl 5.8.8-7, libnet was a seperate package with a debconf
+# configuration managed config in /etc/libnet.cfg which is used if
+# present.  Remove the following line, or the old file before making
+# changes below.
+return do '/etc/libnet.cfg' if -f '/etc/libnet.cfg';
+
+{
+       nntp_hosts => [ qw {} ],
+       snpp_hosts => [ qw {} ],
+       pop3_hosts => [ qw {} ],
+       smtp_hosts => [ qw {} ],
+       ph_hosts => [ qw {} ],
+       daytime_hosts => [ qw {} ],
+       time_hosts => [ qw {} ],
+       inet_domain => undef,
+       ftp_firewall => qq {},
+       ftp_firewall_type => qq {},
+       ftp_ext_passive => 0,
+       ftp_int_passive => 0,
+       local_netmask => qq {},
+}
diff --git a/postfix/access b/postfix/access
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/postfix/access.db b/postfix/access.db
new file mode 100644 (file)
index 0000000..a55f679
Binary files /dev/null and b/postfix/access.db differ
diff --git a/postfix/dynamicmaps.cf b/postfix/dynamicmaps.cf
new file mode 100644 (file)
index 0000000..3ec98b0
--- /dev/null
@@ -0,0 +1,4 @@
+# dict-type    so-name (pathname)      dict-function   mkmap-function
+cdb    postfix-cdb.so  dict_cdb_open   mkmap_cdb_open
+pcre   postfix-pcre.so dict_pcre_open
+sqlite postfix-sqlite.so       dict_sqlite_open        
diff --git a/postfix/main.cf b/postfix/main.cf
new file mode 100644 (file)
index 0000000..54f1f03
--- /dev/null
@@ -0,0 +1,48 @@
+# See /usr/share/postfix/main.cf.dist for a commented, more complete version
+
+
+# Debian specific:  Specifying a file name will cause the first
+# line of that file to be used as the name.  The Debian default
+# is /etc/mailname.
+#myorigin = /etc/mailname
+
+smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
+biff = no
+
+# appending .domain is the MUA's job.
+append_dot_mydomain = no
+
+# Uncomment the next line to generate "delayed mail" warnings
+#delay_warning_time = 4h
+
+readme_directory = no
+
+# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 3.6 on
+# fresh installs.
+compatibility_level = 3.6
+
+
+
+# TLS parameters
+smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
+smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
+smtpd_tls_security_level=may
+
+smtp_tls_CApath=/etc/ssl/certs
+smtp_tls_security_level=may
+smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
+
+
+smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
+myhostname = dev-mail-fbrehm.pixelpark.com
+alias_maps = hash:/etc/aliases
+alias_database = hash:/etc/aliases
+myorigin = /etc/mailname
+mydestination = $myhostname, dev-mail-fbrehm.pixelpark.com, localhost.pixelpark.com, , localhost
+relayhost = 
+mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+mailbox_command = procmail -a "$EXTENSION"
+mailbox_size_limit = 0
+recipient_delimiter = +
+inet_interfaces = all
+inet_protocols = all
diff --git a/postfix/main.cf.proto b/postfix/main.cf.proto
new file mode 100644 (file)
index 0000000..71097d1
--- /dev/null
@@ -0,0 +1,693 @@
+# Global Postfix configuration file. This file lists only a subset
+# of all parameters. For the syntax, and for a complete parameter
+# list, see the postconf(5) manual page (command: "man 5 postconf").
+#
+# TIP: use the command "postconf -n" to view main.cf parameter
+# settings, "postconf parametername" to view a specific parameter,
+# and "postconf 'parametername=value'" to set a specific parameter.
+#
+# For common configuration examples, see BASIC_CONFIGURATION_README
+# and STANDARD_CONFIGURATION_README. To find these documents, use
+# the command "postconf html_directory readme_directory", or go to
+# http://www.postfix.org/BASIC_CONFIGURATION_README.html etc.
+#
+# For best results, change no more than 2-3 parameters at a time,
+# and test if Postfix still works after every change.
+
+# COMPATIBILITY
+#
+# The compatibility_level determines what default settings Postfix
+# will use for main.cf and master.cf settings. These defaults will
+# change over time.
+#
+# To avoid breaking things, Postfix will use backwards-compatible
+# default settings and log where it uses those old backwards-compatible
+# default settings, until the system administrator has determined
+# if any backwards-compatible default settings need to be made
+# permanent in main.cf or master.cf.
+#
+# When this review is complete, update the compatibility_level setting
+# below as recommended in the RELEASE_NOTES file.
+#
+# The level below is what should be used with new (not upgrade) installs.
+#
+compatibility_level = 3.7
+
+# SOFT BOUNCE
+#
+# The soft_bounce parameter provides a limited safety net for
+# testing.  When soft_bounce is enabled, mail will remain queued that
+# would otherwise bounce. This parameter disables locally-generated
+# bounces, and prevents the SMTP server from rejecting mail permanently
+# (by changing 5xx replies into 4xx replies). However, soft_bounce
+# is no cure for address rewriting mistakes or mail routing mistakes.
+#
+#soft_bounce = no
+
+# LOCAL PATHNAME INFORMATION
+#
+# The queue_directory specifies the location of the Postfix queue.
+# This is also the root directory of Postfix daemons that run chrooted.
+# See the files in examples/chroot-setup for setting up Postfix chroot
+# environments on different UNIX systems.
+#
+#queue_directory = /var/spool/postfix
+
+# The command_directory parameter specifies the location of all
+# postXXX commands.
+#
+command_directory = /usr/sbin
+
+# The daemon_directory parameter specifies the location of all Postfix
+# daemon programs (i.e. programs listed in the master.cf file). This
+# directory must be owned by root.
+#
+daemon_directory = /usr/lib/postfix/sbin
+
+# The data_directory parameter specifies the location of Postfix-writable
+# data files (caches, random numbers). This directory must be owned
+# by the mail_owner account (see below).
+#
+data_directory = /var/lib/postfix
+
+# QUEUE AND PROCESS OWNERSHIP
+#
+# The mail_owner parameter specifies the owner of the Postfix queue
+# and of most Postfix daemon processes.  Specify the name of a user
+# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
+# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM.  In
+# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
+# USER.
+#
+#mail_owner = postfix
+
+# The default_privs parameter specifies the default rights used by
+# the local delivery agent for delivery to external file or command.
+# These rights are used in the absence of a recipient user context.
+# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
+#
+#default_privs = nobody
+
+# INTERNET HOST AND DOMAIN NAMES
+# 
+# The myhostname parameter specifies the internet hostname of this
+# mail system. The default is to use the fully-qualified domain name
+# from gethostname(). $myhostname is used as a default value for many
+# other configuration parameters.
+#
+#myhostname = host.domain.tld
+#myhostname = virtual.domain.tld
+
+# The mydomain parameter specifies the local internet domain name.
+# The default is to use $myhostname minus the first component.
+# $mydomain is used as a default value for many other configuration
+# parameters.
+#
+#mydomain = domain.tld
+
+# SENDING MAIL
+# 
+# The myorigin parameter specifies the domain that locally-posted
+# mail appears to come from. The default is to append $myhostname,
+# which is fine for small sites.  If you run a domain with multiple
+# machines, you should (1) change this to $mydomain and (2) set up
+# a domain-wide alias database that aliases each user to
+# user@that.users.mailhost.
+#
+# For the sake of consistency between sender and recipient addresses,
+# myorigin also specifies the default domain name that is appended
+# to recipient addresses that have no @domain part.
+#
+# Debian GNU/Linux specific:  Specifying a file name will cause the
+# first line of that file to be used as the name.  The Debian default
+# is /etc/mailname.
+#
+#myorigin = /etc/mailname
+#myorigin = $myhostname
+#myorigin = $mydomain
+
+# RECEIVING MAIL
+
+# The inet_interfaces parameter specifies the network interface
+# addresses that this mail system receives mail on.  By default,
+# the software claims all active interfaces on the machine. The
+# parameter also controls delivery of mail to user@[ip.address].
+#
+# See also the proxy_interfaces parameter, for network addresses that
+# are forwarded to us via a proxy or network address translator.
+#
+# Note: you need to stop/start Postfix when this parameter changes.
+#
+#inet_interfaces = all
+#inet_interfaces = $myhostname
+#inet_interfaces = $myhostname, localhost
+
+# The proxy_interfaces parameter specifies the network interface
+# addresses that this mail system receives mail on by way of a
+# proxy or network address translation unit. This setting extends
+# the address list specified with the inet_interfaces parameter.
+#
+# You must specify your proxy/NAT addresses when your system is a
+# backup MX host for other domains, otherwise mail delivery loops
+# will happen when the primary MX host is down.
+#
+#proxy_interfaces =
+#proxy_interfaces = 1.2.3.4
+
+# The mydestination parameter specifies the list of domains that this
+# machine considers itself the final destination for.
+#
+# These domains are routed to the delivery agent specified with the
+# local_transport parameter setting. By default, that is the UNIX
+# compatible delivery agent that lookups all recipients in /etc/passwd
+# and /etc/aliases or their equivalent.
+#
+# The default is $myhostname + localhost.$mydomain + localhost.  On
+# a mail domain gateway, you should also include $mydomain.
+#
+# Do not specify the names of virtual domains - those domains are
+# specified elsewhere (see VIRTUAL_README).
+#
+# Do not specify the names of domains that this machine is backup MX
+# host for. Specify those names via the relay_domains settings for
+# the SMTP server, or use permit_mx_backup if you are lazy (see
+# STANDARD_CONFIGURATION_README).
+#
+# The local machine is always the final destination for mail addressed
+# to user@[the.net.work.address] of an interface that the mail system
+# receives mail on (see the inet_interfaces parameter).
+#
+# Specify a list of host or domain names, /file/name or type:table
+# patterns, separated by commas and/or whitespace. A /file/name
+# pattern is replaced by its contents; a type:table is matched when
+# a name matches a lookup key (the right-hand side is ignored).
+# Continue long lines by starting the next line with whitespace.
+#
+# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
+#
+#mydestination = $myhostname, localhost.$mydomain, localhost
+#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
+#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
+#      mail.$mydomain, www.$mydomain, ftp.$mydomain
+
+# REJECTING MAIL FOR UNKNOWN LOCAL USERS
+#
+# The local_recipient_maps parameter specifies optional lookup tables
+# with all names or addresses of users that are local with respect
+# to $mydestination, $inet_interfaces or $proxy_interfaces.
+#
+# If this parameter is defined, then the SMTP server will reject
+# mail for unknown local users. This parameter is defined by default.
+#
+# To turn off local recipient checking in the SMTP server, specify
+# local_recipient_maps = (i.e. empty).
+#
+# The default setting assumes that you use the default Postfix local
+# delivery agent for local delivery. You need to update the
+# local_recipient_maps setting if:
+#
+# - You define $mydestination domain recipients in files other than
+#   /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
+#   For example, you define $mydestination domain recipients in    
+#   the $virtual_mailbox_maps files.
+#
+# - You redefine the local delivery agent in master.cf.
+#
+# - You redefine the "local_transport" setting in main.cf.
+#
+# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
+#   feature of the Postfix local delivery agent (see local(8)).
+#
+# Details are described in the LOCAL_RECIPIENT_README file.
+#
+# Beware: if the Postfix SMTP server runs chrooted, you probably have
+# to access the passwd file via the proxymap service, in order to
+# overcome chroot restrictions. The alternative, having a copy of
+# the system passwd file in the chroot jail is just not practical.
+#
+# The right-hand side of the lookup tables is conveniently ignored.
+# In the left-hand side, specify a bare username, an @domain.tld
+# wild-card, or specify a user@domain.tld address.
+# 
+#local_recipient_maps = unix:passwd.byname $alias_maps
+#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
+#local_recipient_maps =
+
+# The unknown_local_recipient_reject_code specifies the SMTP server
+# response code when a recipient domain matches $mydestination or
+# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
+# and the recipient address or address local-part is not found.
+#
+# The default setting is 550 (reject mail) but it is safer to start
+# with 450 (try again later) until you are certain that your
+# local_recipient_maps settings are OK.
+#
+unknown_local_recipient_reject_code = 550
+
+# TRUST AND RELAY CONTROL
+
+# The mynetworks parameter specifies the list of "trusted" SMTP
+# clients that have more privileges than "strangers".
+#
+# In particular, "trusted" SMTP clients are allowed to relay mail
+# through Postfix.  See the smtpd_recipient_restrictions parameter
+# in postconf(5).
+#
+# You can specify the list of "trusted" network addresses by hand
+# or you can let Postfix do it for you (which is the default).
+#
+# By default (mynetworks_style = host), Postfix "trusts" only
+# the local machine.
+# 
+# Specify "mynetworks_style = subnet" when Postfix should "trust"
+# SMTP clients in the same IP subnetworks as the local machine.
+# On Linux, this works correctly only with interfaces specified
+# with the "ifconfig" or "ip" command.
+#
+# Specify "mynetworks_style = class" when Postfix should "trust" SMTP
+# clients in the same IP class A/B/C networks as the local machine.
+# Don't do this with a dialup site - it would cause Postfix to "trust"
+# your entire provider's network.  Instead, specify an explicit
+# mynetworks list by hand, as described below.
+#  
+# Specify "mynetworks_style = host" when Postfix should "trust"
+# only the local machine.
+# 
+#mynetworks_style = class
+#mynetworks_style = subnet
+#mynetworks_style = host
+
+# Alternatively, you can specify the mynetworks list by hand, in
+# which case Postfix ignores the mynetworks_style setting.
+#
+# Specify an explicit list of network/netmask patterns, where the
+# mask specifies the number of bits in the network part of a host
+# address.
+#
+# You can also specify the absolute pathname of a pattern file instead
+# of listing the patterns here. Specify type:table for table-based lookups
+# (the value on the table right-hand side is not used).
+#
+#mynetworks = 168.100.3.0/28, 127.0.0.0/8
+#mynetworks = $config_directory/mynetworks
+#mynetworks = hash:/etc/postfix/network_table
+mynetworks = 127.0.0.0/8
+
+# The relay_domains parameter restricts what destinations this system will
+# relay mail to.  See the smtpd_relay_restrictions and
+# smtpd_recipient_restrictions descriptions in  postconf(5) for detailed
+# information.
+#
+# By default, Postfix relays mail
+# - from "trusted" clients (IP address matches $mynetworks, or is
+#   SASL authenticated) to any destination,
+# - from "untrusted" clients to destinations that match $relay_domains or
+#   subdomains thereof, except addresses with sender-specified routing.
+# The default relay_domains value is empty.
+# 
+# In addition to the above, the Postfix SMTP server by default accepts mail
+# that Postfix is final destination for:
+# - destinations that match $inet_interfaces or $proxy_interfaces,
+# - destinations that match $mydestination
+# - destinations that match $virtual_alias_domains,
+# - destinations that match $virtual_mailbox_domains.
+# These destinations do not need to be listed in $relay_domains.
+# 
+# Specify a list of hosts or domains, /file/name patterns or type:name
+# lookup tables, separated by commas and/or whitespace.  Continue
+# long lines by starting the next line with whitespace. A file name
+# is replaced by its contents; a type:name table is matched when a
+# (parent) domain appears as lookup key.
+#
+# NOTE: Postfix will not automatically forward mail for domains that
+# list this system as their primary or backup MX host. See the
+# permit_mx_backup restriction description in postconf(5).
+#
+#relay_domains = 
+
+# INTERNET OR INTRANET
+
+# The relayhost parameter specifies the default host to send mail to
+# when no entry is matched in the optional transport(5) table. When
+# no relayhost is given, mail is routed directly to the destination.
+#
+# On an intranet, specify the organizational domain name. If your
+# internal DNS uses no MX records, specify the name of the intranet
+# gateway host instead.
+#
+# In the case of SMTP, specify a domain, host, host:port, [host]:port,
+# [address] or [address]:port; the form [host] turns off MX lookups.
+#
+# If you're connected via UUCP, see also the default_transport parameter.
+#
+#relayhost = $mydomain
+#relayhost = [gateway.my.domain]
+#relayhost = [mailserver.isp.tld]
+#relayhost = uucphost
+#relayhost = [an.ip.add.ress]
+
+# REJECTING UNKNOWN RELAY USERS
+#
+# The relay_recipient_maps parameter specifies optional lookup tables
+# with all addresses in the domains that match $relay_domains.
+#
+# If this parameter is defined, then the SMTP server will reject
+# mail for unknown relay users. This feature is off by default.
+#
+# The right-hand side of the lookup tables is conveniently ignored.
+# In the left-hand side, specify an @domain.tld wild-card, or specify
+# a user@domain.tld address.
+# 
+#relay_recipient_maps = hash:/etc/postfix/relay_recipients
+
+# INPUT RATE CONTROL
+#
+# The in_flow_delay configuration parameter implements mail input
+# flow control. This feature is turned on by default, although it
+# still needs further development (it's disabled on SCO UNIX due
+# to an SCO bug).
+# 
+# A Postfix process will pause for $in_flow_delay seconds before
+# accepting a new message, when the message arrival rate exceeds the
+# message delivery rate. With the default 100 SMTP server process
+# limit, this limits the mail inflow to 100 messages a second more
+# than the number of messages delivered per second.
+# 
+# Specify 0 to disable the feature. Valid delays are 0..10.
+# 
+#in_flow_delay = 1s
+
+# ADDRESS REWRITING
+#
+# The ADDRESS_REWRITING_README document gives information about
+# address masquerading or other forms of address rewriting including
+# username->Firstname.Lastname mapping.
+
+# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
+#
+# The VIRTUAL_README document gives information about the many forms
+# of domain hosting that Postfix supports.
+
+# "USER HAS MOVED" BOUNCE MESSAGES
+#
+# See the discussion in the ADDRESS_REWRITING_README document.
+
+# TRANSPORT MAP
+#
+# See the discussion in the ADDRESS_REWRITING_README document.
+
+# ALIAS DATABASE
+#
+# The alias_maps parameter specifies the list of alias databases used
+# by the local delivery agent. The default list is system dependent.
+#
+# On systems with NIS, the default is to search the local alias
+# database, then the NIS alias database. See aliases(5) for syntax
+# details.
+# 
+# If you change the alias database, run "postalias /etc/aliases" (or
+# wherever your system stores the mail alias file), or simply run
+# "newaliases" to build the necessary DBM or DB file.
+#
+# It will take a minute or so before changes become visible.  Use
+# "postfix reload" to eliminate the delay.
+#
+#alias_maps = dbm:/etc/aliases
+#alias_maps = hash:/etc/aliases
+#alias_maps = hash:/etc/aliases, nis:mail.aliases
+#alias_maps = netinfo:/aliases
+
+# The alias_database parameter specifies the alias database(s) that
+# are built with "newaliases" or "sendmail -bi".  This is a separate
+# configuration parameter, because alias_maps (see above) may specify
+# tables that are not necessarily all under control by Postfix.
+#
+#alias_database = dbm:/etc/aliases
+#alias_database = dbm:/etc/mail/aliases
+#alias_database = hash:/etc/aliases
+#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
+
+# ADDRESS EXTENSIONS (e.g., user+foo)
+#
+# The recipient_delimiter parameter specifies the separator between
+# user names and address extensions (user+foo). See canonical(5),
+# local(8), relocated(5) and virtual(5) for the effects this has on
+# aliases, canonical, virtual, relocated and .forward file lookups.
+# Basically, the software tries user+foo and .forward+foo before
+# trying user and .forward.
+#
+#recipient_delimiter = +
+
+# DELIVERY TO MAILBOX
+#
+# The home_mailbox parameter specifies the optional pathname of a
+# mailbox file relative to a user's home directory. The default
+# mailbox file is /var/spool/mail/user or /var/mail/user.  Specify
+# "Maildir/" for qmail-style delivery (the / is required).
+#
+#home_mailbox = Mailbox
+#home_mailbox = Maildir/
+# The mail_spool_directory parameter specifies the directory where
+# UNIX-style mailboxes are kept. The default setting depends on the
+# system type.
+#
+#mail_spool_directory = /var/mail
+#mail_spool_directory = /var/spool/mail
+
+# The mailbox_command parameter specifies the optional external
+# command to use instead of mailbox delivery. The command is run as
+# the recipient with proper HOME, SHELL and LOGNAME environment settings.
+# Exception:  delivery for root is done as $default_user.
+#
+# Other environment variables of interest: USER (recipient username),
+# EXTENSION (address extension), DOMAIN (domain part of address),
+# and LOCAL (the address localpart).
+#
+# Unlike other Postfix configuration parameters, the mailbox_command
+# parameter is not subjected to $parameter substitutions. This is to
+# make it easier to specify shell syntax (see example below).
+#
+# Avoid shell meta characters because they will force Postfix to run
+# an expensive shell process. Procmail alone is expensive enough.
+#
+# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
+# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
+#
+#mailbox_command = /usr/bin/procmail
+#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
+
+# The mailbox_transport specifies the optional transport in master.cf
+# to use after processing aliases and .forward files. This parameter
+# has precedence over the mailbox_command, fallback_transport and
+# luser_relay parameters.
+#
+# Specify a string of the form transport:nexthop, where transport is
+# the name of a mail delivery transport defined in master.cf.  The
+# :nexthop part is optional. For more details see the sample transport
+# configuration file.
+#
+# NOTE: if you use this feature for accounts not in the UNIX password
+# file, then you must update the "local_recipient_maps" setting in
+# the main.cf file, otherwise the SMTP server will reject mail for    
+# non-UNIX accounts with "User unknown in local recipient table".
+#
+# Cyrus IMAP over LMTP. Specify ``lmtpunix      cmd="lmtpd"
+# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
+#mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
+#
+# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
+# subsequent line in master.cf.
+#mailbox_transport = cyrus
+
+# The fallback_transport specifies the optional transport in master.cf
+# to use for recipients that are not found in the UNIX passwd database.
+# This parameter has precedence over the luser_relay parameter.
+#
+# Specify a string of the form transport:nexthop, where transport is
+# the name of a mail delivery transport defined in master.cf.  The
+# :nexthop part is optional. For more details see the sample transport
+# configuration file.
+#
+# NOTE: if you use this feature for accounts not in the UNIX password
+# file, then you must update the "local_recipient_maps" setting in
+# the main.cf file, otherwise the SMTP server will reject mail for    
+# non-UNIX accounts with "User unknown in local recipient table".
+#
+#fallback_transport = lmtp:unix:/file/name
+#fallback_transport = cyrus
+#fallback_transport =
+
+# The luser_relay parameter specifies an optional destination address
+# for unknown recipients.  By default, mail for unknown@$mydestination,
+# unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
+# as undeliverable.
+#
+# The following expansions are done on luser_relay: $user (recipient
+# username), $shell (recipient shell), $home (recipient home directory),
+# $recipient (full recipient address), $extension (recipient address
+# extension), $domain (recipient domain), $local (entire recipient
+# localpart), $recipient_delimiter. Specify ${name?value} or
+# ${name:value} to expand value only when $name does (does not) exist.
+#
+# luser_relay works only for the default Postfix local delivery agent.
+#
+# NOTE: if you use this feature for accounts not in the UNIX password
+# file, then you must specify "local_recipient_maps =" (i.e. empty) in
+# the main.cf file, otherwise the SMTP server will reject mail for    
+# non-UNIX accounts with "User unknown in local recipient table".
+#
+#luser_relay = $user@other.host
+#luser_relay = $local@other.host
+#luser_relay = admin+$local
+  
+# JUNK MAIL CONTROLS
+# 
+# The controls listed here are only a very small subset. The file
+# SMTPD_ACCESS_README provides an overview.
+
+# The header_checks parameter specifies an optional table with patterns
+# that each logical message header is matched against, including
+# headers that span multiple physical lines.
+#
+# By default, these patterns also apply to MIME headers and to the
+# headers of attached messages. With older Postfix versions, MIME and
+# attached message headers were treated as body text.
+#
+# For details, see "man header_checks".
+#
+#header_checks = regexp:/etc/postfix/header_checks
+
+# FAST ETRN SERVICE
+#
+# Postfix maintains per-destination logfiles with information about
+# deferred mail, so that mail can be flushed quickly with the SMTP
+# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
+# See the ETRN_README document for a detailed description.
+# 
+# The fast_flush_domains parameter controls what destinations are
+# eligible for this service. By default, they are all domains that
+# this server is willing to relay mail to.
+# 
+#fast_flush_domains = $relay_domains
+
+# SHOW SOFTWARE VERSION OR NOT
+#
+# The smtpd_banner parameter specifies the text that follows the 220
+# code in the SMTP server's greeting banner. Some people like to see
+# the mail version advertised. By default, Postfix shows no version.
+#
+# You MUST specify $myhostname at the start of the text. That is an
+# RFC requirement. Postfix itself does not care.
+#
+#smtpd_banner = $myhostname ESMTP $mail_name
+#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
+smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
+
+
+# PARALLEL DELIVERY TO THE SAME DESTINATION
+#
+# How many parallel deliveries to the same user or domain? With local
+# delivery, it does not make sense to do massively parallel delivery
+# to the same user, because mailbox updates must happen sequentially,
+# and expensive pipelines in .forward files can cause disasters when
+# too many are run at the same time. With SMTP deliveries, 10
+# simultaneous connections to the same domain could be sufficient to
+# raise eyebrows.
+# 
+# Each message delivery transport has its XXX_destination_concurrency_limit
+# parameter.  The default is $default_destination_concurrency_limit for
+# most delivery transports. For the local delivery agent the default is 2.
+
+#local_destination_concurrency_limit = 2
+#default_destination_concurrency_limit = 20
+
+# DEBUGGING CONTROL
+#
+# The debug_peer_level parameter specifies the increment in verbose
+# logging level when an SMTP client or server host name or address
+# matches a pattern in the debug_peer_list parameter.
+#
+#debug_peer_level = 2
+
+# The debug_peer_list parameter specifies an optional list of domain
+# or network patterns, /file/name patterns or type:name tables. When
+# an SMTP client or server host name or address matches a pattern,
+# increase the verbose logging level by the amount specified in the
+# debug_peer_level parameter.
+#
+#debug_peer_list = 127.0.0.1
+#debug_peer_list = some.domain
+
+# The debugger_command specifies the external command that is executed
+# when a Postfix daemon program is run with the -D option.
+#
+# Use "command .. & sleep 5" so that the debugger can attach before
+# the process marches on. If you use an X-based debugger, be sure to
+# set up your XAUTHORITY environment variable before starting Postfix.
+#
+debugger_command =
+        PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
+        ddd $daemon_directory/$process_name $process_id & sleep 5
+
+# If you can't use X, use this to capture the call stack when a
+# daemon crashes. The result is in a file in the configuration
+# directory, and is named after the process name and the process ID.
+#
+# debugger_command =
+#      PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
+#      echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
+#      >$config_directory/$process_name.$process_id.log & sleep 5
+#
+# Another possibility is to run gdb under a detached screen session.
+# To attach to the screen session, su root and run "screen -r
+# <id_string>" where <id_string> uniquely matches one of the detached
+# sessions (from "screen -list").
+#
+# debugger_command =
+#      PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
+#      -dmS $process_name gdb $daemon_directory/$process_name
+#      $process_id & sleep 1
+
+# INSTALL-TIME CONFIGURATION INFORMATION
+#
+# The following parameters are used when installing a new Postfix version.
+# 
+# sendmail_path: The full pathname of the Postfix sendmail command.
+# This is the Sendmail-compatible mail posting interface.
+# 
+sendmail_path =
+
+# newaliases_path: The full pathname of the Postfix newaliases command.
+# This is the Sendmail-compatible command to build alias databases.
+#
+newaliases_path =
+
+# mailq_path: The full pathname of the Postfix mailq command.  This
+# is the Sendmail-compatible mail queue listing command.
+# 
+mailq_path =
+
+# setgid_group: The group for mail submission and queue management
+# commands.  This must be a group name with a numerical group ID that
+# is not shared with other accounts, not even with the Postfix account.
+#
+setgid_group =
+
+# html_directory: The location of the Postfix HTML documentation.
+#
+html_directory =
+
+# manpage_directory: The location of the Postfix on-line manual pages.
+#
+manpage_directory =
+
+# sample_directory: The location of the Postfix sample configuration files.
+# This parameter is obsolete as of Postfix 2.1.
+#
+sample_directory =
+
+# readme_directory: The location of the Postfix README files.
+#
+readme_directory =
+inet_protocols = ipv4
diff --git a/postfix/makedefs.out b/postfix/makedefs.out
new file mode 120000 (symlink)
index 0000000..c8ae63e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/postfix/makedefs.out
\ No newline at end of file
diff --git a/postfix/master.cf b/postfix/master.cf
new file mode 100644 (file)
index 0000000..fd0d581
--- /dev/null
@@ -0,0 +1,137 @@
+#
+# Postfix master process configuration file.  For details on the format
+# of the file, see the master(5) manual page (command: "man 5 master" or
+# on-line: http://www.postfix.org/master.5.html).
+#
+# Do not forget to execute "postfix reload" after editing this file.
+#
+# ==========================================================================
+# service type  private unpriv  chroot  wakeup  maxproc command + args
+#               (yes)   (yes)   (no)    (never) (100)
+# ==========================================================================
+smtp      inet  n       -       y       -       -       smtpd
+#smtp      inet  n       -       y       -       1       postscreen
+#smtpd     pass  -       -       y       -       -       smtpd
+#dnsblog   unix  -       -       y       -       0       dnsblog
+#tlsproxy  unix  -       -       y       -       0       tlsproxy
+# Choose one: enable submission for loopback clients only, or for any client.
+#127.0.0.1:submission inet n -   y       -       -       smtpd
+#submission inet n       -       y       -       -       smtpd
+#  -o syslog_name=postfix/submission
+#  -o smtpd_tls_security_level=encrypt
+#  -o smtpd_sasl_auth_enable=yes
+#  -o smtpd_tls_auth_only=yes
+#  -o smtpd_reject_unlisted_recipient=no
+#     Instead of specifying complex smtpd_<xxx>_restrictions here,
+#     specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
+#     here, and specify mua_<xxx>_restrictions in main.cf (where
+#     "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
+#  -o smtpd_client_restrictions=
+#  -o smtpd_helo_restrictions=
+#  -o smtpd_sender_restrictions=
+#  -o smtpd_relay_restrictions=
+#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
+#  -o milter_macro_daemon_name=ORIGINATING
+# Choose one: enable submissions for loopback clients only, or for any client.
+#127.0.0.1:submissions inet n  -       y       -       -       smtpd
+#submissions     inet  n       -       y       -       -       smtpd
+#  -o syslog_name=postfix/submissions
+#  -o smtpd_tls_wrappermode=yes
+#  -o smtpd_sasl_auth_enable=yes
+#  -o smtpd_reject_unlisted_recipient=no
+#     Instead of specifying complex smtpd_<xxx>_restrictions here,
+#     specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
+#     here, and specify mua_<xxx>_restrictions in main.cf (where
+#     "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
+#  -o smtpd_client_restrictions=
+#  -o smtpd_helo_restrictions=
+#  -o smtpd_sender_restrictions=
+#  -o smtpd_relay_restrictions=
+#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
+#  -o milter_macro_daemon_name=ORIGINATING
+#628       inet  n       -       y       -       -       qmqpd
+pickup    unix  n       -       y       60      1       pickup
+cleanup   unix  n       -       y       -       0       cleanup
+qmgr      unix  n       -       n       300     1       qmgr
+#qmgr     unix  n       -       n       300     1       oqmgr
+tlsmgr    unix  -       -       y       1000?   1       tlsmgr
+rewrite   unix  -       -       y       -       -       trivial-rewrite
+bounce    unix  -       -       y       -       0       bounce
+defer     unix  -       -       y       -       0       bounce
+trace     unix  -       -       y       -       0       bounce
+verify    unix  -       -       y       -       1       verify
+flush     unix  n       -       y       1000?   0       flush
+proxymap  unix  -       -       n       -       -       proxymap
+proxywrite unix -       -       n       -       1       proxymap
+smtp      unix  -       -       y       -       -       smtp
+relay     unix  -       -       y       -       -       smtp
+        -o syslog_name=postfix/$service_name
+#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
+showq     unix  n       -       y       -       -       showq
+error     unix  -       -       y       -       -       error
+retry     unix  -       -       y       -       -       error
+discard   unix  -       -       y       -       -       discard
+local     unix  -       n       n       -       -       local
+virtual   unix  -       n       n       -       -       virtual
+lmtp      unix  -       -       y       -       -       lmtp
+anvil     unix  -       -       y       -       1       anvil
+scache    unix  -       -       y       -       1       scache
+postlog   unix-dgram n  -       n       -       1       postlogd
+#
+# ====================================================================
+# Interfaces to non-Postfix software. Be sure to examine the manual
+# pages of the non-Postfix software to find out what options it wants.
+#
+# Many of the following services use the Postfix pipe(8) delivery
+# agent.  See the pipe(8) man page for information about ${recipient}
+# and other message envelope options.
+# ====================================================================
+#
+# maildrop. See the Postfix MAILDROP_README file for details.
+# Also specify in main.cf: maildrop_destination_recipient_limit=1
+#
+maildrop  unix  -       n       n       -       -       pipe
+  flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
+#
+# ====================================================================
+#
+# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
+#
+# Specify in cyrus.conf:
+#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
+#
+# Specify in main.cf one or more of the following:
+#  mailbox_transport = lmtp:inet:localhost
+#  virtual_transport = lmtp:inet:localhost
+#
+# ====================================================================
+#
+# Cyrus 2.1.5 (Amos Gouaux)
+# Also specify in main.cf: cyrus_destination_recipient_limit=1
+#
+#cyrus     unix  -       n       n       -       -       pipe
+#  flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
+#
+# ====================================================================
+# Old example of delivery via Cyrus.
+#
+#old-cyrus unix  -       n       n       -       -       pipe
+#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
+#
+# ====================================================================
+#
+# See the Postfix UUCP_README file for configuration details.
+#
+uucp      unix  -       n       n       -       -       pipe
+  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
+#
+# Other external delivery methods.
+#
+ifmail    unix  -       n       n       -       -       pipe
+  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
+bsmtp     unix  -       n       n       -       -       pipe
+  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
+scalemail-backend unix -       n       n       -       2       pipe
+  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
+mailman   unix  -       n       n       -       -       pipe
+  flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
diff --git a/postfix/master.cf.proto b/postfix/master.cf.proto
new file mode 100644 (file)
index 0000000..fd0d581
--- /dev/null
@@ -0,0 +1,137 @@
+#
+# Postfix master process configuration file.  For details on the format
+# of the file, see the master(5) manual page (command: "man 5 master" or
+# on-line: http://www.postfix.org/master.5.html).
+#
+# Do not forget to execute "postfix reload" after editing this file.
+#
+# ==========================================================================
+# service type  private unpriv  chroot  wakeup  maxproc command + args
+#               (yes)   (yes)   (no)    (never) (100)
+# ==========================================================================
+smtp      inet  n       -       y       -       -       smtpd
+#smtp      inet  n       -       y       -       1       postscreen
+#smtpd     pass  -       -       y       -       -       smtpd
+#dnsblog   unix  -       -       y       -       0       dnsblog
+#tlsproxy  unix  -       -       y       -       0       tlsproxy
+# Choose one: enable submission for loopback clients only, or for any client.
+#127.0.0.1:submission inet n -   y       -       -       smtpd
+#submission inet n       -       y       -       -       smtpd
+#  -o syslog_name=postfix/submission
+#  -o smtpd_tls_security_level=encrypt
+#  -o smtpd_sasl_auth_enable=yes
+#  -o smtpd_tls_auth_only=yes
+#  -o smtpd_reject_unlisted_recipient=no
+#     Instead of specifying complex smtpd_<xxx>_restrictions here,
+#     specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
+#     here, and specify mua_<xxx>_restrictions in main.cf (where
+#     "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
+#  -o smtpd_client_restrictions=
+#  -o smtpd_helo_restrictions=
+#  -o smtpd_sender_restrictions=
+#  -o smtpd_relay_restrictions=
+#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
+#  -o milter_macro_daemon_name=ORIGINATING
+# Choose one: enable submissions for loopback clients only, or for any client.
+#127.0.0.1:submissions inet n  -       y       -       -       smtpd
+#submissions     inet  n       -       y       -       -       smtpd
+#  -o syslog_name=postfix/submissions
+#  -o smtpd_tls_wrappermode=yes
+#  -o smtpd_sasl_auth_enable=yes
+#  -o smtpd_reject_unlisted_recipient=no
+#     Instead of specifying complex smtpd_<xxx>_restrictions here,
+#     specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
+#     here, and specify mua_<xxx>_restrictions in main.cf (where
+#     "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
+#  -o smtpd_client_restrictions=
+#  -o smtpd_helo_restrictions=
+#  -o smtpd_sender_restrictions=
+#  -o smtpd_relay_restrictions=
+#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
+#  -o milter_macro_daemon_name=ORIGINATING
+#628       inet  n       -       y       -       -       qmqpd
+pickup    unix  n       -       y       60      1       pickup
+cleanup   unix  n       -       y       -       0       cleanup
+qmgr      unix  n       -       n       300     1       qmgr
+#qmgr     unix  n       -       n       300     1       oqmgr
+tlsmgr    unix  -       -       y       1000?   1       tlsmgr
+rewrite   unix  -       -       y       -       -       trivial-rewrite
+bounce    unix  -       -       y       -       0       bounce
+defer     unix  -       -       y       -       0       bounce
+trace     unix  -       -       y       -       0       bounce
+verify    unix  -       -       y       -       1       verify
+flush     unix  n       -       y       1000?   0       flush
+proxymap  unix  -       -       n       -       -       proxymap
+proxywrite unix -       -       n       -       1       proxymap
+smtp      unix  -       -       y       -       -       smtp
+relay     unix  -       -       y       -       -       smtp
+        -o syslog_name=postfix/$service_name
+#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
+showq     unix  n       -       y       -       -       showq
+error     unix  -       -       y       -       -       error
+retry     unix  -       -       y       -       -       error
+discard   unix  -       -       y       -       -       discard
+local     unix  -       n       n       -       -       local
+virtual   unix  -       n       n       -       -       virtual
+lmtp      unix  -       -       y       -       -       lmtp
+anvil     unix  -       -       y       -       1       anvil
+scache    unix  -       -       y       -       1       scache
+postlog   unix-dgram n  -       n       -       1       postlogd
+#
+# ====================================================================
+# Interfaces to non-Postfix software. Be sure to examine the manual
+# pages of the non-Postfix software to find out what options it wants.
+#
+# Many of the following services use the Postfix pipe(8) delivery
+# agent.  See the pipe(8) man page for information about ${recipient}
+# and other message envelope options.
+# ====================================================================
+#
+# maildrop. See the Postfix MAILDROP_README file for details.
+# Also specify in main.cf: maildrop_destination_recipient_limit=1
+#
+maildrop  unix  -       n       n       -       -       pipe
+  flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
+#
+# ====================================================================
+#
+# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
+#
+# Specify in cyrus.conf:
+#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
+#
+# Specify in main.cf one or more of the following:
+#  mailbox_transport = lmtp:inet:localhost
+#  virtual_transport = lmtp:inet:localhost
+#
+# ====================================================================
+#
+# Cyrus 2.1.5 (Amos Gouaux)
+# Also specify in main.cf: cyrus_destination_recipient_limit=1
+#
+#cyrus     unix  -       n       n       -       -       pipe
+#  flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
+#
+# ====================================================================
+# Old example of delivery via Cyrus.
+#
+#old-cyrus unix  -       n       n       -       -       pipe
+#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
+#
+# ====================================================================
+#
+# See the Postfix UUCP_README file for configuration details.
+#
+uucp      unix  -       n       n       -       -       pipe
+  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
+#
+# Other external delivery methods.
+#
+ifmail    unix  -       n       n       -       -       pipe
+  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
+bsmtp     unix  -       n       n       -       -       pipe
+  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
+scalemail-backend unix -       n       n       -       2       pipe
+  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
+mailman   unix  -       n       n       -       -       pipe
+  flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
diff --git a/postfix/post-install b/postfix/post-install
new file mode 100755 (executable)
index 0000000..2a7d99b
--- /dev/null
@@ -0,0 +1,925 @@
+#!/bin/sh
+
+# To view the formatted manual page of this file, type:
+#      POSTFIXSOURCE/mantools/srctoman - post-install | nroff -man
+
+#++
+# NAME
+#      post-install
+# SUMMARY
+#      Postfix post-installation script
+# SYNOPSIS
+#      postfix post-install [name=value] command ...
+# DESCRIPTION
+#      The post-install script performs the finishing touch of a Postfix
+#      installation, after the executable programs and configuration
+#      files are installed. Usage is one of the following:
+# .IP o
+#      While installing Postfix from source code on the local machine, the
+#      script is run by the postfix-install script to update selected file
+#      or directory permissions and to update Postfix configuration files.
+# .IP o
+#      While installing Postfix from a pre-built package, the script is run
+#      by the package management procedure to set all file or directory
+#      permissions and to update Postfix configuration files.
+# .IP o
+#      The script can be used to change installation parameter settings such
+#      as mail_owner or setgid_group after Postfix is already installed.
+# .IP o
+#      The script can be used to upgrade configuration files and to upgrade
+#      file/directory permissions of a secondary Postfix instance.
+# .IP o
+#      At Postfix start-up time, the script is run from "postfix check" to
+#      create missing queue directories.
+# .PP
+#      The post-install script is controlled by installation parameters.
+#      Specific parameters are described at the end of this document.
+#      All installation parameters must be specified ahead of time via
+#      one of the methods described below.
+#
+#      Arguments
+# .IP create-missing
+#      Create missing queue directories with ownerships and permissions
+#      according to the contents of $meta_directory/postfix-files
+#      and optionally in $meta_directory/postfix-files.d/*, using
+#      the mail_owner and setgid_group parameter settings from the
+#      command line, process environment or from the installed
+#      main.cf file.
+#
+#      This is required at Postfix start-up time.
+# .IP set-permissions
+#      Set all file/directory ownerships and permissions according to the
+#      contents of $meta_directory/postfix-files and optionally
+#      in $meta_directory/postfix-files.d/*, using the mail_owner
+#      and setgid_group parameter settings from the command line,
+#      process environment or from the installed main.cf file.
+#      Implies create-missing.
+#
+#      This is required when installing Postfix from a pre-built package,
+#      or when changing the mail_owner or setgid_group installation parameter
+#      settings after Postfix is already installed.
+# .IP upgrade-permissions
+#      Update ownership and permission of existing files/directories as
+#      specified in $meta_directory/postfix-files and optionally
+#      in $meta_directory/postfix-files.d/*, using the mail_owner
+#      and setgid_group parameter settings from the command line,
+#      process environment or from the installed main.cf file.
+#      Implies create-missing.
+#
+#      This is required when upgrading an existing Postfix instance.
+# .IP upgrade-configuration
+#      Edit the installed main.cf and master.cf files, in order to account
+#      for missing services and to fix deprecated parameter settings.
+#
+#      This is required when upgrading an existing Postfix instance.
+# .IP upgrade-source
+#      Short-hand for: upgrade-permissions upgrade-configuration.
+#
+#      This is recommended when upgrading Postfix from source code.
+# .IP upgrade-package
+#      Short-hand for: set-permissions upgrade-configuration.
+#
+#      This is recommended when upgrading Postfix from a pre-built package.
+# .IP first-install-reminder
+#      Remind the user that they still need to configure main.cf and the
+#      aliases file, and that newaliases still needs to be run.
+#
+#      This is recommended when Postfix is installed for the first time.
+# MULTIPLE POSTFIX INSTANCES
+# .ad
+# .fi
+#      Multiple Postfix instances on the same machine can share command and
+#      daemon program files but must have separate configuration and queue
+#      directories.
+#
+#      To create a secondary Postfix installation on the same machine,
+#      copy the configuration files from the primary Postfix instance to
+#      a secondary configuration directory and execute:
+#
+#      postfix post-install config_directory=secondary-config-directory \e
+# .in +4
+#              queue_directory=secondary-queue-directory \e
+# .br
+#              create-missing
+# .PP
+#      This creates secondary Postfix queue directories, sets their access
+#      permissions, and saves the specified installation parameters to the
+#      secondary main.cf file.
+#
+#      Be sure to list the secondary configuration directory in the
+#      alternate_config_directories parameter in the primary main.cf file.
+#
+#      To upgrade a secondary Postfix installation on the same machine,
+#      execute:
+#
+#      postfix post-install config_directory=secondary-config-directory \e
+# .in +4
+#              upgrade-permissions upgrade-configuration
+# INSTALLATION PARAMETER INPUT METHODS
+# .ad
+# .fi
+#      Parameter settings can be specified through a variety of
+#      mechanisms.  In order of decreasing precedence these are:
+# .IP "command line"
+#      Parameter settings can be given as name=value arguments on
+#      the post-install command line. These have the highest precedence.
+#      Settings that override the installed main.cf file are saved.
+# .IP "process environment"
+#      Parameter settings can be given as name=value environment
+#      variables.
+#      Settings that override the installed main.cf file are saved.
+# .IP "installed configuration files"
+#      If a parameter is not specified via the command line or via the
+#      process environment, post-install will attempt to extract its
+#      value from the already installed Postfix main.cf configuration file.
+#      These settings have the lowest precedence.
+# INSTALLATION PARAMETER DESCRIPTION
+# .ad
+# .fi
+#      The description of installation parameters is as follows:
+# .IP config_directory
+#      The directory for Postfix configuration files.
+# .IP daemon_directory
+#      The directory for Postfix daemon programs. This directory
+#      should not be in the command search path of any users.
+# .IP command_directory
+#      The directory for Postfix administrative commands. This
+#      directory should be in the command search path of administrative users.
+# .IP queue_directory
+#      The directory for Postfix queues.
+# .IP data_directory
+#      The directory for Postfix writable data files (caches, etc.).
+# .IP sendmail_path
+#      The full pathname for the Postfix sendmail command.
+#      This is the Sendmail-compatible mail posting interface.
+# .IP newaliases_path
+#      The full pathname for the Postfix newaliases command.
+#      This is the Sendmail-compatible command to build alias databases
+#      for the Postfix local delivery agent.
+# .IP mailq_path
+#      The full pathname for the Postfix mailq command.
+#      This is the Sendmail-compatible command to list the mail queue.
+# .IP mail_owner
+#      The owner of the Postfix queue. Its numerical user ID and group ID
+#      must not be used by any other accounts on the system.
+# .IP setgid_group
+#      The group for mail submission and for queue management commands.
+#      Its numerical group ID must not be used by any other accounts on the
+#      system, not even by the mail_owner account.
+# .IP html_directory
+#      The directory for the Postfix HTML files.
+# .IP manpage_directory
+#      The directory for the Postfix on-line manual pages.
+# .IP sample_directory
+#      The directory for the Postfix sample configuration files.
+#      This feature is obsolete as of Postfix 2.1.
+# .IP readme_directory
+#      The directory for the Postfix README files.
+# .IP shlib_directory
+#      The directory for the Postfix shared-library files, and for
+#      the Postfix dabatase plugin files with a relative pathname
+#      in the file dynamicmaps.cf.
+# .IP meta_directory
+#      The directory for non-executable files that are shared
+#      among multiple Postfix instances, such as postfix-files,
+#      dynamicmaps.cf, as well as the multi-instance template files
+#      main.cf.proto and master.cf.proto.
+# SEE ALSO
+#      postfix-install(1) Postfix primary installation script.
+# FILES
+#      $config_directory/main.cf, Postfix installation parameters.
+#      $meta_directory/postfix-files, installation control file.
+#      $meta_directory/postfix-files.d/*, optional control files.
+#      $config_directory/install.cf, obsolete configuration file.
+# LICENSE
+# .ad
+# .fi
+#      The Secure Mailer license must be distributed with this software.
+# AUTHOR(S)
+#      Wietse Venema
+#      IBM T.J. Watson Research
+#      P.O. Box 704
+#      Yorktown Heights, NY 10598, USA
+#
+#      Wietse Venema
+#      Google, Inc.
+#      111 8th Avenue
+#      New York, NY 10011, USA
+#--
+
+umask 022
+
+PATH=/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
+SHELL=/bin/sh
+IFS="  
+"
+BACKUP_IFS="$IFS"
+debug=:
+#debug=echo
+MOST_PARAMETERS="command_directory daemon_directory data_directory
+    html_directory mail_owner mailq_path manpage_directory
+    newaliases_path queue_directory readme_directory sample_directory
+    sendmail_path setgid_group shlib_directory meta_directory"
+NON_SHARED="config_directory queue_directory data_directory"
+
+USAGE="Usage: $0 [name=value] command
+    create-missing          Create missing queue directories.
+    upgrade-source          When installing or upgrading from source code.
+    upgrade-package         When installing or upgrading from pre-built package.
+    first-install-reminder  Remind of mandatory first-time configuration steps.
+    name=value              Specify an installation parameter".
+
+# Process command-line options and parameter settings. Work around
+# brain damaged shells. "IFS=value command" should not make the
+# IFS=value setting permanent. But some broken standard allows it.
+
+create=; set_perms=; upgrade_perms=; upgrade_conf=; first_install_reminder=
+obsolete=; keep_list=;
+
+for arg
+do
+    case $arg in
+       *["     "]*) echo $0: "Error: argument contains whitespace: '$arg'"
+                    exit 1;;
+                *=*) IFS= eval $arg; IFS="$BACKUP_IFS";;
+     create-missing) create=1;;
+         set-perm*) create=1; set_perms=1;;
+      upgrade-perm*) create=1; upgrade_perms=1;;
+      upgrade-conf*) upgrade_conf=1;;
+     upgrade-source) create=1; upgrade_conf=1; upgrade_perms=1;;
+    upgrade-package) create=1; upgrade_conf=1; set_perms=1;;
+     first-install*) first_install_reminder=1;;
+                 *) echo "$0: Error: $USAGE" 1>&2; exit 1;;
+    esac
+    shift
+done
+
+# Sanity checks.
+
+test -n "$create$upgrade_conf$first_install_reminder" || {
+    echo "$0: Error: $USAGE" 1>&2
+    exit 1
+}
+
+# Bootstrapping problem.
+
+if [ -n "$command_directory" ]
+then
+    POSTCONF="$command_directory/postconf"
+else
+    POSTCONF="postconf"
+fi
+
+$POSTCONF -d mail_version >/dev/null 2>/dev/null || {
+    echo $0: Error: no $POSTCONF command found. 1>&2
+    echo Re-run this command as $0 command_directory=/some/where. 1>&2
+    exit 1
+}
+
+# Also used to require license etc. files only in the default instance.
+
+def_config_directory=`$POSTCONF -d -h config_directory` || exit 1
+test -n "$config_directory" ||
+    config_directory="$def_config_directory"
+
+test -d "$config_directory" || {
+    echo $0: Error: $config_directory is not a directory. 1>&2
+    exit 1
+}
+
+# If this is a secondary instance, don't touch shared files.
+# XXX Solaris does not have "test -e".
+
+instances=`test ! -f $def_config_directory/main.cf || 
+    $POSTCONF -c $def_config_directory -h multi_instance_directories | 
+       sed 's/,/ /'` || exit 1
+
+update_shared_files=1
+for name in $instances
+do
+    case "$name" in
+    "$def_config_directory") ;;
+    "$config_directory") update_shared_files=; break;;
+    esac
+done
+
+test -f $meta_directory/postfix-files || {
+    echo $0: Error: $meta_directory/postfix-files is not a file. 1>&2
+    exit 1
+}
+
+# SunOS5 fmt(1) truncates lines > 1000 characters.
+
+fake_fmt() {
+    sed '
+    :top
+       /^\(  *\)\([^ ][^ ]*\)  */{
+           s//\1\2\
+\1/
+           P
+           D
+           b top
+       }
+    ' | fmt
+}
+
+case `uname -s` in
+HP-UX*) FMT=cat;;
+SunOS*) FMT=fake_fmt;;
+     *) FMT=fmt;;
+esac
+
+# If a parameter is not set via the command line or environment,
+# try to use settings from installed configuration files.
+
+# Extract parameter settings from the obsolete install.cf file, as
+# a transitional aid.
+
+grep setgid_group $config_directory/main.cf >/dev/null 2>&1 || {
+    test -f $config_directory/install.cf  && {
+        for name in sendmail_path newaliases_path mailq_path setgid manpages
+        do
+       eval junk=\$$name
+        case "$junk" in
+        "") eval unset $name;;
+        esac
+          eval : \${$name="\`. $config_directory/install.cf; echo \$$name\`"} \
+               || exit 1
+        done
+        : ${setgid_group=$setgid}
+        : ${manpage_directory=$manpages}
+    }
+}
+
+# Extract parameter settings from the installed main.cf file.
+
+test -f $config_directory/main.cf && {
+    for name in $MOST_PARAMETERS
+    do
+       eval junk=\$$name
+        case "$junk" in
+        "") eval unset $name;;
+        esac
+        eval : \${$name=\`$POSTCONF -c $config_directory -h $name\`} || exit 1
+    done
+}
+
+# Sanity checks
+
+case $manpage_directory in
+ no) echo $0: Error: manpage_directory no longer accepts \"no\" values. 1>&2
+     echo Try again with \"$0 manpage_directory=/pathname ...\". 1>&2; exit 1;;
+esac
+
+case $setgid_group in
+ no) echo $0: Error: setgid_group no longer accepts \"no\" values. 1>&2
+     echo Try again with \"$0 setgid_group=groupname ...\" 1>&2; exit 1;;
+esac
+
+for path in "$daemon_directory" "$command_directory" "$queue_directory" \
+    "$sendmail_path" "$newaliases_path" "$mailq_path" "$manpage_directory" \
+    "$meta_directory"
+do
+   case "$path" in
+   /*) ;;
+    *) echo $0: Error: \"$path\" should be an absolute path name. 1>&2; exit 1;;
+   esac
+done
+
+for path in "$html_directory" "$readme_directory" "$shlib_directory"
+do
+   case "$path" in
+   /*) ;;
+   no) ;;
+    *) echo $0: Error: \"$path\" should be \"no\" or an absolute path name. 1>&2; exit 1;;
+   esac
+done
+
+# Find out what parameters were not specified via command line,
+# via environment, or via installed configuration files.
+
+missing=
+for name in $MOST_PARAMETERS
+do
+    eval test -n \"\$$name\" || missing="$missing $name"
+done
+
+# All parameters must be specified at this point.
+
+test -n "$non_interactive" -a -n "$missing" && {
+    cat <<EOF | ${FMT} 1>&2
+$0: Error: some required installation parameters are not defined.
+
+- Either the parameters need to be given in the $config_directory/main.cf
+file from a recent Postfix installation,
+
+- Or the parameters need to be specified through the process
+environment.
+
+- Or the parameters need to be specified as name=value arguments
+on the $0 command line,
+
+The following parameters were missing:
+
+    $missing
+
+EOF
+    exit 1
+}
+
+POSTCONF="$command_directory/postconf"
+
+# Save settings, allowing command line/environment override.
+
+# Undo MAIL_VERSION expansion at the end of a parameter value. If
+# someone really wants the expanded mail version in main.cf, then
+# we're sorry.
+
+# Confine side effects from mail_version unexpansion within a subshell.
+
+(case "$mail_version" in
+"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
+esac
+
+for name in $MOST_PARAMETERS
+do
+    eval junk=\$$name
+    case "$junk" in
+    *"$mail_version"*) 
+       case "$pattern" in
+       "") pattern=`echo "$mail_version" | sed 's/\./\\\\./g'` || exit 1
+       esac
+       val=`echo "$junk" | sed "s/$pattern"'$/${mail_version}/g'` || exit 1
+       eval ${name}='"$val"'
+    esac
+done
+
+# XXX Maybe update main.cf only with first install, upgrade, set
+# permissions, and what else? Should there be a warning otherwise?
+
+override=
+for name in $MOST_PARAMETERS
+do
+    eval junk=\"\$$name\"
+    test "$junk" = "`$POSTCONF -c $config_directory -h $name`" || {
+       override=1
+       break
+    }
+done
+
+test -n "$override" && {
+    $POSTCONF -c $config_directory -e \
+       "daemon_directory = $daemon_directory" \
+       "command_directory = $command_directory" \
+       "queue_directory = $queue_directory" \
+       "data_directory = $data_directory" \
+       "mail_owner = $mail_owner" \
+       "setgid_group = $setgid_group" \
+       "sendmail_path = $sendmail_path" \
+       "mailq_path = $mailq_path" \
+       "newaliases_path = $newaliases_path" \
+       "html_directory = $html_directory" \
+       "manpage_directory = $manpage_directory" \
+       "sample_directory = $sample_directory" \
+       "readme_directory = $readme_directory" \
+       "shlib_directory = $shlib_directory" \
+       "meta_directory = $meta_directory" \
+    || exit 1
+} || exit 0) || exit 1
+
+# Use file/directory status information in $meta_directory/postfix-files.
+
+test -n "$create" && {
+    postfix_files_d=$meta_directory/postfix-files.d
+    for postfix_file in $meta_directory/postfix-files \
+       `test -d $postfix_files_d && { find $postfix_files_d -type f | sort; }`
+    do
+       exec <$postfix_file || exit 1
+       while IFS=: read path type owner group mode flags junk
+       do
+           IFS="$BACKUP_IFS"
+           set_permission=
+           # Skip comments. Skip shared files, if updating a secondary instance.
+           case $path in
+           [$]*) case "$update_shared_files" in
+                 1) $debug keep non-shared or shared $path;;
+                 *) non_shared=
+                    for name in $NON_SHARED
+                    do
+                        case $path in
+                        "\$$name"*) non_shared=1; break;;
+                        esac
+                    done
+                    case "$non_shared" in
+                     1) $debug keep non-shared $path;;
+                     *) $debug skip shared $path; continue;;
+                    esac;;
+                 esac;;
+              *) continue;;
+           esac
+           # Skip hard links and symbolic links.
+           case $type in
+           [hl]) continue;;
+           [df]) ;;
+              *) echo unknown type $type for $path in $postfix_file 1>&2; exit 1;;
+           esac
+           # Expand $name, and canonicalize null fields.
+           for name in path owner group flags
+           do
+               eval junk=\${$name}
+               case $junk in
+               [$]*) eval $name=$junk;;
+                  -) eval $name=;;
+                  *) ;;
+               esac
+           done
+           # Skip uninstalled files.
+           case $path in
+           no|no/*) continue;;
+           esac
+           # Pick up the flags.
+           case $flags in *u*) upgrade_flag=1;; *) upgrade_flag=;; esac
+           case $flags in *c*) create_flag=1;; *) create_flag=;; esac
+           case $flags in *r*) recursive="-R";; *) recursive=;; esac
+           case $flags in *o*) obsolete_flag=1;; *) obsolete_flag=;; esac
+           case $flags in *[1i]*) test ! -r "$path" -a "$config_directory" != \
+                                   "$def_config_directory" && continue;; esac
+           # Flag obsolete objects. XXX Solaris 2..9 does not have "test -e".
+           if [ -n "$obsolete_flag" ]
+           then
+               test -r $path -a "$type" != "d" && obsolete="$obsolete $path"
+               continue;
+           else
+               keep_list="$keep_list $path"
+           fi
+           # Create missing directories with proper owner/group/mode settings.
+           if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ]
+           then
+               mkdir $path || exit 1
+               set_permission=1
+           # Update all owner/group/mode settings.
+           elif [ -n "$set_perms" ]
+           then
+               set_permission=1
+           # Update obsolete owner/group/mode settings.
+           elif [ -n "$upgrade_perms" -a -n "$upgrade_flag" ]
+           then
+               set_permission=1
+           fi
+           test -n "$set_permission" && {
+               chown $recursive $owner $path || exit 1
+               test -z "$group" || chgrp $recursive $group $path || exit 1
+               # Don't "chmod -R"; queue file status is encoded in mode bits.
+               if [ "$type" = "d" -a -n "$recursive" ]
+               then
+                   find $path -type d -exec chmod $mode "{}" ";"
+               else
+                   chmod $mode $path
+               fi || exit 1
+           }
+       done
+       IFS="$BACKUP_IFS"
+    done
+}
+
+# Upgrade existing Postfix configuration files if necessary.
+
+test -n "$upgrade_conf" && {
+
+    # Postfix 2.0.
+    # Add missing relay service to master.cf.
+
+    grep '^relay' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for relay service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+relay    unix  -       -       n       -       -       smtp
+EOF
+    }
+
+    # Postfix 1.1.
+    # Add missing flush service to master.cf.
+
+    grep '^flush.*flush' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for flush service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+flush     unix  -       -       n       1000?   0       flush
+EOF
+    }
+
+    # Postfix 2.1.
+    # Add missing trace service to master.cf.
+
+    grep 'trace.*bounce' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for trace service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+trace    unix  -       -       n       -       0       bounce
+EOF
+    }
+
+    # Postfix 2.1.
+    # Add missing verify service to master.cf.
+
+    grep '^verify.*verify' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for verify service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+verify   unix  -       -       n       -       1       verify
+EOF
+    }
+
+    # Postfix 2.1.
+    # Fix verify service process limit.
+
+    grep '^verify.*[   ]0[     ]*verify' \
+       $config_directory/master.cf >/dev/null && {
+           echo Editing $config_directory/master.cf, setting verify process limit to 1
+           ed $config_directory/master.cf <<EOF || exit 1
+/^verify.*[    ]0[     ]*verify/
+s/\([  ]\)0\([         ]\)/\11\2/
+p
+w
+q
+EOF
+    }
+
+    # Postfix 1.1.
+    # Change privileged pickup service into unprivileged.
+
+    grep "^pickup[     ]*fifo[         ]*n[    ]*n" \
+       $config_directory/master.cf >/dev/null && {
+           echo Editing $config_directory/master.cf, making the pickup service unprivileged
+           ed $config_directory/master.cf <<EOF || exit 1
+/^pickup[      ]*fifo[         ]*n[    ]*n/
+s/\(n[         ]*\)n/\1-/
+p
+w
+q
+EOF
+    }
+
+    # Postfix 1.1.
+    # Change private cleanup and flush services into public.
+
+    for name in cleanup flush
+    do
+       grep "^$name[   ]*unix[         ]*[-y]" \
+           $config_directory/master.cf >/dev/null && {
+               echo Editing $config_directory/master.cf, making the $name service public
+           ed $config_directory/master.cf <<EOF || exit 1
+/^$name[       ]*unix[         ]*[-y]/
+s/[-y]/n/
+p
+w
+q
+EOF
+       }
+    done
+
+    # Postfix 2.2.
+    # File systems have improved since Postfix came out, and all we
+    # require now is that defer and deferred are hashed because those
+    # can contain lots of files.
+
+    found=`$POSTCONF -c $config_directory -h hash_queue_names`
+    missing=
+    (echo "$found" | grep defer >/dev/null)  || missing="$missing defer"
+    (echo "$found" | grep deferred>/dev/null)|| missing="$missing deferred"
+    test -n "$missing" && {
+       echo fixing main.cf hash_queue_names for missing $missing
+       $POSTCONF -c $config_directory -e hash_queue_names="$found$missing" ||
+           exit 1
+    }
+
+    # Turn on safety nets for new features that could bounce mail that
+    # would be accepted by a previous Postfix version.
+
+    # [The "unknown_local_recipient_reject_code = 450" safety net,
+    # introduced with Postfix 2.0 and deleted after Postfix 2.3.]
+
+    # Postfix 2.0.
+    # Add missing proxymap service to master.cf.
+
+    grep '^proxymap.*proxymap' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for proxymap service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+proxymap  unix -       -       n       -       -       proxymap
+EOF
+    }
+
+    # Postfix 2.1.
+    # Add missing anvil service to master.cf.
+
+    grep '^anvil.*anvil' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for anvil service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+anvil    unix  -       -       n       -       1       anvil
+EOF
+    }
+
+    # Postfix 2.2.
+    # Add missing scache service to master.cf.
+
+    grep '^scache.*scache' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for scache service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+scache   unix  -       -       n       -       1       scache
+EOF
+    }
+
+    # Postfix 2.2.
+    # Add missing discard service to master.cf.
+
+    grep '^discard.*discard' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for discard service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+discard          unix  -       -       n       -       -       discard
+EOF
+    }
+
+    # Postfix 2.2.
+    # Update the tlsmgr fifo->unix service.
+
+    grep "^tlsmgr[     ]*fifo[         ]" \
+       $config_directory/master.cf >/dev/null && {
+           echo Editing $config_directory/master.cf, updating the tlsmgr from fifo to unix service
+           ed $config_directory/master.cf <<EOF || exit 1
+/^tlsmgr[      ]*fifo[         ]/
+s/fifo/unix/
+s/[0-9][0-9]*/&?/
+p
+w
+q
+EOF
+    }
+
+    # Postfix 2.2.
+    # Add missing tlsmgr service to master.cf.
+
+    grep '^tlsmgr.*tlsmgr' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for tlsmgr service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+tlsmgr    unix  -       -       n       1000?   1       tlsmgr
+EOF
+    }
+
+    # Postfix 2.2.
+    # Add missing retry service to master.cf.
+
+    grep '^retry.*error' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for retry service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+retry     unix  -       -       n       -       -       error
+EOF
+    }
+
+    # Postfix 2.5.
+    # Add missing proxywrite service to master.cf.
+
+    grep '^proxywrite.*proxymap' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for proxywrite service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+proxywrite unix -       -       n       -       1       proxymap
+EOF
+    }
+
+    # Postfix 2.5.
+    # Fix a typo in the default master.cf proxywrite entry.
+
+    grep '^proxywrite.*-[      ]*proxymap' $config_directory/master.cf >/dev/null && {
+       echo Editing $config_directory/master.cf, setting proxywrite process limit to 1
+           ed $config_directory/master.cf <<EOF || exit 1
+/^proxywrite.*-[       ]*proxymap/
+s/-\([         ]*proxymap\)/1\1/
+p
+w
+q
+EOF
+    }
+
+    # Postfix 2.8.
+    # Add missing postscreen service to master.cf.
+
+    grep '^#*smtp.*postscreen' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for postscreen TCP service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+#smtp      inet  n       -       n       -       1       postscreen
+EOF
+    }
+
+    # Postfix 2.8.
+    # Add missing smtpd (unix-domain) service to master.cf.
+
+    grep '^#*smtpd.*smtpd' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for smtpd unix-domain service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+#smtpd     pass  -       -       n       -       -       smtpd
+EOF
+    }
+
+    # Postfix 2.8.
+    # Add temporary dnsblog (unix-domain) service to master.cf.
+
+    grep '^#*dnsblog.*dnsblog' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for dnsblog unix-domain service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+#dnsblog   unix  -       -       n       -       0       dnsblog
+EOF
+    }
+
+    # Postfix 2.8.
+    # Add tlsproxy (unix-domain) service to master.cf.
+
+    grep '^#*tlsproxy.*tlsproxy' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for tlsproxy unix-domain service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+#tlsproxy  unix  -       -       n       -       0       tlsproxy
+EOF
+    }
+
+    # Report (but do not remove) obsolete files.
+
+    test -n "$obsolete" && {
+       cat <<EOF | ${FMT}
+
+    Note: the following files or directories still exist but are
+    no longer part of Postfix:
+
+    $obsolete
+
+EOF
+    }
+
+    # Postfix 2.9.
+    # Safety net for incompatible changes in IPv6 defaults.
+    # PLEASE DO NOT REMOVE THIS CODE. ITS PURPOSE IS TO AVOID AN
+    # UNEXPECTED DROP IN PERFORMANCE AFTER UPGRADING FROM POSTFIX
+    # BEFORE 2.9.
+    # This code assumes that the default is "inet_protocols = ipv4"
+    # when IPv6 support is not compiled in. See util/sys_defs.h.
+
+    test "`$POSTCONF -dh inet_protocols`" = "ipv4" ||
+       test -n "`$POSTCONF -c $config_directory -n inet_protocols`" || {
+       cat <<EOF | ${FMT}
+    COMPATIBILITY: editing $config_directory/main.cf, setting
+    inet_protocols=ipv4.  Specify inet_protocols explicitly if you
+    want to enable IPv6.
+    In a future release IPv6 will be enabled by default.
+EOF
+       $POSTCONF -c $config_directory inet_protocols=ipv4 || exit 1
+    }
+
+# Disabled because unhelpful down-stream maintainers disable the safety net.
+#    # Postfix 2.10.
+#    # Safety net for incompatible changes due to the introduction
+#    # of the smtpd_relay_restrictions feature to separate the
+#    # mail relay policy from the spam blocking policy.
+#    # PLEASE DO NOT REMOVE THIS CODE. ITS PURPOSE IS TO PREVENT
+#    # INBOUND MAIL FROM UNEXPECTEDLY BOUNCING AFTER UPGRADING FROM
+#    # POSTFIX BEFORE 2.10.
+#    test -n "`$POSTCONF -c $config_directory -n smtpd_relay_restrictions`" || {
+#      cat <<EOF | ${FMT}
+#    COMPATIBILITY: editing $config_directory/main.cf, overriding
+#    smtpd_relay_restrictions to prevent inbound mail from
+#    unexpectedly bouncing.
+#    Specify an empty smtpd_relay_restrictions value to keep using 
+#    smtpd_recipient_restrictions as before.
+#EOF
+#      $POSTCONF -c $config_directory "smtpd_relay_restrictions = \
+#          permit_mynetworks permit_sasl_authenticated \
+#          defer_unauth_destination" || exit 1
+#    }
+
+    # Postfix 3.4
+    # Add a postlog service entry.
+
+    grep '^postlog' $config_directory/master.cf >/dev/null || {
+       echo Editing $config_directory/master.cf, adding missing entry for postlog unix-domain datagram service
+       cat >>$config_directory/master.cf <<EOF || exit 1
+postlog   unix-dgram n  -       n       -       1       postlogd
+EOF
+    }
+}
+
+# A reminder if this is the first time Postfix is being installed.
+
+test -n "$first_install_reminder" && {
+
+    ALIASES=`$POSTCONF -c $config_directory -h alias_database | sed 's/^[^:]*://'`
+    NEWALIASES_PATH=`$POSTCONF -c $config_directory -h newaliases_path`
+    cat <<EOF | ${FMT}
+
+    Warning: you still need to edit myorigin/mydestination/mynetworks
+    parameter settings in $config_directory/main.cf.
+
+    See also http://www.postfix.org/STANDARD_CONFIGURATION_README.html
+    for information about dialup sites or about sites inside a
+    firewalled network.
+
+    BTW: Check your $ALIASES file and be sure to set up aliases
+    that send mail for root and postmaster to a real person, then
+    run $NEWALIASES_PATH.
+
+EOF
+
+}
+
+exit 0
diff --git a/postfix/postfix-files b/postfix/postfix-files
new file mode 100644 (file)
index 0000000..2009e8f
--- /dev/null
@@ -0,0 +1,223 @@
+#
+# Do not edit this file.
+#
+# This file controls the postfix-install script for installation of
+# Postfix programs, configuration files and documentation, as well
+# as the post-install script for setting permissions and for updating
+# Postfix configuration files. See the respective manual pages within
+# the script files.
+#
+# Do not list $command_directory or $shlib_directory in this file,
+# or it will be blown away by a future Postfix uninstallation
+# procedure. You would not want to lose all files in /usr/sbin or
+# /usr/local/lib.
+#
+# Each record in this file describes one file or directory.
+# Fields are separated by ":". Specify a null field as "-".
+# Missing fields or separators at the end are OK.
+#
+# File format:
+#      name:type:owner:group:permission:flags
+#      No group means don't change group ownership.
+#
+# File types:
+#      d=directory
+#      f=regular file
+#      h=hard link (*)
+#      l=symbolic link (*)
+#
+# (*) With hard links and symbolic links, the owner field becomes the
+#     source pathname, while the group and permissions are ignored.
+#
+# File flags:
+#      No flag means the flag is not active.
+#      p=preserve existing file, do not replace (postfix-install).
+#      u=update owner/group/mode (post-install upgrade-permissions).
+#      c=create missing directory (post-install create-missing).
+#      r=apply owner/group recursively (post-install set/upgrade-permissions).
+#      o=obsolete, no longer part of Postfix
+#      1=optional for non-default instance (config_dir != built-in default).
+#
+# Note: the "u" flag is for upgrading the permissions of existing files
+# or directories after changes in Postfix architecture. For robustness
+# it is a good idea to "u" all the files that have special ownership or
+# permissions, so that running "make install" fixes any glitches.
+#
+# Note: order matters. Update shared libraries and database plugins
+# before daemon/command-line programs.
+$config_directory:d:root:-:755:u
+$data_directory:d:$mail_owner:-:700:uc
+$daemon_directory:d:root:-:755:u
+$queue_directory:d:root:-:755:uc
+$queue_directory/active:d:$mail_owner:-:700:ucr
+$queue_directory/bounce:d:$mail_owner:-:700:ucr
+$queue_directory/corrupt:d:$mail_owner:-:700:ucr
+$queue_directory/defer:d:$mail_owner:-:700:ucr
+$queue_directory/deferred:d:$mail_owner:-:700:ucr
+$queue_directory/flush:d:$mail_owner:-:700:ucr
+$queue_directory/hold:d:$mail_owner:-:700:ucr
+$queue_directory/incoming:d:$mail_owner:-:700:ucr
+$queue_directory/private:d:$mail_owner:-:700:uc
+$queue_directory/maildrop:d:$mail_owner:$setgid_group:730:uc
+$queue_directory/public:d:$mail_owner:$setgid_group:710:uc
+$queue_directory/pid:d:root:-:755:uc
+$queue_directory/saved:d:$mail_owner:-:700:ucr
+$queue_directory/trace:d:$mail_owner:-:700:ucr
+# Update shared libraries and plugins before daemon or command-line programs.
+$shlib_directory/libpostfix-util.so:f:root:-:755
+$shlib_directory/libpostfix-global.so:f:root:-:755
+$shlib_directory/libpostfix-dns.so:f:root:-:755
+$shlib_directory/libpostfix-tls.so:f:root:-:755
+$shlib_directory/libpostfix-master.so:f:root:-:755
+$meta_directory/dynamicmaps.cf.d:d:root:-:755
+$meta_directory/dynamicmaps.cf:f:root:-:644
+$meta_directory/main.cf.proto:f:root:-:644
+$meta_directory/makedefs.out:f:root:-:644
+$meta_directory/master.cf.proto:f:root:-:644
+$meta_directory/postfix-files.d:d:root:-:755
+$meta_directory/postfix-files:f:root:-:644
+$daemon_directory/anvil:f:root:-:755
+$daemon_directory/bounce:f:root:-:755
+$daemon_directory/cleanup:f:root:-:755
+$daemon_directory/discard:f:root:-:755
+$daemon_directory/dnsblog:f:root:-:755
+$daemon_directory/error:f:root:-:755
+$daemon_directory/flush:f:root:-:755
+$daemon_directory/local:f:root:-:755
+$daemon_directory/main.cf:f:root:-:644:o
+$daemon_directory/master.cf:f:root:-:644:o
+$daemon_directory/master:f:root:-:755
+$daemon_directory/oqmgr:f:root:-:755
+$daemon_directory/pickup:f:root:-:755
+$daemon_directory/pipe:f:root:-:755
+$daemon_directory/post-install:f:root:-:755
+# In case meta_directory == daemon_directory.
+#$daemon_directory/postfix-files:f:root:-:644:o
+#$daemon_directory/postfix-files.d:d:root:-:755:o
+$daemon_directory/postfix-script:f:root:-:755
+$daemon_directory/postfix-tls-script:f:root:-:755
+$daemon_directory/postfix-wrapper:f:root:-:755
+$daemon_directory/postmulti-script:f:root:-:755
+$daemon_directory/postlogd:f:root:-:755
+$daemon_directory/postscreen:f:root:-:755
+$daemon_directory/proxymap:f:root:-:755
+$daemon_directory/qmgr:f:root:-:755
+$daemon_directory/qmqpd:f:root:-:755
+$daemon_directory/scache:f:root:-:755
+$daemon_directory/showq:f:root:-:755
+$daemon_directory/smtp:f:root:-:755
+$daemon_directory/smtpd:f:root:-:755
+$daemon_directory/spawn:f:root:-:755
+$daemon_directory/tlsproxy:f:root:-:755
+$daemon_directory/tlsmgr:f:root:-:755
+$daemon_directory/trivial-rewrite:f:root:-:755
+$daemon_directory/verify:f:root:-:755
+$daemon_directory/virtual:f:root:-:755
+$daemon_directory/nqmgr:h:$daemon_directory/qmgr
+$daemon_directory/lmtp:h:$daemon_directory/smtp
+$command_directory/postalias:f:root:-:755
+$command_directory/postcat:f:root:-:755
+$command_directory/postconf:f:root:-:755
+$command_directory/postfix:f:root:-:755
+$command_directory/postkick:f:root:-:755
+$command_directory/postlock:f:root:-:755
+$command_directory/postlog:f:root:$setgid_group:2755:u
+$command_directory/postmap:f:root:-:755
+$command_directory/postmulti:f:root:-:755
+$command_directory/postsuper:f:root:-:755
+$command_directory/postdrop:f:root:$setgid_group:2755:u
+$command_directory/postqueue:f:root:$setgid_group:2755:u
+$sendmail_path:f:root:-:755
+$newaliases_path:l:$sendmail_path
+$mailq_path:l:$sendmail_path
+# Empty files not shipped in Debian
+#$config_directory/access:f:root:-:644:p1
+#$config_directory/aliases:f:root:-:644:p1
+#$config_directory/bounce.cf.default:f:root:-:644:1
+#$config_directory/canonical:f:root:-:644:p1
+#$config_directory/cidr_table:f:root:-:644:o
+#$config_directory/generic:f:root:-:644:p1
+#$config_directory/generics:f:root:-:644:o
+#$config_directory/header_checks:f:root:-:644:p1
+#$config_directory/install.cf:f:root:-:644:o
+#$config_directory/main.cf.default:f:root:-:644:1
+$config_directory/main.cf:f:root:-:644:p
+$config_directory/master.cf:f:root:-:644:p
+#$config_directory/regexp_table:f:root:-:644:o
+#$config_directory/relocated:f:root:-:644:p1
+#$config_directory/tcp_table:f:root:-:644:o
+#$config_directory/transport:f:root:-:644:p1
+#$config_directory/virtual:f:root:-:644:p1
+$config_directory/postfix-script:f:root:-:755:o
+#$config_directory/postfix-script-sgid:f:root:-:755:o
+#$config_directory/postfix-script-nosgid:f:root:-:755:o
+$config_directory/post-install:f:root:-:755:o
+$manpage_directory/man1/mailq.1.gz:f:root:-:644
+$manpage_directory/man1/newaliases.1.gz:f:root:-:644
+$manpage_directory/man1/postalias.1.gz:f:root:-:644
+$manpage_directory/man1/postcat.1.gz:f:root:-:644
+$manpage_directory/man1/postconf.1.gz:f:root:-:644
+$manpage_directory/man1/postdrop.1.gz:f:root:-:644
+$manpage_directory/man1/postfix-tls.1.gz:f:root:-:644
+$manpage_directory/man1/postfix.1.gz:f:root:-:644
+$manpage_directory/man1/postkick.1.gz:f:root:-:644
+$manpage_directory/man1/postlock.1.gz:f:root:-:644
+$manpage_directory/man1/postlog.1.gz:f:root:-:644
+$manpage_directory/man1/postmap.1.gz:f:root:-:644
+$manpage_directory/man1/postmulti.1.gz:f:root:-:644
+$manpage_directory/man1/postqueue.1.gz:f:root:-:644
+$manpage_directory/man1/postsuper.1.gz:f:root:-:644
+$manpage_directory/man1/sendmail.1.gz:f:root:-:644
+$manpage_directory/man5/access.5.gz:f:root:-:644
+$manpage_directory/man5/aliases.5.gz:f:root:-:644
+$manpage_directory/man5/body_checks.5.gz:f:root:-:644
+$manpage_directory/man5/bounce.5.gz:f:root:-:644
+$manpage_directory/man5/canonical.5.gz:f:root:-:644
+$manpage_directory/man5/cidr_table.5.gz:f:root:-:644
+$manpage_directory/man5/generics.5.gz:f:root:-:644:o
+$manpage_directory/man5/generic.5.gz:f:root:-:644
+$manpage_directory/man5/header_checks.5.gz:f:root:-:644
+$manpage_directory/man5/master.5.gz:f:root:-:644
+$manpage_directory/man5/memcache_table.5.gz:f:root:-:644
+$manpage_directory/man5/socketmap_table.5.gz:f:root:-:644
+$manpage_directory/man5/nisplus_table.5.gz:f:root:-:644
+$manpage_directory/man5/postconf.5.gz:f:root:-:644
+$manpage_directory/man5/postfix-wrapper.5.gz:f:root:-:644
+$manpage_directory/man5/regexp_table.5.gz:f:root:-:644
+$manpage_directory/man5/relocated.5.gz:f:root:-:644
+$manpage_directory/man5/tcp_table.5.gz:f:root:-:644
+$manpage_directory/man5/transport.5.gz:f:root:-:644
+$manpage_directory/man5/virtual.5.gz:f:root:-:644
+$manpage_directory/man8/bounce.8postfix.gz:f:root:-:644
+$manpage_directory/man8/cleanup.8postfix.gz:f:root:-:644
+$manpage_directory/man8/anvil.8postfix.gz:f:root:-:644
+$manpage_directory/man8/defer.8postfix.gz:f:root:-:644
+$manpage_directory/man8/discard.8postfix.gz:f:root:-:644
+$manpage_directory/man8/dnsblog.8postfix.gz:f:root:-:644
+$manpage_directory/man8/error.8postfix.gz:f:root:-:644
+$manpage_directory/man8/flush.8postfix.gz:f:root:-:644
+$manpage_directory/man8/lmtp.8postfix.gz:f:root:-:644
+$manpage_directory/man8/local.8postfix.gz:f:root:-:644
+$manpage_directory/man8/master.8postfix.gz:f:root:-:644
+$manpage_directory/man8/nqmgr.8postfix.gz:f:root:-:644:o
+$manpage_directory/man8/oqmgr.8postfix.gz:f:root:-:644:
+$manpage_directory/man8/pickup.8postfix.gz:f:root:-:644
+$manpage_directory/man8/pipe.8postfix.gz:f:root:-:644
+$manpage_directory/man8/postlogd.8postfix.gz:f:root:-:644
+$manpage_directory/man8/postfix-add-filter.8.gz:f:root:-:644
+$manpage_directory/man8/postfix-add-policy.8.gz:f:root:-:644
+$manpage_directory/man8/postscreen.8postfix.gz:f:root:-:644
+$manpage_directory/man8/proxymap.8postfix.gz:f:root:-:644
+$manpage_directory/man8/qmgr.8postfix.gz:f:root:-:644
+$manpage_directory/man8/qmqpd.8postfix.gz:f:root:-:644
+$manpage_directory/man8/scache.8postfix.gz:f:root:-:644
+$manpage_directory/man8/showq.8postfix.gz:f:root:-:644
+$manpage_directory/man8/smtp.8postfix.gz:f:root:-:644
+$manpage_directory/man8/smtpd.8postfix.gz:f:root:-:644
+$manpage_directory/man8/spawn.8postfix.gz:f:root:-:644
+$manpage_directory/man8/tlsproxy.8postfix.gz:f:root:-:644
+$manpage_directory/man8/tlsmgr.8postfix.gz:f:root:-:644
+$manpage_directory/man8/trace.8postfix.gz:f:root:-:644
+$manpage_directory/man8/trivial-rewrite.8postfix.gz:f:root:-:644
+$manpage_directory/man8/verify.8postfix.gz:f:root:-:644
+$manpage_directory/man8/virtual.8postfix.gz:f:root:-:644
diff --git a/postfix/postfix-files.d/cdb.files b/postfix/postfix-files.d/cdb.files
new file mode 100644 (file)
index 0000000..ba9e0cd
--- /dev/null
@@ -0,0 +1 @@
+$shlib_directory/postfix-cdb.so:f:root:-:755
diff --git a/postfix/postfix-files.d/pcre.files b/postfix/postfix-files.d/pcre.files
new file mode 100644 (file)
index 0000000..d41271f
--- /dev/null
@@ -0,0 +1,3 @@
+$shlib_directory/postfix-pcre.so:f:root:-:755
+#$config_directory/pcre_table:f:root:-:644:o
+$manpage_directory/man5/pcre_table.5.gz:f:root:-:644
diff --git a/postfix/postfix-files.d/sqlite.files b/postfix/postfix-files.d/sqlite.files
new file mode 100644 (file)
index 0000000..8e95cd8
--- /dev/null
@@ -0,0 +1,2 @@
+$shlib_directory/postfix-sqlite.so:f:root:-:755
+$manpage_directory/man5/sqlite_table.5.gz:f:root:-:644
diff --git a/postfix/postfix-script b/postfix/postfix-script
new file mode 100755 (executable)
index 0000000..5909eb8
--- /dev/null
@@ -0,0 +1,454 @@
+#!/bin/sh
+
+#++
+# NAME
+#      postfix-script 1
+# SUMMARY
+#      execute Postfix administrative commands
+# SYNOPSIS
+#      \fBpostfix-script\fR \fIcommand\fR
+# DESCRIPTION
+#      The \fBpostfix-script\fR script executes Postfix administrative
+#      commands in an environment that is set up by the \fBpostfix\fR(1)
+#      command.
+# SEE ALSO
+#      master(8) Postfix master program
+#      postfix(1) Postfix administrative interface
+# LICENSE
+# .ad
+# .fi
+#      The Secure Mailer license must be distributed with this software.
+# AUTHOR(S)
+#      Wietse Venema
+#      IBM T.J. Watson Research
+#      P.O. Box 704
+#      Yorktown Heights, NY 10598, USA
+#
+#      Wietse Venema
+#      Google, Inc.
+#      111 8th Avenue
+#      New York, NY 10011, USA
+#--
+
+# Avoid POSIX death due to SIGHUP when some parent process exits.
+
+trap '' 1
+
+case $daemon_directory in
+"") echo This script must be run by the postfix command. 1>&2
+    echo Do not run directly. 1>&2
+    exit 1
+esac
+
+LOGGER="$command_directory/postlog -t $MAIL_LOGTAG/postfix-script"
+INFO="$LOGGER -p info"
+WARN="$LOGGER -p warn"
+ERROR="$LOGGER -p error"
+FATAL="$LOGGER -p fatal"
+PANIC="$LOGGER -p panic"
+
+umask 022
+SHELL=/bin/sh
+
+#
+# Can't do much without these in place.
+#
+cd $command_directory || {
+       $FATAL no Postfix command directory $command_directory!
+       exit 1
+}
+cd $daemon_directory || {
+       $FATAL no Postfix daemon directory $daemon_directory!
+       exit 1
+}
+test -f master || {
+       $FATAL no Postfix master program $daemon_directory/master!
+       exit 1
+}
+cd $config_directory || {
+       $FATAL no Postfix configuration directory $config_directory!
+       exit 1
+}
+case $shlib_directory in
+no) ;;
+ *) cd $shlib_directory || {
+       $FATAL no Postfix shared-library directory $shlib_directory!
+        exit 1
+    }
+esac
+cd $meta_directory || {
+       $FATAL no Postfix meta directory $meta_directory!
+       exit 1
+}
+cd $queue_directory || {
+       $FATAL no Postfix queue directory $queue_directory!
+       exit 1
+}
+def_config_directory=`$command_directory/postconf -dh config_directory` || {
+       $FATAL cannot execute $command_directory/postconf!
+       exit 1
+}
+
+# If this is a secondary instance, don't touch shared files.
+
+instances=`test ! -f $def_config_directory/main.cf ||
+    $command_directory/postconf -c $def_config_directory \
+    -h multi_instance_directories | sed 's/,/ /'` || {
+       $FATAL cannot execute $command_directory/postconf!
+       exit 1
+}
+
+check_shared_files=1
+for name in $instances
+do
+    case "$name" in
+    "$def_config_directory") ;;
+    "$config_directory") check_shared_files=; break;;
+    esac
+done
+
+#
+# Parse JCL
+#
+case $1 in
+
+start_msg)
+
+       echo "Start postfix"
+       ;;
+
+stop_msg)
+
+       echo "Stop postfix"
+       ;;
+
+start|start-fg)
+
+       $daemon_directory/master -t 2>/dev/null || {
+               $FATAL the Postfix mail system is already running
+               exit 1
+       }
+       if [ -f $queue_directory/quick-start ]
+       then
+               rm -f $queue_directory/quick-start
+       else
+               $daemon_directory/postfix-script check-fatal || {
+                       $FATAL Postfix integrity check failed!
+                       exit 1
+               }
+               # Foreground this so it can be stopped. All inodes are cached.
+               $daemon_directory/postfix-script check-warn
+       fi
+       $INFO starting the Postfix mail system || exit 1
+       case $1 in
+       start)
+           # NOTE: wait in foreground process to get the initialization status.
+           $daemon_directory/master -w || {
+               $FATAL "mail system startup failed"
+               exit 1
+           }
+           ;;
+       start-fg)
+           # Foreground start-up is incompatible with multi-instance mode.
+           # Use "exec $daemon_directory/master" only if PID == 1.
+           # Otherwise, doing so would break process group management,
+           # and "postfix stop" would kill too many processes.
+           case $instances in
+           "") case $$ in
+                1) exec $daemon_directory/master -i
+                   $FATAL "cannot start-fg the master daemon"
+                   exit 1;;
+                *) $daemon_directory/master -s;;
+               esac
+               ;;
+            *) $FATAL "start-fg does not support multi_instance_directories"
+               exit 1
+               ;;
+           esac
+           ;;
+       esac
+       ;;
+
+drain)
+
+       $daemon_directory/master -t 2>/dev/null && {
+               $FATAL the Postfix mail system is not running
+               exit 1
+       }
+       $INFO stopping the Postfix mail system
+       kill -9 `sed 1q pid/master.pid`
+       ;;
+
+quick-stop)
+
+       $daemon_directory/postfix-script stop
+       touch $queue_directory/quick-start
+       ;;
+
+stop)
+
+       $daemon_directory/master -t 2>/dev/null && {
+               $FATAL the Postfix mail system is not running
+               exit 1
+       }
+       $INFO stopping the Postfix mail system
+       kill `sed 1q pid/master.pid`
+       for i in 5 4 3 2 1
+       do
+           $daemon_directory/master -t && exit 0
+           $INFO waiting for the Postfix mail system to terminate
+           sleep 1
+       done
+       $WARN stopping the Postfix mail system with force
+       pid=`awk '{ print $1; exit 0 } END { exit 1 }' pid/master.pid` && 
+               kill -9 -$pid
+       ;;
+
+abort)
+
+       $daemon_directory/master -t 2>/dev/null && {
+               $FATAL the Postfix mail system is not running
+               exit 1
+       }
+       $INFO aborting the Postfix mail system
+       kill `sed 1q pid/master.pid`
+       ;;
+
+reload)
+
+       $daemon_directory/master -t 2>/dev/null && {
+               $FATAL the Postfix mail system is not running
+               exit 1
+       }
+       $INFO refreshing the Postfix mail system
+       $command_directory/postsuper active || exit 1
+       kill -HUP `sed 1q pid/master.pid`
+       $command_directory/postsuper &
+       ;;
+
+flush)
+
+       cd $queue_directory || {
+               $FATAL no Postfix queue directory $queue_directory!
+               exit 1
+       }
+       $command_directory/postqueue -f
+       ;;
+
+check)
+
+       $daemon_directory/postfix-script check-fatal || exit 1
+       $daemon_directory/postfix-script check-warn
+       exit 0
+       ;;
+
+status)
+
+       $daemon_directory/master -t 2>/dev/null && {
+               $INFO the Postfix mail system is not running
+               exit 1
+       }
+       $INFO the Postfix mail system is running: PID: `sed 1q pid/master.pid`
+       exit 0
+       ;;
+
+
+check-fatal)
+       # This command is NOT part of the public interface.
+
+       $SHELL $daemon_directory/post-install create-missing || {
+               $FATAL unable to create missing queue directories
+               exit 1
+       }
+
+       # Look for incomplete installations.
+
+       test -f $config_directory/master.cf || {
+               $FATAL no $config_directory/master.cf file found
+               exit 1
+       }
+
+       maillog_file=`$command_directory/postconf -h maillog_file` || {
+               $FATAL cannot execute $command_directory/postconf!
+               exit 1
+       }
+       test -n "$maillog_file" && {
+               $command_directory/postconf -M postlog/unix-dgram 2>/dev/null \
+                   | grep . >/dev/null || {
+                       $FATAL "missing 'postlog' service in master.cf - run 'postfix upgrade-configuration'"
+                       exit 1
+               }
+       }
+
+       # See if all queue files are in the right place. This is slow.
+       # We must scan all queues for mis-named queue files before the
+       # mail system can run.
+
+       $command_directory/postsuper || exit 1
+       exit 0
+       ;;
+
+check-warn)
+       # This command is NOT part of the public interface.
+
+       # Check Postfix root-owned directory owner/permissions.
+
+       find $queue_directory/. $queue_directory/pid \
+           -prune ! -user root \
+           -exec $WARN not owned by root: {} \;
+
+       find $queue_directory/. $queue_directory/pid \
+           -prune \( -perm -020 -o -perm -002 \) \
+           -exec $WARN group or other writable: {} \;
+
+       # Check Postfix root-owned directory tree owner/permissions.
+
+       todo="$config_directory/."
+       test -n "$check_shared_files" && {
+               todo="$daemon_directory/. $meta_directory/. $todo"
+               test "$shlib_directory" = "no" || 
+                   todo="$shlib_directory/. $todo"
+       }
+       todo=`echo "$todo" | tr ' ' '\12' | sort -u`
+
+       find $todo ! -user root \
+           -exec $WARN not owned by root: {} \;
+
+       # Handle symlinks separately
+       find -L $todo \( -perm -020 -o -perm -002 \) \
+           -exec $WARN group or other writable: {} \;
+
+       find $todo -type l | while read f; do \
+           # makedefs out known to be a symlink and OK
+           if [ "$f" != "/etc/postfix/./makedefs.out" ]; then \
+             readlink "$f" | grep -q / && $WARN symlink leaves directory: "$f"; \
+           fi \
+       done; \
+
+       # Check Postfix mail_owner-owned directory tree owner/permissions.
+
+       find $data_directory/. ! -user $mail_owner \
+           -exec $WARN not owned by $mail_owner: {} \;
+
+       find $data_directory/. \( -perm -020 -o -perm -002 \) \
+           -exec $WARN group or other writable: {} \;
+
+       # Check Postfix mail_owner-owned directory tree owner.
+
+       find `ls -d $queue_directory/* | \
+           egrep '/(saved|incoming|active|defer|deferred|bounce|hold|trace|corrupt|public|private|flush)$'` \
+           ! \( -type p -o -type s \) ! -user $mail_owner \
+               -exec $WARN not owned by $mail_owner: {} \;
+
+       # WARNING: this should not descend into the maildrop directory.
+       # maildrop is the least trusted Postfix directory.
+
+       find $queue_directory/maildrop -prune ! -user $mail_owner \
+           -exec $WARN not owned by $mail_owner: $queue_directory/maildrop \;
+
+       # Check Postfix setgid_group-owned directory and file group/permissions.
+
+       todo="$queue_directory/public $queue_directory/maildrop"
+       test -n "$check_shared_files" && 
+          todo="$command_directory/postqueue $command_directory/postdrop $todo"
+
+       find $todo \
+           -prune ! -group $setgid_group \
+           -exec $WARN not owned by group $setgid_group: {} \;
+
+       test -n "$check_shared_files" &&
+       find $command_directory/postqueue $command_directory/postdrop \
+           -prune ! -perm -02111 \
+           -exec $WARN not set-gid or not owner+group+world executable: {} \;
+
+       # Check non-Postfix root-owned directory tree owner/content.
+
+       for dir in bin etc lib sbin usr
+       do
+           test -d $dir && {
+               find $dir ! -user root \
+                   -exec $WARN not owned by root: $queue_directory/{} \;
+
+               find $dir -type f -print | while read path
+               do
+                   test -f /$path && {
+                       cmp -s $path /$path || 
+                           $WARN $queue_directory/$path and /$path differ
+                   }
+               done
+           }
+       done
+
+       find corrupt -type f -exec $WARN damaged message: {} \;
+
+       # Check for non-Postfix MTA remnants.
+
+       test -n "$check_shared_files" -a -f /usr/sbin/sendmail -a \
+               -f /usr/lib/sendmail && {
+           cmp -s /usr/sbin/sendmail /usr/lib/sendmail || {
+               $WARN /usr/lib/sendmail and /usr/sbin/sendmail differ
+               $WARN Replace one by a symbolic link to the other
+           }
+       }
+       exit 0
+       ;;
+
+set-permissions|upgrade-configuration)
+       $daemon_directory/post-install create-missing "$@"
+       ;;
+
+post-install)
+       # Currently not part of the public interface.
+       shift
+       $daemon_directory/post-install "$@"
+       ;;
+
+tls)
+       shift
+       $daemon_directory/postfix-tls-script "$@"
+       ;;
+
+/*)
+       # Currently not part of the public interface.
+       "$@"
+       ;;
+
+logrotate)
+       case $# in
+       1) ;;
+       *) $FATAL "usage postfix $1 (no arguments)"; exit 1;;
+       esac
+       for name in maillog_file maillog_file_compressor \
+          maillog_file_rotate_suffix
+       do
+           value="`$command_directory/postconf -h $name`"
+           case "$value" in
+           "") $FATAL "empty '$name' parameter value - logfile rotation failed"
+               exit 1;;
+           esac
+           eval $name='"$value"';
+       done
+
+       case "$maillog_file" in
+       /dev/*) $FATAL "not rotating '$maillog_file'"; exit 1;;
+       esac
+
+       errors=`(
+           suffix="\`date +$maillog_file_rotate_suffix\`" || exit 1
+           mv "$maillog_file" "$maillog_file.$suffix" || exit 1
+           $daemon_directory/master -t 2>/dev/null ||
+               kill -HUP \`sed 1q pid/master.pid\` || exit 1
+           sleep 1
+           "$maillog_file_compressor" "$maillog_file.$suffix" || exit 1
+       ) 2>&1` || {
+           $FATAL "logfile '$maillog_file' rotation failed: $errors"
+           exit 1
+       }
+       ;;
+
+*)
+       $FATAL "unknown command: '$1'. Usage: postfix start (or stop, reload, abort, flush, check, status, set-permissions, upgrade-configuration, logrotate)"
+       exit 1
+       ;;
+
+esac
diff --git a/postfix/virtual b/postfix/virtual
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/postfix/virtual.db b/postfix/virtual.db
new file mode 100644 (file)
index 0000000..d90bd0a
Binary files /dev/null and b/postfix/virtual.db differ
diff --git a/ppp/ip-down.d/bind9 b/ppp/ip-down.d/bind9
new file mode 100755 (executable)
index 0000000..d06965f
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# Called when an interfaces comes up or down
+# Written by LaMont Jones <lamont@debian.org>
+
+# kick named as needed
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/sbin ]; then
+       exit 0
+fi
+
+# if named is running, reconfig it.
+rndc reconfig >/dev/null 2>&1 &
+
+exit 0
diff --git a/ppp/ip-down.d/chrony b/ppp/ip-down.d/chrony
new file mode 100755 (executable)
index 0000000..c077551
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+# This script tells chronyd that the connection is down
+# so that it won't try to contact the server. 
+# John Hasler <jhasler@debian.org>  1998-2003
+# Any possessor of a copy of this program may treat it as if it
+# were in the public domain.  I waive all rights.
+# Modified by Vincent Blut <vincent.debian@free.fr>
+
+if [ -e /run/chrony/chronyd.pid ]; then
+    chronyc onoffline > /dev/null 2>&1
+fi
+
+exit 0
diff --git a/ppp/ip-down.d/postfix b/ppp/ip-down.d/postfix
new file mode 100755 (executable)
index 0000000..a754fb3
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh -e
+
+# Called when an interface disconnects
+# Written by LaMont Jones <lamont@debian.org>
+
+# start or reload Postfix as needed
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/lib/postfix ]; then
+       exit 0
+fi
+
+RUNNING=""
+# If master is running, force a queue run to unload any mail that is
+# hanging around.  Yes, sendmail is a symlink...
+if [ -f /var/spool/postfix/pid/master.pid ]; then
+       pid=$(sed 's/ //g' /var/spool/postfix/pid/master.pid)
+       exe=$(ls -l /proc/$pid/exe 2>/dev/null | sed 's/.* //;s/.*\///')
+       if [ "X$exe" = "Xmaster" ]; then
+               RUNNING="y"
+       fi
+fi
+
+if [ ! -x /sbin/resolvconf ]; then
+       f=/etc/resolv.conf
+       if ! cp $f "$(postconf -hx queue_directory)$f" 2>/dev/null; then
+               exit 0
+       fi
+       if [ -n "$RUNNING" ]; then
+               service postfix reload >/dev/null 2>&1
+       fi
+fi
+
+exit 0
diff --git a/ppp/ip-up.d/bind9 b/ppp/ip-up.d/bind9
new file mode 100755 (executable)
index 0000000..d06965f
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# Called when an interfaces comes up or down
+# Written by LaMont Jones <lamont@debian.org>
+
+# kick named as needed
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/sbin ]; then
+       exit 0
+fi
+
+# if named is running, reconfig it.
+rndc reconfig >/dev/null 2>&1 &
+
+exit 0
diff --git a/ppp/ip-up.d/chrony b/ppp/ip-up.d/chrony
new file mode 100755 (executable)
index 0000000..9c8d089
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+# This script tells chronyd that the connection is up so that it can
+# contact the server.  John Hasler <jhasler@debian.org> 1998-2003
+# Any possessor of a copy of this program may treat it as if it
+# were in the public domain.  I waive all rights.
+# Modified by Vincent Blut <vincent.debian@free.fr>
+
+if [ -e /run/chrony/chronyd.pid ]; then
+    chronyc onoffline > /dev/null 2>&1
+fi
+
+exit 0
diff --git a/ppp/ip-up.d/postfix b/ppp/ip-up.d/postfix
new file mode 100755 (executable)
index 0000000..200414e
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh -e
+# Called when a new interface comes up
+# Written by LaMont Jones <lamont@debian.org>
+
+# don't bother to restart postfix when lo is configured.
+if [ "$IFACE" = "lo" ]; then
+       exit 0
+fi
+
+# If /usr isn't mounted yet, silently bail.
+if [ ! -d /usr/lib/postfix ]; then
+       exit 0
+fi
+
+RUNNING=""
+# If master is running, force a queue run to unload any mail that is
+# hanging around.  Yes, sendmail is a symlink...
+if [ -f /var/spool/postfix/pid/master.pid ]; then
+       pid=$(sed 's/ //g' /var/spool/postfix/pid/master.pid)
+       exe=$(ls -l /proc/$pid/exe 2>/dev/null | sed 's/.* //;s/.*\///')
+       if [ "X$exe" = "Xmaster" ]; then
+               RUNNING="y"
+       fi
+fi
+
+# start or reload Postfix as needed
+if [ ! -x /sbin/resolvconf ]; then
+       f=/etc/resolv.conf
+       if ! cp $f "$(postconf -hx queue_directory)$f" 2>/dev/null; then
+               exit 0
+       fi
+       if [ -n "$RUNNING" ]; then
+               service postfix reload >/dev/null 2>&1
+       fi
+fi
+
+# If master is running, force a queue run to unload any mail that is
+# hanging around.  Yes, sendmail is a symlink...
+if [ -n "$RUNNING" ]; then
+       if [ -x /usr/sbin/sendmail ]; then
+               # Don't propagate the exit code on failure; cf. #959864
+               /usr/sbin/sendmail -q >/dev/null 2>&1 || true
+       fi
+fi
diff --git a/profile b/profile
new file mode 100644 (file)
index 0000000..de64c87
--- /dev/null
+++ b/profile
@@ -0,0 +1,34 @@
+# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
+# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
+
+if [ "$(id -u)" -eq 0 ]; then
+  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+else
+  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
+fi
+export PATH
+
+if [ "${PS1-}" ]; then
+  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
+    # The file bash.bashrc already sets the default PS1.
+    # PS1='\h:\w\$ '
+    if [ -f /etc/bash.bashrc ]; then
+      . /etc/bash.bashrc
+    fi
+  else
+    if [ "$(id -u)" -eq 0 ]; then
+      PS1='# '
+    else
+      PS1='$ '
+    fi
+  fi
+fi
+
+if [ -d /etc/profile.d ]; then
+  for i in /etc/profile.d/*.sh; do
+    if [ -r $i ]; then
+      . $i
+    fi
+  done
+  unset i
+fi
diff --git a/profile.d/Z97-byobu.sh b/profile.d/Z97-byobu.sh
new file mode 100644 (file)
index 0000000..51b2887
--- /dev/null
@@ -0,0 +1,41 @@
+#    Z97-byobu.sh - allow any user to opt into auto-launching byobu
+#    Copyright (C) 2011 Canonical Ltd.
+#
+#    Authors: Dustin Kirkland <kirkland@byobu.org>
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, version 3 of the License.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Allow any user to opt into auto-launching byobu by setting LC_BYOBU=1
+# Apologies for borrowing the LC_BYOBU namespace, but:
+#  a) it's reasonable to assume that no one else is using LC_BYOBU
+#  b) LC_* is sent and receieved by most /etc/ssh/ssh*_config
+
+if [ -r "/usr/bin/byobu-launch" ]; then
+       if [ "$LC_BYOBU" = "0" ]; then
+               true
+       elif [ "$LC_BYOBU" = "1" ]; then
+               . /usr/bin/byobu-launch
+       elif [ -e "/etc/byobu/autolaunch" ]; then
+               . /usr/bin/byobu-launch
+       elif [ "$LC_TERMTYPE" = "byobu" ]; then
+               . /usr/bin/byobu-launch
+       elif [ "$LC_TERMTYPE" = "byobu-screen" ]; then
+               export BYOBU_BACKEND="screen"
+               . /usr/bin/byobu-launch
+       elif [ "$LC_TERMTYPE" = "byobu-tmux" ]; then
+               export BYOBU_BACKEND="tmux"
+               . /usr/bin/byobu-launch
+       fi
+fi
+
+# vi: syntax=sh ts=4 noexpandtab
diff --git a/profile.d/bash_completion.sh b/profile.d/bash_completion.sh
new file mode 100644 (file)
index 0000000..e1a51b0
--- /dev/null
@@ -0,0 +1,16 @@
+# shellcheck shell=sh disable=SC1091,SC2039,SC2166
+# Check for interactive bash and that we haven't already been sourced.
+if [ "x${BASH_VERSION-}" != x -a "x${PS1-}" != x -a "x${BASH_COMPLETION_VERSINFO-}" = x ]; then
+
+    # Check for recent enough version of bash.
+    if [ "${BASH_VERSINFO[0]}" -gt 4 ] ||
+        [ "${BASH_VERSINFO[0]}" -eq 4 -a "${BASH_VERSINFO[1]}" -ge 2 ]; then
+        [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] &&
+            . "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion"
+        if shopt -q progcomp && [ -r /usr/share/bash-completion/bash_completion ]; then
+            # Source completion code.
+            . /usr/share/bash-completion/bash_completion
+        fi
+    fi
+
+fi
diff --git a/profile.d/fbrehm.sh b/profile.d/fbrehm.sh
new file mode 100644 (file)
index 0000000..8feeea3
--- /dev/null
@@ -0,0 +1,185 @@
+# If not running interactively, don't do anything
+[ -z "$PS1" ] && return
+
+# Check for bash
+[ -z "$BASH_VERSION" ] && return
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=50000
+HISTFILESIZE=50000
+HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '
+HISTCONTROL=ignoredups:ignorespace
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# coloring grep:
+alias grep='grep --color=auto'
+# export GREP_COLOR='1;32'
+export GREP_COLORS='mt=1;32'
+
+# hold these special chars when piping to less
+export LESS="--RAW-CONTROL-CHARS"
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[[ -x /bin/lesspipe ]] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [[ -z "${debian_chroot:-}" && -r /etc/debian_chroot ]]; then
+    debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, overwrite the one in /etc/profile)
+PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+force_color_prompt=yes
+
+if [[ -n "$force_color_prompt" ]]; then
+    if [[ -x /usr/bin/tput ]] && tput setaf 1 >&/dev/null; then
+        # We have color support; assume it's compliant with Ecma-48
+        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+        # a case would tend to support setf rather than setaf.)
+        color_prompt=yes
+    else
+        color_prompt=
+    fi
+fi
+# echo "\$color_prompt=$color_prompt"
+
+prompt_status() {
+    local e=$?;
+    [[ $e != 0 ]] && echo -e "$e ";
+}
+
+if [[ "$color_prompt" = yes ]]; then
+    if type -t __git_ps1 >/dev/null ; then
+        if [[ "$UID" = 0 ]]; then
+            PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w\[\033[01;31m\]$(__git_ps1)\[\033[01;35m\] \$ \[\033[00m\]'
+        else
+            PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;32m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w\[\033[01;31m\]$(__git_ps1)\[\033[01;35m\] > \[\033[00m\]'
+        fi
+    else
+        if [[ "$UID" = 0 ]]; then
+            PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]'
+        else
+            PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;32m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]> \[\033[00m\]'
+        fi
+    fi
+else
+    PS1='${debian_chroot:+($debian_chroot)}$(prompt_status)\u@\h:\w\$ '
+fi
+
+# enable color support of ls and also add handy aliases
+if [[ -x /usr/bin/dircolors ]]; then
+    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+    alias ls='ls --color=auto'
+    #alias dir='dir --color=auto'
+    #alias vdir='vdir --color=auto'
+
+#    alias grep='grep --color=auto'
+#    alias fgrep='fgrep --color=auto'
+#    alias egrep='egrep --color=auto'
+fi
+
+# Save each command to the history file as it's executed.  #517342
+# This does mean sessions get interleaved when reading later on, but this
+# way the history is always up to date.  History is not synced across live
+# sessions though; that is what `history -n` does.
+# Disabled by default due to concerns related to system recovery when $HOME
+# is under duress, or lives somewhere flaky (like NFS).  Constantly syncing
+# the history will halt the shell prompt until it's finished.
+PROMPT_COMMAND='history -a'
+
+# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+    xterm*|rxvt*)
+        PROMPT_COMMAND='history -a; echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
+        ;;
+    *)
+        ;;
+esac
+
+alias ..='cd ..'
+alias ...='cd ../..'
+alias cd..='cd ..'
+alias cd...='cd ../..'
+alias l='ls -l'
+alias la='ls -la'
+alias ll='ls -lA'
+alias md='mkdir -p'
+if type -t whoami >/dev/null; then
+    alias pl="ps -fu $(whoami)"
+fi
+alias rd='rmdir'
+
+if [[ "$(type -t colordiff)" = "file" ]] ; then
+    alias diff="$(type -p colordiff)"
+fi
+
+if [[ -f ~/.bash_aliases ]]; then
+    . ~/.bash_aliases
+fi
+
+if [ -d /usr/scripts ] ; then
+    PATH=/usr/scripts:$PATH
+    export PATH
+fi
+
+if [ -d $HOME/bin ] ; then
+    PATH=$PATH:$HOME/bin
+    export PATH
+fi
+
+if [[ -d "$HOME/lib" ]] ; then
+    if [[ -d "$HOME/lib/perl" ]] ; then
+        if [[ -z "${PERL5LIB}" ]] ; then
+            export PERL5LIB="$HOME/lib/perl"
+        else
+            export PERL5LIB="$HOME/lib/perl:${PERL5LIB}"
+        fi
+    fi
+    if [[ -d "$HOME/lib/python" ]] ; then
+        if [[ -z "${PYTHONPATH}" ]] ; then
+            export PYTHONPATH="$HOME/lib/python"
+        else
+            export PYTHONPATH="$HOME/lib/python:${PYTHONPATH}"
+        fi
+    fi
+fi
+
+# enable bash completion in interactive shells
+if ! shopt -oq posix; then
+  if [[ -f /usr/share/bash-completion/bash_completion ]]; then
+    . /usr/share/bash-completion/bash_completion
+  elif [[ -f /etc/bash_completion ]]; then
+    . /etc/bash_completion
+  fi
+fi
+
+# if the command-not-found package is installed, use it
+if [[ -x /usr/lib/command-not-found || -x /usr/share/command-not-found/command-not-found ]]; then
+    function command_not_found_handle {
+        # check because c-n-f could've been removed in the meantime
+        if [[ -x /usr/lib/command-not-found ]]; then
+            /usr/bin/python /usr/lib/command-not-found -- "$1"
+            return $?
+        elif [[ -x /usr/share/command-not-found/command-not-found ]]; then
+            /usr/bin/python /usr/share/command-not-found/command-not-found -- "$1"
+            return $?
+        else
+            printf "%s: command not found\n" "$1" >&2
+            return 127
+        fi
+    }
+fi
+
+unset color_prompt force_color_prompt
+
+# vim: ts=4 expandtab
diff --git a/profile.d/gawk.csh b/profile.d/gawk.csh
new file mode 100644 (file)
index 0000000..583d5bc
--- /dev/null
@@ -0,0 +1,11 @@
+alias gawkpath_default 'unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`'
+
+alias gawkpath_prepend 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "\!*"":$AWKPATH"'
+
+alias gawkpath_append 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "$AWKPATH"":\!*"'
+
+alias gawklibpath_default 'unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`'
+
+alias gawklibpath_prepend 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "\!*"":$AWKLIBPATH"'
+
+alias gawklibpath_append 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "$AWKLIBPATH"":\!*"'
diff --git a/profile.d/gawk.sh b/profile.d/gawk.sh
new file mode 100644 (file)
index 0000000..c35471f
--- /dev/null
@@ -0,0 +1,31 @@
+gawkpath_default () {
+       unset AWKPATH
+       export AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`
+}
+
+gawkpath_prepend () {
+       [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`
+       export AWKPATH="$*:$AWKPATH"
+}
+
+gawkpath_append () {
+       [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`
+       export AWKPATH="$AWKPATH:$*"
+}
+
+gawklibpath_default () {
+       unset AWKLIBPATH
+       export AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`
+}
+
+gawklibpath_prepend () {
+       [ -z "$AWKLIBPATH" ] && \
+               AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`
+       export AWKLIBPATH="$*:$AWKLIBPATH"
+}
+
+gawklibpath_append () {
+       [ -z "$AWKLIBPATH" ] && \
+               AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`
+       export AWKLIBPATH="$AWKLIBPATH:$*"
+}
diff --git a/protocols b/protocols
new file mode 100644 (file)
index 0000000..2fcc52f
--- /dev/null
+++ b/protocols
@@ -0,0 +1,68 @@
+# Internet (IP) protocols
+#
+# Updated from http://www.iana.org/assignments/protocol-numbers and other
+# sources.
+# New protocols will be added on request if they have been officially
+# assigned by IANA and are not historical.
+# If you need a huge list of used numbers please install the nmap package.
+
+ip     0       IP              # internet protocol, pseudo protocol number
+hopopt 0       HOPOPT          # IPv6 Hop-by-Hop Option [RFC1883]
+icmp   1       ICMP            # internet control message protocol
+igmp   2       IGMP            # Internet Group Management
+ggp    3       GGP             # gateway-gateway protocol
+ipencap        4       IP-ENCAP        # IP encapsulated in IP (officially ``IP'')
+st     5       ST              # ST datagram mode
+tcp    6       TCP             # transmission control protocol
+egp    8       EGP             # exterior gateway protocol
+igp    9       IGP             # any private interior gateway (Cisco)
+pup    12      PUP             # PARC universal packet protocol
+udp    17      UDP             # user datagram protocol
+hmp    20      HMP             # host monitoring protocol
+xns-idp        22      XNS-IDP         # Xerox NS IDP
+rdp    27      RDP             # "reliable datagram" protocol
+iso-tp4        29      ISO-TP4         # ISO Transport Protocol class 4 [RFC905]
+dccp   33      DCCP            # Datagram Congestion Control Prot. [RFC4340]
+xtp    36      XTP             # Xpress Transfer Protocol
+ddp    37      DDP             # Datagram Delivery Protocol
+idpr-cmtp 38   IDPR-CMTP       # IDPR Control Message Transport
+ipv6   41      IPv6            # Internet Protocol, version 6
+ipv6-route 43  IPv6-Route      # Routing Header for IPv6
+ipv6-frag 44   IPv6-Frag       # Fragment Header for IPv6
+idrp   45      IDRP            # Inter-Domain Routing Protocol
+rsvp   46      RSVP            # Reservation Protocol
+gre    47      GRE             # General Routing Encapsulation
+esp    50      IPSEC-ESP       # Encap Security Payload [RFC2406]
+ah     51      IPSEC-AH        # Authentication Header [RFC2402]
+skip   57      SKIP            # SKIP
+ipv6-icmp 58   IPv6-ICMP       # ICMP for IPv6
+ipv6-nonxt 59  IPv6-NoNxt      # No Next Header for IPv6
+ipv6-opts 60   IPv6-Opts       # Destination Options for IPv6
+rspf   73      RSPF CPHB       # Radio Shortest Path First (officially CPHB)
+vmtp   81      VMTP            # Versatile Message Transport
+eigrp  88      EIGRP           # Enhanced Interior Routing Protocol (Cisco)
+ospf   89      OSPFIGP         # Open Shortest Path First IGP
+ax.25  93      AX.25           # AX.25 frames
+ipip   94      IPIP            # IP-within-IP Encapsulation Protocol
+etherip        97      ETHERIP         # Ethernet-within-IP Encapsulation [RFC3378]
+encap  98      ENCAP           # Yet Another IP encapsulation [RFC1241]
+#      99                      # any private encryption scheme
+pim    103     PIM             # Protocol Independent Multicast
+ipcomp 108     IPCOMP          # IP Payload Compression Protocol
+vrrp   112     VRRP            # Virtual Router Redundancy Protocol [RFC5798]
+l2tp   115     L2TP            # Layer Two Tunneling Protocol [RFC2661]
+isis   124     ISIS            # IS-IS over IPv4
+sctp   132     SCTP            # Stream Control Transmission Protocol
+fc     133     FC              # Fibre Channel
+mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775]
+udplite        136     UDPLite         # UDP-Lite [RFC3828]
+mpls-in-ip 137 MPLS-in-IP      # MPLS-in-IP [RFC4023]
+manet  138                     # MANET Protocols [RFC5498]
+hip    139     HIP             # Host Identity Protocol
+shim6  140     Shim6           # Shim6 Protocol [RFC5533]
+wesp   141     WESP            # Wrapped Encapsulating Security Payload
+rohc   142     ROHC            # Robust Header Compression
+ethernet 143   Ethernet        # Ethernet encapsulation for SRv6 [RFC8986]
+# The following entries have not been assigned by IANA but are used
+# internally by the Linux kernel.
+mptcp  262     MPTCP           # Multipath TCP connection
diff --git a/python3.11/sitecustomize.py b/python3.11/sitecustomize.py
new file mode 100644 (file)
index 0000000..89c6712
--- /dev/null
@@ -0,0 +1,7 @@
+# install the apport exception handler if available
+try:
+    import apport_python_hook
+except ImportError:
+    pass
+else:
+    apport_python_hook.install()
diff --git a/python3/debian_config b/python3/debian_config
new file mode 100644 (file)
index 0000000..ced73d9
--- /dev/null
@@ -0,0 +1,3 @@
+[DEFAULT]
+# how to byte-compile (comma separated: standard, optimize)
+byte-compile = standard
diff --git a/rc0.d/K01apache-htcacheclean b/rc0.d/K01apache-htcacheclean
new file mode 120000 (symlink)
index 0000000..2d49a8e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache-htcacheclean
\ No newline at end of file
diff --git a/rc0.d/K01apache2 b/rc0.d/K01apache2
new file mode 120000 (symlink)
index 0000000..30c71a4
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache2
\ No newline at end of file
diff --git a/rc0.d/K01atd b/rc0.d/K01atd
new file mode 120000 (symlink)
index 0000000..8cd7248
--- /dev/null
@@ -0,0 +1 @@
+../init.d/atd
\ No newline at end of file
diff --git a/rc0.d/K01chrony b/rc0.d/K01chrony
new file mode 120000 (symlink)
index 0000000..53f1361
--- /dev/null
@@ -0,0 +1 @@
+../init.d/chrony
\ No newline at end of file
diff --git a/rc0.d/K01haveged b/rc0.d/K01haveged
new file mode 120000 (symlink)
index 0000000..52dc0e1
--- /dev/null
@@ -0,0 +1 @@
+../init.d/haveged
\ No newline at end of file
diff --git a/rc0.d/K01hwclock.sh b/rc0.d/K01hwclock.sh
new file mode 120000 (symlink)
index 0000000..c2b57ec
--- /dev/null
@@ -0,0 +1 @@
+../init.d/hwclock.sh
\ No newline at end of file
diff --git a/rc0.d/K01mariadb b/rc0.d/K01mariadb
new file mode 120000 (symlink)
index 0000000..5d255e0
--- /dev/null
@@ -0,0 +1 @@
+../init.d/mariadb
\ No newline at end of file
diff --git a/rc0.d/K01named b/rc0.d/K01named
new file mode 120000 (symlink)
index 0000000..e346c63
--- /dev/null
@@ -0,0 +1 @@
+../init.d/named
\ No newline at end of file
diff --git a/rc0.d/K01networking b/rc0.d/K01networking
new file mode 120000 (symlink)
index 0000000..bd5b2c2
--- /dev/null
@@ -0,0 +1 @@
+../init.d/networking
\ No newline at end of file
diff --git a/rc0.d/K01open-vm-tools b/rc0.d/K01open-vm-tools
new file mode 120000 (symlink)
index 0000000..ca02c8d
--- /dev/null
@@ -0,0 +1 @@
+../init.d/open-vm-tools
\ No newline at end of file
diff --git a/rc0.d/K01postfix b/rc0.d/K01postfix
new file mode 120000 (symlink)
index 0000000..81e743c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/postfix
\ No newline at end of file
diff --git a/rc0.d/K01udev b/rc0.d/K01udev
new file mode 120000 (symlink)
index 0000000..f5866f9
--- /dev/null
@@ -0,0 +1 @@
+../init.d/udev
\ No newline at end of file
diff --git a/rc0.d/K01valkey-server b/rc0.d/K01valkey-server
new file mode 120000 (symlink)
index 0000000..c6f970e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/valkey-server
\ No newline at end of file
diff --git a/rc1.d/K01apache-htcacheclean b/rc1.d/K01apache-htcacheclean
new file mode 120000 (symlink)
index 0000000..2d49a8e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache-htcacheclean
\ No newline at end of file
diff --git a/rc1.d/K01apache2 b/rc1.d/K01apache2
new file mode 120000 (symlink)
index 0000000..30c71a4
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache2
\ No newline at end of file
diff --git a/rc1.d/K01atd b/rc1.d/K01atd
new file mode 120000 (symlink)
index 0000000..8cd7248
--- /dev/null
@@ -0,0 +1 @@
+../init.d/atd
\ No newline at end of file
diff --git a/rc1.d/K01chrony b/rc1.d/K01chrony
new file mode 120000 (symlink)
index 0000000..53f1361
--- /dev/null
@@ -0,0 +1 @@
+../init.d/chrony
\ No newline at end of file
diff --git a/rc1.d/K01haveged b/rc1.d/K01haveged
new file mode 120000 (symlink)
index 0000000..52dc0e1
--- /dev/null
@@ -0,0 +1 @@
+../init.d/haveged
\ No newline at end of file
diff --git a/rc1.d/K01mariadb b/rc1.d/K01mariadb
new file mode 120000 (symlink)
index 0000000..5d255e0
--- /dev/null
@@ -0,0 +1 @@
+../init.d/mariadb
\ No newline at end of file
diff --git a/rc1.d/K01named b/rc1.d/K01named
new file mode 120000 (symlink)
index 0000000..e346c63
--- /dev/null
@@ -0,0 +1 @@
+../init.d/named
\ No newline at end of file
diff --git a/rc1.d/K01open-vm-tools b/rc1.d/K01open-vm-tools
new file mode 120000 (symlink)
index 0000000..ca02c8d
--- /dev/null
@@ -0,0 +1 @@
+../init.d/open-vm-tools
\ No newline at end of file
diff --git a/rc1.d/K01postfix b/rc1.d/K01postfix
new file mode 120000 (symlink)
index 0000000..81e743c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/postfix
\ No newline at end of file
diff --git a/rc1.d/K01valkey-server b/rc1.d/K01valkey-server
new file mode 120000 (symlink)
index 0000000..c6f970e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/valkey-server
\ No newline at end of file
diff --git a/rc2.d/K01apache-htcacheclean b/rc2.d/K01apache-htcacheclean
new file mode 120000 (symlink)
index 0000000..2d49a8e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache-htcacheclean
\ No newline at end of file
diff --git a/rc2.d/S01apache2 b/rc2.d/S01apache2
new file mode 120000 (symlink)
index 0000000..30c71a4
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache2
\ No newline at end of file
diff --git a/rc2.d/S01atd b/rc2.d/S01atd
new file mode 120000 (symlink)
index 0000000..8cd7248
--- /dev/null
@@ -0,0 +1 @@
+../init.d/atd
\ No newline at end of file
diff --git a/rc2.d/S01chrony b/rc2.d/S01chrony
new file mode 120000 (symlink)
index 0000000..53f1361
--- /dev/null
@@ -0,0 +1 @@
+../init.d/chrony
\ No newline at end of file
diff --git a/rc2.d/S01console-setup.sh b/rc2.d/S01console-setup.sh
new file mode 120000 (symlink)
index 0000000..0758e04
--- /dev/null
@@ -0,0 +1 @@
+../init.d/console-setup.sh
\ No newline at end of file
diff --git a/rc2.d/S01cron b/rc2.d/S01cron
new file mode 120000 (symlink)
index 0000000..b7a1f29
--- /dev/null
@@ -0,0 +1 @@
+../init.d/cron
\ No newline at end of file
diff --git a/rc2.d/S01dbus b/rc2.d/S01dbus
new file mode 120000 (symlink)
index 0000000..05fdfc6
--- /dev/null
@@ -0,0 +1 @@
+../init.d/dbus
\ No newline at end of file
diff --git a/rc2.d/S01haveged b/rc2.d/S01haveged
new file mode 120000 (symlink)
index 0000000..52dc0e1
--- /dev/null
@@ -0,0 +1 @@
+../init.d/haveged
\ No newline at end of file
diff --git a/rc2.d/S01mariadb b/rc2.d/S01mariadb
new file mode 120000 (symlink)
index 0000000..5d255e0
--- /dev/null
@@ -0,0 +1 @@
+../init.d/mariadb
\ No newline at end of file
diff --git a/rc2.d/S01named b/rc2.d/S01named
new file mode 120000 (symlink)
index 0000000..e346c63
--- /dev/null
@@ -0,0 +1 @@
+../init.d/named
\ No newline at end of file
diff --git a/rc2.d/S01open-vm-tools b/rc2.d/S01open-vm-tools
new file mode 120000 (symlink)
index 0000000..ca02c8d
--- /dev/null
@@ -0,0 +1 @@
+../init.d/open-vm-tools
\ No newline at end of file
diff --git a/rc2.d/S01postfix b/rc2.d/S01postfix
new file mode 120000 (symlink)
index 0000000..81e743c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/postfix
\ No newline at end of file
diff --git a/rc2.d/S01rsync b/rc2.d/S01rsync
new file mode 120000 (symlink)
index 0000000..3f11f90
--- /dev/null
@@ -0,0 +1 @@
+../init.d/rsync
\ No newline at end of file
diff --git a/rc2.d/S01ssh b/rc2.d/S01ssh
new file mode 120000 (symlink)
index 0000000..70e14ad
--- /dev/null
@@ -0,0 +1 @@
+../init.d/ssh
\ No newline at end of file
diff --git a/rc2.d/S01sudo b/rc2.d/S01sudo
new file mode 120000 (symlink)
index 0000000..ae5ad77
--- /dev/null
@@ -0,0 +1 @@
+../init.d/sudo
\ No newline at end of file
diff --git a/rc2.d/S01valkey-server b/rc2.d/S01valkey-server
new file mode 120000 (symlink)
index 0000000..c6f970e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/valkey-server
\ No newline at end of file
diff --git a/rc3.d/K01apache-htcacheclean b/rc3.d/K01apache-htcacheclean
new file mode 120000 (symlink)
index 0000000..2d49a8e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache-htcacheclean
\ No newline at end of file
diff --git a/rc3.d/S01apache2 b/rc3.d/S01apache2
new file mode 120000 (symlink)
index 0000000..30c71a4
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache2
\ No newline at end of file
diff --git a/rc3.d/S01atd b/rc3.d/S01atd
new file mode 120000 (symlink)
index 0000000..8cd7248
--- /dev/null
@@ -0,0 +1 @@
+../init.d/atd
\ No newline at end of file
diff --git a/rc3.d/S01chrony b/rc3.d/S01chrony
new file mode 120000 (symlink)
index 0000000..53f1361
--- /dev/null
@@ -0,0 +1 @@
+../init.d/chrony
\ No newline at end of file
diff --git a/rc3.d/S01console-setup.sh b/rc3.d/S01console-setup.sh
new file mode 120000 (symlink)
index 0000000..0758e04
--- /dev/null
@@ -0,0 +1 @@
+../init.d/console-setup.sh
\ No newline at end of file
diff --git a/rc3.d/S01cron b/rc3.d/S01cron
new file mode 120000 (symlink)
index 0000000..b7a1f29
--- /dev/null
@@ -0,0 +1 @@
+../init.d/cron
\ No newline at end of file
diff --git a/rc3.d/S01dbus b/rc3.d/S01dbus
new file mode 120000 (symlink)
index 0000000..05fdfc6
--- /dev/null
@@ -0,0 +1 @@
+../init.d/dbus
\ No newline at end of file
diff --git a/rc3.d/S01haveged b/rc3.d/S01haveged
new file mode 120000 (symlink)
index 0000000..52dc0e1
--- /dev/null
@@ -0,0 +1 @@
+../init.d/haveged
\ No newline at end of file
diff --git a/rc3.d/S01mariadb b/rc3.d/S01mariadb
new file mode 120000 (symlink)
index 0000000..5d255e0
--- /dev/null
@@ -0,0 +1 @@
+../init.d/mariadb
\ No newline at end of file
diff --git a/rc3.d/S01named b/rc3.d/S01named
new file mode 120000 (symlink)
index 0000000..e346c63
--- /dev/null
@@ -0,0 +1 @@
+../init.d/named
\ No newline at end of file
diff --git a/rc3.d/S01open-vm-tools b/rc3.d/S01open-vm-tools
new file mode 120000 (symlink)
index 0000000..ca02c8d
--- /dev/null
@@ -0,0 +1 @@
+../init.d/open-vm-tools
\ No newline at end of file
diff --git a/rc3.d/S01postfix b/rc3.d/S01postfix
new file mode 120000 (symlink)
index 0000000..81e743c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/postfix
\ No newline at end of file
diff --git a/rc3.d/S01rsync b/rc3.d/S01rsync
new file mode 120000 (symlink)
index 0000000..3f11f90
--- /dev/null
@@ -0,0 +1 @@
+../init.d/rsync
\ No newline at end of file
diff --git a/rc3.d/S01ssh b/rc3.d/S01ssh
new file mode 120000 (symlink)
index 0000000..70e14ad
--- /dev/null
@@ -0,0 +1 @@
+../init.d/ssh
\ No newline at end of file
diff --git a/rc3.d/S01sudo b/rc3.d/S01sudo
new file mode 120000 (symlink)
index 0000000..ae5ad77
--- /dev/null
@@ -0,0 +1 @@
+../init.d/sudo
\ No newline at end of file
diff --git a/rc3.d/S01valkey-server b/rc3.d/S01valkey-server
new file mode 120000 (symlink)
index 0000000..c6f970e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/valkey-server
\ No newline at end of file
diff --git a/rc4.d/K01apache-htcacheclean b/rc4.d/K01apache-htcacheclean
new file mode 120000 (symlink)
index 0000000..2d49a8e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache-htcacheclean
\ No newline at end of file
diff --git a/rc4.d/S01apache2 b/rc4.d/S01apache2
new file mode 120000 (symlink)
index 0000000..30c71a4
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache2
\ No newline at end of file
diff --git a/rc4.d/S01atd b/rc4.d/S01atd
new file mode 120000 (symlink)
index 0000000..8cd7248
--- /dev/null
@@ -0,0 +1 @@
+../init.d/atd
\ No newline at end of file
diff --git a/rc4.d/S01chrony b/rc4.d/S01chrony
new file mode 120000 (symlink)
index 0000000..53f1361
--- /dev/null
@@ -0,0 +1 @@
+../init.d/chrony
\ No newline at end of file
diff --git a/rc4.d/S01console-setup.sh b/rc4.d/S01console-setup.sh
new file mode 120000 (symlink)
index 0000000..0758e04
--- /dev/null
@@ -0,0 +1 @@
+../init.d/console-setup.sh
\ No newline at end of file
diff --git a/rc4.d/S01cron b/rc4.d/S01cron
new file mode 120000 (symlink)
index 0000000..b7a1f29
--- /dev/null
@@ -0,0 +1 @@
+../init.d/cron
\ No newline at end of file
diff --git a/rc4.d/S01dbus b/rc4.d/S01dbus
new file mode 120000 (symlink)
index 0000000..05fdfc6
--- /dev/null
@@ -0,0 +1 @@
+../init.d/dbus
\ No newline at end of file
diff --git a/rc4.d/S01haveged b/rc4.d/S01haveged
new file mode 120000 (symlink)
index 0000000..52dc0e1
--- /dev/null
@@ -0,0 +1 @@
+../init.d/haveged
\ No newline at end of file
diff --git a/rc4.d/S01mariadb b/rc4.d/S01mariadb
new file mode 120000 (symlink)
index 0000000..5d255e0
--- /dev/null
@@ -0,0 +1 @@
+../init.d/mariadb
\ No newline at end of file
diff --git a/rc4.d/S01named b/rc4.d/S01named
new file mode 120000 (symlink)
index 0000000..e346c63
--- /dev/null
@@ -0,0 +1 @@
+../init.d/named
\ No newline at end of file
diff --git a/rc4.d/S01open-vm-tools b/rc4.d/S01open-vm-tools
new file mode 120000 (symlink)
index 0000000..ca02c8d
--- /dev/null
@@ -0,0 +1 @@
+../init.d/open-vm-tools
\ No newline at end of file
diff --git a/rc4.d/S01postfix b/rc4.d/S01postfix
new file mode 120000 (symlink)
index 0000000..81e743c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/postfix
\ No newline at end of file
diff --git a/rc4.d/S01rsync b/rc4.d/S01rsync
new file mode 120000 (symlink)
index 0000000..3f11f90
--- /dev/null
@@ -0,0 +1 @@
+../init.d/rsync
\ No newline at end of file
diff --git a/rc4.d/S01ssh b/rc4.d/S01ssh
new file mode 120000 (symlink)
index 0000000..70e14ad
--- /dev/null
@@ -0,0 +1 @@
+../init.d/ssh
\ No newline at end of file
diff --git a/rc4.d/S01sudo b/rc4.d/S01sudo
new file mode 120000 (symlink)
index 0000000..ae5ad77
--- /dev/null
@@ -0,0 +1 @@
+../init.d/sudo
\ No newline at end of file
diff --git a/rc4.d/S01valkey-server b/rc4.d/S01valkey-server
new file mode 120000 (symlink)
index 0000000..c6f970e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/valkey-server
\ No newline at end of file
diff --git a/rc5.d/K01apache-htcacheclean b/rc5.d/K01apache-htcacheclean
new file mode 120000 (symlink)
index 0000000..2d49a8e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache-htcacheclean
\ No newline at end of file
diff --git a/rc5.d/S01apache2 b/rc5.d/S01apache2
new file mode 120000 (symlink)
index 0000000..30c71a4
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache2
\ No newline at end of file
diff --git a/rc5.d/S01atd b/rc5.d/S01atd
new file mode 120000 (symlink)
index 0000000..8cd7248
--- /dev/null
@@ -0,0 +1 @@
+../init.d/atd
\ No newline at end of file
diff --git a/rc5.d/S01chrony b/rc5.d/S01chrony
new file mode 120000 (symlink)
index 0000000..53f1361
--- /dev/null
@@ -0,0 +1 @@
+../init.d/chrony
\ No newline at end of file
diff --git a/rc5.d/S01console-setup.sh b/rc5.d/S01console-setup.sh
new file mode 120000 (symlink)
index 0000000..0758e04
--- /dev/null
@@ -0,0 +1 @@
+../init.d/console-setup.sh
\ No newline at end of file
diff --git a/rc5.d/S01cron b/rc5.d/S01cron
new file mode 120000 (symlink)
index 0000000..b7a1f29
--- /dev/null
@@ -0,0 +1 @@
+../init.d/cron
\ No newline at end of file
diff --git a/rc5.d/S01dbus b/rc5.d/S01dbus
new file mode 120000 (symlink)
index 0000000..05fdfc6
--- /dev/null
@@ -0,0 +1 @@
+../init.d/dbus
\ No newline at end of file
diff --git a/rc5.d/S01haveged b/rc5.d/S01haveged
new file mode 120000 (symlink)
index 0000000..52dc0e1
--- /dev/null
@@ -0,0 +1 @@
+../init.d/haveged
\ No newline at end of file
diff --git a/rc5.d/S01mariadb b/rc5.d/S01mariadb
new file mode 120000 (symlink)
index 0000000..5d255e0
--- /dev/null
@@ -0,0 +1 @@
+../init.d/mariadb
\ No newline at end of file
diff --git a/rc5.d/S01named b/rc5.d/S01named
new file mode 120000 (symlink)
index 0000000..e346c63
--- /dev/null
@@ -0,0 +1 @@
+../init.d/named
\ No newline at end of file
diff --git a/rc5.d/S01open-vm-tools b/rc5.d/S01open-vm-tools
new file mode 120000 (symlink)
index 0000000..ca02c8d
--- /dev/null
@@ -0,0 +1 @@
+../init.d/open-vm-tools
\ No newline at end of file
diff --git a/rc5.d/S01postfix b/rc5.d/S01postfix
new file mode 120000 (symlink)
index 0000000..81e743c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/postfix
\ No newline at end of file
diff --git a/rc5.d/S01rsync b/rc5.d/S01rsync
new file mode 120000 (symlink)
index 0000000..3f11f90
--- /dev/null
@@ -0,0 +1 @@
+../init.d/rsync
\ No newline at end of file
diff --git a/rc5.d/S01ssh b/rc5.d/S01ssh
new file mode 120000 (symlink)
index 0000000..70e14ad
--- /dev/null
@@ -0,0 +1 @@
+../init.d/ssh
\ No newline at end of file
diff --git a/rc5.d/S01sudo b/rc5.d/S01sudo
new file mode 120000 (symlink)
index 0000000..ae5ad77
--- /dev/null
@@ -0,0 +1 @@
+../init.d/sudo
\ No newline at end of file
diff --git a/rc5.d/S01valkey-server b/rc5.d/S01valkey-server
new file mode 120000 (symlink)
index 0000000..c6f970e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/valkey-server
\ No newline at end of file
diff --git a/rc6.d/K01apache-htcacheclean b/rc6.d/K01apache-htcacheclean
new file mode 120000 (symlink)
index 0000000..2d49a8e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache-htcacheclean
\ No newline at end of file
diff --git a/rc6.d/K01apache2 b/rc6.d/K01apache2
new file mode 120000 (symlink)
index 0000000..30c71a4
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apache2
\ No newline at end of file
diff --git a/rc6.d/K01atd b/rc6.d/K01atd
new file mode 120000 (symlink)
index 0000000..8cd7248
--- /dev/null
@@ -0,0 +1 @@
+../init.d/atd
\ No newline at end of file
diff --git a/rc6.d/K01chrony b/rc6.d/K01chrony
new file mode 120000 (symlink)
index 0000000..53f1361
--- /dev/null
@@ -0,0 +1 @@
+../init.d/chrony
\ No newline at end of file
diff --git a/rc6.d/K01haveged b/rc6.d/K01haveged
new file mode 120000 (symlink)
index 0000000..52dc0e1
--- /dev/null
@@ -0,0 +1 @@
+../init.d/haveged
\ No newline at end of file
diff --git a/rc6.d/K01hwclock.sh b/rc6.d/K01hwclock.sh
new file mode 120000 (symlink)
index 0000000..c2b57ec
--- /dev/null
@@ -0,0 +1 @@
+../init.d/hwclock.sh
\ No newline at end of file
diff --git a/rc6.d/K01mariadb b/rc6.d/K01mariadb
new file mode 120000 (symlink)
index 0000000..5d255e0
--- /dev/null
@@ -0,0 +1 @@
+../init.d/mariadb
\ No newline at end of file
diff --git a/rc6.d/K01named b/rc6.d/K01named
new file mode 120000 (symlink)
index 0000000..e346c63
--- /dev/null
@@ -0,0 +1 @@
+../init.d/named
\ No newline at end of file
diff --git a/rc6.d/K01networking b/rc6.d/K01networking
new file mode 120000 (symlink)
index 0000000..bd5b2c2
--- /dev/null
@@ -0,0 +1 @@
+../init.d/networking
\ No newline at end of file
diff --git a/rc6.d/K01open-vm-tools b/rc6.d/K01open-vm-tools
new file mode 120000 (symlink)
index 0000000..ca02c8d
--- /dev/null
@@ -0,0 +1 @@
+../init.d/open-vm-tools
\ No newline at end of file
diff --git a/rc6.d/K01postfix b/rc6.d/K01postfix
new file mode 120000 (symlink)
index 0000000..81e743c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/postfix
\ No newline at end of file
diff --git a/rc6.d/K01udev b/rc6.d/K01udev
new file mode 120000 (symlink)
index 0000000..f5866f9
--- /dev/null
@@ -0,0 +1 @@
+../init.d/udev
\ No newline at end of file
diff --git a/rc6.d/K01valkey-server b/rc6.d/K01valkey-server
new file mode 120000 (symlink)
index 0000000..c6f970e
--- /dev/null
@@ -0,0 +1 @@
+../init.d/valkey-server
\ No newline at end of file
diff --git a/rcS.d/S01apparmor b/rcS.d/S01apparmor
new file mode 120000 (symlink)
index 0000000..3c32f10
--- /dev/null
@@ -0,0 +1 @@
+../init.d/apparmor
\ No newline at end of file
diff --git a/rcS.d/S01hwclock.sh b/rcS.d/S01hwclock.sh
new file mode 120000 (symlink)
index 0000000..c2b57ec
--- /dev/null
@@ -0,0 +1 @@
+../init.d/hwclock.sh
\ No newline at end of file
diff --git a/rcS.d/S01keyboard-setup.sh b/rcS.d/S01keyboard-setup.sh
new file mode 120000 (symlink)
index 0000000..ee50a88
--- /dev/null
@@ -0,0 +1 @@
+../init.d/keyboard-setup.sh
\ No newline at end of file
diff --git a/rcS.d/S01kmod b/rcS.d/S01kmod
new file mode 120000 (symlink)
index 0000000..6085cfe
--- /dev/null
@@ -0,0 +1 @@
+../init.d/kmod
\ No newline at end of file
diff --git a/rcS.d/S01networking b/rcS.d/S01networking
new file mode 120000 (symlink)
index 0000000..bd5b2c2
--- /dev/null
@@ -0,0 +1 @@
+../init.d/networking
\ No newline at end of file
diff --git a/rcS.d/S01procps b/rcS.d/S01procps
new file mode 120000 (symlink)
index 0000000..435622f
--- /dev/null
@@ -0,0 +1 @@
+../init.d/procps
\ No newline at end of file
diff --git a/rcS.d/S01screen-cleanup b/rcS.d/S01screen-cleanup
new file mode 120000 (symlink)
index 0000000..205268c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/screen-cleanup
\ No newline at end of file
diff --git a/rcS.d/S01udev b/rcS.d/S01udev
new file mode 120000 (symlink)
index 0000000..f5866f9
--- /dev/null
@@ -0,0 +1 @@
+../init.d/udev
\ No newline at end of file
diff --git a/rcS.d/S01x11-common b/rcS.d/S01x11-common
new file mode 120000 (symlink)
index 0000000..b51f57c
--- /dev/null
@@ -0,0 +1 @@
+../init.d/x11-common
\ No newline at end of file
diff --git a/rearj.cfg b/rearj.cfg
new file mode 100644 (file)
index 0000000..cd643e8
--- /dev/null
+++ b/rearj.cfg
@@ -0,0 +1,29 @@
+VIRUS /usr/bin/scan /nomem /sub *
+arj
+ arj a -+ -y -a1 -r -j$ -s -jm -2s "%s"
+ arj x -y "%s"
+ AD
+zip
+ zip -r "%s" . -i *
+ unzip "%s"
+ AD
+rar
+ rar a -r -y "%s"
+ rar x -y "%s"
+ AD
+tar.Z
+ tar -cvZf "%s" .
+ tar -xvZf "%s"
+ ADT
+tar.gz
+ tar -cvzf "%s" .
+ tar -xvzf "%s"
+ ADT
+tgz
+ tar -cvzf "%s" .
+ tar -xvzf "%s"
+ ADT
+tar.bz2
+ tar --bzip2 -cvf "%s" .
+ tar --bzip2 -xvf "%s"
+ ADT
diff --git a/reportbug.conf b/reportbug.conf
new file mode 100644 (file)
index 0000000..11f0b99
--- /dev/null
@@ -0,0 +1,129 @@
+# Example configuration file for reportbug(1)
+# Options can be specified in any order
+# usually, no-OPTION will disable OPTION if OPTION is boolean
+
+# Default severity level; will bypass prompt in reportbug, so disabled
+# severity normal
+
+# BTS to use
+# See 'reportbug --bts help' for a current list of supported BTSes
+# bts debian
+
+# Submission address: default is 'submit'
+# Can also be 'quiet' or 'maintonly'; see --report-quiet and --maintonly
+# entries on man page
+submit
+
+# Mailer to use (default is empty, to use internal mailer). One of:
+# mutt
+# mh
+# nmh
+
+# You can also use 'mua'; it takes an argument like that to --mua
+# mua 'mutt'
+
+# Additional headers to add:
+# header "X-Silly-Header: I haven't edited my /etc/reportbug.conf"
+# header "X-Debbugs-No-Ack: please" # to suppress acknowledgments
+
+# The following boolean options can be disabled by adding 'no-'
+# Should I query the BTS?
+query-bts
+
+# Should I check for newer releases of the package
+# check-available
+
+# Should I CC the reporter?
+cc
+
+# Should I ever include modified config files?
+config-files
+
+# Should I strip down modified config files?
+compress
+
+# Specify one of the following to digitally sign bug reports automatically.
+# sign gpg
+# sign pgp
+# sign gnupg
+# sign none #to disable signing
+
+# Specify the GPG/PGP keyid to use instead of the default one on your system.
+# keyid 56187544
+
+# Default "from" email address and real name (override with env. vars.)
+# email "humberto@example.com"
+# realname "Humberto Flores III"
+
+# Default REPLYTO (override with env. variables)
+# replyto "Humberto Flores <humflores@example.org>"
+
+# Default HTTP Proxy (override with the env. variable)
+# http_proxy http://proxy.example.com:3128/
+
+# Use this to enable the internal MTA (bypassing /usr/sbin/sendmail)
+# smtphost localhost
+#
+# You can also specify a port other than 25
+# smtphost mail.example.com:2525
+
+# Username and password for SMTP
+# smtpuser bob
+# smtppasswd XXX
+
+# Use TLS encryption (via STARTTLS)
+# smtptls
+
+# Use this to specify the path of your MTA; any SMTP server on Debian
+# should be OK with the default.
+# mta /usr/sbin/sendmail
+
+# User interface: text, urwid or gtk
+# querybts and reportbug will use this setting
+# ui text
+
+# Editor
+# editor "emacs -nw"
+
+# Always use template mode (bypass all prompts, output to stdout)
+# template
+
+# Print the report on screen, don't sent it
+# printonly
+
+# Don't query source packages
+# no-query-source
+
+# Disable debconf-show output
+# no-debconf
+
+# Automatically verify package installation before reporting using
+# debsums, if available
+verify
+
+# Disable all external queries
+# offline
+
+# Default operating mode (novice, standard, advanced, expert)
+# mode novice
+
+# Don't check whether user IDs are outside admin range - root is still checked
+# no-check-uid
+
+# Use a command to open the mbox file of the reports
+# mbox_reader_cmd "mutt -f %s"
+
+# Justification in case of RC bugs
+# justification "text here"
+
+# BTS mirror
+# mirror http://mirror.address/
+
+# Paranoid mode, print the whole email envelope before sending it
+# paranoid
+
+# The max dimension allowed for an attachment file
+# max_attachment_size
+
+# Directory where unsubmitted reports are saved, default is /tmp
+# draftpath "~/draftbugreports"
diff --git a/resolv.conf b/resolv.conf
new file mode 100644 (file)
index 0000000..2417db2
--- /dev/null
@@ -0,0 +1,4 @@
+search pixelpark.com uhu-banane.de brehm-online.com hennig-berlin.org uhu-banane.net
+nameserver 217.66.51.54
+nameserver 217.66.51.185
+nameserver 77.74.232.24
diff --git a/resolvconf/update-libc.d/postfix b/resolvconf/update-libc.d/postfix
new file mode 100755 (executable)
index 0000000..84e954b
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh -e
+
+# we only need to copy this in if the service is already running.
+# if it's not running, it'll get picked up by the init script on start.
+/usr/sbin/service postfix status >/dev/null 2>&1 || exit 0
+
+QUEUEDIR="$(/usr/sbin/postconf -hx queue_directory 2>/dev/null || true)"
+if [ -n "$QUEUEDIR" ]; then
+    cp /etc/resolv.conf "${QUEUEDIR}/etc/resolv.conf"
+    /usr/sbin/service postfix reload >/dev/null 2>&1 || exit 0
+fi
+
+exit 0
diff --git a/rmt b/rmt
new file mode 120000 (symlink)
index 0000000..34d8994
--- /dev/null
+++ b/rmt
@@ -0,0 +1 @@
+/usr/sbin/rmt
\ No newline at end of file
diff --git a/rpc b/rpc
new file mode 100644 (file)
index 0000000..fa84a47
--- /dev/null
+++ b/rpc
@@ -0,0 +1,41 @@
+# This file contains user readable names that can be used in place of rpc
+# program numbers.
+
+portmapper     100000  portmap sunrpc rpcbind
+rstatd         100001  rstat rstat_svc rup perfmeter
+rusersd                100002  rusers
+nfs            100003  nfsprog
+ypserv         100004  ypprog
+mountd         100005  mount showmount
+ypbind         100007
+walld          100008  rwall shutdown
+yppasswdd      100009  yppasswd
+etherstatd     100010  etherstat
+rquotad                100011  rquotaprog quota rquota
+sprayd         100012  spray
+3270_mapper    100013
+rje_mapper     100014
+selection_svc  100015  selnsvc
+database_svc   100016
+rexd           100017  rex
+alis           100018
+sched          100019
+llockmgr       100020
+nlockmgr       100021
+x25.inr                100022
+statmon                100023
+status         100024
+bootparam      100026
+ypupdated      100028  ypupdate
+keyserv                100029  keyserver
+tfsd           100037 
+nsed           100038
+nsemntd                100039
+ypxfrd         100069
+nfs_acl                100227
+pcnfsd         150001
+amd            300019  amq
+sgi_fam                391002
+ugidd          545580417
+fypxfrd                600100069       freebsd-ypxfrd
+bwnfsd          788585389
diff --git a/rsyslog.d/postfix.conf b/rsyslog.d/postfix.conf
new file mode 100644 (file)
index 0000000..7b5d9b0
--- /dev/null
@@ -0,0 +1,4 @@
+# Create an additional socket in postfix's chroot in order not to break
+# mail logging when rsyslog is restarted.  If the directory is missing,
+# rsyslog will silently skip creating the socket.
+$AddUnixListenSocket /var/spool/postfix/dev/log
diff --git a/runit/runsvdir/default/ssh b/runit/runsvdir/default/ssh
new file mode 120000 (symlink)
index 0000000..9322894
--- /dev/null
@@ -0,0 +1 @@
+/etc/sv/ssh
\ No newline at end of file
diff --git a/screenrc b/screenrc
new file mode 100644 (file)
index 0000000..032db64
--- /dev/null
+++ b/screenrc
@@ -0,0 +1,108 @@
+# $Id: screenrc,v 1.15 2003/10/08 11:39:03 zal Exp $
+#
+# /etc/screenrc
+#
+#   This is the system wide screenrc.
+#
+#   You can use this file to change the default behavior of screen system wide
+#   or copy it to ~/.screenrc and use it as a starting point for your own
+#   settings.
+#
+#   Commands in this file are used to set options, bind screen functions to
+#   keys, redefine terminal capabilities, and to automatically establish one or
+#   more windows at the beginning of your screen session.
+#
+#   This is not a comprehensive list of options, look at the screen manual for
+#   details on everything that you can put in this file.
+#
+
+# ------------------------------------------------------------------------------
+# SCREEN SETTINGS
+# ------------------------------------------------------------------------------
+
+#startup_message off
+#nethack on
+
+#defflow on # will force screen to process ^S/^Q
+deflogin on
+#autodetach off
+
+# turn visual bell on
+vbell on
+vbell_msg "   Wuff  ----  Wuff!!  "
+
+# define a bigger scrollback, default is 100 lines
+defscrollback 1024
+
+# ------------------------------------------------------------------------------
+# SCREEN KEYBINDINGS
+# ------------------------------------------------------------------------------
+
+# Remove some stupid / dangerous key bindings
+bind ^k
+#bind L
+bind ^\
+# Make them better
+bind \\ quit
+bind K kill
+bind I login on
+bind O login off
+bind } history
+
+# An example of a "screen scraper" which will launch urlview on the current
+# screen window
+#
+#bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview"
+
+# ------------------------------------------------------------------------------
+# TERMINAL SETTINGS
+# ------------------------------------------------------------------------------
+
+# The vt100 description does not mention "dl". *sigh*
+termcapinfo vt100 dl=5\E[M
+
+# turn sending of screen messages to hardstatus off
+hardstatus off
+# Set the hardstatus prop on gui terms to set the titlebar/icon title
+termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007
+# use this for the hard status string
+hardstatus string "%h%? users: %u%?"
+
+# An alternative hardstatus to display a bar at the bottom listing the
+# windownames and highlighting the current windowname in blue. (This is only
+# enabled if there is no hardstatus setting for your terminal)
+#
+#hardstatus lastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
+
+# set these terminals up to be 'optimal' instead of vt100
+termcapinfo xterm*|linux*|rxvt*|Eterm* OP
+
+# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
+# (This fixes the "Aborted because of window size change" konsole symptoms found
+#  in bug #134198)
+termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
+
+# To get screen to add lines to xterm's scrollback buffer, uncomment the
+# following termcapinfo line which tells xterm to use the normal screen buffer
+# (which has scrollback), not the alternate screen buffer.
+#
+#termcapinfo xterm|xterms|xs|rxvt ti@:te@
+
+# Enable non-blocking mode to better cope with flaky ssh connections.
+defnonblock 5
+
+# ------------------------------------------------------------------------------
+# STARTUP SCREENS
+# ------------------------------------------------------------------------------
+
+# Example of automatically running some programs in windows on screen startup.
+#
+#   The following will open top in the first window, an ssh session to monkey
+#   in the next window, and then open mutt and tail in windows 8 and 9
+#   respectively.
+#
+# screen top
+# screen -t monkey ssh monkey
+# screen -t mail 8 mutt
+# screen -t daemon 9 tail -f /var/log/daemon.log
+
diff --git a/security/access.conf b/security/access.conf
new file mode 100644 (file)
index 0000000..47b6b84
--- /dev/null
@@ -0,0 +1,122 @@
+# Login access control table.
+#
+# Comment line must start with "#", no space at front.
+# Order of lines is important.
+#
+# When someone logs in, the table is scanned for the first entry that
+# matches the (user, host) combination, or, in case of non-networked
+# logins, the first entry that matches the (user, tty) combination.  The
+# permissions field of that table entry determines whether the login will
+# be accepted or refused.
+#
+# Format of the login access control table is three fields separated by a
+# ":" character:
+#
+# [Note, if you supply a 'fieldsep=|' argument to the pam_access.so
+# module, you can change the field separation character to be
+# '|'. This is useful for configurations where you are trying to use
+# pam_access with X applications that provide PAM_TTY values that are
+# the display variable like "host:0".]
+#
+#      permission:users:origins
+#
+# The first field should be a "+" (access granted) or "-" (access denied)
+# character.
+#
+# The second field should be a list of one or more login names, group
+# names, or ALL (always matches). A pattern of the form user@host is
+# matched when the login name matches the "user" part, and when the
+# "host" part matches the local machine name.
+#
+# The third field should be a list of one or more tty names (for
+# non-networked logins), host names, domain names (begin with "."), host
+# addresses, internet network numbers (end with "."), ALL (always
+# matches), NONE (matches no tty on non-networked logins) or
+# LOCAL (matches any string that does not contain a "." character).
+#
+# You can use @netgroupname in host or user patterns; this even works
+# for @usergroup@@hostgroup patterns.
+#
+# The EXCEPT operator makes it possible to write very compact rules.
+#
+# The group file is searched only when a name does not match that of the
+# logged-in user. Both the user's primary group is matched, as well as
+# groups in which users are explicitly listed.
+# To avoid problems with accounts, which have the same name as a group,
+# you can use brackets around group names '(group)' to differentiate.
+# In this case, you should also set the "nodefgroup" option.
+#
+# TTY NAMES: Must be in the form returned by ttyname(3) less the initial
+# "/dev" (e.g. tty1 or vc/1)
+#
+##############################################################################
+#
+# Disallow non-root logins on tty1
+#
+#-:ALL EXCEPT root:tty1
+#
+# Disallow console logins to all but a few accounts.
+#
+#-:ALL EXCEPT wheel shutdown sync:LOCAL
+#
+# Same, but make sure that really the group wheel and not the user
+# wheel is used (use nodefgroup argument, too):
+#
+#-:ALL EXCEPT (wheel) shutdown sync:LOCAL
+#
+# Disallow non-local logins to privileged accounts (group wheel).
+#
+#-:wheel:ALL EXCEPT LOCAL .win.tue.nl
+#
+# Some accounts are not allowed to login from anywhere:
+#
+#-:wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde:ALL
+#
+# All other accounts are allowed to login from anywhere.
+#
+##############################################################################
+# All lines from here up to the end are building a more complex example.
+##############################################################################
+#
+# User "root" should be allowed to get access via cron .. tty5 tty6.
+#+:root:cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6
+#
+# User "root" should be allowed to get access from hosts with ip addresses.
+#+:root:192.168.200.1 192.168.200.4 192.168.200.9
+#+:root:127.0.0.1
+#
+# User "root" should get access from network 192.168.201.
+# This term will be evaluated by string matching.
+# comment: It might be better to use network/netmask instead.
+#          The same is 192.168.201.0/24 or 192.168.201.0/255.255.255.0
+#+:root:192.168.201.
+#
+# User "root" should be able to have access from domain.
+# Uses string matching also.
+#+:root:.foo.bar.org
+#
+# User "root" should be denied to get access from all other sources.
+#-:root:ALL
+#
+# User "foo" and members of netgroup "nis_group" should be
+# allowed to get access from all sources.
+# This will only work if netgroup service is available.
+#+:@nis_group foo:ALL
+#
+# User "john" should get access from ipv4 net/mask
+#+:john:127.0.0.0/24
+#
+# User "john" should get access from ipv4 as ipv6 net/mask
+#+:john:::ffff:127.0.0.0/127
+#
+# User "john" should get access from ipv6 host address
+#+:john:2001:4ca0:0:101::1
+#
+# User "john" should get access from ipv6 host address (same as above)
+#+:john:2001:4ca0:0:101:0:0:0:1
+#
+# User "john" should get access from ipv6 net/mask
+#+:john:2001:4ca0:0:101::/64
+#
+# All other users should be denied to get access from all sources.
+#-:ALL:ALL
diff --git a/security/faillock.conf b/security/faillock.conf
new file mode 100644 (file)
index 0000000..16d93df
--- /dev/null
@@ -0,0 +1,62 @@
+# Configuration for locking the user after multiple failed
+# authentication attempts.
+#
+# The directory where the user files with the failure records are kept.
+# The default is /var/run/faillock.
+# dir = /var/run/faillock
+#
+# Will log the user name into the system log if the user is not found.
+# Enabled if option is present.
+# audit
+#
+# Don't print informative messages.
+# Enabled if option is present.
+# silent
+#
+# Don't log informative messages via syslog.
+# Enabled if option is present.
+# no_log_info
+#
+# Only track failed user authentications attempts for local users
+# in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users.
+# The `faillock` command will also no longer track user failed
+# authentication attempts. Enabling this option will prevent a
+# double-lockout scenario where a user is locked out locally and
+# in the centralized mechanism.
+# Enabled if option is present.
+# local_users_only
+#
+# Deny access if the number of consecutive authentication failures
+# for this user during the recent interval exceeds n tries.
+# The default is 3.
+# deny = 3
+#
+# The length of the interval during which the consecutive
+# authentication failures must happen for the user account
+# lock out is <replaceable>n</replaceable> seconds.
+# The default is 900 (15 minutes).
+# fail_interval = 900
+#
+# The access will be re-enabled after n seconds after the lock out.
+# The value 0 has the same meaning as value `never` - the access
+# will not be re-enabled without resetting the faillock
+# entries by the `faillock` command.
+# The default is 600 (10 minutes).
+# unlock_time = 600
+#
+# Root account can become locked as well as regular accounts.
+# Enabled if option is present.
+# even_deny_root
+#
+# This option implies the `even_deny_root` option.
+# Allow access after n seconds to root account after the
+# account is locked. In case the option is not specified
+# the value is the same as of the `unlock_time` option.
+# root_unlock_time = 900
+#
+# If a group name is specified with this option, members
+# of the group will be handled by this module the same as
+# the root account (the options `even_deny_root>` and
+# `root_unlock_time` will apply to them.
+# By default, the option is not set.
+# admin_group = <admin_group_name>
diff --git a/security/group.conf b/security/group.conf
new file mode 100644 (file)
index 0000000..7c07a26
--- /dev/null
@@ -0,0 +1,106 @@
+#
+# This is the configuration file for the pam_group module.
+#
+
+#
+# *** Please note that giving group membership on a session basis is
+# *** NOT inherently secure. If a user can create an executable that
+# *** is setgid a group that they are infrequently given membership
+# *** of, they can basically obtain group membership any time they
+# *** like. Example: games are allowed between the hours of 6pm and 6am
+# *** user joe logs in at 7pm writes a small C-program toplay.c that
+# *** invokes their favorite shell, compiles it and does
+# *** "chgrp play toplay; chmod g+s toplay". They are basically able
+# *** to play games any time... You have been warned. AGM
+#
+
+#
+# The syntax of the lines is as follows:
+#
+#       services;ttys;users;times;groups
+#
+# white space is ignored and lines maybe extended with '\\n' (escaped
+# newlines). From reading these comments, it is clear that
+# text following a '#' is ignored to the end of the line.
+#
+# the combination of individual users/terminals etc is a logic list
+# namely individual tokens that are optionally prefixed with '!' (logical
+# not) and separated with '&' (logical and) and '|' (logical or).
+#
+# services
+#       is a logic list of PAM service names that the rule applies to.
+#
+# ttys
+#       is a logic list of terminal names that this rule applies to.
+#
+# users
+#       is a logic list of users or a netgroup of users to whom this
+#       rule applies.
+#
+# NB. For these items the simple wildcard '*' may be used only once.
+#     With netgroups no wildcards or logic operators are allowed.
+#
+# times
+#       It is used to indicate "when" these groups are to be given to the
+#       user. The format here is a logic list of day/time-range
+#       entries the days are specified by a sequence of two character
+#       entries, MoTuSa for example is Monday Tuesday and Saturday. Note
+#       that repeated days are unset MoMo = no day, and MoWk = all weekdays
+#       bar Monday. The two character combinations accepted are
+#
+#               Mo Tu We Th Fr Sa Su Wk Wd Al
+#
+#       the last two being week-end days and all 7 days of the week
+#       respectively. As a final example, AlFr means all days except Friday.
+#
+#       Each day/time-range can be prefixed with a '!' to indicate "anything
+#       but"
+#
+#       The time-range part is two 24-hour times HHMM separated by a hyphen
+#       indicating the start and finish time (if the finish time is smaller
+#       than the start time it is deemed to apply on the following day).
+#
+# groups
+#      The (comma or space separated) list of groups that the user
+#      inherits membership of. These groups are added if the previous
+#      fields are satisfied by the user's request
+#
+# For a rule to be active, ALL of service+ttys+users must be satisfied
+# by the applying process.
+#
+
+#
+# Note, to get this to work as it is currently typed you need
+#
+# 1. to run an application as root
+# 2. add the following groups to the /etc/group file:
+#              floppy, play, sound
+#
+
+#
+# Here is a simple example: running 'xsh' on tty* (any ttyXXX device),
+# the user 'us' is given access to the floppy (through membership of
+# the floppy group)
+#
+
+#xsh;tty*&!ttyp*;us;Al0000-2400;floppy
+
+#
+# another example: running 'xsh' on tty* (any ttyXXX device),
+# the user 'sword' is given access to games (through membership of
+# the sound and play group) after work hours.
+#
+
+#xsh; tty* ;sword;!Wk0900-1800;sound, play
+#xsh; tty* ;*;Al0900-1800;floppy
+
+#
+# yet another example: any member of the group 'admin' running
+# 'xsh' on tty*, is granted access (at any time) to the group 'plugdev'
+#
+
+#xsh; tty* ;%admin;Al0000-2400;plugdev
+
+#
+# End of group.conf file
+#
diff --git a/security/limits.conf b/security/limits.conf
new file mode 100644 (file)
index 0000000..6b3865c
--- /dev/null
@@ -0,0 +1,67 @@
+# /etc/security/limits.conf
+#
+#This file sets the resource limits for the users logged in via PAM.
+#It does not affect resource limits of the system services.
+#
+#Also note that configuration files in /etc/security/limits.d directory,
+#which are read in alphabetical order, override the settings in this
+#file in case the domain is the same or more specific.
+#That means, for example, that setting a limit for wildcard domain here
+#can be overridden with a wildcard setting in a config file in the
+#subdirectory, but a user specific setting here can be overridden only
+#with a user specific setting in the subdirectory.
+#
+#Each line describes a limit for a user in the form:
+#
+#<domain>        <type>  <item>  <value>
+#
+#Where:
+#<domain> can be:
+#        - a user name
+#        - a group name, with @group syntax
+#        - the wildcard *, for default entry
+#        - the wildcard %, can be also used with %group syntax,
+#                 for maxlogin limit
+#        - NOTE: group and wildcard limits are not applied to root.
+#          To apply a limit to the root user, <domain> must be
+#          the literal username root.
+#
+#<type> can have the two values:
+#        - "soft" for enforcing the soft limits
+#        - "hard" for enforcing hard limits
+#
+#<item> can be one of the following:
+#        - core - limits the core file size (KB)
+#        - data - max data size (KB)
+#        - fsize - maximum filesize (KB)
+#        - memlock - max locked-in-memory address space (KB)
+#        - nofile - max number of open file descriptors
+#        - rss - max resident set size (KB)
+#        - stack - max stack size (KB)
+#        - cpu - max CPU time (MIN)
+#        - nproc - max number of processes
+#        - as - address space limit (KB)
+#        - maxlogins - max number of logins for this user
+#        - maxsyslogins - max number of logins on the system
+#        - priority - the priority to run user process with
+#        - locks - max number of file locks the user can hold
+#        - sigpending - max number of pending signals
+#        - msgqueue - max memory used by POSIX message queues (bytes)
+#        - nice - max nice priority allowed to raise to values: [-20, 19]
+#        - rtprio - max realtime priority
+#        - chroot - change root to directory (Debian-specific)
+#
+#<domain>      <type>  <item>         <value>
+#
+
+#*               soft    core            0
+#root            hard    core            100000
+#*               hard    rss             10000
+#@student        hard    nproc           20
+#@faculty        soft    nproc           20
+#@faculty        hard    nproc           50
+#ftp             hard    nproc           0
+#ftp             -       chroot          /ftp
+#@student        -       maxlogins       4
+
+# End of file
diff --git a/security/namespace.conf b/security/namespace.conf
new file mode 100644 (file)
index 0000000..75ec619
--- /dev/null
@@ -0,0 +1,31 @@
+# /etc/security/namespace.conf
+#
+# See /usr/share/doc/pam-*/txts/README.pam_namespace for more information.
+#
+# Uncommenting the following three lines will polyinstantiate
+# /tmp, /var/tmp and user's home directories. /tmp and /var/tmp will
+# be polyinstantiated based on the MLS level part of the security context as well as user
+# name, Polyinstantion will not be performed for user root and adm for directories
+# /tmp and /var/tmp, whereas home directories will be polyinstantiated for all users.
+# The user name and context is appended to the instance prefix.
+#
+# Note that instance directories do not have to reside inside the
+# polyinstantiated directory. In the examples below, instances of /tmp
+# will be created in /tmp-inst directory, where as instances of /var/tmp
+# and users home directories will reside within the directories that
+# are being polyinstantiated.
+#
+# Instance parent directories must exist for the polyinstantiation
+# mechanism to work. By default, they should be created with the mode
+# of 000. pam_namespace module will enforce this mode unless it
+# is explicitly called with an argument to ignore the mode of the
+# instance parent. System administrators should use this argument with
+# caution, as it will reduce security and isolation achieved by
+# polyinstantiation. The parent directories (except $HOME) are created
+# at boot by pam_namespace_helper, but in a live system, system
+# administrators should create the parent directories before enabling
+# them here.
+#
+#/tmp     /tmp-inst/           level      root,adm
+#/var/tmp /var/tmp/tmp-inst/           level      root,adm
+#$HOME    $HOME/$USER.inst/     level
diff --git a/security/namespace.init b/security/namespace.init
new file mode 100755 (executable)
index 0000000..67d4aa2
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+# It receives polydir path as $1, the instance path as $2,
+# a flag whether the instance dir was newly created (0 - no, 1 - yes) in $3,
+# and user name in $4.
+#
+# The following section will copy the contents of /etc/skel if this is a
+# newly created home directory.
+if [ "$3" = 1 ]; then
+        # This line will fix the labeling on all newly created directories
+        [ -x /sbin/restorecon ] && /sbin/restorecon "$1"
+        user="$4"
+        passwd=$(getent passwd "$user")
+        homedir=$(echo "$passwd" | cut -f6 -d":")
+        if [ "$1" = "$homedir" ]; then
+                gid=$(echo "$passwd" | cut -f4 -d":")
+                cp -rT /etc/skel "$homedir"
+                chown -R "$user":"$gid" "$homedir"
+                mask=$(awk '/^UMASK/{gsub("#.*$", "", $2); print $2; exit}' /etc/login.defs)
+                mode=$(printf "%o" $((0777 & ~$mask)))
+                chmod ${mode:-700} "$homedir"
+                [ -x /sbin/restorecon ] && /sbin/restorecon -R "$homedir"
+        fi
+fi
+
+exit 0
diff --git a/security/opasswd b/security/opasswd
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/security/pam_env.conf b/security/pam_env.conf
new file mode 100644 (file)
index 0000000..2549e43
--- /dev/null
@@ -0,0 +1,73 @@
+#
+# This is the configuration file for pam_env, a PAM module to load in
+# a configurable list of environment variables for a
+#
+# The original idea for this came from Andrew G. Morgan ...
+#<quote>
+#   Mmm. Perhaps you might like to write a pam_env module that reads a
+#   default environment from a file? I can see that as REALLY
+#   useful... Note it would be an "auth" module that returns PAM_IGNORE
+#   for the auth part and sets the environment returning PAM_SUCCESS in
+#   the setcred function...
+#</quote>
+#
+# What I wanted was the REMOTEHOST variable set, purely for selfish
+# reasons, and AGM didn't want it added to the SimpleApps login
+# program (which is where I added the patch). So, my first concern is
+# that variable, from there there are numerous others that might/would
+# be useful to be set: NNTPSERVER, LESS, PATH, PAGER, MANPAGER .....
+#
+# Of course, these are a different kind of variable than REMOTEHOST in
+# that they are things that are likely to be configured by
+# administrators rather than set by logging in, how to treat them both
+# in the same config file?
+#
+# Here is my idea:
+#
+# Each line starts with the variable name, there are then two possible
+# options for each variable DEFAULT and OVERRIDE.
+# DEFAULT allows an administrator to set the value of the
+# variable  to some default value, if none is supplied then the empty
+# string is assumed. The OVERRIDE option tells pam_env that it should
+# enter in its value (overriding the default value) if there is one
+# to use. OVERRIDE is not used, "" is assumed and no override will be
+# done.
+#
+# VARIABLE   [DEFAULT=[value]]  [OVERRIDE=[value]]
+#
+# (Possibly non-existent) environment variables may be used in values
+# using the ${string} syntax and (possibly non-existent) PAM_ITEMs may
+# be used in values using the @{string} syntax. Both the $ and @
+# characters can be backslash escaped to be used as literal values
+# values can be delimited with "", escaped " not supported.
+# Note that many environment variables that you would like to use
+# may not be set by the time the module is called.
+# For example, HOME is used below several times, but
+# many PAM applications don't make it available by the time you need it.
+#
+#
+# First, some special variables
+#
+# Set the REMOTEHOST variable for any hosts that are remote, default
+# to "localhost" rather than not being set at all
+#REMOTEHOST    DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
+#
+# Set the DISPLAY variable if it seems reasonable
+#DISPLAY               DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
+#
+#
+#  Now some simple variables
+#
+#PAGER         DEFAULT=less
+#MANPAGER      DEFAULT=less
+#LESS          DEFAULT="M q e h15 z23 b80"
+#NNTPSERVER    DEFAULT=localhost
+#PATH          DEFAULT=${HOME}/bin:/usr/local/bin:/bin\
+#:/usr/bin:/usr/local/bin/X11:/usr/bin/X11
+#
+# silly examples of escaped variables, just to show how they work.
+#
+#DOLLAR                DEFAULT=\$
+#DOLLARDOLLAR  DEFAULT=        OVERRIDE=\$${DOLLAR}
+#DOLLARPLUS    DEFAULT=\${REMOTEHOST}${REMOTEHOST}
+#ATSIGN                DEFAULT=""      OVERRIDE=\@
diff --git a/security/sepermit.conf b/security/sepermit.conf
new file mode 100644 (file)
index 0000000..0a12cd8
--- /dev/null
@@ -0,0 +1,11 @@
+# /etc/security/sepermit.conf
+#
+# Each line contains either:
+#        - a user name
+#        - a group name, with @group syntax
+#        - a SELinux user name, with %seuser syntax
+# Each line can contain optional arguments separated by :
+# The possible arguments are:
+#        - exclusive - only single login session will
+#          be allowed for the user and the user's processes
+#          will be killed on logout
diff --git a/security/time.conf b/security/time.conf
new file mode 100644 (file)
index 0000000..68d2dad
--- /dev/null
@@ -0,0 +1,65 @@
+# this is an example configuration file for the pam_time module. Its syntax
+# was initially based heavily on that of the shadow package (shadow-960129).
+#
+# the syntax of the lines is as follows:
+#
+#       services;ttys;users;times
+#
+# white space is ignored and lines maybe extended with '\\n' (escaped
+# newlines). As should be clear from reading these comments,
+# text following a '#' is ignored to the end of the line.
+#
+# the combination of individual users/terminals etc is a logic list
+# namely individual tokens that are optionally prefixed with '!' (logical
+# not) and separated with '&' (logical and) and '|' (logical or).
+#
+# services
+#      is a logic list of PAM service names that the rule applies to.
+#
+# ttys
+#      is a logic list of terminal names that this rule applies to.
+#
+# users
+#      is a logic list of users or a netgroup of users to whom this
+#      rule applies.
+#
+# NB. For these items the simple wildcard '*' may be used only once.
+#
+# times
+#      the format here is a logic list of day/time-range
+#      entries the days are specified by a sequence of two character
+#      entries, MoTuSa for example is Monday Tuesday and Saturday. Note
+#      that repeated days are unset MoMo = no day, and MoWk = all weekdays
+#      bar Monday. The two character combinations accepted are
+#
+#              Mo Tu We Th Fr Sa Su Wk Wd Al
+#
+#      the last two being week-end days and all 7 days of the week
+#      respectively. As a final example, AlFr means all days except Friday.
+#
+#      each day/time-range can be prefixed with a '!' to indicate "anything
+#      but"
+#
+#      The time-range part is two 24-hour times HHMM separated by a hyphen
+#      indicating the start and finish time (if the finish time is smaller
+#      than the start time it is deemed to apply on the following day).
+#
+# for a rule to be active, ALL of service+ttys+users must be satisfied
+# by the applying process.
+#
+
+#
+# Here is a simple example: running blank on tty* (any ttyXXX device),
+# the users 'you' and 'me' are denied service all of the time
+#
+
+#blank;tty* & !ttyp*;you|me;!Al0000-2400
+
+# Another silly example, user 'root' is denied xsh access
+# from pseudo terminals at the weekend and on mondays.
+
+#xsh;ttyp*;root;!WdMo0000-2400
+
+#
+# End of example file.
+#
diff --git a/security/user_map.conf b/security/user_map.conf
new file mode 100644 (file)
index 0000000..4af8fb0
--- /dev/null
@@ -0,0 +1,13 @@
+#
+# Configuration file for pam_user_map.so
+#
+# defines mapping in the form
+#
+#       orig_user_name: mapped_user_name
+#
+# or (to map all users in a specific group)
+#
+#       @group_name: mapped_user_name
+#
+# comments and empty lines are ignored
+#
diff --git a/selinux/semanage.conf b/selinux/semanage.conf
new file mode 100644 (file)
index 0000000..134ce51
--- /dev/null
@@ -0,0 +1,46 @@
+# Authors: Jason Tang <jtang@tresys.com>
+#
+# Copyright (C) 2004-2005 Tresys Technology, LLC
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License, or (at your option) any later version.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# Specify how libsemanage will interact with a SELinux policy manager.
+# The four options are:
+#
+#  "source"     - libsemanage manipulates a source SELinux policy
+#  "direct"     - libsemanage will write directly to a module store.
+#  /foo/bar     - Write by way of a policy management server, whose
+#                 named socket is at /foo/bar.  The path must begin
+#                 with a '/'.
+#  example.com:4242
+#               - Establish a TCP connection to a remote policy
+#                 management server at example.com.  If there is a colon
+#                 then the remainder is interpreted as a port number;
+#                 otherwise default to port 4242.
+module-store = direct
+
+# When generating the final linked and expanded policy, by default
+# semanage will set the policy version to POLICYDB_VERSION_MAX, as
+# given in <sepol/policydb.h>.  Change this setting if a different
+# version is necessary.
+#policy-version = 19
+
+# expand-check check neverallow rules when executing all semanage commands.
+# Large penalty in time if you turn this on.
+expand-check=0
+
+# By default, semanage will generate policies for the SELinux target.
+# To build policies for Xen, uncomment the following line.
+#target-platform = xen
diff --git a/services b/services
new file mode 100644 (file)
index 0000000..f90e9de
--- /dev/null
+++ b/services
@@ -0,0 +1,361 @@
+# Network services, Internet style
+#
+# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
+#
+# New ports will be added on request if they have been officially assigned
+# by IANA and used in the real-world or are needed by a debian package.
+# If you need a huge list of used numbers please install the nmap package.
+
+tcpmux         1/tcp                           # TCP port service multiplexer
+echo           7/tcp
+echo           7/udp
+discard                9/tcp           sink null
+discard                9/udp           sink null
+systat         11/tcp          users
+daytime                13/tcp
+daytime                13/udp
+netstat                15/tcp
+qotd           17/tcp          quote
+chargen                19/tcp          ttytst source
+chargen                19/udp          ttytst source
+ftp-data       20/tcp
+ftp            21/tcp
+fsp            21/udp          fspd
+ssh            22/tcp                          # SSH Remote Login Protocol
+telnet         23/tcp
+smtp           25/tcp          mail
+time           37/tcp          timserver
+time           37/udp          timserver
+whois          43/tcp          nicname
+tacacs         49/tcp                          # Login Host Protocol (TACACS)
+tacacs         49/udp
+domain         53/tcp                          # Domain Name Server
+domain         53/udp
+bootps         67/udp
+bootpc         68/udp
+tftp           69/udp
+gopher         70/tcp                          # Internet Gopher
+finger         79/tcp
+http           80/tcp          www             # WorldWideWeb HTTP
+kerberos       88/tcp          kerberos5 krb5 kerberos-sec     # Kerberos v5
+kerberos       88/udp          kerberos5 krb5 kerberos-sec     # Kerberos v5
+iso-tsap       102/tcp         tsap            # part of ISODE
+acr-nema       104/tcp         dicom           # Digital Imag. & Comm. 300
+pop3           110/tcp         pop-3           # POP version 3
+sunrpc         111/tcp         portmapper      # RPC 4.0 portmapper
+sunrpc         111/udp         portmapper
+auth           113/tcp         authentication tap ident
+nntp           119/tcp         readnews untp   # USENET News Transfer Protocol
+ntp            123/udp                         # Network Time Protocol
+epmap          135/tcp         loc-srv         # DCE endpoint resolution
+netbios-ns     137/udp                         # NETBIOS Name Service
+netbios-dgm    138/udp                         # NETBIOS Datagram Service
+netbios-ssn    139/tcp                         # NETBIOS session service
+imap2          143/tcp         imap            # Interim Mail Access P 2 and 4
+snmp           161/tcp                         # Simple Net Mgmt Protocol
+snmp           161/udp
+snmp-trap      162/tcp         snmptrap        # Traps for SNMP
+snmp-trap      162/udp         snmptrap
+cmip-man       163/tcp                         # ISO mgmt over IP (CMOT)
+cmip-man       163/udp
+cmip-agent     164/tcp
+cmip-agent     164/udp
+mailq          174/tcp                 # Mailer transport queue for Zmailer
+xdmcp          177/udp                 # X Display Manager Control Protocol
+bgp            179/tcp                         # Border Gateway Protocol
+smux           199/tcp                         # SNMP Unix Multiplexer
+qmtp           209/tcp                         # Quick Mail Transfer Protocol
+z3950          210/tcp         wais            # NISO Z39.50 database
+ipx            213/udp                         # IPX [RFC1234]
+ptp-event      319/udp
+ptp-general    320/udp
+pawserv                345/tcp                         # Perf Analysis Workbench
+zserv          346/tcp                         # Zebra server
+rpc2portmap    369/tcp
+rpc2portmap    369/udp                         # Coda portmapper
+codaauth2      370/tcp
+codaauth2      370/udp                         # Coda authentication server
+clearcase      371/udp         Clearcase
+ldap           389/tcp                 # Lightweight Directory Access Protocol
+ldap           389/udp
+svrloc         427/tcp                         # Server Location
+svrloc         427/udp
+https          443/tcp                         # http protocol over TLS/SSL
+https          443/udp                         # HTTP/3
+snpp           444/tcp                         # Simple Network Paging Protocol
+microsoft-ds   445/tcp                         # Microsoft Naked CIFS
+kpasswd                464/tcp
+kpasswd                464/udp
+submissions    465/tcp         ssmtp smtps urd # Submission over TLS [RFC8314]
+saft           487/tcp                 # Simple Asynchronous File Transfer
+isakmp         500/udp                         # IPSEC key management
+rtsp           554/tcp                 # Real Time Stream Control Protocol
+rtsp           554/udp
+nqs            607/tcp                         # Network Queuing system
+asf-rmcp       623/udp         # ASF Remote Management and Control Protocol
+qmqp           628/tcp
+ipp            631/tcp                         # Internet Printing Protocol
+ldp            646/tcp                         # Label Distribution Protocol
+ldp            646/udp
+#
+# UNIX specific services
+#
+exec           512/tcp
+biff           512/udp         comsat
+login          513/tcp
+who            513/udp         whod
+shell          514/tcp         cmd syslog      # no passwords used
+syslog         514/udp
+printer                515/tcp         spooler         # line printer spooler
+talk           517/udp
+ntalk          518/udp
+route          520/udp         router routed   # RIP
+gdomap         538/tcp                         # GNUstep distributed objects
+gdomap         538/udp
+uucp           540/tcp         uucpd           # uucp daemon
+klogin         543/tcp                         # Kerberized `rlogin' (v5)
+kshell         544/tcp         krcmd           # Kerberized `rsh' (v5)
+dhcpv6-client  546/udp
+dhcpv6-server  547/udp
+afpovertcp     548/tcp                         # AFP over TCP
+nntps          563/tcp         snntp           # NNTP over SSL
+submission     587/tcp                         # Submission [RFC4409]
+ldaps          636/tcp                         # LDAP over SSL
+ldaps          636/udp
+tinc           655/tcp                         # tinc control port
+tinc           655/udp
+silc           706/tcp
+kerberos-adm   749/tcp                         # Kerberos `kadmin' (v5)
+#
+domain-s       853/tcp                         # DNS over TLS [RFC7858]
+domain-s       853/udp                         # DNS over DTLS [RFC8094]
+rsync          873/tcp
+ftps-data      989/tcp                         # FTP over SSL (data)
+ftps           990/tcp
+telnets                992/tcp                         # Telnet over SSL
+imaps          993/tcp                         # IMAP over SSL
+pop3s          995/tcp                         # POP-3 over SSL
+#
+# From ``Assigned Numbers'':
+#
+#> The Registered Ports are not controlled by the IANA and on most systems
+#> can be used by ordinary user processes or programs executed by ordinary
+#> users.
+#
+#> Ports are used in the TCP [45,106] to name the ends of logical
+#> connections which carry long term conversations.  For the purpose of
+#> providing services to unknown callers, a service contact port is
+#> defined.  This list specifies the port used by the server process as its
+#> contact port.  While the IANA can not control uses of these ports it
+#> does register or list uses of these ports as a convienence to the
+#> community.
+#
+socks          1080/tcp                        # socks proxy server
+proofd         1093/tcp
+rootd          1094/tcp
+openvpn                1194/tcp
+openvpn                1194/udp
+rmiregistry    1099/tcp                        # Java RMI Registry
+lotusnote      1352/tcp        lotusnotes      # Lotus Note
+ms-sql-s       1433/tcp                        # Microsoft SQL Server
+ms-sql-m       1434/udp                        # Microsoft SQL Monitor
+ingreslock     1524/tcp
+datametrics    1645/tcp        old-radius
+datametrics    1645/udp        old-radius
+sa-msg-port    1646/tcp        old-radacct
+sa-msg-port    1646/udp        old-radacct
+kermit         1649/tcp
+groupwise      1677/tcp
+l2f            1701/udp        l2tp
+radius         1812/tcp
+radius         1812/udp
+radius-acct    1813/tcp        radacct         # Radius Accounting
+radius-acct    1813/udp        radacct
+cisco-sccp     2000/tcp                        # Cisco SCCP
+nfs            2049/tcp                        # Network File System
+nfs            2049/udp                        # Network File System
+gnunet         2086/tcp
+gnunet         2086/udp
+rtcm-sc104     2101/tcp                        # RTCM SC-104 IANA 1/29/99
+rtcm-sc104     2101/udp
+gsigatekeeper  2119/tcp
+gris           2135/tcp                # Grid Resource Information Server
+cvspserver     2401/tcp                        # CVS client/server operations
+venus          2430/tcp                        # codacon port
+venus          2430/udp                        # Venus callback/wbc interface
+venus-se       2431/tcp                        # tcp side effects
+venus-se       2431/udp                        # udp sftp side effect
+codasrv                2432/tcp                        # not used
+codasrv                2432/udp                        # server port
+codasrv-se     2433/tcp                        # tcp side effects
+codasrv-se     2433/udp                        # udp sftp side effect
+mon            2583/tcp                        # MON traps
+mon            2583/udp
+dict           2628/tcp                        # Dictionary server
+f5-globalsite  2792/tcp
+gsiftp         2811/tcp
+gpsd           2947/tcp
+gds-db         3050/tcp        gds_db          # InterBase server
+icpv2          3130/udp        icp             # Internet Cache Protocol
+isns           3205/tcp                        # iSNS Server Port
+isns           3205/udp                        # iSNS Server Port
+iscsi-target   3260/tcp
+mysql          3306/tcp
+ms-wbt-server  3389/tcp
+nut            3493/tcp                        # Network UPS Tools
+nut            3493/udp
+distcc         3632/tcp                        # distributed compiler
+daap           3689/tcp                        # Digital Audio Access Protocol
+svn            3690/tcp        subversion      # Subversion protocol
+suucp          4031/tcp                        # UUCP over SSL
+sysrqd         4094/tcp                        # sysrq daemon
+sieve          4190/tcp                        # ManageSieve Protocol
+epmd           4369/tcp                        # Erlang Port Mapper Daemon
+remctl         4373/tcp                # Remote Authenticated Command Service
+f5-iquery      4353/tcp                        # F5 iQuery
+ntske          4460/tcp        # Network Time Security Key Establishment
+ipsec-nat-t    4500/udp                        # IPsec NAT-Traversal [RFC3947]
+iax            4569/udp                        # Inter-Asterisk eXchange
+mtn            4691/tcp                        # monotone Netsync Protocol
+radmin-port    4899/tcp                        # RAdmin Port
+sip            5060/tcp                        # Session Initiation Protocol
+sip            5060/udp
+sip-tls                5061/tcp
+sip-tls                5061/udp
+xmpp-client    5222/tcp        jabber-client   # Jabber Client Connection
+xmpp-server    5269/tcp        jabber-server   # Jabber Server Connection
+cfengine       5308/tcp
+mdns           5353/udp                        # Multicast DNS
+postgresql     5432/tcp        postgres        # PostgreSQL Database
+freeciv                5556/tcp        rptp            # Freeciv gameplay
+amqps          5671/tcp                        # AMQP protocol over TLS/SSL
+amqp           5672/tcp
+amqp           5672/sctp
+x11            6000/tcp        x11-0           # X Window System
+x11-1          6001/tcp
+x11-2          6002/tcp
+x11-3          6003/tcp
+x11-4          6004/tcp
+x11-5          6005/tcp
+x11-6          6006/tcp
+x11-7          6007/tcp
+gnutella-svc   6346/tcp                        # gnutella
+gnutella-svc   6346/udp
+gnutella-rtr   6347/tcp                        # gnutella
+gnutella-rtr   6347/udp
+redis          6379/tcp
+sge-qmaster    6444/tcp        sge_qmaster     # Grid Engine Qmaster Service
+sge-execd      6445/tcp        sge_execd       # Grid Engine Execution Service
+mysql-proxy    6446/tcp                        # MySQL Proxy
+babel          6696/udp                        # Babel Routing Protocol
+ircs-u         6697/tcp                # Internet Relay Chat via TLS/SSL
+bbs            7000/tcp
+afs3-fileserver 7000/udp
+afs3-callback  7001/udp                        # callbacks to cache managers
+afs3-prserver  7002/udp                        # users & groups database
+afs3-vlserver  7003/udp                        # volume location database
+afs3-kaserver  7004/udp                        # AFS/Kerberos authentication
+afs3-volser    7005/udp                        # volume managment server
+afs3-bos       7007/udp                        # basic overseer process
+afs3-update    7008/udp                        # server-to-server updater
+afs3-rmtsys    7009/udp                        # remote cache manager service
+font-service   7100/tcp        xfs             # X Font Service
+http-alt       8080/tcp        webcache        # WWW caching service
+puppet         8140/tcp                        # The Puppet master service
+bacula-dir     9101/tcp                        # Bacula Director
+bacula-fd      9102/tcp                        # Bacula File Daemon
+bacula-sd      9103/tcp                        # Bacula Storage Daemon
+xmms2          9667/tcp        # Cross-platform Music Multiplexing System
+nbd            10809/tcp                       # Linux Network Block Device
+zabbix-agent   10050/tcp                       # Zabbix Agent
+zabbix-trapper 10051/tcp                       # Zabbix Trapper
+amanda         10080/tcp                       # amanda backup services
+dicom          11112/tcp
+hkp            11371/tcp                       # OpenPGP HTTP Keyserver
+db-lsp         17500/tcp                       # Dropbox LanSync Protocol
+dcap           22125/tcp                       # dCache Access Protocol
+gsidcap                22128/tcp                       # GSI dCache Access Protocol
+wnn6           22273/tcp                       # wnn6
+
+#
+# Datagram Delivery Protocol services
+#
+rtmp           1/ddp                   # Routing Table Maintenance Protocol
+nbp            2/ddp                   # Name Binding Protocol
+echo           4/ddp                   # AppleTalk Echo Protocol
+zip            6/ddp                   # Zone Information Protocol
+
+#=========================================================================
+# The remaining port numbers are not as allocated by IANA.
+#=========================================================================
+
+# Kerberos (Project Athena/MIT) services
+kerberos4      750/udp         kerberos-iv kdc # Kerberos (server)
+kerberos4      750/tcp         kerberos-iv kdc
+kerberos-master        751/udp         kerberos_master # Kerberos authentication
+kerberos-master        751/tcp
+passwd-server  752/udp         passwd_server   # Kerberos passwd server
+krb-prop       754/tcp         krb_prop krb5_prop hprop # Kerberos slave propagation
+zephyr-srv     2102/udp                        # Zephyr server
+zephyr-clt     2103/udp                        # Zephyr serv-hm connection
+zephyr-hm      2104/udp                        # Zephyr hostmanager
+iprop          2121/tcp                        # incremental propagation
+supfilesrv     871/tcp                 # Software Upgrade Protocol server
+supfiledbg     1127/tcp                # Software Upgrade Protocol debugging
+
+#
+# Services added for the Debian GNU/Linux distribution
+#
+poppassd       106/tcp                         # Eudora
+moira-db       775/tcp         moira_db        # Moira database
+moira-update   777/tcp         moira_update    # Moira update protocol
+moira-ureg     779/udp         moira_ureg      # Moira user registration
+spamd          783/tcp                         # spamassassin daemon
+skkserv                1178/tcp                        # skk jisho server port
+predict                1210/udp                        # predict -- satellite tracking
+rmtcfg         1236/tcp                        # Gracilis Packeten remote config server
+xtel           1313/tcp                        # french minitel
+xtelw          1314/tcp                        # french minitel
+zebrasrv       2600/tcp                        # zebra service
+zebra          2601/tcp                        # zebra vty
+ripd           2602/tcp                        # ripd vty (zebra)
+ripngd         2603/tcp                        # ripngd vty (zebra)
+ospfd          2604/tcp                        # ospfd vty (zebra)
+bgpd           2605/tcp                        # bgpd vty (zebra)
+ospf6d         2606/tcp                        # ospf6d vty (zebra)
+ospfapi                2607/tcp                        # OSPF-API
+isisd          2608/tcp                        # ISISd vty (zebra)
+fax            4557/tcp                        # FAX transmission service (old)
+hylafax                4559/tcp                        # HylaFAX client-server protocol (new)
+munin          4949/tcp        lrrd            # Munin
+rplay          5555/udp                        # RPlay audio service
+nrpe           5666/tcp                        # Nagios Remote Plugin Executor
+nsca           5667/tcp                        # Nagios Agent - NSCA
+canna          5680/tcp                        # cannaserver
+syslog-tls     6514/tcp                        # Syslog over TLS [RFC5425]
+sane-port      6566/tcp        sane saned      # SANE network scanner daemon
+ircd           6667/tcp                        # Internet Relay Chat
+zope-ftp       8021/tcp                        # zope management by ftp
+tproxy         8081/tcp                        # Transparent Proxy
+omniorb                8088/tcp                        # OmniORB
+clc-build-daemon 8990/tcp                      # Common lisp build daemon
+xinetd         9098/tcp
+git            9418/tcp                        # Git Version Control System
+zope           9673/tcp                        # zope server
+webmin         10000/tcp
+kamanda                10081/tcp                       # amanda backup services (Kerberos)
+amandaidx      10082/tcp                       # amanda backup services
+amidxtape      10083/tcp                       # amanda backup services
+sgi-cmsd       17001/udp               # Cluster membership services daemon
+sgi-crsd       17002/udp
+sgi-gcd                17003/udp                       # SGI Group membership daemon
+sgi-cad                17004/tcp                       # Cluster Admin daemon
+binkp          24554/tcp                       # binkp fidonet protocol
+asp            27374/tcp                       # Address Search Protocol
+asp            27374/udp
+csync2         30865/tcp                       # cluster synchronization tool
+dircproxy      57000/tcp                       # Detachable IRC Proxy
+tfido          60177/tcp                       # fidonet EMSI over telnet
+fido           60179/tcp                       # fidonet EMSI over TCP
+
+# Local services
diff --git a/shadow b/shadow
new file mode 100644 (file)
index 0000000..8843845
--- /dev/null
+++ b/shadow
@@ -0,0 +1,29 @@
+root:$y$j9T$YX8EHbjrFAvpMkFO/KXu41$.EuE4Z3m7NMrD.liIWdZ9wPmq3SUAdd2DcA7FagjV.1:20097:0:99999:7:::
+daemon:*:20097:0:99999:7:::
+bin:*:20097:0:99999:7:::
+sys:*:20097:0:99999:7:::
+sync:*:20097:0:99999:7:::
+games:*:20097:0:99999:7:::
+man:*:20097:0:99999:7:::
+lp:*:20097:0:99999:7:::
+mail:*:20097:0:99999:7:::
+news:*:20097:0:99999:7:::
+uucp:*:20097:0:99999:7:::
+proxy:*:20097:0:99999:7:::
+www-data:*:20097:0:99999:7:::
+backup:*:20097:0:99999:7:::
+list:*:20097:0:99999:7:::
+irc:*:20097:0:99999:7:::
+_apt:*:20097:0:99999:7:::
+nobody:*:20097:0:99999:7:::
+systemd-network:!*:20097::::::
+systemd-timesync:!*:20097::::::
+messagebus:!:20097::::::
+sshd:!:20097::::::
+bind:!:20097::::::
+frank:$y$j9T$d2nMqKcO8uBhmFbv2qlWV.$lQS7p07tBUrXzjnTx28mVj7vPCbdqZNt33Ne8w.EBL8:20097:0:99999:7:::
+_chrony:!:20097::::::
+postfix:!:20097::::::
+valkey:!:20097::::::
+mysql:!:20098::::::
+tcpdump:!:20101::::::
diff --git a/shadow- b/shadow-
new file mode 100644 (file)
index 0000000..e59ced9
--- /dev/null
+++ b/shadow-
@@ -0,0 +1,28 @@
+root:$y$j9T$YX8EHbjrFAvpMkFO/KXu41$.EuE4Z3m7NMrD.liIWdZ9wPmq3SUAdd2DcA7FagjV.1:20097:0:99999:7:::
+daemon:*:20097:0:99999:7:::
+bin:*:20097:0:99999:7:::
+sys:*:20097:0:99999:7:::
+sync:*:20097:0:99999:7:::
+games:*:20097:0:99999:7:::
+man:*:20097:0:99999:7:::
+lp:*:20097:0:99999:7:::
+mail:*:20097:0:99999:7:::
+news:*:20097:0:99999:7:::
+uucp:*:20097:0:99999:7:::
+proxy:*:20097:0:99999:7:::
+www-data:*:20097:0:99999:7:::
+backup:*:20097:0:99999:7:::
+list:*:20097:0:99999:7:::
+irc:*:20097:0:99999:7:::
+_apt:*:20097:0:99999:7:::
+nobody:*:20097:0:99999:7:::
+systemd-network:!*:20097::::::
+systemd-timesync:!*:20097::::::
+messagebus:!:20097::::::
+sshd:!:20097::::::
+bind:!:20097::::::
+frank:$y$j9T$d2nMqKcO8uBhmFbv2qlWV.$lQS7p07tBUrXzjnTx28mVj7vPCbdqZNt33Ne8w.EBL8:20097:0:99999:7:::
+_chrony:!:20097::::::
+postfix:!:20097::::::
+valkey:!:20097::::::
+mysql:!:20098::::::
diff --git a/shells b/shells
new file mode 100644 (file)
index 0000000..b55fcd7
--- /dev/null
+++ b/shells
@@ -0,0 +1,11 @@
+# /etc/shells: valid login shells
+/bin/sh
+/usr/bin/sh
+/bin/bash
+/usr/bin/bash
+/bin/rbash
+/usr/bin/rbash
+/bin/dash
+/usr/bin/dash
+/usr/bin/tmux
+/usr/bin/screen
diff --git a/skel/.bash_logout b/skel/.bash_logout
new file mode 100644 (file)
index 0000000..de4f5f7
--- /dev/null
@@ -0,0 +1,7 @@
+# ~/.bash_logout: executed by bash(1) when login shell exits.
+
+# when leaving the console clear the screen to increase privacy
+
+if [ "$SHLVL" = 1 ]; then
+    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
+fi
diff --git a/skel/.bashrc b/skel/.bashrc
new file mode 100644 (file)
index 0000000..9360f69
--- /dev/null
@@ -0,0 +1,113 @@
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+# If not running interactively, don't do anything
+case $- in
+    *i*) ;;
+      *) return;;
+esac
+
+# don't put duplicate lines or lines starting with space in the history.
+# See bash(1) for more options
+HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+
+# make less more friendly for non-text input files, see lesspipe(1)
+#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+    debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+    xterm-color|*-256color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+#force_color_prompt=yes
+
+if [ -n "$force_color_prompt" ]; then
+    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+       # We have color support; assume it's compliant with Ecma-48
+       # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+       # a case would tend to support setf rather than setaf.)
+       color_prompt=yes
+    else
+       color_prompt=
+    fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+    ;;
+*)
+    ;;
+esac
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+    alias ls='ls --color=auto'
+    #alias dir='dir --color=auto'
+    #alias vdir='vdir --color=auto'
+
+    #alias grep='grep --color=auto'
+    #alias fgrep='fgrep --color=auto'
+    #alias egrep='egrep --color=auto'
+fi
+
+# colored GCC warnings and errors
+#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+# some more ls aliases
+#alias ll='ls -l'
+#alias la='ls -A'
+#alias l='ls -CF'
+
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ]; then
+    . ~/.bash_aliases
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if ! shopt -oq posix; then
+  if [ -f /usr/share/bash-completion/bash_completion ]; then
+    . /usr/share/bash-completion/bash_completion
+  elif [ -f /etc/bash_completion ]; then
+    . /etc/bash_completion
+  fi
+fi
diff --git a/skel/.profile b/skel/.profile
new file mode 100644 (file)
index 0000000..d89ea5a
--- /dev/null
@@ -0,0 +1,27 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+    # include .bashrc if it exists
+    if [ -f "$HOME/.bashrc" ]; then
+       . "$HOME/.bashrc"
+    fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+    PATH="$HOME/bin:$PATH"
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/.local/bin" ] ; then
+    PATH="$HOME/.local/bin:$PATH"
+fi
diff --git a/ssh/moduli b/ssh/moduli
new file mode 100644 (file)
index 0000000..c963376
--- /dev/null
@@ -0,0 +1,424 @@
+# Time Type Tests Tries Size Generator Modulus
+20220714110357 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A429A9923
+20220714110358 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A42A9BFB7
+20220714110417 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4349E923
+20220714110421 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A436AA537
+20220714110429 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A43ADB17B
+20220714110437 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A43F26D23
+20220714110452 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4478434B
+20220714110507 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A44FF2077
+20220714110531 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A45D0597B
+20220714110534 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A45E81313
+20220714110541 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A462B1987
+20220714110550 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A467A15E7
+20220714110557 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A46BD40AF
+20220714110605 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A470351EB
+20220714110630 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A47EA97DB
+20220714110630 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A47EAA76B
+20220714110648 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4891615B
+20220714110652 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A48B5137F
+20220714110654 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A48C1EC7B
+20220714110707 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4935FBBB
+20220714110707 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4938A2F3
+20220714110715 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49847CD3
+20220714110722 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49C04CDF
+20220714110726 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49E68FA3
+20220714110728 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49FF3563
+20220714110733 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4A266083
+20220714110736 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4A4718EF
+20220714110741 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63A97ACE7
+20220714110743 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63AA92DEB
+20220714110749 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63ADC6787
+20220714110814 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63BC349AB
+20220714110816 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63BD5A5D3
+20220714110819 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63BF25123
+20220714110823 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63C158EEF
+20220714110828 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63C438BD3
+20220714110845 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63CD80AD7
+20220714110857 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D3CF5C3
+20220714110900 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D598D1B
+20220714110905 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D85CF73
+20220714110905 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D88E27B
+20220714110906 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D93B057
+20220714110907 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D997D57
+20220714110947 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F07D89B
+20220714110948 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F12EC37
+20220714110950 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F1E46CB
+20220714110952 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F36E2EF
+20220714110953 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F3EFE3B
+20220714110954 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F45AF83
+20220714110957 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F6684DB
+20220714110957 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F674AE7
+20220714111000 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F798EBB
+20220714111037 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE640C91997
+20220714111042 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE640F6CD07
+20220714111048 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE641309F8B
+20220714111052 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE64153581F
+20220714111054 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6415DF757
+20220714111055 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6416B572F
+20220714111059 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6418D88DB
+20220714111109 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE641E2FC7B
+20220714111127 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6428AF363
+20220714111939 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A40451D63
+20220714111946 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A405CC61B
+20220714111948 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4064ADCB
+20220714111958 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4087EDCB
+20220714112015 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A40C3D9C7
+20220714112026 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A40EBD6CF
+20220714112102 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A416BB97B
+20220714112247 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A42DDD67B
+20220714112248 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A42DFEABF
+20220714112340 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A439694EB
+20220714112353 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A43C65423
+20220714112428 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4444AE0B
+20220714112507 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A44D48CFF
+20220714112511 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A44DEBF3B
+20220714112549 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A456724A7
+20220714112651 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A464873DF
+20220714112736 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A46EA45CB
+20220714112754 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A47292543
+20220714112800 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4741F39B
+20220714112844 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A47E12BFF
+20220714112924 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A486E93AF
+20220714112931 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4887FCAB
+20220714112951 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A48CAB4D7
+20220714113009 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4908F30F
+20220714113024 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4942A64F
+20220714113032 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A495DA0A3
+20220714113137 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4A48C463
+20220714113138 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4A4AD4C3
+20220714113152 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4A7E9E6B
+20220714113302 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4B7771A7
+20220714113325 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4BCC7A67
+20220714113406 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4C5B14CB
+20220714113419 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4C8D693B
+20220714113438 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4CD38C17
+20220714113459 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4D1FD413
+20220714113606 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4E11131B
+20220714113620 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4E407DDB
+20220714113639 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4E816DEF
+20220714113802 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4FA7B0BB
+20220714113835 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A501BFD27
+20220714113901 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A5077B90F
+20220714113910 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A5096B1BB
+20220714113911 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A509ABFAF
+20220714114137 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243E7AF7A33
+20220714114223 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243E853FBF7
+20220714114400 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243E99CF2CB
+20220714114432 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA1047DB
+20220714114439 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA262BF3
+20220714114453 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA58ABD7
+20220714114510 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA98697F
+20220714114514 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EAA6423B
+20220714114554 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EB37D447
+20220714114630 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EBBBB32F
+20220714114922 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EE2FD6FB
+20220714114946 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EE87B393
+20220714114947 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EE89E703
+20220714115027 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EF1D4457
+20220714115124 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EFF0E74F
+20220714115140 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F02F1483
+20220714115239 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F1048C9B
+20220714115329 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F1B76437
+20220714115359 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F2205357
+20220714115442 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F2BCF797
+20220714115448 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F2D1B3DB
+20220714115516 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F33828DB
+20220714115531 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F36A7D87
+20220714115553 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F3B6A657
+20220714115559 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F3CB724F
+20220714115604 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F3DB43EF
+20220714115627 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F42F1353
+20220714115641 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F45D4ADB
+20220714115649 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F478CA07
+20220714115654 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F48960F3
+20220714115824 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F5C8FB7B
+20220714115834 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F5EAA1CB
+20220714120147 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F890B7EB
+20220714121337 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629C7D4793
+20220714121340 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629C8256DF
+20220714121625 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629DA597BF
+20220714122153 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629FE36413
+20220714122227 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A01CEFF3
+20220714122714 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A20F9823
+20220714122853 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A2BD77FB
+20220714123034 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A36B3637
+20220714123040 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A3746D03
+20220714123232 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A437C667
+20220714123319 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A487CC0B
+20220714123750 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A65E695F
+20220714123800 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A66E6103
+20220714124312 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A8859627
+20220714124408 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A8E56B5B
+20220714124440 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A91A43B7
+20220714124606 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A9B26B87
+20220714124627 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A9D62D47
+20220714124631 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A9DC09BF
+20220714125015 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62AB5FE7E3
+20220714125134 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62ABE6A13F
+20220714125205 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62AC1B5F1F
+20220714125308 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62AC85569F
+20220714125411 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62ACF096CF
+20220714130454 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B1384403
+20220714130821 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B295BE03
+20220714131228 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B434EA3F
+20220714131424 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B4F3596B
+20220714131529 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B560201F
+20220714131556 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B58D1C3B
+20220714131810 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B673859F
+20220714131928 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B6F7B87B
+20220714132227 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B83525E7
+20220714132255 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B863A7EB
+20220714132258 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B869E2B3
+20220714132926 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62BB0FCCF3
+20220714133046 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62BB96BAAB
+20220714133233 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C71821637
+20220714133651 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C733193F3
+20220714133712 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C73526D3B
+20220714134252 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C75A257CB
+20220714134434 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C764BC487
+20220714134946 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C785EAE2B
+20220714135018 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C78963137
+20220714135147 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C792D0D87
+20220714135358 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7A0DE73B
+20220714135921 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7C4451E3
+20220714140317 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7DE6BDEB
+20220714140350 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7E21885B
+20220714140711 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7F85C48F
+20220714140736 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7FAFD0B3
+20220714140813 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7FEDFEA7
+20220714141031 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C80E164A7
+20220714141111 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C812A1B2F
+20220714141544 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8303F01B
+20220714141716 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C839F487B
+20220714141912 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C846C71CF
+20220714142105 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C853302EF
+20220714142236 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C85CD2F13
+20220714142326 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8625DC73
+20220714142751 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C87E4924B
+20220714142911 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C88684F73
+20220714143324 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8A2318DB
+20220714143325 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8A23F507
+20220714143405 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8A690A43
+20220714144651 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8F8FC3A3
+20220714144923 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C90A21B53
+20220714144936 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C90B7330B
+20220714150424 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269CB3AC32B
+20220714150807 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269CBBB9D93
+20220714153843 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269CFDFF54F
+20220714155314 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269D1D2942B
+20220714160052 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269D2DACC3B
+20220714163103 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269D6EA99C3
+20220714171421 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269DCBECCBF
+20220714171847 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269DD5B7993
+20220714173040 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269DEFCEA7F
+20220714174048 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E060A22F
+20220714175752 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E2B3A90F
+20220714180116 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E328818B
+20220714181520 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E513DE83
+20220714182218 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E604A3CF
+20220714182735 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E6BBA01B
+20220714191804 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269ED919FB7
+20220714191958 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269EDD630C3
+20220714193455 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269EFDB6C53
+20220714193500 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269EFDE36FB
+20220714194107 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F0AC9F63
+20220714195248 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F23F6BF3
+20220714195808 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F300673F
+20220714200658 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F4322A4F
+20220714201511 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F553D0EF
+20220714204211 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F8F97DF3
+20220714210501 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269FC032A43
+20220714210527 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269FC1045CF
+20220714214423 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A014F6733
+20220714214717 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A01B72D0B
+20220714215814 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A0332253F
+20220714222646 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A07072DC7
+20220714222943 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A076F0173
+20220714222954 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A07745AAB
+20220714223227 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A07CC7BB3
+20220714224745 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A09DF82A3
+20220715000506 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DB9F7FAC33
+20220715000641 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DB9FB84627
+20220715001211 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA0756D33
+20220715005345 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA6234223
+20220715011011 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA85B2A97
+20220715011444 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA8F9C90B
+20220715011554 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA9233533
+20220715013220 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBAB54738B
+20220715015353 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBAE41CA83
+20220715023846 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB4450E27
+20220715024203 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB4B76CCB
+20220715024757 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB58180EF
+20220715024833 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB5965263
+20220715025025 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB5D2C667
+20220715025333 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB63FE40F
+20220715025633 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB6A8BD4B
+20220715030337 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB79F8147
+20220715031630 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB9537AB3
+20220715034438 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBBD1C7CE7
+20220715035610 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBBEAD09D7
+20220715040817 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC04657DF
+20220715041331 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC0FC243B
+20220715041430 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC11DB2DF
+20220715042040 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC1ED4A53
+20220715042920 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC31D6CE7
+20220715043335 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC3B0A75B
+20220715051034 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC8A470E7
+20220715051434 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC92E3067
+20220715052452 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBCA8D11CB
+20220715052700 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBCAD7588B
+20220715053146 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBCB7CEC27
+20220715061333 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBD12F317B
+20220715063310 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBD3D846E7
+20220715071637 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBD9B91D57
+20220715074108 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBDCFB3DEB
+20220715074918 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBDE19622F
+20220715080656 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBE07CF9D7
+20220715083930 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBE4E93003
+20220715092424 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F92A52BAF
+20220715100057 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F9547AC47
+20220715100859 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F95DC0013
+20220715102100 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F96B85E23
+20220715132304 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FA3BD9C93
+20220715133936 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FA4ECF027
+20220715140222 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FA68BEE73
+20220715161822 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB045A9D3
+20220715162253 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB09339CB
+20220715175344 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB7156F2B
+20220715182025 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB90A53D7
+20220715190627 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FBC5E2767
+20220715191213 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FBCCA724F
+20220715193806 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FBEA4C29B
+20220715204457 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FC370204F
+20220715212313 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FC63E9CA7
+20220715225401 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FCCC8EC9F
+20220715230508 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FCD93025B
+20220716003950 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD4674843
+20220716005647 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD59BD53B
+20220716005928 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD5CCEB93
+20220716010051 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD5E69E93
+20220716020432 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FDA8D1BCB
+20220716023453 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FDCC2AC1B
+20220716034034 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE18492D7
+20220716040249 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE31D1047
+20220716044634 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE64EDBE3
+20220716051650 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE87F8BEB
+20220716052859 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE963564B
+20220716055849 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FEB816243
+20220716063757 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FEE5510C7
+20220716071444 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF0F7F9DB
+20220716071604 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF10F3AFB
+20220716073329 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF251281F
+20220716074224 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF2F3BB2B
+20220716074605 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF338BF7B
+20220716075807 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF4157C77
+20220716082904 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF657E773
+20220716083710 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF6EF1FA3
+20220716120340 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9C6CA376F
+20220716142712 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D11411D7
+20220716145403 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D307585F
+20220716150439 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D3C1E427
+20220716152458 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D530FD67
+20220716154334 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D680C84B
+20220716161140 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D885D85B
+20220716162236 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D954CF4F
+20220716171055 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DCC6C8EF
+20220716174339 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DF237BE3
+20220716174802 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DF73C52B
+20220716175227 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DFC26653
+20220716181229 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E131151F
+20220716182155 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E1D9F2CB
+20220716194638 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E7EE6D9F
+20220716195641 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E8A6F4EF
+20220716204017 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EBD085BF
+20220716212803 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EF3B06BB
+20220716213736 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EFE990EB
+20220716213807 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EFF487B3
+20220716213938 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F0105893
+20220716221754 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F2D67283
+20220716223623 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F4287F5F
+20220716225952 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F5D27563
+20220716233959 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F8B474DF
+20220717013433 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA00EBDEF3
+20220717053018 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA11D62647
+20220717084749 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA200FD4E7
+20220717092719 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA22EFF85F
+20220717101211 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA26140AA7
+20220717123906 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA3081C463
+20220717124254 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA30C8F0E3
+20220717143701 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912221EF5FC3
+20220717153012 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122251C88EB
+20220717154944 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91222646A2EB
+20220717155622 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912226A76CDB
+20220717183729 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122303F69EB
+20220717205515 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122387E1CD3
+20220717211522 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912239B0E0C3
+20220717215431 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91223C0BF2F3
+20220717230904 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122407F3053
+20220718023518 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224CC83943
+20220718024030 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224D17A47F
+20220718025313 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224DDA8E53
+20220718030104 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224E4FCCC3
+20220718035055 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122514E0C5B
+20220718042416 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225341AD73
+20220718044525 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225482241B
+20220718061152 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225999F347
+20220718061417 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912259BDFF6B
+20220718064948 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225BD2B193
+20220718080208 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122602EE1DB
+20220718090911 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912264269067
+20220718102418 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912268ABA127
+20220718112555 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91226C611AC7
+20220718120905 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91226EEF51AB
+20220718123459 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227079AAF3
+20220718132216 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122734DC097
+20220718151026 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912279BA57CF
+20220718151038 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912279BC79AB
+20220718153329 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227B1AC9E3
+20220718153657 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227B5347F3
+20220718164629 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227F6F51E7
+20220718183946 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122863E85E3
+20220718195516 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91228ACE2663
+20220718212930 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122906E4B83
+20220719004619 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91229C28A03B
+20220719005356 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91229C9C1FCF
+20220719014859 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF869C312A97
+20220719020529 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF869D2642A7
+20220719034913 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86A3588B53
+20220719044402 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86A69DB913
+20220719045215 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86A717D82B
+20220719064925 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86AE08C58B
+20220719074822 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86B18928B3
+20220719094802 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86B8C09B6B
+20220719101343 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86BA4587CB
+20220719105007 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86BC6960B7
+20220719115822 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86C07CBCB3
+20220719124950 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86C387963B
+20220719151704 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86CC63DE8F
+20220719153327 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86CD62A8BF
+20220719161053 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86CF9B2757
+20220719173122 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86D470273B
+20220719182307 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86D77C4343
+20220719193427 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86DBAD7B57
+20220719202131 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86DE7D76A7
+20220719211624 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86E1C9623F
+20220719211743 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86E1DE6F77
+20220719222342 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86E5D38CDF
+20220720003008 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86ED5B9A6F
+20220720003329 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86ED8EE32F
+20220720034214 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86F8B88CAB
+20220720041812 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FADD0EF3
+20220720042023 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FAFF7543
+20220720044537 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FC7D0CB7
+20220720045239 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FCE7D05B
+20220720055829 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF8700DC7CB3
+20220720061526 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF8701E01D2F
+20220720071915 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF8705ABB603
+20220720080553 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF870876A9CF
+20220720093358 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF870DC82DC7
+20220720094947 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF870EBB9097
+20220720110223 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF871329D297
+20220720112240 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF871467194B
+20220720121337 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF87176DFD6F
+20220720124230 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF871929A88B
diff --git a/ssh/ssh_config b/ssh/ssh_config
new file mode 100644 (file)
index 0000000..d74c1fe
--- /dev/null
@@ -0,0 +1,53 @@
+
+# This is the ssh client system-wide configuration file.  See
+# ssh_config(5) for more information.  This file provides defaults for
+# users, and the values can be changed in per-user configuration files
+# or on the command line.
+
+# Configuration data is parsed as follows:
+#  1. command line options
+#  2. user-specific file
+#  3. system-wide file
+# Any configuration value is only changed the first time it is set.
+# Thus, host-specific definitions should be at the beginning of the
+# configuration file, and defaults at the end.
+
+# Site-wide defaults for some commonly used options.  For a comprehensive
+# list of available options, their meanings and defaults, please see the
+# ssh_config(5) man page.
+
+Include /etc/ssh/ssh_config.d/*.conf
+
+Host *
+#   ForwardAgent no
+#   ForwardX11 no
+#   ForwardX11Trusted yes
+#   PasswordAuthentication yes
+#   HostbasedAuthentication no
+#   GSSAPIAuthentication no
+#   GSSAPIDelegateCredentials no
+#   GSSAPIKeyExchange no
+#   GSSAPITrustDNS no
+#   BatchMode no
+#   CheckHostIP yes
+#   AddressFamily any
+#   ConnectTimeout 0
+#   StrictHostKeyChecking ask
+#   IdentityFile ~/.ssh/id_rsa
+#   IdentityFile ~/.ssh/id_dsa
+#   IdentityFile ~/.ssh/id_ecdsa
+#   IdentityFile ~/.ssh/id_ed25519
+#   Port 22
+#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
+#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com
+#   EscapeChar ~
+#   Tunnel no
+#   TunnelDevice any:any
+#   PermitLocalCommand no
+#   VisualHostKey no
+#   ProxyCommand ssh -q -W %h:%p gateway.example.com
+#   RekeyLimit 1G 1h
+    UserKnownHostsFile ~/.ssh/known_hosts.d/%k
+    SendEnv LANG LC_*
+    HashKnownHosts no
+    GSSAPIAuthentication yes
diff --git a/ssh/ssh_host_ecdsa_key b/ssh/ssh_host_ecdsa_key
new file mode 100644 (file)
index 0000000..0ff2b85
--- /dev/null
@@ -0,0 +1,9 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
+1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQS9Z2ljI9w6xbGTfqfdNBNGKDXu3Oiz
+yL+kIvP6D0Ft2hN7iMTo3tBPltV5M286LWsdDbAD8/9LtBewKN4cr1nqAAAAsI4gxFaOIM
+RWAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL1naWMj3DrFsZN+
+p900E0YoNe7c6LPIv6Qi8/oPQW3aE3uIxOje0E+W1Xkzbzotax0NsAPz/0u0F7Ao3hyvWe
+oAAAAgPt/yJjXwlOo0pTnKNnMLTWHyjOEHCir+JUFS52+U+5cAAAAUcm9vdEBkZXYtbWFp
+bC1mYnJlaG0BAgME
+-----END OPENSSH PRIVATE KEY-----
diff --git a/ssh/ssh_host_ecdsa_key.pub b/ssh/ssh_host_ecdsa_key.pub
new file mode 100644 (file)
index 0000000..91f8eb4
--- /dev/null
@@ -0,0 +1 @@
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL1naWMj3DrFsZN+p900E0YoNe7c6LPIv6Qi8/oPQW3aE3uIxOje0E+W1Xkzbzotax0NsAPz/0u0F7Ao3hyvWeo= root@dev-mail-fbrehm
diff --git a/ssh/ssh_host_ed25519_key b/ssh/ssh_host_ed25519_key
new file mode 100644 (file)
index 0000000..6c36af0
--- /dev/null
@@ -0,0 +1,7 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
+QyNTUxOQAAACC0UV/agznprNLPh1PnPA6wUC25s0IemLSkhsoqsUDTGgAAAJjosJeD6LCX
+gwAAAAtzc2gtZWQyNTUxOQAAACC0UV/agznprNLPh1PnPA6wUC25s0IemLSkhsoqsUDTGg
+AAAEAaQIxlP2zWRQX/l8J9FeH8GbAEjkHqxevVdJnbESQpB7RRX9qDOems0s+HU+c8DrBQ
+LbmzQh6YtKSGyiqxQNMaAAAAFHJvb3RAZGV2LW1haWwtZmJyZWhtAQ==
+-----END OPENSSH PRIVATE KEY-----
diff --git a/ssh/ssh_host_ed25519_key.pub b/ssh/ssh_host_ed25519_key.pub
new file mode 100644 (file)
index 0000000..ba7874e
--- /dev/null
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILRRX9qDOems0s+HU+c8DrBQLbmzQh6YtKSGyiqxQNMa root@dev-mail-fbrehm
diff --git a/ssh/ssh_host_rsa_key b/ssh/ssh_host_rsa_key
new file mode 100644 (file)
index 0000000..eaf4921
--- /dev/null
@@ -0,0 +1,38 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
+NhAAAAAwEAAQAAAYEA1hY74NIlfyU8PgHPac5Drj4eAv3srHc9mLZmbYdH5/SjjkyLPfy2
+IKAiw2Jav9TF76kUPcW/TcJ1StFnu9YGGwoFtCNkV+Ef7khA0vyUHfno/ui/sL97VKQthz
+4yXMj6fyytn9UJrCG2viVVY1UlADtzkMzqVsBjnjJCMzVCyYF275kJTn/QepzRGL0LXdU1
+9YwcITOr8UoarZwrVIl5BGRrqGOPJbd0K0BZILcT8CqrFw0aKtQ9eAwYv5hwie09oBdjWI
+WUo9Gx38IsA33SojC+gD4L9flQqh+INd0HWsmu+OzTBGNRLG/iL9w+NtopOIYta8yh69GX
+NDxsZAtjOf/JwXhx35lijirvVtZjOfyhKOppqtHiF6lex+BqlKb5belcoamVbdcC5Z2bqN
+LmJkxmdXGfQtHT18wH3M/VB6+Ur4h9fPCwSVXG3urIMecTr/mECzy5Kthue1PA96ScYdCF
++eOp1b/iIsJHIXtG0c1xxRNMFGzBpqTwfAiX03pDAAAFkOKwCwnisAsJAAAAB3NzaC1yc2
+EAAAGBANYWO+DSJX8lPD4Bz2nOQ64+HgL97Kx3PZi2Zm2HR+f0o45Miz38tiCgIsNiWr/U
+xe+pFD3Fv03CdUrRZ7vWBhsKBbQjZFfhH+5IQNL8lB356P7ov7C/e1SkLYc+MlzI+n8srZ
+/VCawhtr4lVWNVJQA7c5DM6lbAY54yQjM1QsmBdu+ZCU5/0Hqc0Ri9C13VNfWMHCEzq/FK
+Gq2cK1SJeQRka6hjjyW3dCtAWSC3E/AqqxcNGirUPXgMGL+YcIntPaAXY1iFlKPRsd/CLA
+N90qIwvoA+C/X5UKofiDXdB1rJrvjs0wRjUSxv4i/cPjbaKTiGLWvMoevRlzQ8bGQLYzn/
+ycF4cd+ZYo4q71bWYzn8oSjqaarR4hepXsfgapSm+W3pXKGplW3XAuWdm6jS5iZMZnVxn0
+LR09fMB9zP1QevlK+IfXzwsElVxt7qyDHnE6/5hAs8uSrYbntTwPeknGHQhfnjqdW/4iLC
+RyF7RtHNccUTTBRswaak8HwIl9N6QwAAAAMBAAEAAAGATrd0ItECCoMFaIM/4VZ/GjUq0c
+zN1ggt9NW0SbeBH++ap7rLQ+qEiPB4d8DVP02bzegsUh5AnfXPLMhcTPt/2TdRK5AL2Cgl
+lnaopytJxs/Z9Mhdmz58uX14ZA7hc65ONK6X1Hn/iXQH/lg50kE/TpuNfYNq8qTgvA0cvD
+lsKi1ZLvXlLyDd5gd89oyj/kdkBLoUqbyXDyxBLO6MHBREE/Jch1i8DJEsvK53VwkZ4qe9
+qscdhPvu8hH4k5IYZw58ev7LN/noTD9HV7uU4pzwevtjrGDrb/ncJr2lkzAXrvQCrQsWmS
+tH1S6Q7XmhNILZUVa8zN/GsKKNw4NQEc+3dAmUxmUe14+Fa46/j06+fBvr3w8r/RUdZ7r5
+g81JtpenjVYCK2LelSbrPlB75aW5MruVQRf9ItGy9Ab3Ar3d+YCqHZNOV2ktnqxfzLoCRd
+IbMf3/z1NAcRuUvipzfYrE/QEI02+PeWKM8p60lEqcH00gjyptiLPbBrdQsc6ia5FpAAAA
+wDjxmgjXYyBnK6ZNROVY8DfBIjSEmsCpGpNPC53/GsB117QDCuyhP7KiXTciuloPx+amyX
+RKpm0cW6iIdmwYaqHJtF9ZX+f14eWgjh1P6T67/Jw/Fc8hvfv9RkU4/MvmWJI1TqOpa8Wy
+Td6GHYjodbUUJIaWzb6pj1iMcNwVxEsmbOMmYnOqnpn9fsdLEbRUyhqWfjUYQC2cXRieMh
+s2h5gGe2FaHZXl3gBYR/m11B/hbmXVXd+iBQ/xXdRCs5+20QAAAMEA8bHR3/6XVWLrRMkc
+VYbjH2SI//dZn7mMhj05/ks+8DdrDTurNNjVIl56JkOHcAxivxwY1+MJypU/4AVR5/Cr4e
+QbxnsBnXD/28fxxMOU5IdQvcQm4ANucdCurDXXcBEdQifgLf9c+8P9p8UrJ3lkcnqwLf0q
+lHEeiJHw71smqxkxQ3NtJHtjW1jVtozv6LhCGgAGGO3JTZ76QX3Xe4+9bh2XWJxVZRiRJI
+2RsHYoHAWwjcjFQzMs1EbVWapLFqBvAAAAwQDiwhlBUH9ZjLULUdOZrNWGr/bS06zrf6qj
+B+u56mAiHuqzt9S9tHrohk8KFwXbrcn/1fk3FjqrI8ZbWoRLueY6s4bM5Q314CI96AUEad
+Z5IOB/bgCf+ylunsk23XpsOliAIlZZ1pXkRiiuC6ozi6REZlwAifdlxuZ6oC7l1wG43na7
+zFseTGNhEHlaUkaP3oDNTQdJYTkOzh0KJ3wU4/bY3PjYU6IRdvbZTYCezmdCrh8FOLwty8
+RIUbmYs9xhBW0AAAAUcm9vdEBkZXYtbWFpbC1mYnJlaG0BAgMEBQYH
+-----END OPENSSH PRIVATE KEY-----
diff --git a/ssh/ssh_host_rsa_key.pub b/ssh/ssh_host_rsa_key.pub
new file mode 100644 (file)
index 0000000..3a69791
--- /dev/null
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDWFjvg0iV/JTw+Ac9pzkOuPh4C/eysdz2YtmZth0fn9KOOTIs9/LYgoCLDYlq/1MXvqRQ9xb9NwnVK0We71gYbCgW0I2RX4R/uSEDS/JQd+ej+6L+wv3tUpC2HPjJcyPp/LK2f1QmsIba+JVVjVSUAO3OQzOpWwGOeMkIzNULJgXbvmQlOf9B6nNEYvQtd1TX1jBwhM6vxShqtnCtUiXkEZGuoY48lt3QrQFkgtxPwKqsXDRoq1D14DBi/mHCJ7T2gF2NYhZSj0bHfwiwDfdKiML6APgv1+VCqH4g13Qdaya747NMEY1Esb+Iv3D422ik4hi1rzKHr0Zc0PGxkC2M5/8nBeHHfmWKOKu9W1mM5/KEo6mmq0eIXqV7H4GqUpvlt6VyhqZVt1wLlnZuo0uYmTGZ1cZ9C0dPXzAfcz9UHr5SviH188LBJVcbe6sgx5xOv+YQLPLkq2G57U8D3pJxh0IX546nVv+Iiwkche0bRzXHFE0wUbMGmpPB8CJfTekM= root@dev-mail-fbrehm
diff --git a/ssh/sshd_config b/ssh/sshd_config
new file mode 100644 (file)
index 0000000..a9be11b
--- /dev/null
@@ -0,0 +1,122 @@
+
+# This is the sshd server system-wide configuration file.  See
+# sshd_config(5) for more information.
+
+# This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
+
+# The strategy used for options in the default sshd_config shipped with
+# OpenSSH is to specify options with their default value where
+# possible, but leave them commented.  Uncommented options override the
+# default value.
+
+Include /etc/ssh/sshd_config.d/*.conf
+
+#Port 22
+#AddressFamily any
+#ListenAddress 0.0.0.0
+#ListenAddress ::
+
+#HostKey /etc/ssh/ssh_host_rsa_key
+#HostKey /etc/ssh/ssh_host_ecdsa_key
+#HostKey /etc/ssh/ssh_host_ed25519_key
+
+# Ciphers and keying
+#RekeyLimit default none
+
+# Logging
+#SyslogFacility AUTH
+#LogLevel INFO
+
+# Authentication:
+
+#LoginGraceTime 2m
+#PermitRootLogin prohibit-password
+#StrictModes yes
+#MaxAuthTries 6
+#MaxSessions 10
+
+#PubkeyAuthentication yes
+
+# Expect .ssh/authorized_keys2 to be disregarded by default in future.
+#AuthorizedKeysFile    .ssh/authorized_keys .ssh/authorized_keys2
+
+#AuthorizedPrincipalsFile none
+
+#AuthorizedKeysCommand none
+#AuthorizedKeysCommandUser nobody
+
+# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
+#HostbasedAuthentication no
+# Change to yes if you don't trust ~/.ssh/known_hosts for
+# HostbasedAuthentication
+#IgnoreUserKnownHosts no
+# Don't read the user's ~/.rhosts and ~/.shosts files
+#IgnoreRhosts yes
+
+# To disable tunneled clear text passwords, change to no here!
+#PasswordAuthentication yes
+#PermitEmptyPasswords no
+
+# Change to yes to enable challenge-response passwords (beware issues with
+# some PAM modules and threads)
+KbdInteractiveAuthentication no
+
+# Kerberos options
+#KerberosAuthentication no
+#KerberosOrLocalPasswd yes
+#KerberosTicketCleanup yes
+#KerberosGetAFSToken no
+
+# GSSAPI options
+#GSSAPIAuthentication no
+#GSSAPICleanupCredentials yes
+#GSSAPIStrictAcceptorCheck yes
+#GSSAPIKeyExchange no
+
+# Set this to 'yes' to enable PAM authentication, account processing,
+# and session processing. If this is enabled, PAM authentication will
+# be allowed through the KbdInteractiveAuthentication and
+# PasswordAuthentication.  Depending on your PAM configuration,
+# PAM authentication via KbdInteractiveAuthentication may bypass
+# the setting of "PermitRootLogin prohibit-password".
+# If you just want the PAM account and session checks to run without
+# PAM authentication, then enable this but set PasswordAuthentication
+# and KbdInteractiveAuthentication to 'no'.
+UsePAM yes
+
+#AllowAgentForwarding yes
+#AllowTcpForwarding yes
+#GatewayPorts no
+X11Forwarding yes
+#X11DisplayOffset 10
+#X11UseLocalhost yes
+#PermitTTY yes
+PrintMotd no
+#PrintLastLog yes
+#TCPKeepAlive yes
+#PermitUserEnvironment no
+#Compression delayed
+#ClientAliveInterval 0
+#ClientAliveCountMax 3
+#UseDNS no
+#PidFile /run/sshd.pid
+#MaxStartups 10:30:100
+#PermitTunnel no
+#ChrootDirectory none
+#VersionAddendum none
+
+# no default banner path
+#Banner none
+
+# Allow client to pass locale environment variables
+AcceptEnv LANG LC_*
+
+# override default of no subsystems
+Subsystem      sftp    /usr/lib/openssh/sftp-server
+
+# Example of overriding settings on a per-user basis
+#Match User anoncvs
+#      X11Forwarding no
+#      AllowTcpForwarding no
+#      PermitTTY no
+#      ForceCommand cvs server
diff --git a/ssl/certs/002c0b4f.0 b/ssl/certs/002c0b4f.0
new file mode 120000 (symlink)
index 0000000..82ecbd2
--- /dev/null
@@ -0,0 +1 @@
+GlobalSign_Root_R46.pem
\ No newline at end of file
diff --git a/ssl/certs/02265526.0 b/ssl/certs/02265526.0
new file mode 120000 (symlink)
index 0000000..8f7ad29
--- /dev/null
@@ -0,0 +1 @@
+Entrust_Root_Certification_Authority_-_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/062cdee6.0 b/ssl/certs/062cdee6.0
new file mode 120000 (symlink)
index 0000000..2612328
--- /dev/null
@@ -0,0 +1 @@
+GlobalSign_Root_CA_-_R3.pem
\ No newline at end of file
diff --git a/ssl/certs/064e0aa9.0 b/ssl/certs/064e0aa9.0
new file mode 120000 (symlink)
index 0000000..de6f546
--- /dev/null
@@ -0,0 +1 @@
+QuoVadis_Root_CA_2_G3.pem
\ No newline at end of file
diff --git a/ssl/certs/06dc52d5.0 b/ssl/certs/06dc52d5.0
new file mode 120000 (symlink)
index 0000000..68ea29d
--- /dev/null
@@ -0,0 +1 @@
+SSL.com_EV_Root_Certification_Authority_RSA_R2.pem
\ No newline at end of file
diff --git a/ssl/certs/08063a00.0 b/ssl/certs/08063a00.0
new file mode 120000 (symlink)
index 0000000..267a5cc
--- /dev/null
@@ -0,0 +1 @@
+Security_Communication_RootCA3.pem
\ No newline at end of file
diff --git a/ssl/certs/09789157.0 b/ssl/certs/09789157.0
new file mode 120000 (symlink)
index 0000000..1ac9c0e
--- /dev/null
@@ -0,0 +1 @@
+Starfield_Services_Root_Certificate_Authority_-_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/0a775a30.0 b/ssl/certs/0a775a30.0
new file mode 120000 (symlink)
index 0000000..1f13783
--- /dev/null
@@ -0,0 +1 @@
+GTS_Root_R3.pem
\ No newline at end of file
diff --git a/ssl/certs/0b1b94ef.0 b/ssl/certs/0b1b94ef.0
new file mode 120000 (symlink)
index 0000000..69ff81e
--- /dev/null
@@ -0,0 +1 @@
+CFCA_EV_ROOT.pem
\ No newline at end of file
diff --git a/ssl/certs/0b9bc432.0 b/ssl/certs/0b9bc432.0
new file mode 120000 (symlink)
index 0000000..31d60a0
--- /dev/null
@@ -0,0 +1 @@
+ISRG_Root_X2.pem
\ No newline at end of file
diff --git a/ssl/certs/0bf05006.0 b/ssl/certs/0bf05006.0
new file mode 120000 (symlink)
index 0000000..781007b
--- /dev/null
@@ -0,0 +1 @@
+SSL.com_Root_Certification_Authority_ECC.pem
\ No newline at end of file
diff --git a/ssl/certs/0f5dc4f3.0 b/ssl/certs/0f5dc4f3.0
new file mode 120000 (symlink)
index 0000000..6184212
--- /dev/null
@@ -0,0 +1 @@
+UCA_Extended_Validation_Root.pem
\ No newline at end of file
diff --git a/ssl/certs/0f6fa695.0 b/ssl/certs/0f6fa695.0
new file mode 120000 (symlink)
index 0000000..48a515c
--- /dev/null
@@ -0,0 +1 @@
+GDCA_TrustAUTH_R5_ROOT.pem
\ No newline at end of file
diff --git a/ssl/certs/1001acf7.0 b/ssl/certs/1001acf7.0
new file mode 120000 (symlink)
index 0000000..2478d44
--- /dev/null
@@ -0,0 +1 @@
+GTS_Root_R1.pem
\ No newline at end of file
diff --git a/ssl/certs/106f3e4d.0 b/ssl/certs/106f3e4d.0
new file mode 120000 (symlink)
index 0000000..433d7b1
--- /dev/null
@@ -0,0 +1 @@
+Entrust_Root_Certification_Authority_-_EC1.pem
\ No newline at end of file
diff --git a/ssl/certs/14bc7599.0 b/ssl/certs/14bc7599.0
new file mode 120000 (symlink)
index 0000000..82d621f
--- /dev/null
@@ -0,0 +1 @@
+emSign_ECC_Root_CA_-_G3.pem
\ No newline at end of file
diff --git a/ssl/certs/18856ac4.0 b/ssl/certs/18856ac4.0
new file mode 120000 (symlink)
index 0000000..04dacae
--- /dev/null
@@ -0,0 +1 @@
+SecureSign_RootCA11.pem
\ No newline at end of file
diff --git a/ssl/certs/1d3472b9.0 b/ssl/certs/1d3472b9.0
new file mode 120000 (symlink)
index 0000000..b76c9bc
--- /dev/null
@@ -0,0 +1 @@
+GlobalSign_ECC_Root_CA_-_R5.pem
\ No newline at end of file
diff --git a/ssl/certs/1e08bfd1.0 b/ssl/certs/1e08bfd1.0
new file mode 120000 (symlink)
index 0000000..8445bf8
--- /dev/null
@@ -0,0 +1 @@
+IdenTrust_Public_Sector_Root_CA_1.pem
\ No newline at end of file
diff --git a/ssl/certs/1e09d511.0 b/ssl/certs/1e09d511.0
new file mode 120000 (symlink)
index 0000000..a35af48
--- /dev/null
@@ -0,0 +1 @@
+T-TeleSec_GlobalRoot_Class_2.pem
\ No newline at end of file
diff --git a/ssl/certs/244b5494.0 b/ssl/certs/244b5494.0
new file mode 120000 (symlink)
index 0000000..0a20d14
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_High_Assurance_EV_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/2923b3f9.0 b/ssl/certs/2923b3f9.0
new file mode 120000 (symlink)
index 0000000..9186210
--- /dev/null
@@ -0,0 +1 @@
+emSign_Root_CA_-_G1.pem
\ No newline at end of file
diff --git a/ssl/certs/2ae6433e.0 b/ssl/certs/2ae6433e.0
new file mode 120000 (symlink)
index 0000000..b70b358
--- /dev/null
@@ -0,0 +1 @@
+CA_Disig_Root_R2.pem
\ No newline at end of file
diff --git a/ssl/certs/2b349938.0 b/ssl/certs/2b349938.0
new file mode 120000 (symlink)
index 0000000..8bd8025
--- /dev/null
@@ -0,0 +1 @@
+AffirmTrust_Commercial.pem
\ No newline at end of file
diff --git a/ssl/certs/32888f65.0 b/ssl/certs/32888f65.0
new file mode 120000 (symlink)
index 0000000..39dde35
--- /dev/null
@@ -0,0 +1 @@
+Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem
\ No newline at end of file
diff --git a/ssl/certs/3513523f.0 b/ssl/certs/3513523f.0
new file mode 120000 (symlink)
index 0000000..41d74a4
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_Global_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/3bde41ac.0 b/ssl/certs/3bde41ac.0
new file mode 120000 (symlink)
index 0000000..634e72b
--- /dev/null
@@ -0,0 +1 @@
+Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem
\ No newline at end of file
diff --git a/ssl/certs/3bde41ac.1 b/ssl/certs/3bde41ac.1
new file mode 120000 (symlink)
index 0000000..3674715
--- /dev/null
@@ -0,0 +1 @@
+Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068_2.pem
\ No newline at end of file
diff --git a/ssl/certs/3e44d2f7.0 b/ssl/certs/3e44d2f7.0
new file mode 120000 (symlink)
index 0000000..a2d890d
--- /dev/null
@@ -0,0 +1 @@
+TrustCor_RootCert_CA-2.pem
\ No newline at end of file
diff --git a/ssl/certs/3e45d192.0 b/ssl/certs/3e45d192.0
new file mode 120000 (symlink)
index 0000000..33456ca
--- /dev/null
@@ -0,0 +1 @@
+Hongkong_Post_Root_CA_1.pem
\ No newline at end of file
diff --git a/ssl/certs/3fb36b73.0 b/ssl/certs/3fb36b73.0
new file mode 120000 (symlink)
index 0000000..0ec2e82
--- /dev/null
@@ -0,0 +1 @@
+NAVER_Global_Root_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/40193066.0 b/ssl/certs/40193066.0
new file mode 120000 (symlink)
index 0000000..f41c198
--- /dev/null
@@ -0,0 +1 @@
+Certum_Trusted_Network_CA_2.pem
\ No newline at end of file
diff --git a/ssl/certs/4042bcee.0 b/ssl/certs/4042bcee.0
new file mode 120000 (symlink)
index 0000000..6dafe28
--- /dev/null
@@ -0,0 +1 @@
+ISRG_Root_X1.pem
\ No newline at end of file
diff --git a/ssl/certs/40547a79.0 b/ssl/certs/40547a79.0
new file mode 120000 (symlink)
index 0000000..8c89a29
--- /dev/null
@@ -0,0 +1 @@
+COMODO_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/406c9bb1.0 b/ssl/certs/406c9bb1.0
new file mode 120000 (symlink)
index 0000000..8f34a5a
--- /dev/null
@@ -0,0 +1 @@
+emSign_Root_CA_-_C1.pem
\ No newline at end of file
diff --git a/ssl/certs/429a822e.0 b/ssl/certs/429a822e.0
new file mode 120000 (symlink)
index 0000000..e78b135
--- /dev/null
@@ -0,0 +1 @@
+ssl-cert-snakeoil.pem
\ No newline at end of file
diff --git a/ssl/certs/48bec511.0 b/ssl/certs/48bec511.0
new file mode 120000 (symlink)
index 0000000..a1b189b
--- /dev/null
@@ -0,0 +1 @@
+Certum_Trusted_Network_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/4b718d9b.0 b/ssl/certs/4b718d9b.0
new file mode 120000 (symlink)
index 0000000..64c0c33
--- /dev/null
@@ -0,0 +1 @@
+emSign_ECC_Root_CA_-_C3.pem
\ No newline at end of file
diff --git a/ssl/certs/4bfab552.0 b/ssl/certs/4bfab552.0
new file mode 120000 (symlink)
index 0000000..c5b483e
--- /dev/null
@@ -0,0 +1 @@
+Starfield_Root_Certificate_Authority_-_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/4f316efb.0 b/ssl/certs/4f316efb.0
new file mode 120000 (symlink)
index 0000000..855a9c7
--- /dev/null
@@ -0,0 +1 @@
+SwissSign_Gold_CA_-_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/5273a94c.0 b/ssl/certs/5273a94c.0
new file mode 120000 (symlink)
index 0000000..c775a2b
--- /dev/null
@@ -0,0 +1 @@
+E-Tugra_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/5443e9e3.0 b/ssl/certs/5443e9e3.0
new file mode 120000 (symlink)
index 0000000..391dfda
--- /dev/null
@@ -0,0 +1 @@
+T-TeleSec_GlobalRoot_Class_3.pem
\ No newline at end of file
diff --git a/ssl/certs/54657681.0 b/ssl/certs/54657681.0
new file mode 120000 (symlink)
index 0000000..05e0f1d
--- /dev/null
@@ -0,0 +1 @@
+Buypass_Class_2_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/57bcb2da.0 b/ssl/certs/57bcb2da.0
new file mode 120000 (symlink)
index 0000000..676f46e
--- /dev/null
@@ -0,0 +1 @@
+SwissSign_Silver_CA_-_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/5860aaa6.0 b/ssl/certs/5860aaa6.0
new file mode 120000 (symlink)
index 0000000..6334e28
--- /dev/null
@@ -0,0 +1 @@
+Security_Communication_ECC_RootCA1.pem
\ No newline at end of file
diff --git a/ssl/certs/5931b5bc.0 b/ssl/certs/5931b5bc.0
new file mode 120000 (symlink)
index 0000000..45a0367
--- /dev/null
@@ -0,0 +1 @@
+D-TRUST_EV_Root_CA_1_2020.pem
\ No newline at end of file
diff --git a/ssl/certs/5a7722fb.0 b/ssl/certs/5a7722fb.0
new file mode 120000 (symlink)
index 0000000..2939f31
--- /dev/null
@@ -0,0 +1 @@
+E-Tugra_Global_Root_CA_ECC_v3.pem
\ No newline at end of file
diff --git a/ssl/certs/5ad8a5d6.0 b/ssl/certs/5ad8a5d6.0
new file mode 120000 (symlink)
index 0000000..72b60a6
--- /dev/null
@@ -0,0 +1 @@
+GlobalSign_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/5cd81ad7.0 b/ssl/certs/5cd81ad7.0
new file mode 120000 (symlink)
index 0000000..aabfe30
--- /dev/null
@@ -0,0 +1 @@
+TeliaSonera_Root_CA_v1.pem
\ No newline at end of file
diff --git a/ssl/certs/5d3033c5.0 b/ssl/certs/5d3033c5.0
new file mode 120000 (symlink)
index 0000000..53dceb0
--- /dev/null
@@ -0,0 +1 @@
+TrustCor_RootCert_CA-1.pem
\ No newline at end of file
diff --git a/ssl/certs/5e98733a.0 b/ssl/certs/5e98733a.0
new file mode 120000 (symlink)
index 0000000..b15c128
--- /dev/null
@@ -0,0 +1 @@
+Entrust_Root_Certification_Authority_-_G4.pem
\ No newline at end of file
diff --git a/ssl/certs/5f15c80c.0 b/ssl/certs/5f15c80c.0
new file mode 120000 (symlink)
index 0000000..1372ca3
--- /dev/null
@@ -0,0 +1 @@
+TWCA_Global_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/5f618aec.0 b/ssl/certs/5f618aec.0
new file mode 120000 (symlink)
index 0000000..65e8e80
--- /dev/null
@@ -0,0 +1 @@
+certSIGN_Root_CA_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/607986c7.0 b/ssl/certs/607986c7.0
new file mode 120000 (symlink)
index 0000000..fc7786a
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_Global_Root_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/626dceaf.0 b/ssl/certs/626dceaf.0
new file mode 120000 (symlink)
index 0000000..c0c65bb
--- /dev/null
@@ -0,0 +1 @@
+GTS_Root_R2.pem
\ No newline at end of file
diff --git a/ssl/certs/653b494a.0 b/ssl/certs/653b494a.0
new file mode 120000 (symlink)
index 0000000..6481493
--- /dev/null
@@ -0,0 +1 @@
+Baltimore_CyberTrust_Root.pem
\ No newline at end of file
diff --git a/ssl/certs/66445960.0 b/ssl/certs/66445960.0
new file mode 120000 (symlink)
index 0000000..25b721d
--- /dev/null
@@ -0,0 +1 @@
+E-Tugra_Global_Root_CA_RSA_v3.pem
\ No newline at end of file
diff --git a/ssl/certs/68dd7389.0 b/ssl/certs/68dd7389.0
new file mode 120000 (symlink)
index 0000000..f75a6f3
--- /dev/null
@@ -0,0 +1 @@
+Hongkong_Post_Root_CA_3.pem
\ No newline at end of file
diff --git a/ssl/certs/6b99d060.0 b/ssl/certs/6b99d060.0
new file mode 120000 (symlink)
index 0000000..032a296
--- /dev/null
@@ -0,0 +1 @@
+Entrust_Root_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/6d41d539.0 b/ssl/certs/6d41d539.0
new file mode 120000 (symlink)
index 0000000..07ac44f
--- /dev/null
@@ -0,0 +1 @@
+Amazon_Root_CA_2.pem
\ No newline at end of file
diff --git a/ssl/certs/6fa5da56.0 b/ssl/certs/6fa5da56.0
new file mode 120000 (symlink)
index 0000000..0dde01c
--- /dev/null
@@ -0,0 +1 @@
+SSL.com_Root_Certification_Authority_RSA.pem
\ No newline at end of file
diff --git a/ssl/certs/706f604c.0 b/ssl/certs/706f604c.0
new file mode 120000 (symlink)
index 0000000..04ca90b
--- /dev/null
@@ -0,0 +1 @@
+XRamp_Global_CA_Root.pem
\ No newline at end of file
diff --git a/ssl/certs/749e9e03.0 b/ssl/certs/749e9e03.0
new file mode 120000 (symlink)
index 0000000..d675744
--- /dev/null
@@ -0,0 +1 @@
+QuoVadis_Root_CA_1_G3.pem
\ No newline at end of file
diff --git a/ssl/certs/75d1b2ed.0 b/ssl/certs/75d1b2ed.0
new file mode 120000 (symlink)
index 0000000..275c6c1
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_Trusted_Root_G4.pem
\ No newline at end of file
diff --git a/ssl/certs/76faf6c0.0 b/ssl/certs/76faf6c0.0
new file mode 120000 (symlink)
index 0000000..6b6df23
--- /dev/null
@@ -0,0 +1 @@
+QuoVadis_Root_CA_3.pem
\ No newline at end of file
diff --git a/ssl/certs/7719f463.0 b/ssl/certs/7719f463.0
new file mode 120000 (symlink)
index 0000000..5130bf1
--- /dev/null
@@ -0,0 +1 @@
+Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem
\ No newline at end of file
diff --git a/ssl/certs/773e07ad.0 b/ssl/certs/773e07ad.0
new file mode 120000 (symlink)
index 0000000..44b38dd
--- /dev/null
@@ -0,0 +1 @@
+OISTE_WISeKey_Global_Root_GC_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/7a3adc42.0 b/ssl/certs/7a3adc42.0
new file mode 120000 (symlink)
index 0000000..e1a26ca
--- /dev/null
@@ -0,0 +1 @@
+vTrus_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/7a780d93.0 b/ssl/certs/7a780d93.0
new file mode 120000 (symlink)
index 0000000..f3c82d6
--- /dev/null
@@ -0,0 +1 @@
+Certainly_Root_R1.pem
\ No newline at end of file
diff --git a/ssl/certs/7aaf71c0.0 b/ssl/certs/7aaf71c0.0
new file mode 120000 (symlink)
index 0000000..86ed3f8
--- /dev/null
@@ -0,0 +1 @@
+TrustCor_ECA-1.pem
\ No newline at end of file
diff --git a/ssl/certs/7f3d5d1d.0 b/ssl/certs/7f3d5d1d.0
new file mode 120000 (symlink)
index 0000000..db79c20
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_Assured_ID_Root_G3.pem
\ No newline at end of file
diff --git a/ssl/certs/8160b96c.0 b/ssl/certs/8160b96c.0
new file mode 120000 (symlink)
index 0000000..d45e12b
--- /dev/null
@@ -0,0 +1 @@
+Microsec_e-Szigno_Root_CA_2009.pem
\ No newline at end of file
diff --git a/ssl/certs/8508e720.0 b/ssl/certs/8508e720.0
new file mode 120000 (symlink)
index 0000000..869dd56
--- /dev/null
@@ -0,0 +1 @@
+Certainly_Root_E1.pem
\ No newline at end of file
diff --git a/ssl/certs/8cb5ee0f.0 b/ssl/certs/8cb5ee0f.0
new file mode 120000 (symlink)
index 0000000..20b36be
--- /dev/null
@@ -0,0 +1 @@
+Amazon_Root_CA_3.pem
\ No newline at end of file
diff --git a/ssl/certs/8d86cdd1.0 b/ssl/certs/8d86cdd1.0
new file mode 120000 (symlink)
index 0000000..934c8ea
--- /dev/null
@@ -0,0 +1 @@
+certSIGN_ROOT_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/8d89cda1.0 b/ssl/certs/8d89cda1.0
new file mode 120000 (symlink)
index 0000000..7e0403c
--- /dev/null
@@ -0,0 +1 @@
+Microsoft_ECC_Root_Certificate_Authority_2017.pem
\ No newline at end of file
diff --git a/ssl/certs/8f103249.0 b/ssl/certs/8f103249.0
new file mode 120000 (symlink)
index 0000000..f460aa5
--- /dev/null
@@ -0,0 +1 @@
+Telia_Root_CA_v2.pem
\ No newline at end of file
diff --git a/ssl/certs/90c5a3c8.0 b/ssl/certs/90c5a3c8.0
new file mode 120000 (symlink)
index 0000000..832faa4
--- /dev/null
@@ -0,0 +1 @@
+HiPKI_Root_CA_-_G1.pem
\ No newline at end of file
diff --git a/ssl/certs/930ac5d2.0 b/ssl/certs/930ac5d2.0
new file mode 120000 (symlink)
index 0000000..08b492b
--- /dev/null
@@ -0,0 +1 @@
+Actalis_Authentication_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/93bc0acc.0 b/ssl/certs/93bc0acc.0
new file mode 120000 (symlink)
index 0000000..a7ae5c7
--- /dev/null
@@ -0,0 +1 @@
+AffirmTrust_Networking.pem
\ No newline at end of file
diff --git a/ssl/certs/9482e63a.0 b/ssl/certs/9482e63a.0
new file mode 120000 (symlink)
index 0000000..74f3226
--- /dev/null
@@ -0,0 +1 @@
+Certum_EC-384_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/9846683b.0 b/ssl/certs/9846683b.0
new file mode 120000 (symlink)
index 0000000..ba587ba
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_TLS_ECC_P384_Root_G5.pem
\ No newline at end of file
diff --git a/ssl/certs/988a38cb.0 b/ssl/certs/988a38cb.0
new file mode 120000 (symlink)
index 0000000..642765a
--- /dev/null
@@ -0,0 +1 @@
+NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem
\ No newline at end of file
diff --git a/ssl/certs/9b5697b0.0 b/ssl/certs/9b5697b0.0
new file mode 120000 (symlink)
index 0000000..293dad9
--- /dev/null
@@ -0,0 +1 @@
+Trustwave_Global_ECC_P256_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/9c8dfbd4.0 b/ssl/certs/9c8dfbd4.0
new file mode 120000 (symlink)
index 0000000..55228f5
--- /dev/null
@@ -0,0 +1 @@
+AffirmTrust_Premium_ECC.pem
\ No newline at end of file
diff --git a/ssl/certs/9d04f354.0 b/ssl/certs/9d04f354.0
new file mode 120000 (symlink)
index 0000000..a9af253
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_Assured_ID_Root_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/9ef4a08a.0 b/ssl/certs/9ef4a08a.0
new file mode 120000 (symlink)
index 0000000..8ca30e4
--- /dev/null
@@ -0,0 +1 @@
+D-TRUST_BR_Root_CA_1_2020.pem
\ No newline at end of file
diff --git a/ssl/certs/9f727ac7.0 b/ssl/certs/9f727ac7.0
new file mode 120000 (symlink)
index 0000000..24d323a
--- /dev/null
@@ -0,0 +1 @@
+HARICA_TLS_RSA_Root_CA_2021.pem
\ No newline at end of file
diff --git a/ssl/certs/ACCVRAIZ1.pem b/ssl/certs/ACCVRAIZ1.pem
new file mode 120000 (symlink)
index 0000000..ae93a02
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt
\ No newline at end of file
diff --git a/ssl/certs/AC_RAIZ_FNMT-RCM.pem b/ssl/certs/AC_RAIZ_FNMT-RCM.pem
new file mode 120000 (symlink)
index 0000000..b535550
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt
\ No newline at end of file
diff --git a/ssl/certs/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem b/ssl/certs/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem
new file mode 120000 (symlink)
index 0000000..51b701c
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt
\ No newline at end of file
diff --git a/ssl/certs/ANF_Secure_Server_Root_CA.pem b/ssl/certs/ANF_Secure_Server_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..97fca18
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/ANF_Secure_Server_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Actalis_Authentication_Root_CA.pem b/ssl/certs/Actalis_Authentication_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..a6f77f0
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/AffirmTrust_Commercial.pem b/ssl/certs/AffirmTrust_Commercial.pem
new file mode 120000 (symlink)
index 0000000..471d3dc
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/AffirmTrust_Commercial.crt
\ No newline at end of file
diff --git a/ssl/certs/AffirmTrust_Networking.pem b/ssl/certs/AffirmTrust_Networking.pem
new file mode 120000 (symlink)
index 0000000..76cb81b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/AffirmTrust_Networking.crt
\ No newline at end of file
diff --git a/ssl/certs/AffirmTrust_Premium.pem b/ssl/certs/AffirmTrust_Premium.pem
new file mode 120000 (symlink)
index 0000000..d854d62
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/AffirmTrust_Premium.crt
\ No newline at end of file
diff --git a/ssl/certs/AffirmTrust_Premium_ECC.pem b/ssl/certs/AffirmTrust_Premium_ECC.pem
new file mode 120000 (symlink)
index 0000000..b502eff
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/AffirmTrust_Premium_ECC.crt
\ No newline at end of file
diff --git a/ssl/certs/Amazon_Root_CA_1.pem b/ssl/certs/Amazon_Root_CA_1.pem
new file mode 120000 (symlink)
index 0000000..25f9e61
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt
\ No newline at end of file
diff --git a/ssl/certs/Amazon_Root_CA_2.pem b/ssl/certs/Amazon_Root_CA_2.pem
new file mode 120000 (symlink)
index 0000000..92f7603
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt
\ No newline at end of file
diff --git a/ssl/certs/Amazon_Root_CA_3.pem b/ssl/certs/Amazon_Root_CA_3.pem
new file mode 120000 (symlink)
index 0000000..00fb4f1
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt
\ No newline at end of file
diff --git a/ssl/certs/Amazon_Root_CA_4.pem b/ssl/certs/Amazon_Root_CA_4.pem
new file mode 120000 (symlink)
index 0000000..f4cf700
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt
\ No newline at end of file
diff --git a/ssl/certs/Atos_TrustedRoot_2011.pem b/ssl/certs/Atos_TrustedRoot_2011.pem
new file mode 120000 (symlink)
index 0000000..ae32ea5
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt
\ No newline at end of file
diff --git a/ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem b/ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem
new file mode 120000 (symlink)
index 0000000..029ce71
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt
\ No newline at end of file
diff --git a/ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068_2.pem b/ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068_2.pem
new file mode 120000 (symlink)
index 0000000..7cf350d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068_2.crt
\ No newline at end of file
diff --git a/ssl/certs/Baltimore_CyberTrust_Root.pem b/ssl/certs/Baltimore_CyberTrust_Root.pem
new file mode 120000 (symlink)
index 0000000..b99617d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Baltimore_CyberTrust_Root.crt
\ No newline at end of file
diff --git a/ssl/certs/Buypass_Class_2_Root_CA.pem b/ssl/certs/Buypass_Class_2_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..dcef189
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Buypass_Class_3_Root_CA.pem b/ssl/certs/Buypass_Class_3_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..8810e8a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/CA_Disig_Root_R2.pem b/ssl/certs/CA_Disig_Root_R2.pem
new file mode 120000 (symlink)
index 0000000..320fcab
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt
\ No newline at end of file
diff --git a/ssl/certs/CFCA_EV_ROOT.pem b/ssl/certs/CFCA_EV_ROOT.pem
new file mode 120000 (symlink)
index 0000000..5c79296
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt
\ No newline at end of file
diff --git a/ssl/certs/COMODO_Certification_Authority.pem b/ssl/certs/COMODO_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..cb67766
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/COMODO_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/COMODO_ECC_Certification_Authority.pem b/ssl/certs/COMODO_ECC_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..3c84f75
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/COMODO_RSA_Certification_Authority.pem b/ssl/certs/COMODO_RSA_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..ffb0fae
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/Certainly_Root_E1.pem b/ssl/certs/Certainly_Root_E1.pem
new file mode 120000 (symlink)
index 0000000..1c2ccc0
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certainly_Root_E1.crt
\ No newline at end of file
diff --git a/ssl/certs/Certainly_Root_R1.pem b/ssl/certs/Certainly_Root_R1.pem
new file mode 120000 (symlink)
index 0000000..85e4d29
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certainly_Root_R1.crt
\ No newline at end of file
diff --git a/ssl/certs/Certigna.pem b/ssl/certs/Certigna.pem
new file mode 120000 (symlink)
index 0000000..1e90b14
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certigna.crt
\ No newline at end of file
diff --git a/ssl/certs/Certigna_Root_CA.pem b/ssl/certs/Certigna_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..9f68261
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certigna_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Certum_EC-384_CA.pem b/ssl/certs/Certum_EC-384_CA.pem
new file mode 120000 (symlink)
index 0000000..f4f59ef
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certum_EC-384_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Certum_Trusted_Network_CA.pem b/ssl/certs/Certum_Trusted_Network_CA.pem
new file mode 120000 (symlink)
index 0000000..be5f72e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Certum_Trusted_Network_CA_2.pem b/ssl/certs/Certum_Trusted_Network_CA_2.pem
new file mode 120000 (symlink)
index 0000000..e33d5f7
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt
\ No newline at end of file
diff --git a/ssl/certs/Certum_Trusted_Root_CA.pem b/ssl/certs/Certum_Trusted_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..6ed83a3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Certum_Trusted_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Comodo_AAA_Services_root.pem b/ssl/certs/Comodo_AAA_Services_root.pem
new file mode 120000 (symlink)
index 0000000..d9e0860
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Comodo_AAA_Services_root.crt
\ No newline at end of file
diff --git a/ssl/certs/D-TRUST_BR_Root_CA_1_2020.pem b/ssl/certs/D-TRUST_BR_Root_CA_1_2020.pem
new file mode 120000 (symlink)
index 0000000..fb8c1b2
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_1_2020.crt
\ No newline at end of file
diff --git a/ssl/certs/D-TRUST_EV_Root_CA_1_2020.pem b/ssl/certs/D-TRUST_EV_Root_CA_1_2020.pem
new file mode 120000 (symlink)
index 0000000..e345f4f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_1_2020.crt
\ No newline at end of file
diff --git a/ssl/certs/D-TRUST_Root_Class_3_CA_2_2009.pem b/ssl/certs/D-TRUST_Root_Class_3_CA_2_2009.pem
new file mode 120000 (symlink)
index 0000000..543d729
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt
\ No newline at end of file
diff --git a/ssl/certs/D-TRUST_Root_Class_3_CA_2_EV_2009.pem b/ssl/certs/D-TRUST_Root_Class_3_CA_2_EV_2009.pem
new file mode 120000 (symlink)
index 0000000..f6c52d8
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_Assured_ID_Root_CA.pem b/ssl/certs/DigiCert_Assured_ID_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..e739c93
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_Assured_ID_Root_G2.pem b/ssl/certs/DigiCert_Assured_ID_Root_G2.pem
new file mode 120000 (symlink)
index 0000000..02d6a4e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_Assured_ID_Root_G3.pem b/ssl/certs/DigiCert_Assured_ID_Root_G3.pem
new file mode 120000 (symlink)
index 0000000..bb525d5
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_Global_Root_CA.pem b/ssl/certs/DigiCert_Global_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..1761b75
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_Global_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_Global_Root_G2.pem b/ssl/certs/DigiCert_Global_Root_G2.pem
new file mode 120000 (symlink)
index 0000000..c03bdf8
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_Global_Root_G3.pem b/ssl/certs/DigiCert_Global_Root_G3.pem
new file mode 120000 (symlink)
index 0000000..cf3459e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_High_Assurance_EV_Root_CA.pem b/ssl/certs/DigiCert_High_Assurance_EV_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..22f1d4e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_TLS_ECC_P384_Root_G5.pem b/ssl/certs/DigiCert_TLS_ECC_P384_Root_G5.pem
new file mode 120000 (symlink)
index 0000000..c7ef0a3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_TLS_RSA4096_Root_G5.pem b/ssl/certs/DigiCert_TLS_RSA4096_Root_G5.pem
new file mode 120000 (symlink)
index 0000000..9780006
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_TLS_RSA4096_Root_G5.crt
\ No newline at end of file
diff --git a/ssl/certs/DigiCert_Trusted_Root_G4.pem b/ssl/certs/DigiCert_Trusted_Root_G4.pem
new file mode 120000 (symlink)
index 0000000..d7acb0e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt
\ No newline at end of file
diff --git a/ssl/certs/E-Tugra_Certification_Authority.pem b/ssl/certs/E-Tugra_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..5f0b7a3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/E-Tugra_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/E-Tugra_Global_Root_CA_ECC_v3.pem b/ssl/certs/E-Tugra_Global_Root_CA_ECC_v3.pem
new file mode 120000 (symlink)
index 0000000..4384797
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/E-Tugra_Global_Root_CA_ECC_v3.crt
\ No newline at end of file
diff --git a/ssl/certs/E-Tugra_Global_Root_CA_RSA_v3.pem b/ssl/certs/E-Tugra_Global_Root_CA_RSA_v3.pem
new file mode 120000 (symlink)
index 0000000..df1fb75
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/E-Tugra_Global_Root_CA_RSA_v3.crt
\ No newline at end of file
diff --git a/ssl/certs/Entrust.net_Premium_2048_Secure_Server_CA.pem b/ssl/certs/Entrust.net_Premium_2048_Secure_Server_CA.pem
new file mode 120000 (symlink)
index 0000000..270df9d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Entrust.net_Premium_2048_Secure_Server_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Entrust_Root_Certification_Authority.pem b/ssl/certs/Entrust_Root_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..7cb8439
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/Entrust_Root_Certification_Authority_-_EC1.pem b/ssl/certs/Entrust_Root_Certification_Authority_-_EC1.pem
new file mode 120000 (symlink)
index 0000000..0981741
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_EC1.crt
\ No newline at end of file
diff --git a/ssl/certs/Entrust_Root_Certification_Authority_-_G2.pem b/ssl/certs/Entrust_Root_Certification_Authority_-_G2.pem
new file mode 120000 (symlink)
index 0000000..ad49a19
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/Entrust_Root_Certification_Authority_-_G4.pem b/ssl/certs/Entrust_Root_Certification_Authority_-_G4.pem
new file mode 120000 (symlink)
index 0000000..5f73086
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_G4.crt
\ No newline at end of file
diff --git a/ssl/certs/GDCA_TrustAUTH_R5_ROOT.pem b/ssl/certs/GDCA_TrustAUTH_R5_ROOT.pem
new file mode 120000 (symlink)
index 0000000..02c5d2c
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt
\ No newline at end of file
diff --git a/ssl/certs/GLOBALTRUST_2020.pem b/ssl/certs/GLOBALTRUST_2020.pem
new file mode 120000 (symlink)
index 0000000..bace92e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GLOBALTRUST_2020.crt
\ No newline at end of file
diff --git a/ssl/certs/GTS_Root_R1.pem b/ssl/certs/GTS_Root_R1.pem
new file mode 120000 (symlink)
index 0000000..59c4f6a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GTS_Root_R1.crt
\ No newline at end of file
diff --git a/ssl/certs/GTS_Root_R2.pem b/ssl/certs/GTS_Root_R2.pem
new file mode 120000 (symlink)
index 0000000..615e90b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GTS_Root_R2.crt
\ No newline at end of file
diff --git a/ssl/certs/GTS_Root_R3.pem b/ssl/certs/GTS_Root_R3.pem
new file mode 120000 (symlink)
index 0000000..fc4117e
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GTS_Root_R3.crt
\ No newline at end of file
diff --git a/ssl/certs/GTS_Root_R4.pem b/ssl/certs/GTS_Root_R4.pem
new file mode 120000 (symlink)
index 0000000..ca79230
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GTS_Root_R4.crt
\ No newline at end of file
diff --git a/ssl/certs/GlobalSign_ECC_Root_CA_-_R4.pem b/ssl/certs/GlobalSign_ECC_Root_CA_-_R4.pem
new file mode 120000 (symlink)
index 0000000..51ce324
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt
\ No newline at end of file
diff --git a/ssl/certs/GlobalSign_ECC_Root_CA_-_R5.pem b/ssl/certs/GlobalSign_ECC_Root_CA_-_R5.pem
new file mode 120000 (symlink)
index 0000000..4a26990
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt
\ No newline at end of file
diff --git a/ssl/certs/GlobalSign_Root_CA.pem b/ssl/certs/GlobalSign_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..6dad871
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GlobalSign_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/GlobalSign_Root_CA_-_R3.pem b/ssl/certs/GlobalSign_Root_CA_-_R3.pem
new file mode 120000 (symlink)
index 0000000..b1db16b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt
\ No newline at end of file
diff --git a/ssl/certs/GlobalSign_Root_CA_-_R6.pem b/ssl/certs/GlobalSign_Root_CA_-_R6.pem
new file mode 120000 (symlink)
index 0000000..8540b63
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt
\ No newline at end of file
diff --git a/ssl/certs/GlobalSign_Root_E46.pem b/ssl/certs/GlobalSign_Root_E46.pem
new file mode 120000 (symlink)
index 0000000..017346f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GlobalSign_Root_E46.crt
\ No newline at end of file
diff --git a/ssl/certs/GlobalSign_Root_R46.pem b/ssl/certs/GlobalSign_Root_R46.pem
new file mode 120000 (symlink)
index 0000000..761318d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/GlobalSign_Root_R46.crt
\ No newline at end of file
diff --git a/ssl/certs/Go_Daddy_Class_2_CA.pem b/ssl/certs/Go_Daddy_Class_2_CA.pem
new file mode 120000 (symlink)
index 0000000..9a7502b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Go_Daddy_Class_2_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Go_Daddy_Root_Certificate_Authority_-_G2.pem b/ssl/certs/Go_Daddy_Root_Certificate_Authority_-_G2.pem
new file mode 120000 (symlink)
index 0000000..9eec6e3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/HARICA_TLS_ECC_Root_CA_2021.pem b/ssl/certs/HARICA_TLS_ECC_Root_CA_2021.pem
new file mode 120000 (symlink)
index 0000000..7631020
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/HARICA_TLS_ECC_Root_CA_2021.crt
\ No newline at end of file
diff --git a/ssl/certs/HARICA_TLS_RSA_Root_CA_2021.pem b/ssl/certs/HARICA_TLS_RSA_Root_CA_2021.pem
new file mode 120000 (symlink)
index 0000000..a80e49d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/HARICA_TLS_RSA_Root_CA_2021.crt
\ No newline at end of file
diff --git a/ssl/certs/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem b/ssl/certs/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem
new file mode 120000 (symlink)
index 0000000..577ae98
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt
\ No newline at end of file
diff --git a/ssl/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem b/ssl/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem
new file mode 120000 (symlink)
index 0000000..6e4d3af
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt
\ No newline at end of file
diff --git a/ssl/certs/HiPKI_Root_CA_-_G1.pem b/ssl/certs/HiPKI_Root_CA_-_G1.pem
new file mode 120000 (symlink)
index 0000000..6eaa3c0
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/HiPKI_Root_CA_-_G1.crt
\ No newline at end of file
diff --git a/ssl/certs/Hongkong_Post_Root_CA_1.pem b/ssl/certs/Hongkong_Post_Root_CA_1.pem
new file mode 120000 (symlink)
index 0000000..5439896
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_1.crt
\ No newline at end of file
diff --git a/ssl/certs/Hongkong_Post_Root_CA_3.pem b/ssl/certs/Hongkong_Post_Root_CA_3.pem
new file mode 120000 (symlink)
index 0000000..d654292
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_3.crt
\ No newline at end of file
diff --git a/ssl/certs/ISRG_Root_X1.pem b/ssl/certs/ISRG_Root_X1.pem
new file mode 120000 (symlink)
index 0000000..d6053af
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt
\ No newline at end of file
diff --git a/ssl/certs/ISRG_Root_X2.pem b/ssl/certs/ISRG_Root_X2.pem
new file mode 120000 (symlink)
index 0000000..f632fe5
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/ISRG_Root_X2.crt
\ No newline at end of file
diff --git a/ssl/certs/IdenTrust_Commercial_Root_CA_1.pem b/ssl/certs/IdenTrust_Commercial_Root_CA_1.pem
new file mode 120000 (symlink)
index 0000000..02d40ff
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt
\ No newline at end of file
diff --git a/ssl/certs/IdenTrust_Public_Sector_Root_CA_1.pem b/ssl/certs/IdenTrust_Public_Sector_Root_CA_1.pem
new file mode 120000 (symlink)
index 0000000..25f7c77
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt
\ No newline at end of file
diff --git a/ssl/certs/Izenpe.com.pem b/ssl/certs/Izenpe.com.pem
new file mode 120000 (symlink)
index 0000000..f751283
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Izenpe.com.crt
\ No newline at end of file
diff --git a/ssl/certs/Microsec_e-Szigno_Root_CA_2009.pem b/ssl/certs/Microsec_e-Szigno_Root_CA_2009.pem
new file mode 120000 (symlink)
index 0000000..3fefbf9
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt
\ No newline at end of file
diff --git a/ssl/certs/Microsoft_ECC_Root_Certificate_Authority_2017.pem b/ssl/certs/Microsoft_ECC_Root_Certificate_Authority_2017.pem
new file mode 120000 (symlink)
index 0000000..274bed0
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt
\ No newline at end of file
diff --git a/ssl/certs/Microsoft_RSA_Root_Certificate_Authority_2017.pem b/ssl/certs/Microsoft_RSA_Root_Certificate_Authority_2017.pem
new file mode 120000 (symlink)
index 0000000..69c2092
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt
\ No newline at end of file
diff --git a/ssl/certs/NAVER_Global_Root_Certification_Authority.pem b/ssl/certs/NAVER_Global_Root_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..e78a5db
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/NAVER_Global_Root_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem b/ssl/certs/NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem
new file mode 120000 (symlink)
index 0000000..8ac3081
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
\ No newline at end of file
diff --git a/ssl/certs/OISTE_WISeKey_Global_Root_GB_CA.pem b/ssl/certs/OISTE_WISeKey_Global_Root_GB_CA.pem
new file mode 120000 (symlink)
index 0000000..3dbaca4
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/OISTE_WISeKey_Global_Root_GC_CA.pem b/ssl/certs/OISTE_WISeKey_Global_Root_GC_CA.pem
new file mode 120000 (symlink)
index 0000000..2e1b517
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/QuoVadis_Root_CA_1_G3.pem b/ssl/certs/QuoVadis_Root_CA_1_G3.pem
new file mode 120000 (symlink)
index 0000000..bab3e9f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt
\ No newline at end of file
diff --git a/ssl/certs/QuoVadis_Root_CA_2.pem b/ssl/certs/QuoVadis_Root_CA_2.pem
new file mode 120000 (symlink)
index 0000000..4a64cb2
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2.crt
\ No newline at end of file
diff --git a/ssl/certs/QuoVadis_Root_CA_2_G3.pem b/ssl/certs/QuoVadis_Root_CA_2_G3.pem
new file mode 120000 (symlink)
index 0000000..b64a3b4
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt
\ No newline at end of file
diff --git a/ssl/certs/QuoVadis_Root_CA_3.pem b/ssl/certs/QuoVadis_Root_CA_3.pem
new file mode 120000 (symlink)
index 0000000..8320ba3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3.crt
\ No newline at end of file
diff --git a/ssl/certs/QuoVadis_Root_CA_3_G3.pem b/ssl/certs/QuoVadis_Root_CA_3_G3.pem
new file mode 120000 (symlink)
index 0000000..0327126
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt
\ No newline at end of file
diff --git a/ssl/certs/SSL.com_EV_Root_Certification_Authority_ECC.pem b/ssl/certs/SSL.com_EV_Root_Certification_Authority_ECC.pem
new file mode 120000 (symlink)
index 0000000..0ce9350
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt
\ No newline at end of file
diff --git a/ssl/certs/SSL.com_EV_Root_Certification_Authority_RSA_R2.pem b/ssl/certs/SSL.com_EV_Root_Certification_Authority_RSA_R2.pem
new file mode 120000 (symlink)
index 0000000..166e2b4
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt
\ No newline at end of file
diff --git a/ssl/certs/SSL.com_Root_Certification_Authority_ECC.pem b/ssl/certs/SSL.com_Root_Certification_Authority_ECC.pem
new file mode 120000 (symlink)
index 0000000..9165e8f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt
\ No newline at end of file
diff --git a/ssl/certs/SSL.com_Root_Certification_Authority_RSA.pem b/ssl/certs/SSL.com_Root_Certification_Authority_RSA.pem
new file mode 120000 (symlink)
index 0000000..74e6904
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt
\ No newline at end of file
diff --git a/ssl/certs/SZAFIR_ROOT_CA2.pem b/ssl/certs/SZAFIR_ROOT_CA2.pem
new file mode 120000 (symlink)
index 0000000..3fa381b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt
\ No newline at end of file
diff --git a/ssl/certs/SecureSign_RootCA11.pem b/ssl/certs/SecureSign_RootCA11.pem
new file mode 120000 (symlink)
index 0000000..85b43dd
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SecureSign_RootCA11.crt
\ No newline at end of file
diff --git a/ssl/certs/SecureTrust_CA.pem b/ssl/certs/SecureTrust_CA.pem
new file mode 120000 (symlink)
index 0000000..2cb1e99
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SecureTrust_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Secure_Global_CA.pem b/ssl/certs/Secure_Global_CA.pem
new file mode 120000 (symlink)
index 0000000..e743a00
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Secure_Global_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Security_Communication_ECC_RootCA1.pem b/ssl/certs/Security_Communication_ECC_RootCA1.pem
new file mode 120000 (symlink)
index 0000000..d517667
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Security_Communication_ECC_RootCA1.crt
\ No newline at end of file
diff --git a/ssl/certs/Security_Communication_RootCA2.pem b/ssl/certs/Security_Communication_RootCA2.pem
new file mode 120000 (symlink)
index 0000000..e16ac15
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt
\ No newline at end of file
diff --git a/ssl/certs/Security_Communication_RootCA3.pem b/ssl/certs/Security_Communication_RootCA3.pem
new file mode 120000 (symlink)
index 0000000..2c29b6a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Security_Communication_RootCA3.crt
\ No newline at end of file
diff --git a/ssl/certs/Security_Communication_Root_CA.pem b/ssl/certs/Security_Communication_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..02c510f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Security_Communication_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Starfield_Class_2_CA.pem b/ssl/certs/Starfield_Class_2_CA.pem
new file mode 120000 (symlink)
index 0000000..77a3bd1
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Starfield_Class_2_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/Starfield_Root_Certificate_Authority_-_G2.pem b/ssl/certs/Starfield_Root_Certificate_Authority_-_G2.pem
new file mode 120000 (symlink)
index 0000000..b982b3d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/Starfield_Services_Root_Certificate_Authority_-_G2.pem b/ssl/certs/Starfield_Services_Root_Certificate_Authority_-_G2.pem
new file mode 120000 (symlink)
index 0000000..6b4cc32
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/SwissSign_Gold_CA_-_G2.pem b/ssl/certs/SwissSign_Gold_CA_-_G2.pem
new file mode 120000 (symlink)
index 0000000..6c020e4
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SwissSign_Gold_CA_-_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/SwissSign_Silver_CA_-_G2.pem b/ssl/certs/SwissSign_Silver_CA_-_G2.pem
new file mode 120000 (symlink)
index 0000000..f2b4bcc
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/SwissSign_Silver_CA_-_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem b/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem
new file mode 120000 (symlink)
index 0000000..b2f15e9
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt
\ No newline at end of file
diff --git a/ssl/certs/T-TeleSec_GlobalRoot_Class_3.pem b/ssl/certs/T-TeleSec_GlobalRoot_Class_3.pem
new file mode 120000 (symlink)
index 0000000..76f0b9b
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt
\ No newline at end of file
diff --git a/ssl/certs/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem b/ssl/certs/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem
new file mode 120000 (symlink)
index 0000000..1c9dfe0
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt
\ No newline at end of file
diff --git a/ssl/certs/TWCA_Global_Root_CA.pem b/ssl/certs/TWCA_Global_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..35d4e4f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/TWCA_Root_Certification_Authority.pem b/ssl/certs/TWCA_Root_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..c6a8610
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/TeliaSonera_Root_CA_v1.pem b/ssl/certs/TeliaSonera_Root_CA_v1.pem
new file mode 120000 (symlink)
index 0000000..5d2d106
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TeliaSonera_Root_CA_v1.crt
\ No newline at end of file
diff --git a/ssl/certs/Telia_Root_CA_v2.pem b/ssl/certs/Telia_Root_CA_v2.pem
new file mode 120000 (symlink)
index 0000000..9e5dc5f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Telia_Root_CA_v2.crt
\ No newline at end of file
diff --git a/ssl/certs/TrustCor_ECA-1.pem b/ssl/certs/TrustCor_ECA-1.pem
new file mode 120000 (symlink)
index 0000000..eb7d639
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TrustCor_ECA-1.crt
\ No newline at end of file
diff --git a/ssl/certs/TrustCor_RootCert_CA-1.pem b/ssl/certs/TrustCor_RootCert_CA-1.pem
new file mode 120000 (symlink)
index 0000000..5334459
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-1.crt
\ No newline at end of file
diff --git a/ssl/certs/TrustCor_RootCert_CA-2.pem b/ssl/certs/TrustCor_RootCert_CA-2.pem
new file mode 120000 (symlink)
index 0000000..68de1ae
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-2.crt
\ No newline at end of file
diff --git a/ssl/certs/Trustwave_Global_Certification_Authority.pem b/ssl/certs/Trustwave_Global_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..d58727d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Trustwave_Global_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/Trustwave_Global_ECC_P256_Certification_Authority.pem b/ssl/certs/Trustwave_Global_ECC_P256_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..1c7bde1
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Trustwave_Global_ECC_P256_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/Trustwave_Global_ECC_P384_Certification_Authority.pem b/ssl/certs/Trustwave_Global_ECC_P384_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..02ef126
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/Trustwave_Global_ECC_P384_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/TunTrust_Root_CA.pem b/ssl/certs/TunTrust_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..1595687
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/TunTrust_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/UCA_Extended_Validation_Root.pem b/ssl/certs/UCA_Extended_Validation_Root.pem
new file mode 120000 (symlink)
index 0000000..f67795a
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/UCA_Extended_Validation_Root.crt
\ No newline at end of file
diff --git a/ssl/certs/UCA_Global_G2_Root.pem b/ssl/certs/UCA_Global_G2_Root.pem
new file mode 120000 (symlink)
index 0000000..f8006b8
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/UCA_Global_G2_Root.crt
\ No newline at end of file
diff --git a/ssl/certs/USERTrust_ECC_Certification_Authority.pem b/ssl/certs/USERTrust_ECC_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..2d72c32
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/USERTrust_RSA_Certification_Authority.pem b/ssl/certs/USERTrust_RSA_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..dbdd940
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/XRamp_Global_CA_Root.pem b/ssl/certs/XRamp_Global_CA_Root.pem
new file mode 120000 (symlink)
index 0000000..a2ec5b0
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/XRamp_Global_CA_Root.crt
\ No newline at end of file
diff --git a/ssl/certs/a3418fda.0 b/ssl/certs/a3418fda.0
new file mode 120000 (symlink)
index 0000000..12f3c9b
--- /dev/null
@@ -0,0 +1 @@
+GTS_Root_R4.pem
\ No newline at end of file
diff --git a/ssl/certs/a94d09e5.0 b/ssl/certs/a94d09e5.0
new file mode 120000 (symlink)
index 0000000..ed152b5
--- /dev/null
@@ -0,0 +1 @@
+ACCVRAIZ1.pem
\ No newline at end of file
diff --git a/ssl/certs/aee5f10d.0 b/ssl/certs/aee5f10d.0
new file mode 120000 (symlink)
index 0000000..f2fddd3
--- /dev/null
@@ -0,0 +1 @@
+Entrust.net_Premium_2048_Secure_Server_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/b0e59380.0 b/ssl/certs/b0e59380.0
new file mode 120000 (symlink)
index 0000000..6ab0a22
--- /dev/null
@@ -0,0 +1 @@
+GlobalSign_ECC_Root_CA_-_R4.pem
\ No newline at end of file
diff --git a/ssl/certs/b1159c4c.0 b/ssl/certs/b1159c4c.0
new file mode 120000 (symlink)
index 0000000..8130eaf
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_Assured_ID_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/b433981b.0 b/ssl/certs/b433981b.0
new file mode 120000 (symlink)
index 0000000..0c8056e
--- /dev/null
@@ -0,0 +1 @@
+ANF_Secure_Server_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/b66938e9.0 b/ssl/certs/b66938e9.0
new file mode 120000 (symlink)
index 0000000..e937c2a
--- /dev/null
@@ -0,0 +1 @@
+Secure_Global_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/b727005e.0 b/ssl/certs/b727005e.0
new file mode 120000 (symlink)
index 0000000..8c96498
--- /dev/null
@@ -0,0 +1 @@
+AffirmTrust_Premium.pem
\ No newline at end of file
diff --git a/ssl/certs/b7a5b843.0 b/ssl/certs/b7a5b843.0
new file mode 120000 (symlink)
index 0000000..b5d335a
--- /dev/null
@@ -0,0 +1 @@
+TWCA_Root_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/b81b93f0.0 b/ssl/certs/b81b93f0.0
new file mode 120000 (symlink)
index 0000000..20bb85b
--- /dev/null
@@ -0,0 +1 @@
+AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem
\ No newline at end of file
diff --git a/ssl/certs/bf53fb88.0 b/ssl/certs/bf53fb88.0
new file mode 120000 (symlink)
index 0000000..35301bc
--- /dev/null
@@ -0,0 +1 @@
+Microsoft_RSA_Root_Certificate_Authority_2017.pem
\ No newline at end of file
diff --git a/ssl/certs/c01eb047.0 b/ssl/certs/c01eb047.0
new file mode 120000 (symlink)
index 0000000..c40d67a
--- /dev/null
@@ -0,0 +1 @@
+UCA_Global_G2_Root.pem
\ No newline at end of file
diff --git a/ssl/certs/c28a8a30.0 b/ssl/certs/c28a8a30.0
new file mode 120000 (symlink)
index 0000000..908d179
--- /dev/null
@@ -0,0 +1 @@
+D-TRUST_Root_Class_3_CA_2_2009.pem
\ No newline at end of file
diff --git a/ssl/certs/ca-certificates.crt b/ssl/certs/ca-certificates.crt
new file mode 100644 (file)
index 0000000..ef5cf39
--- /dev/null
@@ -0,0 +1,3517 @@
+-----BEGIN CERTIFICATE-----
+MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE
+AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw
+CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ
+BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND
+VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
+qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY
+HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo
+G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA
+lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr
+IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/
+0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH
+k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47
+4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO
+m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa
+cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl
+uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI
+KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls
+ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG
+AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
+VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT
+VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG
+CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA
+cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA
+QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA
+7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA
+cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA
+QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA
+czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu
+aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt
+aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud
+DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF
+BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp
+D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU
+JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m
+AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD
+vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms
+tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH
+7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
+I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA
+h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF
+d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H
+pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx
+CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ
+WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ
+BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG
+Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/
+yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf
+BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz
+WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF
+tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z
+374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC
+IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL
+mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7
+wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS
+MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2
+ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet
+UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H
+YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3
+LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
+nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1
+RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM
+LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf
+77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N
+JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm
+fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp
+6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp
+1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B
+9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok
+RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv
+uu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw
+CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw
+FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S
+Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5
+MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL
+DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS
+QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH
+sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK
+Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu
+SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC
+MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy
+v+c=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
+BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
+MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
+IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
+SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
+ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
+UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
+4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
+KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
+gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
+rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
+51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
+be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
+KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
+v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
+fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
+jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
+ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
+ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
+e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
+jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
+WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
+SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
+pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
+X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
+fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
+K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
+ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
+LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
+LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
+dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
+MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
+cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
+Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
+ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
+MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
+yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
+VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
+nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
+KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
+XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
+vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
+Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
+N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
+nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
+dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
+MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
+cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
+YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
+kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
+QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
+6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
+yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
+QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
+KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
+tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
+QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
+Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
+olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
+x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
+dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
+A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
+cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
+qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
+JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
+s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
+HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
+70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
+V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
+qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
+5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
+C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
+OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
+FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
+KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
+Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
+8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
+MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
+0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
+u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
+u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
+YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
+GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
+RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
+KeC2uAloGRwYQw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
+VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
+cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
+BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
+VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
+0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
+ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
+A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
+aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
+flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
+ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
+9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
+IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
+VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
+93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
+jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
+A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
+U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
+N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
+o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
+5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
+rqXRfboQnoZsG4q5WTP468SQvvG5
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK
+gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ
+W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg
+1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K
+8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r
+2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me
+z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR
+8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj
+mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz
+7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6
++XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI
+0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB
+Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm
+UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2
+LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS
+k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl
+7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm
+btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl
+urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+
+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63
+n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE
+76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H
+9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT
+4PsJYGw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5
+MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
+Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
+A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
+Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl
+ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr
+ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr
+BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM
+YyRIHN8wfdVoOw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5
+MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
+Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
+A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
+Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi
+9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk
+M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB
+MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw
+CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW
+1KyLa2tJElMzrdfkviT8tQp21KW8EA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNV
+BAUTCUc2MzI4NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlk
+YWQgZGUgQ2VydGlmaWNhY2lvbjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNV
+BAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3QgQ0EwHhcNMTkwOTA0MTAwMDM4WhcN
+MzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEwMQswCQYDVQQGEwJF
+UzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQwEgYD
+VQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCj
+cqQZAZ2cC4Ffc0m6p6zzBE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9q
+yGFOtibBTI3/TO80sh9l2Ll49a2pcbnvT1gdpd50IJeh7WhM3pIXS7yr/2WanvtH
+2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcvB2VSAKduyK9o7PQUlrZX
+H1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXsezx76W0OL
+zc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyR
+p1RMVwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQz
+W7i1o0TJrH93PB0j7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/
+SiOL9V8BY9KHcyi1Swr1+KuCLH5zJTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJn
+LNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe8TZBAQIvfXOn3kLMTOmJDVb3
+n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVOHj1tyRRM4y5B
+u8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj
+o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
+AgEATh65isagmD9uw2nAalxJUqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L
+9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzxj6ptBZNscsdW699QIyjlRRA96Gej
+rw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDtdD+4E5UGUcjohybK
+pFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM5gf0
+vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjq
+OknkJjCb5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ
+/zo1PqVUSlJZS2Db7v54EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ9
+2zg/LFis6ELhDtjTO0wugumDLmsx2d1Hhk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI
++PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGyg77FGr8H6lnco4g175x2
+MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3r5+qPeoo
+tt7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
+AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG
+EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM
+FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
+REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
+Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
+VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
+SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
+4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
+cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
+eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
+HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
+A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
+DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
+vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
+DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
+maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
+lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
+KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE
+BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
+cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1
+MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
+Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
+thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
+cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
+L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
+NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
+X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
+m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
+Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
+EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
+KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
+6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
+OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc
+tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd
+IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j
+b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC
+AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw
+ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m
+iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF
+Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ
+hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P
+Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE
+EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV
+1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t
+CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR
+5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw
+f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9
+ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK
+GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
+BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
+cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
+MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
+Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
+thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
+cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
+L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
+NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
+X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
+m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
+Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
+EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
+KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
+6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
+OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
+VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
+cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
+ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
+AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
+661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
+am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
+ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
+PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
+3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
+SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
+3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
+ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
+StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
+Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
+jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
+DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
+ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
+VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
+mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
+IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
+mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
+XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
+dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
+jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
+BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
+DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
+9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
+jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
+Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
+ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
+R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
+MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
+Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
+TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
+HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
+6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
+L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
+1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
+MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
+QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
+arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
+Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
+FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
+P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
+9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
+AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
+uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
+9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
+A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
+OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
++fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
+KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
+DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
+H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
+I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
+5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
+3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
+Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
+MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
+Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
+TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
+HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
+ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
+N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
+tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
+0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
+/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
+KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
+zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
+O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
+34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
+K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
+AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
+Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
+QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
+cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
+IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
+HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
+O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
+033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
+dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
+kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
+3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
+u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
+4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
+BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
+MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
+MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
+EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
+NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
+PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
+x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
+QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
+yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
+QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
+H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
+QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
+i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
+nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
+rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
+hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
+tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
+GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
+lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
++elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
+TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
+nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
+gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
+G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
+zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
+L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw
+CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu
+bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ
+BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s
+eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK
++IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2
+QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4
+hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm
+ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG
+BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw
+PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy
+dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0
+YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2
+1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT
+vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed
+aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0
+1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5
+r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5
+cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ
+wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ
+6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA
+2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH
+Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR
+eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB
+/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u
+d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr
+PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d
+8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi
+1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd
+rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di
+taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7
+lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj
+yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn
+Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy
+yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n
+wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6
+OV+KmalBWQewLK8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
+BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
+DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
+BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
+QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
+gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
+zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
+130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
+JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
+ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
+AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
+AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
+9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
+bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
+fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
+HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
+t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
+WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw
+WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw
+MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x
+MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD
+VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX
+BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO
+ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M
+CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu
+I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm
+TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh
+C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf
+ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz
+IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT
+Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k
+JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5
+hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB
+GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of
+1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov
+L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo
+dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr
+aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq
+hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L
+6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG
+HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6
+0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB
+lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi
+o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1
+gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v
+faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63
+Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh
+jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw
+3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
+AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
+QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
+MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
+0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
+UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
+RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
+OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
+JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
+AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
+BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
+LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
+MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
+44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
+Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
+i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
+9u6wWk5JRFRYX0KD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV
+BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g
+Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ
+BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ
+R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF
+dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw
+vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ
+uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp
+n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs
+cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW
+xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P
+rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF
+DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx
+DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy
+LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C
+eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ
+d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq
+kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC
+b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl
+qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0
+OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c
+NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk
+ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO
+pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj
+03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk
+PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE
+1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX
+QRBdJ3NghVdJIgc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw
+CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw
+JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT
+EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0
+WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT
+LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX
+BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE
+KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm
+Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8
+EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J
+UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn
+nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB
+gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
+QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG
+A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz
+OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ
+VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3
+b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA
+DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn
+0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB
+OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE
+fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E
+Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m
+o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i
+sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW
+OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez
+Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS
+adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n
+3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ
+F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf
+CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29
+XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm
+djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/
+WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb
+AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq
+P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko
+b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj
+XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P
+5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi
+DrW5viSP
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
+MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
+ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
+cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
+WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
+Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
+IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
+UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
+TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
+BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
+kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
+AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
+HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
+sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
+I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
+J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
+VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
+03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6
+MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu
+MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV
+BAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw
+MzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg
+U3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ
+n0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q
+p1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq
+NwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF
+8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3
+HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa
+mqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi
+7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF
+ytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P
+qafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ
+v3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6
+Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1
+vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD
+ggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4
+WxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo
+zMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR
+5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ
+GfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf
+5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq
+0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D
+P78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM
+qJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP
+0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf
+E2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD
+TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
+MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
+aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP
+T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
+sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
+TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
+/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
+7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
+EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
+hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
+a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
+aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
+TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
+PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
+cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
+tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
+ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
+ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
+jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
+ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
+P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
+xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
+Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
+5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
+/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
+AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
+5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
+MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
+GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
+YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
+GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
+BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
+3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
+YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
+rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
+ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
+oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
+QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
+b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
+AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
+GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
+G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
+l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
+smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
+MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
+/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
+PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
+QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
+SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
+IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
+RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
+zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
+BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
+ZQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
+IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
+MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
+ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
+T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
+FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
+cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
+BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
+fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
+GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
+hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
+BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
+MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
+EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
+pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
+9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
+/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
+Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
+qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
+SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
+u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
+Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
+crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
+FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
+/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
+wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
+4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
+2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
+FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
+CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
+boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
+jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
+S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
+QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
+0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
+NVOFBkpdn627G190
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
+JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
+mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
+VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
+AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
+AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
+BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
+pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
+dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
+fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
+NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
+H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
+n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
+biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
+EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
+bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
+YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
+BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
+QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
+0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
+lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
+B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
+ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
+RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
+Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
+RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
+AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
+JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
+6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
+CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
+nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
+43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
+T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
+gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
+TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
+DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
+hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
+06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
+PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
+YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
+MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
+2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
+1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
+q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
+tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
+vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
+5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
+1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
+NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
+Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
+8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
+pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
+Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
+EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
+IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
+K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
+fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
+Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
+BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
+AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
+oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
+sycX
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
+PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
+xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
+Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
+hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
+EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
+FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
+nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
+eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
+hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
+Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
++OkuE6N36B9K
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
+Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
+MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
+bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
+ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
+7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
+0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
+B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
+BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
+LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
+DXZDjC5Ty3zfDBeWUA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT
+HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN
+NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs
+IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+
+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0
+2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp
+wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM
+pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD
+nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po
+sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx
+Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd
+Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX
+KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe
+XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL
+tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv
+TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN
+AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw
+GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H
+PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF
+O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ
+REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik
+AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv
+/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+
+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw
+MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF
+qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK
+ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
+RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
+ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
+xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
+ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
+DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
+jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
+CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
+EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
+fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
+uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
+chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
+9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
+SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
+fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
+sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
+cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
+0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
+4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
+r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
+/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
+gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw
+CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS
+VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5
+NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG
+A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS
+zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0
+QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/
+VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g
+PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf
+Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l
+dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1
+c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO
+PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW
+wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV
+dWNbFJWcHwHP2NVypw87
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw
+CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS
+VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5
+NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG
+A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC
+/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD
+wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3
+OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g
+PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf
+Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l
+dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1
+c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO
+PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA
+y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb
+gfM0agPnIjhQW+0ZT0MW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
+ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
+HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
+UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
+tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
+ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
+lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
+/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
+A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
+dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
+MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
+cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
+L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
+BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
+acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
+o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
+zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
+PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
+Johw1+qRzT65ysCQblrGXnRl11z+o+I=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
+NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
+BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
+ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
+3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
+qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
+p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
+HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
+ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
+HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
+Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
+c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
+RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
+dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
+Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
+3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
+nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
+CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
+xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
+KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG
+EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx
+IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw
+MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln
+biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND
+IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci
+MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti
+sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O
+BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
+Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c
+3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J
+0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG
+EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo
+bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g
+RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ
+TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s
+b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw
+djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0
+WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS
+fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB
+zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq
+hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB
+CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD
++JbNR6iC8hZVdyR+EhCVBCyj
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG
+A1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg
+SW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw
+MFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln
+biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v
+dCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ
+BczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ
+HdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH
+3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH
+GPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c
+xSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1
+aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq
+TbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
+BQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87
+/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4
+kqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG
+YQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT
++xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo
+WXzhriKi4gp6D/piq1JM4fHfyr6DDUI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD
+VQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU
+ZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH
+MTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO
+MRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv
+Z2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz
+f2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO
+8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq
+d7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM
+tTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt
+Od9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB
+o0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x
+PaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM
+wiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d
+GNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH
+6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby
+RQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx
+iN66zB+Afko=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
+RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
+bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
+IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
+MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
+LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
+YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
+A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
+K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
+sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
+MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
+XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
+HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
+4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
+j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
+U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
+zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
+u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
+bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
+fF6adulZkMV8gzURZVE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
+Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
+KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
+NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
+NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
+ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
+BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
+Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
+4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
+KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
+rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
+94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
+sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
+gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
+kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
+vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
+O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
+AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
+9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
+eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
+0vdXcDazv/wor3ElhVsT/h5/WrQ8
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
+d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu
+dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq
+RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy
+MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD
+VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
+L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g
+Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi
+A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt
+ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH
+Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC
+R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX
+hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
+cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
+IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
+dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy
+NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
+dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
+dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
+aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T
+RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN
+cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW
+wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1
+U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0
+jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN
+BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/
+jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
+Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v
+1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R
+nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH
+VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAw
+gb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL
+Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg
+MjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw
+BgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0
+MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1
+c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJ
+bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3Qg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3DumSXbcr3DbVZwbPLqGgZ
+2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV3imz/f3E
+T+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j
+5pds8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAM
+C1rlLAHGVK/XqsEQe9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73T
+DtTUXm6Hnmo9RR3RXRv06QqsYJn7ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNX
+wbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5XxNMhIWNlUpEbsZmOeX7m640A
+2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV7rtNOzK+mndm
+nqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
+dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwl
+N4y6mACXi0mWHv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNj
+c0kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9nMA0GCSqGSIb3DQEBCwUAA4ICAQAS
+5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4QjbRaZIxowLByQzTS
+Gwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht7LGr
+hFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/
+B7NTeLUKYvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uI
+AeV8KEsD+UmDfLJ/fOPtjqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbw
+H5Lk6rWS02FREAutp9lfx1/cH6NcjKF+m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+
+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKWRGhXxNUzzxkvFMSUHHuk
+2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjAJOgc47Ol
+IQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk
+5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuY
+n/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
+MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
+ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
+IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
+SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
+SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
+ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
+DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
+TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
+fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
+sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
+WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
+nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
+dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
+NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
+AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
+MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
+ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
+uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
+PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
+JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
+gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
+j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
+5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
+o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
+/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
+Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
+W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
+hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV
+BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk
+LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv
+b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ
+BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg
+THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v
+IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv
+xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H
+Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB
+eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo
+jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ
++efcMQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
+BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
+aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
+BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
+Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
+MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
+em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
+ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
+B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
+D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
+Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
+q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
+k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
+fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
+dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
+ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
+zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
+rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
+U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
+Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
+XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
+Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
+HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
+GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
+77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
++GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
+vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
+FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
+yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
+AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
+y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
+NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw
+gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn
+cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD
+VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2
+NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r
+YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh
+IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF
+Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ
+KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK
+fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB
+Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C
+MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp
+ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6
+7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx
+vmjkI6TZraE3
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF8zCCA9ugAwIBAgIUDU3FzRYilZYIfrgLfxUGNPt5EDQwDQYJKoZIhvcNAQEL
+BQAwgYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUt
+VHVncmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYw
+JAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIFJTQSB2MzAeFw0yMDAzMTgw
+OTA3MTdaFw00NTAzMTIwOTA3MTdaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMG
+QW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1
+Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBD
+QSBSU0EgdjMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCiZvCJt3J7
+7gnJY9LTQ91ew6aEOErxjYG7FL1H6EAX8z3DeEVypi6Q3po61CBxyryfHUuXCscx
+uj7X/iWpKo429NEvx7epXTPcMHD4QGxLsqYxYdE0PD0xesevxKenhOGXpOhL9hd8
+7jwH7eKKV9y2+/hDJVDqJ4GohryPUkqWOmAalrv9c/SF/YP9f4RtNGx/ardLAQO/
+rWm31zLZ9Vdq6YaCPqVmMbMWPcLzJmAy01IesGykNz709a/r4d+ABs8qQedmCeFL
+l+d3vSFtKbZnwy1+7dZ5ZdHPOrbRsV5WYVB6Ws5OUDGAA5hH5+QYfERaxqSzO8bG
+wzrwbMOLyKSRBfP12baqBqG3q+Sx6iEUXIOk/P+2UNOMEiaZdnDpwA+mdPy70Bt4
+znKS4iicvObpCdg604nmvi533wEKb5b25Y08TVJ2Glbhc34XrD2tbKNSEhhw5oBO
+M/J+JjKsBY04pOZ2PJ8QaQ5tndLBeSBrW88zjdGUdjXnXVXHt6woq0bM5zshtQoK
+5EpZ3IE1S0SVEgpnpaH/WwAH0sDM+T/8nzPyAPiMbIedBi3x7+PmBvrFZhNb/FAH
+nnGGstpvdDDPk1Po3CLW3iAfYY2jLqN4MpBs3KwytQXk9TwzDdbgh3cXTJ2w2Amo
+DVf3RIXwyAS+XF1a4xeOVGNpf0l0ZAWMowIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
+AQH/MB8GA1UdIwQYMBaAFLK0ruYt9ybVqnUtdkvAG1Mh0EjvMB0GA1UdDgQWBBSy
+tK7mLfcm1ap1LXZLwBtTIdBI7zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEL
+BQADggIBAImocn+M684uGMQQgC0QDP/7FM0E4BQ8Tpr7nym/Ip5XuYJzEmMmtcyQ
+6dIqKe6cLcwsmb5FJ+Sxce3kOJUxQfJ9emN438o2Fi+CiJ+8EUdPdk3ILY7r3y18
+Tjvarvbj2l0Upq7ohUSdBm6O++96SmotKygY/r+QLHUWnw/qln0F7psTpURs+APQ
+3SPh/QMSEgj0GDSz4DcLdxEBSL9htLX4GdnLTeqjjO/98Aa1bZL0SmFQhO3sSdPk
+vmjmLuMxC1QLGpLWgti2omU8ZgT5Vdps+9u1FGZNlIM7zR6mK7L+d0CGq+ffCsn9
+9t2HVhjYsCxVYJb6CH5SkPVLpi6HfMsg2wY+oF0Dd32iPBMbKaITVaA9FCKvb7jQ
+mhty3QUBjYZgv6Rn7rWlDdF/5horYmbDB7rnoEgcOMPpRfunf/ztAmgayncSd6YA
+VSgU7NbHEqIbZULpkejLPoeJVF3Zr52XnGnnCv8PWniLYypMfUeUP95L6VPQMPHF
+9p5J3zugkaOj/s1YzOrfr28oO6Bpm4/srK4rVJ2bBLFHIK+WEj5jlB0E5y67hscM
+moi/dkfv97ALl2bSRM9gUgfh1SxKOidhd8rXj+eHDjD/DLsE4mHDosiXYY60MGo8
+bcIHX0pzLz/5FooBZu+6kcpSV3uu1OYP3Qt6f4ueJiDPO++BcYNZ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE
+BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
+IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0
+MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV
+BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w
+HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj
+Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj
+TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u
+KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj
+qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm
+MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12
+ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP
+zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk
+L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC
+jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA
+HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC
+AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
+p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm
+DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5
+COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry
+L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf
+JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg
+IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io
+2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV
+09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ
+XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq
+T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe
+MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD
+VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh
+bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw
+MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g
+UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT
+BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx
+uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV
+HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/
++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147
+bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk
+MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH
+bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
+DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
+QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc
+8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke
+hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI
+KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg
+515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO
+xwy8p2Fp8fc74SrL+SvzZpA3
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
+MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
+aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
+jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
+xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
+1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
+snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
+U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
+9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
+AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
+yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
+38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
+AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
+DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
+HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
+MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
+A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
+RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
+gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
+KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
+QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
+XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
+LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
+RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
+jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
+6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
+mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
+Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
+WD9f
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg
+MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh
+bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx
+MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET
+MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI
+xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k
+ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD
+aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw
+LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw
+1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX
+k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2
+SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h
+bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n
+WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY
+rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce
+MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu
+bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN
+nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt
+Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61
+55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj
+vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf
+cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz
+oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp
+nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs
+pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v
+JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R
+8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4
+5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx
+CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD
+ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw
+MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex
+HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq
+R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd
+yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ
+7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8
++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA
+MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD
+VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy
+MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt
+c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ
+OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG
+vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud
+316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo
+0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE
+y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF
+zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE
++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN
+I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs
+x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa
+ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC
+4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4
+7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg
+JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti
+2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk
+pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF
+FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt
+rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk
+ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5
+u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP
+4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6
+N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3
+vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG
+A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw
+FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx
+MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u
+aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b
+RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z
+YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3
+QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw
+yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+
+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ
+SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH
+r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0
+4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me
+dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw
+q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2
+nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu
+H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA
+VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC
+XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd
+6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf
++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi
+kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7
+wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB
+TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C
+MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn
+4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I
+aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy
+qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
+MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
+YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
+MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
+ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
+MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
+ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
+PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
+wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
+EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
+avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
+sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
+/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
+IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
+OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
+TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
+HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
+dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
+ReYNnyicsbkqWletNw+vHX/bvZ8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
+NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
+AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
+E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
+/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
+DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
+GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
+tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
+AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
+WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
+9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
+gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
+2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
+4uJEvlz36hz1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw
+CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
+MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
+MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
+Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo
+27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w
+Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw
+TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl
+qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH
+szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8
+Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk
+MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92
+wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p
+aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN
+VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID
+AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb
+C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe
+QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy
+h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4
+7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J
+ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef
+MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/
+Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT
+6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ
+0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm
+2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb
+bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw
+CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
+MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
+MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
+Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt
+nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY
+6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu
+MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k
+RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg
+f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV
++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo
+dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW
+Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa
+G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq
+gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID
+AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H
+vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8
+0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC
+B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u
+NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg
+yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev
+HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6
+xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR
+TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg
+JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV
+7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl
+6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD
+VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
+A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
+WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
+IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
+AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G
+jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2
+4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
+BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7
+VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm
+ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD
+VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
+A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
+WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
+IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
+AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi
+QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR
+HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
+BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D
+9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8
+p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw
+CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh
+cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v
+dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG
+A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
+aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg
+Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7
+KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y
+STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD
+AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw
+SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN
+nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg
+Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL
+MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
+YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv
+b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l
+mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE
+4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv
+a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M
+pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw
+Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b
+LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY
+AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB
+AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq
+E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr
+W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ
+CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE
+AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU
+X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3
+f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja
+H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP
+JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P
+zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt
+jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0
+/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT
+BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79
+aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW
+xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU
+63ZTGI0RmLo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN
+BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl
+bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv
+b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ
+BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj
+YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5
+MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0
+dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg
+QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa
+jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi
+C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep
+lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof
+TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix
+DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k
+IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT
+N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v
+dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG
+A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh
+ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx
+QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
+dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA
+4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0
+AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10
+4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C
+ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV
+9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD
+gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6
+Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq
+NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko
+LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
+Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd
+ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I
+XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI
+M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot
+9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V
+Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea
+j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh
+X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ
+l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf
+bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4
+pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK
+e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0
+vm9qp/UsQu0yrbYhnr68
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP
+MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
+ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa
+Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3
+YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw
+qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv
+Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6
+lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz
+Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ
+KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK
+FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj
+HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr
+y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ
+/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM
+a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6
+fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG
+SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi
+7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc
+SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza
+ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc
+XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg
+iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho
+L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF
+Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr
+kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+
+vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU
+YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
+FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
+Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
+A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
+b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
+jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
+PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
+ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
+nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
+q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
+MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
+mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
+7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
+oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
+EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
+fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
+AmvZWg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQEL
+BQAwbzELMAkGA1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJ
+SG9uZyBLb25nMRYwFAYDVQQKEw1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25n
+a29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2MDMwMjI5NDZaFw00MjA2MDMwMjI5
+NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtvbmcxEjAQBgNVBAcT
+CUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMXSG9u
+Z2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCziNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFO
+dem1p+/l6TWZ5Mwc50tfjTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mI
+VoBc+L0sPOFMV4i707mV78vH9toxdCim5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV
+9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOesL4jpNrcyCse2m5FHomY
+2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj0mRiikKY
+vLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+Tt
+bNe/JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZb
+x39ri1UbSsUgYT2uy1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+
+l2oBlKN8W4UdKjk60FSh0Tlxnf0h+bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YK
+TE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsGxVd7GYYKecsAyVKvQv83j+Gj
+Hno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwIDAQABo2MwYTAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e
+i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEw
+DQYJKoZIhvcNAQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG
+7BJ8dNVI0lkUmcDrudHr9EgwW62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCk
+MpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWldy8joRTnU+kLBEUx3XZL7av9YROXr
+gZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov+BS5gLNdTaqX4fnk
+GMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDceqFS
+3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJm
+Ozj/2ZQw9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+
+l6mc1X5VTMbeRRAc6uk7nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6c
+JfTzPV4e0hz5sy229zdcxsshTrD3mUcYhcErulWuBurQB7Lcq9CClnXO0lD+mefP
+L5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB60PZ2Pierc+xYw5F9KBa
+LJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fqdBb9HxEG
+mpv0
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
+VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
+MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
+JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
+3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
++ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
+S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
+bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
+T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
+vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
+Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
+dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
+c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
+l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
+iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
+ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
+6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
+LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
+nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
++wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
+W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
+AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
+l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
+4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
+mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
+7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu
+VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN
+MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0
+MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7
+ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy
+RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS
+bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF
+/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R
+3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw
+EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy
+9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V
+GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ
+2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV
+WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD
+W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN
+AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
+t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV
+DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9
+TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G
+lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW
+mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df
+WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5
++bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ
+tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA
+GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv
+8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
+WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
+ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
+h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
+A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
+T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
+B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
+B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
+KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
+OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
+jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
+qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
+rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
+hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
+3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
+NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
+ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
+TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
+jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
+oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
+4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
+mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
+emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw
+CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
+R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00
+MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT
+ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw
+EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW
++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9
+ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI
+zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW
+tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1
+/q4AaOeMSQ+2b1tbFfLn
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4
+MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6
+ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD
+VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j
+b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq
+scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO
+xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H
+LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX
+uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD
+yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+
+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q
+rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN
+BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L
+hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB
+QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+
+HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu
+Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg
+QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB
+BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
+MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA
+A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb
+laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56
+awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo
+JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw
+LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT
+VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk
+LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb
+UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/
+QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+
+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls
+QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
+VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
+ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
+CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
+OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
+FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
+Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
+dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
+kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
+cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
+fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
+N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
+xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
++rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
+Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
+SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
+mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
+ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
+tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
+2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
+HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw
+CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD
+VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
+MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV
+UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy
+b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR
+ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb
+hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3
+FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV
+L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB
+iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl
+MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw
+NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG
+EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N
+aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ
+Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0
+ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1
+HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm
+gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ
+jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc
+aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG
+YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6
+W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K
+UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH
++FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q
+W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC
+NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC
+LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC
+gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6
+tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh
+SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2
+TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3
+pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR
+xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp
+GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9
+dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN
+AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB
+RA+GsCyRxj3qrg+E
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM
+BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG
+T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx
+CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD
+b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA
+iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH
+38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE
+HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz
+kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP
+szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq
+vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf
+nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG
+YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo
+0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a
+CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K
+AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I
+36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
+Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN
+qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj
+cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm
++LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL
+hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe
+lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7
+p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8
+piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR
+LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX
+5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO
+dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul
+9XXeifdy
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
+EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
+MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
+cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
+dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
+pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
+b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
+aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
+IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
+lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
+AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
+VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
+ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
+BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
+AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
+U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
+bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
++C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
+bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
+uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
+XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
+MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
+Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
+YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
+CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
+b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
+bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
+HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
+WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
+1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
+u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
+99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
+M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
+BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
+cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
+gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
+ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
+aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
+Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw
+CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91
+bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg
+Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ
+BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu
+ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS
+b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni
+eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W
+p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T
+rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV
+57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg
+Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00
+MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV
+wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe
+rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341
+68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh
+4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp
+UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o
+abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc
+3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G
+KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt
+hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO
+Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt
+zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD
+ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
+MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2
+cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN
+qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5
+YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv
+b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2
+8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k
+NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj
+ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp
+q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt
+nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
+GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
+b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
+BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
+YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
+GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
+Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
+WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
+rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
++ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
+ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
+Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
+PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
+/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
+oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
+yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
+EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
+A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
+MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
+ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
+BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
+g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
+fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
+WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
+B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
+hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
+TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
+mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
+ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
+4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
+8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00
+MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf
+qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW
+n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym
+c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+
+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1
+o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j
+IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq
+IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz
+8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh
+vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l
+7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG
+cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD
+ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
+AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC
+roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga
+W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n
+lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE
++V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV
+csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd
+dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg
+KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM
+HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4
+WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
+GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
+b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
+BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
+YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
+V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
+4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
+H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
+8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
+vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
+mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
+btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
+T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
+WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
+c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
+4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
+VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
+CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
+aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
+aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
+dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
+czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
+A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
+TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
+Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
+7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
+d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
++LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
+4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
+t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
+DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
+k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
+zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
+Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
+mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
+4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00
+MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR
+/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu
+FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR
+U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c
+ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR
+FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k
+A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw
+eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl
+sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp
+VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q
+A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+
+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD
+ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
+KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI
+FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv
+oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg
+u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP
+0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf
+3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl
+8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+
+DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN
+PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
+ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
+MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
+GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
+MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
+Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
+iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
+/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
+jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
+HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
+sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
+gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
+KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
+AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
+URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
+H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
+I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
+iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
+f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
+MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
+A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
+MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
+Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
+QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
+i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
+h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
+MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
+UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
+8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
+h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
+VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
+AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
+KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
+X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
+QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
+pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
+QSdJQO7e5iNEOdyhIta6A/I=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
+MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
+FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
+MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
+cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
+Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
+0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
+wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
+7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
+8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
+BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
+JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
+NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
+6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
+3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
+D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
+CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
+3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT
+AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD
+VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx
+NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT
+HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5
+IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
+AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl
+dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK
+ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu
+9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O
+be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
+MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
+U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
+DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
+dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
+YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
+OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
+zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
+VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
+hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
+ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
+awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
+OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
+DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
+coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
+okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
+t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
+1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
+SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNV
+BAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScw
+JQYDVQQDEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2
+MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UEAxMeU2VjdXJpdHkg
+Q29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4r
+CmDvu20rhvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzA
+lrenfna84xtSGc4RHwsENPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MG
+TfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF7
+9+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGmnpjKIG58u4iFW/vAEGK7
+8vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtYXLVqAvO4
+g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3we
+GVPKp7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst
++3A7caoreyYn8xrC3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M
+0V9hvqG8OmpI6iZVIhZdXw3/JzOfGAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQ
+T9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0VcwCBEF/VfR2ccCAwEAAaNCMEAw
+HQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS
+YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PA
+FNr0Y/Dq9HHuTofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd
+9XbXv8S2gVj/yP9kaWJ5rW4OH3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQI
+UYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASxYfQAW0q3nHE3GYV5v4GwxxMOdnE+
+OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZXSEIx2C/pHF7uNke
+gr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml+LLf
+iAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUV
+nuiZIesnKwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD
+2NCcnWXL0CsnMQMeNuE9dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//
+1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm6Vwdp6POXiUyK+OVrCoHzrQoeIY8Laad
+TdJ0MN1kURXbg4NR16/9M51NZg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
+MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
+dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
+WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
+VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
+9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
+DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
+Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
+QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
+xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
+A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
+kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
+Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
+Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
+JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
+RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC
+VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
+U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx
+NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
+dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv
+bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49
+AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA
+VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku
+WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP
+MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX
+5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ
+ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg
+h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV
+BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE
+CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy
+MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G
+A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD
+DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq
+M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf
+OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa
+4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9
+HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR
+aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA
+b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ
+Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV
+PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO
+pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu
+UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY
+MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
+HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4
+9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW
+s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5
+Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg
+cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM
+79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz
+/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt
+ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm
+Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK
+QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ
+w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi
+S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07
+mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC
+VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
+U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz
+WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0
+b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS
+b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI
+7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg
+CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud
+EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD
+VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T
+kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+
+gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE
+BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK
+DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz
+OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
+dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
+bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R
+xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX
+qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC
+C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3
+6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh
+/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF
+YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E
+JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc
+US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8
+ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm
++Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi
+M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
+HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G
+A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV
+cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc
+Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs
+PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/
+q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0
+cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr
+a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I
+H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y
+K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu
+nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf
+oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY
+Ic2wBlX7Jz9TkHCpBB5XJ7k=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
+MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
+U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
+NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
+ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
+ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
+DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
+8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
++lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
+X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
+K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
+1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
+A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
+zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
+YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
+bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
+DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
+L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
+eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
+xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
+VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
+WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
+ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
+MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
+aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
+Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
+nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
+HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
+Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
+dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
+HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
+CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
+sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
+4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
+8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
+pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
+mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
+ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
+MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
+VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
+ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
+dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
+OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
+8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
+Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
+hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
+6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
+DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
+AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
+bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
+ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
+qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
+iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
+0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
+sSi6
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
+BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
+biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
+MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
+d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
+76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
+bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
+6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
+emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
+MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
+MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
+MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
+FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
+aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
+gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
+qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
+lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
+8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
+L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
+45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
+UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
+O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
+bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
+GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
+77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
+hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
+92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
+Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
+ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
+Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
+BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
+IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
+RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
+U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
+Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
+YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
+nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
+6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
+eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
+c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
+MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
+HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
+jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
+5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
+rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
+F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
+wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
+cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
+AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
+WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
+xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
+2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
+IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
+aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
+em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
+dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
+OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
+tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL
+BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6
+ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw
+NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L
+cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg
+Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN
+QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT
+3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw
+3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6
+3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5
+BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN
+XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
+AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF
+AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw
+8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG
+nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP
+oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy
+d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg
+LvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx
+CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE
+AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1
+NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ
+MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq
+AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9
+vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9
+lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD
+n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT
+7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o
+6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC
+TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6
+WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R
+DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI
+pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj
+YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy
+rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
+AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ
+8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi
+0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM
+A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS
+SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K
+TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF
+6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er
+3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt
+Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT
+VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW
+ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA
+rBPuUBQemMc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
+NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
+b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
+VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
+VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
+7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
+Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
+/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
+81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
+dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
+Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
+sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
+pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
+slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
+arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
+VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
+9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
+dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
+0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
+TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
+Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
+Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
+OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
+vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
+t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
+HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
+SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD
+VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk
+MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
+cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDlRydXN0Q29y
+IEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3MjgwN1owgZwxCzAJBgNV
+BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw
+IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy
+dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3Ig
+RUNBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb
+3w9U73NjKYKtR8aja+3+XzP4Q1HpGjORMRegdMTUpwHmspI+ap3tDvl0mEDTPwOA
+BoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23xFUfJ3zSCNV2HykVh0A5
+3ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmcp0yJF4Ou
+owReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/
+wZ0+fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZF
+ZtS6mFjBAgMBAAGjYzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAf
+BgNVHSMEGDAWgBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/
+MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABT41XBVwm8nHc2Fv
+civUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u/ukZMjgDfxT2
+AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
+hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50
+soIipX1TH0XsJ5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BI
+WJZpTdwHjFGTot+fDz2LYLSCjaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1Wi
+tJ/X5g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYD
+VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk
+MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
+cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29y
+IFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkxMjMxMTcyMzE2WjCB
+pDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFuYW1h
+IENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUG
+A1UECwweVHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZU
+cnVzdENvciBSb290Q2VydCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAv463leLCJhJrMxnHQFgKq1mqjQCj/IDHUHuO1CAmujIS2CNUSSUQIpid
+RtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4pQa81QBeCQryJ3pS/C3V
+seq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0JEsq1pme
+9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CV
+EY4hgLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorW
+hnAbJN7+KIor0Gqw/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/
+DeOxCbeKyKsZn3MzUOcwHwYDVR0jBBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcw
+DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
+ggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5mDo4Nvu7Zp5I
+/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
+ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZ
+yonnMlo2HD6CqFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djts
+L1Ac59v2Z3kf9YKVmgenFK+P3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdN
+zl/HHk484IkzlQsPpTLWPFp5LBk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV
+BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw
+IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy
+dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3Ig
+Um9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEyMzExNzI2MzlaMIGk
+MQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEg
+Q2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYD
+VQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRy
+dXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+
+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq
+1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp
+2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nK
+DOObXUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hape
+az6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF
+3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88
+oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjxklb9tTNM
+g9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3
+mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
+8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAd
+BgNVHQ4EFgQU2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6U
+nrybPZx9mCAZ5YwwYrIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYw
+DQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/hOsh80QA9z+LqBrWyOrsGS2h60COX
+dKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnpkpfbsEZC89NiqpX+
+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv2wnL
+/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RX
+CI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa
+ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW
+2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7
+N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3
+Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArB
+As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp
+5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu
+1uwJ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw
+CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x
+ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1
+c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx
+OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI
+SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI
+b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn
+swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu
+7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8
+1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW
+80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP
+JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l
+RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw
+hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10
+coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc
+BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n
+twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud
+DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W
+0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe
+uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q
+lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB
+aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE
+sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT
+MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe
+qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh
+VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8
+h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9
+EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK
+yeC2nOnOcXHebD8WpHk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG
+SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN
+FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w
+DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw
+CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh
+DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ
+j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF
+1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G
+A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3
+AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC
+MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu
+Sw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
+KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
+BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
+YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1
+OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
+aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
+ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd
+AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC
+FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi
+1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq
+jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ
+wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/
+WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy
+NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC
+uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw
+IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6
+g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
+9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP
+BSeOE6Fuwg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
+KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
+BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
+YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1
+OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
+aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
+ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN
+8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/
+RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4
+hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5
+ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM
+EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1
+A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy
+WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
+1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
+6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
+91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
+e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
+TpPDpFQUWw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx
+GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp
+bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w
+KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0
+BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy
+dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG
+EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll
+IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU
+QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT
+TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg
+LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7
+a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr
+LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr
+N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X
+YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/
+iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f
+AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH
+V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
+BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
+AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf
+IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4
+lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c
+8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf
+lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL
+BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg
+Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv
+b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG
+EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u
+IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ
+n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd
+2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF
+VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ
+GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF
+li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU
+r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2
+eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb
+MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg
+jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB
+7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW
+5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE
+ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0
+90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z
+xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu
+QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4
+FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH
+22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP
+xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn
+dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5
+Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b
+nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ
+CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH
+u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj
+d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
+EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
+VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
+NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
+B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
+10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
+0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
+MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
+zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
+46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
+yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
+laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
+oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
+BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
+qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
+4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
+1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
+LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
+H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
+RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
+15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
+6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
+nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
+wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
+aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
+KwbQBM0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
+MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
+V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
+WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
+LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
+AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
+K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
+RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
+rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
+3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
+hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
+MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
+XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
+lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
+aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
+YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH
+MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF
+eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx
+MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV
+BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog
+D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS
+sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop
+O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk
+sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi
+c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj
+VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz
+KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/
+TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G
+sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs
+1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD
+fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN
+l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR
+ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ
+VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5
+c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp
+4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s
+t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj
+2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO
+vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C
+xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx
+cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM
+fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9
+MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH
+bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x
+CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds
+b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr
+b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9
+kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm
+VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R
+VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc
+C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj
+tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY
+D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv
+j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl
+NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6
+iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP
+O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV
+ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj
+L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5
+1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl
+1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU
+b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV
+PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj
+y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb
+EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg
+DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI
++Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy
+YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX
+UB+K+wb1whnw0A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl
+eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT
+JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx
+MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg
+VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo
+I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
+o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G
+A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB
+zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW
+RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
+MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
+3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
+tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
+Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
+VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
+79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
+c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
+Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
+c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
+UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
+Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
+BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
+Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
+VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
+ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
+8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
+iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
+Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
+XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
+qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
+VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
+L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
+jjxDah2nGN59PRbxYvnKkKj9
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw
+RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY
+BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz
+MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u
+LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF
+K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0
+v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd
+e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw
+V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA
+AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG
+GJTO
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL
+BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x
+FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx
+MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s
+THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc
+IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU
+AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+
+GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9
+8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH
+flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt
+J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim
+0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN
+pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ
+UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW
+OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB
+AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet
+8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd
+nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j
+bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM
+Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv
+TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS
+S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr
+I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9
+b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB
+UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P
+Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven
+sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
+gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
+MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
+UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
+NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
+dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
+dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
+38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
+KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
+DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
+qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
+JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
+PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
+BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
+jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
+eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
+ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
+vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
+qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
+IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
+i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
+O+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
diff --git a/ssl/certs/ca6e4ad9.0 b/ssl/certs/ca6e4ad9.0
new file mode 120000 (symlink)
index 0000000..592abb2
--- /dev/null
@@ -0,0 +1 @@
+ePKI_Root_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/cbf06781.0 b/ssl/certs/cbf06781.0
new file mode 120000 (symlink)
index 0000000..4ddf0c0
--- /dev/null
@@ -0,0 +1 @@
+Go_Daddy_Root_Certificate_Authority_-_G2.pem
\ No newline at end of file
diff --git a/ssl/certs/cc450945.0 b/ssl/certs/cc450945.0
new file mode 120000 (symlink)
index 0000000..0762452
--- /dev/null
@@ -0,0 +1 @@
+Izenpe.com.pem
\ No newline at end of file
diff --git a/ssl/certs/cd58d51e.0 b/ssl/certs/cd58d51e.0
new file mode 120000 (symlink)
index 0000000..4e8c627
--- /dev/null
@@ -0,0 +1 @@
+Security_Communication_RootCA2.pem
\ No newline at end of file
diff --git a/ssl/certs/cd8c0d63.0 b/ssl/certs/cd8c0d63.0
new file mode 120000 (symlink)
index 0000000..c556690
--- /dev/null
@@ -0,0 +1 @@
+AC_RAIZ_FNMT-RCM.pem
\ No newline at end of file
diff --git a/ssl/certs/ce5e74ef.0 b/ssl/certs/ce5e74ef.0
new file mode 120000 (symlink)
index 0000000..cb66f0b
--- /dev/null
@@ -0,0 +1 @@
+Amazon_Root_CA_1.pem
\ No newline at end of file
diff --git a/ssl/certs/certSIGN_ROOT_CA.pem b/ssl/certs/certSIGN_ROOT_CA.pem
new file mode 120000 (symlink)
index 0000000..b91d221
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/certSIGN_ROOT_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/certSIGN_Root_CA_G2.pem b/ssl/certs/certSIGN_Root_CA_G2.pem
new file mode 120000 (symlink)
index 0000000..cef509c
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/certSIGN_Root_CA_G2.crt
\ No newline at end of file
diff --git a/ssl/certs/d4dae3dd.0 b/ssl/certs/d4dae3dd.0
new file mode 120000 (symlink)
index 0000000..029eda8
--- /dev/null
@@ -0,0 +1 @@
+D-TRUST_Root_Class_3_CA_2_EV_2009.pem
\ No newline at end of file
diff --git a/ssl/certs/d52c538d.0 b/ssl/certs/d52c538d.0
new file mode 120000 (symlink)
index 0000000..cfce712
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_TLS_RSA4096_Root_G5.pem
\ No newline at end of file
diff --git a/ssl/certs/d6325660.0 b/ssl/certs/d6325660.0
new file mode 120000 (symlink)
index 0000000..e5b24aa
--- /dev/null
@@ -0,0 +1 @@
+COMODO_RSA_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/d7e8dc79.0 b/ssl/certs/d7e8dc79.0
new file mode 120000 (symlink)
index 0000000..ded02df
--- /dev/null
@@ -0,0 +1 @@
+QuoVadis_Root_CA_2.pem
\ No newline at end of file
diff --git a/ssl/certs/d887a5bb.0 b/ssl/certs/d887a5bb.0
new file mode 120000 (symlink)
index 0000000..99d24aa
--- /dev/null
@@ -0,0 +1 @@
+Trustwave_Global_ECC_P384_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/dc4d6a89.0 b/ssl/certs/dc4d6a89.0
new file mode 120000 (symlink)
index 0000000..747ad9f
--- /dev/null
@@ -0,0 +1 @@
+GlobalSign_Root_CA_-_R6.pem
\ No newline at end of file
diff --git a/ssl/certs/dd8e9d41.0 b/ssl/certs/dd8e9d41.0
new file mode 120000 (symlink)
index 0000000..2b90a45
--- /dev/null
@@ -0,0 +1 @@
+DigiCert_Global_Root_G3.pem
\ No newline at end of file
diff --git a/ssl/certs/de6d66f3.0 b/ssl/certs/de6d66f3.0
new file mode 120000 (symlink)
index 0000000..f96d5e0
--- /dev/null
@@ -0,0 +1 @@
+Amazon_Root_CA_4.pem
\ No newline at end of file
diff --git a/ssl/certs/e-Szigno_Root_CA_2017.pem b/ssl/certs/e-Szigno_Root_CA_2017.pem
new file mode 120000 (symlink)
index 0000000..36479f3
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/e-Szigno_Root_CA_2017.crt
\ No newline at end of file
diff --git a/ssl/certs/e113c810.0 b/ssl/certs/e113c810.0
new file mode 120000 (symlink)
index 0000000..b274bd8
--- /dev/null
@@ -0,0 +1 @@
+Certigna.pem
\ No newline at end of file
diff --git a/ssl/certs/e18bfb83.0 b/ssl/certs/e18bfb83.0
new file mode 120000 (symlink)
index 0000000..492c36d
--- /dev/null
@@ -0,0 +1 @@
+QuoVadis_Root_CA_3_G3.pem
\ No newline at end of file
diff --git a/ssl/certs/e35234b1.0 b/ssl/certs/e35234b1.0
new file mode 120000 (symlink)
index 0000000..ff2aade
--- /dev/null
@@ -0,0 +1 @@
+Certum_Trusted_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/e36a6752.0 b/ssl/certs/e36a6752.0
new file mode 120000 (symlink)
index 0000000..8be8ce7
--- /dev/null
@@ -0,0 +1 @@
+Atos_TrustedRoot_2011.pem
\ No newline at end of file
diff --git a/ssl/certs/e73d606e.0 b/ssl/certs/e73d606e.0
new file mode 120000 (symlink)
index 0000000..99ec072
--- /dev/null
@@ -0,0 +1 @@
+OISTE_WISeKey_Global_Root_GB_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/e868b802.0 b/ssl/certs/e868b802.0
new file mode 120000 (symlink)
index 0000000..ca6feba
--- /dev/null
@@ -0,0 +1 @@
+e-Szigno_Root_CA_2017.pem
\ No newline at end of file
diff --git a/ssl/certs/e8de2f56.0 b/ssl/certs/e8de2f56.0
new file mode 120000 (symlink)
index 0000000..d3c6de0
--- /dev/null
@@ -0,0 +1 @@
+Buypass_Class_3_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/ePKI_Root_Certification_Authority.pem b/ssl/certs/ePKI_Root_Certification_Authority.pem
new file mode 120000 (symlink)
index 0000000..c47e359
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt
\ No newline at end of file
diff --git a/ssl/certs/ecccd8db.0 b/ssl/certs/ecccd8db.0
new file mode 120000 (symlink)
index 0000000..7786be6
--- /dev/null
@@ -0,0 +1 @@
+HARICA_TLS_ECC_Root_CA_2021.pem
\ No newline at end of file
diff --git a/ssl/certs/ed858448.0 b/ssl/certs/ed858448.0
new file mode 120000 (symlink)
index 0000000..3dc627d
--- /dev/null
@@ -0,0 +1 @@
+vTrus_ECC_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/ee64a828.0 b/ssl/certs/ee64a828.0
new file mode 120000 (symlink)
index 0000000..d1385e4
--- /dev/null
@@ -0,0 +1 @@
+Comodo_AAA_Services_root.pem
\ No newline at end of file
diff --git a/ssl/certs/eed8c118.0 b/ssl/certs/eed8c118.0
new file mode 120000 (symlink)
index 0000000..2c7c8c7
--- /dev/null
@@ -0,0 +1 @@
+COMODO_ECC_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/ef954a4e.0 b/ssl/certs/ef954a4e.0
new file mode 120000 (symlink)
index 0000000..6d43d0a
--- /dev/null
@@ -0,0 +1 @@
+IdenTrust_Commercial_Root_CA_1.pem
\ No newline at end of file
diff --git a/ssl/certs/emSign_ECC_Root_CA_-_C3.pem b/ssl/certs/emSign_ECC_Root_CA_-_C3.pem
new file mode 120000 (symlink)
index 0000000..02e873d
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crt
\ No newline at end of file
diff --git a/ssl/certs/emSign_ECC_Root_CA_-_G3.pem b/ssl/certs/emSign_ECC_Root_CA_-_G3.pem
new file mode 120000 (symlink)
index 0000000..b5da078
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt
\ No newline at end of file
diff --git a/ssl/certs/emSign_Root_CA_-_C1.pem b/ssl/certs/emSign_Root_CA_-_C1.pem
new file mode 120000 (symlink)
index 0000000..962ee94
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt
\ No newline at end of file
diff --git a/ssl/certs/emSign_Root_CA_-_G1.pem b/ssl/certs/emSign_Root_CA_-_G1.pem
new file mode 120000 (symlink)
index 0000000..8858dd8
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt
\ No newline at end of file
diff --git a/ssl/certs/f081611a.0 b/ssl/certs/f081611a.0
new file mode 120000 (symlink)
index 0000000..12859a1
--- /dev/null
@@ -0,0 +1 @@
+Go_Daddy_Class_2_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/f0c70a8d.0 b/ssl/certs/f0c70a8d.0
new file mode 120000 (symlink)
index 0000000..43798c3
--- /dev/null
@@ -0,0 +1 @@
+SSL.com_EV_Root_Certification_Authority_ECC.pem
\ No newline at end of file
diff --git a/ssl/certs/f249de83.0 b/ssl/certs/f249de83.0
new file mode 120000 (symlink)
index 0000000..fc79f36
--- /dev/null
@@ -0,0 +1 @@
+Trustwave_Global_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/f30dd6ad.0 b/ssl/certs/f30dd6ad.0
new file mode 120000 (symlink)
index 0000000..e08a770
--- /dev/null
@@ -0,0 +1 @@
+USERTrust_ECC_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/f3377b1b.0 b/ssl/certs/f3377b1b.0
new file mode 120000 (symlink)
index 0000000..7a8d183
--- /dev/null
@@ -0,0 +1 @@
+Security_Communication_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/f387163d.0 b/ssl/certs/f387163d.0
new file mode 120000 (symlink)
index 0000000..8a8a6c1
--- /dev/null
@@ -0,0 +1 @@
+Starfield_Class_2_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/f39fc864.0 b/ssl/certs/f39fc864.0
new file mode 120000 (symlink)
index 0000000..8949834
--- /dev/null
@@ -0,0 +1 @@
+SecureTrust_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/f51bb24c.0 b/ssl/certs/f51bb24c.0
new file mode 120000 (symlink)
index 0000000..7b1be65
--- /dev/null
@@ -0,0 +1 @@
+Certigna_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/fa5da96b.0 b/ssl/certs/fa5da96b.0
new file mode 120000 (symlink)
index 0000000..03f6e58
--- /dev/null
@@ -0,0 +1 @@
+GLOBALTRUST_2020.pem
\ No newline at end of file
diff --git a/ssl/certs/fc5a8f99.0 b/ssl/certs/fc5a8f99.0
new file mode 120000 (symlink)
index 0000000..e29daca
--- /dev/null
@@ -0,0 +1 @@
+USERTrust_RSA_Certification_Authority.pem
\ No newline at end of file
diff --git a/ssl/certs/fd64f3fc.0 b/ssl/certs/fd64f3fc.0
new file mode 120000 (symlink)
index 0000000..7a20ad6
--- /dev/null
@@ -0,0 +1 @@
+TunTrust_Root_CA.pem
\ No newline at end of file
diff --git a/ssl/certs/fe8a2cd8.0 b/ssl/certs/fe8a2cd8.0
new file mode 120000 (symlink)
index 0000000..4c87925
--- /dev/null
@@ -0,0 +1 @@
+SZAFIR_ROOT_CA2.pem
\ No newline at end of file
diff --git a/ssl/certs/feffd413.0 b/ssl/certs/feffd413.0
new file mode 120000 (symlink)
index 0000000..bb3ce89
--- /dev/null
@@ -0,0 +1 @@
+GlobalSign_Root_E46.pem
\ No newline at end of file
diff --git a/ssl/certs/ff34af3f.0 b/ssl/certs/ff34af3f.0
new file mode 120000 (symlink)
index 0000000..6cdb0a2
--- /dev/null
@@ -0,0 +1 @@
+TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem
\ No newline at end of file
diff --git a/ssl/certs/ssl-cert-snakeoil.pem b/ssl/certs/ssl-cert-snakeoil.pem
new file mode 100644 (file)
index 0000000..a64cfdb
--- /dev/null
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNDCCAhygAwIBAgIUEz25Jvd49Qou4JPNrIVG5Qin0uowDQYJKoZIhvcNAQEL
+BQAwKDEmMCQGA1UEAwwdZGV2LW1haWwtZmJyZWhtLnBpeGVscGFyay5jb20wHhcN
+MjUwMTA5MTI1MjE5WhcNMzUwMTA3MTI1MjE5WjAoMSYwJAYDVQQDDB1kZXYtbWFp
+bC1mYnJlaG0ucGl4ZWxwYXJrLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAOkXYdD2r/t593SpbSIA/LRZEM8t+bUvoPxQiAeSEnkdK6LODpelCunG
+1iqDE9cCIUoTUGnR21fm5zeDjiSyQGC5uOMFlukuCg145aaAeTzQrP0TjdovoowH
+dXc1wlOpbx5WEQg2bhunuv1hOCBGq9TtpqbNiB4jkdWkAMmkSAlPpJ9STtao68IY
+8FPLVjnCMjIPHhKRFc/u6Xl4O/zatrZ61DsQ2zOocRIviOgSs8O53h+SkCFevy94
+3i2AYx69IPYkGk2AB+5EXbvdsI0908Q5/v6DUA7fK5oq+lep+UHREm/2yZWwW3Bg
+h0glwrk544wdiuoyUtcVjjK14DGpoDECAwEAAaNWMFQwCQYDVR0TBAIwADAoBgNV
+HREEITAfgh1kZXYtbWFpbC1mYnJlaG0ucGl4ZWxwYXJrLmNvbTAdBgNVHQ4EFgQU
+3z9wKkpBKilijRURGkFECr3w9KUwDQYJKoZIhvcNAQELBQADggEBAMoO5mvv2OVx
+fW6Ush4oj6/RueQ7AFxpRA+oOMYo4kDqrzBNxsGYjHgholiVCxvxp8Soof4vNBXT
+Syh2aI3Rk4txfsGczQMagS9zAFjCnpvBEWczE4VQ2x8w/3B0I+PdBAxO90uxRd5E
+wkF5t1Ph3YUnTIUaqiTpBTjNQfvrG+cYjF/cAxLnGPeyXRSNe1j1oasjZeu+cqaK
+F96P2LNhgK+QMxblxaZOAH9ha6eyA/h3tk8w4zkp1yVe7pTN7MdZTubBwl/hLy4g
+0RPIWsWDHOEWxjDyrm0nkPllJ32ASX6zMKL5HgipI6PcPfGuHfBM8ldMvli0cagJ
+3DSl7+pzcQ0=
+-----END CERTIFICATE-----
diff --git a/ssl/certs/vTrus_ECC_Root_CA.pem b/ssl/certs/vTrus_ECC_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..1defe8f
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/vTrus_ECC_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/certs/vTrus_Root_CA.pem b/ssl/certs/vTrus_Root_CA.pem
new file mode 120000 (symlink)
index 0000000..02415ee
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ca-certificates/mozilla/vTrus_Root_CA.crt
\ No newline at end of file
diff --git a/ssl/openssl.cnf b/ssl/openssl.cnf
new file mode 100644 (file)
index 0000000..c58ef29
--- /dev/null
@@ -0,0 +1,390 @@
+#
+# OpenSSL example configuration file.
+# See doc/man5/config.pod for more info.
+#
+# This is mostly being used for generation of certificate requests,
+# but may be used for auto loading of providers
+
+# Note that you can include other files from the main configuration
+# file using the .include directive.
+#.include filename
+
+# This definition stops the following lines choking if HOME isn't
+# defined.
+HOME                   = .
+
+ # Use this in order to automatically load providers.
+openssl_conf = openssl_init
+
+# Comment out the next line to ignore configuration errors
+config_diagnostics = 1
+
+# Extra OBJECT IDENTIFIER info:
+# oid_file       = $ENV::HOME/.oid
+oid_section = new_oids
+
+# To use this configuration file with the "-extfile" option of the
+# "openssl x509" utility, name here the section containing the
+# X.509v3 extensions to use:
+# extensions           =
+# (Alternatively, use a configuration file that has only
+# X.509v3 extensions in its main [= default] section.)
+
+[ new_oids ]
+# We can add new OIDs in here for use by 'ca', 'req' and 'ts'.
+# Add a simple OID like this:
+# testoid1=1.2.3.4
+# Or use config file substitution like this:
+# testoid2=${testoid1}.5.6
+
+# Policies used by the TSA examples.
+tsa_policy1 = 1.2.3.4.1
+tsa_policy2 = 1.2.3.4.5.6
+tsa_policy3 = 1.2.3.4.5.7
+
+# For FIPS
+# Optionally include a file that is generated by the OpenSSL fipsinstall
+# application. This file contains configuration data required by the OpenSSL
+# fips provider. It contains a named section e.g. [fips_sect] which is
+# referenced from the [provider_sect] below.
+# Refer to the OpenSSL security policy for more information.
+# .include fipsmodule.cnf
+
+[openssl_init]
+# providers = provider_sect
+
+# List of providers to load
+# [provider_sect]
+# default = default_sect
+# The fips section name should match the section name inside the
+# included fipsmodule.cnf.
+# fips = fips_sect
+
+# If no providers are activated explicitly, the default one is activated implicitly.
+# See man 7 OSSL_PROVIDER-default for more details.
+#
+# If you add a section explicitly activating any other provider(s), you most
+# probably need to explicitly activate the default provider, otherwise it
+# becomes unavailable in openssl.  As a consequence applications depending on
+# OpenSSL may not work correctly which could lead to significant system
+# problems including inability to remotely access the system.
+# [default_sect]
+# activate = 1
+
+
+####################################################################
+[ ca ]
+default_ca     = CA_default            # The default ca section
+
+####################################################################
+[ CA_default ]
+
+dir            = ./demoCA              # Where everything is kept
+certs          = $dir/certs            # Where the issued certs are kept
+crl_dir                = $dir/crl              # Where the issued crl are kept
+database       = $dir/index.txt        # database index file.
+#unique_subject        = no                    # Set to 'no' to allow creation of
+                                       # several certs with same subject.
+new_certs_dir  = $dir/newcerts         # default place for new certs.
+
+certificate    = $dir/cacert.pem       # The CA certificate
+serial         = $dir/serial           # The current serial number
+crlnumber      = $dir/crlnumber        # the current crl number
+                                       # must be commented out to leave a V1 CRL
+crl            = $dir/crl.pem          # The current CRL
+private_key    = $dir/private/cakey.pem# The private key
+
+x509_extensions        = usr_cert              # The extensions to add to the cert
+
+# Comment out the following two lines for the "traditional"
+# (and highly broken) format.
+name_opt       = ca_default            # Subject Name options
+cert_opt       = ca_default            # Certificate field options
+
+# Extension copying option: use with caution.
+# copy_extensions = copy
+
+# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
+# so this is commented out by default to leave a V1 CRL.
+# crlnumber must also be commented out to leave a V1 CRL.
+# crl_extensions       = crl_ext
+
+default_days   = 365                   # how long to certify for
+default_crl_days= 30                   # how long before next CRL
+default_md     = default               # use public key default MD
+preserve       = no                    # keep passed DN ordering
+
+# A few difference way of specifying how similar the request should look
+# For type CA, the listed attributes must be the same, and the optional
+# and supplied fields are just that :-)
+policy         = policy_match
+
+# For the CA policy
+[ policy_match ]
+countryName            = match
+stateOrProvinceName    = match
+organizationName       = match
+organizationalUnitName = optional
+commonName             = supplied
+emailAddress           = optional
+
+# For the 'anything' policy
+# At this point in time, you must list all acceptable 'object'
+# types.
+[ policy_anything ]
+countryName            = optional
+stateOrProvinceName    = optional
+localityName           = optional
+organizationName       = optional
+organizationalUnitName = optional
+commonName             = supplied
+emailAddress           = optional
+
+####################################################################
+[ req ]
+default_bits           = 2048
+default_keyfile        = privkey.pem
+distinguished_name     = req_distinguished_name
+attributes             = req_attributes
+x509_extensions        = v3_ca # The extensions to add to the self signed cert
+
+# Passwords for private keys if not present they will be prompted for
+# input_password = secret
+# output_password = secret
+
+# This sets a mask for permitted string types. There are several options.
+# default: PrintableString, T61String, BMPString.
+# pkix  : PrintableString, BMPString (PKIX recommendation before 2004)
+# utf8only: only UTF8Strings (PKIX recommendation after 2004).
+# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
+# MASK:XXXX a literal mask value.
+# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings.
+string_mask = utf8only
+
+# req_extensions = v3_req # The extensions to add to a certificate request
+
+[ req_distinguished_name ]
+countryName                    = Country Name (2 letter code)
+countryName_default            = AU
+countryName_min                        = 2
+countryName_max                        = 2
+
+stateOrProvinceName            = State or Province Name (full name)
+stateOrProvinceName_default    = Some-State
+
+localityName                   = Locality Name (eg, city)
+
+0.organizationName             = Organization Name (eg, company)
+0.organizationName_default     = Internet Widgits Pty Ltd
+
+# we can do this but it is not needed normally :-)
+#1.organizationName            = Second Organization Name (eg, company)
+#1.organizationName_default    = World Wide Web Pty Ltd
+
+organizationalUnitName         = Organizational Unit Name (eg, section)
+#organizationalUnitName_default        =
+
+commonName                     = Common Name (e.g. server FQDN or YOUR name)
+commonName_max                 = 64
+
+emailAddress                   = Email Address
+emailAddress_max               = 64
+
+# SET-ex3                      = SET extension number 3
+
+[ req_attributes ]
+challengePassword              = A challenge password
+challengePassword_min          = 4
+challengePassword_max          = 20
+
+unstructuredName               = An optional company name
+
+[ usr_cert ]
+
+# These extensions are added when 'ca' signs a request.
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+# This is required for TSA certificates.
+# extendedKeyUsage = critical,timeStamping
+
+[ v3_req ]
+
+# Extensions to add to a certificate request
+
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+[ v3_ca ]
+
+
+# Extensions for a typical CA
+
+
+# PKIX recommendation.
+
+subjectKeyIdentifier=hash
+
+authorityKeyIdentifier=keyid:always,issuer
+
+basicConstraints = critical,CA:true
+
+# Key usage: this is typical for a CA certificate. However since it will
+# prevent it being used as an test self-signed certificate it is best
+# left out by default.
+# keyUsage = cRLSign, keyCertSign
+
+# Include email address in subject alt name: another PKIX recommendation
+# subjectAltName=email:copy
+# Copy issuer details
+# issuerAltName=issuer:copy
+
+# DER hex encoding of an extension: beware experts only!
+# obj=DER:02:03
+# Where 'obj' is a standard or added object
+# You can even override a supported extension:
+# basicConstraints= critical, DER:30:03:01:01:FF
+
+[ crl_ext ]
+
+# CRL extensions.
+# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
+
+# issuerAltName=issuer:copy
+authorityKeyIdentifier=keyid:always
+
+[ proxy_cert_ext ]
+# These extensions should be added when creating a proxy certificate
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+# This really needs to be in place for it to be a proxy certificate.
+proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
+
+####################################################################
+[ tsa ]
+
+default_tsa = tsa_config1      # the default TSA section
+
+[ tsa_config1 ]
+
+# These are used by the TSA reply generation only.
+dir            = ./demoCA              # TSA root directory
+serial         = $dir/tsaserial        # The current serial number (mandatory)
+crypto_device  = builtin               # OpenSSL engine to use for signing
+signer_cert    = $dir/tsacert.pem      # The TSA signing certificate
+                                       # (optional)
+certs          = $dir/cacert.pem       # Certificate chain to include in reply
+                                       # (optional)
+signer_key     = $dir/private/tsakey.pem # The TSA private key (optional)
+signer_digest  = sha256                        # Signing digest to use. (Optional)
+default_policy = tsa_policy1           # Policy if request did not specify it
+                                       # (optional)
+other_policies = tsa_policy2, tsa_policy3      # acceptable policies (optional)
+digests     = sha1, sha256, sha384, sha512  # Acceptable message digests (mandatory)
+accuracy       = secs:1, millisecs:500, microsecs:100  # (optional)
+clock_precision_digits  = 0    # number of digits after dot. (optional)
+ordering               = yes   # Is ordering defined for timestamps?
+                               # (optional, default: no)
+tsa_name               = yes   # Must the TSA name be included in the reply?
+                               # (optional, default: no)
+ess_cert_id_chain      = no    # Must the ESS cert id chain be included?
+                               # (optional, default: no)
+ess_cert_id_alg                = sha1  # algorithm to compute certificate
+                               # identifier (optional, default: sha1)
+
+[insta] # CMP using Insta Demo CA
+# Message transfer
+server = pki.certificate.fi:8700
+# proxy = # set this as far as needed, e.g., http://192.168.1.1:8080
+# tls_use = 0
+path = pkix/
+
+# Server authentication
+recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer
+ignore_keyusage = 1 # potentially needed quirk
+unprotected_errors = 1 # potentially needed quirk
+extracertsout = insta.extracerts.pem
+
+# Client authentication
+ref = 3078 # user identification
+secret = pass:insta # can be used for both client and server side
+
+# Generic message options
+cmd = ir # default operation, can be overridden on cmd line with, e.g., kur
+
+# Certificate enrollment
+subject = "/CN=openssl-cmp-test"
+newkey = insta.priv.pem
+out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature
+certout = insta.cert.pem
+
+[pbm] # Password-based protection for Insta CA
+# Server and client authentication
+ref = $insta::ref # 3078
+secret = $insta::secret # pass:insta
+
+[signature] # Signature-based protection for Insta CA
+# Server authentication
+trusted = $insta::out_trusted # apps/insta.ca.crt
+
+# Client authentication
+secret = # disable PBM
+key = $insta::newkey # insta.priv.pem
+cert = $insta::certout # insta.cert.pem
+
+[ir]
+cmd = ir
+
+[cr]
+cmd = cr
+
+[kur]
+# Certificate update
+cmd = kur
+oldcert = $insta::certout # insta.cert.pem
+
+[rr]
+# Certificate revocation
+cmd = rr
+oldcert = $insta::certout # insta.cert.pem
diff --git a/ssl/private/ssl-cert-snakeoil.key b/ssl/private/ssl-cert-snakeoil.key
new file mode 100644 (file)
index 0000000..8c918cf
--- /dev/null
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDpF2HQ9q/7efd0
+qW0iAPy0WRDPLfm1L6D8UIgHkhJ5HSuizg6XpQrpxtYqgxPXAiFKE1Bp0dtX5uc3
+g44kskBgubjjBZbpLgoNeOWmgHk80Kz9E43aL6KMB3V3NcJTqW8eVhEINm4bp7r9
+YTggRqvU7aamzYgeI5HVpADJpEgJT6SfUk7WqOvCGPBTy1Y5wjIyDx4SkRXP7ul5
+eDv82ra2etQ7ENszqHESL4joErPDud4fkpAhXr8veN4tgGMevSD2JBpNgAfuRF27
+3bCNPdPEOf7+g1AO3yuaKvpXqflB0RJv9smVsFtwYIdIJcK5OeOMHYrqMlLXFY4y
+teAxqaAxAgMBAAECggEABlisAcDjtf7CQ2+FAIjjGIR3yhJMAxhEw3XsXDtojBpk
+mKJQYKXeXBLdPCtVOBSPZDlOJlFvzc8EQt1OupZNXSzVWT4K17a4kJkW9J95HZQn
+b50Pjs4e+H3P/5LLw5QgicSJYm479X4Nv+4clXljHpEpaU99iieJBhZ47ISP7wvq
+JvbOJswxHF8KxFjq68vhI3Y+cpFq0mOfIZ8UaJA18+gbTI+tMvkZ148z5/yc7ZG0
+8SGlerjyl20H7RMMDfz9+YV0XrWrsDgjn3SNimGpx+wNAM7hSSzcq9zXtKDYtLBv
+bekoGtuE0S2m8BGYnNWKoNilnFcXNYpFtCR7iluYmQKBgQD53BihlDvrY5Xe9mZQ
+oIBE7vQs2DChAXVv+Z//7uBciNjrlCTwGGPw24o6160I8p0Y098CXOTYlK32NSav
+FDBchqQudZ5cmOeUnN9kViOD8TjhXR6XTSSCQWFXA3Mn/5OH78/Y4HcP4tkZKW0w
+RBRFNdGbrL2XzMHXBWyTlTtbGQKBgQDu0csZuWIFeJ58dhktvSct71rev2iYjshz
+WWajzAmX6AGbqFd/6i0yKXnkmynV5xjubCFcwZlvwoiS18Toq7qg47f2AYRk44KB
+H2YGf9j0+qS7u+p0tZW9mOppGmzSJnojmkTQrT5c+UuoxD3qyjN8h9xuNfLnPta8
++0wI5jmo2QKBgQCO602PhwnrL/B3M7v8nIIibAhxakwOnJX/MetKauodJA3oWrny
+OBFaoUllNR7+AkDIBdEHOfmQxSLotShmdwbetglNpeuqja/RexXw/7Ca9S0TA7/O
+zcp3U0yJiCijlXZfCFZ8eJDCHoEN+ntBY3+wwwMdp+Ze4Tlzc9/SX0cvaQKBgQDA
+jRYcH4QQtTfTUcTrQ98bAilZ/ynuFvE3T5WZ6yCxAbaKMiiaUc0u7JIC57fLZxCK
+61Pa3Z1AprBG9QEmN4+5uODR0FdWoLjQMuinxNzAaHX5h4F5qA6bV3doVo32wl8n
+5XImbggiHj4KTG8/ptfsR/5KPeUi3V9174dWhYlnwQKBgByiDMYlzEqoA+lZZrkJ
+HigUzRxIcWGjxNLnFbD70CWs4vMYnEZkLKkUi7BrqdGgZ0f+CZqibB5+AxORaMei
+2OOyLUsiW1nbMO4OJFNRTQFf3g3DhJ8uSycxKzM9r/Se0aZCVi2iuu/bsqodJQgq
+/7v1ZHyoVMdJXnHf5NmjkJ6m
+-----END PRIVATE KEY-----
diff --git a/subgid b/subgid
new file mode 100644 (file)
index 0000000..f1ee3c1
--- /dev/null
+++ b/subgid
@@ -0,0 +1 @@
+frank:100000:65536
diff --git a/subgid- b/subgid-
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/subuid b/subuid
new file mode 100644 (file)
index 0000000..f1ee3c1
--- /dev/null
+++ b/subuid
@@ -0,0 +1 @@
+frank:100000:65536
diff --git a/subuid- b/subuid-
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/sudo.conf b/sudo.conf
new file mode 100644 (file)
index 0000000..f73b79e
--- /dev/null
+++ b/sudo.conf
@@ -0,0 +1,131 @@
+#
+# Default /etc/sudo.conf file
+#
+# Sudo plugins:
+#   Plugin plugin_name plugin_path plugin_options ...
+#
+# The plugin_path is relative to /usr/libexec/sudo unless
+#   fully qualified.
+# The plugin_name corresponds to a global symbol in the plugin
+#   that contains the plugin interface structure.
+# The plugin_options are optional.
+#
+# The sudoers plugin is used by default if no Plugin lines are present.
+#Plugin sudoers_policy sudoers.so
+#Plugin sudoers_io sudoers.so
+#Plugin sudoers_audit sudoers.so
+
+#
+# Sudo askpass:
+#   Path askpass /path/to/askpass
+#
+# An askpass helper program may be specified to provide a graphical
+# password prompt for "sudo -A" support.  Sudo does not ship with its
+# own askpass program but can use the OpenSSH askpass.
+#
+# Use the OpenSSH askpass
+#Path askpass /usr/X11R6/bin/ssh-askpass
+#
+# Use the Gnome OpenSSH askpass
+#Path askpass /usr/libexec/openssh/gnome-ssh-askpass
+
+#
+# Sudo device search path:
+#   Path devsearch /dev/path1:/dev/path2:/dev
+#
+# A colon-separated list of paths to check when searching for a user's
+# terminal device.
+#
+#Path devsearch /dev/pts:/dev/vt:/dev/term:/dev/zcons:/dev/pty:/dev
+
+#
+# Sudo command interception:
+#   Path intercept /path/to/sudo_intercept.so
+#
+# Path to a shared library containing replacements for the execv(),
+# execve() and fexecve() library functions that perform a policy check
+# to verify the command is allowed and simply return an error if not.
+# This is used to implement the "intercept" functionality on systems that
+# support LD_PRELOAD or its equivalent.
+#
+# The compiled-in value is usually sufficient and should only be changed
+# if you rename or move the sudo_intercept.so file.
+#
+#Path intercept /usr/libexec/sudo/sudo_intercept.so
+
+#
+# Sudo noexec:
+#   Path noexec /path/to/sudo_noexec.so
+#
+# Path to a shared library containing replacements for the execv(),
+# execve() and fexecve() library functions that just return an error.
+# This is used to implement the "noexec" functionality on systems that
+# support LD_PRELOAD or its equivalent.
+#
+# The compiled-in value is usually sufficient and should only be changed
+# if you rename or move the sudo_noexec.so file.
+#
+#Path noexec /usr/libexec/sudo/sudo_noexec.so
+
+#
+# Sudo plugin directory:
+#   Path plugin_dir /path/to/plugins
+#
+# The default directory to use when searching for plugins that are
+# specified without a fully qualified path name.
+#
+#Path plugin_dir /usr/libexec/sudo
+
+#
+# Core dumps:
+#   Set disable_coredump true|false
+#
+# By default, sudo disables core dumps while it is executing (they
+# are re-enabled for the command that is run).
+# To aid in debugging sudo problems, you may wish to enable core
+# dumps by setting "disable_coredump" to false.
+#
+#Set disable_coredump false
+
+#
+# User groups:
+#   Set group_source static|dynamic|adaptive
+#
+# Sudo passes the user's group list to the policy plugin.
+# If the user is a member of the maximum number of groups (usually 16),
+# sudo will query the group database directly to be sure to include
+# the full list of groups.
+#
+# On some systems, this can be expensive so the behavior is configurable.
+# The "group_source" setting has three possible values:
+#   static   - use the user's list of groups returned by the kernel.
+#   dynamic  - query the group database to find the list of groups.
+#   adaptive - if user is in less than the maximum number of groups.
+#             use the kernel list, else query the group database.
+#
+#Set group_source static
+
+#
+# Sudo interface probing:
+#   Set probe_interfaces true|false
+#
+# By default, sudo will probe the system's network interfaces and
+# pass the IP address of each enabled interface to the policy plugin.
+# On systems with a large number of virtual interfaces this may take
+# a noticeable amount of time.
+#
+#Set probe_interfaces false
+
+#
+# Sudo debug files:
+#   Debug program /path/to/debug_log subsystem@priority[,subsyste@priority]
+#
+# Sudo and related programs support logging debug information to a file.
+# The program is typically sudo, sudoers.so, sudoreplay, or visudo.
+#
+# Subsystems vary based on the program; "all" matches all subsystems.
+# Priority may be crit, err, warn, notice, diag, info, trace, or debug.
+# Multiple subsystem@priority may be specified, separated by a comma.
+#
+#Debug sudo /var/log/sudo_debug all@debug
+#Debug sudoers.so /var/log/sudoers_debug all@debug
diff --git a/sudo_logsrvd.conf b/sudo_logsrvd.conf
new file mode 100644 (file)
index 0000000..b70593a
--- /dev/null
@@ -0,0 +1,251 @@
+#
+# sudo logsrv daemon configuration
+#
+
+[server]
+# The host name or IP address and port to listen on with an optional TLS
+# flag.  If no port is specified, port 30343 will be used for plaintext
+# connections and port 30344 will be used to TLS connections.
+# The following forms are accepted:
+#   listen_address = hostname(tls)
+#   listen_address = hostname:port(tls)
+#   listen_address = IPv4_address(tls)
+#   listen_address = IPv4_address:port(tls)
+#   listen_address = [IPv6_address](tls)
+#   listen_address = [IPv6_address]:port(tls)
+#
+# The (tls) suffix should be omitted for plaintext connections.
+#
+# Multiple listen_address settings may be specified.
+# The default is to listen on all addresses.
+#listen_address = *:30343
+#listen_address = *:30344(tls)
+
+# The file containing the ID of the running sudo_logsrvd process.
+#pid_file = /run/sudo/sudo_logsrvd.pid
+
+# Where to log server warnings: none, stderr, syslog, or a path name.
+#server_log = syslog
+
+# If true, enable the SO_KEEPALIVE socket option on client connections.
+# Defaults to true.
+#tcp_keepalive = true
+
+# The amount of time, in seconds, the server will wait for the client to
+# respond.  A value of 0 will disable the timeout.  The default value is 30.
+#timeout = 30
+
+# If true, the server will validate its own certificate at startup.
+# Defaults to true.
+#tls_verify = true
+
+# If true, client certificates will be validated by the server;
+# clients without a valid certificate will be unable to connect.
+# By default, client certs are not checked.
+#tls_checkpeer = false
+
+# Path to a certificate authority bundle file in PEM format to use
+# instead of the system's default certificate authority database.
+#tls_cacert = /etc/ssl/sudo/cacert.pem
+
+# Path to the server's certificate file in PEM format.
+# Required for TLS connections.
+#tls_cert = /etc/ssl/sudo/certs/logsrvd_cert.pem
+
+# Path to the server's private key file in PEM format.
+# Required for TLS connections.
+#tls_key = /etc/ssl/sudo/private/logsrvd_key.pem
+
+# TLS cipher list (see "CIPHER LIST FORMAT" in the openssl-ciphers manual).
+# This setting is only effective if the negotiated protocol is TLS version
+# 1.2.  The default cipher list is HIGH:!aNULL.
+#tls_ciphers_v12 = HIGH:!aNULL
+
+# TLS cipher list if the negotiated protocol is TLS version 1.3.
+# The default cipher list is TLS_AES_256_GCM_SHA384.
+#tls_ciphers_v13 = TLS_AES_256_GCM_SHA384
+
+# Path to the Diffie-Hellman parameter file in PEM format.
+# If not set, the server will use the OpenSSL defaults.
+#tls_dhparams = /etc/ssl/sudo/logsrvd_dhparams.pem
+
+[relay]
+# The host name or IP address and port to send logs to in relay mode.
+# The syntax is identical to listen_address with the exception of
+# the wild card ('*') syntax.  When this setting is enabled, logs will
+# be relayed to the specified host instead of being stored locally.
+# This setting is not enabled by default.
+#relay_host = relayhost.dom.ain
+#relay_host = relayhost.dom.ain(tls)
+
+# The amount of time, in seconds, the server will wait for a connection
+# to the relay server to complete.  A value of 0 will disable the timeout.
+# The default value is 30.
+#connect_timeout = 30
+
+# The directory to store messages in before they are sent to the relay.
+# Messages are stored in wire format.
+# The default value is /var/log/sudo_logsrvd.
+#relay_dir = /var/log/sudo_logsrvd
+
+# The number of seconds to wait after a connection error before
+# making a new attempt to forward a message to a relay host.
+# The default value is 30.
+#retry_interval = 30
+
+# Whether to store the log before relaying it.  If true, enable store
+# and forward mode.  If false, the client connection is immediately
+# relayed.  Defaults to false.
+#store_first = true
+
+# If true, enable the SO_KEEPALIVE socket option on relay connections.
+# Defaults to true.
+#tcp_keepalive = true
+
+# The amount of time, in seconds, the server will wait for the relay to
+# respond.  A value of 0 will disable the timeout.  The default value is 30.
+#timeout = 30
+
+# If true, the server's relay certificate will be verified at startup.
+# The default is to use the value in the [server] section.
+#tls_verify = true
+
+# Whether to verify the relay's certificate for TLS connections.
+# The default is to use the value in the [server] section.
+#tls_checkpeer = false
+
+# Path to a certificate authority bundle file in PEM format to use
+# instead of the system's default certificate authority database.
+# The default is to use the value in the [server] section.
+#tls_cacert = /etc/ssl/sudo/cacert.pem
+
+# Path to the server's certificate file in PEM format.
+# The default is to use the certificate in the [server] section.
+#tls_cert = /etc/ssl/sudo/certs/logsrvd_cert.pem
+
+# Path to the server's private key file in PEM format.
+# The default is to use the key in the [server] section.
+#tls_key = /etc/ssl/sudo/private/logsrvd_key.pem
+
+# TLS cipher list (see "CIPHER LIST FORMAT" in the openssl-ciphers manual).
+# this setting is only effective if the negotiated protocol is TLS version
+# 1.2.  The default is to use the value in the [server] section.
+#tls_ciphers_v12 = HIGH:!aNULL
+
+# TLS cipher list if the negotiated protocol is TLS version 1.3.
+# The default is to use the value in the [server] section.
+#tls_ciphers_v13 = TLS_AES_256_GCM_SHA384
+
+# Path to the Diffie-Hellman parameter file in PEM format.
+# The default is to use the value in the [server] section.
+#tls_dhparams = /etc/ssl/sudo/logsrvd_dhparams.pem
+
+[iolog]
+# The top-level directory to use when constructing the path name for the
+# I/O log directory.  The session sequence number, if any, is stored here.
+#iolog_dir = /var/log/sudo-io
+
+# The path name, relative to iolog_dir, in which to store I/O logs.
+# It is possible for iolog_file to contain directory components.
+#iolog_file = %{seq}
+
+# If set, I/O logs will be compressed using zlib.  Enabling compression can
+# make it harder to view the logs in real-time as the program is executing.
+#iolog_compress = false
+
+# If set, I/O log data is flushed to disk after each write instead of
+# buffering it.  This makes it possible to view the logs in real-time
+# as the program is executing but reduces the effectiveness of compression.
+#iolog_flush = true
+
+# The group to use when creating new I/O log files and directories.
+# If iolog_group is not set, the primary group-ID of the user specified
+# by iolog_user is used.  If neither iolog_group nor iolog_user
+# are set, I/O log files and directories are created with group-ID 0.
+#iolog_group = wheel
+
+# The user to use when setting the user-ID and group-ID of new I/O
+# log files and directories.  If iolog_group is set, it will be used
+# instead of the user's primary group-ID.  By default, I/O log files
+# and directories are created with user and group-ID 0.
+#iolog_user = root
+
+# The file mode to use when creating I/O log files.  The file permissions
+# will always include the owner read and write bits, even if they are
+# not present in the specified mode.  When creating I/O log directories,
+# search (execute) bits are added to match the read and write bits
+# specified by iolog_mode.
+#iolog_mode = 0600
+
+# If disabled, sudo_logsrvd will attempt to avoid logging plaintext
+# password in the terminal input using passprompt_regex.
+#log_passwords = true
+
+# The maximum sequence number that will be substituted for the "%{seq}"
+# escape in the I/O log file.  While the value substituted for "%{seq}"
+# is in base 36, maxseq itself should be expressed in decimal.  Values
+# larger than 2176782336 (which corresponds to the base 36 sequence
+# number "ZZZZZZ") will be silently truncated to 2176782336.
+#maxseq = 2176782336
+
+# One or more POSIX extended regular expressions used to match
+# password prompts in the terminal output when log_passwords is
+# disabled.  Multiple passprompt_regex settings may be specified.
+#passprompt_regex = [Pp]assword[: ]*
+#passprompt_regex = [Pp]assword for [a-z0-9]+: *
+
+[eventlog]
+# Where to log accept, reject, exit, and alert events.
+# Accepted values are syslog, logfile, or none.
+# Defaults to syslog
+#log_type = syslog
+
+# Whether to log an event when a command exits or is terminated by a signal.
+# Defaults to false
+#log_exit = true
+
+# Event log format.
+# Supported log formats are "sudo" and "json"
+# Defaults to sudo
+#log_format = sudo
+
+[syslog]
+# The maximum length of a syslog payload.
+# On many systems, syslog(3) has a relatively small log buffer.
+# IETF RFC 5424 states that syslog servers must support messages
+# of at least 480 bytes and should support messages up to 2048 bytes.
+# Messages larger than this value will be split into multiple messages.
+#maxlen = 960
+
+# The syslog facility to use for event log messages.
+# The following syslog facilities are supported: authpriv (if your OS
+# supports it), auth, daemon, user, local0, local1, local2, local3,
+# local4, local5, local6, and local7.
+#facility = authpriv
+
+# Syslog priority to use for event log accept messages, when the command
+# is allowed by the security policy.  The following syslog priorities are
+# supported: alert, crit, debug, emerg, err, info, notice, warning, none.
+#accept_priority = notice
+
+# Syslog priority to use for event log reject messages, when the command
+# is not allowed by the security policy.
+#reject_priority = alert
+
+# Syslog priority to use for event log alert messages reported by the
+# client.
+#alert_priority = alert
+
+# The syslog facility to use for server warning messages.
+# Defaults to daemon.
+#server_facility = daemon
+
+[logfile]
+# The path to the file-based event log.
+# This path must be fully-qualified and start with a '/' character.
+#path = /var/log/sudo.log
+
+# The format string used when formatting the date and time for
+# file-based event logs.  Formatting is performed via strftime(3) so
+# any format string supported by that function is allowed.
+#time_format = %h %e %T
diff --git a/sudoers b/sudoers
new file mode 100644 (file)
index 0000000..58f3c62
--- /dev/null
+++ b/sudoers
@@ -0,0 +1,56 @@
+#
+# This file MUST be edited with the 'visudo' command as root.
+#
+# Please consider adding local content in /etc/sudoers.d/ instead of
+# directly modifying this file.
+#
+# See the man page for details on how to write a sudoers file.
+#
+Defaults       env_reset
+Defaults       mail_badpass
+Defaults       secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+
+# This fixes CVE-2005-4890 and possibly breaks some versions of kdesu
+# (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532)
+Defaults       use_pty
+
+# This preserves proxy settings from user environments of root
+# equivalent users (group sudo)
+#Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"
+
+# This allows running arbitrary commands, but so does ALL, and it means
+# different sudoers have their choice of editor respected.
+#Defaults:%sudo env_keep += "EDITOR"
+
+# Completely harmless preservation of a user preference.
+#Defaults:%sudo env_keep += "GREP_COLOR"
+
+# While you shouldn't normally run git as root, you need to with etckeeper
+#Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*"
+
+# Per-user preferences; root won't have sensible values for them.
+#Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME"
+
+# "sudo scp" or "sudo rsync" should be able to use your SSH agent.
+#Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK"
+
+# Ditto for GPG agent
+#Defaults:%sudo env_keep += "GPG_AGENT_INFO"
+
+# Host alias specification
+
+# User alias specification
+
+# Cmnd alias specification
+
+# User privilege specification
+root   ALL=(ALL:ALL) ALL
+
+# Allow members of group sudo to execute any command
+%sudo  ALL=(ALL:ALL) ALL
+%root  ALL=(ALL:ALL) NOPASSWD: ALL
+frank ALL=(ALL:ALL) NOPASSWD: ALL
+
+# See sudoers(5) for more information on "@include" directives:
+
+@includedir /etc/sudoers.d
diff --git a/sudoers.d/README b/sudoers.d/README
new file mode 100644 (file)
index 0000000..356d882
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# The default /etc/sudoers file created on installation of the
+# sudo  package now includes the directive:
+# 
+#      @includedir /etc/sudoers.d
+# 
+# This will cause sudo to read and parse any files in the /etc/sudoers.d 
+# directory that do not end in '~' or contain a '.' character.
+# 
+# Note that there must be at least one file in the sudoers.d directory (this
+# one will do).
+# 
+# Note also, that because sudoers contents can vary widely, no attempt is 
+# made to add this directive to existing sudoers files on upgrade.  Feel free
+# to add the above directive to the end of your /etc/sudoers file to enable 
+# this functionality for existing installations if you wish! Sudo
+# versions older than the one in Debian 11 (bullseye) require the
+# directive will only support the old syntax #includedir, and the current
+# sudo will happily accept both @includedir and #includedir
+#
+# Finally, please note that using the visudo command is the recommended way
+# to update sudoers content, since it protects against many failure modes.
+# See the man page for visudo and sudoers for more information.
+#
diff --git a/sv/ssh/.meta/installed b/sv/ssh/.meta/installed
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/sv/ssh/finish b/sv/ssh/finish
new file mode 100755 (executable)
index 0000000..8c67acf
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -e
+
+NAME=ssh
+
+[ "$1" = -1 ] && echo "runsv: ERROR in $NAME: unexpected error or wrong sh syntax"
+# no need to stop the service here, runsv will stop trying after the first attempt
+
+[ "$1" = 161 ] && echo "runsv: ERROR $1 in $NAME: disabled by local settings" \
+     && sv d "$(dirname "$0")" && exit 0
+
+[ "$1" = 162 ] && echo "runsv: ERROR $1 in $NAME: configtest or early setup failed" \
+     && sv d "$(dirname "$0")" && exit 0
+
+echo "$NAME Stopped"   
+
diff --git a/sv/ssh/log/run b/sv/ssh/log/run
new file mode 100755 (executable)
index 0000000..fb482ac
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+chown _runit-log:adm '/var/log/runit/ssh'
+chmod 750 '/var/log/runit/ssh'
+exec chpst -u _runit-log svlogd -tt '/var/log/runit/ssh'
diff --git a/sv/ssh/run b/sv/ssh/run
new file mode 100755 (executable)
index 0000000..1d05245
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/env /lib/runit/invoke-run
+set -e
+
+NAME="ssh"
+
+sv start auditd  || sv check auditd || true
+
+# don't start if 'sshd_not_to_be_run' exists
+test -e /etc/ssh/sshd_not_to_be_run && exit 161
+
+#Create /run/sshd
+test -d /run/sshd || mkdir /run/sshd && chmod 0755 /run/sshd
+
+exec 2>&1
+
+#Config test
+/usr/sbin/sshd -t || exit 162
+
+echo "Starting $NAME..."
+exec /usr/sbin/sshd -D -e $SSHD_OPTS
diff --git a/sysctl.conf b/sysctl.conf
new file mode 100644 (file)
index 0000000..c16a8c1
--- /dev/null
@@ -0,0 +1,70 @@
+#
+# /etc/sysctl.conf - Configuration file for setting system variables
+# See /etc/sysctl.d/ for additional system variables.
+# See sysctl.conf (5) for information.
+#
+
+#kernel.domainname = example.com
+
+# Uncomment the following to stop low-level messages on console
+#kernel.printk = 3 4 1 3
+
+vm.overcommit_memory = 1
+
+###################################################################
+# Functions previously found in netbase
+#
+
+# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
+# Turn on Source Address Verification in all interfaces to
+# prevent some spoofing attacks
+#net.ipv4.conf.default.rp_filter=1
+#net.ipv4.conf.all.rp_filter=1
+
+# Uncomment the next line to enable TCP/IP SYN cookies
+# See http://lwn.net/Articles/277146/
+# Note: This may impact IPv6 TCP sessions too
+#net.ipv4.tcp_syncookies=1
+
+# Uncomment the next line to enable packet forwarding for IPv4
+#net.ipv4.ip_forward=1
+
+# Uncomment the next line to enable packet forwarding for IPv6
+#  Enabling this option disables Stateless Address Autoconfiguration
+#  based on Router Advertisements for this host
+#net.ipv6.conf.all.forwarding=1
+
+
+###################################################################
+# Additional settings - these settings can improve the network
+# security of the host and prevent against some network attacks
+# including spoofing attacks and man in the middle attacks through
+# redirection. Some network environments, however, require that these
+# settings are disabled so review and enable them as needed.
+#
+# Do not accept ICMP redirects (prevent MITM attacks)
+#net.ipv4.conf.all.accept_redirects = 0
+#net.ipv6.conf.all.accept_redirects = 0
+# _or_
+# Accept ICMP redirects only for gateways listed in our default
+# gateway list (enabled by default)
+# net.ipv4.conf.all.secure_redirects = 1
+#
+# Do not send ICMP redirects (we are not a router)
+#net.ipv4.conf.all.send_redirects = 0
+#
+# Do not accept IP source route packets (we are not a router)
+#net.ipv4.conf.all.accept_source_route = 0
+#net.ipv6.conf.all.accept_source_route = 0
+#
+# Log Martian Packets
+#net.ipv4.conf.all.log_martians = 1
+#
+
+###################################################################
+# Magic system request Key
+# 0=disable, 1=enable all, >1 bitmask of sysrq functions
+# See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
+# for what other values do
+#kernel.sysrq=438
+
diff --git a/sysctl.d/99-sysctl.conf b/sysctl.d/99-sysctl.conf
new file mode 120000 (symlink)
index 0000000..2b0036b
--- /dev/null
@@ -0,0 +1 @@
+../sysctl.conf
\ No newline at end of file
diff --git a/sysctl.d/README.sysctl b/sysctl.d/README.sysctl
new file mode 100644 (file)
index 0000000..2409081
--- /dev/null
@@ -0,0 +1,16 @@
+Kernel system variables configuration files
+
+Files found under the /etc/sysctl.d directory that end with .conf are
+parsed within sysctl(8) at boot time.  If you want to set kernel variables
+you can either edit /etc/sysctl.conf or make a new file.
+
+The filename isn't important, but don't make it a package name as it may clash
+with something the package builder needs later. It must end with .conf though.
+
+My personal preference would be for local system settings to go into
+/etc/sysctl.d/local.conf but as long as you follow the rules for the names
+of the file, anything will work. See sysctl.conf(8) man page for details
+of the format.
+
+After making any changes, please run "service procps force-reload" (or, from
+a Debian package maintainer script "deb-systemd-invoke restart procps.service").
diff --git a/systemd/journald.conf b/systemd/journald.conf
new file mode 100644 (file)
index 0000000..a690681
--- /dev/null
@@ -0,0 +1,47 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the journald.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# Use 'systemd-analyze cat-config systemd/journald.conf' to display the full config.
+#
+# See journald.conf(5) for details.
+
+[Journal]
+#Storage=auto
+#Compress=yes
+#Seal=yes
+#SplitMode=uid
+#SyncIntervalSec=5m
+#RateLimitIntervalSec=30s
+#RateLimitBurst=10000
+#SystemMaxUse=
+#SystemKeepFree=
+#SystemMaxFileSize=
+#SystemMaxFiles=100
+#RuntimeMaxUse=
+#RuntimeKeepFree=
+#RuntimeMaxFileSize=
+#RuntimeMaxFiles=100
+#MaxRetentionSec=
+#MaxFileSec=1month
+#ForwardToSyslog=yes
+#ForwardToKMsg=no
+#ForwardToConsole=no
+#ForwardToWall=yes
+#TTYPath=/dev/console
+#MaxLevelStore=debug
+#MaxLevelSyslog=debug
+#MaxLevelKMsg=notice
+#MaxLevelConsole=info
+#MaxLevelWall=emerg
+#LineMax=48K
+#ReadKMsg=yes
+#Audit=no
diff --git a/systemd/logind.conf b/systemd/logind.conf
new file mode 100644 (file)
index 0000000..a4e8125
--- /dev/null
@@ -0,0 +1,49 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the logind.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# Use 'systemd-analyze cat-config systemd/logind.conf' to display the full config.
+#
+# See logind.conf(5) for details.
+
+[Login]
+#NAutoVTs=6
+#ReserveVT=6
+#KillUserProcesses=no
+#KillOnlyUsers=
+#KillExcludeUsers=root
+#InhibitDelayMaxSec=5
+#UserStopDelaySec=10
+#HandlePowerKey=poweroff
+#HandlePowerKeyLongPress=ignore
+#HandleRebootKey=reboot
+#HandleRebootKeyLongPress=poweroff
+#HandleSuspendKey=suspend
+#HandleSuspendKeyLongPress=hibernate
+#HandleHibernateKey=hibernate
+#HandleHibernateKeyLongPress=ignore
+#HandleLidSwitch=suspend
+#HandleLidSwitchExternalPower=suspend
+#HandleLidSwitchDocked=ignore
+#PowerKeyIgnoreInhibited=no
+#SuspendKeyIgnoreInhibited=no
+#HibernateKeyIgnoreInhibited=no
+#LidSwitchIgnoreInhibited=yes
+#RebootKeyIgnoreInhibited=no
+#HoldoffTimeoutSec=30s
+#IdleAction=ignore
+#IdleActionSec=30min
+#RuntimeDirectorySize=10%
+#RuntimeDirectoryInodesMax=
+#RemoveIPC=yes
+#InhibitorsMax=8192
+#SessionsMax=8192
+#StopIdleSessionSec=infinity
diff --git a/systemd/networkd.conf b/systemd/networkd.conf
new file mode 100644 (file)
index 0000000..38dc9f1
--- /dev/null
@@ -0,0 +1,28 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the networkd.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# See networkd.conf(5) for details.
+
+[Network]
+#SpeedMeter=no
+#SpeedMeterIntervalSec=10sec
+#ManageForeignRoutingPolicyRules=yes
+#ManageForeignRoutes=yes
+#RouteTable=
+
+[DHCPv4]
+#DUIDType=vendor
+#DUIDRawData=
+
+[DHCPv6]
+#DUIDType=vendor
+#DUIDRawData=
diff --git a/systemd/pstore.conf b/systemd/pstore.conf
new file mode 100644 (file)
index 0000000..68fb04a
--- /dev/null
@@ -0,0 +1,17 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the pstore.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# See pstore.conf(5) for details.
+
+[PStore]
+#Storage=external
+#Unlink=yes
diff --git a/systemd/sleep.conf b/systemd/sleep.conf
new file mode 100644 (file)
index 0000000..4c8e8b9
--- /dev/null
@@ -0,0 +1,27 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the sleep.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# See systemd-sleep.conf(5) for details.
+
+[Sleep]
+#AllowSuspend=yes
+#AllowHibernation=yes
+#AllowSuspendThenHibernate=yes
+#AllowHybridSleep=yes
+#SuspendMode=
+#SuspendState=mem standby freeze
+#HibernateMode=platform shutdown
+#HibernateState=disk
+#HybridSleepMode=suspend platform shutdown
+#HybridSleepState=disk
+#HibernateDelaySec=
+#SuspendEstimationSec=60min
diff --git a/systemd/system.conf b/systemd/system.conf
new file mode 100644 (file)
index 0000000..acace23
--- /dev/null
@@ -0,0 +1,77 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the system.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# Use 'systemd-analyze cat-config systemd/system.conf' to display the full config.
+#
+# See systemd-system.conf(5) for details.
+
+[Manager]
+#LogLevel=info
+#LogTarget=journal-or-kmsg
+#LogColor=yes
+#LogLocation=no
+#LogTime=no
+#DumpCore=yes
+#ShowStatus=yes
+#CrashChangeVT=no
+#CrashShell=no
+#CrashReboot=no
+#CtrlAltDelBurstAction=reboot-force
+#CPUAffinity=
+#NUMAPolicy=default
+#NUMAMask=
+#RuntimeWatchdogSec=off
+#RuntimeWatchdogPreSec=off
+#RuntimeWatchdogPreGovernor=
+#RebootWatchdogSec=10min
+#KExecWatchdogSec=off
+#WatchdogDevice=
+#CapabilityBoundingSet=
+#NoNewPrivileges=no
+#SystemCallArchitectures=
+#TimerSlackNSec=
+#StatusUnitFormat=combined
+#DefaultTimerAccuracySec=1min
+#DefaultStandardOutput=journal
+#DefaultStandardError=inherit
+#DefaultTimeoutStartSec=90s
+#DefaultTimeoutStopSec=90s
+#DefaultTimeoutAbortSec=
+#DefaultDeviceTimeoutSec=90s
+#DefaultRestartSec=100ms
+#DefaultStartLimitIntervalSec=10s
+#DefaultStartLimitBurst=5
+#DefaultEnvironment=
+#DefaultCPUAccounting=yes
+#DefaultIOAccounting=no
+#DefaultIPAccounting=no
+#DefaultMemoryAccounting=yes
+#DefaultTasksAccounting=yes
+#DefaultTasksMax=15%
+#DefaultLimitCPU=
+#DefaultLimitFSIZE=
+#DefaultLimitDATA=
+#DefaultLimitSTACK=
+#DefaultLimitCORE=
+#DefaultLimitRSS=
+#DefaultLimitNOFILE=1024:524288
+#DefaultLimitAS=
+#DefaultLimitNPROC=
+#DefaultLimitMEMLOCK=8M
+#DefaultLimitLOCKS=
+#DefaultLimitSIGPENDING=
+#DefaultLimitMSGQUEUE=
+#DefaultLimitNICE=
+#DefaultLimitRTPRIO=
+#DefaultLimitRTTIME=
+#DefaultOOMPolicy=stop
+#DefaultSmackProcessLabel=
diff --git a/systemd/system/bind9.service b/systemd/system/bind9.service
new file mode 120000 (symlink)
index 0000000..66d6674
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/named.service
\ No newline at end of file
diff --git a/systemd/system/chronyd.service b/systemd/system/chronyd.service
new file mode 120000 (symlink)
index 0000000..cf434ea
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/chrony.service
\ No newline at end of file
diff --git a/systemd/system/dbus-org.freedesktop.timesync1.service b/systemd/system/dbus-org.freedesktop.timesync1.service
new file mode 120000 (symlink)
index 0000000..f64da56
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/systemd-timesyncd.service
\ No newline at end of file
diff --git a/systemd/system/getty.target.wants/getty@tty1.service b/systemd/system/getty.target.wants/getty@tty1.service
new file mode 120000 (symlink)
index 0000000..facee85
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/getty@.service
\ No newline at end of file
diff --git a/systemd/system/getty.target.wants/getty@tty2.service b/systemd/system/getty.target.wants/getty@tty2.service
new file mode 120000 (symlink)
index 0000000..facee85
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/getty@.service
\ No newline at end of file
diff --git a/systemd/system/getty.target.wants/getty@tty3.service b/systemd/system/getty.target.wants/getty@tty3.service
new file mode 120000 (symlink)
index 0000000..facee85
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/getty@.service
\ No newline at end of file
diff --git a/systemd/system/getty.target.wants/getty@tty4.service b/systemd/system/getty.target.wants/getty@tty4.service
new file mode 120000 (symlink)
index 0000000..facee85
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/getty@.service
\ No newline at end of file
diff --git a/systemd/system/getty@.service.d/noclear.conf b/systemd/system/getty@.service.d/noclear.conf
new file mode 100644 (file)
index 0000000..52671c7
--- /dev/null
@@ -0,0 +1,2 @@
+[Service]
+TTYVTDisallocate=no
diff --git a/systemd/system/multi-user.target.wants/apache2.service b/systemd/system/multi-user.target.wants/apache2.service
new file mode 120000 (symlink)
index 0000000..0037612
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/apache2.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/atd.service b/systemd/system/multi-user.target.wants/atd.service
new file mode 120000 (symlink)
index 0000000..e225a48
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/atd.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/chrony.service b/systemd/system/multi-user.target.wants/chrony.service
new file mode 120000 (symlink)
index 0000000..cf434ea
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/chrony.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/console-setup.service b/systemd/system/multi-user.target.wants/console-setup.service
new file mode 120000 (symlink)
index 0000000..29fafc8
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/console-setup.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/cron.service b/systemd/system/multi-user.target.wants/cron.service
new file mode 120000 (symlink)
index 0000000..9a6753f
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/cron.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/e2scrub_reap.service b/systemd/system/multi-user.target.wants/e2scrub_reap.service
new file mode 120000 (symlink)
index 0000000..0c9e287
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/e2scrub_reap.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/etckeeper.timer b/systemd/system/multi-user.target.wants/etckeeper.timer
new file mode 120000 (symlink)
index 0000000..67b75d6
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/etckeeper.timer
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/mariadb.service b/systemd/system/multi-user.target.wants/mariadb.service
new file mode 120000 (symlink)
index 0000000..fd9e114
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/mariadb.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/named.service b/systemd/system/multi-user.target.wants/named.service
new file mode 120000 (symlink)
index 0000000..66d6674
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/named.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/networking.service b/systemd/system/multi-user.target.wants/networking.service
new file mode 120000 (symlink)
index 0000000..e58a34f
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/networking.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/open-vm-tools.service b/systemd/system/multi-user.target.wants/open-vm-tools.service
new file mode 120000 (symlink)
index 0000000..dac27a6
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/open-vm-tools.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/postfix.service b/systemd/system/multi-user.target.wants/postfix.service
new file mode 120000 (symlink)
index 0000000..efaaa31
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/postfix.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/remote-fs.target b/systemd/system/multi-user.target.wants/remote-fs.target
new file mode 120000 (symlink)
index 0000000..840a3cb
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/remote-fs.target
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/ssh.service b/systemd/system/multi-user.target.wants/ssh.service
new file mode 120000 (symlink)
index 0000000..7504947
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/ssh.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/valkey-server.service b/systemd/system/multi-user.target.wants/valkey-server.service
new file mode 120000 (symlink)
index 0000000..875eb90
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/valkey-server.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/valkey-server@6377.service b/systemd/system/multi-user.target.wants/valkey-server@6377.service
new file mode 120000 (symlink)
index 0000000..9b9dfcc
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/systemd/system/valkey-server@.service
\ No newline at end of file
diff --git a/systemd/system/multi-user.target.wants/valkey-server@6378.service b/systemd/system/multi-user.target.wants/valkey-server@6378.service
new file mode 120000 (symlink)
index 0000000..9b9dfcc
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/systemd/system/valkey-server@.service
\ No newline at end of file
diff --git a/systemd/system/network-online.target.wants/networking.service b/systemd/system/network-online.target.wants/networking.service
new file mode 120000 (symlink)
index 0000000..e58a34f
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/networking.service
\ No newline at end of file
diff --git a/systemd/system/open-vm-tools.service.requires/vgauth.service b/systemd/system/open-vm-tools.service.requires/vgauth.service
new file mode 120000 (symlink)
index 0000000..ef86a36
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/vgauth.service
\ No newline at end of file
diff --git a/systemd/system/sockets.target.wants/dm-event.socket b/systemd/system/sockets.target.wants/dm-event.socket
new file mode 120000 (symlink)
index 0000000..1b353c4
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/dm-event.socket
\ No newline at end of file
diff --git a/systemd/system/sshd.service b/systemd/system/sshd.service
new file mode 120000 (symlink)
index 0000000..7504947
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/ssh.service
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/apparmor.service b/systemd/system/sysinit.target.wants/apparmor.service
new file mode 120000 (symlink)
index 0000000..6fda6f1
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/apparmor.service
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/blk-availability.service b/systemd/system/sysinit.target.wants/blk-availability.service
new file mode 120000 (symlink)
index 0000000..3af3fda
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/blk-availability.service
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/haveged.service b/systemd/system/sysinit.target.wants/haveged.service
new file mode 120000 (symlink)
index 0000000..caa7bd7
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/haveged.service
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/keyboard-setup.service b/systemd/system/sysinit.target.wants/keyboard-setup.service
new file mode 120000 (symlink)
index 0000000..b84cde0
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/keyboard-setup.service
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket b/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket
new file mode 120000 (symlink)
index 0000000..dda468d
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/lvm2-lvmpolld.socket
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/lvm2-monitor.service b/systemd/system/sysinit.target.wants/lvm2-monitor.service
new file mode 120000 (symlink)
index 0000000..af161f3
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/lvm2-monitor.service
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/systemd-pstore.service b/systemd/system/sysinit.target.wants/systemd-pstore.service
new file mode 120000 (symlink)
index 0000000..06e55a6
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/systemd-pstore.service
\ No newline at end of file
diff --git a/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/systemd/system/sysinit.target.wants/systemd-timesyncd.service
new file mode 120000 (symlink)
index 0000000..f64da56
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/systemd-timesyncd.service
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/apt-daily-upgrade.timer b/systemd/system/timers.target.wants/apt-daily-upgrade.timer
new file mode 120000 (symlink)
index 0000000..ae3ad57
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/apt-daily-upgrade.timer
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/apt-daily.timer b/systemd/system/timers.target.wants/apt-daily.timer
new file mode 120000 (symlink)
index 0000000..0612ca7
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/apt-daily.timer
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/dpkg-db-backup.timer b/systemd/system/timers.target.wants/dpkg-db-backup.timer
new file mode 120000 (symlink)
index 0000000..12072e6
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/dpkg-db-backup.timer
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/e2scrub_all.timer b/systemd/system/timers.target.wants/e2scrub_all.timer
new file mode 120000 (symlink)
index 0000000..a62818c
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/e2scrub_all.timer
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/fstrim.timer b/systemd/system/timers.target.wants/fstrim.timer
new file mode 120000 (symlink)
index 0000000..2ed9fe6
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/fstrim.timer
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/logrotate.timer b/systemd/system/timers.target.wants/logrotate.timer
new file mode 120000 (symlink)
index 0000000..90f5322
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/logrotate.timer
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/man-db.timer b/systemd/system/timers.target.wants/man-db.timer
new file mode 120000 (symlink)
index 0000000..31c2353
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/man-db.timer
\ No newline at end of file
diff --git a/systemd/system/timers.target.wants/plocate-updatedb.timer b/systemd/system/timers.target.wants/plocate-updatedb.timer
new file mode 120000 (symlink)
index 0000000..2cb8508
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/plocate-updatedb.timer
\ No newline at end of file
diff --git a/systemd/system/tmp.mount b/systemd/system/tmp.mount
new file mode 100644 (file)
index 0000000..90621fa
--- /dev/null
@@ -0,0 +1,29 @@
+#  SPDX-License-Identifier: LGPL-2.1-or-later
+#
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=Temporary Directory /tmp
+Documentation=https://systemd.io/TEMPORARY_DIRECTORIES
+Documentation=man:file-hierarchy(7)
+Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
+ConditionPathIsSymbolicLink=!/tmp
+DefaultDependencies=no
+Conflicts=umount.target
+Before=local-fs.target umount.target
+After=swap.target
+
+[Mount]
+What=tmpfs
+Where=/tmp
+Type=tmpfs
+Options=mode=1777,strictatime,nosuid,nodev,size=10%%,nr_inodes=1m
+
+# Make 'systemctl enable tmp.mount' work:
+[Install]
+WantedBy=local-fs.target
diff --git a/systemd/system/valkey-server@6377.service b/systemd/system/valkey-server@6377.service
new file mode 120000 (symlink)
index 0000000..62a0ce1
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/valkey-server@.service
\ No newline at end of file
diff --git a/systemd/system/valkey-server@6378.service b/systemd/system/valkey-server@6378.service
new file mode 120000 (symlink)
index 0000000..62a0ce1
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/valkey-server@.service
\ No newline at end of file
diff --git a/systemd/system/valkey.service b/systemd/system/valkey.service
new file mode 120000 (symlink)
index 0000000..875eb90
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/valkey-server.service
\ No newline at end of file
diff --git a/systemd/system/vmtoolsd.service b/systemd/system/vmtoolsd.service
new file mode 120000 (symlink)
index 0000000..dac27a6
--- /dev/null
@@ -0,0 +1 @@
+/lib/systemd/system/open-vm-tools.service
\ No newline at end of file
diff --git a/systemd/timesyncd.conf b/systemd/timesyncd.conf
new file mode 100644 (file)
index 0000000..e805553
--- /dev/null
@@ -0,0 +1,22 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the timesyncd.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# See timesyncd.conf(5) for details.
+
+[Time]
+#NTP=
+#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
+#RootDistanceMaxSec=5
+#PollIntervalMinSec=32
+#PollIntervalMaxSec=2048
+#ConnectionRetrySec=30
+#SaveIntervalSec=60
diff --git a/systemd/user.conf b/systemd/user.conf
new file mode 100644 (file)
index 0000000..2e2b373
--- /dev/null
@@ -0,0 +1,50 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the user.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# See systemd-user.conf(5) for details.
+
+[Manager]
+#LogLevel=info
+#LogTarget=auto
+#LogColor=yes
+#LogLocation=no
+#LogTime=no
+#SystemCallArchitectures=
+#TimerSlackNSec=
+#StatusUnitFormat=combined
+#DefaultTimerAccuracySec=1min
+#DefaultStandardOutput=inherit
+#DefaultStandardError=inherit
+#DefaultTimeoutStartSec=90s
+#DefaultTimeoutStopSec=90s
+#DefaultTimeoutAbortSec=
+#DefaultRestartSec=100ms
+#DefaultStartLimitIntervalSec=10s
+#DefaultStartLimitBurst=5
+#DefaultEnvironment=
+#DefaultLimitCPU=
+#DefaultLimitFSIZE=
+#DefaultLimitDATA=
+#DefaultLimitSTACK=
+#DefaultLimitCORE=
+#DefaultLimitRSS=
+#DefaultLimitNOFILE=
+#DefaultLimitAS=
+#DefaultLimitNPROC=
+#DefaultLimitMEMLOCK=
+#DefaultLimitLOCKS=
+#DefaultLimitSIGPENDING=
+#DefaultLimitMSGQUEUE=
+#DefaultLimitNICE=
+#DefaultLimitRTPRIO=
+#DefaultLimitRTTIME=
+#DefaultSmackProcessLabel=
diff --git a/systemd/user/sockets.target.wants/dirmngr.socket b/systemd/user/sockets.target.wants/dirmngr.socket
new file mode 120000 (symlink)
index 0000000..cfde217
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/systemd/user/dirmngr.socket
\ No newline at end of file
diff --git a/systemd/user/sockets.target.wants/gpg-agent-browser.socket b/systemd/user/sockets.target.wants/gpg-agent-browser.socket
new file mode 120000 (symlink)
index 0000000..749a7e3
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/systemd/user/gpg-agent-browser.socket
\ No newline at end of file
diff --git a/systemd/user/sockets.target.wants/gpg-agent-extra.socket b/systemd/user/sockets.target.wants/gpg-agent-extra.socket
new file mode 120000 (symlink)
index 0000000..7031294
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/systemd/user/gpg-agent-extra.socket
\ No newline at end of file
diff --git a/systemd/user/sockets.target.wants/gpg-agent-ssh.socket b/systemd/user/sockets.target.wants/gpg-agent-ssh.socket
new file mode 120000 (symlink)
index 0000000..acb12ad
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/systemd/user/gpg-agent-ssh.socket
\ No newline at end of file
diff --git a/systemd/user/sockets.target.wants/gpg-agent.socket b/systemd/user/sockets.target.wants/gpg-agent.socket
new file mode 120000 (symlink)
index 0000000..26158f7
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/systemd/user/gpg-agent.socket
\ No newline at end of file
diff --git a/terminfo/README b/terminfo/README
new file mode 100644 (file)
index 0000000..bea98cc
--- /dev/null
@@ -0,0 +1,3 @@
+This directory is for system-local terminfo descriptions. By default,
+ncurses will search ${HOME}/.terminfo first, then /etc/terminfo (this
+directory), then /lib/terminfo, and last not least /usr/share/terminfo.
diff --git a/tigrc b/tigrc
new file mode 100644 (file)
index 0000000..09d0ddb
--- /dev/null
+++ b/tigrc
@@ -0,0 +1,478 @@
+# Tig default configuration
+#
+# Please see 'man tigrc' for a complete reference.
+
+# Settings
+# --------
+# Most of these settings can be toggleable, either via the toggle-*
+# actions or via the option menu (bound to `o` by default).
+
+# View settings
+#
+# Supported column types and their options:
+#
+#   author
+#    - display (enum) [no|full|abbreviated|email|email-user]
+#                                      : Show author information?
+#    - width (int)                     : Fixed width when nonzero
+#    - maxwidth (int)                  : Autosize limit
+#
+#   commit-title
+#    - display (bool)                  : Show the commit title?
+#    - graph (enum) [no|v2|v1]         : Show the commit graph? (main view only)
+#    - refs (bool)                     : Show branches, tags and remotes? (main view only)
+#    - overflow (boolint)              : Highlight overflows? Defaults to 50 when enabled.
+#
+#   date
+#    - display (enum) [no|default|relative|relative-compact|custom]
+#                                      : Show dates?
+#    - local (bool)                    : Show local dates?
+#    - format (string)                 : Custom strftime(3) format
+#                                        Note: %Z is formatted as %z
+#    - width (int)                     : Fixed width when nonzero
+#
+#   file-name
+#    - display (enum) [no|always|auto] : Show file names?
+#    - width (int)                     : Fixed width when nonzero
+#    - maxwidth (int)                  : Autosize limit
+#
+#   file-size
+#    - display (enum) [no|default|units]
+#                                      : Show file sizes?
+#    - width (int)                     : Fixed width when nonzero
+#
+#   id
+#    - display (bool)                  : Show commit/tree ID?
+#    - width (int)                     : Fixed width when nonzero
+#
+#   line-number
+#    - display (bool)                  : Show line numbers?
+#    - interval (int)                  : Interval between line numbers; defaults to 5
+#    - width (int)                     : Fixed width when nonzero
+#
+#   mode
+#    - display (bool)                  : Show file modes?
+#    - width (int)                     : Fixed width when nonzero
+#
+#   ref
+#    - display (bool)                  : Show ref names?
+#    - width (int)                     : Fixed width when nonzero
+#    - maxwidth (int)                  : Autosize limit
+#
+#   status
+#    - display (enum) [no|short|long]  : Show status label?
+#
+#   text
+#    - display (bool)                  : Show text?
+#    - commit-title-overflow (boolint) : Highlight overflow in log and diff view?
+#
+
+set blame-view = id:yes,color file-name:auto author:full date:default line-number:yes,interval=1 text
+set grep-view  = file-name:no line-number:yes,interval=1 text
+set main-view  = line-number:no,interval=5 id:no date:default author:full commit-title:yes,graph,refs,overflow=no
+set reflog-view        = line-number:no,interval=5 id:yes date:no author:no commit-title:yes,refs,overflow=no
+set refs-view  = line-number:no id:no date:default author:full ref commit-title
+set stash-view = line-number:no,interval=5 id:no date:default author:full commit-title
+set status-view        = line-number:no,interval=5 status:short file-name
+set tree-view  = line-number:no,interval=5 mode author:full file-size date:default id:no file-name
+
+# Pager based views
+set pager-view = line-number:no,interval=5 text
+set stage-view = line-number:no,interval=5 text
+set log-view   = line-number:no,interval=5 text
+set blob-view  = line-number:no,interval=5 text
+set diff-view  = line-number:no,interval=5 text:yes,commit-title-overflow=no
+
+# UI display settings
+set show-changes               = yes           # Show changes commits in the main view?
+set show-untracked             = yes           # Show also untracked changes?
+set wrap-lines                 = no            # Wrap long lines in pager views?
+set tab-size                   = 8             # Number of spaces to use when expanding tabs
+set line-graphics              = default       # Enum: ascii, default, utf-8, auto
+set truncation-delimiter       = ~             # Character drawn for truncations, or "utf-8"
+
+# Format reference names based on type.
+#  - head              : The current HEAD.
+#  - tag               : An annotated tag.
+#  - local-tag         : A lightweight tag.
+#  - remote            : A remote.
+#  - tracked-remote    : The remote tracked by current HEAD.
+#  - replace           : A replaced reference.
+#  - branch            : A branch.
+#  - stash             : The stash.
+#  - other             : Any other reference.
+# If no format is defined for `local-tag` then the one for `tag` is used.
+# Similarly, `remote` is used if no `tracked-remote` format exists.
+# Prefix with `hide:` to not show that reference type, e.g. `hide:remote`.
+# Expects a space-separated list of format strings.
+set reference-format           = [branch] <tag> {remote} ~replace~
+
+# Settings controlling how content is read from Git
+set commit-order               = auto          # Enum: auto, default, topo, date, reverse (main)
+set status-show-untracked-dirs = yes           # Show files in untracked directories? (status)
+set status-show-untracked-files        = yes           # Show untracked files?
+set ignore-space               = no            # Enum: no, all, some, at-eol (diff)
+set show-notes                 = yes           # When non-bool passed as `--show-notes=...` (diff)
+#set diff-context              = 3             # Number of lines to show around diff changes (diff)
+#set diff-options              = -C            # User-defined options for `tig show` (git-diff)
+#set diff-highlight            = true          # String (or bool): Path to diff-highlight script,
+                                               #                   defaults to `diff-highlight`.
+#set blame-options             = -C -C -C      # User-defined options for `tig blame` (git-blame)
+#set log-options               = --pretty=raw  # User-defined options for `tig log` (git-log)
+#set main-options              = -n 1000       # User-defined options for `tig` (git-log)
+set mailmap                    = yes           # Use .mailmap to show canonical name and email address
+
+# Misc
+set start-on-head              = no            # Start with cursor on HEAD commit
+set refresh-mode               = auto          # Enum: manual, auto, after-command, periodic
+set refresh-interval           = 10            # Interval in seconds between refreshes
+set ignore-case                        = no            # Enum: no, yes, smart-case
+                                               # Ignore case when searching? Smart-case option will
+set wrap-search                        = yes           # Wrap around to top/bottom of view when searching
+set focus-child                        = yes           # Move focus to child view when opened?
+set send-child-enter           = yes           # Propagate "enter" keypresses to child views?
+set horizontal-scroll          = 50%           # Number of columns to scroll as % of width
+set split-view-height          = 67%           # Height of the bottom view for horizontal splits
+set vertical-split             = auto          # Enum: horizontal, vertical, auto; Use auto to
+                                               # switch to horizontal split when width allows it
+set split-view-width           = 50%           # Width of right-most view for vertical splits
+set editor-line-number         = yes           # Automatically pass line number to editor? Used
+                                               # for opening file at specific line e.g. from a diff
+set history-size               = 500           # Size of persistent history, 0 to disable
+set mouse                      = no            # Enable mouse support?
+set mouse-scroll               = 3             # Number of lines to scroll via the mouse
+set mouse-wheel-cursor         = no            # Prefer moving the cursor to scrolling the view?
+set pgrp                       = no            # Make tig process-group leader
+
+# User-defined commands
+# ---------------------
+# These commands allow to run shell commands directly from within Tig.
+# Unless otherwise specified, commands are run in the foreground with
+# their console output shown (as if '!' was specified). When multiple
+# command options are specified their behavior are combined, e.g. "?<git
+# commit" will prompt the user whether to execute the command and will
+# exit Tig after completion.
+#
+#   !  Run the command in the foreground with output shown.
+#   @  Run the command in the background with no output.
+#   ?  Prompt the user before executing the command.
+#   +  Run the command synchronously, and echo the first line of output to the status bar.
+#   <  Exit Tig after executing the command.
+#   >  Re-open Tig instantly in the last displayed view after executing the command.
+#
+# User-defined commands can optionally refer to Tig's internal state
+# using the following variable names, which are substituted before
+# commands are run:
+#
+#   %(head)            The current ref ID. Defaults to HEAD
+#   %(commit)          The current commit ID.
+#   %(blob)            The current blob ID.
+#   %(branch)          The current branch name.
+#   %(remote)          The current remote name.
+#   %(tag)             The current tag name.
+#   %(stash)           The current stash name.
+#   %(directory)       The current directory path in the tree view;
+#                      empty for the root directory.
+#   %(file)            The currently selected file.
+#   %(ref)             The reference given to blame or HEAD if undefined.
+#   %(revargs)         The revision arguments passed on the command line.
+#   %(fileargs)                The file arguments passed on the command line.
+#   %(cmdlineargs)     All other options passed on the command line.
+#   %(diffargs)                The diff options from `diff-options` or `TIG_DIFF_OPTS`
+#   %(prompt)          Prompt for the argument value.
+
+bind main      C       ?git cherry-pick %(commit)
+bind status    C       !git commit
+bind stash     A       ?git stash apply %(stash)
+bind stash     P       ?git stash pop %(stash)
+bind stash     !       ?git stash drop %(stash)
+bind refs      C       ?git checkout %(branch)
+bind refs      !       ?git branch -D %(branch)
+bind reflog    C       ?git checkout %(branch)
+bind reflog    !       ?git reset --hard %(commit)
+
+# Normal commands
+# ---------------
+
+# View switching
+bind generic   m       view-main
+bind generic   d       view-diff
+bind generic   l       view-log
+bind generic   L       view-reflog
+bind generic   t       view-tree
+bind generic   f       view-blob
+bind generic   b       view-blame
+bind generic   r       view-refs
+bind generic   p       view-pager
+bind generic   h       view-help
+bind generic   s       view-status
+bind generic   S       view-status             # Compat binding to avoid going crazy!
+bind generic   c       view-stage
+bind generic   y       view-stash
+bind generic   g       view-grep
+
+# View manipulation
+bind generic   <Enter> enter                   # Enter and open selected entry
+bind generic   <Lt>    back                    # Go back to the previous view state
+bind generic   <Down>  next                    # Move to next
+bind generic   <C-N>   next
+bind generic   J       next
+bind generic   <Up>    previous                # Move to previous
+bind generic   <C-P>   previous
+bind generic   K       previous
+bind generic   ,       parent                  # Move to parent
+bind generic   <Tab>   view-next               # Move focus to the next view
+bind generic   R       refresh                 # Reload and refresh view
+bind generic   <F5>    refresh
+bind generic   O       maximize                # Maximize the current view
+bind generic   q       view-close              # Close the current view
+bind generic   Q       quit                    # Close all views and quit
+bind generic   <C-C>   quit                    # Close all views and quit
+
+# View specific
+bind status    u       status-update           # Stage/unstage changes in file
+bind status    !       status-revert           # Revert changes in file
+bind status    M       status-merge            # Open git-mergetool(1)
+# bind status  ???     :toggle status          # Show short or long status labels
+bind stage     u       status-update           # Stage/unstage current diff (c)hunk
+bind stage     1       stage-update-line       # Stage/unstage current line
+bind stage     2       stage-update-part       # Stage/unstage part of chunk
+bind stage     !       status-revert           # Revert current diff (c)hunk
+bind stage     \       stage-split-chunk       # Split current diff (c)hunk
+bind stage     @       :/^@@                   # Jump to next (c)hunk
+bind stage     [       :toggle diff-context -1 # Decrease the diff context
+bind stage     ]       :toggle diff-context +1 # Increase the diff context
+bind diff      @       :/^@@                   # Jump to next (c)hunk
+bind diff      [       :toggle diff-context -1 # Decrease the diff context
+bind diff      ]       :toggle diff-context +1 # Increase the diff context
+bind pager     @       :/^@@                   # Jump to next (c)hunk
+bind main      H       :goto HEAD              # Jump to HEAD commit
+bind main      G       :toggle commit-title-graph # Toggle revision graph visualization
+bind main      F       :toggle commit-title-refs  # Toggle reference display (tags/branches)
+bind reflog    F       :toggle commit-title-refs  # Toggle reference display (tags/branches)
+
+# Cursor navigation
+bind generic   j       move-down
+bind generic   k       move-up
+bind generic   <C-D>   move-half-page-down
+bind generic   <C-U>   move-half-page-up
+bind generic   <PgDown> move-page-down
+bind generic   <Space> move-page-down
+bind generic   <PgUp>  move-page-up
+bind generic   -       move-page-up
+bind generic   <Home>  move-first-line
+bind generic   <End>   move-last-line
+
+# Scrolling
+bind generic   |       scroll-first-col
+bind generic   <Left>  scroll-left
+bind generic   <Right> scroll-right
+bind generic   <Ins>   scroll-line-up
+bind generic   <C-Y>   scroll-line-up
+bind generic   <Del>   scroll-line-down
+bind generic   <C-E>   scroll-line-down
+bind generic   <SBack> scroll-page-up
+bind generic   <SFwd>  scroll-page-down
+# bind generic ???     scroll-half-page-up
+# bind generic ???     scroll-half-page-down
+
+# Searching
+bind generic   /       search
+bind generic   ?       search-back
+bind generic   n       find-next
+bind generic   N       find-prev
+# Navigation keys used while searching
+bind search    <Down>  find-next
+bind search    <C-N>   find-next
+bind search    <C-J>   find-next
+bind search    <Up>    find-prev
+bind search    <C-P>   find-prev
+bind search    <C-K>   find-prev
+bind search    <C-C>   view-close
+
+# Option manipulation
+bind generic   o       options                 # Open the options menu
+# Bindings for toggling settings
+bind generic   I       :toggle sort-order      # Toggle ascending/descending sort order
+bind generic   i       :toggle sort-field      # Toggle field to sort by
+bind generic   <Hash>  :toggle line-number     # Toggle line numbers
+bind generic   D       :toggle date            # Toggle date display
+bind generic   A       :toggle author          # Toggle author display
+bind generic   ~       :toggle line-graphics   # Toggle (line) graphics mode
+bind generic   F       :toggle file-name       # Toggle file name display
+# bind generic ???     :toggle show-changes    # Toggle local changes display in the main view
+bind generic   W       :toggle ignore-space    # Toggle ignoring whitespace in diffs
+# bind generic ???     :toggle commit-order    # Toggle commit ordering
+bind generic   X       :toggle id              # Toggle commit ID display
+bind generic   $       :toggle commit-title-overflow
+                                               # Toggle highlighting of commit title overflow
+# bind generic ???     :toggle file-size       # Toggle file size format
+# bind generic ???     :toggle status          # Toggle status display
+# bind generic ???     :toggle status-show-untracked-dirs
+                                               # Toggle display of file in untracked directories
+# bind generic ???     :toggle vertical-split  # Toggle vertical split
+bind generic   %       :toggle file-filter     # Toggle filtering by pathspecs in file-args
+bind generic   ^       :toggle rev-filter      # Toggle filtering by revisions in rev-args
+
+# Misc
+bind generic   e       edit                    # Open in editor
+bind generic   :       prompt                  # Open the prompt
+bind generic   <C-L>   screen-redraw           # Redraw the screen
+bind generic   z       stop-loading            # Stop all loading views
+bind generic   v       show-version            # Show Tig version
+
+# Colors
+# ------
+
+# The colors in the UI can be customized. In addition to the colors used
+# for the UI you can also define new colors to use in the pager, blob,
+# diff, and stage views by placing the text to match for in quotes.
+#
+# Prefix the name of a view to set a color only for that view, e.g.
+#
+#      color grep.file                 blue    default
+#
+# As an example, this setting will to color Signed-off-by lines with a
+# yellow foreground color and use the default background color.
+#
+#      color "    Signed-off-by"       yellow  default
+#
+# Note the four leading spaces in the string to match. This is because
+# Git automatically indents commit messages by four spaces.
+
+color "---"                    blue    default
+color "diff --"                        yellow  default
+color "--- "                   yellow  default
+color "+++ "                   yellow  default
+color "@@"                     magenta default
+color "+"                      green   default
+color " +"                     green   default
+color "-"                      red     default
+color " -"                     red     default
+color "index "                 blue    default
+color "old file mode "         yellow  default
+color "new file mode "         yellow  default
+color "deleted file mode "     yellow  default
+color "copy from "             yellow  default
+color "copy to "               yellow  default
+color "rename from "           yellow  default
+color "rename to "             yellow  default
+color "similarity "            yellow  default
+color "dissimilarity "         yellow  default
+color "\ No newline at end of file"    blue    default
+color "diff-tree "             blue    default
+color "Author: "               cyan    default
+color "Commit: "               magenta default
+color "Tagger: "               magenta default
+color "Merge: "                        blue    default
+color "Date: "                 yellow  default
+color "AuthorDate: "           yellow  default
+color "CommitDate: "           yellow  default
+color "TaggerDate: "           yellow  default
+color "Refs: "                 red     default
+color "Reflog: "               red     default
+color "Reflog message: "       yellow  default
+color "stash@{"                        magenta default
+color "commit "                        green   default
+color "parent "                        blue    default
+color "tree "                  blue    default
+color "author "                        green   default
+color "committer "             magenta default
+color "    Signed-off-by:"     yellow  default
+color "    Acked-by:"          yellow  default
+color "    Reviewed-by:"       yellow  default
+color "    Helped-by:"         yellow  default
+color "    Reported-by:"       yellow  default
+color "    Mentored-by:"       yellow  default
+color "    Suggested-by:"      yellow  default
+color "    Cc:"                        yellow  default
+color "    Noticed-by:"                yellow  default
+color "    Tested-by:"         yellow  default
+color "    Improved-by:"       yellow  default
+color "    Thanks-to:"         yellow  default
+color "    Based-on-patch-by:" yellow  default
+color "    Contributions-by:"  yellow  default
+color "    Co-authored-by:"    yellow  default
+color "    Requested-by:"      yellow  default
+color "    Original-patch-by:" yellow  default
+color "    Inspired-by:"       yellow  default
+color default                  default default normal
+color cursor                   white   green   bold
+color status                   green   default
+color delimiter                        magenta default
+color date                     blue    default
+color mode                     cyan    default
+color id                       magenta default
+color overflow                 red     default
+color header                   yellow  default
+color section                  cyan    default
+color directory                        yellow  default
+color file                     default default
+color grep.file                        blue    default
+color file-size                        default default
+color line-number              cyan    default
+color title-blur               white   blue
+color title-focus              white   blue    bold
+color main-commit              default default
+color main-annotated           default default bold
+color main-tag                 magenta default bold
+color main-local-tag           magenta default
+color main-remote              yellow  default
+color main-replace             cyan    default
+color main-tracked             yellow  default bold
+color main-ref                 cyan    default
+color main-head                        cyan    default bold
+color stat-none                        default default
+color stat-staged              magenta default
+color stat-unstaged            magenta default
+color stat-untracked           magenta default
+color help-group               blue    default
+color help-action              yellow  default
+color diff-stat                        blue    default
+color diff-add-highlight       green   default standout
+color diff-del-highlight       red     default standout
+color palette-0                        magenta default
+color palette-1                        yellow  default
+color palette-2                        cyan    default
+color palette-3                        green   default
+color palette-4                        default default
+color palette-5                        white   default
+color palette-6                        red     default
+color palette-7                        magenta default bold
+color palette-8                        yellow  default bold
+color palette-9                        cyan    default bold
+color palette-10               green   default bold
+color palette-11               default default bold
+color palette-12               white   default bold
+color palette-13               red     default bold
+color graph-commit             blue    default
+color search-result            black   yellow
+
+# Mappings for colors read from git configuration.
+# Set to "no" to disable.
+set git-colors = \
+       branch.current=main-head \
+       branch.local=main-ref \
+       branch.plain=main-ref \
+       branch.remote=main-remote \
+       \
+       diff.meta=diff-header \
+       diff.meta=diff-index \
+       diff.meta=diff-oldmode \
+       diff.meta=diff-newmode \
+       diff.frag=diff-chunk \
+       diff.old=diff-del \
+       diff.new=diff-add \
+       \
+       diff-highlight.oldHighlight=diff-del-highlight \
+       diff-highlight.newHighlight=diff-add-highlight \
+       \
+       grep.filename=grep.file \
+       grep.linenumber=grep.line-number \
+       grep.separator=grep.delimiter \
+       \
+       status.branch=status.header \
+       status.added=stat-staged \
+       status.updated=stat-staged \
+       status.changed=stat-unstaged \
+       status.untracked=stat-untracked
diff --git a/timezone b/timezone
new file mode 100644 (file)
index 0000000..94d5acc
--- /dev/null
+++ b/timezone
@@ -0,0 +1 @@
+Europe/Berlin
diff --git a/tmpfiles.d/screen-cleanup.conf b/tmpfiles.d/screen-cleanup.conf
new file mode 100644 (file)
index 0000000..8eec909
--- /dev/null
@@ -0,0 +1,2 @@
+# This file is generated by /var/lib/dpkg/info/screen.postinst upon package configuration
+d /run/screen 1777 root utmp
diff --git a/ucf.conf b/ucf.conf
new file mode 100644 (file)
index 0000000..cb4f02c
--- /dev/null
+++ b/ucf.conf
@@ -0,0 +1,39 @@
+#
+# This file is a bourne shell snippet, and is sourced by the
+# ucf script for configuration.
+#
+
+# Debugging information: The default value is 0 (no debugging
+# information is printed). To change the default behavior, uncomment
+# the following line and set the value to 1.
+#
+# DEBUG=0
+
+# Verbosity: The default value is 0 (quiet). To change the default
+# behavior, uncomment the following line and set the value to 1.
+#
+# VERBOSE=0
+
+
+# The src directory. This is the directory where the historical
+# md5sums for a file are looked for.  Specifically, the historical
+# md5sums are looked for in the subdirectory ${filename}.md5sum.d/
+#
+# conf_source_dir=/some/path/
+
+# Force the installed file to be retained. The default is have this
+# variable unset, which makes the script ask in case of doubt. To
+# change the default behavior, uncomment the following line and set
+# the value to YES
+#
+# conf_force_conffold=YES
+
+# Force the installed file to be overridden. The default is have this
+# variable unset, which makes the script ask in case of doubt. To
+# change the default behavior, uncomment the following line and set
+# the value to YES
+#
+# conf_force_conffnew=YES
+
+# Please note that only one of conf_force_conffold and
+# conf_force_conffnew should be set.
diff --git a/udev/udev.conf b/udev/udev.conf
new file mode 100644 (file)
index 0000000..07d7f0c
--- /dev/null
@@ -0,0 +1,11 @@
+# see udev.conf(5) for details
+#
+# udevd is also started in the initrd.  When this file is modified you might
+# also want to rebuild the initrd, so that it will include the modified configuration.
+
+#udev_log=info
+#children_max=
+#exec_delay=
+#event_timeout=180
+#timeout_signal=SIGKILL
+#resolve_names=early
diff --git a/ufw/applications.d/bind9 b/ufw/applications.d/bind9
new file mode 100644 (file)
index 0000000..6cd6fca
--- /dev/null
@@ -0,0 +1,5 @@
+[Bind9]
+title=Internet Domain Name Server
+description=The Berkeley Internet Name Domain (BIND) implements an Internet domain name server.
+ports=53
+
diff --git a/ufw/applications.d/openssh-server b/ufw/applications.d/openssh-server
new file mode 100644 (file)
index 0000000..9bbe906
--- /dev/null
@@ -0,0 +1,4 @@
+[OpenSSH]
+title=Secure shell server, an rshd replacement
+description=OpenSSH is a free implementation of the Secure Shell protocol.
+ports=22/tcp
diff --git a/ufw/applications.d/postfix b/ufw/applications.d/postfix
new file mode 100644 (file)
index 0000000..e612ec9
--- /dev/null
@@ -0,0 +1,14 @@
+[Postfix]
+title=Mail server (SMTP)
+description=Postfix is a high-performance mail transport agent
+ports=25/tcp
+
+[Postfix SMTPS]
+title=Mail server (SMTPS)
+description=Postfix is a high-performance mail transport agent
+ports=465/tcp
+
+[Postfix Submission]
+title=Mail server (Submission)
+description=Postfix is a high-performance mail transport agent
+ports=587/tcp
diff --git a/update-motd.d/10-uname b/update-motd.d/10-uname
new file mode 100755 (executable)
index 0000000..92773ce
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+uname -snrvm
diff --git a/update-motd.d/20-release b/update-motd.d/20-release
new file mode 100755 (executable)
index 0000000..9bfecd5
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if [[ -f /etc/gentoo-release ]] ; then
+    cat /etc/gentoo-release
+elif [[ -x /usr/bin/lsb_release ]] ; then
+    /usr/bin/lsb_release -d | sed -e 's/^[     ]*Description[  ]*:[    ]*//'
+fi
+
+# vim: ts=4 expandtab
diff --git a/update-motd.d/40-tail b/update-motd.d/40-tail
new file mode 100755 (executable)
index 0000000..d1ba165
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if [[ -f /etc/motd.tail ]] ; then
+    cat /etc/motd.tail
+fi
+
+# vim: ts=4 expandtab
diff --git a/update-motd.d/50-fortune b/update-motd.d/50-fortune
new file mode 100755 (executable)
index 0000000..15a3c7a
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+export LC_ALL=de_DE.utf8
+
+if [[ -x /usr/bin/fortune ]] ; then
+    echo
+    /usr/bin/fortune de
+elif [[ -x /usr/games/fortune ]] ; then
+    echo >>"${MOTD}"
+    /usr/games/fortune de
+fi
+
+# vim: ts=4 expandtab
diff --git a/update-motd.d/60-ddate b/update-motd.d/60-ddate
new file mode 100755 (executable)
index 0000000..8a6371e
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if type -p ddate >/dev/null; then
+    ddate
+fi
+
+echo
+
+# vim: ts=4 expandtab
diff --git a/update-motd.d/70-need-reboot b/update-motd.d/70-need-reboot
new file mode 100755 (executable)
index 0000000..e05ff7d
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+CYAN="\033[38;5;14m"
+NORMAL="\033[39m"
+
+if [[ -f /run/reboot-required ]] ; then
+    echo
+    echo -e "❗❗😯💣 The host needs to be rebootet! 💣😯❗❗"
+    echo
+    if [[ -f /run/reboot-required.pkgs ]] ; then
+        echo "The following packages were changed:"
+        for p in $( cat /run/reboot-required.pkgs ) ; do
+            echo -e " * ${CYAN}${p}${NORMAL}"
+        done
+        echo
+    fi
+fi
+
diff --git a/updatedb.conf b/updatedb.conf
new file mode 100644 (file)
index 0000000..8e39843
--- /dev/null
@@ -0,0 +1,4 @@
+PRUNE_BIND_MOUNTS="yes"
+# PRUNENAMES=".git .bzr .hg .svn"
+PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot"
+PRUNEFS="NFS afs autofs binfmt_misc ceph cgroup cgroup2 cifs coda configfs curlftpfs debugfs devfs devpts devtmpfs ecryptfs ftpfs fuse.ceph fuse.cryfs fuse.encfs fuse.glusterfs fuse.gocryptfs fuse.gvfsd-fuse fuse.mfs fuse.rclone fuse.rozofs fuse.sshfs fusectl fusesmb hugetlbfs iso9660 lustre lustre_lite mfs mqueue ncpfs nfs nfs4 ocfs ocfs2 proc pstore rpc_pipefs securityfs shfs smbfs sysfs tmpfs tracefs udev udf usbfs"
diff --git a/valkey/valkey-6377.conf b/valkey/valkey-6377.conf
new file mode 100644 (file)
index 0000000..e405078
--- /dev/null
@@ -0,0 +1,2399 @@
+# Valkey configuration file example.
+#
+# Note that in order to read the configuration file, the server must be
+# started with the file path as first argument:
+#
+# ./valkey-server /path/to/valkey.conf
+
+# Note on units: when memory size is needed, it is possible to specify
+# it in the usual form of 1k 5GB 4M and so forth:
+#
+# 1k => 1000 bytes
+# 1kb => 1024 bytes
+# 1m => 1000000 bytes
+# 1mb => 1024*1024 bytes
+# 1g => 1000000000 bytes
+# 1gb => 1024*1024*1024 bytes
+#
+# units are case insensitive so 1GB 1Gb 1gB are all the same.
+
+################################## INCLUDES ###################################
+
+# Include one or more other config files here.  This is useful if you
+# have a standard template that goes to all servers but also need
+# to customize a few per-server settings.  Include files can include
+# other files, so use this wisely.
+#
+# Note that option "include" won't be rewritten by command "CONFIG REWRITE"
+# from admin or Sentinel. Since the server always uses the last processed
+# line as value of a configuration directive, you'd better put includes
+# at the beginning of this file to avoid overwriting config change at runtime.
+#
+# If instead you are interested in using includes to override configuration
+# options, it is better to use include as the last line.
+#
+# Included paths may contain wildcards. All files matching the wildcards will
+# be included in alphabetical order.
+# Note that if an include path contains a wildcards but no files match it when
+# the server is started, the include statement will be ignored and no error will
+# be emitted.  It is safe, therefore, to include wildcard files from empty
+# directories.
+#
+# include /path/to/local.conf
+# include /path/to/other.conf
+# include /path/to/fragments/*.conf
+#
+
+################################## MODULES #####################################
+
+# Load modules at startup. If the server is not able to load modules
+# it will abort. It is possible to use multiple loadmodule directives.
+#
+# loadmodule /path/to/my_module.so
+# loadmodule /path/to/other_module.so
+# loadmodule /path/to/args_module.so [arg [arg ...]]
+
+################################## NETWORK #####################################
+
+# By default, if no "bind" configuration directive is specified, the server listens
+# for connections from all available network interfaces on the host machine.
+# It is possible to listen to just one or multiple selected interfaces using
+# the "bind" configuration directive, followed by one or more IP addresses.
+# Each address can be prefixed by "-", which means that the server will not fail to
+# start if the address is not available. Being not available only refers to
+# addresses that does not correspond to any network interface. Addresses that
+# are already in use will always fail, and unsupported protocols will always BE
+# silently skipped.
+#
+# Examples:
+#
+# bind 192.168.1.100 10.0.0.1     # listens on two specific IPv4 addresses
+# bind 127.0.0.1 ::1              # listens on loopback IPv4 and IPv6
+# bind * -::*                     # like the default, all available interfaces
+#
+# ~~~ WARNING ~~~ If the computer running the server is directly exposed to the
+# internet, binding to all the interfaces is dangerous and will expose the
+# instance to everybody on the internet. So by default we uncomment the
+# following bind directive, that will force the server to listen only on the
+# IPv4 and IPv6 (if available) loopback interface addresses (this means the server
+# will only be able to accept client connections from the same host that it is
+# running on).
+#
+# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
+# COMMENT OUT THE FOLLOWING LINE.
+#
+# You will also need to set a password unless you explicitly disable protected
+# mode.
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+bind 127.0.0.1 -::1
+
+# By default, outgoing connections (from replica to primary, from Sentinel to
+# instances, cluster bus, etc.) are not bound to a specific local address. In
+# most cases, this means the operating system will handle that based on routing
+# and the interface through which the connection goes out.
+#
+# Using bind-source-addr it is possible to configure a specific address to bind
+# to, which may also affect how the connection gets routed.
+#
+# Example:
+#
+# bind-source-addr 10.0.0.1
+
+# Protected mode is a layer of security protection, in order to avoid that
+# the server instances left open on the internet are accessed and exploited.
+#
+# When protected mode is on and the default user has no password, the server
+# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address
+# (::1) or Unix domain sockets.
+#
+# By default protected mode is enabled. You should disable it only if
+# you are sure you want clients from other hosts to connect to the server
+# even if no authentication is configured.
+protected-mode yes
+
+# The server uses default hardened security configuration directives to reduce the
+# attack surface on innocent users. Therefore, several sensitive configuration
+# directives are immutable, and some potentially-dangerous commands are blocked.
+#
+# Configuration directives that control files that the server writes to (e.g., 'dir'
+# and 'dbfilename') and that aren't usually modified during runtime
+# are protected by making them immutable.
+#
+# Commands that can increase the attack surface of the server and that aren't usually
+# called by users are blocked by default.
+#
+# These can be exposed to either all connections or just local ones by setting
+# each of the configs listed below to either of these values:
+#
+# no    - Block for any connection (remain immutable)
+# yes   - Allow for any connection (no protection)
+# local - Allow only for local connections. Ones originating from the
+#         IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets.
+#
+# enable-protected-configs no
+# enable-debug-command no
+# enable-module-command no
+
+# Accept connections on the specified port, default is 6379 (IANA #815344).
+# If port 0 is specified the server will not listen on a TCP socket.
+port 6377
+
+# TCP listen() backlog.
+#
+# In high requests-per-second environments you need a high backlog in order
+# to avoid slow clients connection issues. Note that the Linux kernel
+# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
+# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
+# in order to get the desired effect.
+tcp-backlog 511
+
+# Unix socket.
+#
+# Specify the path for the Unix socket that will be used to listen for
+# incoming connections. There is no default, so the server will not listen
+# on a unix socket when not specified.
+#
+# unixsocket /run/valkey/valkey-server.sock
+# unixsocketgroup wheel
+# unixsocketperm 700
+# unixsocket /run/valkey/valkey-server-6377.sock
+# unixsocketgroup valkey
+# unixsocketperm 770
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# TCP keepalive.
+#
+# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
+# of communication. This is useful for two reasons:
+#
+# 1) Detect dead peers.
+# 2) Force network equipment in the middle to consider the connection to be
+#    alive.
+#
+# On Linux, the specified value (in seconds) is the period used to send ACKs.
+# Note that to close the connection the double of the time is needed.
+# On other kernels the period depends on the kernel configuration.
+tcp-keepalive 300
+
+# Apply OS-specific mechanism to mark the listening socket with the specified
+# ID, to support advanced routing and filtering capabilities.
+#
+# On Linux, the ID represents a connection mark.
+# On FreeBSD, the ID represents a socket cookie ID.
+# On OpenBSD, the ID represents a route table ID.
+#
+# The default value is 0, which implies no marking is required.
+# socket-mark-id 0
+
+################################# TLS/SSL #####################################
+
+# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration
+# directive can be used to define TLS-listening ports. To enable TLS on the
+# default port, use:
+#
+# port 0
+# tls-port 6379
+
+# Configure a X.509 certificate and private key to use for authenticating the
+# server to connected clients, primaries or cluster peers.  These files should be
+# PEM formatted.
+#
+# tls-cert-file valkey.crt
+# tls-key-file valkey.key
+#
+# If the key file is encrypted using a passphrase, it can be included here
+# as well.
+#
+# tls-key-file-pass secret
+
+# Normally the server uses the same certificate for both server functions (accepting
+# connections) and client functions (replicating from a primary, establishing
+# cluster bus connections, etc.).
+#
+# Sometimes certificates are issued with attributes that designate them as
+# client-only or server-only certificates. In that case it may be desired to use
+# different certificates for incoming (server) and outgoing (client)
+# connections. To do that, use the following directives:
+#
+# tls-client-cert-file client.crt
+# tls-client-key-file client.key
+#
+# If the key file is encrypted using a passphrase, it can be included here
+# as well.
+#
+# tls-client-key-file-pass secret
+
+# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange,
+# required by older versions of OpenSSL (<3.0). Newer versions do not require
+# this configuration and recommend against it.
+#
+# tls-dh-params-file valkey.dh
+
+# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL
+# clients and peers. The server requires an explicit configuration of at least one
+# of these, and will not implicitly use the system wide configuration.
+#
+# tls-ca-cert-file ca.crt
+# tls-ca-cert-dir /etc/ssl/certs
+
+# By default, clients (including replica servers) on a TLS port are required
+# to authenticate using valid client side certificates.
+#
+# If "no" is specified, client certificates are not required and not accepted.
+# If "optional" is specified, client certificates are accepted and must be
+# valid if provided, but are not required.
+#
+# tls-auth-clients no
+# tls-auth-clients optional
+
+# By default, a replica does not attempt to establish a TLS connection
+# with its primary.
+#
+# Use the following directive to enable TLS on replication links.
+#
+# tls-replication yes
+
+# By default, the cluster bus uses a plain TCP connection. To enable
+# TLS for the bus protocol, use the following directive:
+#
+# tls-cluster yes
+
+# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended
+# that older formally deprecated versions are kept disabled to reduce the attack surface.
+# You can explicitly specify TLS versions to support.
+# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2",
+# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination.
+# To enable only TLSv1.2 and TLSv1.3, use:
+#
+# tls-protocols "TLSv1.2 TLSv1.3"
+
+# Configure allowed ciphers.  See the ciphers(1ssl) manpage for more information
+# about the syntax of this string.
+#
+# Note: this configuration applies only to <= TLSv1.2.
+#
+# tls-ciphers DEFAULT:!MEDIUM
+
+# Configure allowed TLSv1.3 ciphersuites.  See the ciphers(1ssl) manpage for more
+# information about the syntax of this string, and specifically for TLSv1.3
+# ciphersuites.
+#
+# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256
+
+# When choosing a cipher, use the server's preference instead of the client
+# preference. By default, the server follows the client's preference.
+#
+# tls-prefer-server-ciphers yes
+
+# By default, TLS session caching is enabled to allow faster and less expensive
+# reconnections by clients that support it. Use the following directive to disable
+# caching.
+#
+# tls-session-caching no
+
+# Change the default number of TLS sessions cached. A zero value sets the cache
+# to unlimited size. The default size is 20480.
+#
+# tls-session-cache-size 5000
+
+# Change the default timeout of cached TLS sessions. The default timeout is 300
+# seconds.
+#
+# tls-session-cache-timeout 60
+
+################################# GENERAL #####################################
+
+# By default the server does not run as a daemon. Use 'yes' if you need it.
+# Note that the server will write a pid file in /var/run/valkey.pid when daemonized.
+# When the server is supervised by upstart or systemd, this parameter has no impact.
+daemonize yes
+
+# If you run the server from upstart or systemd, the server can interact with your
+# supervision tree. Options:
+#   supervised no      - no supervision interaction
+#   supervised upstart - signal upstart by putting the server into SIGSTOP mode
+#                        requires "expect stop" in your upstart job config
+#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+#                        on startup, and updating the server status on a regular
+#                        basis.
+#   supervised auto    - detect upstart or systemd method based on
+#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+#       They do not enable continuous pings back to your supervisor.
+#
+# The default is "no". To run under upstart/systemd, you can simply uncomment
+# the line below:
+#
+# supervised auto
+
+# If a pid file is specified, the server writes it where specified at startup
+# and removes it at exit.
+#
+# When the server runs non daemonized, no pid file is created if none is
+# specified in the configuration. When the server is daemonized, the pid file
+# is used even if not specified, defaulting to "/var/run/valkey.pid".
+#
+# Creating a pid file is best effort: if the server is not able to create it
+# nothing bad happens, the server will start and run normally.
+#
+# Note that on modern Linux systems "/run/valkey.pid" is more conforming
+# and should be used instead.
+pidfile /run/valkey/valkey-server-6377.pid
+
+# Specify the server verbosity level.
+# This can be one of:
+# debug (a lot of information, useful for development/testing)
+# verbose (many rarely useful info, but not a mess like the debug level)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+# nothing (nothing is logged)
+loglevel notice
+
+# Specify the log file name. Also the empty string can be used to force
+# the server to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile /var/log/valkey/valkey-server-6377.log
+
+# To enable logging to the system logger, just set 'syslog-enabled' to yes,
+# and optionally update the other syslog parameters to suit your needs.
+# syslog-enabled no
+
+# Specify the syslog identity.
+# syslog-ident valkey
+
+# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+# syslog-facility local0
+
+# To disable the built in crash log, which will possibly produce cleaner core
+# dumps when they are needed, uncomment the following:
+#
+# crash-log-enabled no
+
+# To disable the fast memory check that's run as part of the crash log, which
+# will possibly let the server terminate sooner, uncomment the following:
+#
+# crash-memcheck-enabled no
+
+# Set the number of databases. The default database is DB 0, you can select
+# a different one on a per-connection basis using SELECT <dbid> where
+# dbid is a number between 0 and 'databases'-1
+databases 16
+
+# By default the server shows an ASCII art logo only when started to log to the
+# standard output and if the standard output is a TTY and syslog logging is
+# disabled. Basically this means that normally a logo is displayed only in
+# interactive sessions.
+#
+# However it is possible to force the pre-4.0 behavior and always show a
+# ASCII art logo in startup logs by setting the following option to yes.
+always-show-logo no
+
+# User data, including keys, values, client names, and ACL usernames, can be
+# logged as part of assertions and other error cases. To prevent sensitive user
+# information, such as PII, from being recorded in the server log file, this
+# user data is hidden from the log by default. If you need to log user data for
+# debugging or troubleshooting purposes, you can disable this feature by
+# changing the config value to no.
+hide-user-data-from-log yes
+
+# By default, the server modifies the process title (as seen in 'top' and 'ps') to
+# provide some runtime information. It is possible to disable this and leave
+# the process name as executed by setting the following to no.
+set-proc-title yes
+
+# When changing the process title, the server uses the following template to construct
+# the modified title.
+#
+# Template variables are specified in curly brackets. The following variables are
+# supported:
+#
+# {title}           Name of process as executed if parent, or type of child process.
+# {listen-addr}     Bind address or '*' followed by TCP or TLS port listening on, or
+#                   Unix socket if only that's available.
+# {server-mode}     Special mode, i.e. "[sentinel]" or "[cluster]".
+# {port}            TCP port listening on, or 0.
+# {tls-port}        TLS port listening on, or 0.
+# {unixsocket}      Unix domain socket listening on, or "".
+# {config-file}     Name of configuration file used.
+#
+proc-title-template "{title} {listen-addr} {server-mode}"
+
+# Set the local environment which is used for string comparison operations, and 
+# also affect the performance of Lua scripts. Empty String indicates the locale 
+# is derived from the environment variables.
+locale-collate ""
+
+# Valkey is largely compatible with Redis OSS, apart from a few cases where
+# Valkey identifies itself itself as "Valkey" rather than "Redis". Extended
+# Redis OSS compatibility mode makes Valkey pretend to be Redis. Enable this
+# only if you have problems with tools or clients. This is a temporary
+# configuration added in Valkey 8.0 and is scheduled to have no effect in Valkey
+# 9.0 and be completely removed in Valkey 10.0.
+#
+# extended-redis-compatibility no
+
+################################ SNAPSHOTTING  ################################
+
+# Save the DB to disk.
+#
+# save <seconds> <changes> [<seconds> <changes> ...]
+#
+# The server will save the DB if the given number of seconds elapsed and it
+# surpassed the given number of write operations against the DB.
+#
+# Snapshotting can be completely disabled with a single empty string argument
+# as in following example:
+#
+# save ""
+#
+# Unless specified otherwise, by default the server will save the DB:
+#   * After 3600 seconds (an hour) if at least 1 change was performed
+#   * After 300 seconds (5 minutes) if at least 100 changes were performed
+#   * After 60 seconds if at least 10000 changes were performed
+#
+# You can set these explicitly by uncommenting the following line.
+#
+# save 3600 1 300 100 60 10000
+
+# By default the server will stop accepting writes if RDB snapshots are enabled
+# (at least one save point) and the latest background save failed.
+# This will make the user aware (in a hard way) that data is not persisting
+# on disk properly, otherwise chances are that no one will notice and some
+# disaster will happen.
+#
+# If the background saving process will start working again, the server will
+# automatically allow writes again.
+#
+# However if you have setup your proper monitoring of the server
+# and persistence, you may want to disable this feature so that the server will
+# continue to work as usual even if there are problems with disk,
+# permissions, and so forth.
+stop-writes-on-bgsave-error yes
+
+# Compress string objects using LZF when dump .rdb databases?
+# By default compression is enabled as it's almost always a win.
+# If you want to save some CPU in the saving child set it to 'no' but
+# the dataset will likely be bigger if you have compressible values or keys.
+rdbcompression yes
+
+# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
+# This makes the format more resistant to corruption but there is a performance
+# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
+# for maximum performances.
+#
+# RDB files created with checksum disabled have a checksum of zero that will
+# tell the loading code to skip the check.
+rdbchecksum yes
+
+# Enables or disables full sanitization checks for ziplist and listpack etc when
+# loading an RDB or RESTORE payload. This reduces the chances of a assertion or
+# crash later on while processing commands.
+# Options:
+#   no         - Never perform full sanitization
+#   yes        - Always perform full sanitization
+#   clients    - Perform full sanitization only for user connections.
+#                Excludes: RDB files, RESTORE commands received from the primary
+#                connection, and client connections which have the
+#                skip-sanitize-payload ACL flag.
+# The default should be 'clients' but since it currently affects cluster
+# resharding via MIGRATE, it is temporarily set to 'no' by default.
+#
+# sanitize-dump-payload no
+
+# The filename where to dump the DB
+dbfilename dump-6377.rdb
+
+# Remove RDB files used by replication in instances without persistence
+# enabled. By default this option is disabled, however there are environments
+# where for regulations or other security concerns, RDB files persisted on
+# disk by primaries in order to feed replicas, or stored on disk by replicas
+# in order to load them for the initial synchronization, should be deleted
+# ASAP. Note that this option ONLY WORKS in instances that have both AOF
+# and RDB persistence disabled, otherwise is completely ignored.
+#
+# An alternative (and sometimes better) way to obtain the same effect is
+# to use diskless replication on both primary and replicas instances. However
+# in the case of replicas, diskless is not always an option.
+rdb-del-sync-files no
+
+# The working directory.
+#
+# The DB will be written inside this directory, with the filename specified
+# above using the 'dbfilename' configuration directive.
+#
+# The Append Only File will also be created inside this directory.
+#
+# The Cluster config file is written relative this directory, if the
+# 'cluster-config-file' configuration directive is a relative path.
+#
+# Note that you must specify a directory here, not a file name.
+dir /var/lib/valkey
+
+################################# REPLICATION #################################
+
+# Master-Replica replication. Use replicaof to make a server a copy of
+# another server. A few things to understand ASAP about replication.
+#
+#   +------------------+      +---------------+
+#   |      Master      | ---> |    Replica    |
+#   | (receive writes) |      |  (exact copy) |
+#   +------------------+      +---------------+
+#
+# 1) Replication is asynchronous, but you can configure a primary to
+#    stop accepting writes if it appears to be not connected with at least
+#    a given number of replicas.
+# 2) Replicas are able to perform a partial resynchronization with the
+#    primary if the replication link is lost for a relatively small amount of
+#    time. You may want to configure the replication backlog size (see the next
+#    sections of this file) with a sensible value depending on your needs.
+# 3) Replication is automatic and does not need user intervention. After a
+#    network partition replicas automatically try to reconnect to primaries
+#    and resynchronize with them.
+#
+# replicaof <primary_ip> <primary_port>
+
+# If the primary is password protected (using the "requirepass" configuration
+# directive below) it is possible to tell the replica to authenticate before
+# starting the replication synchronization process, otherwise the primary will
+# refuse the replica request.
+#
+# primaryauth <primary-password>
+#
+# However this is not enough if you are using ACLs
+# and the default user is not capable of running the PSYNC
+# command and/or other commands needed for replication. In this case it's
+# better to configure a special user to use with replication, and specify the
+# primaryuser configuration as such:
+#
+# primaryuser <username>
+#
+# When primaryuser is specified, the replica will authenticate against its
+# primary using the new AUTH form: AUTH <username> <password>.
+
+# When a replica loses its connection with the primary, or when the replication
+# is still in progress, the replica can act in two different ways:
+#
+# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will
+#    still reply to client requests, possibly with out of date data, or the
+#    data set may just be empty if this is the first synchronization.
+#
+# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error
+#    "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'"
+#    to all data access commands, excluding commands such as:
+#    INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
+#    UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST,
+#    HOST and LATENCY.
+#
+replica-serve-stale-data yes
+
+# You can configure a replica instance to accept writes or not. Writing against
+# a replica instance may be useful to store some ephemeral data (because data
+# written on a replica will be easily deleted after resync with the primary) but
+# may also cause problems if clients are writing to it because of a
+# misconfiguration.
+#
+# By default, replicas are read-only.
+#
+# Note: read only replicas are not designed to be exposed to untrusted clients
+# on the internet. It's just a protection layer against misuse of the instance.
+# Still a read only replica exports by default all the administrative commands
+# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
+# security of read only replicas using 'rename-command' to shadow all the
+# administrative / dangerous commands.
+replica-read-only yes
+
+# Replication SYNC strategy: disk or socket.
+#
+# New replicas and reconnecting replicas that are not able to continue the
+# replication process just receiving differences, need to do what is called a
+# "full synchronization". An RDB file is transmitted from the primary to the
+# replicas.
+#
+# The transmission can happen in two different ways:
+#
+# 1) Disk-backed: The primary creates a new process that writes the RDB
+#                 file on disk. Later the file is transferred by the parent
+#                 process to the replicas incrementally.
+# 2) Diskless: The primary creates a new process that directly writes the
+#              RDB file to replica sockets, without touching the disk at all.
+#
+# With disk-backed replication, while the RDB file is generated, more replicas
+# can be queued and served with the RDB file as soon as the current child
+# producing the RDB file finishes its work. With diskless replication instead
+# once the transfer starts, new replicas arriving will be queued and a new
+# transfer will start when the current one terminates.
+#
+# When diskless replication is used, the primary waits a configurable amount of
+# time (in seconds) before starting the transfer in the hope that multiple
+# replicas will arrive and the transfer can be parallelized.
+#
+# With slow disks and fast (large bandwidth) networks, diskless replication
+# works better.
+repl-diskless-sync yes
+
+# When diskless replication is enabled, it is possible to configure the delay
+# the server waits in order to spawn the child that transfers the RDB via socket
+# to the replicas.
+#
+# This is important since once the transfer starts, it is not possible to serve
+# new replicas arriving, that will be queued for the next RDB transfer, so the
+# server waits a delay in order to let more replicas arrive.
+#
+# The delay is specified in seconds, and by default is 5 seconds. To disable
+# it entirely just set it to 0 seconds and the transfer will start ASAP.
+repl-diskless-sync-delay 5
+
+# When diskless replication is enabled with a delay, it is possible to let
+# the replication start before the maximum delay is reached if the maximum
+# number of replicas expected have connected. Default of 0 means that the
+# maximum is not defined and the server will wait the full delay.
+repl-diskless-sync-max-replicas 0
+
+# -----------------------------------------------------------------------------
+# WARNING: Since in this setup the replica does not immediately store an RDB on
+# disk, it may cause data loss during failovers. RDB diskless load + server
+# modules not handling I/O reads may cause the server to abort in case of I/O errors
+# during the initial synchronization stage with the primary.
+# -----------------------------------------------------------------------------
+#
+# Replica can load the RDB it reads from the replication link directly from the
+# socket, or store the RDB to a file and read that file after it was completely
+# received from the primary.
+#
+# In many cases the disk is slower than the network, and storing and loading
+# the RDB file may increase replication time (and even increase the primary's
+# Copy on Write memory and replica buffers).
+# However, when parsing the RDB file directly from the socket, in order to avoid
+# data loss it's only safe to flush the current dataset when the new dataset is
+# fully loaded in memory, resulting in higher memory usage.
+# For this reason we have the following options:
+#
+# "disabled"    - Don't use diskless load (store the rdb file to the disk first)
+# "swapdb"      - Keep current db contents in RAM while parsing the data directly
+#                 from the socket. Replicas in this mode can keep serving current
+#                 dataset while replication is in progress, except for cases where
+#                 they can't recognize primary as having a data set from same
+#                 replication history.
+#                 Note that this requires sufficient memory, if you don't have it,
+#                 you risk an OOM kill.
+# "on-empty-db" - Use diskless load only when current dataset is empty. This is 
+#                 safer and avoid having old and new dataset loaded side by side
+#                 during replication.
+repl-diskless-load disabled
+
+# This dual channel replication sync feature optimizes the full synchronization process 
+# between a primary and its replicas. When enabled, it reduces both memory and CPU load 
+# on the primary server.
+#
+# How it works:
+# 1. During full sync, instead of accumulating replication data on the primary server,
+#    the data is sent directly to the syncing replica.
+# 2. The primary's background save (bgsave) process streams the RDB snapshot directly
+#    to the replica over a separate connection.
+# 
+# Tradeoff:
+# While this approach reduces load on the primary, it shifts the burden of storing 
+# the replication buffer to the replica. This means the replica must have sufficient 
+# memory to accommodate the buffer during synchronization. However, this tradeoff is 
+# generally beneficial as it prevents potential performance degradation on the primary 
+# server, which is typically handling more critical operations.
+#
+# When toggling this configuration on or off during an ongoing synchronization process,
+# it does not change the already running sync method. The new configuration will take
+# effect only for subsequent synchronization processes.
+
+dual-channel-replication-enabled no
+
+# Master send PINGs to its replicas in a predefined interval. It's possible to
+# change this interval with the repl_ping_replica_period option. The default
+# value is 10 seconds.
+#
+# repl-ping-replica-period 10
+
+# The following option sets the replication timeout for:
+#
+# 1) Bulk transfer I/O during SYNC, from the point of view of replica.
+# 2) Master timeout from the point of view of replicas (data, pings).
+# 3) Replica timeout from the point of view of primaries (REPLCONF ACK pings).
+#
+# It is important to make sure that this value is greater than the value
+# specified for repl-ping-replica-period otherwise a timeout will be detected
+# every time there is low traffic between the primary and the replica. The default
+# value is 60 seconds.
+#
+# repl-timeout 60
+
+# Disable TCP_NODELAY on the replica socket after SYNC?
+#
+# If you select "yes", the server will use a smaller number of TCP packets and
+# less bandwidth to send data to replicas. But this can add a delay for
+# the data to appear on the replica side, up to 40 milliseconds with
+# Linux kernels using a default configuration.
+#
+# If you select "no" the delay for data to appear on the replica side will
+# be reduced but more bandwidth will be used for replication.
+#
+# By default we optimize for low latency, but in very high traffic conditions
+# or when the primary and replicas are many hops away, turning this to "yes" may
+# be a good idea.
+repl-disable-tcp-nodelay no
+
+# Set the replication backlog size. The backlog is a buffer that accumulates
+# replica data when replicas are disconnected for some time, so that when a
+# replica wants to reconnect again, often a full resync is not needed, but a
+# partial resync is enough, just passing the portion of data the replica
+# missed while disconnected.
+#
+# The bigger the replication backlog, the longer the replica can endure the
+# disconnect and later be able to perform a partial resynchronization.
+#
+# The backlog is only allocated if there is at least one replica connected.
+#
+# repl-backlog-size 10mb
+
+# After a primary has no connected replicas for some time, the backlog will be
+# freed. The following option configures the amount of seconds that need to
+# elapse, starting from the time the last replica disconnected, for the backlog
+# buffer to be freed.
+#
+# Note that replicas never free the backlog for timeout, since they may be
+# promoted to primaries later, and should be able to correctly "partially
+# resynchronize" with other replicas: hence they should always accumulate backlog.
+#
+# A value of 0 means to never release the backlog.
+#
+# repl-backlog-ttl 3600
+
+# The replica priority is an integer number published by the server in the INFO
+# output. It is used by Sentinel in order to select a replica to promote
+# into a primary if the primary is no longer working correctly.
+#
+# A replica with a low priority number is considered better for promotion, so
+# for instance if there are three replicas with priority 10, 100, 25 Sentinel
+# will pick the one with priority 10, that is the lowest.
+#
+# However a special priority of 0 marks the replica as not able to perform the
+# role of primary, so a replica with priority of 0 will never be selected by
+# Sentinel for promotion.
+#
+# By default the priority is 100.
+replica-priority 100
+
+# The propagation error behavior controls how the server will behave when it is
+# unable to handle a command being processed in the replication stream from a primary
+# or processed while reading from an AOF file. Errors that occur during propagation
+# are unexpected, and can cause data inconsistency. 
+#
+# If an application wants to ensure there is no data divergence, this configuration
+# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas'
+# to only panic when a replica encounters an error on the replication stream. One of
+# these two panic values will become the default value in the future once there are
+# sufficient safety mechanisms in place to prevent false positive crashes.
+#
+# propagation-error-behavior ignore
+
+# Replica ignore disk write errors controls the behavior of a replica when it is
+# unable to persist a write command received from its primary to disk. By default,
+# this configuration is set to 'no' and will crash the replica in this condition.
+# It is not recommended to change this default.
+#
+# replica-ignore-disk-write-errors no
+
+# -----------------------------------------------------------------------------
+# By default, Sentinel includes all replicas in its reports. A replica
+# can be excluded from Sentinel's announcements. An unannounced replica
+# will be ignored by the 'sentinel replicas <primary>' command and won't be
+# exposed to Sentinel's clients.
+#
+# This option does not change the behavior of replica-priority. Even with
+# replica-announced set to 'no', the replica can be promoted to primary. To
+# prevent this behavior, set replica-priority to 0.
+#
+# replica-announced yes
+
+# It is possible for a primary to stop accepting writes if there are less than
+# N replicas connected, having a lag less or equal than M seconds.
+#
+# The N replicas need to be in "online" state.
+#
+# The lag in seconds, that must be <= the specified value, is calculated from
+# the last ping received from the replica, that is usually sent every second.
+#
+# This option does not GUARANTEE that N replicas will accept the write, but
+# will limit the window of exposure for lost writes in case not enough replicas
+# are available, to the specified number of seconds.
+#
+# For example to require at least 3 replicas with a lag <= 10 seconds use:
+#
+# min-replicas-to-write 3
+# min-replicas-max-lag 10
+#
+# Setting one or the other to 0 disables the feature.
+#
+# By default min-replicas-to-write is set to 0 (feature disabled) and
+# min-replicas-max-lag is set to 10.
+
+# A primary is able to list the address and port of the attached
+# replicas in different ways. For example the "INFO replication" section
+# offers this information, which is used, among other tools, by
+# Sentinel in order to discover replica instances.
+# Another place where this info is available is in the output of the
+# "ROLE" command of a primary.
+#
+# The listed IP address and port normally reported by a replica is
+# obtained in the following way:
+#
+#   IP: The address is auto detected by checking the peer address
+#   of the socket used by the replica to connect with the primary.
+#
+#   Port: The port is communicated by the replica during the replication
+#   handshake, and is normally the port that the replica is using to
+#   listen for connections.
+#
+# However when port forwarding or Network Address Translation (NAT) is
+# used, the replica may actually be reachable via different IP and port
+# pairs. The following two options can be used by a replica in order to
+# report to its primary a specific set of IP and port, so that both INFO
+# and ROLE will report those values.
+#
+# There is no need to use both the options if you need to override just
+# the port or the IP address.
+#
+# replica-announce-ip 5.5.5.5
+# replica-announce-port 1234
+
+############################### KEYS TRACKING #################################
+
+# The client side caching of values is assisted via server-side support.
+# This is implemented using an invalidation table that remembers, using
+# a radix key indexed by key name, what clients have which keys. In turn
+# this is used in order to send invalidation messages to clients. Please
+# check this page to understand more about the feature:
+#
+#   https://valkey.io/topics/client-side-caching
+#
+# When tracking is enabled for a client, all the read only queries are assumed
+# to be cached: this will force the server to store information in the invalidation
+# table. When keys are modified, such information is flushed away, and
+# invalidation messages are sent to the clients. However if the workload is
+# heavily dominated by reads, the server could use more and more memory in order
+# to track the keys fetched by many clients.
+#
+# For this reason it is possible to configure a maximum fill value for the
+# invalidation table. By default it is set to 1M of keys, and once this limit
+# is reached, the server will start to evict keys in the invalidation table
+# even if they were not modified, just to reclaim memory: this will in turn
+# force the clients to invalidate the cached values. Basically the table
+# maximum size is a trade off between the memory you want to spend server
+# side to track information about who cached what, and the ability of clients
+# to retain cached objects in memory.
+#
+# If you set the value to 0, it means there are no limits, and the server will
+# retain as many keys as needed in the invalidation table.
+# In the "stats" INFO section, you can find information about the number of
+# keys in the invalidation table at every given moment.
+#
+# Note: when key tracking is used in broadcasting mode, no memory is used
+# in the server side so this setting is useless.
+#
+# tracking-table-max-keys 1000000
+
+################################## SECURITY ###################################
+
+# Warning: since the server is pretty fast, an outside user can try up to
+# 1 million passwords per second against a modern box. This means that you
+# should use very strong passwords, otherwise they will be very easy to break.
+# Note that because the password is really a shared secret between the client
+# and the server, and should not be memorized by any human, the password
+# can be easily a long string from /dev/urandom or whatever, so by using a
+# long and unguessable password no brute force attack will be possible.
+
+# ACL users are defined in the following format:
+#
+#   user <username> ... acl rules ...
+#
+# For example:
+#
+#   user worker +@list +@connection ~jobs:* on >ffa9203c493aa99
+#
+# The special username "default" is used for new connections. If this user
+# has the "nopass" rule, then new connections will be immediately authenticated
+# as the "default" user without the need of any password provided via the
+# AUTH command. Otherwise if the "default" user is not flagged with "nopass"
+# the connections will start in not authenticated state, and will require
+# AUTH (or the HELLO command AUTH option) in order to be authenticated and
+# start to work.
+#
+# The ACL rules that describe what a user can do are the following:
+#
+#  on           Enable the user: it is possible to authenticate as this user.
+#  off          Disable the user: it's no longer possible to authenticate
+#               with this user, however the already authenticated connections
+#               will still work.
+#  skip-sanitize-payload    RESTORE dump-payload sanitization is skipped.
+#  sanitize-payload         RESTORE dump-payload is sanitized (default).
+#  +<command>   Allow the execution of that command.
+#               May be used with `|` for allowing subcommands (e.g "+config|get")
+#  -<command>   Disallow the execution of that command.
+#               May be used with `|` for blocking subcommands (e.g "-config|set")
+#  +@<category> Allow the execution of all the commands in such category
+#               with valid categories are like @admin, @set, @sortedset, ...
+#               and so forth, see the full list in the server.c file where
+#               the server command table is described and defined.
+#               The special category @all means all the commands, but currently
+#               present in the server, and that will be loaded in the future
+#               via modules.
+#  +<command>|first-arg  Allow a specific first argument of an otherwise
+#                        disabled command. It is only supported on commands with
+#                        no sub-commands, and is not allowed as negative form
+#                        like -SELECT|1, only additive starting with "+". This
+#                        feature is deprecated and may be removed in the future.
+#  allcommands  Alias for +@all. Note that it implies the ability to execute
+#               all the future commands loaded via the modules system.
+#  nocommands   Alias for -@all.
+#  ~<pattern>   Add a pattern of keys that can be mentioned as part of
+#               commands. For instance ~* allows all the keys. The pattern
+#               is a glob-style pattern like the one of KEYS.
+#               It is possible to specify multiple patterns.
+# %R~<pattern>  Add key read pattern that specifies which keys can be read 
+#               from.
+# %W~<pattern>  Add key write pattern that specifies which keys can be
+#               written to. 
+#  allkeys      Alias for ~*
+#  resetkeys    Flush the list of allowed keys patterns.
+#  &<pattern>   Add a glob-style pattern of Pub/Sub channels that can be
+#               accessed by the user. It is possible to specify multiple channel
+#               patterns.
+#  allchannels  Alias for &*
+#  resetchannels            Flush the list of allowed channel patterns.
+#  ><password>  Add this password to the list of valid password for the user.
+#               For example >mypass will add "mypass" to the list.
+#               This directive clears the "nopass" flag (see later).
+#  <<password>  Remove this password from the list of valid passwords.
+#  nopass       All the set passwords of the user are removed, and the user
+#               is flagged as requiring no password: it means that every
+#               password will work against this user. If this directive is
+#               used for the default user, every new connection will be
+#               immediately authenticated with the default user without
+#               any explicit AUTH command required. Note that the "resetpass"
+#               directive will clear this condition.
+#  resetpass    Flush the list of allowed passwords. Moreover removes the
+#               "nopass" status. After "resetpass" the user has no associated
+#               passwords and there is no way to authenticate without adding
+#               some password (or setting it as "nopass" later).
+#  reset        Performs the following actions: resetpass, resetkeys, resetchannels,
+#               allchannels (if acl-pubsub-default is set), off, clearselectors, -@all.
+#               The user returns to the same state it has immediately after its creation.
+# (<options>)   Create a new selector with the options specified within the
+#               parentheses and attach it to the user. Each option should be 
+#               space separated. The first character must be ( and the last 
+#               character must be ).
+# clearselectors            Remove all of the currently attached selectors. 
+#                           Note this does not change the "root" user permissions,
+#                           which are the permissions directly applied onto the
+#                           user (outside the parentheses).
+#
+# ACL rules can be specified in any order: for instance you can start with
+# passwords, then flags, or key patterns. However note that the additive
+# and subtractive rules will CHANGE MEANING depending on the ordering.
+# For instance see the following example:
+#
+#   user alice on +@all -DEBUG ~* >somepassword
+#
+# This will allow "alice" to use all the commands with the exception of the
+# DEBUG command, since +@all added all the commands to the set of the commands
+# alice can use, and later DEBUG was removed. However if we invert the order
+# of two ACL rules the result will be different:
+#
+#   user alice on -DEBUG +@all ~* >somepassword
+#
+# Now DEBUG was removed when alice had yet no commands in the set of allowed
+# commands, later all the commands are added, so the user will be able to
+# execute everything.
+#
+# Basically ACL rules are processed left-to-right.
+#
+# The following is a list of command categories and their meanings:
+# * keyspace - Writing or reading from keys, databases, or their metadata 
+#     in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE,
+#     KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace,
+#     key or metadata will also have `write` category. Commands that only read
+#     the keyspace, key or metadata will have the `read` category.
+# * read - Reading from keys (values or metadata). Note that commands that don't
+#     interact with keys, will not have either `read` or `write`.
+# * write - Writing to keys (values or metadata)
+# * admin - Administrative commands. Normal applications will never need to use
+#     these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc.
+# * dangerous - Potentially dangerous (each should be considered with care for
+#     various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS,
+#     CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc.
+# * connection - Commands affecting the connection or other connections.
+#     This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc.
+# * blocking - Potentially blocking the connection until released by another
+#     command.
+# * fast - Fast O(1) commands. May loop on the number of arguments, but not the
+#     number of elements in the key.
+# * slow - All commands that are not Fast.
+# * pubsub - PUBLISH / SUBSCRIBE related
+# * transaction - WATCH / MULTI / EXEC related commands.
+# * scripting - Scripting related.
+# * set - Data type: sets related.
+# * sortedset - Data type: zsets related.
+# * list - Data type: lists related.
+# * hash - Data type: hashes related.
+# * string - Data type: strings related.
+# * bitmap - Data type: bitmaps related.
+# * hyperloglog - Data type: hyperloglog related.
+# * geo - Data type: geo related.
+# * stream - Data type: streams related.
+#
+# For more information about ACL configuration please refer to
+# the Valkey web site at https://valkey.io/topics/acl
+
+# ACL LOG
+#
+# The ACL Log tracks failed commands and authentication events associated
+# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked
+# by ACLs. The ACL Log is stored in memory. You can reclaim memory with
+# ACL LOG RESET. Define the maximum entry length of the ACL Log below.
+acllog-max-len 128
+
+# Using an external ACL file
+#
+# Instead of configuring users here in this file, it is possible to use
+# a stand-alone file just listing users. The two methods cannot be mixed:
+# if you configure users here and at the same time you activate the external
+# ACL file, the server will refuse to start.
+#
+# The format of the external ACL user file is exactly the same as the
+# format that is used inside valkey.conf to describe users.
+#
+# aclfile /etc/valkey/users.acl
+
+# IMPORTANT NOTE: "requirepass" is just a compatibility
+# layer on top of the new ACL system. The option effect will be just setting
+# the password for the default user. Clients will still authenticate using
+# AUTH <password> as usually, or more explicitly with AUTH default <password>
+# if they follow the new protocol: both will work.
+#
+# The requirepass is not compatible with aclfile option and the ACL LOAD
+# command, these will cause requirepass to be ignored.
+#
+# requirepass foobared
+
+# The default Pub/Sub channels permission for new users is controlled by the
+# acl-pubsub-default configuration directive, which accepts one of these values:
+#
+# allchannels: grants access to all Pub/Sub channels
+# resetchannels: revokes access to all Pub/Sub channels
+#
+# acl-pubsub-default defaults to 'resetchannels' permission.
+#
+# acl-pubsub-default resetchannels
+
+# Command renaming (DEPRECATED).
+#
+# ------------------------------------------------------------------------
+# WARNING: avoid using this option if possible. Instead use ACLs to remove
+# commands from the default user, and put them only in some admin user you
+# create for administrative purposes.
+# ------------------------------------------------------------------------
+#
+# It is possible to change the name of dangerous commands in a shared
+# environment. For instance the CONFIG command may be renamed into something
+# hard to guess so that it will still be available for internal-use tools
+# but not available for general clients.
+#
+# Example:
+#
+# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
+#
+# It is also possible to completely kill a command by renaming it into
+# an empty string:
+#
+# rename-command CONFIG ""
+#
+# Please note that changing the name of commands that are logged into the
+# AOF file or transmitted to replicas may cause problems.
+
+################################### CLIENTS ####################################
+
+# Set the max number of connected clients at the same time. By default
+# this limit is set to 10000 clients, however if the server is not
+# able to configure the process file limit to allow for the specified limit
+# the max number of allowed clients is set to the current file limit
+# minus 32 (as the server reserves a few file descriptors for internal uses).
+#
+# Once the limit is reached the server will close all the new connections sending
+# an error 'max number of clients reached'.
+#
+# IMPORTANT: With a cluster-enabled setup, the max number of connections is also
+# shared with the cluster bus: every node in the cluster will use two
+# connections, one incoming and another outgoing. It is important to size the
+# limit accordingly in case of very large clusters.
+#
+# maxclients 10000
+
+############################## MEMORY MANAGEMENT ################################
+
+# Set a memory usage limit to the specified amount of bytes.
+# When the memory limit is reached the server will try to remove keys
+# according to the eviction policy selected (see maxmemory-policy).
+#
+# If the server can't remove keys according to the policy, or if the policy is
+# set to 'noeviction', the server will start to reply with errors to commands
+# that would use more memory, like SET, LPUSH, and so on, and will continue
+# to reply to read-only commands like GET.
+#
+# This option is usually useful when using the server as an LRU or LFU cache, or to
+# set a hard memory limit for an instance (using the 'noeviction' policy).
+#
+# WARNING: If you have replicas attached to an instance with maxmemory on,
+# the size of the output buffers needed to feed the replicas are subtracted
+# from the used memory count, so that network problems / resyncs will
+# not trigger a loop where keys are evicted, and in turn the output
+# buffer of replicas is full with DELs of keys evicted triggering the deletion
+# of more keys, and so forth until the database is completely emptied.
+#
+# In short... if you have replicas attached it is suggested that you set a lower
+# limit for maxmemory so that there is some free RAM on the system for replica
+# output buffers (but this is not needed if the policy is 'noeviction').
+#
+# maxmemory <bytes>
+maxmemory 200mb
+
+# MAXMEMORY POLICY: how the server will select what to remove when maxmemory
+# is reached. You can select one from the following behaviors:
+#
+# volatile-lru -> Evict using approximated LRU, only keys with an expire set.
+# allkeys-lru -> Evict any key using approximated LRU.
+# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
+# allkeys-lfu -> Evict any key using approximated LFU.
+# volatile-random -> Remove a random key having an expire set.
+# allkeys-random -> Remove a random key, any key.
+# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
+# noeviction -> Don't evict anything, just return an error on write operations.
+#
+# LRU means Least Recently Used
+# LFU means Least Frequently Used
+#
+# Both LRU, LFU and volatile-ttl are implemented using approximated
+# randomized algorithms.
+#
+# Note: with any of the above policies, when there are no suitable keys for
+# eviction, the server will return an error on write operations that require
+# more memory. These are usually commands that create new keys, add data or
+# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE,
+# SORT (due to the STORE argument), and EXEC (if the transaction includes any
+# command that requires memory).
+#
+# The default is:
+#
+# maxmemory-policy noeviction
+maxmemory-policy noeviction
+
+# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated
+# algorithms (in order to save memory), so you can tune it for speed or
+# accuracy. By default the server will check five keys and pick the one that was
+# used least recently, you can change the sample size using the following
+# configuration directive.
+#
+# The default of 5 produces good enough results. 10 Approximates very closely
+# true LRU but costs more CPU. 3 is faster but not very accurate. The maximum
+# value that can be set is 64.
+#
+# maxmemory-samples 5
+
+# Eviction processing is designed to function well with the default setting.
+# If there is an unusually large amount of write traffic, this value may need to
+# be increased.  Decreasing this value may reduce latency at the risk of
+# eviction processing effectiveness
+#   0 = minimum latency, 10 = default, 100 = process without regard to latency
+#
+# maxmemory-eviction-tenacity 10
+
+# By default a replica will ignore its maxmemory setting
+# (unless it is promoted to primary after a failover or manually). It means
+# that the eviction of keys will be just handled by the primary, sending the
+# DEL commands to the replica as keys evict in the primary side.
+#
+# This behavior ensures that primaries and replicas stay consistent, and is usually
+# what you want, however if your replica is writable, or you want the replica
+# to have a different memory setting, and you are sure all the writes performed
+# to the replica are idempotent, then you may change this default (but be sure
+# to understand what you are doing).
+#
+# Note that since the replica by default does not evict, it may end using more
+# memory than the one set via maxmemory (there are certain buffers that may
+# be larger on the replica, or data structures may sometimes take more memory
+# and so forth). So make sure you monitor your replicas and make sure they
+# have enough memory to never hit a real out-of-memory condition before the
+# primary hits the configured maxmemory setting.
+#
+# replica-ignore-maxmemory yes
+
+# The server reclaims expired keys in two ways: upon access when those keys are
+# found to be expired, and also in background, in what is called the
+# "active expire key". The key space is slowly and interactively scanned
+# looking for expired keys to reclaim, so that it is possible to free memory
+# of keys that are expired and will never be accessed again in a short time.
+#
+# The default effort of the expire cycle will try to avoid having more than
+# ten percent of expired keys still in memory, and will try to avoid consuming
+# more than 25% of total memory and to add latency to the system. However
+# it is possible to increase the expire "effort" that is normally set to
+# "1", to a greater value, up to the value "10". At its maximum value the
+# system will use more CPU, longer cycles (and technically may introduce
+# more latency), and will tolerate less already expired keys still present
+# in the system. It's a tradeoff between memory, CPU and latency.
+#
+# active-expire-effort 1
+
+############################# LAZY FREEING ####################################
+
+# When keys are deleted, the served has historically freed their memory using
+# blocking operations. It means that the server stopped processing new commands
+# in order to reclaim all the memory associated with an object in a synchronous
+# way. If the key deleted is associated with a small object, the time needed
+# in order to execute the DEL command is very small and comparable to most other
+# O(1) or O(log_N) commands in the server. However if the key is associated with an
+# aggregated value containing millions of elements, the server can block for
+# a long time (even seconds) in order to complete the operation.
+#
+# For the above reasons, lazy freeing (or asynchronous freeing), has been
+# introduced. With lazy freeing, keys are deleted in constant time. Another
+# thread will incrementally free the object in the background as fast as
+# possible.
+#
+# Starting from Valkey 8.0, lazy freeing is enabled by default. It is possible
+# to retain the synchronous freeing behaviour by setting the lazyfree related
+# configuration directives to 'no'.
+
+# Commands like DEL, FLUSHALL and FLUSHDB delete keys, but the server can also
+# delete keys or flush the whole database as a side effect of other operations.
+# Specifically the server deletes objects independently of a user call in the
+# following scenarios:
+#
+# 1) On eviction, because of the maxmemory and maxmemory policy configurations,
+#    in order to make room for new data, without going over the specified
+#    memory limit.
+# 2) Because of expire: when a key with an associated time to live (see the
+#    EXPIRE command) must be deleted from memory.
+# 3) Because of a side effect of a command that stores data on a key that may
+#    already exist. For example the RENAME command may delete the old key
+#    content when it is replaced with another one. Similarly SUNIONSTORE
+#    or SORT with STORE option may delete existing keys. The SET command
+#    itself removes any old content of the specified key in order to replace
+#    it with the specified string.
+# 4) During replication, when a replica performs a full resynchronization with
+#    its primary, the content of the whole database is removed in order to
+#    load the RDB file just transferred.
+#
+# In all the above cases, the default is to release memory in a non-blocking
+# way.
+
+lazyfree-lazy-eviction yes
+lazyfree-lazy-expire yes
+lazyfree-lazy-server-del yes
+replica-lazy-flush yes
+
+# For keys deleted using the DEL command, lazy freeing is controlled by the
+# configuration directive 'lazyfree-lazy-user-del'. The default is 'yes'. The
+# UNLINK command is identical to the DEL command, except that UNLINK always
+# frees the memory lazily, regardless of this configuration directive:
+
+lazyfree-lazy-user-del yes
+
+# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous
+# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the
+# commands. When neither flag is passed, this directive will be used to determine
+# if the data should be deleted asynchronously.
+
+# There are many problems with running flush synchronously. Even in single CPU
+# environments, the thread managers should balance between the freeing and
+# serving incoming requests. The default value is yes.
+
+lazyfree-lazy-user-flush yes
+
+################################ THREADED I/O #################################
+
+# The server is mostly single threaded, however there are certain threaded
+# operations such as UNLINK, slow I/O accesses and other things that are
+# performed on side threads.
+#
+# Now it is also possible to handle the server clients socket reads and writes
+# in different I/O threads. Since especially writing is so slow, normally
+# users use pipelining in order to speed up the server performances per
+# core, and spawn multiple instances in order to scale more. Using I/O
+# threads it is possible to easily speedup two times the server without resorting
+# to pipelining nor sharding of the instance.
+#
+# By default threading is disabled, we suggest enabling it only in machines
+# that have at least 3 or more cores, leaving at least one spare core.
+# We also recommend using threaded I/O only if you actually have performance problems, with 
+# instances being able to use a quite big percentage of CPU time, otherwise
+# there is no point in using this feature.
+#
+# So for instance if you have a four cores boxes, try to use 2 or 3 I/O
+# threads, if you have a 8 cores, try to use 6 threads. In order to
+# enable I/O threads use the following configuration directive:
+#
+# io-threads 4
+#
+# Setting io-threads to 1 will just use the main thread as usual.
+# When I/O threads are enabled, we use threads for reads and writes, that is
+# to thread the write and read syscall and transfer the client buffers to the
+# socket and to enable threading of reads and protocol parsing. 
+#
+# When multiple commands are parsed by the I/O threads and ready for execution,
+# we take advantage of knowing the next set of commands and prefetch their
+# required dictionary entries in a batch. This reduces memory access costs.
+#
+# The optimal batch size depends on the specific workflow of the user.
+# The default batch size is 16, which can be modified using the
+# 'prefetch-batch-max-size' config.
+#
+# When the config is set to 0, prefetching is disabled.
+#
+# prefetch-batch-max-size 16
+#
+# NOTE: If you want to test the server speedup using valkey-benchmark, make
+# sure you also run the benchmark itself in threaded mode, using the
+# --threads option to match the number of server threads, otherwise you'll not
+# be able to notice the improvements.
+
+############################ KERNEL OOM CONTROL ##############################
+
+# On Linux, it is possible to hint the kernel OOM killer on what processes
+# should be killed first when out of memory.
+#
+# Enabling this feature makes the server actively control the oom_score_adj value
+# for all its processes, depending on their role. The default scores will
+# attempt to have background child processes killed before all others, and
+# replicas killed before primaries.
+#
+# The server supports these options:
+#
+# no:       Don't make changes to oom-score-adj (default).
+# yes:      Alias to "relative" see below.
+# absolute: Values in oom-score-adj-values are written as is to the kernel.
+# relative: Values are used relative to the initial value of oom_score_adj when
+#           the server starts and are then clamped to a range of -1000 to 1000.
+#           Because typically the initial value is 0, they will often match the
+#           absolute values.
+oom-score-adj no
+
+# When oom-score-adj is used, this directive controls the specific values used
+# for primary, replica and background child processes. Values range -2000 to
+# 2000 (higher means more likely to be killed).
+#
+# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities)
+# can freely increase their value, but not decrease it below its initial
+# settings. This means that setting oom-score-adj to "relative" and setting the
+# oom-score-adj-values to positive values will always succeed.
+oom-score-adj-values 0 200 800
+
+
+#################### KERNEL transparent hugepage CONTROL ######################
+
+# Usually the kernel Transparent Huge Pages control is set to "madvise" or
+# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which
+# case this config has no effect. On systems in which it is set to "always",
+# the server will attempt to disable it specifically for the server process in order
+# to avoid latency problems specifically with fork(2) and CoW.
+# If for some reason you prefer to keep it enabled, you can set this config to
+# "no" and the kernel global to "always".
+
+disable-thp yes
+
+############################## APPEND ONLY MODE ###############################
+
+# By default the server asynchronously dumps the dataset on disk. This mode is
+# good enough in many applications, but an issue with the server process or
+# a power outage may result into a few minutes of writes lost (depending on
+# the configured save points).
+#
+# The Append Only File is an alternative persistence mode that provides
+# much better durability. For instance using the default data fsync policy
+# (see later in the config file) the server can lose just one second of writes in a
+# dramatic event like a server power outage, or a single write if something
+# wrong with the process itself happens, but the operating system is
+# still running correctly.
+#
+# AOF and RDB persistence can be enabled at the same time without problems.
+# If the AOF is enabled on startup the server will load the AOF, that is the file
+# with the better durability guarantees.
+#
+# Note that changing this value in a config file of an existing database and
+# restarting the server can lead to data loss. A conversion needs to be done
+# by setting it via CONFIG command on a live server first.
+#
+# Please check https://valkey.io/topics/persistence for more information.
+
+appendonly no
+
+# The base name of the append only file.
+#
+# The server uses a set of append-only files to persist the dataset
+# and changes applied to it. There are two basic types of files in use:
+#
+# - Base files, which are a snapshot representing the complete state of the
+#   dataset at the time the file was created. Base files can be either in
+#   the form of RDB (binary serialized) or AOF (textual commands).
+# - Incremental files, which contain additional commands that were applied
+#   to the dataset following the previous file.
+#
+# In addition, manifest files are used to track the files and the order in
+# which they were created and should be applied.
+#
+# Append-only file names are created by the server following a specific pattern.
+# The file name's prefix is based on the 'appendfilename' configuration
+# parameter, followed by additional information about the sequence and type.
+#
+# For example, if appendfilename is set to appendonly.aof, the following file
+# names could be derived:
+#
+# - appendonly.aof.1.base.rdb as a base file.
+# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
+# - appendonly.aof.manifest as a manifest file.
+
+appendfilename "appendonly.aof"
+
+# For convenience, the server stores all persistent append-only files in a dedicated
+# directory. The name of the directory is determined by the appenddirname
+# configuration parameter.
+
+appenddirname "appendonlydir"
+
+# The fsync() call tells the Operating System to actually write data on disk
+# instead of waiting for more data in the output buffer. Some OS will really flush
+# data on disk, some other OS will just try to do it ASAP.
+#
+# The server supports three different modes:
+#
+# no: don't fsync, just let the OS flush the data when it wants. Faster.
+# always: fsync after every write to the append only log. Slow, Safest.
+# everysec: fsync only one time every second. Compromise.
+#
+# The default is "everysec", as that's usually the right compromise between
+# speed and data safety. It's up to you to understand if you can relax this to
+# "no" that will let the operating system flush the output buffer when
+# it wants, for better performances (but if you can live with the idea of
+# some data loss consider the default persistence mode that's snapshotting),
+# or on the contrary, use "always" that's very slow but a bit safer than
+# everysec.
+#
+# More details please check the following article:
+# http://antirez.com/post/redis-persistence-demystified.html
+#
+# If unsure, use "everysec".
+
+# appendfsync always
+appendfsync everysec
+# appendfsync no
+
+# When the AOF fsync policy is set to always or everysec, and a background
+# saving process (a background save or AOF log background rewriting) is
+# performing a lot of I/O against the disk, in some Linux configurations
+# the server may block too long on the fsync() call. Note that there is no fix for
+# this currently, as even performing fsync in a different thread will block
+# our synchronous write(2) call.
+#
+# In order to mitigate this problem it's possible to use the following option
+# that will prevent fsync() from being called in the main process while a
+# BGSAVE or BGREWRITEAOF is in progress.
+#
+# This means that while another child is saving, the durability of the server is
+# the same as "appendfsync no". In practical terms, this means that it is
+# possible to lose up to 30 seconds of log in the worst scenario (with the
+# default Linux settings).
+#
+# If you have latency problems turn this to "yes". Otherwise leave it as
+# "no" that is the safest pick from the point of view of durability.
+
+no-appendfsync-on-rewrite no
+
+# Automatic rewrite of the append only file.
+# The server is able to automatically rewrite the log file implicitly calling
+# BGREWRITEAOF when the AOF log size grows by the specified percentage.
+#
+# This is how it works: The server remembers the size of the AOF file after the
+# latest rewrite (if no rewrite has happened since the restart, the size of
+# the AOF at startup is used).
+#
+# This base size is compared to the current size. If the current size is
+# bigger than the specified percentage, the rewrite is triggered. Also
+# you need to specify a minimal size for the AOF file to be rewritten, this
+# is useful to avoid rewriting the AOF file even if the percentage increase
+# is reached but it is still pretty small.
+#
+# Specify a percentage of zero in order to disable the automatic AOF
+# rewrite feature.
+
+auto-aof-rewrite-percentage 100
+auto-aof-rewrite-min-size 64mb
+
+# An AOF file may be found to be truncated at the end during the server
+# startup process, when the AOF data gets loaded back into memory.
+# This may happen when the system where the server is running
+# crashes, especially when an ext4 filesystem is mounted without the
+# data=ordered option (however this can't happen when the server itself
+# crashes or aborts but the operating system still works correctly).
+#
+# The server can either exit with an error when this happens, or load as much
+# data as possible (the default now) and start if the AOF file is found
+# to be truncated at the end. The following option controls this behavior.
+#
+# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
+# the server starts emitting a log to inform the user of the event.
+# Otherwise if the option is set to no, the server aborts with an error
+# and refuses to start. When the option is set to no, the user requires
+# to fix the AOF file using the "valkey-check-aof" utility before to restart
+# the server.
+#
+# Note that if the AOF file will be found to be corrupted in the middle
+# the server will still exit with an error. This option only applies when
+# the server will try to read more data from the AOF file but not enough bytes
+# will be found.
+aof-load-truncated yes
+
+# The server can create append-only base files in either RDB or AOF formats. Using
+# the RDB format is always faster and more efficient, and disabling it is only
+# supported for backward compatibility purposes.
+aof-use-rdb-preamble yes
+
+# The server supports recording timestamp annotations in the AOF to support restoring
+# the data from a specific point-in-time. However, using this capability changes
+# the AOF format in a way that may not be compatible with existing AOF parsers.
+aof-timestamp-enabled no
+
+################################ SHUTDOWN #####################################
+
+# Maximum time to wait for replicas when shutting down, in seconds.
+#
+# During shut down, a grace period allows any lagging replicas to catch up with
+# the latest replication offset before the primary exists. This period can
+# prevent data loss, especially for deployments without configured disk backups.
+#
+# The 'shutdown-timeout' value is the grace period's duration in seconds. It is
+# only applicable when the instance has replicas. To disable the feature, set
+# the value to 0.
+#
+# shutdown-timeout 10
+
+# When the server receives a SIGINT or SIGTERM, shutdown is initiated and by default
+# an RDB snapshot is written to disk in a blocking operation if save points are configured.
+# The options used on signaled shutdown can include the following values:
+# default:  Saves RDB snapshot only if save points are configured.
+#           Waits for lagging replicas to catch up.
+# save:     Forces a DB saving operation even if no save points are configured.
+# nosave:   Prevents DB saving operation even if one or more save points are configured.
+# now:      Skips waiting for lagging replicas.
+# force:    Ignores any errors that would normally prevent the server from exiting.
+#
+# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously.
+# Example: "nosave force now"
+#
+# shutdown-on-sigint default
+# shutdown-on-sigterm default
+
+################ NON-DETERMINISTIC LONG BLOCKING COMMANDS #####################
+
+# Maximum time in milliseconds for EVAL scripts, functions and in some cases
+# modules' commands before the server can start processing or rejecting other clients.
+#
+# If the maximum execution time is reached the server will start to reply to most
+# commands with a BUSY error.
+#
+# In this state the server will only allow a handful of commands to be executed.
+# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
+# module specific 'allow-busy' commands.
+#
+# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
+# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop
+# the server in the case a write command was already issued by the script when
+# the user doesn't want to wait for the natural termination of the script.
+#
+# The default is 5 seconds. It is possible to set it to 0 or a negative value
+# to disable this mechanism (uninterrupted execution). Note that in the past
+# this config had a different name, which is now an alias, so both of these do
+# the same:
+# lua-time-limit 5000
+# busy-reply-threshold 5000
+
+################################ VALKEY CLUSTER  ###############################
+
+# Normal server instances can't be part of a cluster; only nodes that are
+# started as cluster nodes can. In order to start a server instance as a
+# cluster node enable the cluster support uncommenting the following:
+#
+# cluster-enabled yes
+
+# Every cluster node has a cluster configuration file. This file is not
+# intended to be edited by hand. It is created and updated by each node.
+# Every cluster node requires a different cluster configuration file.
+# Make sure that instances running in the same system do not have
+# overlapping cluster configuration file names.
+#
+# cluster-config-file nodes-6379.conf
+
+# Cluster node timeout is the amount of milliseconds a node must be unreachable
+# for it to be considered in failure state.
+# Most other internal time limits are a multiple of the node timeout.
+#
+# cluster-node-timeout 15000
+
+# The cluster port is the port that the cluster bus will listen for inbound connections on. When set 
+# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires 
+# you to specify the cluster bus port when executing cluster meet.
+# cluster-port 0
+
+# A replica of a failing primary will avoid to start a failover if its data
+# looks too old.
+#
+# There is no simple way for a replica to actually have an exact measure of
+# its "data age", so the following two checks are performed:
+#
+# 1) If there are multiple replicas able to failover, they exchange messages
+#    in order to try to give an advantage to the replica with the best
+#    replication offset (more data from the primary processed).
+#    Replicas will try to get their rank by offset, and apply to the start
+#    of the failover a delay proportional to their rank.
+#
+# 2) Every single replica computes the time of the last interaction with
+#    its primary. This can be the last ping or command received (if the primary
+#    is still in the "connected" state), or the time that elapsed since the
+#    disconnection with the primary (if the replication link is currently down).
+#    If the last interaction is too old, the replica will not try to failover
+#    at all.
+#
+# The point "2" can be tuned by user. Specifically a replica will not perform
+# the failover if, since the last interaction with the primary, the time
+# elapsed is greater than:
+#
+#   (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period
+#
+# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor
+# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the
+# replica will not try to failover if it was not able to talk with the primary
+# for longer than 310 seconds.
+#
+# A large cluster-replica-validity-factor may allow replicas with too old data to failover
+# a primary, while a too small value may prevent the cluster from being able to
+# elect a replica at all.
+#
+# For maximum availability, it is possible to set the cluster-replica-validity-factor
+# to a value of 0, which means, that replicas will always try to failover the
+# primary regardless of the last time they interacted with the primary.
+# (However they'll always try to apply a delay proportional to their
+# offset rank).
+#
+# Zero is the only value able to guarantee that when all the partitions heal
+# the cluster will always be able to continue.
+#
+# cluster-replica-validity-factor 10
+
+# Cluster replicas are able to migrate to orphaned primaries, that are primaries
+# that are left without working replicas. This improves the cluster ability
+# to resist to failures as otherwise an orphaned primary can't be failed over
+# in case of failure if it has no working replicas.
+#
+# Replicas migrate to orphaned primaries only if there are still at least a
+# given number of other working replicas for their old primary. This number
+# is the "migration barrier". A migration barrier of 1 means that a replica
+# will migrate only if there is at least 1 other working replica for its primary
+# and so forth. It usually reflects the number of replicas you want for every
+# primary in your cluster.
+#
+# Default is 1 (replicas migrate only if their primaries remain with at least
+# one replica). To disable migration just set it to a very large value or
+# set cluster-allow-replica-migration to 'no'.
+# A value of 0 can be set but is useful only for debugging and dangerous
+# in production.
+#
+# cluster-migration-barrier 1
+
+# Turning off this option allows to use less automatic cluster configuration.
+# It disables migration of replicas to orphaned primaries. Masters that become
+# empty due to losing their last slots to another primary will not automatically
+# replicate from the primary that took over their last slots. Instead, they will
+# remain as empty primaries without any slots.
+#
+# Default is 'yes' (allow automatic migrations).
+#
+# cluster-allow-replica-migration yes
+
+# By default cluster nodes stop accepting queries if they detect there
+# is at least a hash slot uncovered (no available node is serving it).
+# This way if the cluster is partially down (for example a range of hash slots
+# are no longer covered) all the cluster becomes, eventually, unavailable.
+# It automatically returns available as soon as all the slots are covered again.
+#
+# However sometimes you want the subset of the cluster which is working,
+# to continue to accept queries for the part of the key space that is still
+# covered. In order to do so, just set the cluster-require-full-coverage
+# option to no.
+#
+# cluster-require-full-coverage yes
+
+# This option, when set to yes, prevents replicas from trying to failover its
+# primary during primary failures. However the replica can still perform a
+# manual failover, if forced to do so.
+#
+# This is useful in different scenarios, especially in the case of multiple
+# data center operations, where we want one side to never be promoted if not
+# in the case of a total DC failure.
+#
+# cluster-replica-no-failover no
+
+# This option, when set to yes, allows nodes to serve read traffic while the
+# cluster is in a down state, as long as it believes it owns the slots.
+#
+# This is useful for two cases.  The first case is for when an application
+# doesn't require consistency of data during node failures or network partitions.
+# One example of this is a cache, where as long as the node has the data it
+# should be able to serve it.
+#
+# The second use case is for configurations that don't meet the recommended
+# three shards but want to enable cluster mode and scale later. A
+# primary outage in a 1 or 2 shard configuration causes a read/write outage to the
+# entire cluster without this option set, with it set there is only a write outage.
+# Without a quorum of primaries, slot ownership will not change automatically.
+#
+# cluster-allow-reads-when-down no
+
+# This option, when set to yes, allows nodes to serve pubsub shard traffic while
+# the cluster is in a down state, as long as it believes it owns the slots.
+#
+# This is useful if the application would like to use the pubsub feature even when
+# the cluster global stable state is not OK. If the application wants to make sure only
+# one shard is serving a given channel, this feature should be kept as yes.
+#
+# cluster-allow-pubsubshard-when-down yes
+
+# Cluster link send buffer limit is the limit on the memory usage of an individual
+# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed
+# this limit. This is to primarily prevent send buffers from growing unbounded on links
+# toward slow peers (E.g. PubSub messages being piled up).
+# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field
+# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase.
+# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single
+# PubSub message by default. (client-query-buffer-limit default value is 1gb)
+#
+# cluster-link-sendbuf-limit 0
+# Clusters can configure their announced hostname using this config. This is a common use case for 
+# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based
+# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS
+# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is 
+# communicated along the clusterbus to all nodes, setting it to an empty string will remove 
+# the hostname and also propagate the removal.
+#
+# cluster-announce-hostname ""
+
+# Clusters can configure an optional nodename to be used in addition to the node ID for
+# debugging and admin information. This name is broadcasted between nodes, so will be used
+# in addition to the node ID when reporting cross node events such as node failures.
+# cluster-announce-human-nodename ""
+
+# Clusters can advertise how clients should connect to them using either their IP address,
+# a user defined hostname, or by declaring they have no endpoint. Which endpoint is
+# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type
+# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how
+# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS. 
+# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?' 
+# will be returned instead.
+#
+# When a cluster advertises itself as having an unknown endpoint, it's indicating that
+# the server doesn't know how clients can reach the cluster. This can happen in certain 
+# networking situations where there are multiple possible routes to the node, and the 
+# server doesn't know which one the client took. In this case, the server is expecting
+# the client to reach out on the same endpoint it used for making the last request, but use
+# the port provided in the response.
+#
+# cluster-preferred-endpoint-type ip
+
+# The cluster blacklist is used when removing a node from the cluster completely. 
+# When CLUSTER FORGET is called for a node, that node is put into the blacklist for
+# some time so that when gossip messages are received from other nodes that still
+# remember it, it is not re-added. This gives time for CLUSTER FORGET to be sent to
+# every node in the cluster. The blacklist TTL is 60 seconds by default, which should
+# be sufficient for most clusters, but you may considering increasing this if you see
+# nodes getting re-added while using CLUSTER FORGET.
+#
+# cluster-blacklist-ttl 60
+
+# Clusters can be configured to track per-slot resource statistics, 
+# which are accessible by the CLUSTER SLOT-STATS command.
+#
+# By default, the 'cluster-slot-stats-enabled' is disabled, and only 'key-count' is captured.
+# By enabling the 'cluster-slot-stats-enabled' config, the cluster will begin to capture advanced statistics.
+# These statistics can be leveraged to assess general slot usage trends, identify hot / cold slots, 
+# migrate slots for a balanced cluster workload, and / or re-write application logic to better utilize slots.
+#
+# cluster-slot-stats-enabled no
+
+# In order to setup your cluster make sure to read the documentation
+# available at https://valkey.io web site.
+
+########################## CLUSTER DOCKER/NAT support  ########################
+
+# In certain deployments, cluster node's address discovery fails, because
+# addresses are NAT-ted or because ports are forwarded (the typical case is
+# Docker and other containers).
+#
+# In order to make a cluster work in such environments, a static
+# configuration where each node knows its public address is needed. The
+# following options are used for this scope, and are:
+#
+# * cluster-announce-ip
+# * cluster-announce-client-ipv4
+# * cluster-announce-client-ipv6
+# * cluster-announce-port
+# * cluster-announce-tls-port
+# * cluster-announce-bus-port
+#
+# Each instructs the node about its address, possibly other addresses to expose
+# to clients, client ports (for connections without and with TLS) and cluster
+# message bus port. The information is then published in the bus packets so that
+# other nodes will be able to correctly map the address of the node publishing
+# the information.
+#
+# If tls-cluster is set to yes and cluster-announce-tls-port is omitted or set
+# to zero, then cluster-announce-port refers to the TLS port. Note also that
+# cluster-announce-tls-port has no effect if tls-cluster is set to no.
+#
+# If cluster-announce-client-ipv4 and cluster-announce-client-ipv6 are omitted,
+# then cluster-announce-ip is exposed to clients.
+#
+# If the above options are not used, the normal cluster auto-detection
+# will be used instead.
+#
+# Note that when remapped, the bus port may not be at the fixed offset of
+# clients port + 10000, so you can specify any port and bus-port depending
+# on how they get remapped. If the bus-port is not set, a fixed offset of
+# 10000 will be used as usual.
+#
+# Example:
+#
+# cluster-announce-ip 10.1.1.5
+# cluster-announce-client-ipv4 123.123.123.5
+# cluster-announce-client-ipv6 2001:db8::8a2e:370:7334
+# cluster-announce-tls-port 6379
+# cluster-announce-port 0
+# cluster-announce-bus-port 6380
+
+################################## SLOW LOG ###################################
+
+# The server Slow Log is a system to log queries that exceeded a specified
+# execution time. The execution time does not include the I/O operations
+# like talking with the client, sending the reply and so forth,
+# but just the time needed to actually execute the command (this is the only
+# stage of command execution where the thread is blocked and can not serve
+# other requests in the meantime).
+#
+# You can configure the slow log with two parameters: one tells the server
+# what is the execution time, in microseconds, to exceed in order for the
+# command to get logged, and the other parameter is the length of the
+# slow log. When a new command is logged the oldest one is removed from the
+# queue of logged commands.
+
+# The following time is expressed in microseconds, so 1000000 is equivalent
+# to one second. Note that a negative number disables the slow log, while
+# a value of zero forces the logging of every command.
+slowlog-log-slower-than 10000
+
+# There is no limit to this length. Just be aware that it will consume memory.
+# You can reclaim memory used by the slow log with SLOWLOG RESET.
+slowlog-max-len 128
+
+################################ LATENCY MONITOR ##############################
+
+# The server latency monitoring subsystem samples different operations
+# at runtime in order to collect data related to possible sources of
+# latency of a server instance.
+#
+# Via the LATENCY command this information is available to the user that can
+# print graphs and obtain reports.
+#
+# The system only logs operations that were performed in a time equal or
+# greater than the amount of milliseconds specified via the
+# latency-monitor-threshold configuration directive. When its value is set
+# to zero, the latency monitor is turned off.
+#
+# By default latency monitoring is disabled since it is mostly not needed
+# if you don't have latency issues, and collecting data has a performance
+# impact, that while very small, can be measured under big load. Latency
+# monitoring can easily be enabled at runtime using the command
+# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
+latency-monitor-threshold 0
+
+################################ LATENCY TRACKING ##############################
+
+# The server's extended latency monitoring tracks the per command latencies and enables
+# exporting the percentile distribution via the INFO latencystats command,
+# and cumulative latency distributions (histograms) via the LATENCY command.
+#
+# By default, the extended latency monitoring is enabled since the overhead
+# of keeping track of the command latency is very small.
+# latency-tracking yes
+
+# By default the exported latency percentiles via the INFO latencystats command
+# are the p50, p99, and p999.
+# latency-tracking-info-percentiles 50 99 99.9
+
+############################# EVENT NOTIFICATION ##############################
+
+# The server can notify Pub/Sub clients about events happening in the key space.
+# This feature is documented at https://valkey.io/topics/notifications
+#
+# For instance if keyspace events notification is enabled, and a client
+# performs a DEL operation on key "foo" stored in the Database 0, two
+# messages will be published via Pub/Sub:
+#
+# PUBLISH __keyspace@0__:foo del
+# PUBLISH __keyevent@0__:del foo
+#
+# It is possible to select the events that the server will notify among a set
+# of classes. Every class is identified by a single character:
+#
+#  K     Keyspace events, published with __keyspace@<db>__ prefix.
+#  E     Keyevent events, published with __keyevent@<db>__ prefix.
+#  g     Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
+#  $     String commands
+#  l     List commands
+#  s     Set commands
+#  h     Hash commands
+#  z     Sorted set commands
+#  x     Expired events (events generated every time a key expires)
+#  e     Evicted events (events generated when a key is evicted for maxmemory)
+#  n     New key events (Note: not included in the 'A' class)
+#  t     Stream commands
+#  d     Module key type events
+#  m     Key-miss events (Note: It is not included in the 'A' class)
+#  A     Alias for g$lshzxetd, so that the "AKE" string means all the events
+#        (Except key-miss events which are excluded from 'A' due to their
+#         unique nature).
+#
+#  The "notify-keyspace-events" takes as argument a string that is composed
+#  of zero or multiple characters. The empty string means that notifications
+#  are disabled.
+#
+#  Example: to enable list and generic events, from the point of view of the
+#           event name, use:
+#
+#  notify-keyspace-events Elg
+#
+#  Example 2: to get the stream of the expired keys subscribing to channel
+#             name __keyevent@0__:expired use:
+#
+#  notify-keyspace-events Ex
+#
+#  By default all notifications are disabled because most users don't need
+#  this feature and the feature has some overhead. Note that if you don't
+#  specify at least one of K or E, no events will be delivered.
+notify-keyspace-events ""
+
+############################### ADVANCED CONFIG ###############################
+
+# Hashes are encoded using a memory efficient data structure when they have a
+# small number of entries, and the biggest entry does not exceed a given
+# threshold. These thresholds can be configured using the following directives.
+hash-max-listpack-entries 512
+hash-max-listpack-value 64
+
+# Lists are also encoded in a special way to save a lot of space.
+# The number of entries allowed per internal list node can be specified
+# as a fixed maximum size or a maximum number of elements.
+# For a fixed maximum size, use -5 through -1, meaning:
+# -5: max size: 64 Kb  <-- not recommended for normal workloads
+# -4: max size: 32 Kb  <-- not recommended
+# -3: max size: 16 Kb  <-- probably not recommended
+# -2: max size: 8 Kb   <-- good
+# -1: max size: 4 Kb   <-- good
+# Positive numbers mean store up to _exactly_ that number of elements
+# per list node.
+# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
+# but if your use case is unique, adjust the settings as necessary.
+list-max-listpack-size -2
+
+# Lists may also be compressed.
+# Compress depth is the number of quicklist ziplist nodes from *each* side of
+# the list to *exclude* from compression.  The head and tail of the list
+# are always uncompressed for fast push/pop operations.  Settings are:
+# 0: disable all list compression
+# 1: depth 1 means "don't start compressing until after 1 node into the list,
+#    going from either the head or tail"
+#    So: [head]->node->node->...->node->[tail]
+#    [head], [tail] will always be uncompressed; inner nodes will compress.
+# 2: [head]->[next]->node->node->...->node->[prev]->[tail]
+#    2 here means: don't compress head or head->next or tail->prev or tail,
+#    but compress all nodes between them.
+# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail]
+# etc.
+list-compress-depth 0
+
+# Sets have a special encoding when a set is composed
+# of just strings that happen to be integers in radix 10 in the range
+# of 64 bit signed integers.
+# The following configuration setting sets the limit in the size of the
+# set in order to use this special memory saving encoding.
+set-max-intset-entries 512
+
+# Sets containing non-integer values are also encoded using a memory efficient
+# data structure when they have a small number of entries, and the biggest entry
+# does not exceed a given threshold. These thresholds can be configured using
+# the following directives.
+set-max-listpack-entries 128
+set-max-listpack-value 64
+
+# Similarly to hashes and lists, sorted sets are also specially encoded in
+# order to save a lot of space. This encoding is only used when the length and
+# elements of a sorted set are below the following limits:
+zset-max-listpack-entries 128
+zset-max-listpack-value 64
+
+# HyperLogLog sparse representation bytes limit. The limit includes the
+# 16 bytes header. When a HyperLogLog using the sparse representation crosses
+# this limit, it is converted into the dense representation.
+#
+# A value greater than 16000 is totally useless, since at that point the
+# dense representation is more memory efficient.
+#
+# The suggested value is ~ 3000 in order to have the benefits of
+# the space efficient encoding without slowing down too much PFADD,
+# which is O(N) with the sparse encoding. The value can be raised to
+# ~ 10000 when CPU is not a concern, but space is, and the data set is
+# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
+hll-sparse-max-bytes 3000
+
+# Streams macro node max size / items. The stream data structure is a radix
+# tree of big nodes that encode multiple items inside. Using this configuration
+# it is possible to configure how big a single node can be in bytes, and the
+# maximum number of items it may contain before switching to a new node when
+# appending new stream entries. If any of the following settings are set to
+# zero, the limit is ignored, so for instance it is possible to set just a
+# max entries limit by setting max-bytes to 0 and max-entries to the desired
+# value.
+stream-node-max-bytes 4096
+stream-node-max-entries 100
+
+# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
+# order to help rehashing the main server hash table (the one mapping top-level
+# keys to values). The hash table implementation the server uses (see dict.c)
+# performs a lazy rehashing: the more operation you run into a hash table
+# that is rehashing, the more rehashing "steps" are performed, so if the
+# server is idle the rehashing is never complete and some more memory is used
+# by the hash table.
+#
+# The default is to use this millisecond 10 times every second in order to
+# actively rehash the main dictionaries, freeing memory when possible.
+#
+# If unsure:
+# use "activerehashing no" if you have hard latency requirements and it is
+# not a good thing in your environment that the server can reply from time to time
+# to queries with 2 milliseconds delay.
+#
+# use "activerehashing yes" if you don't have such hard requirements but
+# want to free memory asap when possible.
+activerehashing yes
+
+# The client output buffer limits can be used to force disconnection of clients
+# that are not reading data from the server fast enough for some reason (a
+# common reason is that a Pub/Sub client can't consume messages as fast as the
+# publisher can produce them).
+#
+# The limit can be set differently for the three different classes of clients:
+#
+# normal -> normal clients including MONITOR clients
+# replica -> replica clients
+# pubsub -> clients subscribed to at least one pubsub channel or pattern
+#
+# The syntax of every client-output-buffer-limit directive is the following:
+#
+# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
+#
+# A client is immediately disconnected once the hard limit is reached, or if
+# the soft limit is reached and remains reached for the specified number of
+# seconds (continuously).
+# So for instance if the hard limit is 32 megabytes and the soft limit is
+# 16 megabytes / 10 seconds, the client will get disconnected immediately
+# if the size of the output buffers reach 32 megabytes, but will also get
+# disconnected if the client reaches 16 megabytes and continuously overcomes
+# the limit for 10 seconds.
+#
+# By default normal clients are not limited because they don't receive data
+# without asking (in a push way), but just after a request, so only
+# asynchronous clients may create a scenario where data is requested faster
+# than it can read.
+#
+# Instead there is a default limit for pubsub and replica clients, since
+# subscribers and replicas receive data in a push fashion.
+#
+# Note that it doesn't make sense to set the replica clients output buffer
+# limit lower than the repl-backlog-size config (partial sync will succeed
+# and then replica will get disconnected).
+# Such a configuration is ignored (the size of repl-backlog-size will be used).
+# This doesn't have memory consumption implications since the replica client
+# will share the backlog buffers memory.
+#
+# Both the hard or the soft limit can be disabled by setting them to zero.
+client-output-buffer-limit normal 0 0 0
+client-output-buffer-limit replica 256mb 64mb 60
+client-output-buffer-limit pubsub 32mb 8mb 60
+
+# Client query buffers accumulate new commands. They are limited to a fixed
+# amount by default in order to avoid that a protocol desynchronization (for
+# instance due to a bug in the client) will lead to unbound memory usage in
+# the query buffer. However you can configure it here if you have very special
+# needs, such as a command with huge argument, or huge multi/exec requests or alike.
+#
+# client-query-buffer-limit 1gb
+
+# In some scenarios client connections can hog up memory leading to OOM
+# errors or data eviction. To avoid this we can cap the accumulated memory
+# used by all client connections (all pubsub and normal clients). Once we
+# reach that limit connections will be dropped by the server freeing up
+# memory. The server will attempt to drop the connections using the most 
+# memory first. We call this mechanism "client eviction".
+#
+# Client eviction is configured using the maxmemory-clients setting as follows:
+# 0 - client eviction is disabled (default)
+#
+# A memory value can be used for the client eviction threshold,
+# for example:
+# maxmemory-clients 1g
+#
+# A percentage value (between 1% and 100%) means the client eviction threshold
+# is based on a percentage of the maxmemory setting. For example to set client
+# eviction at 5% of maxmemory:
+# maxmemory-clients 5%
+
+# In the server protocol, bulk requests, that are, elements representing single
+# strings, are normally limited to 512 mb. However you can change this limit
+# here, but must be 1mb or greater
+#
+# proto-max-bulk-len 512mb
+
+# The server calls an internal function to perform many background tasks, like
+# closing connections of clients in timeout, purging expired keys that are
+# never requested, and so forth.
+#
+# Not all tasks are performed with the same frequency, but the server checks for
+# tasks to perform according to the specified "hz" value.
+#
+# By default "hz" is set to 10. Raising the value will use more CPU when
+# the server is idle, but at the same time will make the server more responsive when
+# there are many keys expiring at the same time, and timeouts may be
+# handled with more precision.
+#
+# The range is between 1 and 500, however a value over 100 is usually not
+# a good idea. Most users should use the default of 10 and raise this up to
+# 100 only in environments where very low latency is required.
+hz 10
+
+# Normally it is useful to have an HZ value which is proportional to the
+# number of clients connected. This is useful in order, for instance, to
+# avoid too many clients are processed for each background task invocation
+# in order to avoid latency spikes.
+#
+# Since the default HZ value by default is conservatively set to 10, the server
+# offers, and enables by default, the ability to use an adaptive HZ value
+# which will temporarily raise when there are many connected clients.
+#
+# When dynamic HZ is enabled, the actual configured HZ will be used
+# as a baseline, but multiples of the configured HZ value will be actually
+# used as needed once more clients are connected. In this way an idle
+# instance will use very little CPU time while a busy instance will be
+# more responsive.
+dynamic-hz yes
+
+# When a child rewrites the AOF file, if the following option is enabled
+# the file will be fsync-ed every 4 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+aof-rewrite-incremental-fsync yes
+
+# When the server saves RDB file, if the following option is enabled
+# the file will be fsync-ed every 4 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+rdb-save-incremental-fsync yes
+
+# The server's LFU eviction (see maxmemory setting) can be tuned. However it is a good
+# idea to start with the default settings and only change them after investigating
+# how to improve the performances and how the keys LFU change over time, which
+# is possible to inspect via the OBJECT FREQ command.
+#
+# There are two tunable parameters in the server LFU implementation: the
+# counter logarithm factor and the counter decay time. It is important to
+# understand what the two parameters mean before changing them.
+#
+# The LFU counter is just 8 bits per key, it's maximum value is 255, so the server
+# uses a probabilistic increment with logarithmic behavior. Given the value
+# of the old counter, when a key is accessed, the counter is incremented in
+# this way:
+#
+# 1. A random number R between 0 and 1 is extracted.
+# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1).
+# 3. The counter is incremented only if R < P.
+#
+# The default lfu-log-factor is 10. This is a table of how the frequency
+# counter changes with a different number of accesses with different
+# logarithmic factors:
+#
+# +--------+------------+------------+------------+------------+------------+
+# | factor | 100 hits   | 1000 hits  | 100K hits  | 1M hits    | 10M hits   |
+# +--------+------------+------------+------------+------------+------------+
+# | 0      | 104        | 255        | 255        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 1      | 18         | 49         | 255        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 10     | 10         | 18         | 142        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 100    | 8          | 11         | 49         | 143        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+#
+# NOTE: The above table was obtained by running the following commands:
+#
+#   valkey-benchmark -n 1000000 incr foo
+#   valkey-cli object freq foo
+#
+# NOTE 2: The counter initial value is 5 in order to give new objects a chance
+# to accumulate hits.
+#
+# The counter decay time is the time, in minutes, that must elapse in order
+# for the key counter to be decremented.
+#
+# The default value for the lfu-decay-time is 1. A special value of 0 means we
+# will never decay the counter.
+#
+# lfu-log-factor 10
+# lfu-decay-time 1
+
+
+# The maximum number of new client connections accepted per event-loop cycle. This configuration
+# is set independently for TLS connections.
+#
+# By default, up to 10 new connection will be accepted per event-loop cycle for normal connections
+# and up to 1 new connection per event-loop cycle for TLS connections.
+#
+# Adjusting this to a larger number can slightly improve efficiency for new connections
+# at the risk of causing timeouts for regular commands on established connections.  It is
+# not advised to change this without ensuring that all clients have limited connection
+# pools and exponential backoff in the case of command/connection timeouts. 
+#
+# If your application is establishing a large number of new connections per second you should
+# also consider tuning the value of tcp-backlog, which allows the kernel to buffer more
+# pending connections before dropping or rejecting connections. 
+#
+# max-new-connections-per-cycle 10
+# max-new-tls-connections-per-cycle 1
+
+
+########################### ACTIVE DEFRAGMENTATION #######################
+#
+# What is active defragmentation?
+# -------------------------------
+#
+# Active (online) defragmentation allows a server to compact the
+# spaces left between small allocations and deallocations of data in memory,
+# thus allowing to reclaim back memory.
+#
+# Fragmentation is a natural process that happens with every allocator (but
+# less so with Jemalloc, fortunately) and certain workloads. Normally a server
+# restart is needed in order to lower the fragmentation, or at least to flush
+# away all the data and create it again. However thanks to this feature
+# implemented by Oran Agra, this process can happen at runtime
+# in a "hot" way, while the server is running.
+#
+# Basically when the fragmentation is over a certain level (see the
+# configuration options below) the server will start to create new copies of the
+# values in contiguous memory regions by exploiting certain specific Jemalloc
+# features (in order to understand if an allocation is causing fragmentation
+# and to allocate it in a better place), and at the same time, will release the
+# old copies of the data. This process, repeated incrementally for all the keys
+# will cause the fragmentation to drop back to normal values.
+#
+# Important things to understand:
+#
+# 1. This feature is disabled by default, and only works if you compiled the server
+#    to use the copy of Jemalloc we ship with the source code of the server.
+#    This is the default with Linux builds.
+#
+# 2. You never need to enable this feature if you don't have fragmentation
+#    issues.
+#
+# 3. Once you experience fragmentation, you can enable this feature when
+#    needed with the command "CONFIG SET activedefrag yes".
+#
+# The configuration parameters are able to fine tune the behavior of the
+# defragmentation process. If you are not sure about what they mean it is
+# a good idea to leave the defaults untouched.
+
+# Active defragmentation is disabled by default
+# activedefrag no
+
+# Minimum amount of fragmentation waste to start active defrag
+# active-defrag-ignore-bytes 100mb
+
+# Minimum percentage of fragmentation to start active defrag
+# active-defrag-threshold-lower 10
+
+# Maximum percentage of fragmentation at which we use maximum effort
+# active-defrag-threshold-upper 100
+
+# Minimal effort for defrag in CPU percentage, to be used when the lower
+# threshold is reached
+# active-defrag-cycle-min 1
+
+# Maximal effort for defrag in CPU percentage, to be used when the upper
+# threshold is reached
+# active-defrag-cycle-max 25
+
+# Maximum number of set/hash/zset/list fields that will be processed from
+# the main dictionary scan
+# active-defrag-max-scan-fields 1000
+
+# Jemalloc background thread for purging will be enabled by default
+jemalloc-bg-thread yes
+
+# It is possible to pin different threads and processes of the server to specific
+# CPUs in your system, in order to maximize the performances of the server.
+# This is useful both in order to pin different server threads in different
+# CPUs, but also in order to make sure that multiple server instances running
+# in the same host will be pinned to different CPUs.
+#
+# Normally you can do this using the "taskset" command, however it is also
+# possible to do this via the server configuration directly, both in Linux and FreeBSD.
+#
+# You can pin the server/IO threads, bio threads, aof rewrite child process, and
+# the bgsave child process. The syntax to specify the cpu list is the same as
+# the taskset command:
+#
+# Set server/io threads to cpu affinity 0,2,4,6:
+# server-cpulist 0-7:2
+#
+# Set bio threads to cpu affinity 1,3:
+# bio-cpulist 1,3
+#
+# Set aof rewrite child process to cpu affinity 8,9,10,11:
+# aof-rewrite-cpulist 8-11
+#
+# Set bgsave child process to cpu affinity 1,10,11
+# bgsave-cpulist 1,10-11
+
+# In some cases the server will emit warnings and even refuse to start if it detects
+# that the system is in bad state, it is possible to suppress these warnings
+# by setting the following config which takes a space delimited list of warnings
+# to suppress
+#
+# ignore-warnings ARM64-COW-BUG
+
+# Inform Valkey of the availability zone if running in a cloud environment.  Currently
+# this is only exposed via the info command for clients to use, but in the future we
+# we may also use this when making decisions for replication.
+#
+# availability-zone "zone-name"
diff --git a/valkey/valkey-6378.conf b/valkey/valkey-6378.conf
new file mode 100644 (file)
index 0000000..a288969
--- /dev/null
@@ -0,0 +1,2429 @@
+# Valkey configuration file example.
+#
+# Note that in order to read the configuration file, the server must be
+# started with the file path as first argument:
+#
+# ./valkey-server /path/to/valkey.conf
+
+# Note on units: when memory size is needed, it is possible to specify
+# it in the usual form of 1k 5GB 4M and so forth:
+#
+# 1k => 1000 bytes
+# 1kb => 1024 bytes
+# 1m => 1000000 bytes
+# 1mb => 1024*1024 bytes
+# 1g => 1000000000 bytes
+# 1gb => 1024*1024*1024 bytes
+#
+# units are case insensitive so 1GB 1Gb 1gB are all the same.
+
+################################## INCLUDES ###################################
+
+# Include one or more other config files here.  This is useful if you
+# have a standard template that goes to all servers but also need
+# to customize a few per-server settings.  Include files can include
+# other files, so use this wisely.
+#
+# Note that option "include" won't be rewritten by command "CONFIG REWRITE"
+# from admin or Sentinel. Since the server always uses the last processed
+# line as value of a configuration directive, you'd better put includes
+# at the beginning of this file to avoid overwriting config change at runtime.
+#
+# If instead you are interested in using includes to override configuration
+# options, it is better to use include as the last line.
+#
+# Included paths may contain wildcards. All files matching the wildcards will
+# be included in alphabetical order.
+# Note that if an include path contains a wildcards but no files match it when
+# the server is started, the include statement will be ignored and no error will
+# be emitted.  It is safe, therefore, to include wildcard files from empty
+# directories.
+#
+# include /path/to/local.conf
+# include /path/to/other.conf
+# include /path/to/fragments/*.conf
+#
+
+################################## MODULES #####################################
+
+# Load modules at startup. If the server is not able to load modules
+# it will abort. It is possible to use multiple loadmodule directives.
+#
+# loadmodule /path/to/my_module.so
+# loadmodule /path/to/other_module.so
+# loadmodule /path/to/args_module.so [arg [arg ...]]
+
+################################## NETWORK #####################################
+
+# By default, if no "bind" configuration directive is specified, the server listens
+# for connections from all available network interfaces on the host machine.
+# It is possible to listen to just one or multiple selected interfaces using
+# the "bind" configuration directive, followed by one or more IP addresses.
+# Each address can be prefixed by "-", which means that the server will not fail to
+# start if the address is not available. Being not available only refers to
+# addresses that does not correspond to any network interface. Addresses that
+# are already in use will always fail, and unsupported protocols will always BE
+# silently skipped.
+#
+# Examples:
+#
+# bind 192.168.1.100 10.0.0.1     # listens on two specific IPv4 addresses
+# bind 127.0.0.1 ::1              # listens on loopback IPv4 and IPv6
+# bind * -::*                     # like the default, all available interfaces
+#
+# ~~~ WARNING ~~~ If the computer running the server is directly exposed to the
+# internet, binding to all the interfaces is dangerous and will expose the
+# instance to everybody on the internet. So by default we uncomment the
+# following bind directive, that will force the server to listen only on the
+# IPv4 and IPv6 (if available) loopback interface addresses (this means the server
+# will only be able to accept client connections from the same host that it is
+# running on).
+#
+# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
+# COMMENT OUT THE FOLLOWING LINE.
+#
+# You will also need to set a password unless you explicitly disable protected
+# mode.
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+bind 127.0.0.1 -::1
+
+# By default, outgoing connections (from replica to primary, from Sentinel to
+# instances, cluster bus, etc.) are not bound to a specific local address. In
+# most cases, this means the operating system will handle that based on routing
+# and the interface through which the connection goes out.
+#
+# Using bind-source-addr it is possible to configure a specific address to bind
+# to, which may also affect how the connection gets routed.
+#
+# Example:
+#
+# bind-source-addr 10.0.0.1
+
+# Protected mode is a layer of security protection, in order to avoid that
+# the server instances left open on the internet are accessed and exploited.
+#
+# When protected mode is on and the default user has no password, the server
+# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address
+# (::1) or Unix domain sockets.
+#
+# By default protected mode is enabled. You should disable it only if
+# you are sure you want clients from other hosts to connect to the server
+# even if no authentication is configured.
+protected-mode yes
+
+# The server uses default hardened security configuration directives to reduce the
+# attack surface on innocent users. Therefore, several sensitive configuration
+# directives are immutable, and some potentially-dangerous commands are blocked.
+#
+# Configuration directives that control files that the server writes to (e.g., 'dir'
+# and 'dbfilename') and that aren't usually modified during runtime
+# are protected by making them immutable.
+#
+# Commands that can increase the attack surface of the server and that aren't usually
+# called by users are blocked by default.
+#
+# These can be exposed to either all connections or just local ones by setting
+# each of the configs listed below to either of these values:
+#
+# no    - Block for any connection (remain immutable)
+# yes   - Allow for any connection (no protection)
+# local - Allow only for local connections. Ones originating from the
+#         IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets.
+#
+# enable-protected-configs no
+# enable-debug-command no
+# enable-module-command no
+
+# Accept connections on the specified port, default is 6379 (IANA #815344).
+# If port 0 is specified the server will not listen on a TCP socket.
+port 6378
+
+# TCP listen() backlog.
+#
+# In high requests-per-second environments you need a high backlog in order
+# to avoid slow clients connection issues. Note that the Linux kernel
+# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
+# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
+# in order to get the desired effect.
+tcp-backlog 511
+
+# Unix socket.
+#
+# Specify the path for the Unix socket that will be used to listen for
+# incoming connections. There is no default, so the server will not listen
+# on a unix socket when not specified.
+#
+# unixsocket /run/valkey/valkey-server.sock
+# unixsocketgroup wheel
+# unixsocketperm 700
+# unixsocket /run/valkey/valkey-server-6378.sock
+# unixsocketgroup valkey
+# unixsocketperm 770
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# TCP keepalive.
+#
+# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
+# of communication. This is useful for two reasons:
+#
+# 1) Detect dead peers.
+# 2) Force network equipment in the middle to consider the connection to be
+#    alive.
+#
+# On Linux, the specified value (in seconds) is the period used to send ACKs.
+# Note that to close the connection the double of the time is needed.
+# On other kernels the period depends on the kernel configuration.
+tcp-keepalive 300
+
+# Apply OS-specific mechanism to mark the listening socket with the specified
+# ID, to support advanced routing and filtering capabilities.
+#
+# On Linux, the ID represents a connection mark.
+# On FreeBSD, the ID represents a socket cookie ID.
+# On OpenBSD, the ID represents a route table ID.
+#
+# The default value is 0, which implies no marking is required.
+# socket-mark-id 0
+
+################################# TLS/SSL #####################################
+
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# TCP keepalive.
+#
+# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
+# of communication. This is useful for two reasons:
+#
+# 1) Detect dead peers.
+# 2) Force network equipment in the middle to consider the connection to be
+#    alive.
+#
+# On Linux, the specified value (in seconds) is the period used to send ACKs.
+# Note that to close the connection the double of the time is needed.
+# On other kernels the period depends on the kernel configuration.
+tcp-keepalive 300
+
+# Apply OS-specific mechanism to mark the listening socket with the specified
+# ID, to support advanced routing and filtering capabilities.
+#
+# On Linux, the ID represents a connection mark.
+# On FreeBSD, the ID represents a socket cookie ID.
+# On OpenBSD, the ID represents a route table ID.
+#
+# The default value is 0, which implies no marking is required.
+# socket-mark-id 0
+
+################################# TLS/SSL #####################################
+
+# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration
+# directive can be used to define TLS-listening ports. To enable TLS on the
+# default port, use:
+#
+# port 0
+# tls-port 6379
+
+# Configure a X.509 certificate and private key to use for authenticating the
+# server to connected clients, primaries or cluster peers.  These files should be
+# PEM formatted.
+#
+# tls-cert-file valkey.crt
+# tls-key-file valkey.key
+#
+# If the key file is encrypted using a passphrase, it can be included here
+# as well.
+#
+# tls-key-file-pass secret
+
+# Normally the server uses the same certificate for both server functions (accepting
+# connections) and client functions (replicating from a primary, establishing
+# cluster bus connections, etc.).
+#
+# Sometimes certificates are issued with attributes that designate them as
+# client-only or server-only certificates. In that case it may be desired to use
+# different certificates for incoming (server) and outgoing (client)
+# connections. To do that, use the following directives:
+#
+# tls-client-cert-file client.crt
+# tls-client-key-file client.key
+#
+# If the key file is encrypted using a passphrase, it can be included here
+# as well.
+#
+# tls-client-key-file-pass secret
+
+# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange,
+# required by older versions of OpenSSL (<3.0). Newer versions do not require
+# this configuration and recommend against it.
+#
+# tls-dh-params-file valkey.dh
+
+# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL
+# clients and peers. The server requires an explicit configuration of at least one
+# of these, and will not implicitly use the system wide configuration.
+#
+# tls-ca-cert-file ca.crt
+# tls-ca-cert-dir /etc/ssl/certs
+
+# By default, clients (including replica servers) on a TLS port are required
+# to authenticate using valid client side certificates.
+#
+# If "no" is specified, client certificates are not required and not accepted.
+# If "optional" is specified, client certificates are accepted and must be
+# valid if provided, but are not required.
+#
+# tls-auth-clients no
+# tls-auth-clients optional
+
+# By default, a replica does not attempt to establish a TLS connection
+# with its primary.
+#
+# Use the following directive to enable TLS on replication links.
+#
+# tls-replication yes
+
+# By default, the cluster bus uses a plain TCP connection. To enable
+# TLS for the bus protocol, use the following directive:
+#
+# tls-cluster yes
+
+# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended
+# that older formally deprecated versions are kept disabled to reduce the attack surface.
+# You can explicitly specify TLS versions to support.
+# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2",
+# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination.
+# To enable only TLSv1.2 and TLSv1.3, use:
+#
+# tls-protocols "TLSv1.2 TLSv1.3"
+
+# Configure allowed ciphers.  See the ciphers(1ssl) manpage for more information
+# about the syntax of this string.
+#
+# Note: this configuration applies only to <= TLSv1.2.
+#
+# tls-ciphers DEFAULT:!MEDIUM
+
+# Configure allowed TLSv1.3 ciphersuites.  See the ciphers(1ssl) manpage for more
+# information about the syntax of this string, and specifically for TLSv1.3
+# ciphersuites.
+#
+# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256
+
+# When choosing a cipher, use the server's preference instead of the client
+# preference. By default, the server follows the client's preference.
+#
+# tls-prefer-server-ciphers yes
+
+# By default, TLS session caching is enabled to allow faster and less expensive
+# reconnections by clients that support it. Use the following directive to disable
+# caching.
+#
+# tls-session-caching no
+
+# Change the default number of TLS sessions cached. A zero value sets the cache
+# to unlimited size. The default size is 20480.
+#
+# tls-session-cache-size 5000
+
+# Change the default timeout of cached TLS sessions. The default timeout is 300
+# seconds.
+#
+# tls-session-cache-timeout 60
+
+################################# GENERAL #####################################
+
+# By default the server does not run as a daemon. Use 'yes' if you need it.
+# Note that the server will write a pid file in /var/run/valkey.pid when daemonized.
+# When the server is supervised by upstart or systemd, this parameter has no impact.
+daemonize yes
+
+# If you run the server from upstart or systemd, the server can interact with your
+# supervision tree. Options:
+#   supervised no      - no supervision interaction
+#   supervised upstart - signal upstart by putting the server into SIGSTOP mode
+#                        requires "expect stop" in your upstart job config
+#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+#                        on startup, and updating the server status on a regular
+#                        basis.
+#   supervised auto    - detect upstart or systemd method based on
+#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+#       They do not enable continuous pings back to your supervisor.
+#
+# The default is "no". To run under upstart/systemd, you can simply uncomment
+# the line below:
+#
+# supervised auto
+
+# If a pid file is specified, the server writes it where specified at startup
+# and removes it at exit.
+#
+# When the server runs non daemonized, no pid file is created if none is
+# specified in the configuration. When the server is daemonized, the pid file
+# is used even if not specified, defaulting to "/var/run/valkey.pid".
+#
+# Creating a pid file is best effort: if the server is not able to create it
+# nothing bad happens, the server will start and run normally.
+#
+# Note that on modern Linux systems "/run/valkey.pid" is more conforming
+# and should be used instead.
+pidfile /run/valkey/valkey-server-6378.pid
+
+# Specify the server verbosity level.
+# This can be one of:
+# debug (a lot of information, useful for development/testing)
+# verbose (many rarely useful info, but not a mess like the debug level)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+# nothing (nothing is logged)
+loglevel notice
+
+# Specify the log file name. Also the empty string can be used to force
+# the server to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile /var/log/valkey/valkey-server-6378.log
+
+# To enable logging to the system logger, just set 'syslog-enabled' to yes,
+# and optionally update the other syslog parameters to suit your needs.
+# syslog-enabled no
+
+# Specify the syslog identity.
+# syslog-ident valkey
+
+# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+# syslog-facility local0
+
+# To disable the built in crash log, which will possibly produce cleaner core
+# dumps when they are needed, uncomment the following:
+#
+# crash-log-enabled no
+
+# To disable the fast memory check that's run as part of the crash log, which
+# will possibly let the server terminate sooner, uncomment the following:
+#
+# crash-memcheck-enabled no
+
+# Set the number of databases. The default database is DB 0, you can select
+# a different one on a per-connection basis using SELECT <dbid> where
+# dbid is a number between 0 and 'databases'-1
+databases 16
+
+# By default the server shows an ASCII art logo only when started to log to the
+# standard output and if the standard output is a TTY and syslog logging is
+# disabled. Basically this means that normally a logo is displayed only in
+# interactive sessions.
+#
+# However it is possible to force the pre-4.0 behavior and always show a
+# ASCII art logo in startup logs by setting the following option to yes.
+always-show-logo no
+
+# User data, including keys, values, client names, and ACL usernames, can be
+# logged as part of assertions and other error cases. To prevent sensitive user
+# information, such as PII, from being recorded in the server log file, this
+# user data is hidden from the log by default. If you need to log user data for
+# debugging or troubleshooting purposes, you can disable this feature by
+# changing the config value to no.
+hide-user-data-from-log yes
+
+# By default, the server modifies the process title (as seen in 'top' and 'ps') to
+# provide some runtime information. It is possible to disable this and leave
+# the process name as executed by setting the following to no.
+set-proc-title yes
+
+# When changing the process title, the server uses the following template to construct
+# the modified title.
+#
+# Template variables are specified in curly brackets. The following variables are
+# supported:
+#
+# {title}           Name of process as executed if parent, or type of child process.
+# {listen-addr}     Bind address or '*' followed by TCP or TLS port listening on, or
+#                   Unix socket if only that's available.
+# {server-mode}     Special mode, i.e. "[sentinel]" or "[cluster]".
+# {port}            TCP port listening on, or 0.
+# {tls-port}        TLS port listening on, or 0.
+# {unixsocket}      Unix domain socket listening on, or "".
+# {config-file}     Name of configuration file used.
+#
+proc-title-template "{title} {listen-addr} {server-mode}"
+
+# Set the local environment which is used for string comparison operations, and 
+# also affect the performance of Lua scripts. Empty String indicates the locale 
+# is derived from the environment variables.
+locale-collate ""
+
+# Valkey is largely compatible with Redis OSS, apart from a few cases where
+# Valkey identifies itself itself as "Valkey" rather than "Redis". Extended
+# Redis OSS compatibility mode makes Valkey pretend to be Redis. Enable this
+# only if you have problems with tools or clients. This is a temporary
+# configuration added in Valkey 8.0 and is scheduled to have no effect in Valkey
+# 9.0 and be completely removed in Valkey 10.0.
+#
+# extended-redis-compatibility no
+
+################################ SNAPSHOTTING  ################################
+
+# Save the DB to disk.
+#
+# save <seconds> <changes> [<seconds> <changes> ...]
+#
+# The server will save the DB if the given number of seconds elapsed and it
+# surpassed the given number of write operations against the DB.
+#
+# Snapshotting can be completely disabled with a single empty string argument
+# as in following example:
+#
+# save ""
+#
+# Unless specified otherwise, by default the server will save the DB:
+#   * After 3600 seconds (an hour) if at least 1 change was performed
+#   * After 300 seconds (5 minutes) if at least 100 changes were performed
+#   * After 60 seconds if at least 10000 changes were performed
+#
+# You can set these explicitly by uncommenting the following line.
+#
+# save 3600 1 300 100 60 10000
+
+# By default the server will stop accepting writes if RDB snapshots are enabled
+# (at least one save point) and the latest background save failed.
+# This will make the user aware (in a hard way) that data is not persisting
+# on disk properly, otherwise chances are that no one will notice and some
+# disaster will happen.
+#
+# If the background saving process will start working again, the server will
+# automatically allow writes again.
+#
+# However if you have setup your proper monitoring of the server
+# and persistence, you may want to disable this feature so that the server will
+# continue to work as usual even if there are problems with disk,
+# permissions, and so forth.
+stop-writes-on-bgsave-error yes
+
+# Compress string objects using LZF when dump .rdb databases?
+# By default compression is enabled as it's almost always a win.
+# If you want to save some CPU in the saving child set it to 'no' but
+# the dataset will likely be bigger if you have compressible values or keys.
+rdbcompression yes
+
+# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
+# This makes the format more resistant to corruption but there is a performance
+# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
+# for maximum performances.
+#
+# RDB files created with checksum disabled have a checksum of zero that will
+# tell the loading code to skip the check.
+rdbchecksum yes
+
+# Enables or disables full sanitization checks for ziplist and listpack etc when
+# loading an RDB or RESTORE payload. This reduces the chances of a assertion or
+# crash later on while processing commands.
+# Options:
+#   no         - Never perform full sanitization
+#   yes        - Always perform full sanitization
+#   clients    - Perform full sanitization only for user connections.
+#                Excludes: RDB files, RESTORE commands received from the primary
+#                connection, and client connections which have the
+#                skip-sanitize-payload ACL flag.
+# The default should be 'clients' but since it currently affects cluster
+# resharding via MIGRATE, it is temporarily set to 'no' by default.
+#
+# sanitize-dump-payload no
+
+# The filename where to dump the DB
+dbfilename dump-6378.rdb
+
+# Remove RDB files used by replication in instances without persistence
+# enabled. By default this option is disabled, however there are environments
+# where for regulations or other security concerns, RDB files persisted on
+# disk by primaries in order to feed replicas, or stored on disk by replicas
+# in order to load them for the initial synchronization, should be deleted
+# ASAP. Note that this option ONLY WORKS in instances that have both AOF
+# and RDB persistence disabled, otherwise is completely ignored.
+#
+# An alternative (and sometimes better) way to obtain the same effect is
+# to use diskless replication on both primary and replicas instances. However
+# in the case of replicas, diskless is not always an option.
+rdb-del-sync-files no
+
+# The working directory.
+#
+# The DB will be written inside this directory, with the filename specified
+# above using the 'dbfilename' configuration directive.
+#
+# The Append Only File will also be created inside this directory.
+#
+# The Cluster config file is written relative this directory, if the
+# 'cluster-config-file' configuration directive is a relative path.
+#
+# Note that you must specify a directory here, not a file name.
+dir /var/lib/valkey
+
+################################# REPLICATION #################################
+
+# Master-Replica replication. Use replicaof to make a server a copy of
+# another server. A few things to understand ASAP about replication.
+#
+#   +------------------+      +---------------+
+#   |      Master      | ---> |    Replica    |
+#   | (receive writes) |      |  (exact copy) |
+#   +------------------+      +---------------+
+#
+# 1) Replication is asynchronous, but you can configure a primary to
+#    stop accepting writes if it appears to be not connected with at least
+#    a given number of replicas.
+# 2) Replicas are able to perform a partial resynchronization with the
+#    primary if the replication link is lost for a relatively small amount of
+#    time. You may want to configure the replication backlog size (see the next
+#    sections of this file) with a sensible value depending on your needs.
+# 3) Replication is automatic and does not need user intervention. After a
+#    network partition replicas automatically try to reconnect to primaries
+#    and resynchronize with them.
+#
+# replicaof <primary_ip> <primary_port>
+
+# If the primary is password protected (using the "requirepass" configuration
+# directive below) it is possible to tell the replica to authenticate before
+# starting the replication synchronization process, otherwise the primary will
+# refuse the replica request.
+#
+# primaryauth <primary-password>
+#
+# However this is not enough if you are using ACLs
+# and the default user is not capable of running the PSYNC
+# command and/or other commands needed for replication. In this case it's
+# better to configure a special user to use with replication, and specify the
+# primaryuser configuration as such:
+#
+# primaryuser <username>
+#
+# When primaryuser is specified, the replica will authenticate against its
+# primary using the new AUTH form: AUTH <username> <password>.
+
+# When a replica loses its connection with the primary, or when the replication
+# is still in progress, the replica can act in two different ways:
+#
+# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will
+#    still reply to client requests, possibly with out of date data, or the
+#    data set may just be empty if this is the first synchronization.
+#
+# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error
+#    "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'"
+#    to all data access commands, excluding commands such as:
+#    INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
+#    UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST,
+#    HOST and LATENCY.
+#
+replica-serve-stale-data yes
+
+# You can configure a replica instance to accept writes or not. Writing against
+# a replica instance may be useful to store some ephemeral data (because data
+# written on a replica will be easily deleted after resync with the primary) but
+# may also cause problems if clients are writing to it because of a
+# misconfiguration.
+#
+# By default, replicas are read-only.
+#
+# Note: read only replicas are not designed to be exposed to untrusted clients
+# on the internet. It's just a protection layer against misuse of the instance.
+# Still a read only replica exports by default all the administrative commands
+# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
+# security of read only replicas using 'rename-command' to shadow all the
+# administrative / dangerous commands.
+replica-read-only yes
+
+# Replication SYNC strategy: disk or socket.
+#
+# New replicas and reconnecting replicas that are not able to continue the
+# replication process just receiving differences, need to do what is called a
+# "full synchronization". An RDB file is transmitted from the primary to the
+# replicas.
+#
+# The transmission can happen in two different ways:
+#
+# 1) Disk-backed: The primary creates a new process that writes the RDB
+#                 file on disk. Later the file is transferred by the parent
+#                 process to the replicas incrementally.
+# 2) Diskless: The primary creates a new process that directly writes the
+#              RDB file to replica sockets, without touching the disk at all.
+#
+# With disk-backed replication, while the RDB file is generated, more replicas
+# can be queued and served with the RDB file as soon as the current child
+# producing the RDB file finishes its work. With diskless replication instead
+# once the transfer starts, new replicas arriving will be queued and a new
+# transfer will start when the current one terminates.
+#
+# When diskless replication is used, the primary waits a configurable amount of
+# time (in seconds) before starting the transfer in the hope that multiple
+# replicas will arrive and the transfer can be parallelized.
+#
+# With slow disks and fast (large bandwidth) networks, diskless replication
+# works better.
+repl-diskless-sync yes
+
+# When diskless replication is enabled, it is possible to configure the delay
+# the server waits in order to spawn the child that transfers the RDB via socket
+# to the replicas.
+#
+# This is important since once the transfer starts, it is not possible to serve
+# new replicas arriving, that will be queued for the next RDB transfer, so the
+# server waits a delay in order to let more replicas arrive.
+#
+# The delay is specified in seconds, and by default is 5 seconds. To disable
+# it entirely just set it to 0 seconds and the transfer will start ASAP.
+repl-diskless-sync-delay 5
+
+# When diskless replication is enabled with a delay, it is possible to let
+# the replication start before the maximum delay is reached if the maximum
+# number of replicas expected have connected. Default of 0 means that the
+# maximum is not defined and the server will wait the full delay.
+repl-diskless-sync-max-replicas 0
+
+# -----------------------------------------------------------------------------
+# WARNING: Since in this setup the replica does not immediately store an RDB on
+# disk, it may cause data loss during failovers. RDB diskless load + server
+# modules not handling I/O reads may cause the server to abort in case of I/O errors
+# during the initial synchronization stage with the primary.
+# -----------------------------------------------------------------------------
+#
+# Replica can load the RDB it reads from the replication link directly from the
+# socket, or store the RDB to a file and read that file after it was completely
+# received from the primary.
+#
+# In many cases the disk is slower than the network, and storing and loading
+# the RDB file may increase replication time (and even increase the primary's
+# Copy on Write memory and replica buffers).
+# However, when parsing the RDB file directly from the socket, in order to avoid
+# data loss it's only safe to flush the current dataset when the new dataset is
+# fully loaded in memory, resulting in higher memory usage.
+# For this reason we have the following options:
+#
+# "disabled"    - Don't use diskless load (store the rdb file to the disk first)
+# "swapdb"      - Keep current db contents in RAM while parsing the data directly
+#                 from the socket. Replicas in this mode can keep serving current
+#                 dataset while replication is in progress, except for cases where
+#                 they can't recognize primary as having a data set from same
+#                 replication history.
+#                 Note that this requires sufficient memory, if you don't have it,
+#                 you risk an OOM kill.
+# "on-empty-db" - Use diskless load only when current dataset is empty. This is 
+#                 safer and avoid having old and new dataset loaded side by side
+#                 during replication.
+repl-diskless-load disabled
+
+# This dual channel replication sync feature optimizes the full synchronization process 
+# between a primary and its replicas. When enabled, it reduces both memory and CPU load 
+# on the primary server.
+#
+# How it works:
+# 1. During full sync, instead of accumulating replication data on the primary server,
+#    the data is sent directly to the syncing replica.
+# 2. The primary's background save (bgsave) process streams the RDB snapshot directly
+#    to the replica over a separate connection.
+# 
+# Tradeoff:
+# While this approach reduces load on the primary, it shifts the burden of storing 
+# the replication buffer to the replica. This means the replica must have sufficient 
+# memory to accommodate the buffer during synchronization. However, this tradeoff is 
+# generally beneficial as it prevents potential performance degradation on the primary 
+# server, which is typically handling more critical operations.
+#
+# When toggling this configuration on or off during an ongoing synchronization process,
+# it does not change the already running sync method. The new configuration will take
+# effect only for subsequent synchronization processes.
+
+dual-channel-replication-enabled no
+
+# Master send PINGs to its replicas in a predefined interval. It's possible to
+# change this interval with the repl_ping_replica_period option. The default
+# value is 10 seconds.
+#
+# repl-ping-replica-period 10
+
+# The following option sets the replication timeout for:
+#
+# 1) Bulk transfer I/O during SYNC, from the point of view of replica.
+# 2) Master timeout from the point of view of replicas (data, pings).
+# 3) Replica timeout from the point of view of primaries (REPLCONF ACK pings).
+#
+# It is important to make sure that this value is greater than the value
+# specified for repl-ping-replica-period otherwise a timeout will be detected
+# every time there is low traffic between the primary and the replica. The default
+# value is 60 seconds.
+#
+# repl-timeout 60
+
+# Disable TCP_NODELAY on the replica socket after SYNC?
+#
+# If you select "yes", the server will use a smaller number of TCP packets and
+# less bandwidth to send data to replicas. But this can add a delay for
+# the data to appear on the replica side, up to 40 milliseconds with
+# Linux kernels using a default configuration.
+#
+# If you select "no" the delay for data to appear on the replica side will
+# be reduced but more bandwidth will be used for replication.
+#
+# By default we optimize for low latency, but in very high traffic conditions
+# or when the primary and replicas are many hops away, turning this to "yes" may
+# be a good idea.
+repl-disable-tcp-nodelay no
+
+# Set the replication backlog size. The backlog is a buffer that accumulates
+# replica data when replicas are disconnected for some time, so that when a
+# replica wants to reconnect again, often a full resync is not needed, but a
+# partial resync is enough, just passing the portion of data the replica
+# missed while disconnected.
+#
+# The bigger the replication backlog, the longer the replica can endure the
+# disconnect and later be able to perform a partial resynchronization.
+#
+# The backlog is only allocated if there is at least one replica connected.
+#
+# repl-backlog-size 10mb
+
+# After a primary has no connected replicas for some time, the backlog will be
+# freed. The following option configures the amount of seconds that need to
+# elapse, starting from the time the last replica disconnected, for the backlog
+# buffer to be freed.
+#
+# Note that replicas never free the backlog for timeout, since they may be
+# promoted to primaries later, and should be able to correctly "partially
+# resynchronize" with other replicas: hence they should always accumulate backlog.
+#
+# A value of 0 means to never release the backlog.
+#
+# repl-backlog-ttl 3600
+
+# The replica priority is an integer number published by the server in the INFO
+# output. It is used by Sentinel in order to select a replica to promote
+# into a primary if the primary is no longer working correctly.
+#
+# A replica with a low priority number is considered better for promotion, so
+# for instance if there are three replicas with priority 10, 100, 25 Sentinel
+# will pick the one with priority 10, that is the lowest.
+#
+# However a special priority of 0 marks the replica as not able to perform the
+# role of primary, so a replica with priority of 0 will never be selected by
+# Sentinel for promotion.
+#
+# By default the priority is 100.
+replica-priority 100
+
+# The propagation error behavior controls how the server will behave when it is
+# unable to handle a command being processed in the replication stream from a primary
+# or processed while reading from an AOF file. Errors that occur during propagation
+# are unexpected, and can cause data inconsistency. 
+#
+# If an application wants to ensure there is no data divergence, this configuration
+# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas'
+# to only panic when a replica encounters an error on the replication stream. One of
+# these two panic values will become the default value in the future once there are
+# sufficient safety mechanisms in place to prevent false positive crashes.
+#
+# propagation-error-behavior ignore
+
+# Replica ignore disk write errors controls the behavior of a replica when it is
+# unable to persist a write command received from its primary to disk. By default,
+# this configuration is set to 'no' and will crash the replica in this condition.
+# It is not recommended to change this default.
+#
+# replica-ignore-disk-write-errors no
+
+# -----------------------------------------------------------------------------
+# By default, Sentinel includes all replicas in its reports. A replica
+# can be excluded from Sentinel's announcements. An unannounced replica
+# will be ignored by the 'sentinel replicas <primary>' command and won't be
+# exposed to Sentinel's clients.
+#
+# This option does not change the behavior of replica-priority. Even with
+# replica-announced set to 'no', the replica can be promoted to primary. To
+# prevent this behavior, set replica-priority to 0.
+#
+# replica-announced yes
+
+# It is possible for a primary to stop accepting writes if there are less than
+# N replicas connected, having a lag less or equal than M seconds.
+#
+# The N replicas need to be in "online" state.
+#
+# The lag in seconds, that must be <= the specified value, is calculated from
+# the last ping received from the replica, that is usually sent every second.
+#
+# This option does not GUARANTEE that N replicas will accept the write, but
+# will limit the window of exposure for lost writes in case not enough replicas
+# are available, to the specified number of seconds.
+#
+# For example to require at least 3 replicas with a lag <= 10 seconds use:
+#
+# min-replicas-to-write 3
+# min-replicas-max-lag 10
+#
+# Setting one or the other to 0 disables the feature.
+#
+# By default min-replicas-to-write is set to 0 (feature disabled) and
+# min-replicas-max-lag is set to 10.
+
+# A primary is able to list the address and port of the attached
+# replicas in different ways. For example the "INFO replication" section
+# offers this information, which is used, among other tools, by
+# Sentinel in order to discover replica instances.
+# Another place where this info is available is in the output of the
+# "ROLE" command of a primary.
+#
+# The listed IP address and port normally reported by a replica is
+# obtained in the following way:
+#
+#   IP: The address is auto detected by checking the peer address
+#   of the socket used by the replica to connect with the primary.
+#
+#   Port: The port is communicated by the replica during the replication
+#   handshake, and is normally the port that the replica is using to
+#   listen for connections.
+#
+# However when port forwarding or Network Address Translation (NAT) is
+# used, the replica may actually be reachable via different IP and port
+# pairs. The following two options can be used by a replica in order to
+# report to its primary a specific set of IP and port, so that both INFO
+# and ROLE will report those values.
+#
+# There is no need to use both the options if you need to override just
+# the port or the IP address.
+#
+# replica-announce-ip 5.5.5.5
+# replica-announce-port 1234
+
+############################### KEYS TRACKING #################################
+
+# The client side caching of values is assisted via server-side support.
+# This is implemented using an invalidation table that remembers, using
+# a radix key indexed by key name, what clients have which keys. In turn
+# this is used in order to send invalidation messages to clients. Please
+# check this page to understand more about the feature:
+#
+#   https://valkey.io/topics/client-side-caching
+#
+# When tracking is enabled for a client, all the read only queries are assumed
+# to be cached: this will force the server to store information in the invalidation
+# table. When keys are modified, such information is flushed away, and
+# invalidation messages are sent to the clients. However if the workload is
+# heavily dominated by reads, the server could use more and more memory in order
+# to track the keys fetched by many clients.
+#
+# For this reason it is possible to configure a maximum fill value for the
+# invalidation table. By default it is set to 1M of keys, and once this limit
+# is reached, the server will start to evict keys in the invalidation table
+# even if they were not modified, just to reclaim memory: this will in turn
+# force the clients to invalidate the cached values. Basically the table
+# maximum size is a trade off between the memory you want to spend server
+# side to track information about who cached what, and the ability of clients
+# to retain cached objects in memory.
+#
+# If you set the value to 0, it means there are no limits, and the server will
+# retain as many keys as needed in the invalidation table.
+# In the "stats" INFO section, you can find information about the number of
+# keys in the invalidation table at every given moment.
+#
+# Note: when key tracking is used in broadcasting mode, no memory is used
+# in the server side so this setting is useless.
+#
+# tracking-table-max-keys 1000000
+
+################################## SECURITY ###################################
+
+# Warning: since the server is pretty fast, an outside user can try up to
+# 1 million passwords per second against a modern box. This means that you
+# should use very strong passwords, otherwise they will be very easy to break.
+# Note that because the password is really a shared secret between the client
+# and the server, and should not be memorized by any human, the password
+# can be easily a long string from /dev/urandom or whatever, so by using a
+# long and unguessable password no brute force attack will be possible.
+
+# ACL users are defined in the following format:
+#
+#   user <username> ... acl rules ...
+#
+# For example:
+#
+#   user worker +@list +@connection ~jobs:* on >ffa9203c493aa99
+#
+# The special username "default" is used for new connections. If this user
+# has the "nopass" rule, then new connections will be immediately authenticated
+# as the "default" user without the need of any password provided via the
+# AUTH command. Otherwise if the "default" user is not flagged with "nopass"
+# the connections will start in not authenticated state, and will require
+# AUTH (or the HELLO command AUTH option) in order to be authenticated and
+# start to work.
+#
+# The ACL rules that describe what a user can do are the following:
+#
+#  on           Enable the user: it is possible to authenticate as this user.
+#  off          Disable the user: it's no longer possible to authenticate
+#               with this user, however the already authenticated connections
+#               will still work.
+#  skip-sanitize-payload    RESTORE dump-payload sanitization is skipped.
+#  sanitize-payload         RESTORE dump-payload is sanitized (default).
+#  +<command>   Allow the execution of that command.
+#               May be used with `|` for allowing subcommands (e.g "+config|get")
+#  -<command>   Disallow the execution of that command.
+#               May be used with `|` for blocking subcommands (e.g "-config|set")
+#  +@<category> Allow the execution of all the commands in such category
+#               with valid categories are like @admin, @set, @sortedset, ...
+#               and so forth, see the full list in the server.c file where
+#               the server command table is described and defined.
+#               The special category @all means all the commands, but currently
+#               present in the server, and that will be loaded in the future
+#               via modules.
+#  +<command>|first-arg  Allow a specific first argument of an otherwise
+#                        disabled command. It is only supported on commands with
+#                        no sub-commands, and is not allowed as negative form
+#                        like -SELECT|1, only additive starting with "+". This
+#                        feature is deprecated and may be removed in the future.
+#  allcommands  Alias for +@all. Note that it implies the ability to execute
+#               all the future commands loaded via the modules system.
+#  nocommands   Alias for -@all.
+#  ~<pattern>   Add a pattern of keys that can be mentioned as part of
+#               commands. For instance ~* allows all the keys. The pattern
+#               is a glob-style pattern like the one of KEYS.
+#               It is possible to specify multiple patterns.
+# %R~<pattern>  Add key read pattern that specifies which keys can be read 
+#               from.
+# %W~<pattern>  Add key write pattern that specifies which keys can be
+#               written to. 
+#  allkeys      Alias for ~*
+#  resetkeys    Flush the list of allowed keys patterns.
+#  &<pattern>   Add a glob-style pattern of Pub/Sub channels that can be
+#               accessed by the user. It is possible to specify multiple channel
+#               patterns.
+#  allchannels  Alias for &*
+#  resetchannels            Flush the list of allowed channel patterns.
+#  ><password>  Add this password to the list of valid password for the user.
+#               For example >mypass will add "mypass" to the list.
+#               This directive clears the "nopass" flag (see later).
+#  <<password>  Remove this password from the list of valid passwords.
+#  nopass       All the set passwords of the user are removed, and the user
+#               is flagged as requiring no password: it means that every
+#               password will work against this user. If this directive is
+#               used for the default user, every new connection will be
+#               immediately authenticated with the default user without
+#               any explicit AUTH command required. Note that the "resetpass"
+#               directive will clear this condition.
+#  resetpass    Flush the list of allowed passwords. Moreover removes the
+#               "nopass" status. After "resetpass" the user has no associated
+#               passwords and there is no way to authenticate without adding
+#               some password (or setting it as "nopass" later).
+#  reset        Performs the following actions: resetpass, resetkeys, resetchannels,
+#               allchannels (if acl-pubsub-default is set), off, clearselectors, -@all.
+#               The user returns to the same state it has immediately after its creation.
+# (<options>)   Create a new selector with the options specified within the
+#               parentheses and attach it to the user. Each option should be 
+#               space separated. The first character must be ( and the last 
+#               character must be ).
+# clearselectors            Remove all of the currently attached selectors. 
+#                           Note this does not change the "root" user permissions,
+#                           which are the permissions directly applied onto the
+#                           user (outside the parentheses).
+#
+# ACL rules can be specified in any order: for instance you can start with
+# passwords, then flags, or key patterns. However note that the additive
+# and subtractive rules will CHANGE MEANING depending on the ordering.
+# For instance see the following example:
+#
+#   user alice on +@all -DEBUG ~* >somepassword
+#
+# This will allow "alice" to use all the commands with the exception of the
+# DEBUG command, since +@all added all the commands to the set of the commands
+# alice can use, and later DEBUG was removed. However if we invert the order
+# of two ACL rules the result will be different:
+#
+#   user alice on -DEBUG +@all ~* >somepassword
+#
+# Now DEBUG was removed when alice had yet no commands in the set of allowed
+# commands, later all the commands are added, so the user will be able to
+# execute everything.
+#
+# Basically ACL rules are processed left-to-right.
+#
+# The following is a list of command categories and their meanings:
+# * keyspace - Writing or reading from keys, databases, or their metadata 
+#     in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE,
+#     KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace,
+#     key or metadata will also have `write` category. Commands that only read
+#     the keyspace, key or metadata will have the `read` category.
+# * read - Reading from keys (values or metadata). Note that commands that don't
+#     interact with keys, will not have either `read` or `write`.
+# * write - Writing to keys (values or metadata)
+# * admin - Administrative commands. Normal applications will never need to use
+#     these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc.
+# * dangerous - Potentially dangerous (each should be considered with care for
+#     various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS,
+#     CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc.
+# * connection - Commands affecting the connection or other connections.
+#     This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc.
+# * blocking - Potentially blocking the connection until released by another
+#     command.
+# * fast - Fast O(1) commands. May loop on the number of arguments, but not the
+#     number of elements in the key.
+# * slow - All commands that are not Fast.
+# * pubsub - PUBLISH / SUBSCRIBE related
+# * transaction - WATCH / MULTI / EXEC related commands.
+# * scripting - Scripting related.
+# * set - Data type: sets related.
+# * sortedset - Data type: zsets related.
+# * list - Data type: lists related.
+# * hash - Data type: hashes related.
+# * string - Data type: strings related.
+# * bitmap - Data type: bitmaps related.
+# * hyperloglog - Data type: hyperloglog related.
+# * geo - Data type: geo related.
+# * stream - Data type: streams related.
+#
+# For more information about ACL configuration please refer to
+# the Valkey web site at https://valkey.io/topics/acl
+
+# ACL LOG
+#
+# The ACL Log tracks failed commands and authentication events associated
+# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked
+# by ACLs. The ACL Log is stored in memory. You can reclaim memory with
+# ACL LOG RESET. Define the maximum entry length of the ACL Log below.
+acllog-max-len 128
+
+# Using an external ACL file
+#
+# Instead of configuring users here in this file, it is possible to use
+# a stand-alone file just listing users. The two methods cannot be mixed:
+# if you configure users here and at the same time you activate the external
+# ACL file, the server will refuse to start.
+#
+# The format of the external ACL user file is exactly the same as the
+# format that is used inside valkey.conf to describe users.
+#
+# aclfile /etc/valkey/users.acl
+
+# IMPORTANT NOTE: "requirepass" is just a compatibility
+# layer on top of the new ACL system. The option effect will be just setting
+# the password for the default user. Clients will still authenticate using
+# AUTH <password> as usually, or more explicitly with AUTH default <password>
+# if they follow the new protocol: both will work.
+#
+# The requirepass is not compatible with aclfile option and the ACL LOAD
+# command, these will cause requirepass to be ignored.
+#
+# requirepass foobared
+
+# The default Pub/Sub channels permission for new users is controlled by the
+# acl-pubsub-default configuration directive, which accepts one of these values:
+#
+# allchannels: grants access to all Pub/Sub channels
+# resetchannels: revokes access to all Pub/Sub channels
+#
+# acl-pubsub-default defaults to 'resetchannels' permission.
+#
+# acl-pubsub-default resetchannels
+
+# Command renaming (DEPRECATED).
+#
+# ------------------------------------------------------------------------
+# WARNING: avoid using this option if possible. Instead use ACLs to remove
+# commands from the default user, and put them only in some admin user you
+# create for administrative purposes.
+# ------------------------------------------------------------------------
+#
+# It is possible to change the name of dangerous commands in a shared
+# environment. For instance the CONFIG command may be renamed into something
+# hard to guess so that it will still be available for internal-use tools
+# but not available for general clients.
+#
+# Example:
+#
+# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
+#
+# It is also possible to completely kill a command by renaming it into
+# an empty string:
+#
+# rename-command CONFIG ""
+#
+# Please note that changing the name of commands that are logged into the
+# AOF file or transmitted to replicas may cause problems.
+
+################################### CLIENTS ####################################
+
+# Set the max number of connected clients at the same time. By default
+# this limit is set to 10000 clients, however if the server is not
+# able to configure the process file limit to allow for the specified limit
+# the max number of allowed clients is set to the current file limit
+# minus 32 (as the server reserves a few file descriptors for internal uses).
+#
+# Once the limit is reached the server will close all the new connections sending
+# an error 'max number of clients reached'.
+#
+# IMPORTANT: With a cluster-enabled setup, the max number of connections is also
+# shared with the cluster bus: every node in the cluster will use two
+# connections, one incoming and another outgoing. It is important to size the
+# limit accordingly in case of very large clusters.
+#
+# maxclients 10000
+
+############################## MEMORY MANAGEMENT ################################
+
+# Set a memory usage limit to the specified amount of bytes.
+# When the memory limit is reached the server will try to remove keys
+# according to the eviction policy selected (see maxmemory-policy).
+#
+# If the server can't remove keys according to the policy, or if the policy is
+# set to 'noeviction', the server will start to reply with errors to commands
+# that would use more memory, like SET, LPUSH, and so on, and will continue
+# to reply to read-only commands like GET.
+#
+# This option is usually useful when using the server as an LRU or LFU cache, or to
+# set a hard memory limit for an instance (using the 'noeviction' policy).
+#
+# WARNING: If you have replicas attached to an instance with maxmemory on,
+# the size of the output buffers needed to feed the replicas are subtracted
+# from the used memory count, so that network problems / resyncs will
+# not trigger a loop where keys are evicted, and in turn the output
+# buffer of replicas is full with DELs of keys evicted triggering the deletion
+# of more keys, and so forth until the database is completely emptied.
+#
+# In short... if you have replicas attached it is suggested that you set a lower
+# limit for maxmemory so that there is some free RAM on the system for replica
+# output buffers (but this is not needed if the policy is 'noeviction').
+#
+# maxmemory <bytes>
+maxmemory 200mb
+
+# MAXMEMORY POLICY: how the server will select what to remove when maxmemory
+# is reached. You can select one from the following behaviors:
+#
+# volatile-lru -> Evict using approximated LRU, only keys with an expire set.
+# allkeys-lru -> Evict any key using approximated LRU.
+# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
+# allkeys-lfu -> Evict any key using approximated LFU.
+# volatile-random -> Remove a random key having an expire set.
+# allkeys-random -> Remove a random key, any key.
+# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
+# noeviction -> Don't evict anything, just return an error on write operations.
+#
+# LRU means Least Recently Used
+# LFU means Least Frequently Used
+#
+# Both LRU, LFU and volatile-ttl are implemented using approximated
+# randomized algorithms.
+#
+# Note: with any of the above policies, when there are no suitable keys for
+# eviction, the server will return an error on write operations that require
+# more memory. These are usually commands that create new keys, add data or
+# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE,
+# SORT (due to the STORE argument), and EXEC (if the transaction includes any
+# command that requires memory).
+#
+# The default is:
+#
+# maxmemory-policy noeviction
+maxmemory-policy noeviction
+
+# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated
+# algorithms (in order to save memory), so you can tune it for speed or
+# accuracy. By default the server will check five keys and pick the one that was
+# used least recently, you can change the sample size using the following
+# configuration directive.
+#
+# The default of 5 produces good enough results. 10 Approximates very closely
+# true LRU but costs more CPU. 3 is faster but not very accurate. The maximum
+# value that can be set is 64.
+#
+# maxmemory-samples 5
+
+# Eviction processing is designed to function well with the default setting.
+# If there is an unusually large amount of write traffic, this value may need to
+# be increased.  Decreasing this value may reduce latency at the risk of
+# eviction processing effectiveness
+#   0 = minimum latency, 10 = default, 100 = process without regard to latency
+#
+# maxmemory-eviction-tenacity 10
+
+# By default a replica will ignore its maxmemory setting
+# (unless it is promoted to primary after a failover or manually). It means
+# that the eviction of keys will be just handled by the primary, sending the
+# DEL commands to the replica as keys evict in the primary side.
+#
+# This behavior ensures that primaries and replicas stay consistent, and is usually
+# what you want, however if your replica is writable, or you want the replica
+# to have a different memory setting, and you are sure all the writes performed
+# to the replica are idempotent, then you may change this default (but be sure
+# to understand what you are doing).
+#
+# Note that since the replica by default does not evict, it may end using more
+# memory than the one set via maxmemory (there are certain buffers that may
+# be larger on the replica, or data structures may sometimes take more memory
+# and so forth). So make sure you monitor your replicas and make sure they
+# have enough memory to never hit a real out-of-memory condition before the
+# primary hits the configured maxmemory setting.
+#
+# replica-ignore-maxmemory yes
+
+# The server reclaims expired keys in two ways: upon access when those keys are
+# found to be expired, and also in background, in what is called the
+# "active expire key". The key space is slowly and interactively scanned
+# looking for expired keys to reclaim, so that it is possible to free memory
+# of keys that are expired and will never be accessed again in a short time.
+#
+# The default effort of the expire cycle will try to avoid having more than
+# ten percent of expired keys still in memory, and will try to avoid consuming
+# more than 25% of total memory and to add latency to the system. However
+# it is possible to increase the expire "effort" that is normally set to
+# "1", to a greater value, up to the value "10". At its maximum value the
+# system will use more CPU, longer cycles (and technically may introduce
+# more latency), and will tolerate less already expired keys still present
+# in the system. It's a tradeoff between memory, CPU and latency.
+#
+# active-expire-effort 1
+
+############################# LAZY FREEING ####################################
+
+# When keys are deleted, the served has historically freed their memory using
+# blocking operations. It means that the server stopped processing new commands
+# in order to reclaim all the memory associated with an object in a synchronous
+# way. If the key deleted is associated with a small object, the time needed
+# in order to execute the DEL command is very small and comparable to most other
+# O(1) or O(log_N) commands in the server. However if the key is associated with an
+# aggregated value containing millions of elements, the server can block for
+# a long time (even seconds) in order to complete the operation.
+#
+# For the above reasons, lazy freeing (or asynchronous freeing), has been
+# introduced. With lazy freeing, keys are deleted in constant time. Another
+# thread will incrementally free the object in the background as fast as
+# possible.
+#
+# Starting from Valkey 8.0, lazy freeing is enabled by default. It is possible
+# to retain the synchronous freeing behaviour by setting the lazyfree related
+# configuration directives to 'no'.
+
+# Commands like DEL, FLUSHALL and FLUSHDB delete keys, but the server can also
+# delete keys or flush the whole database as a side effect of other operations.
+# Specifically the server deletes objects independently of a user call in the
+# following scenarios:
+#
+# 1) On eviction, because of the maxmemory and maxmemory policy configurations,
+#    in order to make room for new data, without going over the specified
+#    memory limit.
+# 2) Because of expire: when a key with an associated time to live (see the
+#    EXPIRE command) must be deleted from memory.
+# 3) Because of a side effect of a command that stores data on a key that may
+#    already exist. For example the RENAME command may delete the old key
+#    content when it is replaced with another one. Similarly SUNIONSTORE
+#    or SORT with STORE option may delete existing keys. The SET command
+#    itself removes any old content of the specified key in order to replace
+#    it with the specified string.
+# 4) During replication, when a replica performs a full resynchronization with
+#    its primary, the content of the whole database is removed in order to
+#    load the RDB file just transferred.
+#
+# In all the above cases, the default is to release memory in a non-blocking
+# way.
+
+lazyfree-lazy-eviction yes
+lazyfree-lazy-expire yes
+lazyfree-lazy-server-del yes
+replica-lazy-flush yes
+
+# For keys deleted using the DEL command, lazy freeing is controlled by the
+# configuration directive 'lazyfree-lazy-user-del'. The default is 'yes'. The
+# UNLINK command is identical to the DEL command, except that UNLINK always
+# frees the memory lazily, regardless of this configuration directive:
+
+lazyfree-lazy-user-del yes
+
+# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous
+# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the
+# commands. When neither flag is passed, this directive will be used to determine
+# if the data should be deleted asynchronously.
+
+# There are many problems with running flush synchronously. Even in single CPU
+# environments, the thread managers should balance between the freeing and
+# serving incoming requests. The default value is yes.
+
+lazyfree-lazy-user-flush yes
+
+################################ THREADED I/O #################################
+
+# The server is mostly single threaded, however there are certain threaded
+# operations such as UNLINK, slow I/O accesses and other things that are
+# performed on side threads.
+#
+# Now it is also possible to handle the server clients socket reads and writes
+# in different I/O threads. Since especially writing is so slow, normally
+# users use pipelining in order to speed up the server performances per
+# core, and spawn multiple instances in order to scale more. Using I/O
+# threads it is possible to easily speedup two times the server without resorting
+# to pipelining nor sharding of the instance.
+#
+# By default threading is disabled, we suggest enabling it only in machines
+# that have at least 3 or more cores, leaving at least one spare core.
+# We also recommend using threaded I/O only if you actually have performance problems, with 
+# instances being able to use a quite big percentage of CPU time, otherwise
+# there is no point in using this feature.
+#
+# So for instance if you have a four cores boxes, try to use 2 or 3 I/O
+# threads, if you have a 8 cores, try to use 6 threads. In order to
+# enable I/O threads use the following configuration directive:
+#
+# io-threads 4
+#
+# Setting io-threads to 1 will just use the main thread as usual.
+# When I/O threads are enabled, we use threads for reads and writes, that is
+# to thread the write and read syscall and transfer the client buffers to the
+# socket and to enable threading of reads and protocol parsing. 
+#
+# When multiple commands are parsed by the I/O threads and ready for execution,
+# we take advantage of knowing the next set of commands and prefetch their
+# required dictionary entries in a batch. This reduces memory access costs.
+#
+# The optimal batch size depends on the specific workflow of the user.
+# The default batch size is 16, which can be modified using the
+# 'prefetch-batch-max-size' config.
+#
+# When the config is set to 0, prefetching is disabled.
+#
+# prefetch-batch-max-size 16
+#
+# NOTE: If you want to test the server speedup using valkey-benchmark, make
+# sure you also run the benchmark itself in threaded mode, using the
+# --threads option to match the number of server threads, otherwise you'll not
+# be able to notice the improvements.
+
+############################ KERNEL OOM CONTROL ##############################
+
+# On Linux, it is possible to hint the kernel OOM killer on what processes
+# should be killed first when out of memory.
+#
+# Enabling this feature makes the server actively control the oom_score_adj value
+# for all its processes, depending on their role. The default scores will
+# attempt to have background child processes killed before all others, and
+# replicas killed before primaries.
+#
+# The server supports these options:
+#
+# no:       Don't make changes to oom-score-adj (default).
+# yes:      Alias to "relative" see below.
+# absolute: Values in oom-score-adj-values are written as is to the kernel.
+# relative: Values are used relative to the initial value of oom_score_adj when
+#           the server starts and are then clamped to a range of -1000 to 1000.
+#           Because typically the initial value is 0, they will often match the
+#           absolute values.
+oom-score-adj no
+
+# When oom-score-adj is used, this directive controls the specific values used
+# for primary, replica and background child processes. Values range -2000 to
+# 2000 (higher means more likely to be killed).
+#
+# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities)
+# can freely increase their value, but not decrease it below its initial
+# settings. This means that setting oom-score-adj to "relative" and setting the
+# oom-score-adj-values to positive values will always succeed.
+oom-score-adj-values 0 200 800
+
+
+#################### KERNEL transparent hugepage CONTROL ######################
+
+# Usually the kernel Transparent Huge Pages control is set to "madvise" or
+# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which
+# case this config has no effect. On systems in which it is set to "always",
+# the server will attempt to disable it specifically for the server process in order
+# to avoid latency problems specifically with fork(2) and CoW.
+# If for some reason you prefer to keep it enabled, you can set this config to
+# "no" and the kernel global to "always".
+
+disable-thp yes
+
+############################## APPEND ONLY MODE ###############################
+
+# By default the server asynchronously dumps the dataset on disk. This mode is
+# good enough in many applications, but an issue with the server process or
+# a power outage may result into a few minutes of writes lost (depending on
+# the configured save points).
+#
+# The Append Only File is an alternative persistence mode that provides
+# much better durability. For instance using the default data fsync policy
+# (see later in the config file) the server can lose just one second of writes in a
+# dramatic event like a server power outage, or a single write if something
+# wrong with the process itself happens, but the operating system is
+# still running correctly.
+#
+# AOF and RDB persistence can be enabled at the same time without problems.
+# If the AOF is enabled on startup the server will load the AOF, that is the file
+# with the better durability guarantees.
+#
+# Note that changing this value in a config file of an existing database and
+# restarting the server can lead to data loss. A conversion needs to be done
+# by setting it via CONFIG command on a live server first.
+#
+# Please check https://valkey.io/topics/persistence for more information.
+
+appendonly no
+
+# The base name of the append only file.
+#
+# The server uses a set of append-only files to persist the dataset
+# and changes applied to it. There are two basic types of files in use:
+#
+# - Base files, which are a snapshot representing the complete state of the
+#   dataset at the time the file was created. Base files can be either in
+#   the form of RDB (binary serialized) or AOF (textual commands).
+# - Incremental files, which contain additional commands that were applied
+#   to the dataset following the previous file.
+#
+# In addition, manifest files are used to track the files and the order in
+# which they were created and should be applied.
+#
+# Append-only file names are created by the server following a specific pattern.
+# The file name's prefix is based on the 'appendfilename' configuration
+# parameter, followed by additional information about the sequence and type.
+#
+# For example, if appendfilename is set to appendonly.aof, the following file
+# names could be derived:
+#
+# - appendonly.aof.1.base.rdb as a base file.
+# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
+# - appendonly.aof.manifest as a manifest file.
+
+appendfilename "appendonly.aof"
+
+# For convenience, the server stores all persistent append-only files in a dedicated
+# directory. The name of the directory is determined by the appenddirname
+# configuration parameter.
+
+appenddirname "appendonlydir"
+
+# The fsync() call tells the Operating System to actually write data on disk
+# instead of waiting for more data in the output buffer. Some OS will really flush
+# data on disk, some other OS will just try to do it ASAP.
+#
+# The server supports three different modes:
+#
+# no: don't fsync, just let the OS flush the data when it wants. Faster.
+# always: fsync after every write to the append only log. Slow, Safest.
+# everysec: fsync only one time every second. Compromise.
+#
+# The default is "everysec", as that's usually the right compromise between
+# speed and data safety. It's up to you to understand if you can relax this to
+# "no" that will let the operating system flush the output buffer when
+# it wants, for better performances (but if you can live with the idea of
+# some data loss consider the default persistence mode that's snapshotting),
+# or on the contrary, use "always" that's very slow but a bit safer than
+# everysec.
+#
+# More details please check the following article:
+# http://antirez.com/post/redis-persistence-demystified.html
+#
+# If unsure, use "everysec".
+
+# appendfsync always
+appendfsync everysec
+# appendfsync no
+
+# When the AOF fsync policy is set to always or everysec, and a background
+# saving process (a background save or AOF log background rewriting) is
+# performing a lot of I/O against the disk, in some Linux configurations
+# the server may block too long on the fsync() call. Note that there is no fix for
+# this currently, as even performing fsync in a different thread will block
+# our synchronous write(2) call.
+#
+# In order to mitigate this problem it's possible to use the following option
+# that will prevent fsync() from being called in the main process while a
+# BGSAVE or BGREWRITEAOF is in progress.
+#
+# This means that while another child is saving, the durability of the server is
+# the same as "appendfsync no". In practical terms, this means that it is
+# possible to lose up to 30 seconds of log in the worst scenario (with the
+# default Linux settings).
+#
+# If you have latency problems turn this to "yes". Otherwise leave it as
+# "no" that is the safest pick from the point of view of durability.
+
+no-appendfsync-on-rewrite no
+
+# Automatic rewrite of the append only file.
+# The server is able to automatically rewrite the log file implicitly calling
+# BGREWRITEAOF when the AOF log size grows by the specified percentage.
+#
+# This is how it works: The server remembers the size of the AOF file after the
+# latest rewrite (if no rewrite has happened since the restart, the size of
+# the AOF at startup is used).
+#
+# This base size is compared to the current size. If the current size is
+# bigger than the specified percentage, the rewrite is triggered. Also
+# you need to specify a minimal size for the AOF file to be rewritten, this
+# is useful to avoid rewriting the AOF file even if the percentage increase
+# is reached but it is still pretty small.
+#
+# Specify a percentage of zero in order to disable the automatic AOF
+# rewrite feature.
+
+auto-aof-rewrite-percentage 100
+auto-aof-rewrite-min-size 64mb
+
+# An AOF file may be found to be truncated at the end during the server
+# startup process, when the AOF data gets loaded back into memory.
+# This may happen when the system where the server is running
+# crashes, especially when an ext4 filesystem is mounted without the
+# data=ordered option (however this can't happen when the server itself
+# crashes or aborts but the operating system still works correctly).
+#
+# The server can either exit with an error when this happens, or load as much
+# data as possible (the default now) and start if the AOF file is found
+# to be truncated at the end. The following option controls this behavior.
+#
+# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
+# the server starts emitting a log to inform the user of the event.
+# Otherwise if the option is set to no, the server aborts with an error
+# and refuses to start. When the option is set to no, the user requires
+# to fix the AOF file using the "valkey-check-aof" utility before to restart
+# the server.
+#
+# Note that if the AOF file will be found to be corrupted in the middle
+# the server will still exit with an error. This option only applies when
+# the server will try to read more data from the AOF file but not enough bytes
+# will be found.
+aof-load-truncated yes
+
+# The server can create append-only base files in either RDB or AOF formats. Using
+# the RDB format is always faster and more efficient, and disabling it is only
+# supported for backward compatibility purposes.
+aof-use-rdb-preamble yes
+
+# The server supports recording timestamp annotations in the AOF to support restoring
+# the data from a specific point-in-time. However, using this capability changes
+# the AOF format in a way that may not be compatible with existing AOF parsers.
+aof-timestamp-enabled no
+
+################################ SHUTDOWN #####################################
+
+# Maximum time to wait for replicas when shutting down, in seconds.
+#
+# During shut down, a grace period allows any lagging replicas to catch up with
+# the latest replication offset before the primary exists. This period can
+# prevent data loss, especially for deployments without configured disk backups.
+#
+# The 'shutdown-timeout' value is the grace period's duration in seconds. It is
+# only applicable when the instance has replicas. To disable the feature, set
+# the value to 0.
+#
+# shutdown-timeout 10
+
+# When the server receives a SIGINT or SIGTERM, shutdown is initiated and by default
+# an RDB snapshot is written to disk in a blocking operation if save points are configured.
+# The options used on signaled shutdown can include the following values:
+# default:  Saves RDB snapshot only if save points are configured.
+#           Waits for lagging replicas to catch up.
+# save:     Forces a DB saving operation even if no save points are configured.
+# nosave:   Prevents DB saving operation even if one or more save points are configured.
+# now:      Skips waiting for lagging replicas.
+# force:    Ignores any errors that would normally prevent the server from exiting.
+#
+# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously.
+# Example: "nosave force now"
+#
+# shutdown-on-sigint default
+# shutdown-on-sigterm default
+
+################ NON-DETERMINISTIC LONG BLOCKING COMMANDS #####################
+
+# Maximum time in milliseconds for EVAL scripts, functions and in some cases
+# modules' commands before the server can start processing or rejecting other clients.
+#
+# If the maximum execution time is reached the server will start to reply to most
+# commands with a BUSY error.
+#
+# In this state the server will only allow a handful of commands to be executed.
+# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
+# module specific 'allow-busy' commands.
+#
+# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
+# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop
+# the server in the case a write command was already issued by the script when
+# the user doesn't want to wait for the natural termination of the script.
+#
+# The default is 5 seconds. It is possible to set it to 0 or a negative value
+# to disable this mechanism (uninterrupted execution). Note that in the past
+# this config had a different name, which is now an alias, so both of these do
+# the same:
+# lua-time-limit 5000
+# busy-reply-threshold 5000
+
+################################ VALKEY CLUSTER  ###############################
+
+# Normal server instances can't be part of a cluster; only nodes that are
+# started as cluster nodes can. In order to start a server instance as a
+# cluster node enable the cluster support uncommenting the following:
+#
+# cluster-enabled yes
+
+# Every cluster node has a cluster configuration file. This file is not
+# intended to be edited by hand. It is created and updated by each node.
+# Every cluster node requires a different cluster configuration file.
+# Make sure that instances running in the same system do not have
+# overlapping cluster configuration file names.
+#
+# cluster-config-file nodes-6379.conf
+
+# Cluster node timeout is the amount of milliseconds a node must be unreachable
+# for it to be considered in failure state.
+# Most other internal time limits are a multiple of the node timeout.
+#
+# cluster-node-timeout 15000
+
+# The cluster port is the port that the cluster bus will listen for inbound connections on. When set 
+# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires 
+# you to specify the cluster bus port when executing cluster meet.
+# cluster-port 0
+
+# A replica of a failing primary will avoid to start a failover if its data
+# looks too old.
+#
+# There is no simple way for a replica to actually have an exact measure of
+# its "data age", so the following two checks are performed:
+#
+# 1) If there are multiple replicas able to failover, they exchange messages
+#    in order to try to give an advantage to the replica with the best
+#    replication offset (more data from the primary processed).
+#    Replicas will try to get their rank by offset, and apply to the start
+#    of the failover a delay proportional to their rank.
+#
+# 2) Every single replica computes the time of the last interaction with
+#    its primary. This can be the last ping or command received (if the primary
+#    is still in the "connected" state), or the time that elapsed since the
+#    disconnection with the primary (if the replication link is currently down).
+#    If the last interaction is too old, the replica will not try to failover
+#    at all.
+#
+# The point "2" can be tuned by user. Specifically a replica will not perform
+# the failover if, since the last interaction with the primary, the time
+# elapsed is greater than:
+#
+#   (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period
+#
+# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor
+# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the
+# replica will not try to failover if it was not able to talk with the primary
+# for longer than 310 seconds.
+#
+# A large cluster-replica-validity-factor may allow replicas with too old data to failover
+# a primary, while a too small value may prevent the cluster from being able to
+# elect a replica at all.
+#
+# For maximum availability, it is possible to set the cluster-replica-validity-factor
+# to a value of 0, which means, that replicas will always try to failover the
+# primary regardless of the last time they interacted with the primary.
+# (However they'll always try to apply a delay proportional to their
+# offset rank).
+#
+# Zero is the only value able to guarantee that when all the partitions heal
+# the cluster will always be able to continue.
+#
+# cluster-replica-validity-factor 10
+
+# Cluster replicas are able to migrate to orphaned primaries, that are primaries
+# that are left without working replicas. This improves the cluster ability
+# to resist to failures as otherwise an orphaned primary can't be failed over
+# in case of failure if it has no working replicas.
+#
+# Replicas migrate to orphaned primaries only if there are still at least a
+# given number of other working replicas for their old primary. This number
+# is the "migration barrier". A migration barrier of 1 means that a replica
+# will migrate only if there is at least 1 other working replica for its primary
+# and so forth. It usually reflects the number of replicas you want for every
+# primary in your cluster.
+#
+# Default is 1 (replicas migrate only if their primaries remain with at least
+# one replica). To disable migration just set it to a very large value or
+# set cluster-allow-replica-migration to 'no'.
+# A value of 0 can be set but is useful only for debugging and dangerous
+# in production.
+#
+# cluster-migration-barrier 1
+
+# Turning off this option allows to use less automatic cluster configuration.
+# It disables migration of replicas to orphaned primaries. Masters that become
+# empty due to losing their last slots to another primary will not automatically
+# replicate from the primary that took over their last slots. Instead, they will
+# remain as empty primaries without any slots.
+#
+# Default is 'yes' (allow automatic migrations).
+#
+# cluster-allow-replica-migration yes
+
+# By default cluster nodes stop accepting queries if they detect there
+# is at least a hash slot uncovered (no available node is serving it).
+# This way if the cluster is partially down (for example a range of hash slots
+# are no longer covered) all the cluster becomes, eventually, unavailable.
+# It automatically returns available as soon as all the slots are covered again.
+#
+# However sometimes you want the subset of the cluster which is working,
+# to continue to accept queries for the part of the key space that is still
+# covered. In order to do so, just set the cluster-require-full-coverage
+# option to no.
+#
+# cluster-require-full-coverage yes
+
+# This option, when set to yes, prevents replicas from trying to failover its
+# primary during primary failures. However the replica can still perform a
+# manual failover, if forced to do so.
+#
+# This is useful in different scenarios, especially in the case of multiple
+# data center operations, where we want one side to never be promoted if not
+# in the case of a total DC failure.
+#
+# cluster-replica-no-failover no
+
+# This option, when set to yes, allows nodes to serve read traffic while the
+# cluster is in a down state, as long as it believes it owns the slots.
+#
+# This is useful for two cases.  The first case is for when an application
+# doesn't require consistency of data during node failures or network partitions.
+# One example of this is a cache, where as long as the node has the data it
+# should be able to serve it.
+#
+# The second use case is for configurations that don't meet the recommended
+# three shards but want to enable cluster mode and scale later. A
+# primary outage in a 1 or 2 shard configuration causes a read/write outage to the
+# entire cluster without this option set, with it set there is only a write outage.
+# Without a quorum of primaries, slot ownership will not change automatically.
+#
+# cluster-allow-reads-when-down no
+
+# This option, when set to yes, allows nodes to serve pubsub shard traffic while
+# the cluster is in a down state, as long as it believes it owns the slots.
+#
+# This is useful if the application would like to use the pubsub feature even when
+# the cluster global stable state is not OK. If the application wants to make sure only
+# one shard is serving a given channel, this feature should be kept as yes.
+#
+# cluster-allow-pubsubshard-when-down yes
+
+# Cluster link send buffer limit is the limit on the memory usage of an individual
+# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed
+# this limit. This is to primarily prevent send buffers from growing unbounded on links
+# toward slow peers (E.g. PubSub messages being piled up).
+# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field
+# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase.
+# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single
+# PubSub message by default. (client-query-buffer-limit default value is 1gb)
+#
+# cluster-link-sendbuf-limit 0
+# Clusters can configure their announced hostname using this config. This is a common use case for 
+# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based
+# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS
+# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is 
+# communicated along the clusterbus to all nodes, setting it to an empty string will remove 
+# the hostname and also propagate the removal.
+#
+# cluster-announce-hostname ""
+
+# Clusters can configure an optional nodename to be used in addition to the node ID for
+# debugging and admin information. This name is broadcasted between nodes, so will be used
+# in addition to the node ID when reporting cross node events such as node failures.
+# cluster-announce-human-nodename ""
+
+# Clusters can advertise how clients should connect to them using either their IP address,
+# a user defined hostname, or by declaring they have no endpoint. Which endpoint is
+# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type
+# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how
+# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS. 
+# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?' 
+# will be returned instead.
+#
+# When a cluster advertises itself as having an unknown endpoint, it's indicating that
+# the server doesn't know how clients can reach the cluster. This can happen in certain 
+# networking situations where there are multiple possible routes to the node, and the 
+# server doesn't know which one the client took. In this case, the server is expecting
+# the client to reach out on the same endpoint it used for making the last request, but use
+# the port provided in the response.
+#
+# cluster-preferred-endpoint-type ip
+
+# The cluster blacklist is used when removing a node from the cluster completely. 
+# When CLUSTER FORGET is called for a node, that node is put into the blacklist for
+# some time so that when gossip messages are received from other nodes that still
+# remember it, it is not re-added. This gives time for CLUSTER FORGET to be sent to
+# every node in the cluster. The blacklist TTL is 60 seconds by default, which should
+# be sufficient for most clusters, but you may considering increasing this if you see
+# nodes getting re-added while using CLUSTER FORGET.
+#
+# cluster-blacklist-ttl 60
+
+# Clusters can be configured to track per-slot resource statistics, 
+# which are accessible by the CLUSTER SLOT-STATS command.
+#
+# By default, the 'cluster-slot-stats-enabled' is disabled, and only 'key-count' is captured.
+# By enabling the 'cluster-slot-stats-enabled' config, the cluster will begin to capture advanced statistics.
+# These statistics can be leveraged to assess general slot usage trends, identify hot / cold slots, 
+# migrate slots for a balanced cluster workload, and / or re-write application logic to better utilize slots.
+#
+# cluster-slot-stats-enabled no
+
+# In order to setup your cluster make sure to read the documentation
+# available at https://valkey.io web site.
+
+########################## CLUSTER DOCKER/NAT support  ########################
+
+# In certain deployments, cluster node's address discovery fails, because
+# addresses are NAT-ted or because ports are forwarded (the typical case is
+# Docker and other containers).
+#
+# In order to make a cluster work in such environments, a static
+# configuration where each node knows its public address is needed. The
+# following options are used for this scope, and are:
+#
+# * cluster-announce-ip
+# * cluster-announce-client-ipv4
+# * cluster-announce-client-ipv6
+# * cluster-announce-port
+# * cluster-announce-tls-port
+# * cluster-announce-bus-port
+#
+# Each instructs the node about its address, possibly other addresses to expose
+# to clients, client ports (for connections without and with TLS) and cluster
+# message bus port. The information is then published in the bus packets so that
+# other nodes will be able to correctly map the address of the node publishing
+# the information.
+#
+# If tls-cluster is set to yes and cluster-announce-tls-port is omitted or set
+# to zero, then cluster-announce-port refers to the TLS port. Note also that
+# cluster-announce-tls-port has no effect if tls-cluster is set to no.
+#
+# If cluster-announce-client-ipv4 and cluster-announce-client-ipv6 are omitted,
+# then cluster-announce-ip is exposed to clients.
+#
+# If the above options are not used, the normal cluster auto-detection
+# will be used instead.
+#
+# Note that when remapped, the bus port may not be at the fixed offset of
+# clients port + 10000, so you can specify any port and bus-port depending
+# on how they get remapped. If the bus-port is not set, a fixed offset of
+# 10000 will be used as usual.
+#
+# Example:
+#
+# cluster-announce-ip 10.1.1.5
+# cluster-announce-client-ipv4 123.123.123.5
+# cluster-announce-client-ipv6 2001:db8::8a2e:370:7334
+# cluster-announce-tls-port 6379
+# cluster-announce-port 0
+# cluster-announce-bus-port 6380
+
+################################## SLOW LOG ###################################
+
+# The server Slow Log is a system to log queries that exceeded a specified
+# execution time. The execution time does not include the I/O operations
+# like talking with the client, sending the reply and so forth,
+# but just the time needed to actually execute the command (this is the only
+# stage of command execution where the thread is blocked and can not serve
+# other requests in the meantime).
+#
+# You can configure the slow log with two parameters: one tells the server
+# what is the execution time, in microseconds, to exceed in order for the
+# command to get logged, and the other parameter is the length of the
+# slow log. When a new command is logged the oldest one is removed from the
+# queue of logged commands.
+
+# The following time is expressed in microseconds, so 1000000 is equivalent
+# to one second. Note that a negative number disables the slow log, while
+# a value of zero forces the logging of every command.
+slowlog-log-slower-than 10000
+
+# There is no limit to this length. Just be aware that it will consume memory.
+# You can reclaim memory used by the slow log with SLOWLOG RESET.
+slowlog-max-len 128
+
+################################ LATENCY MONITOR ##############################
+
+# The server latency monitoring subsystem samples different operations
+# at runtime in order to collect data related to possible sources of
+# latency of a server instance.
+#
+# Via the LATENCY command this information is available to the user that can
+# print graphs and obtain reports.
+#
+# The system only logs operations that were performed in a time equal or
+# greater than the amount of milliseconds specified via the
+# latency-monitor-threshold configuration directive. When its value is set
+# to zero, the latency monitor is turned off.
+#
+# By default latency monitoring is disabled since it is mostly not needed
+# if you don't have latency issues, and collecting data has a performance
+# impact, that while very small, can be measured under big load. Latency
+# monitoring can easily be enabled at runtime using the command
+# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
+latency-monitor-threshold 0
+
+################################ LATENCY TRACKING ##############################
+
+# The server's extended latency monitoring tracks the per command latencies and enables
+# exporting the percentile distribution via the INFO latencystats command,
+# and cumulative latency distributions (histograms) via the LATENCY command.
+#
+# By default, the extended latency monitoring is enabled since the overhead
+# of keeping track of the command latency is very small.
+# latency-tracking yes
+
+# By default the exported latency percentiles via the INFO latencystats command
+# are the p50, p99, and p999.
+# latency-tracking-info-percentiles 50 99 99.9
+
+############################# EVENT NOTIFICATION ##############################
+
+# The server can notify Pub/Sub clients about events happening in the key space.
+# This feature is documented at https://valkey.io/topics/notifications
+#
+# For instance if keyspace events notification is enabled, and a client
+# performs a DEL operation on key "foo" stored in the Database 0, two
+# messages will be published via Pub/Sub:
+#
+# PUBLISH __keyspace@0__:foo del
+# PUBLISH __keyevent@0__:del foo
+#
+# It is possible to select the events that the server will notify among a set
+# of classes. Every class is identified by a single character:
+#
+#  K     Keyspace events, published with __keyspace@<db>__ prefix.
+#  E     Keyevent events, published with __keyevent@<db>__ prefix.
+#  g     Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
+#  $     String commands
+#  l     List commands
+#  s     Set commands
+#  h     Hash commands
+#  z     Sorted set commands
+#  x     Expired events (events generated every time a key expires)
+#  e     Evicted events (events generated when a key is evicted for maxmemory)
+#  n     New key events (Note: not included in the 'A' class)
+#  t     Stream commands
+#  d     Module key type events
+#  m     Key-miss events (Note: It is not included in the 'A' class)
+#  A     Alias for g$lshzxetd, so that the "AKE" string means all the events
+#        (Except key-miss events which are excluded from 'A' due to their
+#         unique nature).
+#
+#  The "notify-keyspace-events" takes as argument a string that is composed
+#  of zero or multiple characters. The empty string means that notifications
+#  are disabled.
+#
+#  Example: to enable list and generic events, from the point of view of the
+#           event name, use:
+#
+#  notify-keyspace-events Elg
+#
+#  Example 2: to get the stream of the expired keys subscribing to channel
+#             name __keyevent@0__:expired use:
+#
+#  notify-keyspace-events Ex
+#
+#  By default all notifications are disabled because most users don't need
+#  this feature and the feature has some overhead. Note that if you don't
+#  specify at least one of K or E, no events will be delivered.
+notify-keyspace-events ""
+
+############################### ADVANCED CONFIG ###############################
+
+# Hashes are encoded using a memory efficient data structure when they have a
+# small number of entries, and the biggest entry does not exceed a given
+# threshold. These thresholds can be configured using the following directives.
+hash-max-listpack-entries 512
+hash-max-listpack-value 64
+
+# Lists are also encoded in a special way to save a lot of space.
+# The number of entries allowed per internal list node can be specified
+# as a fixed maximum size or a maximum number of elements.
+# For a fixed maximum size, use -5 through -1, meaning:
+# -5: max size: 64 Kb  <-- not recommended for normal workloads
+# -4: max size: 32 Kb  <-- not recommended
+# -3: max size: 16 Kb  <-- probably not recommended
+# -2: max size: 8 Kb   <-- good
+# -1: max size: 4 Kb   <-- good
+# Positive numbers mean store up to _exactly_ that number of elements
+# per list node.
+# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
+# but if your use case is unique, adjust the settings as necessary.
+list-max-listpack-size -2
+
+# Lists may also be compressed.
+# Compress depth is the number of quicklist ziplist nodes from *each* side of
+# the list to *exclude* from compression.  The head and tail of the list
+# are always uncompressed for fast push/pop operations.  Settings are:
+# 0: disable all list compression
+# 1: depth 1 means "don't start compressing until after 1 node into the list,
+#    going from either the head or tail"
+#    So: [head]->node->node->...->node->[tail]
+#    [head], [tail] will always be uncompressed; inner nodes will compress.
+# 2: [head]->[next]->node->node->...->node->[prev]->[tail]
+#    2 here means: don't compress head or head->next or tail->prev or tail,
+#    but compress all nodes between them.
+# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail]
+# etc.
+list-compress-depth 0
+
+# Sets have a special encoding when a set is composed
+# of just strings that happen to be integers in radix 10 in the range
+# of 64 bit signed integers.
+# The following configuration setting sets the limit in the size of the
+# set in order to use this special memory saving encoding.
+set-max-intset-entries 512
+
+# Sets containing non-integer values are also encoded using a memory efficient
+# data structure when they have a small number of entries, and the biggest entry
+# does not exceed a given threshold. These thresholds can be configured using
+# the following directives.
+set-max-listpack-entries 128
+set-max-listpack-value 64
+
+# Similarly to hashes and lists, sorted sets are also specially encoded in
+# order to save a lot of space. This encoding is only used when the length and
+# elements of a sorted set are below the following limits:
+zset-max-listpack-entries 128
+zset-max-listpack-value 64
+
+# HyperLogLog sparse representation bytes limit. The limit includes the
+# 16 bytes header. When a HyperLogLog using the sparse representation crosses
+# this limit, it is converted into the dense representation.
+#
+# A value greater than 16000 is totally useless, since at that point the
+# dense representation is more memory efficient.
+#
+# The suggested value is ~ 3000 in order to have the benefits of
+# the space efficient encoding without slowing down too much PFADD,
+# which is O(N) with the sparse encoding. The value can be raised to
+# ~ 10000 when CPU is not a concern, but space is, and the data set is
+# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
+hll-sparse-max-bytes 3000
+
+# Streams macro node max size / items. The stream data structure is a radix
+# tree of big nodes that encode multiple items inside. Using this configuration
+# it is possible to configure how big a single node can be in bytes, and the
+# maximum number of items it may contain before switching to a new node when
+# appending new stream entries. If any of the following settings are set to
+# zero, the limit is ignored, so for instance it is possible to set just a
+# max entries limit by setting max-bytes to 0 and max-entries to the desired
+# value.
+stream-node-max-bytes 4096
+stream-node-max-entries 100
+
+# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
+# order to help rehashing the main server hash table (the one mapping top-level
+# keys to values). The hash table implementation the server uses (see dict.c)
+# performs a lazy rehashing: the more operation you run into a hash table
+# that is rehashing, the more rehashing "steps" are performed, so if the
+# server is idle the rehashing is never complete and some more memory is used
+# by the hash table.
+#
+# The default is to use this millisecond 10 times every second in order to
+# actively rehash the main dictionaries, freeing memory when possible.
+#
+# If unsure:
+# use "activerehashing no" if you have hard latency requirements and it is
+# not a good thing in your environment that the server can reply from time to time
+# to queries with 2 milliseconds delay.
+#
+# use "activerehashing yes" if you don't have such hard requirements but
+# want to free memory asap when possible.
+activerehashing yes
+
+# The client output buffer limits can be used to force disconnection of clients
+# that are not reading data from the server fast enough for some reason (a
+# common reason is that a Pub/Sub client can't consume messages as fast as the
+# publisher can produce them).
+#
+# The limit can be set differently for the three different classes of clients:
+#
+# normal -> normal clients including MONITOR clients
+# replica -> replica clients
+# pubsub -> clients subscribed to at least one pubsub channel or pattern
+#
+# The syntax of every client-output-buffer-limit directive is the following:
+#
+# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
+#
+# A client is immediately disconnected once the hard limit is reached, or if
+# the soft limit is reached and remains reached for the specified number of
+# seconds (continuously).
+# So for instance if the hard limit is 32 megabytes and the soft limit is
+# 16 megabytes / 10 seconds, the client will get disconnected immediately
+# if the size of the output buffers reach 32 megabytes, but will also get
+# disconnected if the client reaches 16 megabytes and continuously overcomes
+# the limit for 10 seconds.
+#
+# By default normal clients are not limited because they don't receive data
+# without asking (in a push way), but just after a request, so only
+# asynchronous clients may create a scenario where data is requested faster
+# than it can read.
+#
+# Instead there is a default limit for pubsub and replica clients, since
+# subscribers and replicas receive data in a push fashion.
+#
+# Note that it doesn't make sense to set the replica clients output buffer
+# limit lower than the repl-backlog-size config (partial sync will succeed
+# and then replica will get disconnected).
+# Such a configuration is ignored (the size of repl-backlog-size will be used).
+# This doesn't have memory consumption implications since the replica client
+# will share the backlog buffers memory.
+#
+# Both the hard or the soft limit can be disabled by setting them to zero.
+client-output-buffer-limit normal 0 0 0
+client-output-buffer-limit replica 256mb 64mb 60
+client-output-buffer-limit pubsub 32mb 8mb 60
+
+# Client query buffers accumulate new commands. They are limited to a fixed
+# amount by default in order to avoid that a protocol desynchronization (for
+# instance due to a bug in the client) will lead to unbound memory usage in
+# the query buffer. However you can configure it here if you have very special
+# needs, such as a command with huge argument, or huge multi/exec requests or alike.
+#
+# client-query-buffer-limit 1gb
+
+# In some scenarios client connections can hog up memory leading to OOM
+# errors or data eviction. To avoid this we can cap the accumulated memory
+# used by all client connections (all pubsub and normal clients). Once we
+# reach that limit connections will be dropped by the server freeing up
+# memory. The server will attempt to drop the connections using the most 
+# memory first. We call this mechanism "client eviction".
+#
+# Client eviction is configured using the maxmemory-clients setting as follows:
+# 0 - client eviction is disabled (default)
+#
+# A memory value can be used for the client eviction threshold,
+# for example:
+# maxmemory-clients 1g
+#
+# A percentage value (between 1% and 100%) means the client eviction threshold
+# is based on a percentage of the maxmemory setting. For example to set client
+# eviction at 5% of maxmemory:
+# maxmemory-clients 5%
+
+# In the server protocol, bulk requests, that are, elements representing single
+# strings, are normally limited to 512 mb. However you can change this limit
+# here, but must be 1mb or greater
+#
+# proto-max-bulk-len 512mb
+
+# The server calls an internal function to perform many background tasks, like
+# closing connections of clients in timeout, purging expired keys that are
+# never requested, and so forth.
+#
+# Not all tasks are performed with the same frequency, but the server checks for
+# tasks to perform according to the specified "hz" value.
+#
+# By default "hz" is set to 10. Raising the value will use more CPU when
+# the server is idle, but at the same time will make the server more responsive when
+# there are many keys expiring at the same time, and timeouts may be
+# handled with more precision.
+#
+# The range is between 1 and 500, however a value over 100 is usually not
+# a good idea. Most users should use the default of 10 and raise this up to
+# 100 only in environments where very low latency is required.
+hz 10
+
+# Normally it is useful to have an HZ value which is proportional to the
+# number of clients connected. This is useful in order, for instance, to
+# avoid too many clients are processed for each background task invocation
+# in order to avoid latency spikes.
+#
+# Since the default HZ value by default is conservatively set to 10, the server
+# offers, and enables by default, the ability to use an adaptive HZ value
+# which will temporarily raise when there are many connected clients.
+#
+# When dynamic HZ is enabled, the actual configured HZ will be used
+# as a baseline, but multiples of the configured HZ value will be actually
+# used as needed once more clients are connected. In this way an idle
+# instance will use very little CPU time while a busy instance will be
+# more responsive.
+dynamic-hz yes
+
+# When a child rewrites the AOF file, if the following option is enabled
+# the file will be fsync-ed every 4 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+aof-rewrite-incremental-fsync yes
+
+# When the server saves RDB file, if the following option is enabled
+# the file will be fsync-ed every 4 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+rdb-save-incremental-fsync yes
+
+# The server's LFU eviction (see maxmemory setting) can be tuned. However it is a good
+# idea to start with the default settings and only change them after investigating
+# how to improve the performances and how the keys LFU change over time, which
+# is possible to inspect via the OBJECT FREQ command.
+#
+# There are two tunable parameters in the server LFU implementation: the
+# counter logarithm factor and the counter decay time. It is important to
+# understand what the two parameters mean before changing them.
+#
+# The LFU counter is just 8 bits per key, it's maximum value is 255, so the server
+# uses a probabilistic increment with logarithmic behavior. Given the value
+# of the old counter, when a key is accessed, the counter is incremented in
+# this way:
+#
+# 1. A random number R between 0 and 1 is extracted.
+# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1).
+# 3. The counter is incremented only if R < P.
+#
+# The default lfu-log-factor is 10. This is a table of how the frequency
+# counter changes with a different number of accesses with different
+# logarithmic factors:
+#
+# +--------+------------+------------+------------+------------+------------+
+# | factor | 100 hits   | 1000 hits  | 100K hits  | 1M hits    | 10M hits   |
+# +--------+------------+------------+------------+------------+------------+
+# | 0      | 104        | 255        | 255        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 1      | 18         | 49         | 255        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 10     | 10         | 18         | 142        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 100    | 8          | 11         | 49         | 143        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+#
+# NOTE: The above table was obtained by running the following commands:
+#
+#   valkey-benchmark -n 1000000 incr foo
+#   valkey-cli object freq foo
+#
+# NOTE 2: The counter initial value is 5 in order to give new objects a chance
+# to accumulate hits.
+#
+# The counter decay time is the time, in minutes, that must elapse in order
+# for the key counter to be decremented.
+#
+# The default value for the lfu-decay-time is 1. A special value of 0 means we
+# will never decay the counter.
+#
+# lfu-log-factor 10
+# lfu-decay-time 1
+
+
+# The maximum number of new client connections accepted per event-loop cycle. This configuration
+# is set independently for TLS connections.
+#
+# By default, up to 10 new connection will be accepted per event-loop cycle for normal connections
+# and up to 1 new connection per event-loop cycle for TLS connections.
+#
+# Adjusting this to a larger number can slightly improve efficiency for new connections
+# at the risk of causing timeouts for regular commands on established connections.  It is
+# not advised to change this without ensuring that all clients have limited connection
+# pools and exponential backoff in the case of command/connection timeouts. 
+#
+# If your application is establishing a large number of new connections per second you should
+# also consider tuning the value of tcp-backlog, which allows the kernel to buffer more
+# pending connections before dropping or rejecting connections. 
+#
+# max-new-connections-per-cycle 10
+# max-new-tls-connections-per-cycle 1
+
+
+########################### ACTIVE DEFRAGMENTATION #######################
+#
+# What is active defragmentation?
+# -------------------------------
+#
+# Active (online) defragmentation allows a server to compact the
+# spaces left between small allocations and deallocations of data in memory,
+# thus allowing to reclaim back memory.
+#
+# Fragmentation is a natural process that happens with every allocator (but
+# less so with Jemalloc, fortunately) and certain workloads. Normally a server
+# restart is needed in order to lower the fragmentation, or at least to flush
+# away all the data and create it again. However thanks to this feature
+# implemented by Oran Agra, this process can happen at runtime
+# in a "hot" way, while the server is running.
+#
+# Basically when the fragmentation is over a certain level (see the
+# configuration options below) the server will start to create new copies of the
+# values in contiguous memory regions by exploiting certain specific Jemalloc
+# features (in order to understand if an allocation is causing fragmentation
+# and to allocate it in a better place), and at the same time, will release the
+# old copies of the data. This process, repeated incrementally for all the keys
+# will cause the fragmentation to drop back to normal values.
+#
+# Important things to understand:
+#
+# 1. This feature is disabled by default, and only works if you compiled the server
+#    to use the copy of Jemalloc we ship with the source code of the server.
+#    This is the default with Linux builds.
+#
+# 2. You never need to enable this feature if you don't have fragmentation
+#    issues.
+#
+# 3. Once you experience fragmentation, you can enable this feature when
+#    needed with the command "CONFIG SET activedefrag yes".
+#
+# The configuration parameters are able to fine tune the behavior of the
+# defragmentation process. If you are not sure about what they mean it is
+# a good idea to leave the defaults untouched.
+
+# Active defragmentation is disabled by default
+# activedefrag no
+
+# Minimum amount of fragmentation waste to start active defrag
+# active-defrag-ignore-bytes 100mb
+
+# Minimum percentage of fragmentation to start active defrag
+# active-defrag-threshold-lower 10
+
+# Maximum percentage of fragmentation at which we use maximum effort
+# active-defrag-threshold-upper 100
+
+# Minimal effort for defrag in CPU percentage, to be used when the lower
+# threshold is reached
+# active-defrag-cycle-min 1
+
+# Maximal effort for defrag in CPU percentage, to be used when the upper
+# threshold is reached
+# active-defrag-cycle-max 25
+
+# Maximum number of set/hash/zset/list fields that will be processed from
+# the main dictionary scan
+# active-defrag-max-scan-fields 1000
+
+# Jemalloc background thread for purging will be enabled by default
+jemalloc-bg-thread yes
+
+# It is possible to pin different threads and processes of the server to specific
+# CPUs in your system, in order to maximize the performances of the server.
+# This is useful both in order to pin different server threads in different
+# CPUs, but also in order to make sure that multiple server instances running
+# in the same host will be pinned to different CPUs.
+#
+# Normally you can do this using the "taskset" command, however it is also
+# possible to do this via the server configuration directly, both in Linux and FreeBSD.
+#
+# You can pin the server/IO threads, bio threads, aof rewrite child process, and
+# the bgsave child process. The syntax to specify the cpu list is the same as
+# the taskset command:
+#
+# Set server/io threads to cpu affinity 0,2,4,6:
+# server-cpulist 0-7:2
+#
+# Set bio threads to cpu affinity 1,3:
+# bio-cpulist 1,3
+#
+# Set aof rewrite child process to cpu affinity 8,9,10,11:
+# aof-rewrite-cpulist 8-11
+#
+# Set bgsave child process to cpu affinity 1,10,11
+# bgsave-cpulist 1,10-11
+
+# In some cases the server will emit warnings and even refuse to start if it detects
+# that the system is in bad state, it is possible to suppress these warnings
+# by setting the following config which takes a space delimited list of warnings
+# to suppress
+#
+# ignore-warnings ARM64-COW-BUG
+
+# Inform Valkey of the availability zone if running in a cloud environment.  Currently
+# this is only exposed via the info command for clients to use, but in the future we
+# we may also use this when making decisions for replication.
+#
+# availability-zone "zone-name"
diff --git a/valkey/valkey.conf b/valkey/valkey.conf
new file mode 100644 (file)
index 0000000..28b416a
--- /dev/null
@@ -0,0 +1,2399 @@
+# Valkey configuration file example.
+#
+# Note that in order to read the configuration file, the server must be
+# started with the file path as first argument:
+#
+# ./valkey-server /path/to/valkey.conf
+
+# Note on units: when memory size is needed, it is possible to specify
+# it in the usual form of 1k 5GB 4M and so forth:
+#
+# 1k => 1000 bytes
+# 1kb => 1024 bytes
+# 1m => 1000000 bytes
+# 1mb => 1024*1024 bytes
+# 1g => 1000000000 bytes
+# 1gb => 1024*1024*1024 bytes
+#
+# units are case insensitive so 1GB 1Gb 1gB are all the same.
+
+################################## INCLUDES ###################################
+
+# Include one or more other config files here.  This is useful if you
+# have a standard template that goes to all servers but also need
+# to customize a few per-server settings.  Include files can include
+# other files, so use this wisely.
+#
+# Note that option "include" won't be rewritten by command "CONFIG REWRITE"
+# from admin or Sentinel. Since the server always uses the last processed
+# line as value of a configuration directive, you'd better put includes
+# at the beginning of this file to avoid overwriting config change at runtime.
+#
+# If instead you are interested in using includes to override configuration
+# options, it is better to use include as the last line.
+#
+# Included paths may contain wildcards. All files matching the wildcards will
+# be included in alphabetical order.
+# Note that if an include path contains a wildcards but no files match it when
+# the server is started, the include statement will be ignored and no error will
+# be emitted.  It is safe, therefore, to include wildcard files from empty
+# directories.
+#
+# include /path/to/local.conf
+# include /path/to/other.conf
+# include /path/to/fragments/*.conf
+#
+
+################################## MODULES #####################################
+
+# Load modules at startup. If the server is not able to load modules
+# it will abort. It is possible to use multiple loadmodule directives.
+#
+# loadmodule /path/to/my_module.so
+# loadmodule /path/to/other_module.so
+# loadmodule /path/to/args_module.so [arg [arg ...]]
+
+################################## NETWORK #####################################
+
+# By default, if no "bind" configuration directive is specified, the server listens
+# for connections from all available network interfaces on the host machine.
+# It is possible to listen to just one or multiple selected interfaces using
+# the "bind" configuration directive, followed by one or more IP addresses.
+# Each address can be prefixed by "-", which means that the server will not fail to
+# start if the address is not available. Being not available only refers to
+# addresses that does not correspond to any network interface. Addresses that
+# are already in use will always fail, and unsupported protocols will always BE
+# silently skipped.
+#
+# Examples:
+#
+# bind 192.168.1.100 10.0.0.1     # listens on two specific IPv4 addresses
+# bind 127.0.0.1 ::1              # listens on loopback IPv4 and IPv6
+# bind * -::*                     # like the default, all available interfaces
+#
+# ~~~ WARNING ~~~ If the computer running the server is directly exposed to the
+# internet, binding to all the interfaces is dangerous and will expose the
+# instance to everybody on the internet. So by default we uncomment the
+# following bind directive, that will force the server to listen only on the
+# IPv4 and IPv6 (if available) loopback interface addresses (this means the server
+# will only be able to accept client connections from the same host that it is
+# running on).
+#
+# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
+# COMMENT OUT THE FOLLOWING LINE.
+#
+# You will also need to set a password unless you explicitly disable protected
+# mode.
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+bind 127.0.0.1 -::1
+
+# By default, outgoing connections (from replica to primary, from Sentinel to
+# instances, cluster bus, etc.) are not bound to a specific local address. In
+# most cases, this means the operating system will handle that based on routing
+# and the interface through which the connection goes out.
+#
+# Using bind-source-addr it is possible to configure a specific address to bind
+# to, which may also affect how the connection gets routed.
+#
+# Example:
+#
+# bind-source-addr 10.0.0.1
+
+# Protected mode is a layer of security protection, in order to avoid that
+# the server instances left open on the internet are accessed and exploited.
+#
+# When protected mode is on and the default user has no password, the server
+# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address
+# (::1) or Unix domain sockets.
+#
+# By default protected mode is enabled. You should disable it only if
+# you are sure you want clients from other hosts to connect to the server
+# even if no authentication is configured.
+protected-mode yes
+
+# The server uses default hardened security configuration directives to reduce the
+# attack surface on innocent users. Therefore, several sensitive configuration
+# directives are immutable, and some potentially-dangerous commands are blocked.
+#
+# Configuration directives that control files that the server writes to (e.g., 'dir'
+# and 'dbfilename') and that aren't usually modified during runtime
+# are protected by making them immutable.
+#
+# Commands that can increase the attack surface of the server and that aren't usually
+# called by users are blocked by default.
+#
+# These can be exposed to either all connections or just local ones by setting
+# each of the configs listed below to either of these values:
+#
+# no    - Block for any connection (remain immutable)
+# yes   - Allow for any connection (no protection)
+# local - Allow only for local connections. Ones originating from the
+#         IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets.
+#
+# enable-protected-configs no
+# enable-debug-command no
+# enable-module-command no
+
+# Accept connections on the specified port, default is 6379 (IANA #815344).
+# If port 0 is specified the server will not listen on a TCP socket.
+port 6379
+
+# TCP listen() backlog.
+#
+# In high requests-per-second environments you need a high backlog in order
+# to avoid slow clients connection issues. Note that the Linux kernel
+# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
+# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
+# in order to get the desired effect.
+tcp-backlog 511
+
+# Unix socket.
+#
+# Specify the path for the Unix socket that will be used to listen for
+# incoming connections. There is no default, so the server will not listen
+# on a unix socket when not specified.
+#
+# unixsocket /run/valkey/valkey-server.sock
+# unixsocketgroup wheel
+# unixsocketperm 700
+# unixsocket /run/valkey/valkey-server.sock
+# unixsocketgroup valkey
+# unixsocketperm 770
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# TCP keepalive.
+#
+# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
+# of communication. This is useful for two reasons:
+#
+# 1) Detect dead peers.
+# 2) Force network equipment in the middle to consider the connection to be
+#    alive.
+#
+# On Linux, the specified value (in seconds) is the period used to send ACKs.
+# Note that to close the connection the double of the time is needed.
+# On other kernels the period depends on the kernel configuration.
+tcp-keepalive 300
+
+# Apply OS-specific mechanism to mark the listening socket with the specified
+# ID, to support advanced routing and filtering capabilities.
+#
+# On Linux, the ID represents a connection mark.
+# On FreeBSD, the ID represents a socket cookie ID.
+# On OpenBSD, the ID represents a route table ID.
+#
+# The default value is 0, which implies no marking is required.
+# socket-mark-id 0
+
+################################# TLS/SSL #####################################
+
+# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration
+# directive can be used to define TLS-listening ports. To enable TLS on the
+# default port, use:
+#
+# port 0
+# tls-port 6379
+
+# Configure a X.509 certificate and private key to use for authenticating the
+# server to connected clients, primaries or cluster peers.  These files should be
+# PEM formatted.
+#
+# tls-cert-file valkey.crt
+# tls-key-file valkey.key
+#
+# If the key file is encrypted using a passphrase, it can be included here
+# as well.
+#
+# tls-key-file-pass secret
+
+# Normally the server uses the same certificate for both server functions (accepting
+# connections) and client functions (replicating from a primary, establishing
+# cluster bus connections, etc.).
+#
+# Sometimes certificates are issued with attributes that designate them as
+# client-only or server-only certificates. In that case it may be desired to use
+# different certificates for incoming (server) and outgoing (client)
+# connections. To do that, use the following directives:
+#
+# tls-client-cert-file client.crt
+# tls-client-key-file client.key
+#
+# If the key file is encrypted using a passphrase, it can be included here
+# as well.
+#
+# tls-client-key-file-pass secret
+
+# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange,
+# required by older versions of OpenSSL (<3.0). Newer versions do not require
+# this configuration and recommend against it.
+#
+# tls-dh-params-file valkey.dh
+
+# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL
+# clients and peers. The server requires an explicit configuration of at least one
+# of these, and will not implicitly use the system wide configuration.
+#
+# tls-ca-cert-file ca.crt
+# tls-ca-cert-dir /etc/ssl/certs
+
+# By default, clients (including replica servers) on a TLS port are required
+# to authenticate using valid client side certificates.
+#
+# If "no" is specified, client certificates are not required and not accepted.
+# If "optional" is specified, client certificates are accepted and must be
+# valid if provided, but are not required.
+#
+# tls-auth-clients no
+# tls-auth-clients optional
+
+# By default, a replica does not attempt to establish a TLS connection
+# with its primary.
+#
+# Use the following directive to enable TLS on replication links.
+#
+# tls-replication yes
+
+# By default, the cluster bus uses a plain TCP connection. To enable
+# TLS for the bus protocol, use the following directive:
+#
+# tls-cluster yes
+
+# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended
+# that older formally deprecated versions are kept disabled to reduce the attack surface.
+# You can explicitly specify TLS versions to support.
+# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2",
+# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination.
+# To enable only TLSv1.2 and TLSv1.3, use:
+#
+# tls-protocols "TLSv1.2 TLSv1.3"
+
+# Configure allowed ciphers.  See the ciphers(1ssl) manpage for more information
+# about the syntax of this string.
+#
+# Note: this configuration applies only to <= TLSv1.2.
+#
+# tls-ciphers DEFAULT:!MEDIUM
+
+# Configure allowed TLSv1.3 ciphersuites.  See the ciphers(1ssl) manpage for more
+# information about the syntax of this string, and specifically for TLSv1.3
+# ciphersuites.
+#
+# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256
+
+# When choosing a cipher, use the server's preference instead of the client
+# preference. By default, the server follows the client's preference.
+#
+# tls-prefer-server-ciphers yes
+
+# By default, TLS session caching is enabled to allow faster and less expensive
+# reconnections by clients that support it. Use the following directive to disable
+# caching.
+#
+# tls-session-caching no
+
+# Change the default number of TLS sessions cached. A zero value sets the cache
+# to unlimited size. The default size is 20480.
+#
+# tls-session-cache-size 5000
+
+# Change the default timeout of cached TLS sessions. The default timeout is 300
+# seconds.
+#
+# tls-session-cache-timeout 60
+
+################################# GENERAL #####################################
+
+# By default the server does not run as a daemon. Use 'yes' if you need it.
+# Note that the server will write a pid file in /var/run/valkey.pid when daemonized.
+# When the server is supervised by upstart or systemd, this parameter has no impact.
+daemonize yes
+
+# If you run the server from upstart or systemd, the server can interact with your
+# supervision tree. Options:
+#   supervised no      - no supervision interaction
+#   supervised upstart - signal upstart by putting the server into SIGSTOP mode
+#                        requires "expect stop" in your upstart job config
+#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+#                        on startup, and updating the server status on a regular
+#                        basis.
+#   supervised auto    - detect upstart or systemd method based on
+#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+#       They do not enable continuous pings back to your supervisor.
+#
+# The default is "no". To run under upstart/systemd, you can simply uncomment
+# the line below:
+#
+# supervised auto
+
+# If a pid file is specified, the server writes it where specified at startup
+# and removes it at exit.
+#
+# When the server runs non daemonized, no pid file is created if none is
+# specified in the configuration. When the server is daemonized, the pid file
+# is used even if not specified, defaulting to "/var/run/valkey.pid".
+#
+# Creating a pid file is best effort: if the server is not able to create it
+# nothing bad happens, the server will start and run normally.
+#
+# Note that on modern Linux systems "/run/valkey.pid" is more conforming
+# and should be used instead.
+pidfile /run/valkey/valkey-server.pid
+
+# Specify the server verbosity level.
+# This can be one of:
+# debug (a lot of information, useful for development/testing)
+# verbose (many rarely useful info, but not a mess like the debug level)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+# nothing (nothing is logged)
+loglevel notice
+
+# Specify the log file name. Also the empty string can be used to force
+# the server to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile /var/log/valkey/valkey-server.log
+
+# To enable logging to the system logger, just set 'syslog-enabled' to yes,
+# and optionally update the other syslog parameters to suit your needs.
+# syslog-enabled no
+
+# Specify the syslog identity.
+# syslog-ident valkey
+
+# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+# syslog-facility local0
+
+# To disable the built in crash log, which will possibly produce cleaner core
+# dumps when they are needed, uncomment the following:
+#
+# crash-log-enabled no
+
+# To disable the fast memory check that's run as part of the crash log, which
+# will possibly let the server terminate sooner, uncomment the following:
+#
+# crash-memcheck-enabled no
+
+# Set the number of databases. The default database is DB 0, you can select
+# a different one on a per-connection basis using SELECT <dbid> where
+# dbid is a number between 0 and 'databases'-1
+databases 16
+
+# By default the server shows an ASCII art logo only when started to log to the
+# standard output and if the standard output is a TTY and syslog logging is
+# disabled. Basically this means that normally a logo is displayed only in
+# interactive sessions.
+#
+# However it is possible to force the pre-4.0 behavior and always show a
+# ASCII art logo in startup logs by setting the following option to yes.
+always-show-logo no
+
+# User data, including keys, values, client names, and ACL usernames, can be
+# logged as part of assertions and other error cases. To prevent sensitive user
+# information, such as PII, from being recorded in the server log file, this
+# user data is hidden from the log by default. If you need to log user data for
+# debugging or troubleshooting purposes, you can disable this feature by
+# changing the config value to no.
+hide-user-data-from-log yes
+
+# By default, the server modifies the process title (as seen in 'top' and 'ps') to
+# provide some runtime information. It is possible to disable this and leave
+# the process name as executed by setting the following to no.
+set-proc-title yes
+
+# When changing the process title, the server uses the following template to construct
+# the modified title.
+#
+# Template variables are specified in curly brackets. The following variables are
+# supported:
+#
+# {title}           Name of process as executed if parent, or type of child process.
+# {listen-addr}     Bind address or '*' followed by TCP or TLS port listening on, or
+#                   Unix socket if only that's available.
+# {server-mode}     Special mode, i.e. "[sentinel]" or "[cluster]".
+# {port}            TCP port listening on, or 0.
+# {tls-port}        TLS port listening on, or 0.
+# {unixsocket}      Unix domain socket listening on, or "".
+# {config-file}     Name of configuration file used.
+#
+proc-title-template "{title} {listen-addr} {server-mode}"
+
+# Set the local environment which is used for string comparison operations, and 
+# also affect the performance of Lua scripts. Empty String indicates the locale 
+# is derived from the environment variables.
+locale-collate ""
+
+# Valkey is largely compatible with Redis OSS, apart from a few cases where
+# Valkey identifies itself itself as "Valkey" rather than "Redis". Extended
+# Redis OSS compatibility mode makes Valkey pretend to be Redis. Enable this
+# only if you have problems with tools or clients. This is a temporary
+# configuration added in Valkey 8.0 and is scheduled to have no effect in Valkey
+# 9.0 and be completely removed in Valkey 10.0.
+#
+# extended-redis-compatibility no
+
+################################ SNAPSHOTTING  ################################
+
+# Save the DB to disk.
+#
+# save <seconds> <changes> [<seconds> <changes> ...]
+#
+# The server will save the DB if the given number of seconds elapsed and it
+# surpassed the given number of write operations against the DB.
+#
+# Snapshotting can be completely disabled with a single empty string argument
+# as in following example:
+#
+# save ""
+#
+# Unless specified otherwise, by default the server will save the DB:
+#   * After 3600 seconds (an hour) if at least 1 change was performed
+#   * After 300 seconds (5 minutes) if at least 100 changes were performed
+#   * After 60 seconds if at least 10000 changes were performed
+#
+# You can set these explicitly by uncommenting the following line.
+#
+# save 3600 1 300 100 60 10000
+
+# By default the server will stop accepting writes if RDB snapshots are enabled
+# (at least one save point) and the latest background save failed.
+# This will make the user aware (in a hard way) that data is not persisting
+# on disk properly, otherwise chances are that no one will notice and some
+# disaster will happen.
+#
+# If the background saving process will start working again, the server will
+# automatically allow writes again.
+#
+# However if you have setup your proper monitoring of the server
+# and persistence, you may want to disable this feature so that the server will
+# continue to work as usual even if there are problems with disk,
+# permissions, and so forth.
+stop-writes-on-bgsave-error yes
+
+# Compress string objects using LZF when dump .rdb databases?
+# By default compression is enabled as it's almost always a win.
+# If you want to save some CPU in the saving child set it to 'no' but
+# the dataset will likely be bigger if you have compressible values or keys.
+rdbcompression yes
+
+# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
+# This makes the format more resistant to corruption but there is a performance
+# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
+# for maximum performances.
+#
+# RDB files created with checksum disabled have a checksum of zero that will
+# tell the loading code to skip the check.
+rdbchecksum yes
+
+# Enables or disables full sanitization checks for ziplist and listpack etc when
+# loading an RDB or RESTORE payload. This reduces the chances of a assertion or
+# crash later on while processing commands.
+# Options:
+#   no         - Never perform full sanitization
+#   yes        - Always perform full sanitization
+#   clients    - Perform full sanitization only for user connections.
+#                Excludes: RDB files, RESTORE commands received from the primary
+#                connection, and client connections which have the
+#                skip-sanitize-payload ACL flag.
+# The default should be 'clients' but since it currently affects cluster
+# resharding via MIGRATE, it is temporarily set to 'no' by default.
+#
+# sanitize-dump-payload no
+
+# The filename where to dump the DB
+dbfilename dump.rdb
+
+# Remove RDB files used by replication in instances without persistence
+# enabled. By default this option is disabled, however there are environments
+# where for regulations or other security concerns, RDB files persisted on
+# disk by primaries in order to feed replicas, or stored on disk by replicas
+# in order to load them for the initial synchronization, should be deleted
+# ASAP. Note that this option ONLY WORKS in instances that have both AOF
+# and RDB persistence disabled, otherwise is completely ignored.
+#
+# An alternative (and sometimes better) way to obtain the same effect is
+# to use diskless replication on both primary and replicas instances. However
+# in the case of replicas, diskless is not always an option.
+rdb-del-sync-files no
+
+# The working directory.
+#
+# The DB will be written inside this directory, with the filename specified
+# above using the 'dbfilename' configuration directive.
+#
+# The Append Only File will also be created inside this directory.
+#
+# The Cluster config file is written relative this directory, if the
+# 'cluster-config-file' configuration directive is a relative path.
+#
+# Note that you must specify a directory here, not a file name.
+dir /var/lib/valkey
+
+################################# REPLICATION #################################
+
+# Master-Replica replication. Use replicaof to make a server a copy of
+# another server. A few things to understand ASAP about replication.
+#
+#   +------------------+      +---------------+
+#   |      Master      | ---> |    Replica    |
+#   | (receive writes) |      |  (exact copy) |
+#   +------------------+      +---------------+
+#
+# 1) Replication is asynchronous, but you can configure a primary to
+#    stop accepting writes if it appears to be not connected with at least
+#    a given number of replicas.
+# 2) Replicas are able to perform a partial resynchronization with the
+#    primary if the replication link is lost for a relatively small amount of
+#    time. You may want to configure the replication backlog size (see the next
+#    sections of this file) with a sensible value depending on your needs.
+# 3) Replication is automatic and does not need user intervention. After a
+#    network partition replicas automatically try to reconnect to primaries
+#    and resynchronize with them.
+#
+# replicaof <primary_ip> <primary_port>
+
+# If the primary is password protected (using the "requirepass" configuration
+# directive below) it is possible to tell the replica to authenticate before
+# starting the replication synchronization process, otherwise the primary will
+# refuse the replica request.
+#
+# primaryauth <primary-password>
+#
+# However this is not enough if you are using ACLs
+# and the default user is not capable of running the PSYNC
+# command and/or other commands needed for replication. In this case it's
+# better to configure a special user to use with replication, and specify the
+# primaryuser configuration as such:
+#
+# primaryuser <username>
+#
+# When primaryuser is specified, the replica will authenticate against its
+# primary using the new AUTH form: AUTH <username> <password>.
+
+# When a replica loses its connection with the primary, or when the replication
+# is still in progress, the replica can act in two different ways:
+#
+# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will
+#    still reply to client requests, possibly with out of date data, or the
+#    data set may just be empty if this is the first synchronization.
+#
+# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error
+#    "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'"
+#    to all data access commands, excluding commands such as:
+#    INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
+#    UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST,
+#    HOST and LATENCY.
+#
+replica-serve-stale-data yes
+
+# You can configure a replica instance to accept writes or not. Writing against
+# a replica instance may be useful to store some ephemeral data (because data
+# written on a replica will be easily deleted after resync with the primary) but
+# may also cause problems if clients are writing to it because of a
+# misconfiguration.
+#
+# By default, replicas are read-only.
+#
+# Note: read only replicas are not designed to be exposed to untrusted clients
+# on the internet. It's just a protection layer against misuse of the instance.
+# Still a read only replica exports by default all the administrative commands
+# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
+# security of read only replicas using 'rename-command' to shadow all the
+# administrative / dangerous commands.
+replica-read-only yes
+
+# Replication SYNC strategy: disk or socket.
+#
+# New replicas and reconnecting replicas that are not able to continue the
+# replication process just receiving differences, need to do what is called a
+# "full synchronization". An RDB file is transmitted from the primary to the
+# replicas.
+#
+# The transmission can happen in two different ways:
+#
+# 1) Disk-backed: The primary creates a new process that writes the RDB
+#                 file on disk. Later the file is transferred by the parent
+#                 process to the replicas incrementally.
+# 2) Diskless: The primary creates a new process that directly writes the
+#              RDB file to replica sockets, without touching the disk at all.
+#
+# With disk-backed replication, while the RDB file is generated, more replicas
+# can be queued and served with the RDB file as soon as the current child
+# producing the RDB file finishes its work. With diskless replication instead
+# once the transfer starts, new replicas arriving will be queued and a new
+# transfer will start when the current one terminates.
+#
+# When diskless replication is used, the primary waits a configurable amount of
+# time (in seconds) before starting the transfer in the hope that multiple
+# replicas will arrive and the transfer can be parallelized.
+#
+# With slow disks and fast (large bandwidth) networks, diskless replication
+# works better.
+repl-diskless-sync yes
+
+# When diskless replication is enabled, it is possible to configure the delay
+# the server waits in order to spawn the child that transfers the RDB via socket
+# to the replicas.
+#
+# This is important since once the transfer starts, it is not possible to serve
+# new replicas arriving, that will be queued for the next RDB transfer, so the
+# server waits a delay in order to let more replicas arrive.
+#
+# The delay is specified in seconds, and by default is 5 seconds. To disable
+# it entirely just set it to 0 seconds and the transfer will start ASAP.
+repl-diskless-sync-delay 5
+
+# When diskless replication is enabled with a delay, it is possible to let
+# the replication start before the maximum delay is reached if the maximum
+# number of replicas expected have connected. Default of 0 means that the
+# maximum is not defined and the server will wait the full delay.
+repl-diskless-sync-max-replicas 0
+
+# -----------------------------------------------------------------------------
+# WARNING: Since in this setup the replica does not immediately store an RDB on
+# disk, it may cause data loss during failovers. RDB diskless load + server
+# modules not handling I/O reads may cause the server to abort in case of I/O errors
+# during the initial synchronization stage with the primary.
+# -----------------------------------------------------------------------------
+#
+# Replica can load the RDB it reads from the replication link directly from the
+# socket, or store the RDB to a file and read that file after it was completely
+# received from the primary.
+#
+# In many cases the disk is slower than the network, and storing and loading
+# the RDB file may increase replication time (and even increase the primary's
+# Copy on Write memory and replica buffers).
+# However, when parsing the RDB file directly from the socket, in order to avoid
+# data loss it's only safe to flush the current dataset when the new dataset is
+# fully loaded in memory, resulting in higher memory usage.
+# For this reason we have the following options:
+#
+# "disabled"    - Don't use diskless load (store the rdb file to the disk first)
+# "swapdb"      - Keep current db contents in RAM while parsing the data directly
+#                 from the socket. Replicas in this mode can keep serving current
+#                 dataset while replication is in progress, except for cases where
+#                 they can't recognize primary as having a data set from same
+#                 replication history.
+#                 Note that this requires sufficient memory, if you don't have it,
+#                 you risk an OOM kill.
+# "on-empty-db" - Use diskless load only when current dataset is empty. This is 
+#                 safer and avoid having old and new dataset loaded side by side
+#                 during replication.
+repl-diskless-load disabled
+
+# This dual channel replication sync feature optimizes the full synchronization process 
+# between a primary and its replicas. When enabled, it reduces both memory and CPU load 
+# on the primary server.
+#
+# How it works:
+# 1. During full sync, instead of accumulating replication data on the primary server,
+#    the data is sent directly to the syncing replica.
+# 2. The primary's background save (bgsave) process streams the RDB snapshot directly
+#    to the replica over a separate connection.
+# 
+# Tradeoff:
+# While this approach reduces load on the primary, it shifts the burden of storing 
+# the replication buffer to the replica. This means the replica must have sufficient 
+# memory to accommodate the buffer during synchronization. However, this tradeoff is 
+# generally beneficial as it prevents potential performance degradation on the primary 
+# server, which is typically handling more critical operations.
+#
+# When toggling this configuration on or off during an ongoing synchronization process,
+# it does not change the already running sync method. The new configuration will take
+# effect only for subsequent synchronization processes.
+
+dual-channel-replication-enabled no
+
+# Master send PINGs to its replicas in a predefined interval. It's possible to
+# change this interval with the repl_ping_replica_period option. The default
+# value is 10 seconds.
+#
+# repl-ping-replica-period 10
+
+# The following option sets the replication timeout for:
+#
+# 1) Bulk transfer I/O during SYNC, from the point of view of replica.
+# 2) Master timeout from the point of view of replicas (data, pings).
+# 3) Replica timeout from the point of view of primaries (REPLCONF ACK pings).
+#
+# It is important to make sure that this value is greater than the value
+# specified for repl-ping-replica-period otherwise a timeout will be detected
+# every time there is low traffic between the primary and the replica. The default
+# value is 60 seconds.
+#
+# repl-timeout 60
+
+# Disable TCP_NODELAY on the replica socket after SYNC?
+#
+# If you select "yes", the server will use a smaller number of TCP packets and
+# less bandwidth to send data to replicas. But this can add a delay for
+# the data to appear on the replica side, up to 40 milliseconds with
+# Linux kernels using a default configuration.
+#
+# If you select "no" the delay for data to appear on the replica side will
+# be reduced but more bandwidth will be used for replication.
+#
+# By default we optimize for low latency, but in very high traffic conditions
+# or when the primary and replicas are many hops away, turning this to "yes" may
+# be a good idea.
+repl-disable-tcp-nodelay no
+
+# Set the replication backlog size. The backlog is a buffer that accumulates
+# replica data when replicas are disconnected for some time, so that when a
+# replica wants to reconnect again, often a full resync is not needed, but a
+# partial resync is enough, just passing the portion of data the replica
+# missed while disconnected.
+#
+# The bigger the replication backlog, the longer the replica can endure the
+# disconnect and later be able to perform a partial resynchronization.
+#
+# The backlog is only allocated if there is at least one replica connected.
+#
+# repl-backlog-size 10mb
+
+# After a primary has no connected replicas for some time, the backlog will be
+# freed. The following option configures the amount of seconds that need to
+# elapse, starting from the time the last replica disconnected, for the backlog
+# buffer to be freed.
+#
+# Note that replicas never free the backlog for timeout, since they may be
+# promoted to primaries later, and should be able to correctly "partially
+# resynchronize" with other replicas: hence they should always accumulate backlog.
+#
+# A value of 0 means to never release the backlog.
+#
+# repl-backlog-ttl 3600
+
+# The replica priority is an integer number published by the server in the INFO
+# output. It is used by Sentinel in order to select a replica to promote
+# into a primary if the primary is no longer working correctly.
+#
+# A replica with a low priority number is considered better for promotion, so
+# for instance if there are three replicas with priority 10, 100, 25 Sentinel
+# will pick the one with priority 10, that is the lowest.
+#
+# However a special priority of 0 marks the replica as not able to perform the
+# role of primary, so a replica with priority of 0 will never be selected by
+# Sentinel for promotion.
+#
+# By default the priority is 100.
+replica-priority 100
+
+# The propagation error behavior controls how the server will behave when it is
+# unable to handle a command being processed in the replication stream from a primary
+# or processed while reading from an AOF file. Errors that occur during propagation
+# are unexpected, and can cause data inconsistency. 
+#
+# If an application wants to ensure there is no data divergence, this configuration
+# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas'
+# to only panic when a replica encounters an error on the replication stream. One of
+# these two panic values will become the default value in the future once there are
+# sufficient safety mechanisms in place to prevent false positive crashes.
+#
+# propagation-error-behavior ignore
+
+# Replica ignore disk write errors controls the behavior of a replica when it is
+# unable to persist a write command received from its primary to disk. By default,
+# this configuration is set to 'no' and will crash the replica in this condition.
+# It is not recommended to change this default.
+#
+# replica-ignore-disk-write-errors no
+
+# -----------------------------------------------------------------------------
+# By default, Sentinel includes all replicas in its reports. A replica
+# can be excluded from Sentinel's announcements. An unannounced replica
+# will be ignored by the 'sentinel replicas <primary>' command and won't be
+# exposed to Sentinel's clients.
+#
+# This option does not change the behavior of replica-priority. Even with
+# replica-announced set to 'no', the replica can be promoted to primary. To
+# prevent this behavior, set replica-priority to 0.
+#
+# replica-announced yes
+
+# It is possible for a primary to stop accepting writes if there are less than
+# N replicas connected, having a lag less or equal than M seconds.
+#
+# The N replicas need to be in "online" state.
+#
+# The lag in seconds, that must be <= the specified value, is calculated from
+# the last ping received from the replica, that is usually sent every second.
+#
+# This option does not GUARANTEE that N replicas will accept the write, but
+# will limit the window of exposure for lost writes in case not enough replicas
+# are available, to the specified number of seconds.
+#
+# For example to require at least 3 replicas with a lag <= 10 seconds use:
+#
+# min-replicas-to-write 3
+# min-replicas-max-lag 10
+#
+# Setting one or the other to 0 disables the feature.
+#
+# By default min-replicas-to-write is set to 0 (feature disabled) and
+# min-replicas-max-lag is set to 10.
+
+# A primary is able to list the address and port of the attached
+# replicas in different ways. For example the "INFO replication" section
+# offers this information, which is used, among other tools, by
+# Sentinel in order to discover replica instances.
+# Another place where this info is available is in the output of the
+# "ROLE" command of a primary.
+#
+# The listed IP address and port normally reported by a replica is
+# obtained in the following way:
+#
+#   IP: The address is auto detected by checking the peer address
+#   of the socket used by the replica to connect with the primary.
+#
+#   Port: The port is communicated by the replica during the replication
+#   handshake, and is normally the port that the replica is using to
+#   listen for connections.
+#
+# However when port forwarding or Network Address Translation (NAT) is
+# used, the replica may actually be reachable via different IP and port
+# pairs. The following two options can be used by a replica in order to
+# report to its primary a specific set of IP and port, so that both INFO
+# and ROLE will report those values.
+#
+# There is no need to use both the options if you need to override just
+# the port or the IP address.
+#
+# replica-announce-ip 5.5.5.5
+# replica-announce-port 1234
+
+############################### KEYS TRACKING #################################
+
+# The client side caching of values is assisted via server-side support.
+# This is implemented using an invalidation table that remembers, using
+# a radix key indexed by key name, what clients have which keys. In turn
+# this is used in order to send invalidation messages to clients. Please
+# check this page to understand more about the feature:
+#
+#   https://valkey.io/topics/client-side-caching
+#
+# When tracking is enabled for a client, all the read only queries are assumed
+# to be cached: this will force the server to store information in the invalidation
+# table. When keys are modified, such information is flushed away, and
+# invalidation messages are sent to the clients. However if the workload is
+# heavily dominated by reads, the server could use more and more memory in order
+# to track the keys fetched by many clients.
+#
+# For this reason it is possible to configure a maximum fill value for the
+# invalidation table. By default it is set to 1M of keys, and once this limit
+# is reached, the server will start to evict keys in the invalidation table
+# even if they were not modified, just to reclaim memory: this will in turn
+# force the clients to invalidate the cached values. Basically the table
+# maximum size is a trade off between the memory you want to spend server
+# side to track information about who cached what, and the ability of clients
+# to retain cached objects in memory.
+#
+# If you set the value to 0, it means there are no limits, and the server will
+# retain as many keys as needed in the invalidation table.
+# In the "stats" INFO section, you can find information about the number of
+# keys in the invalidation table at every given moment.
+#
+# Note: when key tracking is used in broadcasting mode, no memory is used
+# in the server side so this setting is useless.
+#
+# tracking-table-max-keys 1000000
+
+################################## SECURITY ###################################
+
+# Warning: since the server is pretty fast, an outside user can try up to
+# 1 million passwords per second against a modern box. This means that you
+# should use very strong passwords, otherwise they will be very easy to break.
+# Note that because the password is really a shared secret between the client
+# and the server, and should not be memorized by any human, the password
+# can be easily a long string from /dev/urandom or whatever, so by using a
+# long and unguessable password no brute force attack will be possible.
+
+# ACL users are defined in the following format:
+#
+#   user <username> ... acl rules ...
+#
+# For example:
+#
+#   user worker +@list +@connection ~jobs:* on >ffa9203c493aa99
+#
+# The special username "default" is used for new connections. If this user
+# has the "nopass" rule, then new connections will be immediately authenticated
+# as the "default" user without the need of any password provided via the
+# AUTH command. Otherwise if the "default" user is not flagged with "nopass"
+# the connections will start in not authenticated state, and will require
+# AUTH (or the HELLO command AUTH option) in order to be authenticated and
+# start to work.
+#
+# The ACL rules that describe what a user can do are the following:
+#
+#  on           Enable the user: it is possible to authenticate as this user.
+#  off          Disable the user: it's no longer possible to authenticate
+#               with this user, however the already authenticated connections
+#               will still work.
+#  skip-sanitize-payload    RESTORE dump-payload sanitization is skipped.
+#  sanitize-payload         RESTORE dump-payload is sanitized (default).
+#  +<command>   Allow the execution of that command.
+#               May be used with `|` for allowing subcommands (e.g "+config|get")
+#  -<command>   Disallow the execution of that command.
+#               May be used with `|` for blocking subcommands (e.g "-config|set")
+#  +@<category> Allow the execution of all the commands in such category
+#               with valid categories are like @admin, @set, @sortedset, ...
+#               and so forth, see the full list in the server.c file where
+#               the server command table is described and defined.
+#               The special category @all means all the commands, but currently
+#               present in the server, and that will be loaded in the future
+#               via modules.
+#  +<command>|first-arg  Allow a specific first argument of an otherwise
+#                        disabled command. It is only supported on commands with
+#                        no sub-commands, and is not allowed as negative form
+#                        like -SELECT|1, only additive starting with "+". This
+#                        feature is deprecated and may be removed in the future.
+#  allcommands  Alias for +@all. Note that it implies the ability to execute
+#               all the future commands loaded via the modules system.
+#  nocommands   Alias for -@all.
+#  ~<pattern>   Add a pattern of keys that can be mentioned as part of
+#               commands. For instance ~* allows all the keys. The pattern
+#               is a glob-style pattern like the one of KEYS.
+#               It is possible to specify multiple patterns.
+# %R~<pattern>  Add key read pattern that specifies which keys can be read 
+#               from.
+# %W~<pattern>  Add key write pattern that specifies which keys can be
+#               written to. 
+#  allkeys      Alias for ~*
+#  resetkeys    Flush the list of allowed keys patterns.
+#  &<pattern>   Add a glob-style pattern of Pub/Sub channels that can be
+#               accessed by the user. It is possible to specify multiple channel
+#               patterns.
+#  allchannels  Alias for &*
+#  resetchannels            Flush the list of allowed channel patterns.
+#  ><password>  Add this password to the list of valid password for the user.
+#               For example >mypass will add "mypass" to the list.
+#               This directive clears the "nopass" flag (see later).
+#  <<password>  Remove this password from the list of valid passwords.
+#  nopass       All the set passwords of the user are removed, and the user
+#               is flagged as requiring no password: it means that every
+#               password will work against this user. If this directive is
+#               used for the default user, every new connection will be
+#               immediately authenticated with the default user without
+#               any explicit AUTH command required. Note that the "resetpass"
+#               directive will clear this condition.
+#  resetpass    Flush the list of allowed passwords. Moreover removes the
+#               "nopass" status. After "resetpass" the user has no associated
+#               passwords and there is no way to authenticate without adding
+#               some password (or setting it as "nopass" later).
+#  reset        Performs the following actions: resetpass, resetkeys, resetchannels,
+#               allchannels (if acl-pubsub-default is set), off, clearselectors, -@all.
+#               The user returns to the same state it has immediately after its creation.
+# (<options>)   Create a new selector with the options specified within the
+#               parentheses and attach it to the user. Each option should be 
+#               space separated. The first character must be ( and the last 
+#               character must be ).
+# clearselectors            Remove all of the currently attached selectors. 
+#                           Note this does not change the "root" user permissions,
+#                           which are the permissions directly applied onto the
+#                           user (outside the parentheses).
+#
+# ACL rules can be specified in any order: for instance you can start with
+# passwords, then flags, or key patterns. However note that the additive
+# and subtractive rules will CHANGE MEANING depending on the ordering.
+# For instance see the following example:
+#
+#   user alice on +@all -DEBUG ~* >somepassword
+#
+# This will allow "alice" to use all the commands with the exception of the
+# DEBUG command, since +@all added all the commands to the set of the commands
+# alice can use, and later DEBUG was removed. However if we invert the order
+# of two ACL rules the result will be different:
+#
+#   user alice on -DEBUG +@all ~* >somepassword
+#
+# Now DEBUG was removed when alice had yet no commands in the set of allowed
+# commands, later all the commands are added, so the user will be able to
+# execute everything.
+#
+# Basically ACL rules are processed left-to-right.
+#
+# The following is a list of command categories and their meanings:
+# * keyspace - Writing or reading from keys, databases, or their metadata 
+#     in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE,
+#     KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace,
+#     key or metadata will also have `write` category. Commands that only read
+#     the keyspace, key or metadata will have the `read` category.
+# * read - Reading from keys (values or metadata). Note that commands that don't
+#     interact with keys, will not have either `read` or `write`.
+# * write - Writing to keys (values or metadata)
+# * admin - Administrative commands. Normal applications will never need to use
+#     these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc.
+# * dangerous - Potentially dangerous (each should be considered with care for
+#     various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS,
+#     CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc.
+# * connection - Commands affecting the connection or other connections.
+#     This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc.
+# * blocking - Potentially blocking the connection until released by another
+#     command.
+# * fast - Fast O(1) commands. May loop on the number of arguments, but not the
+#     number of elements in the key.
+# * slow - All commands that are not Fast.
+# * pubsub - PUBLISH / SUBSCRIBE related
+# * transaction - WATCH / MULTI / EXEC related commands.
+# * scripting - Scripting related.
+# * set - Data type: sets related.
+# * sortedset - Data type: zsets related.
+# * list - Data type: lists related.
+# * hash - Data type: hashes related.
+# * string - Data type: strings related.
+# * bitmap - Data type: bitmaps related.
+# * hyperloglog - Data type: hyperloglog related.
+# * geo - Data type: geo related.
+# * stream - Data type: streams related.
+#
+# For more information about ACL configuration please refer to
+# the Valkey web site at https://valkey.io/topics/acl
+
+# ACL LOG
+#
+# The ACL Log tracks failed commands and authentication events associated
+# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked
+# by ACLs. The ACL Log is stored in memory. You can reclaim memory with
+# ACL LOG RESET. Define the maximum entry length of the ACL Log below.
+acllog-max-len 128
+
+# Using an external ACL file
+#
+# Instead of configuring users here in this file, it is possible to use
+# a stand-alone file just listing users. The two methods cannot be mixed:
+# if you configure users here and at the same time you activate the external
+# ACL file, the server will refuse to start.
+#
+# The format of the external ACL user file is exactly the same as the
+# format that is used inside valkey.conf to describe users.
+#
+# aclfile /etc/valkey/users.acl
+
+# IMPORTANT NOTE: "requirepass" is just a compatibility
+# layer on top of the new ACL system. The option effect will be just setting
+# the password for the default user. Clients will still authenticate using
+# AUTH <password> as usually, or more explicitly with AUTH default <password>
+# if they follow the new protocol: both will work.
+#
+# The requirepass is not compatible with aclfile option and the ACL LOAD
+# command, these will cause requirepass to be ignored.
+#
+# requirepass foobared
+
+# The default Pub/Sub channels permission for new users is controlled by the
+# acl-pubsub-default configuration directive, which accepts one of these values:
+#
+# allchannels: grants access to all Pub/Sub channels
+# resetchannels: revokes access to all Pub/Sub channels
+#
+# acl-pubsub-default defaults to 'resetchannels' permission.
+#
+# acl-pubsub-default resetchannels
+
+# Command renaming (DEPRECATED).
+#
+# ------------------------------------------------------------------------
+# WARNING: avoid using this option if possible. Instead use ACLs to remove
+# commands from the default user, and put them only in some admin user you
+# create for administrative purposes.
+# ------------------------------------------------------------------------
+#
+# It is possible to change the name of dangerous commands in a shared
+# environment. For instance the CONFIG command may be renamed into something
+# hard to guess so that it will still be available for internal-use tools
+# but not available for general clients.
+#
+# Example:
+#
+# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
+#
+# It is also possible to completely kill a command by renaming it into
+# an empty string:
+#
+# rename-command CONFIG ""
+#
+# Please note that changing the name of commands that are logged into the
+# AOF file or transmitted to replicas may cause problems.
+
+################################### CLIENTS ####################################
+
+# Set the max number of connected clients at the same time. By default
+# this limit is set to 10000 clients, however if the server is not
+# able to configure the process file limit to allow for the specified limit
+# the max number of allowed clients is set to the current file limit
+# minus 32 (as the server reserves a few file descriptors for internal uses).
+#
+# Once the limit is reached the server will close all the new connections sending
+# an error 'max number of clients reached'.
+#
+# IMPORTANT: With a cluster-enabled setup, the max number of connections is also
+# shared with the cluster bus: every node in the cluster will use two
+# connections, one incoming and another outgoing. It is important to size the
+# limit accordingly in case of very large clusters.
+#
+# maxclients 10000
+
+############################## MEMORY MANAGEMENT ################################
+
+# Set a memory usage limit to the specified amount of bytes.
+# When the memory limit is reached the server will try to remove keys
+# according to the eviction policy selected (see maxmemory-policy).
+#
+# If the server can't remove keys according to the policy, or if the policy is
+# set to 'noeviction', the server will start to reply with errors to commands
+# that would use more memory, like SET, LPUSH, and so on, and will continue
+# to reply to read-only commands like GET.
+#
+# This option is usually useful when using the server as an LRU or LFU cache, or to
+# set a hard memory limit for an instance (using the 'noeviction' policy).
+#
+# WARNING: If you have replicas attached to an instance with maxmemory on,
+# the size of the output buffers needed to feed the replicas are subtracted
+# from the used memory count, so that network problems / resyncs will
+# not trigger a loop where keys are evicted, and in turn the output
+# buffer of replicas is full with DELs of keys evicted triggering the deletion
+# of more keys, and so forth until the database is completely emptied.
+#
+# In short... if you have replicas attached it is suggested that you set a lower
+# limit for maxmemory so that there is some free RAM on the system for replica
+# output buffers (but this is not needed if the policy is 'noeviction').
+#
+# maxmemory <bytes>
+maxmemory 200mb
+
+# MAXMEMORY POLICY: how the server will select what to remove when maxmemory
+# is reached. You can select one from the following behaviors:
+#
+# volatile-lru -> Evict using approximated LRU, only keys with an expire set.
+# allkeys-lru -> Evict any key using approximated LRU.
+# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
+# allkeys-lfu -> Evict any key using approximated LFU.
+# volatile-random -> Remove a random key having an expire set.
+# allkeys-random -> Remove a random key, any key.
+# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
+# noeviction -> Don't evict anything, just return an error on write operations.
+#
+# LRU means Least Recently Used
+# LFU means Least Frequently Used
+#
+# Both LRU, LFU and volatile-ttl are implemented using approximated
+# randomized algorithms.
+#
+# Note: with any of the above policies, when there are no suitable keys for
+# eviction, the server will return an error on write operations that require
+# more memory. These are usually commands that create new keys, add data or
+# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE,
+# SORT (due to the STORE argument), and EXEC (if the transaction includes any
+# command that requires memory).
+#
+# The default is:
+#
+# maxmemory-policy noeviction
+maxmemory-policy volatile-lru
+
+# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated
+# algorithms (in order to save memory), so you can tune it for speed or
+# accuracy. By default the server will check five keys and pick the one that was
+# used least recently, you can change the sample size using the following
+# configuration directive.
+#
+# The default of 5 produces good enough results. 10 Approximates very closely
+# true LRU but costs more CPU. 3 is faster but not very accurate. The maximum
+# value that can be set is 64.
+#
+# maxmemory-samples 5
+
+# Eviction processing is designed to function well with the default setting.
+# If there is an unusually large amount of write traffic, this value may need to
+# be increased.  Decreasing this value may reduce latency at the risk of
+# eviction processing effectiveness
+#   0 = minimum latency, 10 = default, 100 = process without regard to latency
+#
+# maxmemory-eviction-tenacity 10
+
+# By default a replica will ignore its maxmemory setting
+# (unless it is promoted to primary after a failover or manually). It means
+# that the eviction of keys will be just handled by the primary, sending the
+# DEL commands to the replica as keys evict in the primary side.
+#
+# This behavior ensures that primaries and replicas stay consistent, and is usually
+# what you want, however if your replica is writable, or you want the replica
+# to have a different memory setting, and you are sure all the writes performed
+# to the replica are idempotent, then you may change this default (but be sure
+# to understand what you are doing).
+#
+# Note that since the replica by default does not evict, it may end using more
+# memory than the one set via maxmemory (there are certain buffers that may
+# be larger on the replica, or data structures may sometimes take more memory
+# and so forth). So make sure you monitor your replicas and make sure they
+# have enough memory to never hit a real out-of-memory condition before the
+# primary hits the configured maxmemory setting.
+#
+# replica-ignore-maxmemory yes
+
+# The server reclaims expired keys in two ways: upon access when those keys are
+# found to be expired, and also in background, in what is called the
+# "active expire key". The key space is slowly and interactively scanned
+# looking for expired keys to reclaim, so that it is possible to free memory
+# of keys that are expired and will never be accessed again in a short time.
+#
+# The default effort of the expire cycle will try to avoid having more than
+# ten percent of expired keys still in memory, and will try to avoid consuming
+# more than 25% of total memory and to add latency to the system. However
+# it is possible to increase the expire "effort" that is normally set to
+# "1", to a greater value, up to the value "10". At its maximum value the
+# system will use more CPU, longer cycles (and technically may introduce
+# more latency), and will tolerate less already expired keys still present
+# in the system. It's a tradeoff between memory, CPU and latency.
+#
+# active-expire-effort 1
+
+############################# LAZY FREEING ####################################
+
+# When keys are deleted, the served has historically freed their memory using
+# blocking operations. It means that the server stopped processing new commands
+# in order to reclaim all the memory associated with an object in a synchronous
+# way. If the key deleted is associated with a small object, the time needed
+# in order to execute the DEL command is very small and comparable to most other
+# O(1) or O(log_N) commands in the server. However if the key is associated with an
+# aggregated value containing millions of elements, the server can block for
+# a long time (even seconds) in order to complete the operation.
+#
+# For the above reasons, lazy freeing (or asynchronous freeing), has been
+# introduced. With lazy freeing, keys are deleted in constant time. Another
+# thread will incrementally free the object in the background as fast as
+# possible.
+#
+# Starting from Valkey 8.0, lazy freeing is enabled by default. It is possible
+# to retain the synchronous freeing behaviour by setting the lazyfree related
+# configuration directives to 'no'.
+
+# Commands like DEL, FLUSHALL and FLUSHDB delete keys, but the server can also
+# delete keys or flush the whole database as a side effect of other operations.
+# Specifically the server deletes objects independently of a user call in the
+# following scenarios:
+#
+# 1) On eviction, because of the maxmemory and maxmemory policy configurations,
+#    in order to make room for new data, without going over the specified
+#    memory limit.
+# 2) Because of expire: when a key with an associated time to live (see the
+#    EXPIRE command) must be deleted from memory.
+# 3) Because of a side effect of a command that stores data on a key that may
+#    already exist. For example the RENAME command may delete the old key
+#    content when it is replaced with another one. Similarly SUNIONSTORE
+#    or SORT with STORE option may delete existing keys. The SET command
+#    itself removes any old content of the specified key in order to replace
+#    it with the specified string.
+# 4) During replication, when a replica performs a full resynchronization with
+#    its primary, the content of the whole database is removed in order to
+#    load the RDB file just transferred.
+#
+# In all the above cases, the default is to release memory in a non-blocking
+# way.
+
+lazyfree-lazy-eviction yes
+lazyfree-lazy-expire yes
+lazyfree-lazy-server-del yes
+replica-lazy-flush yes
+
+# For keys deleted using the DEL command, lazy freeing is controlled by the
+# configuration directive 'lazyfree-lazy-user-del'. The default is 'yes'. The
+# UNLINK command is identical to the DEL command, except that UNLINK always
+# frees the memory lazily, regardless of this configuration directive:
+
+lazyfree-lazy-user-del yes
+
+# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous
+# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the
+# commands. When neither flag is passed, this directive will be used to determine
+# if the data should be deleted asynchronously.
+
+# There are many problems with running flush synchronously. Even in single CPU
+# environments, the thread managers should balance between the freeing and
+# serving incoming requests. The default value is yes.
+
+lazyfree-lazy-user-flush yes
+
+################################ THREADED I/O #################################
+
+# The server is mostly single threaded, however there are certain threaded
+# operations such as UNLINK, slow I/O accesses and other things that are
+# performed on side threads.
+#
+# Now it is also possible to handle the server clients socket reads and writes
+# in different I/O threads. Since especially writing is so slow, normally
+# users use pipelining in order to speed up the server performances per
+# core, and spawn multiple instances in order to scale more. Using I/O
+# threads it is possible to easily speedup two times the server without resorting
+# to pipelining nor sharding of the instance.
+#
+# By default threading is disabled, we suggest enabling it only in machines
+# that have at least 3 or more cores, leaving at least one spare core.
+# We also recommend using threaded I/O only if you actually have performance problems, with 
+# instances being able to use a quite big percentage of CPU time, otherwise
+# there is no point in using this feature.
+#
+# So for instance if you have a four cores boxes, try to use 2 or 3 I/O
+# threads, if you have a 8 cores, try to use 6 threads. In order to
+# enable I/O threads use the following configuration directive:
+#
+# io-threads 4
+#
+# Setting io-threads to 1 will just use the main thread as usual.
+# When I/O threads are enabled, we use threads for reads and writes, that is
+# to thread the write and read syscall and transfer the client buffers to the
+# socket and to enable threading of reads and protocol parsing. 
+#
+# When multiple commands are parsed by the I/O threads and ready for execution,
+# we take advantage of knowing the next set of commands and prefetch their
+# required dictionary entries in a batch. This reduces memory access costs.
+#
+# The optimal batch size depends on the specific workflow of the user.
+# The default batch size is 16, which can be modified using the
+# 'prefetch-batch-max-size' config.
+#
+# When the config is set to 0, prefetching is disabled.
+#
+# prefetch-batch-max-size 16
+#
+# NOTE: If you want to test the server speedup using valkey-benchmark, make
+# sure you also run the benchmark itself in threaded mode, using the
+# --threads option to match the number of server threads, otherwise you'll not
+# be able to notice the improvements.
+
+############################ KERNEL OOM CONTROL ##############################
+
+# On Linux, it is possible to hint the kernel OOM killer on what processes
+# should be killed first when out of memory.
+#
+# Enabling this feature makes the server actively control the oom_score_adj value
+# for all its processes, depending on their role. The default scores will
+# attempt to have background child processes killed before all others, and
+# replicas killed before primaries.
+#
+# The server supports these options:
+#
+# no:       Don't make changes to oom-score-adj (default).
+# yes:      Alias to "relative" see below.
+# absolute: Values in oom-score-adj-values are written as is to the kernel.
+# relative: Values are used relative to the initial value of oom_score_adj when
+#           the server starts and are then clamped to a range of -1000 to 1000.
+#           Because typically the initial value is 0, they will often match the
+#           absolute values.
+oom-score-adj no
+
+# When oom-score-adj is used, this directive controls the specific values used
+# for primary, replica and background child processes. Values range -2000 to
+# 2000 (higher means more likely to be killed).
+#
+# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities)
+# can freely increase their value, but not decrease it below its initial
+# settings. This means that setting oom-score-adj to "relative" and setting the
+# oom-score-adj-values to positive values will always succeed.
+oom-score-adj-values 0 200 800
+
+
+#################### KERNEL transparent hugepage CONTROL ######################
+
+# Usually the kernel Transparent Huge Pages control is set to "madvise" or
+# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which
+# case this config has no effect. On systems in which it is set to "always",
+# the server will attempt to disable it specifically for the server process in order
+# to avoid latency problems specifically with fork(2) and CoW.
+# If for some reason you prefer to keep it enabled, you can set this config to
+# "no" and the kernel global to "always".
+
+disable-thp yes
+
+############################## APPEND ONLY MODE ###############################
+
+# By default the server asynchronously dumps the dataset on disk. This mode is
+# good enough in many applications, but an issue with the server process or
+# a power outage may result into a few minutes of writes lost (depending on
+# the configured save points).
+#
+# The Append Only File is an alternative persistence mode that provides
+# much better durability. For instance using the default data fsync policy
+# (see later in the config file) the server can lose just one second of writes in a
+# dramatic event like a server power outage, or a single write if something
+# wrong with the process itself happens, but the operating system is
+# still running correctly.
+#
+# AOF and RDB persistence can be enabled at the same time without problems.
+# If the AOF is enabled on startup the server will load the AOF, that is the file
+# with the better durability guarantees.
+#
+# Note that changing this value in a config file of an existing database and
+# restarting the server can lead to data loss. A conversion needs to be done
+# by setting it via CONFIG command on a live server first.
+#
+# Please check https://valkey.io/topics/persistence for more information.
+
+appendonly no
+
+# The base name of the append only file.
+#
+# The server uses a set of append-only files to persist the dataset
+# and changes applied to it. There are two basic types of files in use:
+#
+# - Base files, which are a snapshot representing the complete state of the
+#   dataset at the time the file was created. Base files can be either in
+#   the form of RDB (binary serialized) or AOF (textual commands).
+# - Incremental files, which contain additional commands that were applied
+#   to the dataset following the previous file.
+#
+# In addition, manifest files are used to track the files and the order in
+# which they were created and should be applied.
+#
+# Append-only file names are created by the server following a specific pattern.
+# The file name's prefix is based on the 'appendfilename' configuration
+# parameter, followed by additional information about the sequence and type.
+#
+# For example, if appendfilename is set to appendonly.aof, the following file
+# names could be derived:
+#
+# - appendonly.aof.1.base.rdb as a base file.
+# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
+# - appendonly.aof.manifest as a manifest file.
+
+appendfilename "appendonly.aof"
+
+# For convenience, the server stores all persistent append-only files in a dedicated
+# directory. The name of the directory is determined by the appenddirname
+# configuration parameter.
+
+appenddirname "appendonlydir"
+
+# The fsync() call tells the Operating System to actually write data on disk
+# instead of waiting for more data in the output buffer. Some OS will really flush
+# data on disk, some other OS will just try to do it ASAP.
+#
+# The server supports three different modes:
+#
+# no: don't fsync, just let the OS flush the data when it wants. Faster.
+# always: fsync after every write to the append only log. Slow, Safest.
+# everysec: fsync only one time every second. Compromise.
+#
+# The default is "everysec", as that's usually the right compromise between
+# speed and data safety. It's up to you to understand if you can relax this to
+# "no" that will let the operating system flush the output buffer when
+# it wants, for better performances (but if you can live with the idea of
+# some data loss consider the default persistence mode that's snapshotting),
+# or on the contrary, use "always" that's very slow but a bit safer than
+# everysec.
+#
+# More details please check the following article:
+# http://antirez.com/post/redis-persistence-demystified.html
+#
+# If unsure, use "everysec".
+
+# appendfsync always
+appendfsync everysec
+# appendfsync no
+
+# When the AOF fsync policy is set to always or everysec, and a background
+# saving process (a background save or AOF log background rewriting) is
+# performing a lot of I/O against the disk, in some Linux configurations
+# the server may block too long on the fsync() call. Note that there is no fix for
+# this currently, as even performing fsync in a different thread will block
+# our synchronous write(2) call.
+#
+# In order to mitigate this problem it's possible to use the following option
+# that will prevent fsync() from being called in the main process while a
+# BGSAVE or BGREWRITEAOF is in progress.
+#
+# This means that while another child is saving, the durability of the server is
+# the same as "appendfsync no". In practical terms, this means that it is
+# possible to lose up to 30 seconds of log in the worst scenario (with the
+# default Linux settings).
+#
+# If you have latency problems turn this to "yes". Otherwise leave it as
+# "no" that is the safest pick from the point of view of durability.
+
+no-appendfsync-on-rewrite no
+
+# Automatic rewrite of the append only file.
+# The server is able to automatically rewrite the log file implicitly calling
+# BGREWRITEAOF when the AOF log size grows by the specified percentage.
+#
+# This is how it works: The server remembers the size of the AOF file after the
+# latest rewrite (if no rewrite has happened since the restart, the size of
+# the AOF at startup is used).
+#
+# This base size is compared to the current size. If the current size is
+# bigger than the specified percentage, the rewrite is triggered. Also
+# you need to specify a minimal size for the AOF file to be rewritten, this
+# is useful to avoid rewriting the AOF file even if the percentage increase
+# is reached but it is still pretty small.
+#
+# Specify a percentage of zero in order to disable the automatic AOF
+# rewrite feature.
+
+auto-aof-rewrite-percentage 100
+auto-aof-rewrite-min-size 64mb
+
+# An AOF file may be found to be truncated at the end during the server
+# startup process, when the AOF data gets loaded back into memory.
+# This may happen when the system where the server is running
+# crashes, especially when an ext4 filesystem is mounted without the
+# data=ordered option (however this can't happen when the server itself
+# crashes or aborts but the operating system still works correctly).
+#
+# The server can either exit with an error when this happens, or load as much
+# data as possible (the default now) and start if the AOF file is found
+# to be truncated at the end. The following option controls this behavior.
+#
+# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
+# the server starts emitting a log to inform the user of the event.
+# Otherwise if the option is set to no, the server aborts with an error
+# and refuses to start. When the option is set to no, the user requires
+# to fix the AOF file using the "valkey-check-aof" utility before to restart
+# the server.
+#
+# Note that if the AOF file will be found to be corrupted in the middle
+# the server will still exit with an error. This option only applies when
+# the server will try to read more data from the AOF file but not enough bytes
+# will be found.
+aof-load-truncated yes
+
+# The server can create append-only base files in either RDB or AOF formats. Using
+# the RDB format is always faster and more efficient, and disabling it is only
+# supported for backward compatibility purposes.
+aof-use-rdb-preamble yes
+
+# The server supports recording timestamp annotations in the AOF to support restoring
+# the data from a specific point-in-time. However, using this capability changes
+# the AOF format in a way that may not be compatible with existing AOF parsers.
+aof-timestamp-enabled no
+
+################################ SHUTDOWN #####################################
+
+# Maximum time to wait for replicas when shutting down, in seconds.
+#
+# During shut down, a grace period allows any lagging replicas to catch up with
+# the latest replication offset before the primary exists. This period can
+# prevent data loss, especially for deployments without configured disk backups.
+#
+# The 'shutdown-timeout' value is the grace period's duration in seconds. It is
+# only applicable when the instance has replicas. To disable the feature, set
+# the value to 0.
+#
+# shutdown-timeout 10
+
+# When the server receives a SIGINT or SIGTERM, shutdown is initiated and by default
+# an RDB snapshot is written to disk in a blocking operation if save points are configured.
+# The options used on signaled shutdown can include the following values:
+# default:  Saves RDB snapshot only if save points are configured.
+#           Waits for lagging replicas to catch up.
+# save:     Forces a DB saving operation even if no save points are configured.
+# nosave:   Prevents DB saving operation even if one or more save points are configured.
+# now:      Skips waiting for lagging replicas.
+# force:    Ignores any errors that would normally prevent the server from exiting.
+#
+# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously.
+# Example: "nosave force now"
+#
+# shutdown-on-sigint default
+# shutdown-on-sigterm default
+
+################ NON-DETERMINISTIC LONG BLOCKING COMMANDS #####################
+
+# Maximum time in milliseconds for EVAL scripts, functions and in some cases
+# modules' commands before the server can start processing or rejecting other clients.
+#
+# If the maximum execution time is reached the server will start to reply to most
+# commands with a BUSY error.
+#
+# In this state the server will only allow a handful of commands to be executed.
+# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
+# module specific 'allow-busy' commands.
+#
+# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
+# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop
+# the server in the case a write command was already issued by the script when
+# the user doesn't want to wait for the natural termination of the script.
+#
+# The default is 5 seconds. It is possible to set it to 0 or a negative value
+# to disable this mechanism (uninterrupted execution). Note that in the past
+# this config had a different name, which is now an alias, so both of these do
+# the same:
+# lua-time-limit 5000
+# busy-reply-threshold 5000
+
+################################ VALKEY CLUSTER  ###############################
+
+# Normal server instances can't be part of a cluster; only nodes that are
+# started as cluster nodes can. In order to start a server instance as a
+# cluster node enable the cluster support uncommenting the following:
+#
+# cluster-enabled yes
+
+# Every cluster node has a cluster configuration file. This file is not
+# intended to be edited by hand. It is created and updated by each node.
+# Every cluster node requires a different cluster configuration file.
+# Make sure that instances running in the same system do not have
+# overlapping cluster configuration file names.
+#
+# cluster-config-file nodes-6379.conf
+
+# Cluster node timeout is the amount of milliseconds a node must be unreachable
+# for it to be considered in failure state.
+# Most other internal time limits are a multiple of the node timeout.
+#
+# cluster-node-timeout 15000
+
+# The cluster port is the port that the cluster bus will listen for inbound connections on. When set 
+# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires 
+# you to specify the cluster bus port when executing cluster meet.
+# cluster-port 0
+
+# A replica of a failing primary will avoid to start a failover if its data
+# looks too old.
+#
+# There is no simple way for a replica to actually have an exact measure of
+# its "data age", so the following two checks are performed:
+#
+# 1) If there are multiple replicas able to failover, they exchange messages
+#    in order to try to give an advantage to the replica with the best
+#    replication offset (more data from the primary processed).
+#    Replicas will try to get their rank by offset, and apply to the start
+#    of the failover a delay proportional to their rank.
+#
+# 2) Every single replica computes the time of the last interaction with
+#    its primary. This can be the last ping or command received (if the primary
+#    is still in the "connected" state), or the time that elapsed since the
+#    disconnection with the primary (if the replication link is currently down).
+#    If the last interaction is too old, the replica will not try to failover
+#    at all.
+#
+# The point "2" can be tuned by user. Specifically a replica will not perform
+# the failover if, since the last interaction with the primary, the time
+# elapsed is greater than:
+#
+#   (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period
+#
+# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor
+# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the
+# replica will not try to failover if it was not able to talk with the primary
+# for longer than 310 seconds.
+#
+# A large cluster-replica-validity-factor may allow replicas with too old data to failover
+# a primary, while a too small value may prevent the cluster from being able to
+# elect a replica at all.
+#
+# For maximum availability, it is possible to set the cluster-replica-validity-factor
+# to a value of 0, which means, that replicas will always try to failover the
+# primary regardless of the last time they interacted with the primary.
+# (However they'll always try to apply a delay proportional to their
+# offset rank).
+#
+# Zero is the only value able to guarantee that when all the partitions heal
+# the cluster will always be able to continue.
+#
+# cluster-replica-validity-factor 10
+
+# Cluster replicas are able to migrate to orphaned primaries, that are primaries
+# that are left without working replicas. This improves the cluster ability
+# to resist to failures as otherwise an orphaned primary can't be failed over
+# in case of failure if it has no working replicas.
+#
+# Replicas migrate to orphaned primaries only if there are still at least a
+# given number of other working replicas for their old primary. This number
+# is the "migration barrier". A migration barrier of 1 means that a replica
+# will migrate only if there is at least 1 other working replica for its primary
+# and so forth. It usually reflects the number of replicas you want for every
+# primary in your cluster.
+#
+# Default is 1 (replicas migrate only if their primaries remain with at least
+# one replica). To disable migration just set it to a very large value or
+# set cluster-allow-replica-migration to 'no'.
+# A value of 0 can be set but is useful only for debugging and dangerous
+# in production.
+#
+# cluster-migration-barrier 1
+
+# Turning off this option allows to use less automatic cluster configuration.
+# It disables migration of replicas to orphaned primaries. Masters that become
+# empty due to losing their last slots to another primary will not automatically
+# replicate from the primary that took over their last slots. Instead, they will
+# remain as empty primaries without any slots.
+#
+# Default is 'yes' (allow automatic migrations).
+#
+# cluster-allow-replica-migration yes
+
+# By default cluster nodes stop accepting queries if they detect there
+# is at least a hash slot uncovered (no available node is serving it).
+# This way if the cluster is partially down (for example a range of hash slots
+# are no longer covered) all the cluster becomes, eventually, unavailable.
+# It automatically returns available as soon as all the slots are covered again.
+#
+# However sometimes you want the subset of the cluster which is working,
+# to continue to accept queries for the part of the key space that is still
+# covered. In order to do so, just set the cluster-require-full-coverage
+# option to no.
+#
+# cluster-require-full-coverage yes
+
+# This option, when set to yes, prevents replicas from trying to failover its
+# primary during primary failures. However the replica can still perform a
+# manual failover, if forced to do so.
+#
+# This is useful in different scenarios, especially in the case of multiple
+# data center operations, where we want one side to never be promoted if not
+# in the case of a total DC failure.
+#
+# cluster-replica-no-failover no
+
+# This option, when set to yes, allows nodes to serve read traffic while the
+# cluster is in a down state, as long as it believes it owns the slots.
+#
+# This is useful for two cases.  The first case is for when an application
+# doesn't require consistency of data during node failures or network partitions.
+# One example of this is a cache, where as long as the node has the data it
+# should be able to serve it.
+#
+# The second use case is for configurations that don't meet the recommended
+# three shards but want to enable cluster mode and scale later. A
+# primary outage in a 1 or 2 shard configuration causes a read/write outage to the
+# entire cluster without this option set, with it set there is only a write outage.
+# Without a quorum of primaries, slot ownership will not change automatically.
+#
+# cluster-allow-reads-when-down no
+
+# This option, when set to yes, allows nodes to serve pubsub shard traffic while
+# the cluster is in a down state, as long as it believes it owns the slots.
+#
+# This is useful if the application would like to use the pubsub feature even when
+# the cluster global stable state is not OK. If the application wants to make sure only
+# one shard is serving a given channel, this feature should be kept as yes.
+#
+# cluster-allow-pubsubshard-when-down yes
+
+# Cluster link send buffer limit is the limit on the memory usage of an individual
+# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed
+# this limit. This is to primarily prevent send buffers from growing unbounded on links
+# toward slow peers (E.g. PubSub messages being piled up).
+# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field
+# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase.
+# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single
+# PubSub message by default. (client-query-buffer-limit default value is 1gb)
+#
+# cluster-link-sendbuf-limit 0
+# Clusters can configure their announced hostname using this config. This is a common use case for 
+# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based
+# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS
+# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is 
+# communicated along the clusterbus to all nodes, setting it to an empty string will remove 
+# the hostname and also propagate the removal.
+#
+# cluster-announce-hostname ""
+
+# Clusters can configure an optional nodename to be used in addition to the node ID for
+# debugging and admin information. This name is broadcasted between nodes, so will be used
+# in addition to the node ID when reporting cross node events such as node failures.
+# cluster-announce-human-nodename ""
+
+# Clusters can advertise how clients should connect to them using either their IP address,
+# a user defined hostname, or by declaring they have no endpoint. Which endpoint is
+# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type
+# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how
+# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS. 
+# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?' 
+# will be returned instead.
+#
+# When a cluster advertises itself as having an unknown endpoint, it's indicating that
+# the server doesn't know how clients can reach the cluster. This can happen in certain 
+# networking situations where there are multiple possible routes to the node, and the 
+# server doesn't know which one the client took. In this case, the server is expecting
+# the client to reach out on the same endpoint it used for making the last request, but use
+# the port provided in the response.
+#
+# cluster-preferred-endpoint-type ip
+
+# The cluster blacklist is used when removing a node from the cluster completely. 
+# When CLUSTER FORGET is called for a node, that node is put into the blacklist for
+# some time so that when gossip messages are received from other nodes that still
+# remember it, it is not re-added. This gives time for CLUSTER FORGET to be sent to
+# every node in the cluster. The blacklist TTL is 60 seconds by default, which should
+# be sufficient for most clusters, but you may considering increasing this if you see
+# nodes getting re-added while using CLUSTER FORGET.
+#
+# cluster-blacklist-ttl 60
+
+# Clusters can be configured to track per-slot resource statistics, 
+# which are accessible by the CLUSTER SLOT-STATS command.
+#
+# By default, the 'cluster-slot-stats-enabled' is disabled, and only 'key-count' is captured.
+# By enabling the 'cluster-slot-stats-enabled' config, the cluster will begin to capture advanced statistics.
+# These statistics can be leveraged to assess general slot usage trends, identify hot / cold slots, 
+# migrate slots for a balanced cluster workload, and / or re-write application logic to better utilize slots.
+#
+# cluster-slot-stats-enabled no
+
+# In order to setup your cluster make sure to read the documentation
+# available at https://valkey.io web site.
+
+########################## CLUSTER DOCKER/NAT support  ########################
+
+# In certain deployments, cluster node's address discovery fails, because
+# addresses are NAT-ted or because ports are forwarded (the typical case is
+# Docker and other containers).
+#
+# In order to make a cluster work in such environments, a static
+# configuration where each node knows its public address is needed. The
+# following options are used for this scope, and are:
+#
+# * cluster-announce-ip
+# * cluster-announce-client-ipv4
+# * cluster-announce-client-ipv6
+# * cluster-announce-port
+# * cluster-announce-tls-port
+# * cluster-announce-bus-port
+#
+# Each instructs the node about its address, possibly other addresses to expose
+# to clients, client ports (for connections without and with TLS) and cluster
+# message bus port. The information is then published in the bus packets so that
+# other nodes will be able to correctly map the address of the node publishing
+# the information.
+#
+# If tls-cluster is set to yes and cluster-announce-tls-port is omitted or set
+# to zero, then cluster-announce-port refers to the TLS port. Note also that
+# cluster-announce-tls-port has no effect if tls-cluster is set to no.
+#
+# If cluster-announce-client-ipv4 and cluster-announce-client-ipv6 are omitted,
+# then cluster-announce-ip is exposed to clients.
+#
+# If the above options are not used, the normal cluster auto-detection
+# will be used instead.
+#
+# Note that when remapped, the bus port may not be at the fixed offset of
+# clients port + 10000, so you can specify any port and bus-port depending
+# on how they get remapped. If the bus-port is not set, a fixed offset of
+# 10000 will be used as usual.
+#
+# Example:
+#
+# cluster-announce-ip 10.1.1.5
+# cluster-announce-client-ipv4 123.123.123.5
+# cluster-announce-client-ipv6 2001:db8::8a2e:370:7334
+# cluster-announce-tls-port 6379
+# cluster-announce-port 0
+# cluster-announce-bus-port 6380
+
+################################## SLOW LOG ###################################
+
+# The server Slow Log is a system to log queries that exceeded a specified
+# execution time. The execution time does not include the I/O operations
+# like talking with the client, sending the reply and so forth,
+# but just the time needed to actually execute the command (this is the only
+# stage of command execution where the thread is blocked and can not serve
+# other requests in the meantime).
+#
+# You can configure the slow log with two parameters: one tells the server
+# what is the execution time, in microseconds, to exceed in order for the
+# command to get logged, and the other parameter is the length of the
+# slow log. When a new command is logged the oldest one is removed from the
+# queue of logged commands.
+
+# The following time is expressed in microseconds, so 1000000 is equivalent
+# to one second. Note that a negative number disables the slow log, while
+# a value of zero forces the logging of every command.
+slowlog-log-slower-than 10000
+
+# There is no limit to this length. Just be aware that it will consume memory.
+# You can reclaim memory used by the slow log with SLOWLOG RESET.
+slowlog-max-len 128
+
+################################ LATENCY MONITOR ##############################
+
+# The server latency monitoring subsystem samples different operations
+# at runtime in order to collect data related to possible sources of
+# latency of a server instance.
+#
+# Via the LATENCY command this information is available to the user that can
+# print graphs and obtain reports.
+#
+# The system only logs operations that were performed in a time equal or
+# greater than the amount of milliseconds specified via the
+# latency-monitor-threshold configuration directive. When its value is set
+# to zero, the latency monitor is turned off.
+#
+# By default latency monitoring is disabled since it is mostly not needed
+# if you don't have latency issues, and collecting data has a performance
+# impact, that while very small, can be measured under big load. Latency
+# monitoring can easily be enabled at runtime using the command
+# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
+latency-monitor-threshold 0
+
+################################ LATENCY TRACKING ##############################
+
+# The server's extended latency monitoring tracks the per command latencies and enables
+# exporting the percentile distribution via the INFO latencystats command,
+# and cumulative latency distributions (histograms) via the LATENCY command.
+#
+# By default, the extended latency monitoring is enabled since the overhead
+# of keeping track of the command latency is very small.
+# latency-tracking yes
+
+# By default the exported latency percentiles via the INFO latencystats command
+# are the p50, p99, and p999.
+# latency-tracking-info-percentiles 50 99 99.9
+
+############################# EVENT NOTIFICATION ##############################
+
+# The server can notify Pub/Sub clients about events happening in the key space.
+# This feature is documented at https://valkey.io/topics/notifications
+#
+# For instance if keyspace events notification is enabled, and a client
+# performs a DEL operation on key "foo" stored in the Database 0, two
+# messages will be published via Pub/Sub:
+#
+# PUBLISH __keyspace@0__:foo del
+# PUBLISH __keyevent@0__:del foo
+#
+# It is possible to select the events that the server will notify among a set
+# of classes. Every class is identified by a single character:
+#
+#  K     Keyspace events, published with __keyspace@<db>__ prefix.
+#  E     Keyevent events, published with __keyevent@<db>__ prefix.
+#  g     Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
+#  $     String commands
+#  l     List commands
+#  s     Set commands
+#  h     Hash commands
+#  z     Sorted set commands
+#  x     Expired events (events generated every time a key expires)
+#  e     Evicted events (events generated when a key is evicted for maxmemory)
+#  n     New key events (Note: not included in the 'A' class)
+#  t     Stream commands
+#  d     Module key type events
+#  m     Key-miss events (Note: It is not included in the 'A' class)
+#  A     Alias for g$lshzxetd, so that the "AKE" string means all the events
+#        (Except key-miss events which are excluded from 'A' due to their
+#         unique nature).
+#
+#  The "notify-keyspace-events" takes as argument a string that is composed
+#  of zero or multiple characters. The empty string means that notifications
+#  are disabled.
+#
+#  Example: to enable list and generic events, from the point of view of the
+#           event name, use:
+#
+#  notify-keyspace-events Elg
+#
+#  Example 2: to get the stream of the expired keys subscribing to channel
+#             name __keyevent@0__:expired use:
+#
+#  notify-keyspace-events Ex
+#
+#  By default all notifications are disabled because most users don't need
+#  this feature and the feature has some overhead. Note that if you don't
+#  specify at least one of K or E, no events will be delivered.
+notify-keyspace-events ""
+
+############################### ADVANCED CONFIG ###############################
+
+# Hashes are encoded using a memory efficient data structure when they have a
+# small number of entries, and the biggest entry does not exceed a given
+# threshold. These thresholds can be configured using the following directives.
+hash-max-listpack-entries 512
+hash-max-listpack-value 64
+
+# Lists are also encoded in a special way to save a lot of space.
+# The number of entries allowed per internal list node can be specified
+# as a fixed maximum size or a maximum number of elements.
+# For a fixed maximum size, use -5 through -1, meaning:
+# -5: max size: 64 Kb  <-- not recommended for normal workloads
+# -4: max size: 32 Kb  <-- not recommended
+# -3: max size: 16 Kb  <-- probably not recommended
+# -2: max size: 8 Kb   <-- good
+# -1: max size: 4 Kb   <-- good
+# Positive numbers mean store up to _exactly_ that number of elements
+# per list node.
+# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
+# but if your use case is unique, adjust the settings as necessary.
+list-max-listpack-size -2
+
+# Lists may also be compressed.
+# Compress depth is the number of quicklist ziplist nodes from *each* side of
+# the list to *exclude* from compression.  The head and tail of the list
+# are always uncompressed for fast push/pop operations.  Settings are:
+# 0: disable all list compression
+# 1: depth 1 means "don't start compressing until after 1 node into the list,
+#    going from either the head or tail"
+#    So: [head]->node->node->...->node->[tail]
+#    [head], [tail] will always be uncompressed; inner nodes will compress.
+# 2: [head]->[next]->node->node->...->node->[prev]->[tail]
+#    2 here means: don't compress head or head->next or tail->prev or tail,
+#    but compress all nodes between them.
+# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail]
+# etc.
+list-compress-depth 0
+
+# Sets have a special encoding when a set is composed
+# of just strings that happen to be integers in radix 10 in the range
+# of 64 bit signed integers.
+# The following configuration setting sets the limit in the size of the
+# set in order to use this special memory saving encoding.
+set-max-intset-entries 512
+
+# Sets containing non-integer values are also encoded using a memory efficient
+# data structure when they have a small number of entries, and the biggest entry
+# does not exceed a given threshold. These thresholds can be configured using
+# the following directives.
+set-max-listpack-entries 128
+set-max-listpack-value 64
+
+# Similarly to hashes and lists, sorted sets are also specially encoded in
+# order to save a lot of space. This encoding is only used when the length and
+# elements of a sorted set are below the following limits:
+zset-max-listpack-entries 128
+zset-max-listpack-value 64
+
+# HyperLogLog sparse representation bytes limit. The limit includes the
+# 16 bytes header. When a HyperLogLog using the sparse representation crosses
+# this limit, it is converted into the dense representation.
+#
+# A value greater than 16000 is totally useless, since at that point the
+# dense representation is more memory efficient.
+#
+# The suggested value is ~ 3000 in order to have the benefits of
+# the space efficient encoding without slowing down too much PFADD,
+# which is O(N) with the sparse encoding. The value can be raised to
+# ~ 10000 when CPU is not a concern, but space is, and the data set is
+# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
+hll-sparse-max-bytes 3000
+
+# Streams macro node max size / items. The stream data structure is a radix
+# tree of big nodes that encode multiple items inside. Using this configuration
+# it is possible to configure how big a single node can be in bytes, and the
+# maximum number of items it may contain before switching to a new node when
+# appending new stream entries. If any of the following settings are set to
+# zero, the limit is ignored, so for instance it is possible to set just a
+# max entries limit by setting max-bytes to 0 and max-entries to the desired
+# value.
+stream-node-max-bytes 4096
+stream-node-max-entries 100
+
+# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
+# order to help rehashing the main server hash table (the one mapping top-level
+# keys to values). The hash table implementation the server uses (see dict.c)
+# performs a lazy rehashing: the more operation you run into a hash table
+# that is rehashing, the more rehashing "steps" are performed, so if the
+# server is idle the rehashing is never complete and some more memory is used
+# by the hash table.
+#
+# The default is to use this millisecond 10 times every second in order to
+# actively rehash the main dictionaries, freeing memory when possible.
+#
+# If unsure:
+# use "activerehashing no" if you have hard latency requirements and it is
+# not a good thing in your environment that the server can reply from time to time
+# to queries with 2 milliseconds delay.
+#
+# use "activerehashing yes" if you don't have such hard requirements but
+# want to free memory asap when possible.
+activerehashing yes
+
+# The client output buffer limits can be used to force disconnection of clients
+# that are not reading data from the server fast enough for some reason (a
+# common reason is that a Pub/Sub client can't consume messages as fast as the
+# publisher can produce them).
+#
+# The limit can be set differently for the three different classes of clients:
+#
+# normal -> normal clients including MONITOR clients
+# replica -> replica clients
+# pubsub -> clients subscribed to at least one pubsub channel or pattern
+#
+# The syntax of every client-output-buffer-limit directive is the following:
+#
+# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
+#
+# A client is immediately disconnected once the hard limit is reached, or if
+# the soft limit is reached and remains reached for the specified number of
+# seconds (continuously).
+# So for instance if the hard limit is 32 megabytes and the soft limit is
+# 16 megabytes / 10 seconds, the client will get disconnected immediately
+# if the size of the output buffers reach 32 megabytes, but will also get
+# disconnected if the client reaches 16 megabytes and continuously overcomes
+# the limit for 10 seconds.
+#
+# By default normal clients are not limited because they don't receive data
+# without asking (in a push way), but just after a request, so only
+# asynchronous clients may create a scenario where data is requested faster
+# than it can read.
+#
+# Instead there is a default limit for pubsub and replica clients, since
+# subscribers and replicas receive data in a push fashion.
+#
+# Note that it doesn't make sense to set the replica clients output buffer
+# limit lower than the repl-backlog-size config (partial sync will succeed
+# and then replica will get disconnected).
+# Such a configuration is ignored (the size of repl-backlog-size will be used).
+# This doesn't have memory consumption implications since the replica client
+# will share the backlog buffers memory.
+#
+# Both the hard or the soft limit can be disabled by setting them to zero.
+client-output-buffer-limit normal 0 0 0
+client-output-buffer-limit replica 256mb 64mb 60
+client-output-buffer-limit pubsub 32mb 8mb 60
+
+# Client query buffers accumulate new commands. They are limited to a fixed
+# amount by default in order to avoid that a protocol desynchronization (for
+# instance due to a bug in the client) will lead to unbound memory usage in
+# the query buffer. However you can configure it here if you have very special
+# needs, such as a command with huge argument, or huge multi/exec requests or alike.
+#
+# client-query-buffer-limit 1gb
+
+# In some scenarios client connections can hog up memory leading to OOM
+# errors or data eviction. To avoid this we can cap the accumulated memory
+# used by all client connections (all pubsub and normal clients). Once we
+# reach that limit connections will be dropped by the server freeing up
+# memory. The server will attempt to drop the connections using the most 
+# memory first. We call this mechanism "client eviction".
+#
+# Client eviction is configured using the maxmemory-clients setting as follows:
+# 0 - client eviction is disabled (default)
+#
+# A memory value can be used for the client eviction threshold,
+# for example:
+# maxmemory-clients 1g
+#
+# A percentage value (between 1% and 100%) means the client eviction threshold
+# is based on a percentage of the maxmemory setting. For example to set client
+# eviction at 5% of maxmemory:
+# maxmemory-clients 5%
+
+# In the server protocol, bulk requests, that are, elements representing single
+# strings, are normally limited to 512 mb. However you can change this limit
+# here, but must be 1mb or greater
+#
+# proto-max-bulk-len 512mb
+
+# The server calls an internal function to perform many background tasks, like
+# closing connections of clients in timeout, purging expired keys that are
+# never requested, and so forth.
+#
+# Not all tasks are performed with the same frequency, but the server checks for
+# tasks to perform according to the specified "hz" value.
+#
+# By default "hz" is set to 10. Raising the value will use more CPU when
+# the server is idle, but at the same time will make the server more responsive when
+# there are many keys expiring at the same time, and timeouts may be
+# handled with more precision.
+#
+# The range is between 1 and 500, however a value over 100 is usually not
+# a good idea. Most users should use the default of 10 and raise this up to
+# 100 only in environments where very low latency is required.
+hz 10
+
+# Normally it is useful to have an HZ value which is proportional to the
+# number of clients connected. This is useful in order, for instance, to
+# avoid too many clients are processed for each background task invocation
+# in order to avoid latency spikes.
+#
+# Since the default HZ value by default is conservatively set to 10, the server
+# offers, and enables by default, the ability to use an adaptive HZ value
+# which will temporarily raise when there are many connected clients.
+#
+# When dynamic HZ is enabled, the actual configured HZ will be used
+# as a baseline, but multiples of the configured HZ value will be actually
+# used as needed once more clients are connected. In this way an idle
+# instance will use very little CPU time while a busy instance will be
+# more responsive.
+dynamic-hz yes
+
+# When a child rewrites the AOF file, if the following option is enabled
+# the file will be fsync-ed every 4 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+aof-rewrite-incremental-fsync yes
+
+# When the server saves RDB file, if the following option is enabled
+# the file will be fsync-ed every 4 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+rdb-save-incremental-fsync yes
+
+# The server's LFU eviction (see maxmemory setting) can be tuned. However it is a good
+# idea to start with the default settings and only change them after investigating
+# how to improve the performances and how the keys LFU change over time, which
+# is possible to inspect via the OBJECT FREQ command.
+#
+# There are two tunable parameters in the server LFU implementation: the
+# counter logarithm factor and the counter decay time. It is important to
+# understand what the two parameters mean before changing them.
+#
+# The LFU counter is just 8 bits per key, it's maximum value is 255, so the server
+# uses a probabilistic increment with logarithmic behavior. Given the value
+# of the old counter, when a key is accessed, the counter is incremented in
+# this way:
+#
+# 1. A random number R between 0 and 1 is extracted.
+# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1).
+# 3. The counter is incremented only if R < P.
+#
+# The default lfu-log-factor is 10. This is a table of how the frequency
+# counter changes with a different number of accesses with different
+# logarithmic factors:
+#
+# +--------+------------+------------+------------+------------+------------+
+# | factor | 100 hits   | 1000 hits  | 100K hits  | 1M hits    | 10M hits   |
+# +--------+------------+------------+------------+------------+------------+
+# | 0      | 104        | 255        | 255        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 1      | 18         | 49         | 255        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 10     | 10         | 18         | 142        | 255        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+# | 100    | 8          | 11         | 49         | 143        | 255        |
+# +--------+------------+------------+------------+------------+------------+
+#
+# NOTE: The above table was obtained by running the following commands:
+#
+#   valkey-benchmark -n 1000000 incr foo
+#   valkey-cli object freq foo
+#
+# NOTE 2: The counter initial value is 5 in order to give new objects a chance
+# to accumulate hits.
+#
+# The counter decay time is the time, in minutes, that must elapse in order
+# for the key counter to be decremented.
+#
+# The default value for the lfu-decay-time is 1. A special value of 0 means we
+# will never decay the counter.
+#
+# lfu-log-factor 10
+# lfu-decay-time 1
+
+
+# The maximum number of new client connections accepted per event-loop cycle. This configuration
+# is set independently for TLS connections.
+#
+# By default, up to 10 new connection will be accepted per event-loop cycle for normal connections
+# and up to 1 new connection per event-loop cycle for TLS connections.
+#
+# Adjusting this to a larger number can slightly improve efficiency for new connections
+# at the risk of causing timeouts for regular commands on established connections.  It is
+# not advised to change this without ensuring that all clients have limited connection
+# pools and exponential backoff in the case of command/connection timeouts. 
+#
+# If your application is establishing a large number of new connections per second you should
+# also consider tuning the value of tcp-backlog, which allows the kernel to buffer more
+# pending connections before dropping or rejecting connections. 
+#
+# max-new-connections-per-cycle 10
+# max-new-tls-connections-per-cycle 1
+
+
+########################### ACTIVE DEFRAGMENTATION #######################
+#
+# What is active defragmentation?
+# -------------------------------
+#
+# Active (online) defragmentation allows a server to compact the
+# spaces left between small allocations and deallocations of data in memory,
+# thus allowing to reclaim back memory.
+#
+# Fragmentation is a natural process that happens with every allocator (but
+# less so with Jemalloc, fortunately) and certain workloads. Normally a server
+# restart is needed in order to lower the fragmentation, or at least to flush
+# away all the data and create it again. However thanks to this feature
+# implemented by Oran Agra, this process can happen at runtime
+# in a "hot" way, while the server is running.
+#
+# Basically when the fragmentation is over a certain level (see the
+# configuration options below) the server will start to create new copies of the
+# values in contiguous memory regions by exploiting certain specific Jemalloc
+# features (in order to understand if an allocation is causing fragmentation
+# and to allocate it in a better place), and at the same time, will release the
+# old copies of the data. This process, repeated incrementally for all the keys
+# will cause the fragmentation to drop back to normal values.
+#
+# Important things to understand:
+#
+# 1. This feature is disabled by default, and only works if you compiled the server
+#    to use the copy of Jemalloc we ship with the source code of the server.
+#    This is the default with Linux builds.
+#
+# 2. You never need to enable this feature if you don't have fragmentation
+#    issues.
+#
+# 3. Once you experience fragmentation, you can enable this feature when
+#    needed with the command "CONFIG SET activedefrag yes".
+#
+# The configuration parameters are able to fine tune the behavior of the
+# defragmentation process. If you are not sure about what they mean it is
+# a good idea to leave the defaults untouched.
+
+# Active defragmentation is disabled by default
+# activedefrag no
+
+# Minimum amount of fragmentation waste to start active defrag
+# active-defrag-ignore-bytes 100mb
+
+# Minimum percentage of fragmentation to start active defrag
+# active-defrag-threshold-lower 10
+
+# Maximum percentage of fragmentation at which we use maximum effort
+# active-defrag-threshold-upper 100
+
+# Minimal effort for defrag in CPU percentage, to be used when the lower
+# threshold is reached
+# active-defrag-cycle-min 1
+
+# Maximal effort for defrag in CPU percentage, to be used when the upper
+# threshold is reached
+# active-defrag-cycle-max 25
+
+# Maximum number of set/hash/zset/list fields that will be processed from
+# the main dictionary scan
+# active-defrag-max-scan-fields 1000
+
+# Jemalloc background thread for purging will be enabled by default
+jemalloc-bg-thread yes
+
+# It is possible to pin different threads and processes of the server to specific
+# CPUs in your system, in order to maximize the performances of the server.
+# This is useful both in order to pin different server threads in different
+# CPUs, but also in order to make sure that multiple server instances running
+# in the same host will be pinned to different CPUs.
+#
+# Normally you can do this using the "taskset" command, however it is also
+# possible to do this via the server configuration directly, both in Linux and FreeBSD.
+#
+# You can pin the server/IO threads, bio threads, aof rewrite child process, and
+# the bgsave child process. The syntax to specify the cpu list is the same as
+# the taskset command:
+#
+# Set server/io threads to cpu affinity 0,2,4,6:
+# server-cpulist 0-7:2
+#
+# Set bio threads to cpu affinity 1,3:
+# bio-cpulist 1,3
+#
+# Set aof rewrite child process to cpu affinity 8,9,10,11:
+# aof-rewrite-cpulist 8-11
+#
+# Set bgsave child process to cpu affinity 1,10,11
+# bgsave-cpulist 1,10-11
+
+# In some cases the server will emit warnings and even refuse to start if it detects
+# that the system is in bad state, it is possible to suppress these warnings
+# by setting the following config which takes a space delimited list of warnings
+# to suppress
+#
+# ignore-warnings ARM64-COW-BUG
+
+# Inform Valkey of the availability zone if running in a cloud environment.  Currently
+# this is only exposed via the info command for clients to use, but in the future we
+# we may also use this when making decisions for replication.
+#
+# availability-zone "zone-name"
diff --git a/vim/vimrc b/vim/vimrc
new file mode 100644 (file)
index 0000000..21b7c1c
--- /dev/null
+++ b/vim/vimrc
@@ -0,0 +1,62 @@
+" $VIMRUNTIME refers to the versioned system directory where Vim stores its
+" system runtime files -- /usr/share/vim/vim<version>.
+"
+" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
+" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
+" any settings in these files.
+"
+" If you don't want that to happen, uncomment the below line to prevent
+" defaults.vim from being loaded.
+" let g:skip_defaults_vim = 1
+"
+" If you would rather _use_ default.vim's settings, but have the system or
+" user vimrc override its settings, then uncomment the line below.
+" source $VIMRUNTIME/defaults.vim
+
+" All Debian-specific settings are defined in $VIMRUNTIME/debian.vim and
+" sourced by the call to :runtime you can find below.  If you wish to change
+" any of those settings, you should do it in this file or
+" /etc/vim/vimrc.local, since debian.vim will be overwritten everytime an
+" upgrade of the vim packages is performed. It is recommended to make changes
+" after sourcing debian.vim so your settings take precedence.
+
+runtime! debian.vim
+
+" Uncomment the next line to make Vim more Vi-compatible
+" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes
+" numerous options, so any other options should be set AFTER changing
+" 'compatible'.
+"set compatible
+
+" Vim5 and later versions support syntax highlighting. Uncommenting the next
+" line enables syntax highlighting by default.
+"syntax on
+
+" If using a dark background within the editing area and syntax highlighting
+" turn on this option as well
+"set background=dark
+
+" Uncomment the following to have Vim jump to the last position when
+" reopening a file
+"au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
+
+" Uncomment the following to have Vim load indentation rules and plugins
+" according to the detected filetype.
+"filetype plugin indent on
+
+" The following are commented out as they cause vim to behave a lot
+" differently from regular Vi. They are highly recommended though.
+"set showcmd           " Show (partial) command in status line.
+"set showmatch         " Show matching brackets.
+"set ignorecase                " Do case insensitive matching
+"set smartcase         " Do smart case matching
+"set incsearch         " Incremental search
+"set autowrite         " Automatically save before commands like :next and :make
+"set hidden            " Hide buffers when they are abandoned
+"set mouse=a           " Enable mouse usage (all modes)
+
+" Source a global configuration file if available
+if filereadable("/etc/vim/vimrc.local")
+  source /etc/vim/vimrc.local
+endif
+
diff --git a/vim/vimrc.local b/vim/vimrc.local
new file mode 100644 (file)
index 0000000..bc904ef
--- /dev/null
@@ -0,0 +1,47 @@
+set noai
+set nohlsearch
+set fo="tcq"
+set modeline
+
+set showcmd             " Show (partial) command in status line.
+set showmatch           " Show matching brackets.
+set ignorecase          " Do case insensitive matching
+set smartcase           " Do smart case matching
+set incsearch           " Incremental search
+set autowrite           " Automatically save before commands like :next and :make
+set hidden              " Hide buffers when they are abandoned
+set mouse=              " Disable mouse usage (all modes)
+
+autocmd FileType sls set tabstop=2 expandtab shiftwidth=2 softtabstop=2
+autocmd FileType python set tabstop=4 expandtab shiftwidth=4 softtabstop=4
+autocmd FileType sh set tabstop=4 expandtab shiftwidth=4 softtabstop=4
+autocmd FileType perl set tabstop=4 noexpandtab shiftwidth=4
+
+set listchars=tab:»·,trail:·
+" set list
+
+if has("multi_byte")
+        set encoding=utf-8
+        setglobal fileencoding=utf-8
+else
+        echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
+endif
+
+if has("autocmd")
+    " Jump to the last position on opening
+    autocmd BufReadPost *
+        \ if ! exists("g:leave_my_cursor_position_alone") |
+        \     if line("'\"") > 0 && line ("'\"") <= line("$") |
+        \         exe "normal g'\"" |
+        \     endif |
+        \ endif
+        filetype plugin indent off
+endif " has("autocmd")
+
+let g:skip_defaults_vim = 1
+
+filetype plugin off
+
+color delek
+
+syntax on
diff --git a/vim/vimrc.tiny b/vim/vimrc.tiny
new file mode 100644 (file)
index 0000000..4556ded
--- /dev/null
@@ -0,0 +1,13 @@
+" Vim configuration file, in effect when invoked as "vi". The aim of this
+" configuration file is to provide a Vim environment as compatible with the
+" original vi as possible. Note that ~/.vimrc configuration files as other
+" configuration files in the runtimepath are still sourced.
+" When Vim is invoked differently ("vim", "view", "evim", ...) this file is
+" _not_ sourced; /etc/vim/vimrc and/or /etc/vim/gvimrc are.
+
+" Debian system-wide default configuration Vim
+set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim90,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
+
+set compatible
+
+" vim: set ft=vim:
diff --git a/vmware-tools/poweroff-vm-default b/vmware-tools/poweroff-vm-default
new file mode 100755 (executable)
index 0000000..39df657
--- /dev/null
@@ -0,0 +1,134 @@
+#!/bin/sh
+##########################################################
+# Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation version 2.1 and no later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+#
+##########################################################
+
+##########################################################################
+# DO NOT modify this file directly as it will be overwritten the next
+# time the VMware Tools are installed.
+##########################################################################
+
+#
+# statechange.sh
+#
+# This script is a refactored version of the legacy power scripts (e.g.,
+# poweron-vm-default).  It expects to be installed in their places --
+# in other words, `basename "$0"` might be poweron-vm-default.
+#
+# Handy reference/shorthand used in this doc/scripts:
+#    TOOLS_CONFDIR ::= Depends on platform and installation settings.  Likely
+#                      "/etc/vmware-tools" or
+#                      "/Library/Application Support/VMware Tools"
+#    powerOp       ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
+#                      "resume-vm".
+#    vmwScriptDir  ::= $TOOLS_CONFDIR/scripts/vmware
+#    userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
+#
+# End users may install scripts of their own under $userScriptDir.  They
+# are executed in alphabetical order with "$powerOp" as the only argument.
+#
+# NB:  This directory layout remains to preserve backwards compatibility. End
+# users are free to write a single script which uses its only parameter
+# (${powerOp}) as a discriminator, and then install symlinks to it in each
+# of the ${powerOp}-default.d directories.
+#
+# On power-on and resume, VMware's scripts execute before the end user's.  On
+# suspend and power-off, the end user's execute before VMware's.  (This way,
+# VMware stops services only after the user's scripts have finished their
+# work, and conversely restores the same services before the user's scripts
+# attempt to use them.)
+#
+# Should any script exit non-zero, only its value will be saved to exitCode.
+# (Any further non-zero exits will have no effect on exitCode.)  This script
+# exits with $exitCode.
+#
+# XXX Consider using the available/enabled pattern for VMware's scripts.
+#
+# XXX This should be staged as a single executable whereby the desired
+# power operation is passed in as a parameter.  (I.e., one would run
+# "/path/to/statechange.sh suspend-vm" rather than having to install
+# statechange.sh as suspend-vm-default.)
+#
+
+echo `date` ": Executing '$0'"
+
+# See above.
+TOOLS_CONFDIR=`dirname "$0"`
+export TOOLS_CONFDIR
+
+# Pull in subroutines like Panic.
+. "$TOOLS_CONFDIR"/statechange.subr
+
+
+#
+# RunScripts --
+#
+#    Executes scripts installed under $scriptDir.
+#
+# Side effects:
+#    exitCode may be incremented.
+#
+
+RunScripts() {
+   scriptDir="$1"
+
+   if [ -d "$scriptDir" ]; then
+      for scriptFile in "$scriptDir"/*; do
+         if [ -x "$scriptFile" ]; then
+            "$scriptFile" $powerOp
+            exitCode=`expr $exitCode \| $?`
+         fi
+      done
+   fi
+}
+
+
+#
+# main --
+#
+#    Entry point.  See comments at top of file for details.
+#
+# Results:
+#    Exits with $exitCode.
+#
+
+main() {
+   # This is sanity checked in the case/esac bit below.
+   powerOp=`basename "$0" | sed 's,-default,,'`
+   exitCode=0
+
+   vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
+   userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
+
+   case "$powerOp" in
+      poweron-vm|resume-vm)
+         RunScripts "$vmwScriptDir"
+         RunScripts "$userScriptDir"
+         ;;
+      poweroff-vm|suspend-vm)
+         RunScripts "$userScriptDir"
+         RunScripts "$vmwScriptDir"
+         ;;
+      *)
+         Panic "Invalid argument: $powerOp"
+         ;;
+   esac
+
+   return $exitCode
+}
+
+main
diff --git a/vmware-tools/poweron-vm-default b/vmware-tools/poweron-vm-default
new file mode 100755 (executable)
index 0000000..39df657
--- /dev/null
@@ -0,0 +1,134 @@
+#!/bin/sh
+##########################################################
+# Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation version 2.1 and no later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+#
+##########################################################
+
+##########################################################################
+# DO NOT modify this file directly as it will be overwritten the next
+# time the VMware Tools are installed.
+##########################################################################
+
+#
+# statechange.sh
+#
+# This script is a refactored version of the legacy power scripts (e.g.,
+# poweron-vm-default).  It expects to be installed in their places --
+# in other words, `basename "$0"` might be poweron-vm-default.
+#
+# Handy reference/shorthand used in this doc/scripts:
+#    TOOLS_CONFDIR ::= Depends on platform and installation settings.  Likely
+#                      "/etc/vmware-tools" or
+#                      "/Library/Application Support/VMware Tools"
+#    powerOp       ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
+#                      "resume-vm".
+#    vmwScriptDir  ::= $TOOLS_CONFDIR/scripts/vmware
+#    userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
+#
+# End users may install scripts of their own under $userScriptDir.  They
+# are executed in alphabetical order with "$powerOp" as the only argument.
+#
+# NB:  This directory layout remains to preserve backwards compatibility. End
+# users are free to write a single script which uses its only parameter
+# (${powerOp}) as a discriminator, and then install symlinks to it in each
+# of the ${powerOp}-default.d directories.
+#
+# On power-on and resume, VMware's scripts execute before the end user's.  On
+# suspend and power-off, the end user's execute before VMware's.  (This way,
+# VMware stops services only after the user's scripts have finished their
+# work, and conversely restores the same services before the user's scripts
+# attempt to use them.)
+#
+# Should any script exit non-zero, only its value will be saved to exitCode.
+# (Any further non-zero exits will have no effect on exitCode.)  This script
+# exits with $exitCode.
+#
+# XXX Consider using the available/enabled pattern for VMware's scripts.
+#
+# XXX This should be staged as a single executable whereby the desired
+# power operation is passed in as a parameter.  (I.e., one would run
+# "/path/to/statechange.sh suspend-vm" rather than having to install
+# statechange.sh as suspend-vm-default.)
+#
+
+echo `date` ": Executing '$0'"
+
+# See above.
+TOOLS_CONFDIR=`dirname "$0"`
+export TOOLS_CONFDIR
+
+# Pull in subroutines like Panic.
+. "$TOOLS_CONFDIR"/statechange.subr
+
+
+#
+# RunScripts --
+#
+#    Executes scripts installed under $scriptDir.
+#
+# Side effects:
+#    exitCode may be incremented.
+#
+
+RunScripts() {
+   scriptDir="$1"
+
+   if [ -d "$scriptDir" ]; then
+      for scriptFile in "$scriptDir"/*; do
+         if [ -x "$scriptFile" ]; then
+            "$scriptFile" $powerOp
+            exitCode=`expr $exitCode \| $?`
+         fi
+      done
+   fi
+}
+
+
+#
+# main --
+#
+#    Entry point.  See comments at top of file for details.
+#
+# Results:
+#    Exits with $exitCode.
+#
+
+main() {
+   # This is sanity checked in the case/esac bit below.
+   powerOp=`basename "$0" | sed 's,-default,,'`
+   exitCode=0
+
+   vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
+   userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
+
+   case "$powerOp" in
+      poweron-vm|resume-vm)
+         RunScripts "$vmwScriptDir"
+         RunScripts "$userScriptDir"
+         ;;
+      poweroff-vm|suspend-vm)
+         RunScripts "$userScriptDir"
+         RunScripts "$vmwScriptDir"
+         ;;
+      *)
+         Panic "Invalid argument: $powerOp"
+         ;;
+   esac
+
+   return $exitCode
+}
+
+main
diff --git a/vmware-tools/resume-vm-default b/vmware-tools/resume-vm-default
new file mode 100755 (executable)
index 0000000..39df657
--- /dev/null
@@ -0,0 +1,134 @@
+#!/bin/sh
+##########################################################
+# Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation version 2.1 and no later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+#
+##########################################################
+
+##########################################################################
+# DO NOT modify this file directly as it will be overwritten the next
+# time the VMware Tools are installed.
+##########################################################################
+
+#
+# statechange.sh
+#
+# This script is a refactored version of the legacy power scripts (e.g.,
+# poweron-vm-default).  It expects to be installed in their places --
+# in other words, `basename "$0"` might be poweron-vm-default.
+#
+# Handy reference/shorthand used in this doc/scripts:
+#    TOOLS_CONFDIR ::= Depends on platform and installation settings.  Likely
+#                      "/etc/vmware-tools" or
+#                      "/Library/Application Support/VMware Tools"
+#    powerOp       ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
+#                      "resume-vm".
+#    vmwScriptDir  ::= $TOOLS_CONFDIR/scripts/vmware
+#    userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
+#
+# End users may install scripts of their own under $userScriptDir.  They
+# are executed in alphabetical order with "$powerOp" as the only argument.
+#
+# NB:  This directory layout remains to preserve backwards compatibility. End
+# users are free to write a single script which uses its only parameter
+# (${powerOp}) as a discriminator, and then install symlinks to it in each
+# of the ${powerOp}-default.d directories.
+#
+# On power-on and resume, VMware's scripts execute before the end user's.  On
+# suspend and power-off, the end user's execute before VMware's.  (This way,
+# VMware stops services only after the user's scripts have finished their
+# work, and conversely restores the same services before the user's scripts
+# attempt to use them.)
+#
+# Should any script exit non-zero, only its value will be saved to exitCode.
+# (Any further non-zero exits will have no effect on exitCode.)  This script
+# exits with $exitCode.
+#
+# XXX Consider using the available/enabled pattern for VMware's scripts.
+#
+# XXX This should be staged as a single executable whereby the desired
+# power operation is passed in as a parameter.  (I.e., one would run
+# "/path/to/statechange.sh suspend-vm" rather than having to install
+# statechange.sh as suspend-vm-default.)
+#
+
+echo `date` ": Executing '$0'"
+
+# See above.
+TOOLS_CONFDIR=`dirname "$0"`
+export TOOLS_CONFDIR
+
+# Pull in subroutines like Panic.
+. "$TOOLS_CONFDIR"/statechange.subr
+
+
+#
+# RunScripts --
+#
+#    Executes scripts installed under $scriptDir.
+#
+# Side effects:
+#    exitCode may be incremented.
+#
+
+RunScripts() {
+   scriptDir="$1"
+
+   if [ -d "$scriptDir" ]; then
+      for scriptFile in "$scriptDir"/*; do
+         if [ -x "$scriptFile" ]; then
+            "$scriptFile" $powerOp
+            exitCode=`expr $exitCode \| $?`
+         fi
+      done
+   fi
+}
+
+
+#
+# main --
+#
+#    Entry point.  See comments at top of file for details.
+#
+# Results:
+#    Exits with $exitCode.
+#
+
+main() {
+   # This is sanity checked in the case/esac bit below.
+   powerOp=`basename "$0" | sed 's,-default,,'`
+   exitCode=0
+
+   vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
+   userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
+
+   case "$powerOp" in
+      poweron-vm|resume-vm)
+         RunScripts "$vmwScriptDir"
+         RunScripts "$userScriptDir"
+         ;;
+      poweroff-vm|suspend-vm)
+         RunScripts "$userScriptDir"
+         RunScripts "$vmwScriptDir"
+         ;;
+      *)
+         Panic "Invalid argument: $powerOp"
+         ;;
+   esac
+
+   return $exitCode
+}
+
+main
diff --git a/vmware-tools/scripts/vmware/network b/vmware-tools/scripts/vmware/network
new file mode 100755 (executable)
index 0000000..db37304
--- /dev/null
@@ -0,0 +1,696 @@
+#!/bin/sh -x
+##########################################################
+# Copyright (C) 2001-2018, 2021 VMware, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation version 2.1 and no later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+#
+##########################################################
+
+
+#
+# network (Linux)
+#
+# Using a combination of a system networking script, ifconfig, ifup, ifdown
+# and the ip command, attempt to release and renew DHCP leases upon receipt
+# of suspend and resume events, respectively.
+#
+
+SOURCE=$0
+logdir=/var/log
+logbase=$logdir/vmware-network
+logfile=$logbase.log
+
+# Defines logging mode enabled (1) or disabled (0)
+logmode=1
+
+# Defines whether to rotate logs (1) or not (0)
+logrotate=1
+
+#
+# Get log file path
+#
+get_logfile() {
+   file=`vmware-toolbox-cmd config get logging network.data | \
+        sed -e 's/.*= *//' -e 's/ *$//'`
+   if [ -n "${file##*"UNSET"*}" ]; then
+      logfile=$file
+      logdir=`dirname $logfile`
+      logbase=`echo $logfile | sed 's/\..*$//'`
+   fi
+}
+
+#
+# Get Network logging config
+#
+get_logconfig() {
+   handler=`vmware-toolbox-cmd config get logging network.handler | \
+           sed -e 's/.*= *//' -e 's/ *$//'`
+   case $handler in
+      "file")
+         get_logfile
+         ;;
+      "file+")
+         get_logfile
+         logrotate=0
+         ;;
+      "vmx"|"std")
+         logrotate=0
+         ;;
+      "syslog")
+         logfile=/var/log/syslog
+         logdir=`dirname $logfile`
+         logrotate=0
+         ;;
+      *)
+         ;;
+   esac
+}
+
+#
+# Rotate any logs
+#
+rotate_logfile() {
+   if [ $logrotate -eq 1 ]; then
+      max=`vmware-toolbox-cmd config get logging network.maxOldLogFiles | \
+          sed -e 's/.*= *//' -e 's/ *$//'`
+      if [ -z "${max##*"UNSET"*}" -o `expr "$max" : '[0-9]\+$'` -eq 0 ]; then
+         max=9
+      fi
+      max=`expr $max - 1`
+      for s in `seq $max -1 1`; do
+         d=`expr $s + 1`
+         mv -f $logbase.$s.log $logbase.$d.log
+      done
+      mv -f $logbase.log $logbase.1.log
+   fi
+}
+
+#
+# Logging api
+#
+log() {
+   if [ $logmode -eq 1 ]; then
+      if [ "$handler" = "vmx" ]; then
+         `vmtoolsd --cmd "log $*"`
+      elif [ "$handler" = "std" ]; then
+         echo `date` ": $*"
+      elif [ -w $logdir ]; then
+         space=`df -k $logdir | awk 'NR == 2 { print $4 }'`
+         if [ $space -gt 1024 ]; then
+            echo `date` ": $*" >> $logfile
+         else
+            `vmtoolsd --cmd "log WARNING: [$SOURCE] Logging disabled. No space left in $logdir"`
+            logmode=0
+         fi
+      else
+         `vmtoolsd --cmd "log WARNING: [$SOURCE] Logging disabled. $logdir is not writable"`
+         logmode=0
+      fi
+   fi
+}
+
+get_logconfig
+rotate_logfile
+
+log "Executing '$0 $*'"
+
+. `dirname "$0"`/../../statechange.subr
+
+
+#
+# find_networking_script --
+#
+#    Searches common Linux distro init/rc paths to find a singular network
+#    services script.
+#
+# Result:
+#    Returns a valid networking script path on success or "error" on failure.
+#
+# Side effects:
+#    None.
+#
+
+find_networking_script() {
+   local script="error"
+   for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do
+      if [ -d "$dir/rc0.d" ] &&
+         [ -d "$dir/rc1.d" ] &&
+         [ -d "$dir/rc2.d" ] &&
+         [ -d "$dir/rc3.d" ] &&
+         [ -d "$dir/rc4.d" ] &&
+         [ -d "$dir/rc5.d" ] &&
+         [ -d "$dir/rc6.d" ]; then
+
+         # Now find the appropriate networking script.
+         if [ -d "$dir/init.d" ]; then
+            if [ -x "$dir/init.d/network" ]; then
+               script="$dir/init.d/network"
+            elif [ -x "$dir/init.d/networking" ]; then
+               script="$dir/init.d/networking"
+            fi
+         else
+            if [ -x "$dir/network" ]; then
+               script="$dir/network"
+            elif [ -x "$dir/networking" ]; then
+               script="$dir/networking"
+            fi
+         fi
+      fi
+   done
+
+   log "$script"
+}
+
+
+#
+# exec_networking_script --
+#
+#    Execute the networking script to bring network interfaces up or down
+#    based on the given input action argument.
+#
+
+exec_networking_script()
+{
+   local script=$1
+   local action=$2
+
+   # Using SysV "service" if it exists, otherwise fall back to run the
+   # script directly
+   service=`which service 2>/dev/null`
+   if [ $? = 0 -a -n "$service" ]; then
+      serviceName=`basename "$script"`
+      "$service" "$serviceName" "$action"
+   else
+      "$script" "$action"
+   fi
+
+   return $?
+}
+
+
+#
+# exec_systemctl_service --
+#
+#    Handle linux distributions that use systemd to replace the legacy
+#    system V startup scripts. The previous network script searching
+#    approach is no longer viable in these systems. Invoke the systemctl
+#    command to control the network service instead.
+#
+
+exec_systemctl_service()
+{
+   local rc=1
+   local action=$1
+   local ctlcmd=$(which systemctl 2>/dev/null)
+   local service
+
+   [ -z "$ctlcmd" ] && return $rc
+
+   for svc in systemd-networkd network; do
+      if ! $ctlcmd status $svc | grep -iq 'not-found'; then
+         service=$svc && break
+      fi
+   done
+
+   [ -z "$service" ] && return $rc
+
+   $ctlcmd $action $service; rc=$?
+
+   # When use the systemd-networkd service to shut down interfaces, interface
+   # address and state remain unchanged. Need to use ip command to change its
+   # address and state.
+   if [ $rc = 0 -a $service = 'systemd-networkd' -a $action = 'stop' ]; then
+      config_network_intfs $action; rc=$?
+   fi
+
+   return $rc
+}
+
+
+#
+# del_intf_ip --
+#
+#    Use the ip command to remove all the addresses of an interface.
+#
+
+del_intf_ip()
+{
+   local nic=$1
+
+   $ip_cmd addr flush dev $nic
+   return $?
+}
+
+
+#
+# ip_intf_ops --
+#
+#    Use the ip command to change the state of an interface to up or down.
+#
+
+ip_intf_ops()
+{
+   local rc=1
+   local nic=$1
+   local ops=$2
+
+   [ -z "$ip_cmd" ] && return $rc
+
+   $ip_cmd link set $nic $ops; rc=$?
+
+   # Remove interface addresses when taking an interface down.
+   if [ $rc = 0 -a $ops = down ]; then
+      del_intf_ip $nic; rc=$?
+   fi
+
+   return $rc
+}
+
+
+#
+# intf_ops --
+#
+#    Execute the specified command (ifup or ifdown) if available, otherwise use
+#    the ip command as fallback. If ifup or ifdown fails, run the ip command to
+#    retry the intended operation.
+#
+
+intf_ops()
+{
+   local rc=0
+   local cmd=$1
+   local ops=$2
+   local nic=$3
+   local tmp
+
+   if [ ! -z "$cmd" ]; then
+      tmp=$($cmd $nic 2>&1); rc=$?
+
+      # Some systems still return a successful status even the command fails
+      # because the interface is not configured in the configuration file. So
+      # have to examine the command output to determine the actual status.
+      if [ $rc = 0 ]; then
+         echo $tmp | egrep -iq 'not configured|ignoring unknown' && rc=1
+      fi
+   fi
+
+   # If ifup/ifdown fails, try the ip fallback.
+   if [ -z "$cmd" -o $rc != 0 ]; then
+      ip_intf_ops $nic $ops; rc=$?
+   fi
+
+   return $rc
+}
+
+
+#
+# exec_intf_ops --
+#
+#    Perform an operation to bring an individual interface up or down.
+#
+
+exec_intf_ops()
+{
+   local rc=0
+   local action=$1
+   local nic=$2
+
+   case $action in
+      start)
+         intf_ops "$ifup_cmd" up $nic; rc=$?
+         ;;
+      stop)
+         intf_ops "$ifdown_cmd" down $nic; rc=$?
+         ;;
+      *)
+         Panic "Illegal interface action: $action"
+         ;;
+   esac
+
+   return $rc
+}
+
+
+#
+# config_network_intfs --
+#
+#    For Linux systems not supporting networking scripts to bring interfaces
+#    up or down, provide a way to change the interface state individually.
+#
+
+config_network_intfs()
+{
+   local rc=0
+   local action=$1
+
+   if [ -f "$activeList" ]; then
+
+      while read nic; do
+         exec_intf_ops $action $nic
+         rc=$(expr $rc \| $?)
+      done < $activeList
+   fi
+
+   return $rc
+}
+
+
+#
+# run_network_script --
+#
+#    Finds out how to run the system's script used to control networking, and
+#    runs it with the given argument (which should be one of the usual SysV
+#    init script arguments). If it does not work, tries the other alternatives.
+#    So far, our alternatives are (a) systemctl (b) network script (c) perform
+#    an individual interface state change.
+#
+
+run_network_script()
+{
+   local action=$1
+   local rc=0
+   local script
+
+   while true; do
+
+      exec_systemctl_service $action
+      [ $? != 0 ] || break
+
+      script=`find_networking_script`
+
+      if [ $script != "error" ]; then
+         exec_networking_script $script $action
+         [ $? != 0 ] || break
+      fi
+
+      # Since all the other alternatives fail, need to manually change
+      # individual interface state.
+      config_network_intfs $action; rc=$?
+      break
+   done
+
+   return $rc
+}
+
+
+#
+# save_active_NIC_list --
+#
+#    Records a list of every active NIC to /var/run/vmware-active-nics.
+#
+#    XXX What's the story on aliases?  Should they still be included, or will
+#    they be recreated automatically upon resume?
+#
+# Results:
+#    $activeList has, one per line, a list of all active NICs.
+#
+# Side effects:
+#    None.
+#
+
+save_active_NIC_list()
+{
+   local intf_out
+
+   >$activeList
+
+   # Find out all the non-loopback up interfaces. Use ip if available
+   # otherwise fall back to the ifconfig command.
+   # ifconfig is buggy on some platforms and truncates long
+   # network names
+   if [ -n "$ip_cmd" ]; then
+      for nic in $($ip_cmd link show up | egrep '\bUP\b' | awk -F: '{print $2}'); do
+         $ip_cmd link show ${nic%@*} | grep -iq 'link/ether' && echo ${nic%@*} >> $activeList
+      done
+   else
+      for nic in $($ifconfig_cmd | sed -n 's/^\([^: \t]*\).*$/\1/p'); do
+         intf_out=$($ifconfig_cmd $nic)
+         echo $intf_out | grep -iq loopback && continue
+         echo $intf_out | egrep -q '\bUP\b' && echo $nic >> $activeList
+      done
+   fi
+}
+
+
+#
+# rescue_NIC --
+#
+#    For each NIC recorded in $activeList that is not currently "up", run
+#    "ifup $nic" or "ip link set $nic up" to bring the interface up.
+#
+# Results:
+#    All downed NICs should be active.
+#
+
+rescue_NIC()
+{
+   local rc=0
+   local intf_out
+
+   if [ -f "$activeList" ]; then
+      while read nic; do
+         if [ -n "$ip_cmd" ]; then
+            intf_out=$($ip_cmd link show $nic up)
+         else
+            intf_out=$($ifconfig_cmd $nic)
+         fi
+
+         if echo $intf_out | grep -q 'UP'; then
+            log "[rescue_nic] $nic is already active."
+         else
+            log "[rescue_nic] activating $nic ..."
+
+            # Our best effort to activate interfaces, use ifup if available
+            # otherwise use the ip command as fallback.
+            intf_ops "$ifup_cmd" up $nic
+            rc=$(expr $rc \| $?)
+         fi
+      done < $activeList
+
+      rm -f $activeList
+   fi
+
+   return $rc
+}
+
+
+#
+# TranquilizeNetworkManager --
+#
+#    Put the NetworkManager daemon to sleep (maybe).
+#
+#    See http://projects.gnome.org/NetworkManager/developers/spec.html .
+#
+# Results:
+#    Sleep(true) request is sent to the NetworkManager D-Bus interface.
+#
+# Side effects:
+#    None.
+#
+
+TranquilizeNetworkManager()
+{
+   # `which' may be a bit noisy, so we'll shush it.
+   dbusSend=`which dbus-send 2>/dev/null`
+   rc=$?
+   if [ $rc -ne 0 ]; then
+      return $rc
+   fi
+
+   # Check NetworkManager state before disabling it.
+   nm_state=`$dbusSend --system --print-reply          \
+             --dest=org.freedesktop.NetworkManager     \
+             /org/freedesktop/NetworkManager           \
+             org.freedesktop.DBus.Properties.Get       \
+             string:'org.freedesktop.NetworkManager'   \
+             string:'State'                            \
+             | awk '/variant/ {print $3;}'`
+   if [ -z "$nm_state" ]; then
+      return 1
+   fi
+   # NetworkManager API     0.7/0.8   0.9
+   # NM_STATE_ASLEEP           1      10
+   # NM_STATE_DISCONNECTED     4      20
+   case $nm_state in
+      1|4|10|20)
+         # Nothing needs to be done.
+         return 0
+         ;;
+   esac
+
+   # NetworkManager 0.8.0 and above
+   $dbusSend --system --print-reply          \
+      --dest=org.freedesktop.NetworkManager  \
+      /org/freedesktop/NetworkManager        \
+      org.freedesktop.NetworkManager.Enable boolean:false
+   rc=$?
+   if [ $rc -eq 0 ]; then
+      return $rc
+   fi
+   # NetworkManager 0.7.0
+   $dbusSend --system --print-reply          \
+      --dest=org.freedesktop.NetworkManager  \
+      /org/freedesktop/NetworkManager        \
+      org.freedesktop.NetworkManager.Sleep boolean:true
+   rc=$?
+   if [ $rc -eq 0 ]; then
+      return $rc
+   fi
+   # NetworkManager 0.6
+   $dbusSend --system --print-reply          \
+      --dest=org.freedesktop.NetworkManager  \
+      /org/freedesktop/NetworkManager        \
+      org.freedesktop.NetworkManager.sleep
+   rc=$?
+
+   return $rc
+}
+
+
+#
+# WakeNetworkManager --
+#
+#    Wake the NetworkManager daemon (maybe).
+#
+#    See http://projects.gnome.org/NetworkManager/developers/spec.html .
+#
+# Results:
+#    Sleep(false)request is sent to the NetworkManager D-Bus interface.
+#
+# Side effects:
+#    None.
+#
+
+WakeNetworkManager()
+{
+   # `which' may be a bit noisy, so we'll shush it.
+   dbusSend=`which dbus-send 2>/dev/null`
+   rc=$?
+   if [ $rc = 0 ]; then
+      # NetworkManager 0.8.0
+      $dbusSend --system --print-reply          \
+         --dest=org.freedesktop.NetworkManager  \
+         /org/freedesktop/NetworkManager        \
+         org.freedesktop.NetworkManager.Enable boolean:true
+      rc=$?
+      if [ $rc = 0 ]; then
+         return $rc
+      fi
+      # NetworkManager 0.7.0
+      $dbusSend --system --print-reply          \
+         --dest=org.freedesktop.NetworkManager  \
+         /org/freedesktop/NetworkManager        \
+         org.freedesktop.NetworkManager.Sleep boolean:false
+      rc=$?
+      if [ $rc = 0 ]; then
+         return $rc
+      fi
+      # NetworkManager 0.6
+      $dbusSend --system --print-reply          \
+         --dest=org.freedesktop.NetworkManager  \
+         /org/freedesktop/NetworkManager        \
+         org.freedesktop.NetworkManager.wake
+      rc=$?
+   fi
+   return $rc
+}
+
+
+#
+# sanity_check --
+#
+#    Check if the script has all the commands it needs to carry out the
+#    request. So far, it requires either ip or ifconfig command to read
+#    interface configuration. Ifup is not checked here. It is checked at
+#    the place where we need to do individual interface state change.
+#
+
+sanity_check()
+{
+   ip_cmd=$(which ip 2>/dev/null)
+   ifconfig_cmd=$(which ifconfig 2>/dev/null)
+   ifup_cmd=$(which ifup 2>/dev/null)
+   ifdown_cmd=$(which ifdown 2>/dev/null)
+
+   [ -z "$ifconfig_cmd" -a -z "$ip_cmd" ] && \
+       Panic "ip and ifconfig not in search path."
+}
+
+
+#
+# main --
+#
+#    Main entry point.  Perform some sanity checking, then map state change
+#    events to relevant networking operations.
+#
+# Results:
+#    See comment at top of file.
+#
+
+main() {
+   exitCode=0
+   activeList=/var/run/vmware-active-nics
+
+   case "$1" in
+      poweron-vm)
+         rm -f $activeList
+         ;;
+      suspend-vm)
+         TranquilizeNetworkManager
+         exitCode=$?
+         if [ $exitCode != 0 ]; then
+            sanity_check suspend-vm
+            save_active_NIC_list
+            run_network_script stop
+            exitCode=$?
+         fi
+         ;;
+      resume-vm)
+         WakeNetworkManager
+         exitCode=$?
+         if [ $exitCode != 0 ]; then
+            sanity_check resume-vm
+            # According to hfu, "/etc/init.d/networking restart" on Debian 5.0
+            # may bring down ethernet interfaces tagged as "allow-hotplug" without
+            # bringing them back up.
+            #
+            # This is especially a problem when reverting to a live, running
+            # VM snapshot where an active NIC list hadn't yet been generated,
+            # resulting in sudden loss of an otherwise operational NIC.
+            #
+            # So, if the active list doesn't exist, assume we're coming back to
+            # a live snapshot and capture the current active list now for
+            # rescue later.
+            if [ ! -s $activeList ]; then
+               save_active_NIC_list
+            fi
+
+            # We shall use start not restart here. Otherwise we may not be able
+            # to bring back active list on distros like sles11sp2
+            # -- PR 816791
+            run_network_script start
+            rescue_NIC
+            exitCode=$?
+         fi
+         ;;
+      *)
+         log "No argument supplied."
+         ;;
+   esac
+
+   return $exitCode
+}
+
+main "$@"
+log "Finished '$0 $*'"
diff --git a/vmware-tools/statechange.subr b/vmware-tools/statechange.subr
new file mode 100644 (file)
index 0000000..8005f7d
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+##########################################################
+# Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation version 2.1 and no later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+#
+##########################################################
+
+##########################################################################
+# DO NOT modify this file directly as it will be overwritten the next
+# time the VMware Tools are installed.
+##########################################################################
+
+
+#
+# Panic --
+#
+#    Write a formatted error message to stderr and exit.
+#
+# Results:
+#    Stderr is spammed, program exits with exit code 1.
+#
+# Side effects:
+#    None.
+#
+
+Panic() {
+   fmt="`date '+%b %d %H:%M:%S'` `basename \"$0\"`"
+   if [ -n "$1" ]; then
+      fmt="${fmt}: $1"
+      shift
+   fi
+
+   printf >&2 "${fmt}\n" "$@"
+   exit 1
+}
diff --git a/vmware-tools/suspend-vm-default b/vmware-tools/suspend-vm-default
new file mode 100755 (executable)
index 0000000..39df657
--- /dev/null
@@ -0,0 +1,134 @@
+#!/bin/sh
+##########################################################
+# Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation version 2.1 and no later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+#
+##########################################################
+
+##########################################################################
+# DO NOT modify this file directly as it will be overwritten the next
+# time the VMware Tools are installed.
+##########################################################################
+
+#
+# statechange.sh
+#
+# This script is a refactored version of the legacy power scripts (e.g.,
+# poweron-vm-default).  It expects to be installed in their places --
+# in other words, `basename "$0"` might be poweron-vm-default.
+#
+# Handy reference/shorthand used in this doc/scripts:
+#    TOOLS_CONFDIR ::= Depends on platform and installation settings.  Likely
+#                      "/etc/vmware-tools" or
+#                      "/Library/Application Support/VMware Tools"
+#    powerOp       ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
+#                      "resume-vm".
+#    vmwScriptDir  ::= $TOOLS_CONFDIR/scripts/vmware
+#    userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
+#
+# End users may install scripts of their own under $userScriptDir.  They
+# are executed in alphabetical order with "$powerOp" as the only argument.
+#
+# NB:  This directory layout remains to preserve backwards compatibility. End
+# users are free to write a single script which uses its only parameter
+# (${powerOp}) as a discriminator, and then install symlinks to it in each
+# of the ${powerOp}-default.d directories.
+#
+# On power-on and resume, VMware's scripts execute before the end user's.  On
+# suspend and power-off, the end user's execute before VMware's.  (This way,
+# VMware stops services only after the user's scripts have finished their
+# work, and conversely restores the same services before the user's scripts
+# attempt to use them.)
+#
+# Should any script exit non-zero, only its value will be saved to exitCode.
+# (Any further non-zero exits will have no effect on exitCode.)  This script
+# exits with $exitCode.
+#
+# XXX Consider using the available/enabled pattern for VMware's scripts.
+#
+# XXX This should be staged as a single executable whereby the desired
+# power operation is passed in as a parameter.  (I.e., one would run
+# "/path/to/statechange.sh suspend-vm" rather than having to install
+# statechange.sh as suspend-vm-default.)
+#
+
+echo `date` ": Executing '$0'"
+
+# See above.
+TOOLS_CONFDIR=`dirname "$0"`
+export TOOLS_CONFDIR
+
+# Pull in subroutines like Panic.
+. "$TOOLS_CONFDIR"/statechange.subr
+
+
+#
+# RunScripts --
+#
+#    Executes scripts installed under $scriptDir.
+#
+# Side effects:
+#    exitCode may be incremented.
+#
+
+RunScripts() {
+   scriptDir="$1"
+
+   if [ -d "$scriptDir" ]; then
+      for scriptFile in "$scriptDir"/*; do
+         if [ -x "$scriptFile" ]; then
+            "$scriptFile" $powerOp
+            exitCode=`expr $exitCode \| $?`
+         fi
+      done
+   fi
+}
+
+
+#
+# main --
+#
+#    Entry point.  See comments at top of file for details.
+#
+# Results:
+#    Exits with $exitCode.
+#
+
+main() {
+   # This is sanity checked in the case/esac bit below.
+   powerOp=`basename "$0" | sed 's,-default,,'`
+   exitCode=0
+
+   vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
+   userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
+
+   case "$powerOp" in
+      poweron-vm|resume-vm)
+         RunScripts "$vmwScriptDir"
+         RunScripts "$userScriptDir"
+         ;;
+      poweroff-vm|suspend-vm)
+         RunScripts "$userScriptDir"
+         RunScripts "$vmwScriptDir"
+         ;;
+      *)
+         Panic "Invalid argument: $powerOp"
+         ;;
+   esac
+
+   return $exitCode
+}
+
+main
diff --git a/vmware-tools/tools.conf b/vmware-tools/tools.conf
new file mode 100644 (file)
index 0000000..b2007e3
--- /dev/null
@@ -0,0 +1,17 @@
+[logging]
+# Turns on logging globally. It can still be disabled for each domain.
+# log = true
+
+# Disables core dumps on fatal errors; they're enabled by default.
+# enableCoreDump = false
+
+# Defines the "vmsvc" domain, logging to file
+# vmsvc.level = message
+vmsvc.handler = file
+# Setup file rotation - keep 3 files
+vmsvc.maxOldLogFiles = 3
+# Max log file size kept: 1 MB
+vmsvc.maxLogSize = 1
+
+# Defines the "vmtoolsd" domain, and disable logging for it.
+# vmtoolsd.level = none
diff --git a/vmware-tools/tools.conf.example b/vmware-tools/tools.conf.example
new file mode 100644 (file)
index 0000000..e5a03a9
--- /dev/null
@@ -0,0 +1,510 @@
+# Copyright (c) 2019-2022 VMware, Inc.  All rights reserved.
+
+# "CAUTION: tools.conf is highly syntax sensitive file. Use extreme caution
+# while editing it. If modified, it is automatically re-loaded by
+# VMware Tools services every 5 seconds."
+#
+# Lines must not end with trailing white space.
+
+[unsetenvironment]
+# Defines environment variables to be removed from the service reading
+# the configuration file. Supported formats are:
+#
+# 1. <variableName>=
+# 2. <serviceName>.<variableName>=
+#
+# Where <serviceName> refers to the 'vmsvc' and 'vmusr',
+# <variableName> refers to the name of the environment
+# variable to be removed. '=' sign after <variableName>
+# is mandatory to maintain the configuration file syntax.
+# However, anything after '=' is ignored.
+#
+# Case-sensitive behavior is defined by the operating system.
+#
+# Note: unsetenvironment group is processed before setenvironment group.
+# As the service environment is setup at start up time, any changes
+# in this group require service to be restarted in order to take effect.
+#
+# Unsetting PATH for all services:
+# PATH=
+#
+# Unsetting PATH for vmsvc only:
+# vmsvc.PATH=
+#
+# Unsetting PATH for vmusr only:
+# vmusr.PATH=
+
+[setenvironment]
+# Defines environment variables to be set for the service reading
+# the configuration file. Supported formats are:
+#
+# 1. <variableName>=<variableValue>
+# 2. <serviceName>.<variableName>=<variableValue>
+#
+# Where <serviceName> refers to the 'vmsvc' and 'vmusr',
+# <variableName> refers to the name of the environment
+# variable to be set, and <variableValue> refers to the
+# value to be assigned to the environment variable.
+#
+# Case-sensitive behavior is defined by the operating system.
+#
+# Note: setenvironment group is processed after unsetenvironment group.
+# As the service environment is setup at start up time, any changes
+# in this group require service to be restarted in order to take effect.
+#
+# Setting TMPDIR for all services:
+# TMPDIR=/vmware/temp
+#
+# Setting TMPDIR for vmsvc only:
+# vmsvc.TMPDIR=/vmware/vmsvc/temp
+#
+# Setting TMPDIR for vmusr only:
+# vmusr.TMPDIR=/vmware/vmusr/temp
+
+[logging]
+# set to false to turn off logging
+#log = true
+
+# Log destinations for various services
+# By default, logs go to
+# %windir%/temp/vmware-<servicename>.log
+# for Windows, and
+# /var/log/vmware-<servicename>-<username>.log
+# for Linux, MacOS and Solaris.
+
+# Possible values for handler are:
+# file: logs to a file. Set *.data to the file name
+# file+: same as 'file', but appends to the file
+#  All file paths used in *.data value need to be in Unix
+#  format (forward slashes) and in utf-8, for all operating
+#  systems.
+# vmx: logs to the host (ESXi, Workstation, Fusion)
+# std: Logs to stdout for level >= 'message',
+# and to stderr for more severe than 'message'.
+# syslog: logs to syslog
+# outputdebugstring: uses OutputDebugString (Windows only)
+
+# If handler is 'syslog' and the OS is Linux, the facility
+# can be set with <domain>.facility. The facility value can be one of
+# 'local0'..'local7', 'daemon' or 'user'. The default is 'user'.
+#vmtoolsd.facility = user
+
+# possible values for level are:
+# debug, info, message, warning, critical, error
+# Note that "debug" level logs generate huge amounts of logs and may also
+# include sensitive data required for diagnosis. Therefore, this level should
+# be used only for the duration of diagnosis of an issue and reverted back to
+# default setting post diagnosis.
+
+# Enable tools service logging to a file.
+#vmtoolsd.level = debug
+#vmtoolsd.handler = file
+#vmtoolsd.data = c:/tmp/vmtoolsd-${USER}.log
+
+# Enable 'vmsvc' service logging to a file.
+#vmsvc.level = debug
+#vmsvc.handler = file
+#vmsvc.data = c:/tmp/vmsvc.log
+
+# Enable VMwareResolutionSet.exe logging to a file.
+# Comment this for Linux guest, sometimes vmusr logs are not generated due
+# to this being uncommented
+#vmresset.level = debug
+#vmresset.handler = file+
+#vmresset.data = c:/tmp/vmresset.log
+
+# Enable new "vmusr" service logging to a file.
+#vmusr.level = debug
+#vmusr.handler = file
+#vmusr.data = c:/tmp/vmusr.${USER}.log
+
+# Set the following configuration if you want to collect the logs for
+# vmware-toolbox-cmd utility
+#toolboxcmd.level = debug
+#toolboxcmd.handler = file
+#toolboxcmd.data = c:/tmp/vmtoolboxcmd-${USER}.log
+
+# With no explicit logging configuration for deployPkg, its default log path in
+# Linux is /var/log/vmware-imc/toolsDeployPkg.log, and in Windows is
+# %WINDIR%/Temp/vmware-imc/toolsDeployPkg.log
+# Set the following configuration if you want to redirect the deployPkg log to
+# any existing location other than the default.
+#deployPkg.level = debug
+#deployPkg.handler = file
+#deployPkg.data = c:/tmp/toolsDeployPkg-${USER}.log
+
+# Redirecting the deployPkg log to the vmx log file. Please note that
+# "log = true" and the vmsvc log handler setting to vmx are also neccessary
+# if you want to redirect the deployPkg log to vmx.
+#log = true
+#vmsvc.level = debug
+#vmsvc.handler = vmx
+#deployPkg.level = debug
+#deployPkg.handler = vmx
+
+# Enable old VMwareUser/vmware-user logging to file.
+#log.file = c:/tmp/vmtools.log
+
+# Enable "hgfsServer" request handling logging to the appropriate service file.
+#hgfsServer.level = debug
+
+# Enable  "hgfs" manager and transport logging to the appropriate service file.
+#hgfsd.level = debug
+
+#vmbackup.level = debug
+#vmbackup.handler = vmx
+
+#vmvss.level = debug
+#vmvss.handler = vmx
+
+# Default 4096, 0=> deactivate log caching
+#maxCacheEntries=4096
+
+
+# Set the following configurations for modifying network script logging file.
+# Only for Linux, Mac OS X, Solaris, and FreeBSD
+#network.handler = file
+#network.data = /tmp/network.log
+#network.maxOldLogFiles = 9
+
+# Redirect network script logs to vmx
+#network.handler = vmx
+
+[powerops]
+# Custom scripts for power operations
+# This can be an absolute path, or a path relative to the tools
+# install path (/etc/vmware-tools/ for Linux).
+# For more information on configuring and querying custom scripts with
+# VMware Tools, see the "Use Custom VMware Tools Scripts" section of the
+# "VMware Tools Configuration Utility User's Guide".
+
+# Runs when the virtual machine is being powered on rather than resumed.
+# Also runs after virtual machine restarts.
+# The default script has no effect on networking for the virtual machine.
+#poweron-script=poweron-vm-default
+
+# Runs when the virtual machine is being powered off or reset.
+# The default script has no effect on networking for the virtual machine.
+#poweroff-script=poweroff-vm-default
+
+# Runs when the virtual machine is resumed after it was suspended.
+# On Windows guest operating systems, if the virtual machine is configured to
+# use DHCP, the default script renews the IP address of the virtual machine.
+# On Linux, Mac OS X, Solaris, and FreeBSD guest operating systems,
+# this script starts networking for the virtual machine.
+#resume-script=resume-vm-default
+
+# Runs when the virtual machine is being suspended.
+# On Windows guest operating systems, if the virtual machine is configured
+# to use DHCP, the default script releases the IP address of the virtual
+# machine.
+# On Linux, Mac OS X, Solaris, and FreeBSD, this script stops networking for
+# the virtual machine.
+#suspend-script=suspend-vm-default
+
+[guestinfo]
+
+# Set to true to deactivate the perf monitor.
+#disable-perf-mon=false
+
+# Set to true to deactivate DiskInfo.
+#disable-query-diskinfo=false
+
+# User-defined poll interval in seconds. Set to 0 to deactivate polling.
+#poll-interval=30
+
+# User-defined stats interval in seconds. Set to 0 to deactivate stats collection.
+#stats-interval=20
+
+# Whether stat results should be written to the log.
+#enable-stat-logging=false
+
+# Set a comma separated list of network interface names that can be the
+# primary ones. These will be sorted to the top. Interface names can use
+# wildcards like '*' and '?'. Default is no value.
+#primary-nics=
+
+# Set a comma separated list of network interface names that have low priority
+# (so they will be sorted to the end). Interface names can use wildcards like
+# '*' and '?'. Default is no value.
+#low-priority-nics=
+
+# Set a comma separated list of network interface names that shall be ignored.
+# Interface names can use wildcards like '*' and '?'.
+# Default for Linux and all non-Windows:
+#exclude-nics=veth*,docker*,virbr*
+# Default for Windows:
+#exclude-nics=vEthernet*
+
+# max umber of IPv4 routes to gather.
+#max-ipv4-routes=100
+
+# max umber of IPv6 routes to gather.
+#max-ipv6-routes=100
+
+# whether to include reserved space in diskInfo space metrics on Linux
+#diskinfo-include-reserved=false
+
+[globalconf]
+
+# The GlobalConf feature provides an ability for the vSphere administrators
+# to distribute a 'VMware Tools Configuration File' (tools.conf) via the
+# GuestStore for multiple VMs at scale.
+
+# Defines the configuration to activate/deactivate the GlobalConf module.
+# Set to true to enable(activate) the module.
+# Set to false to deactivate the module. Default false.
+#enabled=false
+
+# Defines a custom GlobalConf poll interval (in seconds).
+# Default 3600 seconds. Minimum 1800 seconds.
+#poll-interval=3600
+
+# Defines the global configuration resource in GuestStore.
+# Windows guests
+#resource=/vmware/configurations/vmtools/windows/tools.conf
+#
+# Linux guests
+#resource=/vmware/configurations/vmtools/linux/tools.conf
+
+[componentmgr]
+
+# This plugin manages the known and enabled components add/remove status.
+# The plugin polls at regular interval and triggers action add/remove for
+# all the known and enabled components in the componentMgr plugin.
+
+# Default and minimum polling interval in seconds (0 => polling deactivated)
+#poll-interval=180
+
+# Comma separated list of components managed by the plugin. If not specified,
+# default value is all, which means all components are enabled by default.
+# A special value of none means no component, which is equivalent to disabling
+# the plugin completely. Value is parsed left to right and parsing stops at
+# first occurrence of all or none or end of line.
+#included=all
+
+[appinfo]
+
+# This plugin collects info about running applications in guest OS.
+
+# Set to true to deactivate the appinfo plugin.
+#disabled=false
+
+# User-defined poll interval in seconds. Set to 0 to deactivate the plugin.
+#poll-interval=21600
+
+# For Windows guest, set to true to use WMI for getting the application
+# version info, otherwise native Win32 API is used.
+#useWMI=false
+
+# Whether to remove the duplicate applications information in the
+# guestinfo variable.
+#remove-duplicates=true
+
+[containerinfo]
+
+# This plugin collects info about running containers in guest OS.
+
+# User-defined poll interval in seconds. Set to 0 to deactivate the plugin.
+#poll-interval=21600
+
+# Maximum number of containers to be retrieved per namespace.
+#max-containers=256
+
+# Whether to remove the duplicate containers information in the
+# guestinfo variable.
+#remove-duplicates=true
+
+# Unix socket to use to communicate with the docker daemon.
+#docker-unix-socket=/var/run/docker.sock
+
+# The unix socket to connect to communicate with containerd grpc server
+# for retrieving the list of running containers.
+#containerd-unix-socket=/run/containerd/containerd.sock
+
+# List of namespaces to be queried for the running containers.
+# The value for this key is a comman separated list.
+#allowed-namespaces=moby,k8s.io,default
+
+[servicediscovery]
+
+# This plugin provides admins with additional info for better VM management.
+
+# Set to true to deactivate the servicediscovery plugin.
+#disabled=false
+
+[unity]
+#
+# Unity is available for Windows only.
+#
+
+# Set to true to override system decisions about whether unity should be available.
+#forceEnable=false
+
+# Override the desktop background color when in Unity mode.
+#desktop.backgroundColor=
+
+# The socket type can be 'ipsocket' or 'vsocket':
+#pbrpc.socketType
+
+[resolutionKMS]
+
+# Default is true if tools finds an xf86-video-vmware driver with
+# version >= 13.2.0. If you don't have X installed, set this to true manually.
+# This only affects tools for Linux.
+#enable=true
+
+[guestosinfo]
+
+# Override the short OS name sent by tools.
+#short-name=
+
+# Override the long OS name sent by tools.
+#long-name=
+
+[vmbackup]
+
+# enableSyncDriver is Linux only.
+#enableSyncDriver=true
+
+# enableVSS is Windows only.
+#enableVSS=true
+
+# vss.disableAppQuiescing is Windows only.
+# This setting can be used to force file system quiescing on Windows systems
+# having problems with application quiescing.
+# See https://kb.vmware.com/s/article/2146204
+#vss.disableAppQuiescing=false
+
+# Linux:
+# The value of excludedFileSystems is a comma-separated list of glob-style
+# patterns specifying the file system mount points to be excluded from
+# quiescing operation. The patterns may use '*' (wildcard) to represent
+# any string of characters and '?' (joker) to represent any single character.
+# The characters represented by the patterns '*' and '?' may include any
+# characters, including '/'.
+#
+# Windows:
+# The value of excludedFileSystems is a comma-separated list of mount points
+# specifying the volumes to be excluded from quiesced snapshots.
+# Each mount point must be a full path separated and ended with "\\".
+# For example, to exclude volumes with drive letter 'E' or mount point
+# "F:\mount\", use:
+# excludedFileSystems=E:\\,F:\\mount\\
+# This setting is ignored when application quiescing is used.
+
+#excludedFileSystems=
+
+# execScripts specifies whether to execute scripts as part of the quiescing
+# operation. Scripts are executed from the scripts directory along with the
+# legacy scripts.
+#
+# Scripts directory:
+# Linux: /etc/vmware-tools/backupScripts.d
+# Windows: <Install-Path>\backupScripts.d
+#
+# Legacy scripts:
+# Linux: /usr/sbin/pre-freeze-script and /usr/sbin/post-thaw-script
+# Windows: C:\windows\pre-freeze-script.bat and C:\windows\post-thaw-script.bat
+#
+# On each quiescing operation, scripts are invoked before quiescing and
+# either after a quiescing failure or after thawing.
+# The first argument passed to each script is
+# "freeze", when invoked before quiescing;
+# "freezefail", when invoked after a quiescing failure; or
+# "thaw", when invoked after thawing.
+# When invoked before quiescing, scripts from the directory are invoked in
+# alphabetically ascending order; when invoked following a quiescing failure
+# or thawing, they are invoked in the reverse order. Any subdirectories are
+# ignored.
+# Note that the legacy pre-freeze-script is invoked only before quiescing as
+# the first script and post-thaw-script is invoked after a quiescing failure
+# as well as after thawing as the last script.
+
+#execScripts=true
+
+# Additional argument to be passed to scripts
+#scriptArg=
+
+[guestoperations]
+
+# to deactivate all guest ops
+#disabled=false
+
+# Whether to use vgauth for guest op authentication
+#useVGAuth=true
+
+[autoupgrade]
+
+# The "allow-upgrade" option controls whether automatic upgrades (or reinstalls)
+# are allowed.
+#allow-upgrade=true
+
+# The autoupgrade plugin is only available for Windows.
+# The "allow-add-feature" and "allow-remove-feature" control whether adding
+# or removing a feature will be allowed.
+# The allow-msi-transforms option controls whether TRANSFORMS property is
+# allowed.
+
+#allow-add-feature=true
+#allow-remove-feature=true
+#allow-msi-transforms=false
+
+[deployPkg]
+
+# to deactivate guest customization
+#enable-customization=false
+
+# This "wait-cloudinit-timeout" option controls how long does guest
+# customization wait for cloud-init execution done when it detects cloud-init
+# is available in guest.
+# Guest customization will continue executing as soon as it detects cloud-init
+# execution done within this option's value in seconds.
+# If cloud-init is still running beyond this option's value in seconds, guest
+# customization will continue executing regardless cloud-init execution status.
+# Minimum valid value is 0 second, set to 0 to deactivate waiting.
+# Maximum valid value is 1800 seconds (30 minutes).
+# Default value is 30 seconds.
+#wait-cloudinit-timeout=30
+
+[cbhelper]
+
+# The carbonblack helper plugin is only available for Windows.
+
+# User-defined poll interval in seconds. Set to 0 to deactivate polling.
+#poll-interval=60
+
+[gueststoreupgrade]
+
+# The guestStoreUpgrade plugin is only available for Windows.
+
+# The policy value is one of the settings listed below.
+# off         = no VMware Tools upgrade from GuestStore. Feature is
+#               deactivated.
+# manual      = (Default) VMware Tools upgrade from GuestStore is
+#               manually started.
+# powercycle  = VMware Tools upgrade from GuestStore on system
+#               power on.
+
+#policy=manual
+
+# Time interval for periodically checking available VMware Tools package
+# version in the GuestStore.
+# User-defined poll interval in seconds. Set to 0 to deactivate polling.
+# Minimum valid value is 900 seconds (15 minutes)
+# Default value is 3600 seconds (60 minutes)
+#poll-interval=3600
+
+# VMware Tools package version metadata key to specify a VMware Tools
+# package version in the GuestStore.
+# User-defined key for VMware Tools package version.
+# Default value is "vmtools" which points to the latest version of
+# VMware Tools package in the GuestStore.
+#vmtools-version-key=vmtools
+
+[devicehelper]
+
+# The deviceHelper plugin is only available for Windows.
+
+# Set to true to deactivate the deviceHelper plugin.
+#disabled=false
diff --git a/vmware-tools/vgauth.conf b/vmware-tools/vgauth.conf
new file mode 100644 (file)
index 0000000..c10de51
--- /dev/null
@@ -0,0 +1,5 @@
+[service]
+samlSchemaDir = /etc/vmware-tools/vgauth/schemas
+
+[localization]
+msgCatalog = /usr/share/open-vm-tools
diff --git a/vmware-tools/vgauth/schemas/XMLSchema-hasFacetAndProperty.xsd b/vmware-tools/vgauth/schemas/XMLSchema-hasFacetAndProperty.xsd
new file mode 100644 (file)
index 0000000..df871d5
--- /dev/null
@@ -0,0 +1,142 @@
+<?xml version='1.0'?>
+<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd" [
+<!ENTITY % s ''>
+<!ENTITY % p ''>
+<!-- keep this XML 1.0 correct -->
+<!ATTLIST schema xmlns:hfp CDATA #IMPLIED
+                 xmlns:xhtml CDATA #IMPLIED
+                 xmlns:xsi CDATA #IMPLIED
+                 xsi:schemaLocation CDATA #IMPLIED>
+<!ELEMENT xhtml:p ANY>
+<!ELEMENT xhtml:em ANY>
+]>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty" xmlns:xhtml="http://www.w3.org/1999/xhtml"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/1999/xhtml.xsd">
+
+ <annotation>
+  <documentation>
+   <xhtml:p> This schema defines 2 elements for use in the
+appinfo portion section of (potentially) all builtin datatypes in the schema
+for XML Schema Part 2: Datatypes.  </xhtml:p>
+   <xhtml:p> One intended use of
+this appinfo is in the generation of the HTML version of the XML Schema Part 2:
+Datatypes specification itself.  All portions of the HTML text which describe
+the facets and/or properties of each datatype is generated by an XSLT
+transformation which keys off of this appinfo.  </xhtml:p>
+   <xhtml:p> Schema
+processors may have another use for this appinfo (although one certainly not
+required in any way by the specification).  The information may be useful in
+dynamically building validation modules/classes and/or user-interfaces for
+schema creation.  </xhtml:p>
+  </documentation>
+ </annotation>
+
+ <element name="hasFacet">
+  <annotation>
+   <documentation>
+   <xhtml:p>
+    hasFacet is used to signal that the contraining facet
+    given in the name attribute is applicable to a primitive
+    datatype (and all types derived from it).
+</xhtml:p>
+   <xhtml:p>
+    Note: this element will only appear in the appinfo of
+    primitive types or built-in types derived by "list".
+   </xhtml:p>
+   <xhtml:p>
+    A schema processor (or the XSLT which generates the
+    HTML version of the XML Schema Part 2: Datatypes
+    specification) which reads a derived simpleType
+    definition should walk up the base type chain until
+    it reaches the primitive type at the top of the chain
+    and "push" all facets found their down to all derived
+    types in the chain.
+   </xhtml:p>
+   </documentation>
+  </annotation>
+  <complexType>
+   <attribute name="name" use="required">
+    <simpleType>
+     <annotation>
+      <documentation>
+       <xhtml:p>
+        This datatype names all existing contraining facets.
+</xhtml:p>
+       <xhtml:p>
+        Question: should each of the enumerations below be
+        given a documentation annotation, which would contain
+        the text to be used in the definition of the facet
+        in the XML Schema Part 2: Datatypes specification?
+        Might be nice to try to collect all of that information
+        together here.
+       </xhtml:p>
+      </documentation>
+     </annotation>
+     <restriction base="NMTOKEN">
+      <enumeration value="length"/>
+      <enumeration value="minLength"/>
+      <enumeration value="maxLength"/>
+      <enumeration value="pattern"/>
+      <enumeration value="enumeration"/>
+      <enumeration value="maxInclusive"/>
+      <enumeration value="maxExclusive"/>
+      <enumeration value="minInclusive"/>
+      <enumeration value="minExclusive"/>
+      <enumeration value="totalDigits"/>
+      <enumeration value="fractionDigits"/>
+      <enumeration value="whiteSpace"/>
+      <enumeration value="maxScale"/>
+      <enumeration value="minScale"/>
+     </restriction>
+    </simpleType>
+   </attribute>
+  </complexType>
+ </element>
+
+ <element name="hasProperty">
+  <annotation>
+   <documentation>
+    <xhtml:p> hasProperty is used to signal that the property
+given in the name attribute has the value given in the value attribute for the
+datatype in which it occurs (and all types derived from it, which do not
+override the value of the property).  </xhtml:p>
+    <xhtml:p> Note: this element
+may appear in the appinfo of primitive and built-in derived types.  </xhtml:p>
+    <xhtml:p> A schema processor (or the XSLT which generates the HTML version of
+the XML Schema Part 2: Datatypes specification) which reads a simpleType
+definition should gather the information from any occurances of hasProperty in
+that simpleType definition, and then walk up the base type chain gathering
+information from any occurances of hasProperty (unless a value was given to the
+name in a dervied type) until either it reaches the primitive type at the top
+of the chain or it has gathered values for all existing properties.  </xhtml:p>
+   </documentation>
+  </annotation>
+  <complexType>
+   <attribute name="name" use="required">
+    <simpleType>
+     <annotation>
+      <documentation>
+       <xhtml:p> This datatype names all existing fundamental
+facets, otherwise known as properties (with the exception of
+<xhtml:em>equality</xhtml:em>, a property which has no
+<xhtml:em>value</xhtml:em>).  </xhtml:p>
+       <xhtml:p> Question: should each of
+the enumerations below be given a documentation annotation, which would contain
+the text to be used in the definition of the properties in the XML Schema Part
+2: Datatypes specification? Might be nice to try to collect all of that
+information together here.  </xhtml:p>
+      </documentation>
+     </annotation>
+     <restriction base="NMTOKEN">
+      <enumeration value="ordered"/>
+      <enumeration value="bounded"/>
+      <enumeration value="cardinality"/>
+      <enumeration value="numeric"/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name="value" type="normalizedString" use="required"/>
+  </complexType>
+ </element>
+</schema>
diff --git a/vmware-tools/vgauth/schemas/XMLSchema-instance.xsd b/vmware-tools/vgauth/schemas/XMLSchema-instance.xsd
new file mode 100644 (file)
index 0000000..f47577b
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version='1.0'?>
+<!DOCTYPE xs:schema SYSTEM "XMLSchema.dtd" [
+<!ELEMENT p ANY>
+<!ELEMENT a ANY>
+<!ATTLIST a href CDATA #IMPLIED>
+<!ELEMENT hr ANY>
+<!ELEMENT h1 ANY>
+<!ELEMENT br ANY>
+]>
+<xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema-instance"
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns="http://www.w3.org/1999/xhtml">
+  <xs:annotation>
+   <xs:documentation>
+    <h1>XML Schema instance namespace</h1>
+    <p>See <a href="http://www.w3.org/TR/xmlschema-1/">the XML Schema
+       Recommendation</a> for an introduction</p>
+
+
+    <hr />
+    $Date: 2001/03/16 20:25:57 $<br />
+    $Id: XMLSchema-instance.xsd,v 1.4 2001/03/16 20:25:57 ht Exp $
+  </xs:documentation>
+ </xs:annotation>
+ <xs:annotation>
+  <xs:documentation><p>This schema should never be used as such:
+                    <a href="http://www.w3.org/TR/xmlschema-1/#no-xsi">the XML
+                    Schema Recommendation</a> forbids the declaration of
+                    attributes in this namespace</p>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="nil"/>
+ <xs:attribute name="type"/>
+ <xs:attribute name="schemaLocation"/>
+ <xs:attribute name="noNamespaceSchemaLocation"/>
+</xs:schema>
diff --git a/vmware-tools/vgauth/schemas/XMLSchema.dtd b/vmware-tools/vgauth/schemas/XMLSchema.dtd
new file mode 100644 (file)
index 0000000..d3c70b3
--- /dev/null
@@ -0,0 +1,402 @@
+<!-- DTD for XML Schemas: Part 1: Structures
+     Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
+     Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
+<!-- $Id: XMLSchema.dtd,v 1.31 2001/10/24 15:50:16 ht Exp $ -->
+<!-- Note this DTD is NOT normative, or even definitive. -->           <!--d-->
+<!-- prose copy in the structures REC is the definitive version -->    <!--d-->
+<!-- (which shouldn't differ from this one except for this -->         <!--d-->
+<!-- comment and entity expansions, but just in case) -->              <!--d-->
+<!-- With the exception of cases with multiple namespace
+     prefixes for the XML Schema namespace, any XML document which is
+     not valid per this DTD given redefinitions in its internal subset of the
+     'p' and 's' parameter entities below appropriate to its namespace
+     declaration of the XML Schema namespace is almost certainly not
+     a valid schema. -->
+
+<!-- The simpleType element and its constituent parts
+     are defined in XML Schema: Part 2: Datatypes -->
+<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
+
+<!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
+                         schema document to establish a different
+                         namespace prefix -->
+<!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
+                         also define %s as the suffix for the appropriate
+                         namespace declaration (e.g. :foo) -->
+<!ENTITY % nds 'xmlns%s;'>
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % schema "%p;schema">
+<!ENTITY % complexType "%p;complexType">
+<!ENTITY % complexContent "%p;complexContent">
+<!ENTITY % simpleContent "%p;simpleContent">
+<!ENTITY % extension "%p;extension">
+<!ENTITY % element "%p;element">
+<!ENTITY % unique "%p;unique">
+<!ENTITY % key "%p;key">
+<!ENTITY % keyref "%p;keyref">
+<!ENTITY % selector "%p;selector">
+<!ENTITY % field "%p;field">
+<!ENTITY % group "%p;group">
+<!ENTITY % all "%p;all">
+<!ENTITY % choice "%p;choice">
+<!ENTITY % sequence "%p;sequence">
+<!ENTITY % any "%p;any">
+<!ENTITY % anyAttribute "%p;anyAttribute">
+<!ENTITY % attribute "%p;attribute">
+<!ENTITY % attributeGroup "%p;attributeGroup">
+<!ENTITY % include "%p;include">
+<!ENTITY % import "%p;import">
+<!ENTITY % redefine "%p;redefine">
+<!ENTITY % notation "%p;notation">
+
+<!-- annotation elements -->
+<!ENTITY % annotation "%p;annotation">
+<!ENTITY % appinfo "%p;appinfo">
+<!ENTITY % documentation "%p;documentation">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+     Define one of these if your schema takes advantage of the
+     anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % schemaAttrs ''>
+<!ENTITY % complexTypeAttrs ''>
+<!ENTITY % complexContentAttrs ''>
+<!ENTITY % simpleContentAttrs ''>
+<!ENTITY % extensionAttrs ''>
+<!ENTITY % elementAttrs ''>
+<!ENTITY % groupAttrs ''>
+<!ENTITY % allAttrs ''>
+<!ENTITY % choiceAttrs ''>
+<!ENTITY % sequenceAttrs ''>
+<!ENTITY % anyAttrs ''>
+<!ENTITY % anyAttributeAttrs ''>
+<!ENTITY % attributeAttrs ''>
+<!ENTITY % attributeGroupAttrs ''>
+<!ENTITY % uniqueAttrs ''>
+<!ENTITY % keyAttrs ''>
+<!ENTITY % keyrefAttrs ''>
+<!ENTITY % selectorAttrs ''>
+<!ENTITY % fieldAttrs ''>
+<!ENTITY % includeAttrs ''>
+<!ENTITY % importAttrs ''>
+<!ENTITY % redefineAttrs ''>
+<!ENTITY % notationAttrs ''>
+<!ENTITY % annotationAttrs ''>
+<!ENTITY % appinfoAttrs ''>
+<!ENTITY % documentationAttrs ''>
+
+<!ENTITY % complexDerivationSet "CDATA">
+      <!-- #all or space-separated list drawn from derivationChoice -->
+<!ENTITY % blockSet "CDATA">
+      <!-- #all or space-separated list drawn from
+                      derivationChoice + 'substitution' -->
+
+<!ENTITY % mgs '%all; | %choice; | %sequence;'>
+<!ENTITY % cs '%choice; | %sequence;'>
+<!ENTITY % formValues '(qualified|unqualified)'>
+
+
+<!ENTITY % attrDecls    '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
+
+<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
+
+<!-- This is used in part2 -->
+<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
+
+%xs-datatypes;
+
+<!-- the duplication below is to produce an unambiguous content model
+     which allows annotation everywhere -->
+<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
+                    ((%simpleType; | %complexType;
+                      | %element; | %attribute;
+                      | %attributeGroup; | %group;
+                      | %notation; ),
+                     (%annotation;)*)* )>
+<!ATTLIST %schema;
+   targetNamespace      %URIref;               #IMPLIED
+   version              CDATA                  #IMPLIED
+   %nds;                %URIref;               #FIXED 'http://www.w3.org/2001/XMLSchema'
+   xmlns                CDATA                  #IMPLIED
+   finalDefault         %complexDerivationSet; ''
+   blockDefault         %blockSet;             ''
+   id                   ID                     #IMPLIED
+   elementFormDefault   %formValues;           'unqualified'
+   attributeFormDefault %formValues;           'unqualified'
+   xml:lang             CDATA                  #IMPLIED
+   %schemaAttrs;>
+<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
+     because at the Infoset level where schemas operate,
+     xmlns(:prefix) is NOT an attribute! -->
+<!-- The declaration of xmlns is a convenience for schema authors -->
+
+<!-- The id attribute here and below is for use in external references
+     from non-schemas using simple fragment identifiers.
+     It is NOT used for schema-to-schema reference, internal or
+     external. -->
+
+<!-- a type is a named content type specification which allows attribute
+     declarations-->
+<!-- -->
+
+<!ELEMENT %complexType; ((%annotation;)?,
+                         (%simpleContent;|%complexContent;|
+                          %particleAndAttrs;))>
+
+<!ATTLIST %complexType;
+          name      %NCName;                        #IMPLIED
+          id        ID                              #IMPLIED
+          abstract  %boolean;                       #IMPLIED
+          final     %complexDerivationSet;          #IMPLIED
+          block     %complexDerivationSet;          #IMPLIED
+          mixed (true|false) 'false'
+          %complexTypeAttrs;>
+
+<!-- particleAndAttrs is shorthand for a root type -->
+<!-- mixed is disallowed if simpleContent, overriden if complexContent
+     has one too. -->
+
+<!-- If anyAttribute appears in one or more referenced attributeGroups
+     and/or explicitly, the intersection of the permissions is used -->
+
+<!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %complexContent;
+          mixed (true|false) #IMPLIED
+          id    ID           #IMPLIED
+          %complexContentAttrs;>
+
+<!-- restriction should use the branch defined above, not the simple
+     one from part2; extension should use the full model  -->
+
+<!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %simpleContent;
+          id    ID           #IMPLIED
+          %simpleContentAttrs;>
+
+<!-- restriction should use the simple branch from part2, not the
+     one defined above; extension should have no particle  -->
+
+<!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
+<!ATTLIST %extension;
+          base  %QName;      #REQUIRED
+          id    ID           #IMPLIED
+          %extensionAttrs;>
+
+<!-- an element is declared by either:
+ a name and a type (either nested or referenced via the type attribute)
+ or a ref to an existing element declaration -->
+
+<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
+                     (%unique; | %key; | %keyref;)*)>
+<!-- simpleType or complexType only if no type|ref attribute -->
+<!-- ref not allowed at top level -->
+<!ATTLIST %element;
+            name               %NCName;               #IMPLIED
+            id                 ID                     #IMPLIED
+            ref                %QName;                #IMPLIED
+            type               %QName;                #IMPLIED
+            minOccurs          %nonNegativeInteger;   #IMPLIED
+            maxOccurs          CDATA                  #IMPLIED
+            nillable           %boolean;              #IMPLIED
+            substitutionGroup  %QName;                #IMPLIED
+            abstract           %boolean;              #IMPLIED
+            final              %complexDerivationSet; #IMPLIED
+            block              %blockSet;             #IMPLIED
+            default            CDATA                  #IMPLIED
+            fixed              CDATA                  #IMPLIED
+            form               %formValues;           #IMPLIED
+            %elementAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- In the absence of type AND ref, type defaults to type of
+     substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
+<!-- default and fixed are mutually exclusive -->
+
+<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
+<!ATTLIST %group;
+          name        %NCName;               #IMPLIED
+          ref         %QName;                #IMPLIED
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %groupAttrs;>
+
+<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
+<!ATTLIST %all;
+          minOccurs   (1)                    #IMPLIED
+          maxOccurs   (1)                    #IMPLIED
+          id          ID                     #IMPLIED
+          %allAttrs;>
+
+<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %choice;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %choiceAttrs;>
+
+<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %sequence;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %sequenceAttrs;>
+
+<!-- an anonymous grouping in a model, or
+     a top-level named group definition, or a reference to same -->
+
+<!-- Note that if order is 'all', group is not allowed inside.
+     If order is 'all' THIS group must be alone (or referenced alone) at
+     the top level of a content model -->
+<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
+<!-- Should allow minOccurs=0 inside order='all' . . . -->
+
+<!ELEMENT %any; (%annotation;)?>
+<!ATTLIST %any;
+            namespace       CDATA                  '##any'
+            processContents (skip|lax|strict)      'strict'
+            minOccurs       %nonNegativeInteger;   '1'
+            maxOccurs       CDATA                  '1'
+            id              ID                     #IMPLIED
+            %anyAttrs;>
+
+<!-- namespace is interpreted as follows:
+                  ##any      - - any non-conflicting WFXML at all
+
+                  ##other    - - any non-conflicting WFXML from namespace other
+                                  than targetNamespace
+
+                  ##local    - - any unqualified non-conflicting WFXML/attribute
+                  one or     - - any non-conflicting WFXML from
+                  more URI        the listed namespaces
+                  references
+
+                  ##targetNamespace ##local may appear in the above list,
+                    with the obvious meaning -->
+
+<!ELEMENT %anyAttribute; (%annotation;)?>
+<!ATTLIST %anyAttribute;
+            namespace       CDATA              '##any'
+            processContents (skip|lax|strict)  'strict'
+            id              ID                 #IMPLIED
+            %anyAttributeAttrs;>
+<!-- namespace is interpreted as for 'any' above -->
+
+<!-- simpleType only if no type|ref attribute -->
+<!-- ref not allowed at top level, name iff at top level -->
+<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
+<!ATTLIST %attribute;
+          name      %NCName;      #IMPLIED
+          id        ID            #IMPLIED
+          ref       %QName;       #IMPLIED
+          type      %QName;       #IMPLIED
+          use       (prohibited|optional|required) #IMPLIED
+          default   CDATA         #IMPLIED
+          fixed     CDATA         #IMPLIED
+          form      %formValues;  #IMPLIED
+          %attributeAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- default for use is optional when nested, none otherwise -->
+<!-- default and fixed are mutually exclusive -->
+<!-- type attr and simpleType content are mutually exclusive -->
+
+<!-- an attributeGroup is a named collection of attribute decls, or a
+     reference thereto -->
+<!ELEMENT %attributeGroup; ((%annotation;)?,
+                       (%attribute; | %attributeGroup;)*,
+                       (%anyAttribute;)?) >
+<!ATTLIST %attributeGroup;
+                 name       %NCName;       #IMPLIED
+                 id         ID             #IMPLIED
+                 ref        %QName;        #IMPLIED
+                 %attributeGroupAttrs;>
+
+<!-- ref iff no content, no name.  ref iff not top level -->
+
+<!-- better reference mechanisms -->
+<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %unique;
+          name     %NCName;       #REQUIRED
+         id       ID             #IMPLIED
+         %uniqueAttrs;>
+
+<!ELEMENT %key;    ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %key;
+          name     %NCName;       #REQUIRED
+         id       ID             #IMPLIED
+         %keyAttrs;>
+
+<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %keyref;
+          name     %NCName;       #REQUIRED
+         refer    %QName;        #REQUIRED
+         id       ID             #IMPLIED
+         %keyrefAttrs;>
+
+<!ELEMENT %selector; ((%annotation;)?)>
+<!ATTLIST %selector;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %selectorAttrs;>
+<!ELEMENT %field; ((%annotation;)?)>
+<!ATTLIST %field;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %fieldAttrs;>
+
+<!-- Schema combination mechanisms -->
+<!ELEMENT %include; (%annotation;)?>
+<!ATTLIST %include;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %includeAttrs;>
+
+<!ELEMENT %import; (%annotation;)?>
+<!ATTLIST %import;
+          namespace      %URIref; #IMPLIED
+          schemaLocation %URIref; #IMPLIED
+          id             ID       #IMPLIED
+          %importAttrs;>
+
+<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
+                      %attributeGroup; | %group;)*>
+<!ATTLIST %redefine;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %redefineAttrs;>
+
+<!ELEMENT %notation; (%annotation;)?>
+<!ATTLIST %notation;
+         name        %NCName;    #REQUIRED
+         id          ID          #IMPLIED
+         public      CDATA       #REQUIRED
+         system      %URIref;    #IMPLIED
+         %notationAttrs;>
+
+<!-- Annotation is either application information or documentation -->
+<!-- By having these here they are available for datatypes as well
+     as all the structures elements -->
+
+<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
+<!ATTLIST %annotation; %annotationAttrs;>
+
+<!-- User must define annotation elements in internal subset for this
+     to work -->
+<!ELEMENT %appinfo; ANY>   <!-- too restrictive -->
+<!ATTLIST %appinfo;
+          source     %URIref;      #IMPLIED
+          id         ID         #IMPLIED
+          %appinfoAttrs;>
+<!ELEMENT %documentation; ANY>   <!-- too restrictive -->
+<!ATTLIST %documentation;
+          source     %URIref;   #IMPLIED
+          id         ID         #IMPLIED
+          xml:lang   CDATA      #IMPLIED
+          %documentationAttrs;>
+
+<!NOTATION XMLSchemaStructures PUBLIC
+           'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
+<!NOTATION XML PUBLIC
+           'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >
diff --git a/vmware-tools/vgauth/schemas/XMLSchema.xsd b/vmware-tools/vgauth/schemas/XMLSchema.xsd
new file mode 100644 (file)
index 0000000..0d375ee
--- /dev/null
@@ -0,0 +1,2424 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- XML Schema schema for XML Schemas: Part 1: Structures -->
+<!-- Note this schema is NOT the normative structures schema. -->
+<!-- The prose copy in the structures REC is the normative -->
+<!-- version (which shouldn't differ from this one except for -->
+<!-- this comment and entity expansions, but just in case -->
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd" [
+
+<!-- provide ID type information even for parsers which only read the
+     internal subset -->
+<!ATTLIST xs:schema          id  ID  #IMPLIED>
+<!ATTLIST xs:complexType     id  ID  #IMPLIED>
+<!ATTLIST xs:complexContent  id  ID  #IMPLIED>
+<!ATTLIST xs:simpleContent   id  ID  #IMPLIED>
+<!ATTLIST xs:extension       id  ID  #IMPLIED>
+<!ATTLIST xs:element         id  ID  #IMPLIED>
+<!ATTLIST xs:group           id  ID  #IMPLIED>
+<!ATTLIST xs:all             id  ID  #IMPLIED>
+<!ATTLIST xs:choice          id  ID  #IMPLIED>
+<!ATTLIST xs:sequence        id  ID  #IMPLIED>
+<!ATTLIST xs:any             id  ID  #IMPLIED>
+<!ATTLIST xs:anyAttribute    id  ID  #IMPLIED>
+<!ATTLIST xs:attribute       id  ID  #IMPLIED>
+<!ATTLIST xs:attributeGroup  id  ID  #IMPLIED>
+<!ATTLIST xs:unique          id  ID  #IMPLIED>
+<!ATTLIST xs:key             id  ID  #IMPLIED>
+<!ATTLIST xs:keyref          id  ID  #IMPLIED>
+<!ATTLIST xs:selector        id  ID  #IMPLIED>
+<!ATTLIST xs:field           id  ID  #IMPLIED>
+<!ATTLIST xs:include         id  ID  #IMPLIED>
+<!ATTLIST xs:import          id  ID  #IMPLIED>
+<!ATTLIST xs:redefine        id  ID  #IMPLIED>
+<!ATTLIST xs:notation        id  ID  #IMPLIED>
+<!--
+     keep this schema XML1.0 DTD valid
+  -->
+        <!ENTITY % schemaAttrs 'xmlns:hfp CDATA #IMPLIED'>
+
+        <!ELEMENT hfp:hasFacet EMPTY>
+        <!ATTLIST hfp:hasFacet
+                name NMTOKEN #REQUIRED>
+
+        <!ELEMENT hfp:hasProperty EMPTY>
+        <!ATTLIST hfp:hasProperty
+                name NMTOKEN #REQUIRED
+                value CDATA #REQUIRED>
+<!--
+        Make sure that processors that do not read the external
+        subset will know about the various IDs we declare
+  -->
+        <!ATTLIST xs:simpleType id ID #IMPLIED>
+        <!ATTLIST xs:maxExclusive id ID #IMPLIED>
+        <!ATTLIST xs:minExclusive id ID #IMPLIED>
+        <!ATTLIST xs:maxInclusive id ID #IMPLIED>
+        <!ATTLIST xs:minInclusive id ID #IMPLIED>
+        <!ATTLIST xs:totalDigits id ID #IMPLIED>
+        <!ATTLIST xs:fractionDigits id ID #IMPLIED>
+        <!ATTLIST xs:length id ID #IMPLIED>
+        <!ATTLIST xs:minLength id ID #IMPLIED>
+        <!ATTLIST xs:maxLength id ID #IMPLIED>
+        <!ATTLIST xs:enumeration id ID #IMPLIED>
+        <!ATTLIST xs:pattern id ID #IMPLIED>
+        <!ATTLIST xs:appinfo id ID #IMPLIED>
+        <!ATTLIST xs:documentation id ID #IMPLIED>
+        <!ATTLIST xs:list id ID #IMPLIED>
+        <!ATTLIST xs:union id ID #IMPLIED>
+        ]>
+<xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema" blockDefault="#all" elementFormDefault="qualified" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="EN" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty">
+ <xs:annotation>
+  <xs:documentation>
+    Part 1 version: Id: structures.xsd,v 1.2 2004/01/15 11:34:25 ht Exp
+    Part 2 version: Id: datatypes.xsd,v 1.3 2004/01/23 18:11:13 ht Exp
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/structures.html">
+   The schema corresponding to this document is normative,
+   with respect to the syntactic constraints it expresses in the
+   XML Schema language.  The documentation (within &lt;documentation&gt; elements)
+   below, is not normative, but rather highlights important aspects of
+   the W3C Recommendation of which this is a part</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+   <xs:documentation>
+   The simpleType element and all of its members are defined
+      towards the end of this schema document</xs:documentation>
+ </xs:annotation>
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd">
+   <xs:annotation>
+     <xs:documentation>
+       Get access to the xml: attribute groups for xml:lang
+       as declared on 'schema' and 'documentation' below
+     </xs:documentation>
+   </xs:annotation>
+ </xs:import>
+
+ <xs:complexType name="openAttrs">
+   <xs:annotation>
+     <xs:documentation>
+       This type is extended by almost all schema types
+       to allow attributes from other namespaces to be
+       added to user schemas.
+     </xs:documentation>
+   </xs:annotation>
+   <xs:complexContent>
+     <xs:restriction base="xs:anyType">
+       <xs:anyAttribute namespace="##other" processContents="lax"/>
+     </xs:restriction>
+   </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="annotated">
+   <xs:annotation>
+     <xs:documentation>
+       This type is extended by all types which allow annotation
+       other than &lt;schema&gt; itself
+     </xs:documentation>
+   </xs:annotation>
+   <xs:complexContent>
+     <xs:extension base="xs:openAttrs">
+       <xs:sequence>
+         <xs:element ref="xs:annotation" minOccurs="0"/>
+       </xs:sequence>
+       <xs:attribute name="id" type="xs:ID"/>
+     </xs:extension>
+   </xs:complexContent>
+ </xs:complexType>
+
+ <xs:group name="schemaTop">
+  <xs:annotation>
+   <xs:documentation>
+   This group is for the
+   elements which occur freely at the top level of schemas.
+   All of their types are based on the "annotated" type by extension.</xs:documentation>
+  </xs:annotation>
+  <xs:choice>
+   <xs:group ref="xs:redefinable"/>
+   <xs:element ref="xs:element"/>
+   <xs:element ref="xs:attribute"/>
+   <xs:element ref="xs:notation"/>
+  </xs:choice>
+ </xs:group>
+
+ <xs:group name="redefinable">
+  <xs:annotation>
+   <xs:documentation>
+   This group is for the
+   elements which can self-redefine (see &lt;redefine&gt; below).</xs:documentation>
+  </xs:annotation>
+  <xs:choice>
+   <xs:element ref="xs:simpleType"/>
+   <xs:element ref="xs:complexType"/>
+   <xs:element ref="xs:group"/>
+   <xs:element ref="xs:attributeGroup"/>
+  </xs:choice>
+ </xs:group>
+
+ <xs:simpleType name="formChoice">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+  </xs:annotation>
+  <xs:restriction base="xs:NMTOKEN">
+   <xs:enumeration value="qualified"/>
+   <xs:enumeration value="unqualified"/>
+  </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="reducedDerivationControl">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+  </xs:annotation>
+  <xs:restriction base="xs:derivationControl">
+   <xs:enumeration value="extension"/>
+   <xs:enumeration value="restriction"/>
+  </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="derivationSet">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+   <xs:documentation>
+   #all or (possibly empty) subset of {extension, restriction}</xs:documentation>
+  </xs:annotation>
+  <xs:union>
+   <xs:simpleType>
+    <xs:restriction base="xs:token">
+     <xs:enumeration value="#all"/>
+    </xs:restriction>
+   </xs:simpleType>
+   <xs:simpleType>
+    <xs:list itemType="xs:reducedDerivationControl"/>
+   </xs:simpleType>
+  </xs:union>
+ </xs:simpleType>
+
+ <xs:simpleType name="typeDerivationControl">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+  </xs:annotation>
+  <xs:restriction base="xs:derivationControl">
+   <xs:enumeration value="extension"/>
+   <xs:enumeration value="restriction"/>
+   <xs:enumeration value="list"/>
+   <xs:enumeration value="union"/>
+  </xs:restriction>
+ </xs:simpleType>
+
+  <xs:simpleType name="fullDerivationSet">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+   <xs:documentation>
+   #all or (possibly empty) subset of {extension, restriction, list, union}</xs:documentation>
+  </xs:annotation>
+  <xs:union>
+   <xs:simpleType>
+    <xs:restriction base="xs:token">
+     <xs:enumeration value="#all"/>
+    </xs:restriction>
+   </xs:simpleType>
+   <xs:simpleType>
+    <xs:list itemType="xs:typeDerivationControl"/>
+   </xs:simpleType>
+  </xs:union>
+ </xs:simpleType>
+
+ <xs:element name="schema" id="schema">
+  <xs:annotation>
+    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-schema"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:openAttrs">
+     <xs:sequence>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+       <xs:element ref="xs:include"/>
+       <xs:element ref="xs:import"/>
+       <xs:element ref="xs:redefine"/>
+       <xs:element ref="xs:annotation"/>
+      </xs:choice>
+      <xs:sequence minOccurs="0" maxOccurs="unbounded">
+       <xs:group ref="xs:schemaTop"/>
+       <xs:element ref="xs:annotation" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+     </xs:sequence>
+     <xs:attribute name="targetNamespace" type="xs:anyURI"/>
+     <xs:attribute name="version" type="xs:token"/>
+     <xs:attribute name="finalDefault" type="xs:fullDerivationSet" use="optional" default=""/>
+     <xs:attribute name="blockDefault" type="xs:blockSet" use="optional" default=""/>
+     <xs:attribute name="attributeFormDefault" type="xs:formChoice" use="optional" default="unqualified"/>
+     <xs:attribute name="elementFormDefault" type="xs:formChoice" use="optional" default="unqualified"/>
+     <xs:attribute name="id" type="xs:ID"/>
+     <xs:attribute ref="xml:lang"/>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+
+  <xs:key name="element">
+   <xs:selector xpath="xs:element"/>
+   <xs:field xpath="@name"/>
+  </xs:key>
+
+  <xs:key name="attribute">
+   <xs:selector xpath="xs:attribute"/>
+   <xs:field xpath="@name"/>
+  </xs:key>
+
+  <xs:key name="type">
+   <xs:selector xpath="xs:complexType|xs:simpleType"/>
+   <xs:field xpath="@name"/>
+  </xs:key>
+
+  <xs:key name="group">
+   <xs:selector xpath="xs:group"/>
+   <xs:field xpath="@name"/>
+  </xs:key>
+
+  <xs:key name="attributeGroup">
+   <xs:selector xpath="xs:attributeGroup"/>
+   <xs:field xpath="@name"/>
+  </xs:key>
+
+  <xs:key name="notation">
+   <xs:selector xpath="xs:notation"/>
+   <xs:field xpath="@name"/>
+  </xs:key>
+
+  <xs:key name="identityConstraint">
+   <xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/>
+   <xs:field xpath="@name"/>
+  </xs:key>
+
+ </xs:element>
+
+ <xs:simpleType name="allNNI">
+  <xs:annotation><xs:documentation>
+   for maxOccurs</xs:documentation></xs:annotation>
+  <xs:union memberTypes="xs:nonNegativeInteger">
+   <xs:simpleType>
+    <xs:restriction base="xs:NMTOKEN">
+     <xs:enumeration value="unbounded"/>
+    </xs:restriction>
+   </xs:simpleType>
+  </xs:union>
+ </xs:simpleType>
+
+ <xs:attributeGroup name="occurs">
+  <xs:annotation><xs:documentation>
+   for all particles</xs:documentation></xs:annotation>
+  <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/>
+  <xs:attribute name="maxOccurs" type="xs:allNNI" use="optional" default="1"/>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="defRef">
+  <xs:annotation><xs:documentation>
+   for element, group and attributeGroup,
+   which both define and reference</xs:documentation></xs:annotation>
+  <xs:attribute name="name" type="xs:NCName"/>
+  <xs:attribute name="ref" type="xs:QName"/>
+ </xs:attributeGroup>
+
+ <xs:group name="typeDefParticle">
+  <xs:annotation>
+    <xs:documentation>
+   'complexType' uses this</xs:documentation></xs:annotation>
+  <xs:choice>
+   <xs:element name="group" type="xs:groupRef"/>
+   <xs:element ref="xs:all"/>
+   <xs:element ref="xs:choice"/>
+   <xs:element ref="xs:sequence"/>
+  </xs:choice>
+ </xs:group>
+
+
+
+ <xs:group name="nestedParticle">
+  <xs:choice>
+   <xs:element name="element" type="xs:localElement"/>
+   <xs:element name="group" type="xs:groupRef"/>
+   <xs:element ref="xs:choice"/>
+   <xs:element ref="xs:sequence"/>
+   <xs:element ref="xs:any"/>
+  </xs:choice>
+ </xs:group>
+
+ <xs:group name="particle">
+  <xs:choice>
+   <xs:element name="element" type="xs:localElement"/>
+   <xs:element name="group" type="xs:groupRef"/>
+   <xs:element ref="xs:all"/>
+   <xs:element ref="xs:choice"/>
+   <xs:element ref="xs:sequence"/>
+   <xs:element ref="xs:any"/>
+  </xs:choice>
+ </xs:group>
+
+ <xs:complexType name="attribute">
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:sequence>
+     <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
+    </xs:sequence>
+    <xs:attributeGroup ref="xs:defRef"/>
+    <xs:attribute name="type" type="xs:QName"/>
+    <xs:attribute name="use" use="optional" default="optional">
+     <xs:simpleType>
+      <xs:restriction base="xs:NMTOKEN">
+       <xs:enumeration value="prohibited"/>
+       <xs:enumeration value="optional"/>
+       <xs:enumeration value="required"/>
+      </xs:restriction>
+     </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="default" type="xs:string"/>
+    <xs:attribute name="fixed" type="xs:string"/>
+    <xs:attribute name="form" type="xs:formChoice"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="topLevelAttribute">
+  <xs:complexContent>
+   <xs:restriction base="xs:attribute">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
+    </xs:sequence>
+    <xs:attribute name="ref" use="prohibited"/>
+    <xs:attribute name="form" use="prohibited"/>
+    <xs:attribute name="use" use="prohibited"/>
+    <xs:attribute name="name" use="required" type="xs:NCName"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:group name="attrDecls">
+  <xs:sequence>
+   <xs:choice minOccurs="0" maxOccurs="unbounded">
+    <xs:element name="attribute" type="xs:attribute"/>
+    <xs:element name="attributeGroup" type="xs:attributeGroupRef"/>
+   </xs:choice>
+   <xs:element ref="xs:anyAttribute" minOccurs="0"/>
+  </xs:sequence>
+ </xs:group>
+
+ <xs:element name="anyAttribute" type="xs:wildcard" id="anyAttribute">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-anyAttribute"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:group name="complexTypeModel">
+  <xs:choice>
+      <xs:element ref="xs:simpleContent"/>
+      <xs:element ref="xs:complexContent"/>
+      <xs:sequence>
+       <xs:annotation>
+        <xs:documentation>
+   This branch is short for
+   &lt;complexContent&gt;
+   &lt;restriction base="xs:anyType"&gt;
+   ...
+   &lt;/restriction&gt;
+   &lt;/complexContent&gt;</xs:documentation>
+       </xs:annotation>
+       <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
+       <xs:group ref="xs:attrDecls"/>
+      </xs:sequence>
+  </xs:choice>
+ </xs:group>
+
+ <xs:complexType name="complexType" abstract="true">
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:group ref="xs:complexTypeModel"/>
+    <xs:attribute name="name" type="xs:NCName">
+     <xs:annotation>
+      <xs:documentation>
+      Will be restricted to required or forbidden</xs:documentation>
+     </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="mixed" type="xs:boolean" use="optional" default="false">
+     <xs:annotation>
+      <xs:documentation>
+      Not allowed if simpleContent child is chosen.
+      May be overriden by setting on complexContent child.</xs:documentation>
+    </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
+    <xs:attribute name="final" type="xs:derivationSet"/>
+    <xs:attribute name="block" type="xs:derivationSet"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="topLevelComplexType">
+  <xs:complexContent>
+   <xs:restriction base="xs:complexType">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:group ref="xs:complexTypeModel"/>
+    </xs:sequence>
+    <xs:attribute name="name" type="xs:NCName" use="required"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="localComplexType">
+  <xs:complexContent>
+   <xs:restriction base="xs:complexType">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:group ref="xs:complexTypeModel"/>
+    </xs:sequence>
+    <xs:attribute name="name" use="prohibited"/>
+    <xs:attribute name="abstract" use="prohibited"/>
+    <xs:attribute name="final" use="prohibited"/>
+    <xs:attribute name="block" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="restrictionType">
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:sequence>
+     <xs:choice minOccurs="0">
+      <xs:group ref="xs:typeDefParticle"/>
+      <xs:group ref="xs:simpleRestrictionModel"/>
+     </xs:choice>
+     <xs:group ref="xs:attrDecls"/>
+    </xs:sequence>
+    <xs:attribute name="base" type="xs:QName" use="required"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="complexRestrictionType">
+  <xs:complexContent>
+   <xs:restriction base="xs:restrictionType">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:choice minOccurs="0">
+      <xs:annotation>
+       <xs:documentation>This choice is added simply to
+                   make this a valid restriction per the REC</xs:documentation>
+      </xs:annotation>
+      <xs:group ref="xs:typeDefParticle"/>
+     </xs:choice>
+     <xs:group ref="xs:attrDecls"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="extensionType">
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:sequence>
+     <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
+     <xs:group ref="xs:attrDecls"/>
+    </xs:sequence>
+    <xs:attribute name="base" type="xs:QName" use="required"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="complexContent" id="complexContent">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexContent"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:annotated">
+     <xs:choice>
+      <xs:element name="restriction" type="xs:complexRestrictionType"/>
+      <xs:element name="extension" type="xs:extensionType"/>
+     </xs:choice>
+     <xs:attribute name="mixed" type="xs:boolean">
+      <xs:annotation>
+       <xs:documentation>
+       Overrides any setting on complexType parent.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="simpleRestrictionType">
+  <xs:complexContent>
+   <xs:restriction base="xs:restrictionType">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:choice minOccurs="0">
+      <xs:annotation>
+       <xs:documentation>This choice is added simply to
+                   make this a valid restriction per the REC</xs:documentation>
+      </xs:annotation>
+      <xs:group ref="xs:simpleRestrictionModel"/>
+     </xs:choice>
+     <xs:group ref="xs:attrDecls"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="simpleExtensionType">
+  <xs:complexContent>
+   <xs:restriction base="xs:extensionType">
+    <xs:sequence>
+     <xs:annotation>
+      <xs:documentation>
+      No typeDefParticle group reference</xs:documentation>
+     </xs:annotation>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:group ref="xs:attrDecls"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="simpleContent" id="simpleContent">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-simpleContent"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:annotated">
+     <xs:choice>
+      <xs:element name="restriction" type="xs:simpleRestrictionType"/>
+      <xs:element name="extension" type="xs:simpleExtensionType"/>
+     </xs:choice>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="complexType" type="xs:topLevelComplexType" id="complexType">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexType"/>
+  </xs:annotation>
+ </xs:element>
+
+
+  <xs:simpleType name="blockSet">
+   <xs:annotation>
+    <xs:documentation>
+    A utility type, not for public use</xs:documentation>
+    <xs:documentation>
+    #all or (possibly empty) subset of {substitution, extension,
+    restriction}</xs:documentation>
+   </xs:annotation>
+   <xs:union>
+    <xs:simpleType>
+     <xs:restriction base="xs:token">
+      <xs:enumeration value="#all"/>
+     </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType>
+     <xs:list>
+      <xs:simpleType>
+       <xs:restriction base="xs:derivationControl">
+        <xs:enumeration value="extension"/>
+        <xs:enumeration value="restriction"/>
+        <xs:enumeration value="substitution"/>
+       </xs:restriction>
+      </xs:simpleType>
+     </xs:list>
+    </xs:simpleType>
+   </xs:union>
+  </xs:simpleType>
+
+ <xs:complexType name="element" abstract="true">
+  <xs:annotation>
+   <xs:documentation>
+   The element element can be used either
+   at the top level to define an element-type binding globally,
+   or within a content model to either reference a globally-defined
+   element or type or declare an element-type binding locally.
+   The ref form is not allowed at the top level.</xs:documentation>
+  </xs:annotation>
+
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:sequence>
+     <xs:choice minOccurs="0">
+      <xs:element name="simpleType" type="xs:localSimpleType"/>
+      <xs:element name="complexType" type="xs:localComplexType"/>
+     </xs:choice>
+     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attributeGroup ref="xs:defRef"/>
+    <xs:attribute name="type" type="xs:QName"/>
+    <xs:attribute name="substitutionGroup" type="xs:QName"/>
+    <xs:attributeGroup ref="xs:occurs"/>
+    <xs:attribute name="default" type="xs:string"/>
+    <xs:attribute name="fixed" type="xs:string"/>
+    <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/>
+    <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
+    <xs:attribute name="final" type="xs:derivationSet"/>
+    <xs:attribute name="block" type="xs:blockSet"/>
+    <xs:attribute name="form" type="xs:formChoice"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="topLevelElement">
+  <xs:complexContent>
+   <xs:restriction base="xs:element">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:choice minOccurs="0">
+      <xs:element name="simpleType" type="xs:localSimpleType"/>
+      <xs:element name="complexType" type="xs:localComplexType"/>
+     </xs:choice>
+     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="ref" use="prohibited"/>
+    <xs:attribute name="form" use="prohibited"/>
+    <xs:attribute name="minOccurs" use="prohibited"/>
+    <xs:attribute name="maxOccurs" use="prohibited"/>
+    <xs:attribute name="name" use="required" type="xs:NCName"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="localElement">
+  <xs:complexContent>
+   <xs:restriction base="xs:element">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:choice minOccurs="0">
+      <xs:element name="simpleType" type="xs:localSimpleType"/>
+      <xs:element name="complexType" type="xs:localComplexType"/>
+     </xs:choice>
+     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="substitutionGroup" use="prohibited"/>
+    <xs:attribute name="final" use="prohibited"/>
+    <xs:attribute name="abstract" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="element" type="xs:topLevelElement" id="element">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-element"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:complexType name="group" abstract="true">
+  <xs:annotation>
+   <xs:documentation>
+   group type for explicit groups, named top-level groups and
+   group references</xs:documentation>
+  </xs:annotation>
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:group ref="xs:particle" minOccurs="0" maxOccurs="unbounded"/>
+    <xs:attributeGroup ref="xs:defRef"/>
+    <xs:attributeGroup ref="xs:occurs"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="realGroup">
+  <xs:complexContent>
+   <xs:restriction base="xs:group">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:choice minOccurs="0" maxOccurs="1">
+      <xs:element ref="xs:all"/>
+      <xs:element ref="xs:choice"/>
+      <xs:element ref="xs:sequence"/>
+     </xs:choice>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="namedGroup">
+  <xs:complexContent>
+   <xs:restriction base="xs:realGroup">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:choice minOccurs="1" maxOccurs="1">
+      <xs:element name="all">
+       <xs:complexType>
+        <xs:complexContent>
+         <xs:restriction base="xs:all">
+          <xs:group ref="xs:allModel"/>
+          <xs:attribute name="minOccurs" use="prohibited"/>
+          <xs:attribute name="maxOccurs" use="prohibited"/>
+          <xs:anyAttribute namespace="##other" processContents="lax"/>
+         </xs:restriction>
+        </xs:complexContent>
+       </xs:complexType>
+      </xs:element>
+      <xs:element name="choice" type="xs:simpleExplicitGroup"/>
+      <xs:element name="sequence" type="xs:simpleExplicitGroup"/>
+     </xs:choice>
+    </xs:sequence>
+    <xs:attribute name="name" use="required" type="xs:NCName"/>
+    <xs:attribute name="ref" use="prohibited"/>
+    <xs:attribute name="minOccurs" use="prohibited"/>
+    <xs:attribute name="maxOccurs" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="groupRef">
+  <xs:complexContent>
+   <xs:restriction base="xs:realGroup">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="ref" use="required" type="xs:QName"/>
+    <xs:attribute name="name" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="explicitGroup">
+  <xs:annotation>
+   <xs:documentation>
+   group type for the three kinds of group</xs:documentation>
+  </xs:annotation>
+  <xs:complexContent>
+   <xs:restriction base="xs:group">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="name" type="xs:NCName" use="prohibited"/>
+    <xs:attribute name="ref" type="xs:QName" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="simpleExplicitGroup">
+  <xs:complexContent>
+   <xs:restriction base="xs:explicitGroup">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="minOccurs" use="prohibited"/>
+    <xs:attribute name="maxOccurs" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:group name="allModel">
+  <xs:sequence>
+      <xs:element ref="xs:annotation" minOccurs="0"/>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+       <xs:annotation>
+        <xs:documentation>This choice with min/max is here to
+                          avoid a pblm with the Elt:All/Choice/Seq
+                          Particle derivation constraint</xs:documentation>
+       </xs:annotation>
+       <xs:element name="element" type="xs:narrowMaxMin"/>
+      </xs:choice>
+     </xs:sequence>
+ </xs:group>
+
+
+ <xs:complexType name="narrowMaxMin">
+  <xs:annotation>
+   <xs:documentation>restricted max/min</xs:documentation>
+  </xs:annotation>
+  <xs:complexContent>
+   <xs:restriction base="xs:localElement">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:choice minOccurs="0">
+      <xs:element name="simpleType" type="xs:localSimpleType"/>
+      <xs:element name="complexType" type="xs:localComplexType"/>
+     </xs:choice>
+     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="minOccurs" use="optional" default="1">
+     <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+       <xs:enumeration value="0"/>
+       <xs:enumeration value="1"/>
+      </xs:restriction>
+     </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="maxOccurs" use="optional" default="1">
+     <xs:simpleType>
+      <xs:restriction base="xs:allNNI">
+       <xs:enumeration value="0"/>
+       <xs:enumeration value="1"/>
+      </xs:restriction>
+     </xs:simpleType>
+    </xs:attribute>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+  <xs:complexType name="all">
+   <xs:annotation>
+    <xs:documentation>
+   Only elements allowed inside</xs:documentation>
+   </xs:annotation>
+   <xs:complexContent>
+    <xs:restriction base="xs:explicitGroup">
+     <xs:group ref="xs:allModel"/>
+     <xs:attribute name="minOccurs" use="optional" default="1">
+      <xs:simpleType>
+       <xs:restriction base="xs:nonNegativeInteger">
+        <xs:enumeration value="0"/>
+        <xs:enumeration value="1"/>
+       </xs:restriction>
+      </xs:simpleType>
+     </xs:attribute>
+     <xs:attribute name="maxOccurs" use="optional" default="1">
+      <xs:simpleType>
+       <xs:restriction base="xs:allNNI">
+        <xs:enumeration value="1"/>
+       </xs:restriction>
+      </xs:simpleType>
+     </xs:attribute>
+     <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:restriction>
+   </xs:complexContent>
+  </xs:complexType>
+
+ <xs:element name="all" id="all" type="xs:all">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:element name="choice" type="xs:explicitGroup" id="choice">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-choice"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:element name="sequence" type="xs:explicitGroup" id="sequence">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-sequence"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:element name="group" type="xs:namedGroup" id="group">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-group"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:complexType name="wildcard">
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:attribute name="namespace" type="xs:namespaceList" use="optional" default="##any"/>
+    <xs:attribute name="processContents" use="optional" default="strict">
+     <xs:simpleType>
+      <xs:restriction base="xs:NMTOKEN">
+       <xs:enumeration value="skip"/>
+       <xs:enumeration value="lax"/>
+       <xs:enumeration value="strict"/>
+      </xs:restriction>
+     </xs:simpleType>
+    </xs:attribute>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="any" id="any">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-any"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:wildcard">
+     <xs:attributeGroup ref="xs:occurs"/>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+  <xs:annotation>
+   <xs:documentation>
+   simple type for the value of the 'namespace' attr of
+   'any' and 'anyAttribute'</xs:documentation>
+  </xs:annotation>
+  <xs:annotation>
+   <xs:documentation>
+   Value is
+              ##any      - - any non-conflicting WFXML/attribute at all
+
+              ##other    - - any non-conflicting WFXML/attribute from
+                              namespace other than targetNS
+
+              ##local    - - any unqualified non-conflicting WFXML/attribute
+
+              one or     - - any non-conflicting WFXML/attribute from
+              more URI        the listed namespaces
+              references
+              (space separated)
+
+    ##targetNamespace or ##local may appear in the above list, to
+        refer to the targetNamespace of the enclosing
+        schema or an absent targetNamespace respectively</xs:documentation>
+  </xs:annotation>
+
+ <xs:simpleType name="namespaceList">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+  </xs:annotation>
+  <xs:union>
+   <xs:simpleType>
+    <xs:restriction base="xs:token">
+     <xs:enumeration value="##any"/>
+     <xs:enumeration value="##other"/>
+    </xs:restriction>
+   </xs:simpleType>
+   <xs:simpleType>
+    <xs:list>
+     <xs:simpleType>
+      <xs:union memberTypes="xs:anyURI">
+       <xs:simpleType>
+        <xs:restriction base="xs:token">
+         <xs:enumeration value="##targetNamespace"/>
+         <xs:enumeration value="##local"/>
+        </xs:restriction>
+       </xs:simpleType>
+      </xs:union>
+     </xs:simpleType>
+    </xs:list>
+   </xs:simpleType>
+  </xs:union>
+ </xs:simpleType>
+
+ <xs:element name="attribute" type="xs:topLevelAttribute" id="attribute">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attribute"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:complexType name="attributeGroup" abstract="true">
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:group ref="xs:attrDecls"/>
+    <xs:attributeGroup ref="xs:defRef"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="namedAttributeGroup">
+  <xs:complexContent>
+   <xs:restriction base="xs:attributeGroup">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+     <xs:group ref="xs:attrDecls"/>
+    </xs:sequence>
+    <xs:attribute name="name" use="required" type="xs:NCName"/>
+    <xs:attribute name="ref" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="attributeGroupRef">
+  <xs:complexContent>
+   <xs:restriction base="xs:attributeGroup">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="ref" use="required" type="xs:QName"/>
+    <xs:attribute name="name" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="attributeGroup" type="xs:namedAttributeGroup" id="attributeGroup">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup"/>
+  </xs:annotation>
+ </xs:element>
+
+ <xs:element name="include" id="include">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-include"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:annotated">
+     <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="redefine" id="redefine">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-redefine"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:openAttrs">
+     <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element ref="xs:annotation"/>
+      <xs:group ref="xs:redefinable"/>
+     </xs:choice>
+     <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
+     <xs:attribute name="id" type="xs:ID"/>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="import" id="import">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-import"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:annotated">
+     <xs:attribute name="namespace" type="xs:anyURI"/>
+     <xs:attribute name="schemaLocation" type="xs:anyURI"/>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="selector" id="selector">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-selector"/>
+  </xs:annotation>
+  <xs:complexType>
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+     <xs:attribute name="xpath" use="required">
+      <xs:simpleType>
+       <xs:annotation>
+        <xs:documentation>A subset of XPath expressions for use
+in selectors</xs:documentation>
+        <xs:documentation>A utility type, not for public
+use</xs:documentation>
+       </xs:annotation>
+       <xs:restriction base="xs:token">
+        <xs:annotation>
+         <xs:documentation>The following pattern is intended to allow XPath
+                           expressions per the following EBNF:
+          Selector    ::=    Path ( '|' Path )*
+          Path    ::=    ('.//')? Step ( '/' Step )*
+          Step    ::=    '.' | NameTest
+          NameTest    ::=    QName | '*' | NCName ':' '*'
+                           child:: is also allowed
+         </xs:documentation>
+        </xs:annotation>
+        <xs:pattern value="(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*">
+        </xs:pattern>
+       </xs:restriction>
+      </xs:simpleType>
+     </xs:attribute>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="field" id="field">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-field"/>
+  </xs:annotation>
+  <xs:complexType>
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+     <xs:attribute name="xpath" use="required">
+      <xs:simpleType>
+       <xs:annotation>
+        <xs:documentation>A subset of XPath expressions for use
+in fields</xs:documentation>
+        <xs:documentation>A utility type, not for public
+use</xs:documentation>
+       </xs:annotation>
+       <xs:restriction base="xs:token">
+        <xs:annotation>
+         <xs:documentation>The following pattern is intended to allow XPath
+                           expressions per the same EBNF as for selector,
+                           with the following change:
+          Path    ::=    ('.//')? ( Step '/' )* ( Step | '@' NameTest )
+         </xs:documentation>
+        </xs:annotation>
+        <xs:pattern value="(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))(\|(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*)))))*">
+        </xs:pattern>
+       </xs:restriction>
+      </xs:simpleType>
+     </xs:attribute>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="keybase">
+  <xs:complexContent>
+   <xs:extension base="xs:annotated">
+    <xs:sequence>
+     <xs:element ref="xs:selector"/>
+     <xs:element ref="xs:field" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="name" type="xs:NCName" use="required"/>
+   </xs:extension>
+  </xs:complexContent>
+ </xs:complexType>
+
+ <xs:group name="identityConstraint">
+  <xs:annotation>
+   <xs:documentation>The three kinds of identity constraints, all with
+                     type of or derived from 'keybase'.
+   </xs:documentation>
+  </xs:annotation>
+  <xs:choice>
+   <xs:element ref="xs:unique"/>
+   <xs:element ref="xs:key"/>
+   <xs:element ref="xs:keyref"/>
+  </xs:choice>
+ </xs:group>
+
+ <xs:element name="unique" type="xs:keybase" id="unique">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-unique"/>
+  </xs:annotation>
+ </xs:element>
+ <xs:element name="key" type="xs:keybase" id="key">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-key"/>
+  </xs:annotation>
+ </xs:element>
+ <xs:element name="keyref" id="keyref">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-keyref"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:keybase">
+     <xs:attribute name="refer" type="xs:QName" use="required"/>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="notation" id="notation">
+  <xs:annotation>
+   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-notation"/>
+  </xs:annotation>
+  <xs:complexType>
+   <xs:complexContent>
+    <xs:extension base="xs:annotated">
+     <xs:attribute name="name" type="xs:NCName" use="required"/>
+     <xs:attribute name="public" type="xs:public"/>
+     <xs:attribute name="system" type="xs:anyURI"/>
+    </xs:extension>
+   </xs:complexContent>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:simpleType name="public">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+   <xs:documentation>
+   A public identifier, per ISO 8879</xs:documentation>
+  </xs:annotation>
+  <xs:restriction base="xs:token"/>
+ </xs:simpleType>
+
+ <xs:element name="appinfo" id="appinfo">
+   <xs:annotation>
+     <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-appinfo"/>
+   </xs:annotation>
+   <xs:complexType mixed="true">
+    <xs:sequence minOccurs="0" maxOccurs="unbounded">
+     <xs:any processContents="lax"/>
+    </xs:sequence>
+    <xs:attribute name="source" type="xs:anyURI"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="documentation" id="documentation">
+   <xs:annotation>
+     <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-documentation"/>
+   </xs:annotation>
+   <xs:complexType mixed="true">
+    <xs:sequence minOccurs="0" maxOccurs="unbounded">
+     <xs:any processContents="lax"/>
+    </xs:sequence>
+    <xs:attribute name="source" type="xs:anyURI"/>
+    <xs:attribute ref="xml:lang"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="annotation" id="annotation">
+   <xs:annotation>
+     <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-annotation"/>
+   </xs:annotation>
+   <xs:complexType>
+    <xs:complexContent>
+     <xs:extension base="xs:openAttrs">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+       <xs:element ref="xs:appinfo"/>
+       <xs:element ref="xs:documentation"/>
+      </xs:choice>
+      <xs:attribute name="id" type="xs:ID"/>
+     </xs:extension>
+    </xs:complexContent>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+  <xs:documentation>
+   notations for use within XML Schema schemas</xs:documentation>
+ </xs:annotation>
+
+ <xs:notation name="XMLSchemaStructures" public="structures" system="http://www.w3.org/2000/08/XMLSchema.xsd"/>
+ <xs:notation name="XML" public="REC-xml-19980210" system="http://www.w3.org/TR/1998/REC-xml-19980210"/>
+
+ <xs:complexType name="anyType" mixed="true">
+  <xs:annotation>
+   <xs:documentation>
+   Not the real urType, but as close an approximation as we can
+   get in the XML representation</xs:documentation>
+  </xs:annotation>
+  <xs:sequence>
+   <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+  </xs:sequence>
+  <xs:anyAttribute processContents="lax"/>
+ </xs:complexType>
+
+  <xs:annotation>
+    <xs:documentation>
+      First the built-in primitive datatypes.  These definitions are for
+      information only, the real built-in definitions are magic.
+    </xs:documentation>
+
+    <xs:documentation>
+      For each built-in datatype in this schema (both primitive and
+      derived) can be uniquely addressed via a URI constructed
+      as follows:
+        1) the base URI is the URI of the XML Schema namespace
+        2) the fragment identifier is the name of the datatype
+
+      For example, to address the int datatype, the URI is:
+
+        http://www.w3.org/2001/XMLSchema#int
+
+      Additionally, each facet definition element can be uniquely
+      addressed via a URI constructed as follows:
+        1) the base URI is the URI of the XML Schema namespace
+        2) the fragment identifier is the name of the facet
+
+      For example, to address the maxInclusive facet, the URI is:
+
+        http://www.w3.org/2001/XMLSchema#maxInclusive
+
+      Additionally, each facet usage in a built-in datatype definition
+      can be uniquely addressed via a URI constructed as follows:
+        1) the base URI is the URI of the XML Schema namespace
+        2) the fragment identifier is the name of the datatype, followed
+           by a period (".") followed by the name of the facet
+
+      For example, to address the usage of the maxInclusive facet in
+      the definition of int, the URI is:
+
+        http://www.w3.org/2001/XMLSchema#int.maxInclusive
+
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:simpleType name="string" id="string">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#string"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="preserve" id="string.preserve"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="boolean" id="boolean">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="finite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#boolean"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="boolean.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="float" id="float">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="total"/>
+        <hfp:hasProperty name="bounded" value="true"/>
+        <hfp:hasProperty name="cardinality" value="finite"/>
+        <hfp:hasProperty name="numeric" value="true"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#float"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="float.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="double" id="double">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="total"/>
+        <hfp:hasProperty name="bounded" value="true"/>
+        <hfp:hasProperty name="cardinality" value="finite"/>
+        <hfp:hasProperty name="numeric" value="true"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#double"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="double.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="decimal" id="decimal">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="totalDigits"/>
+        <hfp:hasFacet name="fractionDigits"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="total"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="true"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#decimal"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="decimal.whiteSpace"/>
+    </xs:restriction>
+   </xs:simpleType>
+
+   <xs:simpleType name="duration" id="duration">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#duration"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="duration.whiteSpace"/>
+    </xs:restriction>
+   </xs:simpleType>
+
+ <xs:simpleType name="dateTime" id="dateTime">
+    <xs:annotation>
+    <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#dateTime"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="dateTime.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="time" id="time">
+    <xs:annotation>
+    <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#time"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="time.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="date" id="date">
+   <xs:annotation>
+    <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#date"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="date.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="gYearMonth" id="gYearMonth">
+   <xs:annotation>
+    <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#gYearMonth"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="gYearMonth.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="gYear" id="gYear">
+    <xs:annotation>
+    <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#gYear"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="gYear.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+ <xs:simpleType name="gMonthDay" id="gMonthDay">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+       <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#gMonthDay"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+         <xs:whiteSpace value="collapse" fixed="true" id="gMonthDay.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="gDay" id="gDay">
+    <xs:annotation>
+  <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#gDay"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+         <xs:whiteSpace value="collapse" fixed="true" id="gDay.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+ <xs:simpleType name="gMonth" id="gMonth">
+    <xs:annotation>
+  <xs:appinfo>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="maxInclusive"/>
+        <hfp:hasFacet name="maxExclusive"/>
+        <hfp:hasFacet name="minInclusive"/>
+        <hfp:hasFacet name="minExclusive"/>
+        <hfp:hasProperty name="ordered" value="partial"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#gMonth"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+         <xs:whiteSpace value="collapse" fixed="true" id="gMonth.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+   <xs:simpleType name="hexBinary" id="hexBinary">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#binary"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="hexBinary.whiteSpace"/>
+    </xs:restriction>
+   </xs:simpleType>
+
+ <xs:simpleType name="base64Binary" id="base64Binary">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#base64Binary"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="base64Binary.whiteSpace"/>
+    </xs:restriction>
+   </xs:simpleType>
+
+   <xs:simpleType name="anyURI" id="anyURI">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#anyURI"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="anyURI.whiteSpace"/>
+    </xs:restriction>
+   </xs:simpleType>
+
+  <xs:simpleType name="QName" id="QName">
+    <xs:annotation>
+        <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#QName"/>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="QName.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+   <xs:simpleType name="NOTATION" id="NOTATION">
+    <xs:annotation>
+        <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#NOTATION"/>
+      <xs:documentation>
+        NOTATION cannot be used directly in a schema; rather a type
+        must be derived from it by specifying at least one enumeration
+        facet whose value is the name of a NOTATION declared in the
+        schema.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:anySimpleType">
+      <xs:whiteSpace value="collapse" fixed="true" id="NOTATION.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:annotation>
+    <xs:documentation>
+      Now the derived primitive types
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:simpleType name="normalizedString" id="normalizedString">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#normalizedString"/>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:whiteSpace value="replace" id="normalizedString.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="token" id="token">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#token"/>
+    </xs:annotation>
+    <xs:restriction base="xs:normalizedString">
+      <xs:whiteSpace value="collapse" id="token.whiteSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="language" id="language">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#language"/>
+    </xs:annotation>
+    <xs:restriction base="xs:token">
+      <xs:pattern value="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*" id="language.pattern">
+        <xs:annotation>
+          <xs:documentation source="http://www.ietf.org/rfc/rfc3066.txt">
+            pattern specifies the content of section 2.12 of XML 1.0e2
+            and RFC 3066 (Revised version of RFC 1766).
+          </xs:documentation>
+        </xs:annotation>
+      </xs:pattern>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="IDREFS" id="IDREFS">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#IDREFS"/>
+    </xs:annotation>
+    <xs:restriction>
+      <xs:simpleType>
+        <xs:list itemType="xs:IDREF"/>
+      </xs:simpleType>
+        <xs:minLength value="1" id="IDREFS.minLength"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ENTITIES" id="ENTITIES">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#ENTITIES"/>
+    </xs:annotation>
+    <xs:restriction>
+      <xs:simpleType>
+        <xs:list itemType="xs:ENTITY"/>
+      </xs:simpleType>
+        <xs:minLength value="1" id="ENTITIES.minLength"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="NMTOKEN" id="NMTOKEN">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#NMTOKEN"/>
+    </xs:annotation>
+    <xs:restriction base="xs:token">
+      <xs:pattern value="\c+" id="NMTOKEN.pattern">
+        <xs:annotation>
+          <xs:documentation source="http://www.w3.org/TR/REC-xml#NT-Nmtoken">
+            pattern matches production 7 from the XML spec
+          </xs:documentation>
+        </xs:annotation>
+      </xs:pattern>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="NMTOKENS" id="NMTOKENS">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasFacet name="length"/>
+        <hfp:hasFacet name="minLength"/>
+        <hfp:hasFacet name="maxLength"/>
+        <hfp:hasFacet name="enumeration"/>
+        <hfp:hasFacet name="whiteSpace"/>
+        <hfp:hasFacet name="pattern"/>
+        <hfp:hasProperty name="ordered" value="false"/>
+        <hfp:hasProperty name="bounded" value="false"/>
+        <hfp:hasProperty name="cardinality" value="countably infinite"/>
+        <hfp:hasProperty name="numeric" value="false"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#NMTOKENS"/>
+    </xs:annotation>
+    <xs:restriction>
+      <xs:simpleType>
+        <xs:list itemType="xs:NMTOKEN"/>
+      </xs:simpleType>
+        <xs:minLength value="1" id="NMTOKENS.minLength"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="Name" id="Name">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#Name"/>
+    </xs:annotation>
+    <xs:restriction base="xs:token">
+      <xs:pattern value="\i\c*" id="Name.pattern">
+        <xs:annotation>
+          <xs:documentation source="http://www.w3.org/TR/REC-xml#NT-Name">
+            pattern matches production 5 from the XML spec
+          </xs:documentation>
+        </xs:annotation>
+      </xs:pattern>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="NCName" id="NCName">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#NCName"/>
+    </xs:annotation>
+    <xs:restriction base="xs:Name">
+      <xs:pattern value="[\i-[:]][\c-[:]]*" id="NCName.pattern">
+        <xs:annotation>
+          <xs:documentation source="http://www.w3.org/TR/REC-xml-names/#NT-NCName">
+            pattern matches production 4 from the Namespaces in XML spec
+          </xs:documentation>
+        </xs:annotation>
+      </xs:pattern>
+    </xs:restriction>
+  </xs:simpleType>
+
+   <xs:simpleType name="ID" id="ID">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#ID"/>
+    </xs:annotation>
+    <xs:restriction base="xs:NCName"/>
+   </xs:simpleType>
+
+   <xs:simpleType name="IDREF" id="IDREF">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#IDREF"/>
+    </xs:annotation>
+    <xs:restriction base="xs:NCName"/>
+   </xs:simpleType>
+
+   <xs:simpleType name="ENTITY" id="ENTITY">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#ENTITY"/>
+    </xs:annotation>
+    <xs:restriction base="xs:NCName"/>
+   </xs:simpleType>
+
+  <xs:simpleType name="integer" id="integer">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#integer"/>
+    </xs:annotation>
+    <xs:restriction base="xs:decimal">
+      <xs:fractionDigits value="0" fixed="true" id="integer.fractionDigits"/>
+      <xs:pattern value="[\-+]?[0-9]+"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="nonPositiveInteger" id="nonPositiveInteger">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger"/>
+    </xs:annotation>
+    <xs:restriction base="xs:integer">
+      <xs:maxInclusive value="0" id="nonPositiveInteger.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="negativeInteger" id="negativeInteger">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#negativeInteger"/>
+    </xs:annotation>
+    <xs:restriction base="xs:nonPositiveInteger">
+      <xs:maxInclusive value="-1" id="negativeInteger.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="long" id="long">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasProperty name="bounded" value="true"/>
+        <hfp:hasProperty name="cardinality" value="finite"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#long"/>
+    </xs:annotation>
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="-9223372036854775808" id="long.minInclusive"/>
+      <xs:maxInclusive value="9223372036854775807" id="long.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="int" id="int">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#int"/>
+    </xs:annotation>
+    <xs:restriction base="xs:long">
+      <xs:minInclusive value="-2147483648" id="int.minInclusive"/>
+      <xs:maxInclusive value="2147483647" id="int.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="short" id="short">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#short"/>
+    </xs:annotation>
+    <xs:restriction base="xs:int">
+      <xs:minInclusive value="-32768" id="short.minInclusive"/>
+      <xs:maxInclusive value="32767" id="short.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="byte" id="byte">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#byte"/>
+    </xs:annotation>
+    <xs:restriction base="xs:short">
+      <xs:minInclusive value="-128" id="byte.minInclusive"/>
+      <xs:maxInclusive value="127" id="byte.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="nonNegativeInteger" id="nonNegativeInteger">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger"/>
+    </xs:annotation>
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="0" id="nonNegativeInteger.minInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="unsignedLong" id="unsignedLong">
+    <xs:annotation>
+      <xs:appinfo>
+        <hfp:hasProperty name="bounded" value="true"/>
+        <hfp:hasProperty name="cardinality" value="finite"/>
+      </xs:appinfo>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#unsignedLong"/>
+    </xs:annotation>
+    <xs:restriction base="xs:nonNegativeInteger">
+      <xs:maxInclusive value="18446744073709551615" id="unsignedLong.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="unsignedInt" id="unsignedInt">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#unsignedInt"/>
+    </xs:annotation>
+    <xs:restriction base="xs:unsignedLong">
+      <xs:maxInclusive value="4294967295" id="unsignedInt.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="unsignedShort" id="unsignedShort">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#unsignedShort"/>
+    </xs:annotation>
+    <xs:restriction base="xs:unsignedInt">
+      <xs:maxInclusive value="65535" id="unsignedShort.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="unsignedByte" id="unsignedByte">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#unsignedByte"/>
+    </xs:annotation>
+    <xs:restriction base="xs:unsignedShort">
+      <xs:maxInclusive value="255" id="unsignedByte.maxInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="positiveInteger" id="positiveInteger">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#positiveInteger"/>
+    </xs:annotation>
+    <xs:restriction base="xs:nonNegativeInteger">
+      <xs:minInclusive value="1" id="positiveInteger.minInclusive"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+ <xs:simpleType name="derivationControl">
+  <xs:annotation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+  </xs:annotation>
+  <xs:restriction base="xs:NMTOKEN">
+   <xs:enumeration value="substitution"/>
+   <xs:enumeration value="extension"/>
+   <xs:enumeration value="restriction"/>
+   <xs:enumeration value="list"/>
+   <xs:enumeration value="union"/>
+  </xs:restriction>
+ </xs:simpleType>
+
+ <xs:group name="simpleDerivation">
+  <xs:choice>
+    <xs:element ref="xs:restriction"/>
+    <xs:element ref="xs:list"/>
+    <xs:element ref="xs:union"/>
+  </xs:choice>
+ </xs:group>
+
+ <xs:simpleType name="simpleDerivationSet">
+  <xs:annotation>
+   <xs:documentation>
+   #all or (possibly empty) subset of {restriction, union, list}
+   </xs:documentation>
+   <xs:documentation>
+   A utility type, not for public use</xs:documentation>
+  </xs:annotation>
+  <xs:union>
+   <xs:simpleType>
+    <xs:restriction base="xs:token">
+     <xs:enumeration value="#all"/>
+    </xs:restriction>
+   </xs:simpleType>
+   <xs:simpleType>
+    <xs:list>
+     <xs:simpleType>
+      <xs:restriction base="xs:derivationControl">
+       <xs:enumeration value="list"/>
+       <xs:enumeration value="union"/>
+       <xs:enumeration value="restriction"/>
+      </xs:restriction>
+     </xs:simpleType>
+    </xs:list>
+   </xs:simpleType>
+  </xs:union>
+ </xs:simpleType>
+
+  <xs:complexType name="simpleType" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="xs:annotated">
+        <xs:group ref="xs:simpleDerivation"/>
+        <xs:attribute name="final" type="xs:simpleDerivationSet"/>
+        <xs:attribute name="name" type="xs:NCName">
+          <xs:annotation>
+            <xs:documentation>
+              Can be restricted to required or forbidden
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="topLevelSimpleType">
+    <xs:complexContent>
+      <xs:restriction base="xs:simpleType">
+        <xs:sequence>
+          <xs:element ref="xs:annotation" minOccurs="0"/>
+          <xs:group ref="xs:simpleDerivation"/>
+        </xs:sequence>
+        <xs:attribute name="name" use="required" type="xs:NCName">
+          <xs:annotation>
+            <xs:documentation>
+              Required at the top level
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+       <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="localSimpleType">
+    <xs:complexContent>
+      <xs:restriction base="xs:simpleType">
+        <xs:sequence>
+          <xs:element ref="xs:annotation" minOccurs="0"/>
+          <xs:group ref="xs:simpleDerivation"/>
+        </xs:sequence>
+        <xs:attribute name="name" use="prohibited">
+          <xs:annotation>
+            <xs:documentation>
+              Forbidden when nested
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="final" use="prohibited"/>
+       <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="simpleType" type="xs:topLevelSimpleType" id="simpleType">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-simpleType"/>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:group name="facets">
+   <xs:annotation>
+    <xs:documentation>
+       We should use a substitution group for facets, but
+       that's ruled out because it would allow users to
+       add their own, which we're not ready for yet.
+    </xs:documentation>
+   </xs:annotation>
+   <xs:choice>
+    <xs:element ref="xs:minExclusive"/>
+    <xs:element ref="xs:minInclusive"/>
+    <xs:element ref="xs:maxExclusive"/>
+    <xs:element ref="xs:maxInclusive"/>
+    <xs:element ref="xs:totalDigits"/>
+    <xs:element ref="xs:fractionDigits"/>
+    <xs:element ref="xs:length"/>
+    <xs:element ref="xs:minLength"/>
+    <xs:element ref="xs:maxLength"/>
+    <xs:element ref="xs:enumeration"/>
+    <xs:element ref="xs:whiteSpace"/>
+    <xs:element ref="xs:pattern"/>
+   </xs:choice>
+  </xs:group>
+
+  <xs:group name="simpleRestrictionModel">
+   <xs:sequence>
+    <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/>
+    <xs:group ref="xs:facets" minOccurs="0" maxOccurs="unbounded"/>
+   </xs:sequence>
+  </xs:group>
+
+  <xs:element name="restriction" id="restriction">
+   <xs:complexType>
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-restriction">
+          base attribute and simpleType child are mutually
+          exclusive, but one or other is required
+        </xs:documentation>
+      </xs:annotation>
+      <xs:complexContent>
+        <xs:extension base="xs:annotated">
+         <xs:group ref="xs:simpleRestrictionModel"/>
+         <xs:attribute name="base" type="xs:QName" use="optional"/>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="list" id="list">
+   <xs:complexType>
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-list">
+          itemType attribute and simpleType child are mutually
+          exclusive, but one or other is required
+        </xs:documentation>
+      </xs:annotation>
+      <xs:complexContent>
+        <xs:extension base="xs:annotated">
+          <xs:sequence>
+            <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/>
+          </xs:sequence>
+          <xs:attribute name="itemType" type="xs:QName" use="optional"/>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="union" id="union">
+   <xs:complexType>
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-union">
+          memberTypes attribute must be non-empty or there must be
+          at least one simpleType child
+        </xs:documentation>
+      </xs:annotation>
+      <xs:complexContent>
+        <xs:extension base="xs:annotated">
+          <xs:sequence>
+            <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+          <xs:attribute name="memberTypes" use="optional">
+            <xs:simpleType>
+              <xs:list itemType="xs:QName"/>
+            </xs:simpleType>
+          </xs:attribute>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:complexType name="facet">
+    <xs:complexContent>
+      <xs:extension base="xs:annotated">
+        <xs:attribute name="value" use="required"/>
+        <xs:attribute name="fixed" type="xs:boolean" use="optional" default="false"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+ <xs:complexType name="noFixedFacet">
+  <xs:complexContent>
+   <xs:restriction base="xs:facet">
+    <xs:sequence>
+     <xs:element ref="xs:annotation" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="fixed" use="prohibited"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+   </xs:restriction>
+  </xs:complexContent>
+ </xs:complexType>
+
+  <xs:element name="minExclusive" id="minExclusive" type="xs:facet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-minExclusive"/>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="minInclusive" id="minInclusive" type="xs:facet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-minInclusive"/>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="maxExclusive" id="maxExclusive" type="xs:facet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-maxExclusive"/>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="maxInclusive" id="maxInclusive" type="xs:facet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-maxInclusive"/>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:complexType name="numFacet">
+    <xs:complexContent>
+      <xs:restriction base="xs:facet">
+       <xs:sequence>
+         <xs:element ref="xs:annotation" minOccurs="0"/>
+       </xs:sequence>
+       <xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
+       <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="totalDigits" id="totalDigits">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-totalDigits"/>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:restriction base="xs:numFacet">
+          <xs:sequence>
+            <xs:element ref="xs:annotation" minOccurs="0"/>
+          </xs:sequence>
+          <xs:attribute name="value" type="xs:positiveInteger" use="required"/>
+         <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:restriction>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="fractionDigits" id="fractionDigits" type="xs:numFacet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-fractionDigits"/>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="length" id="length" type="xs:numFacet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-length"/>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="minLength" id="minLength" type="xs:numFacet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-minLength"/>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="maxLength" id="maxLength" type="xs:numFacet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-maxLength"/>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="enumeration" id="enumeration" type="xs:noFixedFacet">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-enumeration"/>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="whiteSpace" id="whiteSpace">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-whiteSpace"/>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:restriction base="xs:facet">
+          <xs:sequence>
+            <xs:element ref="xs:annotation" minOccurs="0"/>
+          </xs:sequence>
+          <xs:attribute name="value" use="required">
+            <xs:simpleType>
+              <xs:restriction base="xs:NMTOKEN">
+                <xs:enumeration value="preserve"/>
+                <xs:enumeration value="replace"/>
+                <xs:enumeration value="collapse"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+         <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:restriction>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="pattern" id="pattern">
+    <xs:annotation>
+      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-pattern"/>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:restriction base="xs:noFixedFacet">
+          <xs:sequence>
+            <xs:element ref="xs:annotation" minOccurs="0"/>
+          </xs:sequence>
+          <xs:attribute name="value" type="xs:string" use="required"/>
+         <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:restriction>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+</xs:schema>
diff --git a/vmware-tools/vgauth/schemas/catalog.xml b/vmware-tools/vgauth/schemas/catalog.xml
new file mode 100644 (file)
index 0000000..da78917
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+  <uri name="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" uri="xmldsig-core-schema.xsd"/>
+  <uri name="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd" uri="xenc-schema.xsd"/>
+</catalog>
diff --git a/vmware-tools/vgauth/schemas/datatypes.dtd b/vmware-tools/vgauth/schemas/datatypes.dtd
new file mode 100644 (file)
index 0000000..ed07e4e
--- /dev/null
@@ -0,0 +1,203 @@
+<!--
+        DTD for XML Schemas: Part 2: Datatypes
+        $Id: datatypes.dtd,v 1.23 2001/03/16 17:36:30 ht Exp $
+        Note this DTD is NOT normative, or even definitive. - - the
+        prose copy in the datatypes REC is the definitive version
+        (which shouldn't differ from this one except for this comment
+        and entity expansions, but just in case)
+  -->
+
+<!--
+        This DTD cannot be used on its own, it is intended
+        only for incorporation in XMLSchema.dtd, q.v.
+  -->
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % simpleType "%p;simpleType">
+<!ENTITY % restriction "%p;restriction">
+<!ENTITY % list "%p;list">
+<!ENTITY % union "%p;union">
+<!ENTITY % maxExclusive "%p;maxExclusive">
+<!ENTITY % minExclusive "%p;minExclusive">
+<!ENTITY % maxInclusive "%p;maxInclusive">
+<!ENTITY % minInclusive "%p;minInclusive">
+<!ENTITY % totalDigits "%p;totalDigits">
+<!ENTITY % fractionDigits "%p;fractionDigits">
+<!ENTITY % length "%p;length">
+<!ENTITY % minLength "%p;minLength">
+<!ENTITY % maxLength "%p;maxLength">
+<!ENTITY % enumeration "%p;enumeration">
+<!ENTITY % whiteSpace "%p;whiteSpace">
+<!ENTITY % pattern "%p;pattern">
+
+<!--
+        Customisation entities for the ATTLIST of each element
+        type. Define one of these if your schema takes advantage
+        of the anyAttribute='##other' in the schema for schemas
+  -->
+
+<!ENTITY % simpleTypeAttrs "">
+<!ENTITY % restrictionAttrs "">
+<!ENTITY % listAttrs "">
+<!ENTITY % unionAttrs "">
+<!ENTITY % maxExclusiveAttrs "">
+<!ENTITY % minExclusiveAttrs "">
+<!ENTITY % maxInclusiveAttrs "">
+<!ENTITY % minInclusiveAttrs "">
+<!ENTITY % totalDigitsAttrs "">
+<!ENTITY % fractionDigitsAttrs "">
+<!ENTITY % lengthAttrs "">
+<!ENTITY % minLengthAttrs "">
+<!ENTITY % maxLengthAttrs "">
+<!ENTITY % enumerationAttrs "">
+<!ENTITY % whiteSpaceAttrs "">
+<!ENTITY % patternAttrs "">
+
+<!-- Define some entities for informative use as attribute
+        types -->
+<!ENTITY % URIref "CDATA">
+<!ENTITY % XPathExpr "CDATA">
+<!ENTITY % QName "NMTOKEN">
+<!ENTITY % QNames "NMTOKENS">
+<!ENTITY % NCName "NMTOKEN">
+<!ENTITY % nonNegativeInteger "NMTOKEN">
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % simpleDerivationSet "CDATA">
+<!--
+        #all or space-separated list drawn from derivationChoice
+  -->
+
+<!--
+        Note that the use of 'facet' below is less restrictive
+        than is really intended:  There should in fact be no
+        more than one of each of minInclusive, minExclusive,
+        maxInclusive, maxExclusive, totalDigits, fractionDigits,
+        length, maxLength, minLength within datatype,
+        and the min- and max- variants of Inclusive and Exclusive
+        are mutually exclusive. On the other hand,  pattern and
+        enumeration may repeat.
+  -->
+<!ENTITY % minBound "(%minInclusive; | %minExclusive;)">
+<!ENTITY % maxBound "(%maxInclusive; | %maxExclusive;)">
+<!ENTITY % bounds "%minBound; | %maxBound;">
+<!ENTITY % numeric "%totalDigits; | %fractionDigits;">
+<!ENTITY % ordered "%bounds; | %numeric;">
+<!ENTITY % unordered
+   "%pattern; | %enumeration; | %whiteSpace; | %length; |
+   %maxLength; | %minLength;">
+<!ENTITY % facet "%ordered; | %unordered;">
+<!ENTITY % facetAttr
+        "value CDATA #REQUIRED
+        id ID #IMPLIED">
+<!ENTITY % fixedAttr "fixed %boolean; #IMPLIED">
+<!ENTITY % facetModel "(%annotation;)?">
+<!ELEMENT %simpleType;
+        ((%annotation;)?, (%restriction; | %list; | %union;))>
+<!ATTLIST %simpleType;
+    name      %NCName; #IMPLIED
+    final     %simpleDerivationSet; #IMPLIED
+    id        ID       #IMPLIED
+    %simpleTypeAttrs;>
+<!-- name is required at top level -->
+<!ELEMENT %restriction; ((%annotation;)?,
+                         (%restriction1; |
+                          ((%simpleType;)?,(%facet;)*)),
+                         (%attrDecls;))>
+<!ATTLIST %restriction;
+    base      %QName;                  #IMPLIED
+    id        ID       #IMPLIED
+    %restrictionAttrs;>
+<!--
+        base and simpleType child are mutually exclusive,
+        one is required.
+
+        restriction is shared between simpleType and
+        simpleContent and complexContent (in XMLSchema.xsd).
+        restriction1 is for the latter cases, when this
+        is restricting a complex type, as is attrDecls.
+  -->
+<!ELEMENT %list; ((%annotation;)?,(%simpleType;)?)>
+<!ATTLIST %list;
+    itemType      %QName;             #IMPLIED
+    id        ID       #IMPLIED
+    %listAttrs;>
+<!--
+        itemType and simpleType child are mutually exclusive,
+        one is required
+  -->
+<!ELEMENT %union; ((%annotation;)?,(%simpleType;)*)>
+<!ATTLIST %union;
+    id            ID       #IMPLIED
+    memberTypes   %QNames;            #IMPLIED
+    %unionAttrs;>
+<!--
+        At least one item in memberTypes or one simpleType
+        child is required
+  -->
+
+<!ELEMENT %maxExclusive; %facetModel;>
+<!ATTLIST %maxExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxExclusiveAttrs;>
+<!ELEMENT %minExclusive; %facetModel;>
+<!ATTLIST %minExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minExclusiveAttrs;>
+
+<!ELEMENT %maxInclusive; %facetModel;>
+<!ATTLIST %maxInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxInclusiveAttrs;>
+<!ELEMENT %minInclusive; %facetModel;>
+<!ATTLIST %minInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minInclusiveAttrs;>
+
+<!ELEMENT %totalDigits; %facetModel;>
+<!ATTLIST %totalDigits;
+        %facetAttr;
+        %fixedAttr;
+        %totalDigitsAttrs;>
+<!ELEMENT %fractionDigits; %facetModel;>
+<!ATTLIST %fractionDigits;
+        %facetAttr;
+        %fixedAttr;
+        %fractionDigitsAttrs;>
+
+<!ELEMENT %length; %facetModel;>
+<!ATTLIST %length;
+        %facetAttr;
+        %fixedAttr;
+        %lengthAttrs;>
+<!ELEMENT %minLength; %facetModel;>
+<!ATTLIST %minLength;
+        %facetAttr;
+        %fixedAttr;
+        %minLengthAttrs;>
+<!ELEMENT %maxLength; %facetModel;>
+<!ATTLIST %maxLength;
+        %facetAttr;
+        %fixedAttr;
+        %maxLengthAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %enumeration; %facetModel;>
+<!ATTLIST %enumeration;
+        %facetAttr;
+        %enumerationAttrs;>
+
+<!ELEMENT %whiteSpace; %facetModel;>
+<!ATTLIST %whiteSpace;
+        %facetAttr;
+        %fixedAttr;
+        %whiteSpaceAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %pattern; %facetModel;>
+<!ATTLIST %pattern;
+        %facetAttr;
+        %patternAttrs;>
diff --git a/vmware-tools/vgauth/schemas/saml-schema-assertion-2.0.xsd b/vmware-tools/vgauth/schemas/saml-schema-assertion-2.0.xsd
new file mode 100644 (file)
index 0000000..9bbfa26
--- /dev/null
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<schema
+    targetNamespace="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns="http://www.w3.org/2001/XMLSchema"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+    elementFormDefault="unqualified"
+    attributeFormDefault="unqualified"
+    blockDefault="substitution"
+    version="2.0">
+    <import namespace="http://www.w3.org/2000/09/xmldsig#"
+        schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
+    <import namespace="http://www.w3.org/2001/04/xmlenc#"
+        schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
+    <annotation>
+        <documentation>
+            Document identifier: saml-schema-assertion-2.0
+            Location: http://docs.oasis-open.org/security/saml/v2.0/
+            Revision history:
+            V1.0 (November, 2002):
+              Initial Standard Schema.
+            V1.1 (September, 2003):
+              Updates within the same V1.0 namespace.
+            V2.0 (March, 2005):
+              New assertion schema for SAML V2.0 namespace.
+        </documentation>
+    </annotation>
+    <attributeGroup name="IDNameQualifiers">
+        <attribute name="NameQualifier" type="string" use="optional"/>
+        <attribute name="SPNameQualifier" type="string" use="optional"/>
+    </attributeGroup>
+    <element name="BaseID" type="saml:BaseIDAbstractType"/>
+    <complexType name="BaseIDAbstractType" abstract="true">
+        <attributeGroup ref="saml:IDNameQualifiers"/>
+    </complexType>
+    <element name="NameID" type="saml:NameIDType"/>
+    <complexType name="NameIDType">
+        <simpleContent>
+            <extension base="string">
+                <attributeGroup ref="saml:IDNameQualifiers"/>
+                <attribute name="Format" type="anyURI" use="optional"/>
+                <attribute name="SPProvidedID" type="string" use="optional"/>
+            </extension>
+        </simpleContent>
+    </complexType>
+    <complexType name="EncryptedElementType">
+        <sequence>
+            <element ref="xenc:EncryptedData"/>
+            <element ref="xenc:EncryptedKey" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+    </complexType>
+    <element name="EncryptedID" type="saml:EncryptedElementType"/>
+    <element name="Issuer" type="saml:NameIDType"/>
+    <element name="AssertionIDRef" type="NCName"/>
+    <element name="AssertionURIRef" type="anyURI"/>
+    <element name="Assertion" type="saml:AssertionType"/>
+    <complexType name="AssertionType">
+        <sequence>
+            <element ref="saml:Issuer"/>
+            <element ref="ds:Signature" minOccurs="0"/>
+            <element ref="saml:Subject" minOccurs="0"/>
+            <element ref="saml:Conditions" minOccurs="0"/>
+            <element ref="saml:Advice" minOccurs="0"/>
+            <choice minOccurs="0" maxOccurs="unbounded">
+                <element ref="saml:Statement"/>
+                <element ref="saml:AuthnStatement"/>
+                <element ref="saml:AuthzDecisionStatement"/>
+                <element ref="saml:AttributeStatement"/>
+            </choice>
+        </sequence>
+        <attribute name="Version" type="string" use="required"/>
+        <attribute name="ID" type="ID" use="required"/>
+        <attribute name="IssueInstant" type="dateTime" use="required"/>
+    </complexType>
+    <element name="Subject" type="saml:SubjectType"/>
+    <complexType name="SubjectType">
+        <choice>
+            <sequence>
+                <choice>
+                    <element ref="saml:BaseID"/>
+                    <element ref="saml:NameID"/>
+                    <element ref="saml:EncryptedID"/>
+                </choice>
+                <element ref="saml:SubjectConfirmation" minOccurs="0" maxOccurs="unbounded"/>
+            </sequence>
+            <element ref="saml:SubjectConfirmation" maxOccurs="unbounded"/>
+        </choice>
+    </complexType>
+    <element name="SubjectConfirmation" type="saml:SubjectConfirmationType"/>
+    <complexType name="SubjectConfirmationType">
+        <sequence>
+            <choice minOccurs="0">
+                <element ref="saml:BaseID"/>
+                <element ref="saml:NameID"/>
+                <element ref="saml:EncryptedID"/>
+            </choice>
+            <element ref="saml:SubjectConfirmationData" minOccurs="0"/>
+        </sequence>
+        <attribute name="Method" type="anyURI" use="required"/>
+    </complexType>
+    <element name="SubjectConfirmationData" type="saml:SubjectConfirmationDataType"/>
+    <complexType name="SubjectConfirmationDataType" mixed="true">
+        <complexContent>
+            <restriction base="anyType">
+                <sequence>
+                    <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+                <attribute name="NotBefore" type="dateTime" use="optional"/>
+                <attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
+                <attribute name="Recipient" type="anyURI" use="optional"/>
+                <attribute name="InResponseTo" type="NCName" use="optional"/>
+                <attribute name="Address" type="string" use="optional"/>
+                <anyAttribute namespace="##other" processContents="lax"/>
+            </restriction>
+        </complexContent>
+    </complexType>
+    <complexType name="KeyInfoConfirmationDataType" mixed="false">
+        <complexContent>
+            <restriction base="saml:SubjectConfirmationDataType">
+                <sequence>
+                    <element ref="ds:KeyInfo" maxOccurs="unbounded"/>
+                </sequence>
+            </restriction>
+        </complexContent>
+    </complexType>
+    <element name="Conditions" type="saml:ConditionsType"/>
+    <complexType name="ConditionsType">
+        <choice minOccurs="0" maxOccurs="unbounded">
+            <element ref="saml:Condition"/>
+            <element ref="saml:AudienceRestriction"/>
+            <element ref="saml:OneTimeUse"/>
+            <element ref="saml:ProxyRestriction"/>
+        </choice>
+        <attribute name="NotBefore" type="dateTime" use="optional"/>
+        <attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
+    </complexType>
+    <element name="Condition" type="saml:ConditionAbstractType"/>
+    <complexType name="ConditionAbstractType" abstract="true"/>
+    <element name="AudienceRestriction" type="saml:AudienceRestrictionType"/>
+    <complexType name="AudienceRestrictionType">
+        <complexContent>
+            <extension base="saml:ConditionAbstractType">
+                <sequence>
+                    <element ref="saml:Audience" maxOccurs="unbounded"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="Audience" type="anyURI"/>
+    <element name="OneTimeUse" type="saml:OneTimeUseType" />
+    <complexType name="OneTimeUseType">
+        <complexContent>
+            <extension base="saml:ConditionAbstractType"/>
+        </complexContent>
+    </complexType>
+    <element name="ProxyRestriction" type="saml:ProxyRestrictionType"/>
+    <complexType name="ProxyRestrictionType">
+    <complexContent>
+        <extension base="saml:ConditionAbstractType">
+            <sequence>
+                <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
+            </sequence>
+            <attribute name="Count" type="nonNegativeInteger" use="optional"/>
+        </extension>
+       </complexContent>
+    </complexType>
+    <element name="Advice" type="saml:AdviceType"/>
+    <complexType name="AdviceType">
+        <choice minOccurs="0" maxOccurs="unbounded">
+            <element ref="saml:AssertionIDRef"/>
+            <element ref="saml:AssertionURIRef"/>
+            <element ref="saml:Assertion"/>
+            <element ref="saml:EncryptedAssertion"/>
+            <any namespace="##other" processContents="lax"/>
+        </choice>
+    </complexType>
+    <element name="EncryptedAssertion" type="saml:EncryptedElementType"/>
+    <element name="Statement" type="saml:StatementAbstractType"/>
+    <complexType name="StatementAbstractType" abstract="true"/>
+    <element name="AuthnStatement" type="saml:AuthnStatementType"/>
+    <complexType name="AuthnStatementType">
+        <complexContent>
+            <extension base="saml:StatementAbstractType">
+                <sequence>
+                    <element ref="saml:SubjectLocality" minOccurs="0"/>
+                    <element ref="saml:AuthnContext"/>
+                </sequence>
+                <attribute name="AuthnInstant" type="dateTime" use="required"/>
+                <attribute name="SessionIndex" type="string" use="optional"/>
+                <attribute name="SessionNotOnOrAfter" type="dateTime" use="optional"/>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="SubjectLocality" type="saml:SubjectLocalityType"/>
+    <complexType name="SubjectLocalityType">
+        <attribute name="Address" type="string" use="optional"/>
+        <attribute name="DNSName" type="string" use="optional"/>
+    </complexType>
+    <element name="AuthnContext" type="saml:AuthnContextType"/>
+    <complexType name="AuthnContextType">
+        <sequence>
+            <choice>
+                <sequence>
+                    <element ref="saml:AuthnContextClassRef"/>
+                    <choice minOccurs="0">
+                        <element ref="saml:AuthnContextDecl"/>
+                        <element ref="saml:AuthnContextDeclRef"/>
+                    </choice>
+                </sequence>
+                <choice>
+                    <element ref="saml:AuthnContextDecl"/>
+                    <element ref="saml:AuthnContextDeclRef"/>
+                </choice>
+            </choice>
+            <element ref="saml:AuthenticatingAuthority" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+    </complexType>
+    <element name="AuthnContextClassRef" type="anyURI"/>
+    <element name="AuthnContextDeclRef" type="anyURI"/>
+    <element name="AuthnContextDecl" type="anyType"/>
+    <element name="AuthenticatingAuthority" type="anyURI"/>
+    <element name="AuthzDecisionStatement" type="saml:AuthzDecisionStatementType"/>
+    <complexType name="AuthzDecisionStatementType">
+        <complexContent>
+            <extension base="saml:StatementAbstractType">
+                <sequence>
+                    <element ref="saml:Action" maxOccurs="unbounded"/>
+                    <element ref="saml:Evidence" minOccurs="0"/>
+                </sequence>
+                <attribute name="Resource" type="anyURI" use="required"/>
+                <attribute name="Decision" type="saml:DecisionType" use="required"/>
+            </extension>
+        </complexContent>
+    </complexType>
+    <simpleType name="DecisionType">
+        <restriction base="string">
+            <enumeration value="Permit"/>
+            <enumeration value="Deny"/>
+            <enumeration value="Indeterminate"/>
+        </restriction>
+    </simpleType>
+    <element name="Action" type="saml:ActionType"/>
+    <complexType name="ActionType">
+        <simpleContent>
+            <extension base="string">
+                <attribute name="Namespace" type="anyURI" use="required"/>
+            </extension>
+        </simpleContent>
+    </complexType>
+    <element name="Evidence" type="saml:EvidenceType"/>
+    <complexType name="EvidenceType">
+        <choice maxOccurs="unbounded">
+            <element ref="saml:AssertionIDRef"/>
+            <element ref="saml:AssertionURIRef"/>
+            <element ref="saml:Assertion"/>
+            <element ref="saml:EncryptedAssertion"/>
+        </choice>
+    </complexType>
+    <element name="AttributeStatement" type="saml:AttributeStatementType"/>
+    <complexType name="AttributeStatementType">
+        <complexContent>
+            <extension base="saml:StatementAbstractType">
+                <choice maxOccurs="unbounded">
+                    <element ref="saml:Attribute"/>
+                    <element ref="saml:EncryptedAttribute"/>
+                </choice>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="Attribute" type="saml:AttributeType"/>
+    <complexType name="AttributeType">
+        <sequence>
+            <element ref="saml:AttributeValue" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="Name" type="string" use="required"/>
+        <attribute name="NameFormat" type="anyURI" use="optional"/>
+        <attribute name="FriendlyName" type="string" use="optional"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+    <element name="AttributeValue" type="anyType" nillable="true"/>
+    <element name="EncryptedAttribute" type="saml:EncryptedElementType"/>
+</schema>
diff --git a/vmware-tools/vgauth/schemas/xenc-schema.xsd b/vmware-tools/vgauth/schemas/xenc-schema.xsd
new file mode 100644 (file)
index 0000000..8b3571d
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "XMLSchema.dtd" [
+   <!ATTLIST schema
+     xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
+     xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'>
+   <!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
+   <!ENTITY % p ''>
+   <!ENTITY % s ''>
+  ]>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2001/04/xmlenc#" elementFormDefault="qualified">
+
+  <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
+
+  <complexType name="EncryptedType" abstract="true">
+    <sequence>
+      <element name="EncryptionMethod" type="xenc:EncryptionMethodType" minOccurs="0"/>
+      <element ref="ds:KeyInfo" minOccurs="0"/>
+      <element ref="xenc:CipherData"/>
+      <element ref="xenc:EncryptionProperties" minOccurs="0"/>
+    </sequence>
+    <attribute name="Id" type="ID" use="optional"/>
+    <attribute name="Type" type="anyURI" use="optional"/>
+    <attribute name="MimeType" type="string" use="optional"/>
+    <attribute name="Encoding" type="anyURI" use="optional"/>
+  </complexType>
+
+  <complexType name="EncryptionMethodType" mixed="true">
+    <sequence>
+      <element name="KeySize" minOccurs="0" type="xenc:KeySizeType"/>
+      <element name="OAEPparams" minOccurs="0" type="base64Binary"/>
+      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </sequence>
+    <attribute name="Algorithm" type="anyURI" use="required"/>
+  </complexType>
+
+    <simpleType name="KeySizeType">
+      <restriction base="integer"/>
+    </simpleType>
+
+  <element name="CipherData" type="xenc:CipherDataType"/>
+  <complexType name="CipherDataType">
+     <choice>
+       <element name="CipherValue" type="base64Binary"/>
+       <element ref="xenc:CipherReference"/>
+     </choice>
+    </complexType>
+
+   <element name="CipherReference" type="xenc:CipherReferenceType"/>
+   <complexType name="CipherReferenceType">
+       <choice>
+         <element name="Transforms" type="xenc:TransformsType" minOccurs="0"/>
+       </choice>
+       <attribute name="URI" type="anyURI" use="required"/>
+   </complexType>
+
+     <complexType name="TransformsType">
+       <sequence>
+         <element ref="ds:Transform" maxOccurs="unbounded"/>
+       </sequence>
+     </complexType>
+
+
+  <element name="EncryptedData" type="xenc:EncryptedDataType"/>
+  <complexType name="EncryptedDataType">
+    <complexContent>
+      <extension base="xenc:EncryptedType">
+       </extension>
+    </complexContent>
+  </complexType>
+
+  <!-- Children of ds:KeyInfo -->
+
+  <element name="EncryptedKey" type="xenc:EncryptedKeyType"/>
+  <complexType name="EncryptedKeyType">
+    <complexContent>
+      <extension base="xenc:EncryptedType">
+        <sequence>
+          <element ref="xenc:ReferenceList" minOccurs="0"/>
+          <element name="CarriedKeyName" type="string" minOccurs="0"/>
+        </sequence>
+        <attribute name="Recipient" type="string" use="optional"/>
+      </extension>
+    </complexContent>
+  </complexType>
+
+    <element name="AgreementMethod" type="xenc:AgreementMethodType"/>
+    <complexType name="AgreementMethodType" mixed="true">
+      <sequence>
+        <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
+        <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
+        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+        <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
+        <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
+      </sequence>
+      <attribute name="Algorithm" type="anyURI" use="required"/>
+    </complexType>
+
+  <!-- End Children of ds:KeyInfo -->
+
+  <element name="ReferenceList">
+    <complexType>
+      <choice minOccurs="1" maxOccurs="unbounded">
+        <element name="DataReference" type="xenc:ReferenceType"/>
+        <element name="KeyReference" type="xenc:ReferenceType"/>
+      </choice>
+    </complexType>
+  </element>
+
+  <complexType name="ReferenceType">
+    <sequence>
+      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </sequence>
+    <attribute name="URI" type="anyURI" use="required"/>
+  </complexType>
+
+
+  <element name="EncryptionProperties" type="xenc:EncryptionPropertiesType"/>
+  <complexType name="EncryptionPropertiesType">
+    <sequence>
+      <element ref="xenc:EncryptionProperty" maxOccurs="unbounded"/>
+    </sequence>
+    <attribute name="Id" type="ID" use="optional"/>
+  </complexType>
+
+    <element name="EncryptionProperty" type="xenc:EncryptionPropertyType"/>
+    <complexType name="EncryptionPropertyType" mixed="true">
+      <choice maxOccurs="unbounded">
+        <any namespace="##other" processContents="lax"/>
+      </choice>
+      <attribute name="Target" type="anyURI" use="optional"/>
+      <attribute name="Id" type="ID" use="optional"/>
+      <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
+    </complexType>
+
+</schema>
diff --git a/vmware-tools/vgauth/schemas/xml.xsd b/vmware-tools/vgauth/schemas/xml.xsd
new file mode 100644 (file)
index 0000000..20555e2
--- /dev/null
@@ -0,0 +1,287 @@
+<?xml version='1.0'?>
+<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns   ="http://www.w3.org/1999/xhtml"
+  xml:lang="en">
+
+ <xs:annotation>
+  <xs:documentation>
+   <div>
+    <h1>About the XML namespace</h1>
+
+    <div class="bodytext">
+     <p>
+      This schema document describes the XML namespace, in a form
+      suitable for import by other schema documents.
+     </p>
+     <p>
+      See <a href="http://www.w3.org/XML/1998/namespace.html">
+      http://www.w3.org/XML/1998/namespace.html</a> and
+      <a href="http://www.w3.org/TR/REC-xml">
+      http://www.w3.org/TR/REC-xml</a> for information
+      about this namespace.
+     </p>
+     <p>
+      Note that local names in this namespace are intended to be
+      defined only by the World Wide Web Consortium or its subgroups.
+      The names currently defined in this namespace are listed below.
+      They should not be used with conflicting semantics by any Working
+      Group, specification, or document instance.
+     </p>
+     <p>
+      See further below in this document for more information about <a
+      href="#usage">how to refer to this schema document from your own
+      XSD schema documents</a> and about <a href="#nsversioning">the
+      namespace-versioning policy governing this schema document</a>.
+     </p>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang">
+  <xs:annotation>
+   <xs:documentation>
+    <div>
+
+      <h3>lang (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose value
+       is a language code for the natural language of the content of
+       any element; its value is inherited.  This name is reserved
+       by virtue of its definition in the XML specification.</p>
+
+    </div>
+    <div>
+     <h4>Notes</h4>
+     <p>
+      Attempting to install the relevant ISO 2- and 3-letter
+      codes as the enumerated possible values is probably never
+      going to be a realistic possibility.
+     </p>
+     <p>
+      See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
+       http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
+      and the IANA language subtag registry at
+      <a href="http://www.iana.org/assignments/language-subtag-registry">
+       http://www.iana.org/assignments/language-subtag-registry</a>
+      for further information.
+     </p>
+     <p>
+      The union allows for the 'un-declaration' of xml:lang with
+      the empty string.
+     </p>
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+   <xs:union memberTypes="xs:language">
+    <xs:simpleType>
+     <xs:restriction base="xs:string">
+      <xs:enumeration value=""/>
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:union>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+  <xs:annotation>
+   <xs:documentation>
+    <div>
+
+      <h3>space (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose
+       value is a keyword indicating what whitespace processing
+       discipline is intended for the content of the element; its
+       value is inherited.  This name is reserved by virtue of its
+       definition in the XML specification.</p>
+
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+   <xs:restriction base="xs:NCName">
+    <xs:enumeration value="default"/>
+    <xs:enumeration value="preserve"/>
+   </xs:restriction>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
+   <xs:documentation>
+    <div>
+
+      <h3>base (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose value
+       provides a URI to be used as the base for interpreting any
+       relative URIs in the scope of the element on which it
+       appears; its value is inherited.  This name is reserved
+       by virtue of its definition in the XML Base specification.</p>
+
+     <p>
+      See <a
+      href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
+      for information about this attribute.
+     </p>
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="id" type="xs:ID">
+  <xs:annotation>
+   <xs:documentation>
+    <div>
+
+      <h3>id (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose value
+       should be interpreted as if declared to be of type ID.
+       This name is reserved by virtue of its definition in the
+       xml:id specification.</p>
+
+     <p>
+      See <a
+      href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
+      for information about this attribute.
+     </p>
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+  <xs:attribute ref="xml:base"/>
+  <xs:attribute ref="xml:lang"/>
+  <xs:attribute ref="xml:space"/>
+  <xs:attribute ref="xml:id"/>
+ </xs:attributeGroup>
+
+ <xs:annotation>
+  <xs:documentation>
+   <div>
+
+    <h3>Father (in any context at all)</h3>
+
+    <div class="bodytext">
+     <p>
+      denotes Jon Bosak, the chair of
+      the original XML Working Group.  This name is reserved by
+      the following decision of the W3C XML Plenary and
+      XML Coordination groups:
+     </p>
+     <blockquote>
+       <p>
+       In appreciation for his vision, leadership and
+       dedication the W3C XML Plenary on this 10th day of
+       February, 2000, reserves for Jon Bosak in perpetuity
+       the XML name "xml:Father".
+       </p>
+     </blockquote>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>
+   <div xml:id="usage" id="usage">
+    <h2><a name="usage">About this schema document</a></h2>
+
+    <div class="bodytext">
+     <p>
+      This schema defines attributes and an attribute group suitable
+      for use by schemas wishing to allow <code>xml:base</code>,
+      <code>xml:lang</code>, <code>xml:space</code> or
+      <code>xml:id</code> attributes on elements they define.
+     </p>
+     <p>
+      To enable this, such a schema must import this schema for
+      the XML namespace, e.g. as follows:
+     </p>
+     <pre>
+          &lt;schema . . .>
+           . . .
+           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+     </pre>
+     <p>
+      or
+     </p>
+     <pre>
+           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
+     </pre>
+     <p>
+      Subsequently, qualified reference to any of the attributes or the
+      group defined below will have the desired effect, e.g.
+     </p>
+     <pre>
+          &lt;type . . .>
+           . . .
+           &lt;attributeGroup ref="xml:specialAttrs"/>
+     </pre>
+     <p>
+      will define a type which will schema-validate an instance element
+      with any of those attributes.
+     </p>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>
+   <div id="nsversioning" xml:id="nsversioning">
+    <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
+    <div class="bodytext">
+     <p>
+      In keeping with the XML Schema WG's standard versioning
+      policy, this schema document will persist at
+      <a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd</a>.
+     </p>
+     <p>
+      At the date of issue it can also be found at
+      <a href="http://www.w3.org/2001/xml.xsd">
+       http://www.w3.org/2001/xml.xsd</a>.
+     </p>
+     <p>
+      The schema document at that URI may however change in the future,
+      in order to remain compatible with the latest version of XML
+      Schema itself, or with the XML namespace itself.  In other words,
+      if the XML Schema or XML namespaces change, the version of this
+      document at <a href="http://www.w3.org/2001/xml.xsd">
+       http://www.w3.org/2001/xml.xsd
+      </a>
+      will change accordingly; the version at
+      <a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd
+      </a>
+      will not change.
+     </p>
+     <p>
+      Previous dated (and unchanging) versions of this schema
+      document are at:
+     </p>
+     <ul>
+      <li><a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2007/08/xml.xsd">
+       http://www.w3.org/2007/08/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2004/10/xml.xsd">
+       http://www.w3.org/2004/10/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2001/03/xml.xsd">
+       http://www.w3.org/2001/03/xml.xsd</a></li>
+     </ul>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+</xs:schema>
+
diff --git a/vmware-tools/vgauth/schemas/xmldsig-core-schema.xsd b/vmware-tools/vgauth/schemas/xmldsig-core-schema.xsd
new file mode 100644 (file)
index 0000000..d78b743
--- /dev/null
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "XMLSchema.dtd" [
+   <!ATTLIST schema
+     xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
+   <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
+   <!ENTITY % p ''>
+   <!ENTITY % s ''>
+  ]>
+<!-- Schema for XML Signatures
+    http://www.w3.org/2000/09/xmldsig#
+    $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
+
+    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
+    of Technology, Institut National de Recherche en Informatique et en
+    Automatique, Keio University). All Rights Reserved.
+    http://www.w3.org/Consortium/Legal/
+
+    This document is governed by the W3C Software License [1] as described
+    in the FAQ [2].
+
+    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2000/09/xmldsig#" version="0.1" elementFormDefault="qualified">
+
+<!-- Basic Types Defined for Signatures -->
+
+<simpleType name="CryptoBinary">
+  <restriction base="base64Binary">
+  </restriction>
+</simpleType>
+
+<!-- Start Signature -->
+
+<element name="Signature" type="ds:SignatureType"/>
+<complexType name="SignatureType">
+  <sequence>
+    <element ref="ds:SignedInfo"/>
+    <element ref="ds:SignatureValue"/>
+    <element ref="ds:KeyInfo" minOccurs="0"/>
+    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+  <element name="SignatureValue" type="ds:SignatureValueType"/>
+  <complexType name="SignatureValueType">
+    <simpleContent>
+      <extension base="base64Binary">
+        <attribute name="Id" type="ID" use="optional"/>
+      </extension>
+    </simpleContent>
+  </complexType>
+
+<!-- Start SignedInfo -->
+
+<element name="SignedInfo" type="ds:SignedInfoType"/>
+<complexType name="SignedInfoType">
+  <sequence>
+    <element ref="ds:CanonicalizationMethod"/>
+    <element ref="ds:SignatureMethod"/>
+    <element ref="ds:Reference" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+  <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
+  <complexType name="CanonicalizationMethodType" mixed="true">
+    <sequence>
+      <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
+      <!-- (0,unbounded) elements from (1,1) namespace -->
+    </sequence>
+    <attribute name="Algorithm" type="anyURI" use="required"/>
+  </complexType>
+
+  <element name="SignatureMethod" type="ds:SignatureMethodType"/>
+  <complexType name="SignatureMethodType" mixed="true">
+    <sequence>
+      <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
+      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+      <!-- (0,unbounded) elements from (1,1) external namespace -->
+    </sequence>
+    <attribute name="Algorithm" type="anyURI" use="required"/>
+  </complexType>
+
+<!-- Start Reference -->
+
+<element name="Reference" type="ds:ReferenceType"/>
+<complexType name="ReferenceType">
+  <sequence>
+    <element ref="ds:Transforms" minOccurs="0"/>
+    <element ref="ds:DigestMethod"/>
+    <element ref="ds:DigestValue"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+  <attribute name="URI" type="anyURI" use="optional"/>
+  <attribute name="Type" type="anyURI" use="optional"/>
+</complexType>
+
+  <element name="Transforms" type="ds:TransformsType"/>
+  <complexType name="TransformsType">
+    <sequence>
+      <element ref="ds:Transform" maxOccurs="unbounded"/>
+    </sequence>
+  </complexType>
+
+  <element name="Transform" type="ds:TransformType"/>
+  <complexType name="TransformType" mixed="true">
+    <choice minOccurs="0" maxOccurs="unbounded">
+      <any namespace="##other" processContents="lax"/>
+      <!-- (1,1) elements from (0,unbounded) namespaces -->
+      <element name="XPath" type="string"/>
+    </choice>
+    <attribute name="Algorithm" type="anyURI" use="required"/>
+  </complexType>
+
+<!-- End Reference -->
+
+<element name="DigestMethod" type="ds:DigestMethodType"/>
+<complexType name="DigestMethodType" mixed="true">
+  <sequence>
+    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Algorithm" type="anyURI" use="required"/>
+</complexType>
+
+<element name="DigestValue" type="ds:DigestValueType"/>
+<simpleType name="DigestValueType">
+  <restriction base="base64Binary"/>
+</simpleType>
+
+<!-- End SignedInfo -->
+
+<!-- Start KeyInfo -->
+
+<element name="KeyInfo" type="ds:KeyInfoType"/>
+<complexType name="KeyInfoType" mixed="true">
+  <choice maxOccurs="unbounded">
+    <element ref="ds:KeyName"/>
+    <element ref="ds:KeyValue"/>
+    <element ref="ds:RetrievalMethod"/>
+    <element ref="ds:X509Data"/>
+    <element ref="ds:PGPData"/>
+    <element ref="ds:SPKIData"/>
+    <element ref="ds:MgmtData"/>
+    <any processContents="lax" namespace="##other"/>
+    <!-- (1,1) elements from (0,unbounded) namespaces -->
+  </choice>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+  <element name="KeyName" type="string"/>
+  <element name="MgmtData" type="string"/>
+
+  <element name="KeyValue" type="ds:KeyValueType"/>
+  <complexType name="KeyValueType" mixed="true">
+   <choice>
+     <element ref="ds:DSAKeyValue"/>
+     <element ref="ds:RSAKeyValue"/>
+     <any namespace="##other" processContents="lax"/>
+   </choice>
+  </complexType>
+
+  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
+  <complexType name="RetrievalMethodType">
+    <sequence>
+      <element ref="ds:Transforms" minOccurs="0"/>
+    </sequence>
+    <attribute name="URI" type="anyURI"/>
+    <attribute name="Type" type="anyURI" use="optional"/>
+  </complexType>
+
+<!-- Start X509Data -->
+
+<element name="X509Data" type="ds:X509DataType"/>
+<complexType name="X509DataType">
+  <sequence maxOccurs="unbounded">
+    <choice>
+      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
+      <element name="X509SKI" type="base64Binary"/>
+      <element name="X509SubjectName" type="string"/>
+      <element name="X509Certificate" type="base64Binary"/>
+      <element name="X509CRL" type="base64Binary"/>
+      <any namespace="##other" processContents="lax"/>
+    </choice>
+  </sequence>
+</complexType>
+
+<complexType name="X509IssuerSerialType">
+  <sequence>
+    <element name="X509IssuerName" type="string"/>
+    <element name="X509SerialNumber" type="integer"/>
+  </sequence>
+</complexType>
+
+<!-- End X509Data -->
+
+<!-- Begin PGPData -->
+
+<element name="PGPData" type="ds:PGPDataType"/>
+<complexType name="PGPDataType">
+  <choice>
+    <sequence>
+      <element name="PGPKeyID" type="base64Binary"/>
+      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
+      <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </sequence>
+    <sequence>
+      <element name="PGPKeyPacket" type="base64Binary"/>
+      <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </sequence>
+  </choice>
+</complexType>
+
+<!-- End PGPData -->
+
+<!-- Begin SPKIData -->
+
+<element name="SPKIData" type="ds:SPKIDataType"/>
+<complexType name="SPKIDataType">
+  <sequence maxOccurs="unbounded">
+    <element name="SPKISexp" type="base64Binary"/>
+    <any namespace="##other" processContents="lax" minOccurs="0"/>
+  </sequence>
+</complexType>
+
+<!-- End SPKIData -->
+
+<!-- End KeyInfo -->
+
+<!-- Start Object (Manifest, SignatureProperty) -->
+
+<element name="Object" type="ds:ObjectType"/>
+<complexType name="ObjectType" mixed="true">
+  <sequence minOccurs="0" maxOccurs="unbounded">
+    <any namespace="##any" processContents="lax"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
+  <attribute name="Encoding" type="anyURI" use="optional"/>
+</complexType>
+
+<element name="Manifest" type="ds:ManifestType"/>
+<complexType name="ManifestType">
+  <sequence>
+    <element ref="ds:Reference" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
+<complexType name="SignaturePropertiesType">
+  <sequence>
+    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+   <element name="SignatureProperty" type="ds:SignaturePropertyType"/>
+   <complexType name="SignaturePropertyType" mixed="true">
+     <choice maxOccurs="unbounded">
+       <any namespace="##other" processContents="lax"/>
+       <!-- (1,1) elements from (1,unbounded) namespaces -->
+     </choice>
+     <attribute name="Target" type="anyURI" use="required"/>
+     <attribute name="Id" type="ID" use="optional"/>
+   </complexType>
+
+<!-- End Object (Manifest, SignatureProperty) -->
+
+<!-- Start Algorithm Parameters -->
+
+<simpleType name="HMACOutputLengthType">
+  <restriction base="integer"/>
+</simpleType>
+
+<!-- Start KeyValue Element-types -->
+
+<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
+<complexType name="DSAKeyValueType">
+  <sequence>
+    <sequence minOccurs="0">
+      <element name="P" type="ds:CryptoBinary"/>
+      <element name="Q" type="ds:CryptoBinary"/>
+    </sequence>
+    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
+    <element name="Y" type="ds:CryptoBinary"/>
+    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
+    <sequence minOccurs="0">
+      <element name="Seed" type="ds:CryptoBinary"/>
+      <element name="PgenCounter" type="ds:CryptoBinary"/>
+    </sequence>
+  </sequence>
+</complexType>
+
+<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
+<complexType name="RSAKeyValueType">
+  <sequence>
+    <element name="Modulus" type="ds:CryptoBinary"/>
+    <element name="Exponent" type="ds:CryptoBinary"/>
+  </sequence>
+</complexType>
+
+<!-- End KeyValue Element-types -->
+
+<!-- End Signature -->
+
+</schema>
diff --git a/wgetrc b/wgetrc
new file mode 100644 (file)
index 0000000..369e22c
--- /dev/null
+++ b/wgetrc
@@ -0,0 +1,138 @@
+###
+### Sample Wget initialization file .wgetrc
+###
+
+## You can use this file to change the default behaviour of wget or to
+## avoid having to type many many command-line options. This file does
+## not contain a comprehensive list of commands -- look at the manual
+## to find out what you can put into this file. You can find this here:
+##   $ info wget.info 'Startup File'
+## Or online here:
+##   https://www.gnu.org/software/wget/manual/wget.html#Startup-File
+##
+## Wget initialization file can reside in /etc/wgetrc
+## (global, for all users) or $HOME/.wgetrc (for a single user).
+##
+## To use the settings in this file, you will have to uncomment them,
+## as well as change them, in most cases, as the values on the
+## commented-out lines are the default values (e.g. "off").
+##
+## Command are case-, underscore- and minus-insensitive.
+## For example ftp_proxy, ftp-proxy and ftpproxy are the same.
+
+
+##
+## Global settings (useful for setting up in /etc/wgetrc).
+## Think well before you change them, since they may reduce wget's
+## functionality, and make it behave contrary to the documentation:
+##
+
+# You can set retrieve quota for beginners by specifying a value
+# optionally followed by 'K' (kilobytes) or 'M' (megabytes).  The
+# default quota is unlimited.
+#quota = inf
+
+# You can lower (or raise) the default number of retries when
+# downloading a file (default is 20).
+#tries = 20
+
+# Lowering the maximum depth of the recursive retrieval is handy to
+# prevent newbies from going too "deep" when they unwittingly start
+# the recursive retrieval.  The default is 5.
+#reclevel = 5
+
+# By default Wget uses "passive FTP" transfer where the client
+# initiates the data connection to the server rather than the other
+# way around.  That is required on systems behind NAT where the client
+# computer cannot be easily reached from the Internet.  However, some
+# firewalls software explicitly supports active FTP and in fact has
+# problems supporting passive transfer.  If you are in such
+# environment, use "passive_ftp = off" to revert to active FTP.
+#passive_ftp = off
+passive_ftp = on
+
+# The "wait" command below makes Wget wait between every connection.
+# If, instead, you want Wget to wait only between retries of failed
+# downloads, set waitretry to maximum number of seconds to wait (Wget
+# will use "linear backoff", waiting 1 second after the first failure
+# on a file, 2 seconds after the second failure, etc. up to this max).
+#waitretry = 10
+
+
+##
+## Local settings (for a user to set in his $HOME/.wgetrc).  It is
+## *highly* undesirable to put these settings in the global file, since
+## they are potentially dangerous to "normal" users.
+##
+## Even when setting up your own ~/.wgetrc, you should know what you
+## are doing before doing so.
+##
+
+# Set this to on to use timestamping by default:
+#timestamping = off
+
+# It is a good idea to make Wget send your email address in a `From:'
+# header with your request (so that server administrators can contact
+# you in case of errors).  Wget does *not* send `From:' by default.
+#header = From: Your Name <username@site.domain>
+
+# You can set up other headers, like Accept-Language.  Accept-Language
+# is *not* sent by default.
+#header = Accept-Language: en
+
+# You can set the default proxies for Wget to use for http, https, and ftp.
+# They will override the value in the environment.
+#https_proxy = http://proxy.yoyodyne.com:18023/
+#http_proxy = http://proxy.yoyodyne.com:18023/
+#ftp_proxy = http://proxy.yoyodyne.com:18023/
+
+# If you do not want to use proxy at all, set this to off.
+#use_proxy = on
+
+# You can customize the retrieval outlook.  Valid options are default,
+# binary, mega and micro.
+#dot_style = default
+
+# Setting this to off makes Wget not download /robots.txt.  Be sure to
+# know *exactly* what /robots.txt is and how it is used before changing
+# the default!
+#robots = on
+
+# It can be useful to make Wget wait between connections.  Set this to
+# the number of seconds you want Wget to wait.
+#wait = 0
+
+# You can force creating directory structure, even if a single is being
+# retrieved, by setting this to on.
+#dirstruct = off
+
+# You can turn on recursive retrieving by default (don't do this if
+# you are not sure you know what it means) by setting this to on.
+#recursive = off
+
+# To always back up file X as X.orig before converting its links (due
+# to -k / --convert-links / convert_links = on having been specified),
+# set this variable to on:
+#backup_converted = off
+
+# To have Wget follow FTP links from HTML files by default, set this
+# to on:
+#follow_ftp = off
+
+# To try ipv6 addresses first:
+#prefer-family = IPv6
+
+# Set default IRI support state
+#iri = off
+
+# Force the default system encoding
+#localencoding = UTF-8
+
+# Force the default remote server encoding
+#remoteencoding = UTF-8
+
+# Turn on to prevent following non-HTTPS links when in recursive mode
+#httpsonly = off
+
+# Tune HTTPS security (auto, SSLv2, SSLv3, TLSv1, PFS)
+#secureprotocol = auto
diff --git a/xattr.conf b/xattr.conf
new file mode 100644 (file)
index 0000000..1affac5
--- /dev/null
@@ -0,0 +1,22 @@
+# /etc/xattr.conf
+#
+# Format:
+# <pattern> <action>
+#
+# Actions:
+#   permissions - copy when trying to preserve permissions.
+#   skip - do not copy.
+
+system.nfs4_acl                        permissions
+system.nfs4acl                 permissions
+system.posix_acl_access                permissions
+system.posix_acl_default       permissions
+trusted.SGI_ACL_DEFAULT                skip            # xfs specific
+trusted.SGI_ACL_FILE           skip            # xfs specific
+trusted.SGI_CAP_FILE           skip            # xfs specific
+trusted.SGI_DMI_*              skip            # xfs specific
+trusted.SGI_MAC_FILE           skip            # xfs specific
+xfsroot.*                      skip            # xfs specific; obsolete
+user.Beagle.*                  skip            # ignore Beagle index data
+security.evm                   skip            # may only be written by kernel
+afs.*                          skip            # AFS metadata and ACLs
diff --git a/xdg/autostart/xdg-user-dirs.desktop b/xdg/autostart/xdg-user-dirs.desktop
new file mode 100644 (file)
index 0000000..6b969d4
--- /dev/null
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=User folders update
+TryExec=xdg-user-dirs-update
+Exec=xdg-user-dirs-update
+StartupNotify=false
+NoDisplay=true
+
+X-GNOME-Autostart-Phase=Initialization
+X-KDE-autostart-phase=1
diff --git a/xdg/systemd/user b/xdg/systemd/user
new file mode 120000 (symlink)
index 0000000..1c75bd3
--- /dev/null
@@ -0,0 +1 @@
+../../systemd/user
\ No newline at end of file
diff --git a/xdg/user-dirs.conf b/xdg/user-dirs.conf
new file mode 100644 (file)
index 0000000..86012d0
--- /dev/null
@@ -0,0 +1,11 @@
+# This controls the behaviour of xdg-user-dirs-update which is run on user login
+# You can also have per-user config in ~/.config/user-dirs.conf, or specify
+# the XDG_CONFIG_HOME and/or XDG_CONFIG_DIRS to override this
+#
+
+enabled=True
+
+# This sets the filename encoding to use. You can specify an explicit
+# encoding, or "locale" which means the encoding of the users locale
+# will be used
+filename_encoding=UTF-8
diff --git a/xdg/user-dirs.defaults b/xdg/user-dirs.defaults
new file mode 100644 (file)
index 0000000..6baf7cc
--- /dev/null
@@ -0,0 +1,16 @@
+# Default settings for user directories
+#
+# The values are relative pathnames from the home directory and
+# will be translated on a per-path-element basis into the users locale
+DESKTOP=Desktop
+DOWNLOAD=Downloads
+TEMPLATES=Templates
+PUBLICSHARE=Public
+DOCUMENTS=Documents
+MUSIC=Music
+PICTURES=Pictures
+VIDEOS=Videos
+# Another alternative is:
+#MUSIC=Documents/Music
+#PICTURES=Documents/Pictures
+#VIDEOS=Documents/Videos